- package
- {
- import away3d.lights.DirectionalLight3D;
- import away3d.primitives.Cone;
- import away3d.primitives.Cube;
- import away3d.primitives.Cylinder;
- import away3d.primitives.GeodesicSphere;
- import away3d.primitives.Plane;
- import away3d.primitives.RoundedCube;
- import away3d.primitives.SeaTurtle;
- import away3d.primitives.Torus;
- import away3d.primitives.Triangle;
- import away3d.primitives.Trident;
- public class ApplicationManager extends BaseObject
- {
- protected var mesh:MeshObject = null;
- public function ApplicationManager(engineManager:EngineManager)
- {
- super(engineManager);
- }
- public function startupApplicationManager():ApplicationManager
- {
- super.startupBaseObject();
- if (engineManager.ModelType == "cube")
- setupCube();
- else if (engineManager.ModelType == "torus")
- setupTorus();
- else if (engineManager.ModelType == "cone")
- setupCone();
- else if (engineManager.ModelType == "cylinder")
- setupCylinder();
- else if (engineManager.ModelType == "geodesic sphere")
- setupGeodesicSphere();
- else if (engineManager.ModelType == "plane")
- setupPlane();
- else if (engineManager.ModelType == "rounded cube")
- setupRoundedCube();
- else if (engineManager.ModelType == "sea turtle")
- setupSeaTurtle();
- else if (engineManager.ModelType == "triangle")
- setupTriangle();
- else if (engineManager.ModelType == "trident")
- setupTrident();
- return this;
- }
- public function setupCube():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Cube(
- {material:engineManager.MyResourceManager.ButterflyTex,
- width:30,
- height:30,
- depth:30,
- segmentsH:1,
- segmentsW:1}));
- }
- public function setupTorus():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Torus(
- {material:engineManager.MyResourceManager.ButterflyTex,
- radius:25,
- tube:10,
- segmentsR:10,
- segmentsT:10}));
- }
- public function setupCone():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Cone(
- {material:engineManager.MyResourceManager.ButterflyTex,
- radius:20,
- height:30}));
- }
- public function setupCylinder():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Cylinder(
- {material:engineManager.MyResourceManager.ButterflyTex,
- radius:20,
- height:30}));
- }
- public function setupGeodesicSphere():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new GeodesicSphere(
- {material:engineManager.MyResourceManager.ButterflyTex,
- radius:20}));
- mesh.model.scaleX = 0.3;
- mesh.model.scaleY = 0.3;
- mesh.model.scaleZ = 0.3;
- }
- public function setupPlane():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Plane(
- {material:engineManager.MyResourceManager.ButterflyTex,
- width:30,
- height:30}));
- }
- public function setupRoundedCube():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new RoundedCube(
- {material:engineManager.MyResourceManager.ButterflyTex,
- width:30,
- height:30,
- depth:30,
- radius:5}));
- }
- public function setupSeaTurtle():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new SeaTurtle(
- {material:engineManager.MyResourceManager.ButterflyTex}));
- mesh.model.scale(0.1);
- }
- public function setupTriangle():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Triangle(
- {material:engineManager.MyResourceManager.ButterflyTex,
- edge:30}));
- }
- public function setupTrident():void
- {
- if (mesh != null) mesh.shutdown();
- mesh = new MeshObject(engineManager).startupObject3DMeshObject(
- new Trident(30, true));
- }
- public override function shutdown():void
- {
- super.shutdown();
- mesh.shutdown();
- mesh = null;
- }
- public override function enterFrame(dt:Number):void
- {
- if (mesh != null)
- {
- mesh.model.rotationX += 45 * dt;
- mesh.model.rotationY += 45 * dt;
- }
- }
- }
- }