1 package
2 {
3 import away3d.primitives.Cone;
4 import away3d.primitives.Cube;
5 import away3d.primitives.Cylinder;
6 import away3d.primitives.GeodesicSphere;
7 import away3d.primitives.Plane;
8 import away3d.primitives.RoundedCube;
9 import away3d.primitives.SeaTurtle;
10 import away3d.primitives.Torus;
11 import away3d.primitives.Triangle;
12 import away3d.primitives.Trident;
13
14 public class ApplicationManager extends BaseObject
15 {
16 protected var mesh:MeshObject = null;
17
18 public function ApplicationManager(engineManager:EngineManager)
19 {
20 super(engineManager);
21 }
22
23 public function startupApplicationManager():ApplicationManager
24 {
25 super.startupBaseObject();
26
27 if (engineManager.ModelType == "cube")
28 setupCube();
29 else if (engineManager.ModelType == "torus")
30 setupTorus();
31 else if (engineManager.ModelType == "cone")
32 setupCone();
33 else if (engineManager.ModelType == "cylinder")
34 setupCylinder();
35 else if (engineManager.ModelType == "geodesic sphere")
36 setupGeodesicSphere();
37 else if (engineManager.ModelType == "plane")
38 setupPlane();
39 else if (engineManager.ModelType == "rounded cube")
40 setupRoundedCube();
41 else if (engineManager.ModelType == "sea turtle")
42 setupSeaTurtle();
43 else if (engineManager.ModelType == "triangle")
44 setupTriangle();
45 else if (engineManager.ModelType == "trident")
46 setupTrident();
47
48 return this;
49 }
50
51 public function setupCube():void
52 {
53 if (mesh != null) mesh.shutdown();
54 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
55 new Cube(
56 {material:engineManager.MyResourceManager.Yellow_Tex,
57 width:30,
58 height:30,
59 depth:30,
60 segmentsH:3,
61 segmentsW:3}));
62 }
63
64 public function setupTorus():void
65 {
66 if (mesh != null) mesh.shutdown();
67 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
68 new Torus(
69 {material:engineManager.MyResourceManager.Yellow_Tex,
70 radius:10,
71 tube:15}));
72 }
73
74 public function setupCone():void
75 {
76 if (mesh != null) mesh.shutdown();
77 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
78 new Cone(
79 {material:engineManager.MyResourceManager.Yellow_Tex,
80 radius:20,
81 height:30}));
82 }
83
84 public function setupCylinder():void
85 {
86 if (mesh != null) mesh.shutdown();
87 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
88 new Cylinder(
89 {material:engineManager.MyResourceManager.Yellow_Tex,
90 radius:20,
91 height:30}));
92 }
93
94 public function setupGeodesicSphere():void
95 {
96 if (mesh != null) mesh.shutdown();
97 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
98 new GeodesicSphere(
99 {material:engineManager.MyResourceManager.Yellow_Tex,
100 radius:20}));
101 }
102
103 public function setupPlane():void
104 {
105 if (mesh != null) mesh.shutdown();
106 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
107 new Plane(
108 {material:engineManager.MyResourceManager.Yellow_Tex,
109 width:30,
110 height:30}));
111 }
112
113 public function setupRoundedCube():void
114 {
115 if (mesh != null) mesh.shutdown();
116 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
117 new RoundedCube(
118 {material:engineManager.MyResourceManager.Yellow_Tex,
119 width:30,
120 height:30,
121 depth:30,
122 radius:5}));
123 }
124
125 public function setupSeaTurtle():void
126 {
127 if (mesh != null) mesh.shutdown();
128 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
129 new SeaTurtle(
130 {material:engineManager.MyResourceManager.Yellow_Tex}));
131 mesh.model.scale(0.1);
132 }
133
134 public function setupTriangle():void
135 {
136 if (mesh != null) mesh.shutdown();
137 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
138 new Triangle(
139 {material:engineManager.MyResourceManager.Yellow_Tex,
140 edge:30}));
141 }
142
143 public function setupTrident():void
144 {
145 if (mesh != null) mesh.shutdown();
146 mesh = new MeshObject(engineManager).startupObject3DMeshObject(
147 new Trident(30, true));
148 }
149
150 public override function shutdown():void
151 {
152 super.shutdown();
153
154 mesh.shutdown();
155 mesh = null;
156 }
157
158 public override function enterFrame(dt:Number):void
159 {
160 if (mesh != null)
161 {
162 mesh.model.rotationX += 90 * dt;
163 mesh.model.rotationY += 90 * dt;
164 }
165 }
166
167 }
168 }