forked from: forked from: forked from: papervision test
/**
* Copyright Skizi2 ( http://wonderfl.net/user/Skizi2 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/8j8p
*/
// forked from hacker_pdf0c4e1's forked from: forked from: papervision test
// forked from Johannes's forked from: papervision test
// forked from Johannes's papervision test
package {
import flash.text.TextFormat;
import flash.text.TextField;
import flash.geom.Point;
import flash.display.*;
import flash.events.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.lights.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.view.*;
import org.papervision3d.core.geom.renderables.*;
import org.papervision3d.cameras.*;
import org.papervision3d.scenes.*;
import org.papervision3d.render.*;
public class Sample3 extends MovieClip {
private var light:PointLight3D;
private var player:Cube;
private var r:Number = 0;
private var point3d:Vertex3D = new Vertex3D( 0, 0, 0 );
private var scene:Scene3D;
private var camera:Camera3D;
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var bg:Sprite;
private var downPoint:Point = new Point();
private var testTF:TextField = new TextField();
public function Sample3():void {
scene = new Scene3D();
camera = new Camera3D();
camera.z = -1000;
renderer = new BasicRenderEngine();
viewport = new Viewport3D(stage.stageWidth, stage.stageHeight,false, false, true, true);
init();
}
private function init():void{
bg = new Sprite();
bg.graphics.beginFill( 0xffcccc );
bg.graphics.drawRect( 0, 0, 450, 450);
bg.graphics.endFill();
addChild( bg );
testTF.defaultTextFormat = new TextFormat( null, null, 0x000000 );
testTF.text = "AAAAAAAAAAAAAAA";
testTF.width = 450;
addChild( testTF );
addChild(viewport);
var mat:MaterialsList = new MaterialsList();
mat.addMaterial(new WireframeMaterial( 0xff0000 ), "all" );
player = new Cube( mat, 500, 500, 500, 1, 1, 1 );
scene.addChild(player);
camera.target = player;
bg.addEventListener( MouseEvent.MOUSE_DOWN, stageDownHandler );
renderer.renderScene(scene, camera, viewport);
}
private function stageDownHandler( e:MouseEvent ):void{
addEventListener( Event.ENTER_FRAME, loop );
addEventListener( MouseEvent.MOUSE_UP, stageUpHandler );
downPoint.x = mouseX;
downPoint.y = mouseY;
}
private function stageUpHandler( e:MouseEvent ):void{
removeEventListener( Event.ENTER_FRAME, loop );
removeEventListener( MouseEvent.MOUSE_UP, stageUpHandler );
downPoint.x = 0;
downPoint.y = 0;
}
private function loop(e:Event):void {
var distVertex3d:Vertex3D = new Vertex3D( downPoint.x + ( mouseX - downPoint.x ), downPoint.y + ( downPoint.y - mouseY ) ,0 );
player.geometry.faces[3].vertices[1].x = distVertex3d.x;
player.geometry.faces[3].vertices[1].y = distVertex3d.y;
renderer.renderScene(scene, camera, viewport);
}
}
}