/bin-release/srcview/source/away3d/materials/Dot3BitmapMaterial.as.html

https://github.com/davidcoleman007/AS3MazeSolver · HTML · 183 lines · 150 code · 32 blank · 1 comment · 0 complexity · 566d8f52c9613c930f6d76fcbe8e5c3d 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>Dot3BitmapMaterial.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">materials</span>
  10. <span class="ActionScriptBracket/Brace">{</span>
  11. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">away3d</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">arcane</span>;
  12. <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="ActionScriptOperator">*</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="ActionScriptOperator">*</span>;
  14. <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">shaders</span><span class="ActionScriptOperator">.</span><span class="ActionScriptOperator">*</span>;
  15. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">display</span><span class="ActionScriptOperator">.</span><span class="ActionScriptOperator">*</span>;
  16. <span class="ActionScriptReserved">use</span> <span class="ActionScriptReserved">namespace</span> <span class="ActionScriptDefault_Text">arcane</span>;
  17. <span class="ActionScriptASDoc">/**
  18. * Bitmap material with DOT3 shading.
  19. */</span>
  20. <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">Dot3BitmapMaterial</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">CompositeMaterial</span>
  21. <span class="ActionScriptBracket/Brace">{</span>
  22. <span class="ActionScriptASDoc">/** @private */</span>
  23. <span class="ActionScriptDefault_Text">arcane</span> <span class="ActionScriptReserved">override</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updateMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">source</span>:<span class="ActionScriptDefault_Text">Object3D</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">view</span>:<span class="ActionScriptDefault_Text">View3D</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  24. <span class="ActionScriptBracket/Brace">{</span>
  25. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_normalBitmapDirty</span><span class="ActionScriptBracket/Brace">)</span>
  26. <span class="ActionScriptDefault_Text">updateNormalBitmap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  27. <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updateMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">source</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">view</span><span class="ActionScriptBracket/Brace">)</span>;
  28. <span class="ActionScriptBracket/Brace">}</span>
  29. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_shininess</span>:<span class="ActionScriptDefault_Text">Number</span>;
  30. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_specular</span>:<span class="ActionScriptDefault_Text">uint</span>;
  31. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_normalBitmap</span>:<span class="ActionScriptDefault_Text">BitmapData</span>;
  32. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_renderNormalBitmap</span>:<span class="ActionScriptDefault_Text">BitmapData</span>;
  33. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_textureMaterial</span>:<span class="ActionScriptDefault_Text">BitmapMaterial</span>;
  34. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_phongShader</span>:<span class="ActionScriptDefault_Text">CompositeMaterial</span>;
  35. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_ambientShader</span>:<span class="ActionScriptDefault_Text">AmbientShader</span>;
  36. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_diffuseDot3Shader</span>:<span class="ActionScriptDefault_Text">DiffuseDot3Shader</span>;
  37. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_specularDot3Shader</span>:<span class="ActionScriptDefault_Text">SpecularDot3Shader</span>;
  38. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_normalBitmapDirty</span>:<span class="ActionScriptDefault_Text">Boolean</span>;
  39. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updateNormalBitmap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  40. <span class="ActionScriptBracket/Brace">{</span>
  41. <span class="ActionScriptDefault_Text">_normalBitmapDirty</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>;
  42. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">w</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">width</span>;
  43. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">h</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">height</span>;
  44. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">h</span>;
  45. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">j</span>:<span class="ActionScriptDefault_Text">int</span>;
  46. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">pixelValue</span>:<span class="ActionScriptDefault_Text">int</span>;
  47. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">rValue</span>:<span class="ActionScriptDefault_Text">Number</span>;
  48. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gValue</span>:<span class="ActionScriptDefault_Text">Number</span>;
  49. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">bValue</span>:<span class="ActionScriptDefault_Text">Number</span>;
  50. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mod</span>:<span class="ActionScriptDefault_Text">Number</span>;
  51. <span class="ActionScriptDefault_Text">_renderNormalBitmap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_normalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">width</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">_normalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">height</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptReserved">true</span><span class="ActionScriptOperator">,</span> 0<span class="ActionScriptBracket/Brace">)</span>;
  52. <span class="ActionScriptComment">//normalise map
  53. </span> <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  54. <span class="ActionScriptDefault_Text">j</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">w</span>;
  55. <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">j</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  56. <span class="ActionScriptComment">//get values
  57. </span> <span class="ActionScriptDefault_Text">pixelValue</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getPixel32</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">j</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span>;
  58. <span class="ActionScriptDefault_Text">rValue</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">pixelValue</span> <span class="ActionScriptOperator">&amp;</span> 0x00FF0000<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&gt;&gt;</span> 16<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">-</span> 127;
  59. <span class="ActionScriptDefault_Text">gValue</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">pixelValue</span> <span class="ActionScriptOperator">&amp;</span> 0x0000FF00<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&gt;&gt;</span> 8<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">-</span> 127;
  60. <span class="ActionScriptDefault_Text">bValue</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">pixelValue</span> <span class="ActionScriptOperator">&amp;</span> 0x000000FF<span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">-</span> 127;
  61. <span class="ActionScriptComment">//calculate modulus
  62. </span> <span class="ActionScriptDefault_Text">mod</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">sqrt</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">rValue</span><span class="ActionScriptOperator">*</span><span class="ActionScriptDefault_Text">rValue</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">gValue</span><span class="ActionScriptOperator">*</span><span class="ActionScriptDefault_Text">gValue</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">bValue</span><span class="ActionScriptOperator">*</span><span class="ActionScriptDefault_Text">bValue</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">*</span>2;
  63. <span class="ActionScriptComment">//set normalised values
  64. </span> <span class="ActionScriptDefault_Text">_renderNormalBitmap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setPixel32</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">j</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptBracket/Brace">(</span>0xFF <span class="ActionScriptOperator">&lt;&lt;</span> 24<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">int</span><span class="ActionScriptBracket/Brace">(</span>0xFF<span class="ActionScriptOperator">*</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">rValue</span><span class="ActionScriptOperator">/</span><span class="ActionScriptDefault_Text">mod</span> <span class="ActionScriptOperator">+</span> 0.5<span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&lt;&lt;</span> 16<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">int</span><span class="ActionScriptBracket/Brace">(</span>0xFF<span class="ActionScriptOperator">*</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">gValue</span><span class="ActionScriptOperator">/</span><span class="ActionScriptDefault_Text">mod</span> <span class="ActionScriptOperator">+</span> 0.5<span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&lt;&lt;</span> 8<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">int</span><span class="ActionScriptBracket/Brace">(</span>0xFF<span class="ActionScriptOperator">*</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bValue</span><span class="ActionScriptOperator">/</span><span class="ActionScriptDefault_Text">mod</span> <span class="ActionScriptOperator">+</span> 0.5<span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  65. <span class="ActionScriptBracket/Brace">}</span>
  66. <span class="ActionScriptBracket/Brace">}</span>
  67. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_diffuseDot3Shader</span><span class="ActionScriptBracket/Brace">)</span>
  68. <span class="ActionScriptDefault_Text">_diffuseDot3Shader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">bitmap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_renderNormalBitmap</span>;
  69. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptBracket/Brace">)</span>
  70. <span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">bitmap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_renderNormalBitmap</span>;
  71. <span class="ActionScriptBracket/Brace">}</span>
  72. <span class="ActionScriptASDoc">/**
  73. * The exponential dropoff value used for specular highlights.
  74. */</span>
  75. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">shininess</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Number</span>
  76. <span class="ActionScriptBracket/Brace">{</span>
  77. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_shininess</span>;
  78. <span class="ActionScriptBracket/Brace">}</span>
  79. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">shininess</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">val</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  80. <span class="ActionScriptBracket/Brace">{</span>
  81. <span class="ActionScriptDefault_Text">_shininess</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">val</span>;
  82. <span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">shininess</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">val</span>;
  83. <span class="ActionScriptBracket/Brace">}</span>
  84. <span class="ActionScriptASDoc">/**
  85. * Coefficient for specular light level.
  86. */</span>
  87. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">specular</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">uint</span>
  88. <span class="ActionScriptBracket/Brace">{</span>
  89. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_specular</span>;
  90. <span class="ActionScriptBracket/Brace">}</span>
  91. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">specular</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">val</span>:<span class="ActionScriptDefault_Text">uint</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  92. <span class="ActionScriptBracket/Brace">{</span>
  93. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">val</span><span class="ActionScriptBracket/Brace">)</span>
  94. <span class="ActionScriptReserved">return</span>;
  95. <span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">val</span>;
  96. <span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specular</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">val</span>;
  97. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">materials</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span> <span class="ActionScriptOperator">&lt;</span> 3<span class="ActionScriptBracket/Brace">)</span>
  98. <span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptBracket/Brace">)</span>;
  99. <span class="ActionScriptReserved">else</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">materials</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span> <span class="ActionScriptOperator">&gt;</span> 2<span class="ActionScriptBracket/Brace">)</span>
  100. <span class="ActionScriptDefault_Text">removeMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptBracket/Brace">)</span>;
  101. <span class="ActionScriptBracket/Brace">}</span>
  102. <span class="ActionScriptASDoc">/**
  103. * Returns the bitmapData object being used as the material normal map.
  104. */</span>
  105. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">normalBitmap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">BitmapData</span>
  106. <span class="ActionScriptBracket/Brace">{</span>
  107. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_normalBitmap</span>;
  108. <span class="ActionScriptBracket/Brace">}</span>
  109. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">normalBitmap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">val</span>:<span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  110. <span class="ActionScriptBracket/Brace">{</span>
  111. <span class="ActionScriptDefault_Text">_normalBitmap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">val</span>;
  112. <span class="ActionScriptDefault_Text">_normalBitmapDirty</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">true</span>;
  113. <span class="ActionScriptBracket/Brace">}</span>
  114. <span class="ActionScriptASDoc">/**
  115. * Returns the bitmap material being used as the material texture.
  116. */</span>
  117. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">textureMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">BitmapMaterial</span>
  118. <span class="ActionScriptBracket/Brace">{</span>
  119. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_textureMaterial</span>;
  120. <span class="ActionScriptBracket/Brace">}</span>
  121. <span class="ActionScriptASDoc">/**
  122. * Creates a new &lt;code&gt;Dot3BitmapMaterial&lt;/code&gt; object.
  123. *
  124. * @param bitmap The bitmapData object to be used as the material's texture.
  125. * @param normalMap The bitmapData object to be used as the material's DOT3 map.
  126. * @param init [optional] An initialisation object for specifying default instance properties.
  127. */</span>
  128. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">Dot3BitmapMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bitmap</span>:<span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">normalBitmap</span>:<span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">init</span>:<span class="ActionScriptDefault_Text">Object</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">null</span><span class="ActionScriptBracket/Brace">)</span>
  129. <span class="ActionScriptBracket/Brace">{</span>
  130. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">init</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">init</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptString">"materials"</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">)</span>
  131. <span class="ActionScriptReserved">delete</span> <span class="ActionScriptDefault_Text">init</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptString">"materials"</span><span class="ActionScriptBracket/Brace">]</span>;
  132. <span class="ActionScriptReserved">super</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">init</span><span class="ActionScriptBracket/Brace">)</span>;
  133. <span class="ActionScriptDefault_Text">_shininess</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ini</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getNumber</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"shininess"</span><span class="ActionScriptOperator">,</span> 20<span class="ActionScriptBracket/Brace">)</span>;
  134. <span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ini</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getColor</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"specular"</span><span class="ActionScriptOperator">,</span> 0xFFFFFF<span class="ActionScriptBracket/Brace">)</span>;
  135. <span class="ActionScriptDefault_Text">_normalBitmap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">normalBitmap</span>;
  136. <span class="ActionScriptDefault_Text">updateNormalBitmap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  137. <span class="ActionScriptComment">//create new materials
  138. </span> <span class="ActionScriptDefault_Text">_textureMaterial</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">BitmapMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bitmap</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">ini</span><span class="ActionScriptBracket/Brace">)</span>;
  139. <span class="ActionScriptDefault_Text">_phongShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">CompositeMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">{</span><span class="ActionScriptDefault_Text">blendMode</span>:<span class="ActionScriptDefault_Text">BlendMode</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">MULTIPLY</span><span class="ActionScriptBracket/Brace">}</span><span class="ActionScriptBracket/Brace">)</span>;
  140. <span class="ActionScriptDefault_Text">_phongShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_ambientShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">AmbientShader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">{</span><span class="ActionScriptDefault_Text">blendMode</span>:<span class="ActionScriptDefault_Text">BlendMode</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ADD</span><span class="ActionScriptBracket/Brace">}</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  141. <span class="ActionScriptDefault_Text">_phongShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_diffuseDot3Shader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">DiffuseDot3Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_renderNormalBitmap</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptBracket/Brace">{</span><span class="ActionScriptDefault_Text">blendMode</span>:<span class="ActionScriptDefault_Text">BlendMode</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ADD</span><span class="ActionScriptBracket/Brace">}</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  142. <span class="ActionScriptDefault_Text">_specularDot3Shader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SpecularDot3Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_renderNormalBitmap</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptBracket/Brace">{</span><span class="ActionScriptDefault_Text">shininess</span>:<span class="ActionScriptDefault_Text">_shininess</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">specular</span>:<span class="ActionScriptDefault_Text">_specular</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">blendMode</span>:<span class="ActionScriptDefault_Text">BlendMode</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ADD</span><span class="ActionScriptBracket/Brace">}</span><span class="ActionScriptBracket/Brace">)</span>;
  143. <span class="ActionScriptComment">//add to materials array
  144. </span> <span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_textureMaterial</span><span class="ActionScriptBracket/Brace">)</span>;
  145. <span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_phongShader</span><span class="ActionScriptBracket/Brace">)</span>;
  146. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specular</span><span class="ActionScriptBracket/Brace">)</span>
  147. <span class="ActionScriptDefault_Text">addMaterial</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specularDot3Shader</span><span class="ActionScriptBracket/Brace">)</span>;
  148. <span class="ActionScriptBracket/Brace">}</span>
  149. <span class="ActionScriptBracket/Brace">}</span>
  150. <span class="ActionScriptBracket/Brace">}</span></pre></body>
  151. </html>