Confused :/
I expected this to move horizontally across the screen and rotate about its
local axis.
Basically look the same as if I did
c.roll(1);
instead of
pivot.roll(1);
Is ObjectContainer3D the same as Papervisions DisplayObject3D?
How do you group some primitives and have them rotate about some 3d point?
package
{
import away3dlite.cameras.Camera3D;
import away3dlite.containers.ObjectContainer3D;
import away3dlite.containers.Scene3D;
import away3dlite.containers.View3D;
import away3dlite.primitives.Cylinder;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
public class Test extends Sprite
{
private var camera:Camera3D;
private var view:View3D;
private var scene:Scene3D;
private var pivot:ObjectContainer3D;
public function Test():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
initEngine();
initObjects();
initListeners();
}
private function initEngine():void
{
scene = new Scene3D();
camera = new Camera3D();
//camera.y = -500;
camera.z = -1000;
//camera.rotationX = -45;
view = new View3D();
view.camera = camera;
view.scene = scene;
addChild(view);
//addChild(new AwayStats(view));
//var camC:CameraControllerAWL = new CameraControllerAWL(view,
camera, new Vector3D(0, 0, 0));
}
private function initObjects():void
{
pivot = new ObjectContainer3D();
scene.addChild(pivot);
c = new Cylinder();
pivot.addChild(c);
}
private function initListeners():void
{
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(Event.RESIZE, onResize);
onResize();
}
private var ang:Number=0
private var c:Cylinder;
private function onEnterFrame(event:Event):void
{
ang++;
//just moving pivot left right
pivot.x = Math.sin(ang * Math.PI / 180) * 250;
pivot.roll(1);
// c.roll(1);
//render scene
view.render();
}
/**
* stage listener for resize events
*/
private function onResize(event:Event = null):void
{
view.x = stage.stageWidth / 2;
view.y = stage.stageHeight / 2;
}
}
}