I want to create a new class - WaveCube, I want to do it right, but I
can't understend how works get & set functions in Cube.as

here's my code :
package
{
        import away3d.containers.ObjectContainer3D;
        import away3d.core.base.Object3D;
        import away3d.materials.ColorMaterial;
        import away3d.primitives.Plane;

        import com.as3dmod.ModifierStack;
        import com.as3dmod.modifiers.Perlin;
        import com.as3dmod.plugins.away3d.Away3dMesh;
        import com.as3dmod.plugins.away3d.LibraryAway3d;

        import flash.display.Sprite;
        import flash.events.Event;

        [SWF(width="650", height="500", frameRate="30",
backgroundColor="0xFFFFFF", quality="high")]
        public class WaveCube
        {
                //--ObjectContainer3D--
                public var planeGroup:ObjectContainer3D=new ObjectContainer3D();

                //--PRIMITIVES--
                private var frontPlane:Plane=new Plane();
                private var topPlane:Plane=new Plane();
                private var backPlane:Plane=new Plane();
                private var bottomPlane:Plane=new Plane();
                private var leftPlane:Plane=new Plane();
                private var rightPlane:Plane=new Plane();

                //--MATERIALS--
                private var frontMaterial:ColorMaterial=new 
ColorMaterial('red');
                private var backMaterial:ColorMaterial=new 
ColorMaterial('black');

                //--AS3DCom--
                private var frontStack:ModifierStack;
                private var topStack:ModifierStack;
                private var backStack:ModifierStack;
                private var bottomStack:ModifierStack;
                private var leftStack:ModifierStack;
                private var rightStack:ModifierStack;

                public function WaveCube(_width:Number=100, _height:Number=100,
_depth:Number=100, _segmentsW:int=10, _segmentsH:int=10,
_perlin:Number=0.1)
                {
                        planeProperties(frontPlane, _width, _height, 0, 0, 
_depth/2+10, 90,
0, 180, _segmentsW, _segmentsH);
                        planeProperties(topPlane, _width, _depth, 0, 
-_height/2-10, 0,
-180, 0, 180, _segmentsW, _segmentsH);
                        planeProperties(backPlane, _width, _height, 0, 0, 
-_depth/2-10,
270, 0, 180, _segmentsW, _segmentsH);
                        planeProperties(bottomPlane, _width, _depth, 0, 
_height/2+10, 0, 0,
0, 180, _segmentsW, _segmentsH);
                        planeProperties(leftPlane, _depth, _height, 
_width/2+10, 0, 0, 90,
-90, 180, _segmentsW, _segmentsH);
                        planeProperties(rightPlane, _depth, _height, 
-_width/2-10, 0, 0,
90, 90, 180, _segmentsW, _segmentsH);

                        frontStack=new ModifierStack(new LibraryAway3d, 
frontPlane);
                        var frontPerlin:Perlin=new Perlin(_perlin);
                        frontStack.addModifier(frontPerlin);

                        topStack=new ModifierStack(new LibraryAway3d, topPlane);
                        var topPerlin:Perlin=new Perlin(_perlin);
                        topStack.addModifier(topPerlin);

                        backStack=new ModifierStack(new LibraryAway3d, 
backPlane);
                        var backPerlin:Perlin=new Perlin(_perlin);
                        backStack.addModifier(backPerlin);

                        bottomStack=new ModifierStack(new LibraryAway3d, 
bottomPlane);
                        var bottomPerlin:Perlin=new Perlin(_perlin);
                        bottomStack.addModifier(bottomPerlin);

                        leftStack=new ModifierStack(new LibraryAway3d, 
leftPlane);
                        var leftPerlin:Perlin=new Perlin(_perlin);
                        leftStack.addModifier(leftPerlin);

                        rightStack=new ModifierStack(new LibraryAway3d, 
rightPlane);
                        var rightPerlin:Perlin=new Perlin(_perlin);
                        rightStack.addModifier(rightPerlin);

                        planeGroup.addChild(frontPlane);
                        planeGroup.addChild(topPlane);
                        planeGroup.addChild(backPlane);
                        planeGroup.addChild(bottomPlane);
                        planeGroup.addChild(leftPlane);
                        planeGroup.addChild(rightPlane);
                }

                public function get cube():ObjectContainer3D
                {
                        return planeGroup;
                }

                private function planeProperties(plane:Plane, width:Number,
height:Number, x:int, y:int, z:int, rotX:int, rotY:int, rotZ:int,
segmW:int, segmH:int):void
                {
                        plane.bothsides=true;
                        plane.material=backMaterial;
                        plane.back=frontMaterial;
                        plane.x=x;
                        plane.y=y;
                        plane.z=z;
                        plane.rotationX=rotX;
                        plane.rotationY=rotY;
                        plane.rotationZ=rotZ;
                        plane.segmentsW=segmW;
                        plane.segmentsH=segmH;
                        plane.width=width;
                        plane.height=height;
                }

                public function apply():void
                {
                        frontStack.apply();
                        topStack.apply();
                        backStack.apply();
                        bottomStack.apply();
                        leftStack.apply();
                        rightStack.apply();
                }
        }
}

and the code which display it :
package
{
        import away3d.cameras.HoverCamera3D;
        import away3d.containers.ObjectContainer3D;
        import away3d.containers.Scene3D;
        import away3d.containers.View3D;
        import away3d.materials.ColorMaterial;
        import away3d.primitives.Plane;

        import com.as3dmod.ModifierStack;
        import com.as3dmod.modifiers.Perlin;
        import com.as3dmod.plugins.away3d.Away3dMesh;
        import com.as3dmod.plugins.away3d.LibraryAway3d;

        import flash.display.Sprite;
        import flash.events.Event;

        [SWF(width="650", height="500", frameRate="30",
backgroundColor="0xFFFFFF", quality="high")]
        public class Display_Wave_Cube extends Sprite
        {
                //--SCENE--
                private var scene:Scene3D;
                private var view:View3D;
                private var cam:HoverCamera3D;

                //--PRIMITIVES--
                private var waveCube:WaveCube;


                public function Display_Wave_Cube():void
                {
                        scene=new Scene3D();

                        cam=new HoverCamera3D();

                        view=new View3D({scene:scene, camera:cam, 
x:stage.stageWidth/2,
y:stage.stageHeight/2});
                        cam.targetpanangle=cam.panangle=-15;
                        cam.targettiltangle=cam.tiltangle=0;
                        cam.maxtiltangle=20;
                        cam.mintiltangle=-20;
                        cam.distance=1000;
                        cam.focus=100;

                        addChild(view);

                        addObjects();
                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
                }

                private function addObjects():void
                {
                        waveCube=new WaveCube(100, 200, 200);
                        view.scene.addChild(waveCube.cube);
                }

                private function onEnterFrame(e:Event):void
                {
                        waveCube.apply();

                        cam.targetpanangle=-((mouseX-(stage.stageWidth/2))*0.6);
                        
cam.targettiltangle=-((mouseY-(stage.stageHeight/2))*0.2);

                        cam.hover();
                        view.render();
                }
        }
}

how must I change my code to set width, height etc in this way:
waveCube=new WaveCube();
waveCube.width=300;
waveCube.height=200;
waveCube.depth=50;

and add my cube on stage in this way:
view.scene.addChild(waveCube);

Reply via email to