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

https://github.com/davidcoleman007/AS3MazeSolver · HTML · 207 lines · 176 code · 30 blank · 1 comment · 0 complexity · 9b397d70273baefeb212a36d9cb7b96e 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>PhongMultiPassMaterial.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">lights</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">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">geom</span><span class="ActionScriptOperator">.</span><span class="ActionScriptOperator">*</span>;
  17. <span class="ActionScriptReserved">use</span> <span class="ActionScriptReserved">namespace</span> <span class="ActionScriptDefault_Text">arcane</span>;
  18. <span class="ActionScriptASDoc">/**
  19. * A Phong texel shader material supporting multiple lights.
  20. */</span>
  21. <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">PhongMultiPassMaterial</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">MultiPassShaderMaterial</span>
  22. <span class="ActionScriptBracket/Brace">{</span>
  23. <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Embed</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"../pbks/PhongMultiPassShader.pbj"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">mimeType</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"application/octet-stream"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
  24. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">NormalKernel</span> : <span class="ActionScriptDefault_Text">Class</span>;
  25. <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Embed</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"../pbks/PhongMultiPassSpecularShader.pbj"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">mimeType</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"application/octet-stream"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
  26. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">SpecularKernel</span> : <span class="ActionScriptDefault_Text">Class</span>;
  27. <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Embed</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"../pbks/PhongMultiPassDirShader.pbj"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">mimeType</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"application/octet-stream"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
  28. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">NormalKernelDir</span> : <span class="ActionScriptDefault_Text">Class</span>;
  29. <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Embed</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"../pbks/PhongMultiPassSpecularDirShader.pbj"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">mimeType</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"application/octet-stream"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
  30. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">SpecularKernelDir</span> : <span class="ActionScriptDefault_Text">Class</span>;
  31. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_objectViewPos</span> : <span class="ActionScriptDefault_Text">Vector3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vector3D</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  32. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_objectLightPos</span> : <span class="ActionScriptDefault_Text">Vector3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Vector3D</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
  33. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_specular</span> : <span class="ActionScriptDefault_Text">Number</span>;
  34. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_specularMap</span> : <span class="ActionScriptDefault_Text">BitmapData</span>;
  35. <span class="ActionScriptASDoc">/**
  36. * Creates a PhongMultiPassMaterial.
  37. *
  38. * @param bitmap The texture to be used for the diffuse shading
  39. * @param normalMap An object-space normal map
  40. * @param targetModel The target mesh for which this shader is applied
  41. * @param specularMap An optional specular map BitmapData, which modulates the specular reflections
  42. * @param init An initialisation object
  43. */</span>
  44. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">PhongMultiPassMaterial</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">normalMap</span>:<span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">targetModel</span>:<span class="ActionScriptDefault_Text">Mesh</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">specularMap</span> : <span class="ActionScriptDefault_Text">BitmapData</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">null</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>
  45. <span class="ActionScriptBracket/Brace">{</span>
  46. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shaderPt</span> : <span class="ActionScriptDefault_Text">Shader</span>;
  47. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shaderDir</span> : <span class="ActionScriptDefault_Text">Shader</span>;
  48. <span class="ActionScriptDefault_Text">_specularMap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">specularMap</span>;
  49. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  50. <span class="ActionScriptDefault_Text">shaderPt</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SpecularKernel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  51. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">specularMap</span>;
  52. <span class="ActionScriptDefault_Text">shaderDir</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SpecularKernelDir</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  53. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">specularMap</span>;
  54. <span class="ActionScriptBracket/Brace">}</span>
  55. <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
  56. <span class="ActionScriptDefault_Text">shaderPt</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">NormalKernel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  57. <span class="ActionScriptDefault_Text">shaderDir</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">NormalKernelDir</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  58. <span class="ActionScriptBracket/Brace">}</span>
  59. <span class="ActionScriptReserved">super</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bitmap</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">normalMap</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">targetModel</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">init</span><span class="ActionScriptBracket/Brace">)</span>;
  60. <span class="ActionScriptComment">// increase the performance of pow, in which precision is not that important
  61. </span> <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  62. <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  63. <span class="ActionScriptDefault_Text">gloss</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">"gloss"</span><span class="ActionScriptOperator">,</span> 10<span class="ActionScriptBracket/Brace">)</span>;
  64. <span class="ActionScriptDefault_Text">_specular</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">"specular"</span><span class="ActionScriptOperator">,</span> 1<span class="ActionScriptBracket/Brace">)</span>;
  65. <span class="ActionScriptBracket/Brace">}</span>
  66. <span class="ActionScriptASDoc">/**
  67. * An optional specular map BitmapData, which modulates the specular reflections
  68. */</span>
  69. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptDefault_Text">BitmapData</span>
  70. <span class="ActionScriptBracket/Brace">{</span>
  71. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_specularMap</span>;
  72. <span class="ActionScriptBracket/Brace">}</span>
  73. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span> : <span class="ActionScriptDefault_Text">BitmapData</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptReserved">void</span>
  74. <span class="ActionScriptBracket/Brace">{</span>
  75. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shaderPt</span> : <span class="ActionScriptDefault_Text">Shader</span>;
  76. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shaderDir</span> : <span class="ActionScriptDefault_Text">Shader</span>;
  77. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_specularMap</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  78. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  79. <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  80. <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  81. <span class="ActionScriptBracket/Brace">}</span>
  82. <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
  83. <span class="ActionScriptDefault_Text">shaderPt</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">NormalKernel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  84. <span class="ActionScriptDefault_Text">shaderDir</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">NormalKernelDir</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  85. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gloss</span>;
  86. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gloss</span>;
  87. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">normalMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  88. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">normalMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  89. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  90. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  91. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span>;
  92. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span>;
  93. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  94. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  95. <span class="ActionScriptDefault_Text">_pointLightShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">shaderPt</span>;
  96. <span class="ActionScriptDefault_Text">_directionalLightShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">shaderDir</span>;
  97. <span class="ActionScriptBracket/Brace">}</span>
  98. <span class="ActionScriptBracket/Brace">}</span>
  99. <span class="ActionScriptReserved">else</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  100. <span class="ActionScriptDefault_Text">shaderPt</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SpecularKernel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  101. <span class="ActionScriptDefault_Text">shaderDir</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Shader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SpecularKernelDir</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
  102. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gloss</span>;
  103. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gloss</span>;
  104. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  105. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">specularMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  106. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">normalMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  107. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">normalMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  108. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  109. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionMap</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">input</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_normalMap</span>;
  110. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span>;
  111. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">positionTransformation</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span>;
  112. <span class="ActionScriptDefault_Text">shaderPt</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  113. <span class="ActionScriptDefault_Text">shaderDir</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">precisionHint</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">ShaderPrecision</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FAST</span>;
  114. <span class="ActionScriptDefault_Text">_pointLightShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">shaderPt</span>;
  115. <span class="ActionScriptDefault_Text">_directionalLightShader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">shaderDir</span>;
  116. <span class="ActionScriptBracket/Brace">}</span>
  117. <span class="ActionScriptDefault_Text">_specularMap</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  118. <span class="ActionScriptBracket/Brace">}</span>
  119. <span class="ActionScriptASDoc">/**
  120. * The gloss component of the specular highlight. Higher numbers will result in a smaller and sharper highlight.
  121. */</span>
  122. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">gloss</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptDefault_Text">Number</span>
  123. <span class="ActionScriptBracket/Brace">{</span>
  124. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span>;
  125. <span class="ActionScriptBracket/Brace">}</span>
  126. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">gloss</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span> : <span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptReserved">void</span>
  127. <span class="ActionScriptBracket/Brace">{</span>
  128. <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  129. <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">phongComponents</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">[</span>1<span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  130. <span class="ActionScriptBracket/Brace">}</span>
  131. <span class="ActionScriptASDoc">/**
  132. * The strength of the specular highlight
  133. */</span>
  134. <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">Number</span>
  135. <span class="ActionScriptBracket/Brace">{</span>
  136. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_specular</span>;
  137. <span class="ActionScriptBracket/Brace">}</span>
  138. <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">value</span> : <span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span> : <span class="ActionScriptReserved">void</span>
  139. <span class="ActionScriptBracket/Brace">{</span>
  140. <span class="ActionScriptDefault_Text">_specular</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
  141. <span class="ActionScriptBracket/Brace">}</span>
  142. <span class="ActionScriptASDoc">/**
  143. * @inheritDoc
  144. */</span>
  145. <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">protected</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updatePixelShader</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>
  146. <span class="ActionScriptBracket/Brace">{</span>
  147. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">invSceneTransform</span> : <span class="ActionScriptDefault_Text">Matrix3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">inverseSceneTransform</span>;
  148. <span class="ActionScriptDefault_Text">_objectViewPos</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">invSceneTransform</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">transformVector</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">view</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">camera</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">position</span><span class="ActionScriptBracket/Brace">)</span>;
  149. <span class="ActionScriptDefault_Text">_directionalLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">viewPos</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">viewPos</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[</span> <span class="ActionScriptDefault_Text">_objectViewPos</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">_objectViewPos</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">_objectViewPos</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptBracket/Brace">]</span>;
  150. <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updatePixelShader</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>;
  151. <span class="ActionScriptBracket/Brace">}</span>
  152. <span class="ActionScriptASDoc">/**
  153. * @inheritDoc
  154. */</span>
  155. <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">protected</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">renderLightMap</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
  156. <span class="ActionScriptBracket/Brace">{</span>
  157. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">scenePosition</span> : <span class="ActionScriptDefault_Text">Vector3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">scenePosition</span>;
  158. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">lightPosition</span> : <span class="ActionScriptDefault_Text">Vector3D</span>;
  159. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">lightDirection</span> : <span class="ActionScriptDefault_Text">Vector3D</span>;
  160. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">invSceneTransform</span> : <span class="ActionScriptDefault_Text">Matrix3D</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">inverseSceneTransform</span>;
  161. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shaderJob</span> : <span class="ActionScriptDefault_Text">ShaderJob</span>;
  162. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">diffuseStr</span> : <span class="ActionScriptDefault_Text">Number</span>;
  163. <span class="ActionScriptDefault_Text">_pointLightShader</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">data</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">objectScale</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">scaleX</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">scaleY</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">scaleZ</span> <span class="ActionScriptBracket/Brace">]</span>;
  164. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_points</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  165. <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">_points</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span>;
  166. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">point</span> : <span class="ActionScriptDefault_Text">PointLight3D</span>;
  167. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">boundRadius</span> : <span class="ActionScriptDefault_Text">Number</span>;
  168. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">dist</span> : <span class="ActionScriptDefault_Text">Number</span>;
  169. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">infinite</span> : <span class="ActionScriptDefault_Text">Boolean</span>;
  170. <span class="ActionScriptDefault_Text">boundRadius</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">_boundingRadius</span><span class="ActionScriptOperator">*</span><span class="ActionScriptDefault_Text">_mesh</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">_boundingScale</span>;
  171. <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">--</span><span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator">&gt;=</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  172. <span class="ActionScriptDefault_Text">point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_points</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span>;
  173. <span class="ActionScriptDefault_Text">diffuseStr</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">diffuse</span><span class="ActionScriptOperator">*</span>.5;
  174. <span class="ActionScriptDefault_Text">infinite</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">fallOff</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">POSITIVE_INFINITY</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">fallOff</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">NEGATIVE_INFINITY</span><span class="ActionScriptBracket/Brace">)</span>;
  175. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">infinite</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  176. <span class="ActionScriptDefault_Text">lightPosition</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">position</span>;
  177. <span class="ActionScriptDefault_Text">dist</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">lightPosition</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">-</span><span class="ActionScriptDefault_Text">scenePosition</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">*</span><