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