<div dir="ltr">Trying to work out why certain things are happening.<br><br>I take it scene.displayList() doesn't show any particular order.<br>Is there a way to get displayList in its Zsorted index or display order?<br>
<br><br>Why does camera.rotaionY not equal camera.orbit();<br>Camera.rotationY seems to go 0->90->0<br><br>Example here <a href="http://www.shrewballooba.co.uk/pv/example03.html">www.shrewballooba.co.uk/pv/example03.html</a><br>
<br>// Uses Latest AS3 branch (todays)<br>// * NOTE the order of the colours should spell PARTS or STRAP just made it easier ;)<br>package <br>{<br> import flash.events.*;<br> import flash.text.*;<br><br> import org.papervision3d.objects.primitives.*;<br>
import org.papervision3d.view.BasicView;<br> import org.papervision3d.cameras.Camera3D;<br> import org.papervision3d.materials.*;<br> import org.papervision3d.view.layer.ViewportLayer;<br> import org.papervision3d.view.layer.util.ViewportLayerSortMode;<br>
<br> /**<br> * ...<br> * @author DefaultUser (JB <a href="http://shrewballooba.co.uk">shrewballooba.co.uk</a>)<br> */<br> public class example03 extends BasicView <br> {<br> private var PlumPlane:Plane<br>
private var lastMouseX:int;<br> private var lastMouseY:int;<br> private var doMove:Boolean = false;<br> private var dspLstdbg:TextField = new TextField();<br> private var camRotdbg:TextField = new TextField();<br>
private var orbitdbg:TextField = new TextField();<br> <br> public function example03():void <br> {<br> super(400, 300, true, true, "TARGET");<br> stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);<br>
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);<br> setScene();<br> //singleRender();<br> startRendering();<br> }<br> <br> private function setScene():void<br>
{<br> camera.z = -1500;<br> <br> camRotdbg.y = 20;<br> camRotdbg.height = 20;<br> camRotdbg.width = 250;<br> camRotdbg.background = true;<br> camRotdbg.backgroundColor;<br>
addChild(camRotdbg)<br> <br> orbitdbg.y = 50;<br> orbitdbg.height = 20;<br> orbitdbg.width = 250;<br> orbitdbg.background = true;<br> orbitdbg.backgroundColor;<br>
addChild(orbitdbg);<br> <br> dspLstdbg.y = 80;<br> dspLstdbg.height = 100;<br> dspLstdbg.width = 260;<br> dspLstdbg.background = true;<br> dspLstdbg.backgroundColor;<br>
addChild(dspLstdbg);<br> <br> var Plum:uint = 0x880080;<br> var Aquamarine:uint = 0x77ffd4;<br> var Red:uint = 0xFF0000;<br> var Tan:uint = 0xD2B48C;<br> var Silver:uint = 0xC0C0C0;<br>
<br> //Plum Plane<br> var PlumPlaneMat:ColorMaterial = new ColorMaterial(Plum);<br> PlumPlaneMat.doubleSided = true;<br> PlumPlane = new Plane(PlumPlaneMat);<br> PlumPlane.name = "PlumPlane";<br>
PlumPlane.useOwnContainer = true;<br> scene.addChild(PlumPlane);<br> <br> //Aquamarine Plane<br> var AquamarinePlaneMat:ColorMaterial = new ColorMaterial(Aquamarine);<br>
var AquamarinePlane:Plane = new Plane(AquamarinePlaneMat);<br> AquamarinePlaneMat.doubleSided = true;<br> AquamarinePlane.name = "AquamarinePlane";<br> AquamarinePlane.useOwnContainer = true;<br>
AquamarinePlane.x = -75;<br> AquamarinePlane.y = 75;<br> AquamarinePlane.z = -50;<br> scene.addChild(AquamarinePlane);<br> <br> //Red Plane<br> var RedPlaneMat:ColorMaterial = new ColorMaterial(Red);<br>
RedPlaneMat.doubleSided = true;<br> var RedPlane:Plane = new Plane(RedPlaneMat);<br> RedPlane.name = "RedPlane";<br> RedPlane.useOwnContainer = true;<br> RedPlane.x = -150;<br>
RedPlane.y = 150;<br> RedPlane.z = -100;<br> scene.addChild(RedPlane);<br> <br> //Tan Plane <br> var TanPlaneMat:ColorMaterial = new ColorMaterial(Tan);<br>
TanPlaneMat.doubleSided = true;<br> var TanPlane:Plane = new Plane(TanPlaneMat);<br> TanPlane.name = "TanPlane";<br> TanPlane.useOwnContainer = true;<br> TanPlane.x = -225;<br>
TanPlane.y = 225;<br> TanPlane.z = -150;<br> scene.addChild(TanPlane);<br> <br> //Silver Plane <br> var SilverPlaneMat:ColorMaterial = new ColorMaterial(Silver);<br>
SilverPlaneMat.doubleSided = true;<br> var SilverPlane:Plane = new Plane(SilverPlaneMat);<br> SilverPlane.name = "SilverPlane";<br> SilverPlane.useOwnContainer = true;<br>
SilverPlane.x = -300;<br> SilverPlane.y = 300;<br> SilverPlane.z = -200;<br> scene.addChild(SilverPlane);<br><br> /* IGNORE<br> var parentLayer:ViewportLayer = new ViewportLayer(viewport, null);<br>
viewport.containerSprite.addLayer(parentLayer);<br> parentLayer.sortMode = ViewportLayerSortMode.Z_SORT;<br> <br> parentLayer.getChildLayer(PlumPlane, true).layerIndex = 1; <br>
parentLayer.getChildLayer(AquamarinePlane, true).layerIndex = 2;<br> parentLayer.getChildLayer(RedPlane, true).layerIndex = 3;<br> parentLayer.getChildLayer(TanPlane, true).layerIndex = 4;<br>
parentLayer.getChildLayer(SilverPlane, true).layerIndex = 5;<br> */<br> <br> trace( scene.childrenList() );<br> }<br> <br> private function onMouseDown(event:MouseEvent):void {<br>
doMove = true;<br> lastMouseX = event.stageX - (stage.width/2);<br> lastMouseY = event.stageY - (stage.height/2) ;<br> startRendering();<br> }<br> <br> private function onMouseUp(event:MouseEvent):void <br>
{<br> doMove = false;<br> stopRendering();<br> dspLstdbg.text = "scene.childrenList() \n" +scene.childrenList() ;<br> }<br> <br> override protected function onRenderTick(event:Event = null):void <br>
{<br> if (doMove) <br> {<br> camera.orbit( -90 , (360 / stage.width) * ( lastMouseX - (mouseX - (stage.width/2)) ) + 90, true, PlumPlane );<br> camRotdbg.text = "camera.rotationY = " + camera.rotationY;<br>
orbitdbg.text = "camera.orbit( -90, " + (360 / stage.width) * ( lastMouseX - (mouseX - (stage.width/2)) ) + 90 + ", true, PlumPlane);" ;<br> }<br> super.onRenderTick(event);<br>
}<br> }<br> <br>}<br></div>