/bin-release/srcview/source/away3d/tools/Explode.as.html

https://github.com/davidcoleman007/AS3MazeSolver · HTML · 193 lines · 158 code · 34 blank · 1 comment · 0 complexity · 9447c5411e5d2b80cd21fb42d3806db4 MD5 · raw file

  1. <!-- saved from url=(0014)about:internet -->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title>Explode.as</title>
  7. <link rel="stylesheet" type="text/css" href="../../../SourceStyles.css"/>
  8. </head>
  9. <body><pre><span class="ActionScriptpackage">package</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">tools</span><span class="ActionScriptBracket/Brace">{</span>
  10. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">base</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Mesh</span>;
  11. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">base</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Vertex</span>;
  12. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">base</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Face</span>;
  13. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">base</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">UV</span>;
  14. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">base</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Object3D</span>;
  15. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">containers</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ObjectContainer3D</span>;
  16. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">materials</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Material</span>;
  17. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">arcane</span>;
  18. <span class="ActionScriptReserved">use</span> <span class="ActionScriptReserved">namespace</span> <span class="ActionScriptDefault_Text">arcane</span>;
  19. <span class="ActionScriptASDoc">/**
  20. * Class Explode corrects all the faces of an object3d with unic vertexes.&lt;code&gt;Explode&lt;/code&gt;
  21. * Each faces can then be moved independently without influence for the surrounding faces.
  22. */</span>
  23. <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">Explode</span><span class="ActionScriptBracket/Brace">{</span>
  24. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_unicmeshes</span>:<span class="ActionScriptDefault_Text">Boolean</span>;
  25. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_recenter</span>:<span class="ActionScriptDefault_Text">Boolean</span>;
  26. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_container</span>:<span class="ActionScriptDefault_Text">ObjectContainer3D</span>;
  27. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">parse</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span>:<span class="ActionScriptDefault_Text">Object3D</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  28. <span class="ActionScriptBracket/Brace">{</span>
  29. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span> <span class="ActionScriptReserved">is</span> <span class="ActionScriptDefault_Text">ObjectContainer3D</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  30. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">obj</span>:<span class="ActionScriptDefault_Text">ObjectContainer3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">ObjectContainer3D</span><span class="ActionScriptBracket/Brace">)</span>;
  31. <span class="ActionScriptReserved">for</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">uint</span> <span class="ActionScriptOperator">=</span>0;<span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">&lt;</span><span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">children</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span>;<span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  32. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">children</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptReserved">is</span> <span class="ActionScriptDefault_Text">ObjectContainer3D</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  33. <span class="ActionScriptDefault_Text">parse</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">children</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">)</span>;
  34. <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span> <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">children</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptReserved">is</span> <span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  35. <span class="ActionScriptDefault_Text">explode</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">children</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">)</span>;
  36. <span class="ActionScriptBracket/Brace">}</span>
  37. <span class="ActionScriptBracket/Brace">}</span>
  38. <span class="ActionScriptBracket/Brace">}</span><span class="ActionScriptReserved">else</span> <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span> <span class="ActionScriptReserved">is</span> <span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  39. <span class="ActionScriptDefault_Text">explode</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">object3d</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">)</span>;
  40. <span class="ActionScriptBracket/Brace">}</span>
  41. <span class="ActionScriptBracket/Brace">}</span>
  42. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">explode</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">obj</span>:<span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  43. <span class="ActionScriptBracket/Brace">{</span>
  44. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0;
  45. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">loop</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">faces</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span>;
  46. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">face</span>:<span class="ActionScriptDefault_Text">Face</span>;
  47. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">va</span>: <span class="ActionScriptDefault_Text">Vertex</span>;
  48. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">vb</span>: <span class="ActionScriptDefault_Text">Vertex</span>;
  49. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">vc</span> :<span class="ActionScriptDefault_Text">Vertex</span>;
  50. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">v0</span>:<span class="ActionScriptDefault_Text">Vertex</span>;
  51. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">v1</span>:<span class="ActionScriptDefault_Text">Vertex</span>;
  52. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">v2</span>:<span class="ActionScriptDefault_Text">Vertex</span>;
  53. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uv0</span>:<span class="ActionScriptDefault_Text">UV</span>;
  54. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uv1</span>:<span class="ActionScriptDefault_Text">UV</span>;
  55. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uv2</span>:<span class="ActionScriptDefault_Text">UV</span>;
  56. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_unicmeshes</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  57. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mesh</span>:<span class="ActionScriptDefault_Text">Mesh</span>;
  58. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uva</span>: <span class="ActionScriptDefault_Text">UV</span>;
  59. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uvb</span>: <span class="ActionScriptDefault_Text">UV</span>;
  60. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">uvc</span> :<span class="ActionScriptDefault_Text">UV</span>;
  61. <span class="ActionScriptReserved">for</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">=</span>0;<span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">&lt;</span><span class="ActionScriptDefault_Text">loop</span>;<span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  62. <span class="ActionScriptDefault_Text">face</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">faces</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span>;
  63. <span class="ActionScriptDefault_Text">uv0</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>0<span class="ActionScriptBracket/Brace">]</span>;
  64. <span class="ActionScriptDefault_Text">uv1</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span>;
  65. <span class="ActionScriptDefault_Text">uv2</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>2<span class="ActionScriptBracket/Brace">]</span>;
  66. <span class="ActionScriptDefault_Text">v0</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>0<span class="ActionScriptBracket/Brace">]</span>;
  67. <span class="ActionScriptDefault_Text">v1</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span>;
  68. <span class="ActionScriptDefault_Text">v2</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>2<span class="ActionScriptBracket/Brace">]</span>;
  69. <span class="ActionScriptDefault_Text">mesh</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  70. <span class="ActionScriptDefault_Text">va</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  71. <span class="ActionScriptDefault_Text">vb</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  72. <span class="ActionScriptDefault_Text">vc</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  73. <span class="ActionScriptDefault_Text">uva</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">UV</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">uv0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">u</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uv0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">)</span>;
  74. <span class="ActionScriptDefault_Text">uvb</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">UV</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">uv1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">u</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uv1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">)</span>;
  75. <span class="ActionScriptDefault_Text">uvc</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">UV</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">uv2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">u</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uv2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">)</span>;
  76. <span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addFace</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Face</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">va</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">vb</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">vc</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">material</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Material</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uva</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uvb</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">uvc</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  77. <span class="ActionScriptDefault_Text">_container</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addChild</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptBracket/Brace">)</span>;
  78. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_recenter</span><span class="ActionScriptBracket/Brace">)</span>
  79. <span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">applyPosition</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">minX</span><span class="ActionScriptOperator">+</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">maxX</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">*</span>.5<span class="ActionScriptOperator">,</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">minY</span><span class="ActionScriptOperator">+</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">maxY</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">*</span>.5<span class="ActionScriptOperator">,</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">minZ</span><span class="ActionScriptOperator">+</span><span class="ActionScriptDefault_Text">mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">maxZ</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">*</span>.5<span class="ActionScriptBracket/Brace">)</span>;
  80. <span class="ActionScriptBracket/Brace">}</span>
  81. <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span><span class="ActionScriptBracket/Brace">{</span>
  82. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">index</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0;
  83. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">v</span>:<span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> [];
  84. <span class="ActionScriptReserved">for</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">=</span>0;<span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">&lt;</span><span class="ActionScriptDefault_Text">loop</span>;<span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  85. <span class="ActionScriptDefault_Text">face</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">faces</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span>;
  86. <span class="ActionScriptDefault_Text">uv0</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>0<span class="ActionScriptBracket/Brace">]</span>;
  87. <span class="ActionScriptDefault_Text">uv1</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span>;
  88. <span class="ActionScriptDefault_Text">uv2</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">uvs</span><span class="ActionScriptBracket/Brace">[</span>2<span class="ActionScriptBracket/Brace">]</span>;
  89. <span class="ActionScriptDefault_Text">v0</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>0<span class="ActionScriptBracket/Brace">]</span>;
  90. <span class="ActionScriptDefault_Text">v1</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span>;
  91. <span class="ActionScriptDefault_Text">v2</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vertices</span><span class="ActionScriptBracket/Brace">[</span>2<span class="ActionScriptBracket/Brace">]</span>;
  92. <span class="ActionScriptDefault_Text">va</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v0</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  93. <span class="ActionScriptDefault_Text">vb</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v1</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  94. <span class="ActionScriptDefault_Text">vc</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vertex</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v2</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
  95. <span class="ActionScriptDefault_Text">v</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">push</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">va</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">vb</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">vc</span><span class="ActionScriptBracket/Brace">)</span>;
  96. <span class="ActionScriptBracket/Brace">}</span>
  97. <span class="ActionScriptReserved">for</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">=</span>0;<span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">&lt;</span><span class="ActionScriptDefault_Text">loop</span>;<span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">{</span>
  98. <span class="ActionScriptDefault_Text">face</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">obj</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">faces</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span>;
  99. <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addVertexAt</span><span class="ActionScriptBracket/Brace">(</span>0<span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">index</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"M"</span><span class="ActionScriptBracket/Brace">)</span>;
  100. <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addVertexAt</span><span class="ActionScriptBracket/Brace">(</span>1<span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">index</span><span class="ActionScriptOperator">+</span>1<span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"L"</span><span class="ActionScriptBracket/Brace">)</span>;
  101. <span class="ActionScriptDefault_Text">face</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addVertexAt</span><span class="ActionScriptBracket/Brace">(</span>2<span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">v</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">index</span><span class="ActionScriptOperator">+</span>2<span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"L"</span><span class="ActionScriptBracket/Brace">)</span>;
  102. <span class="ActionScriptDefault_Text">index</span><span class="ActionScriptOperator">+=</span>3;
  103. <span class="ActionScriptBracket/Brace">}</span>
  104. <span class="ActionScriptDefault_Text">v</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">null</span>;
  105. <span class="ActionScriptBracket/Brace">}</span>
  106. <span class="ActionScriptBracket/Brace">}</span>
  107. <span class="ActionScriptASDoc">/**
  108. * Class Explode corrects all the faces of an object3d with unic vertexes. &lt;code&gt;Explode&lt;/code&gt;
  109. * Each faces can then be moved independently without influence for the surrounding faces.
  110. *
  111. * @param unicmeshes [optional] Boolean. Defines if an isolated face becomes a unic Mesh objects or not. Default = false;
  112. * @param recenter [optional] Boolean. Defines if unicmeshes is true, if the unic meshes are recentered or not. Default = false;
  113. */</span>
  114. <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">Explode</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">unicmeshes</span>:<span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">recenter</span>:<span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  115. <span class="ActionScriptDefault_Text">_unicmeshes</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">unicmeshes</span>;
  116. <span class="ActionScriptDefault_Text">_recenter</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">recenter</span>;
  117. <span class="ActionScriptBracket/Brace">}</span>
  118. <span class="ActionScriptASDoc">/**
  119. * Apply the explode code to a given object3D
  120. *
  121. * @param object3d Object3D. The target Object3d object.
  122. *
  123. * @return Object3D if unicmeshes, returns an ObjectContainer3D with all the unic meshes in it, or the original object3d affected by the explode code.
  124. */</span>
  125. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">apply</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span>:<span class="ActionScriptDefault_Text">Object3D</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Object3D</span>
  126. <span class="ActionScriptBracket/Brace">{</span>
  127. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_unicmeshes</span><span class="ActionScriptBracket/Brace">)</span>
  128. <span class="ActionScriptDefault_Text">_container</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ObjectContainer3D</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  129. <span class="ActionScriptDefault_Text">parse</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">object3d</span><span class="ActionScriptBracket/Brace">)</span>;
  130. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_unicmeshes</span><span class="ActionScriptBracket/Brace">)</span>
  131. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_container</span>;
  132. <span class="ActionScriptReserved">else</span>
  133. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">object3d</span>;
  134. <span class="ActionScriptBracket/Brace">}</span>
  135. <span class="ActionScriptASDoc">/**
  136. * Defines if an isolated face becomes a unic Mesh objects or not. Class default = false;
  137. */</span>
  138. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">unicmeshes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">b</span>:<span class="ActionScriptDefault_Text">Boolean</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  139. <span class="ActionScriptBracket/Brace">{</span>
  140. <span class="ActionScriptDefault_Text">_unicmeshes</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">b</span>;
  141. <span class="ActionScriptBracket/Brace">}</span>
  142. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">unicmeshes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Boolean</span>
  143. <span class="ActionScriptBracket/Brace">{</span>
  144. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_unicmeshes</span>;
  145. <span class="ActionScriptBracket/Brace">}</span>
  146. <span class="ActionScriptASDoc">/**
  147. * if unicmeshes is true, defines if the unic meshes are recentered or not. Default = false;
  148. */</span>
  149. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">recenter</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">b</span>:<span class="ActionScriptDefault_Text">Boolean</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  150. <span class="ActionScriptBracket/Brace">{</span>
  151. <span class="ActionScriptDefault_Text">_recenter</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">b</span>;
  152. <span class="ActionScriptBracket/Brace">}</span>
  153. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">recenter</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Boolean</span>
  154. <span class="ActionScriptBracket/Brace">{</span>
  155. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_recenter</span>;
  156. <span class="ActionScriptBracket/Brace">}</span>
  157. <span class="ActionScriptBracket/Brace">}</span>
  158. <span class="ActionScriptBracket/Brace">}</span></pre></body>
  159. </html>