@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +3 -0
  3. package/dist/RenderingEngine.d.ts +296 -0
  4. package/dist/RenderingEngine.d.ts.map +1 -0
  5. package/dist/RenderingEngine.js +1079 -0
  6. package/dist/RenderingEngine.js.map +1 -0
  7. package/dist/index.d.ts +12 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +47 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/injectors/Tag3dGeometryCreationInjector.d.ts +11 -0
  12. package/dist/injectors/Tag3dGeometryCreationInjector.d.ts.map +1 -0
  13. package/dist/injectors/Tag3dGeometryCreationInjector.js +169 -0
  14. package/dist/injectors/Tag3dGeometryCreationInjector.js.map +1 -0
  15. package/dist/injectors/TextureUnifierInjector.d.ts +14 -0
  16. package/dist/injectors/TextureUnifierInjector.d.ts.map +1 -0
  17. package/dist/injectors/TextureUnifierInjector.js +227 -0
  18. package/dist/injectors/TextureUnifierInjector.js.map +1 -0
  19. package/dist/interfaces/ILoader.d.ts +4 -0
  20. package/dist/interfaces/ILoader.d.ts.map +1 -0
  21. package/dist/interfaces/ILoader.js +3 -0
  22. package/dist/interfaces/ILoader.js.map +1 -0
  23. package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts +307 -0
  24. package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts.map +1 -0
  25. package/dist/interfaces/IPostProcessingEffectDefinitions.js +31 -0
  26. package/dist/interfaces/IPostProcessingEffectDefinitions.js.map +1 -0
  27. package/dist/interfaces/IRenderingEngine.d.ts +43 -0
  28. package/dist/interfaces/IRenderingEngine.d.ts.map +1 -0
  29. package/dist/interfaces/IRenderingEngine.js +3 -0
  30. package/dist/interfaces/IRenderingEngine.js.map +1 -0
  31. package/dist/loaders/EnvironmentMapLoader.d.ts +98 -0
  32. package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -0
  33. package/dist/loaders/EnvironmentMapLoader.js +348 -0
  34. package/dist/loaders/EnvironmentMapLoader.js.map +1 -0
  35. package/dist/loaders/GeometryLoader.d.ts +38 -0
  36. package/dist/loaders/GeometryLoader.d.ts.map +1 -0
  37. package/dist/loaders/GeometryLoader.js +505 -0
  38. package/dist/loaders/GeometryLoader.js.map +1 -0
  39. package/dist/loaders/HTMLElementAnchorLoader.d.ts +17 -0
  40. package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -0
  41. package/dist/loaders/HTMLElementAnchorLoader.js +84 -0
  42. package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -0
  43. package/dist/loaders/LightLoader.d.ts +19 -0
  44. package/dist/loaders/LightLoader.d.ts.map +1 -0
  45. package/dist/loaders/LightLoader.js +152 -0
  46. package/dist/loaders/LightLoader.js.map +1 -0
  47. package/dist/loaders/MaterialLoader.d.ts +99 -0
  48. package/dist/loaders/MaterialLoader.d.ts.map +1 -0
  49. package/dist/loaders/MaterialLoader.js +1175 -0
  50. package/dist/loaders/MaterialLoader.js.map +1 -0
  51. package/dist/managers/CameraManager.d.ts +20 -0
  52. package/dist/managers/CameraManager.d.ts.map +1 -0
  53. package/dist/managers/CameraManager.js +195 -0
  54. package/dist/managers/CameraManager.js.map +1 -0
  55. package/dist/managers/EnvironmentGeometryManager.d.ts +43 -0
  56. package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -0
  57. package/dist/managers/EnvironmentGeometryManager.js +210 -0
  58. package/dist/managers/EnvironmentGeometryManager.js.map +1 -0
  59. package/dist/managers/PostProcessingManager.d.ts +1014 -0
  60. package/dist/managers/PostProcessingManager.d.ts.map +1 -0
  61. package/dist/managers/PostProcessingManager.js +1013 -0
  62. package/dist/managers/PostProcessingManager.js.map +1 -0
  63. package/dist/managers/RenderingManager.d.ts +83 -0
  64. package/dist/managers/RenderingManager.d.ts.map +1 -0
  65. package/dist/managers/RenderingManager.js +567 -0
  66. package/dist/managers/RenderingManager.js.map +1 -0
  67. package/dist/managers/SceneTracingManager.d.ts +26 -0
  68. package/dist/managers/SceneTracingManager.d.ts.map +1 -0
  69. package/dist/managers/SceneTracingManager.js +122 -0
  70. package/dist/managers/SceneTracingManager.js.map +1 -0
  71. package/dist/managers/SceneTreeManager.d.ts +55 -0
  72. package/dist/managers/SceneTreeManager.d.ts.map +1 -0
  73. package/dist/managers/SceneTreeManager.js +501 -0
  74. package/dist/managers/SceneTreeManager.js.map +1 -0
  75. package/dist/managers/postprocessing/GodRaysManager.d.ts +13 -0
  76. package/dist/managers/postprocessing/GodRaysManager.d.ts.map +1 -0
  77. package/dist/managers/postprocessing/GodRaysManager.js +64 -0
  78. package/dist/managers/postprocessing/GodRaysManager.js.map +1 -0
  79. package/dist/managers/postprocessing/OutlineManager.d.ts +15 -0
  80. package/dist/managers/postprocessing/OutlineManager.d.ts.map +1 -0
  81. package/dist/managers/postprocessing/OutlineManager.js +67 -0
  82. package/dist/managers/postprocessing/OutlineManager.js.map +1 -0
  83. package/dist/managers/postprocessing/SSAARenderPass.d.ts +54 -0
  84. package/dist/managers/postprocessing/SSAARenderPass.d.ts.map +1 -0
  85. package/dist/managers/postprocessing/SSAARenderPass.js +234 -0
  86. package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -0
  87. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +15 -0
  88. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts.map +1 -0
  89. package/dist/managers/postprocessing/SelectiveBloomManager.js +67 -0
  90. package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -0
  91. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +47 -0
  92. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts.map +1 -0
  93. package/dist/managers/postprocessing/ao/ao/AOEffect.js +134 -0
  94. package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -0
  95. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +13 -0
  96. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -0
  97. package/dist/managers/postprocessing/ao/ao/AOPass.js +78 -0
  98. package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -0
  99. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +2 -0
  100. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts.map +1 -0
  101. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +23 -0
  102. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js.map +1 -0
  103. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +15 -0
  104. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts.map +1 -0
  105. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +25 -0
  106. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -0
  107. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +2 -0
  108. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts.map +1 -0
  109. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +102 -0
  110. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js.map +1 -0
  111. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts +2 -0
  112. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts.map +1 -0
  113. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js +99 -0
  114. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js.map +1 -0
  115. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +37 -0
  116. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -0
  117. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +171 -0
  118. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -0
  119. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +2 -0
  120. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts.map +1 -0
  121. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +131 -0
  122. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js.map +1 -0
  123. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +15 -0
  124. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -0
  125. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +76 -0
  126. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -0
  127. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +2 -0
  128. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts.map +1 -0
  129. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +134 -0
  130. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js.map +1 -0
  131. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +2 -0
  132. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -0
  133. package/dist/managers/postprocessing/ao/utils/shader/basic.js +12 -0
  134. package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -0
  135. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +2 -0
  136. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts.map +1 -0
  137. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +42 -0
  138. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js.map +1 -0
  139. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +38 -0
  140. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts.map +1 -0
  141. package/dist/managers/postprocessing/utils/CopyMaterial.js +106 -0
  142. package/dist/managers/postprocessing/utils/CopyMaterial.js.map +1 -0
  143. package/dist/managers/postprocessing/utils/CopyShader.d.ts +14 -0
  144. package/dist/managers/postprocessing/utils/CopyShader.d.ts.map +1 -0
  145. package/dist/managers/postprocessing/utils/CopyShader.js +36 -0
  146. package/dist/managers/postprocessing/utils/CopyShader.js.map +1 -0
  147. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +10 -0
  148. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -0
  149. package/dist/managers/postprocessing/utils/FullScreenQuad.js +29 -0
  150. package/dist/managers/postprocessing/utils/FullScreenQuad.js.map +1 -0
  151. package/dist/managers/postprocessing/utils/NormalPass.d.ts +88 -0
  152. package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -0
  153. package/dist/managers/postprocessing/utils/NormalPass.js +157 -0
  154. package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -0
  155. package/dist/managers/postprocessing/utils/RenderPass.d.ts +115 -0
  156. package/dist/managers/postprocessing/utils/RenderPass.d.ts.map +1 -0
  157. package/dist/managers/postprocessing/utils/RenderPass.js +251 -0
  158. package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -0
  159. package/dist/materials/GemMaterial.d.ts +38 -0
  160. package/dist/materials/GemMaterial.d.ts.map +1 -0
  161. package/dist/materials/GemMaterial.js +253 -0
  162. package/dist/materials/GemMaterial.js.map +1 -0
  163. package/dist/materials/MeshUnlitMaterialParameters.d.ts +4 -0
  164. package/dist/materials/MeshUnlitMaterialParameters.d.ts.map +1 -0
  165. package/dist/materials/MeshUnlitMaterialParameters.js +3 -0
  166. package/dist/materials/MeshUnlitMaterialParameters.js.map +1 -0
  167. package/dist/materials/MultiPointsMaterial.d.ts +94 -0
  168. package/dist/materials/MultiPointsMaterial.d.ts.map +1 -0
  169. package/dist/materials/MultiPointsMaterial.js +567 -0
  170. package/dist/materials/MultiPointsMaterial.js.map +1 -0
  171. package/dist/materials/SpecularGlossinessMaterial.d.ts +14 -0
  172. package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -0
  173. package/dist/materials/SpecularGlossinessMaterial.js +162 -0
  174. package/dist/materials/SpecularGlossinessMaterial.js.map +1 -0
  175. package/dist/objects/SDBone.d.ts +13 -0
  176. package/dist/objects/SDBone.d.ts.map +1 -0
  177. package/dist/objects/SDBone.js +75 -0
  178. package/dist/objects/SDBone.js.map +1 -0
  179. package/dist/objects/SDColor.d.ts +17 -0
  180. package/dist/objects/SDColor.d.ts.map +1 -0
  181. package/dist/objects/SDColor.js +49 -0
  182. package/dist/objects/SDColor.js.map +1 -0
  183. package/dist/objects/SDData.d.ts +19 -0
  184. package/dist/objects/SDData.d.ts.map +1 -0
  185. package/dist/objects/SDData.js +48 -0
  186. package/dist/objects/SDData.js.map +1 -0
  187. package/dist/objects/SDObject.d.ts +14 -0
  188. package/dist/objects/SDObject.d.ts.map +1 -0
  189. package/dist/objects/SDObject.js +81 -0
  190. package/dist/objects/SDObject.js.map +1 -0
  191. package/dist/shaders/PCSS.d.ts +3 -0
  192. package/dist/shaders/PCSS.d.ts.map +1 -0
  193. package/dist/shaders/PCSS.js +127 -0
  194. package/dist/shaders/PCSS.js.map +1 -0
  195. package/dist/shaders/gem.d.ts +3 -0
  196. package/dist/shaders/gem.d.ts.map +1 -0
  197. package/dist/shaders/gem.js +578 -0
  198. package/dist/shaders/gem.js.map +1 -0
  199. package/dist/shaders/multi_points.d.ts +3 -0
  200. package/dist/shaders/multi_points.d.ts.map +1 -0
  201. package/dist/shaders/multi_points.js +294 -0
  202. package/dist/shaders/multi_points.js.map +1 -0
  203. package/dist/styling/viewport-css.d.ts +2 -0
  204. package/dist/styling/viewport-css.d.ts.map +1 -0
  205. package/dist/styling/viewport-css.js +117 -0
  206. package/dist/styling/viewport-css.js.map +1 -0
  207. package/dist/three/font.d.ts +2365 -0
  208. package/dist/three/font.d.ts.map +1 -0
  209. package/dist/three/font.js +6 -0
  210. package/dist/three/font.js.map +1 -0
  211. package/dist/three/geometries/TextGeometry.d.ts +22 -0
  212. package/dist/three/geometries/TextGeometry.d.ts.map +1 -0
  213. package/dist/three/geometries/TextGeometry.js +45 -0
  214. package/dist/three/geometries/TextGeometry.js.map +1 -0
  215. package/dist/three/loaders/FontLoader.d.ts +15 -0
  216. package/dist/three/loaders/FontLoader.d.ts.map +1 -0
  217. package/dist/three/loaders/FontLoader.js +118 -0
  218. package/dist/three/loaders/FontLoader.js.map +1 -0
  219. package/dist/three/loaders/RGBELoader.d.ts +24 -0
  220. package/dist/three/loaders/RGBELoader.d.ts.map +1 -0
  221. package/dist/three/loaders/RGBELoader.js +299 -0
  222. package/dist/three/loaders/RGBELoader.js.map +1 -0
  223. package/dist/types/IThreejsData.d.ts +7 -0
  224. package/dist/types/IThreejsData.d.ts.map +1 -0
  225. package/dist/types/IThreejsData.js +3 -0
  226. package/dist/types/IThreejsData.js.map +1 -0
  227. package/dist/types/ThreejsData.d.ts +11 -0
  228. package/dist/types/ThreejsData.d.ts.map +1 -0
  229. package/dist/types/ThreejsData.js +42 -0
  230. package/dist/types/ThreejsData.js.map +1 -0
  231. package/package.json +65 -0
  232. package/src/RenderingEngine.ts +1342 -0
  233. package/src/index.ts +23 -0
  234. package/src/injectors/Tag3dGeometryCreationInjector.ts +170 -0
  235. package/src/injectors/TextureUnifierInjector.ts +224 -0
  236. package/src/interfaces/ILoader.ts +3 -0
  237. package/src/interfaces/IPostProcessingEffectDefinitions.ts +402 -0
  238. package/src/interfaces/IRenderingEngine.ts +48 -0
  239. package/src/loaders/EnvironmentMapLoader.ts +355 -0
  240. package/src/loaders/GeometryLoader.ts +565 -0
  241. package/src/loaders/HTMLElementAnchorLoader.ts +107 -0
  242. package/src/loaders/LightLoader.ts +171 -0
  243. package/src/loaders/MaterialLoader.ts +1418 -0
  244. package/src/managers/CameraManager.ts +178 -0
  245. package/src/managers/EnvironmentGeometryManager.ts +224 -0
  246. package/src/managers/PostProcessingManager.ts +1169 -0
  247. package/src/managers/RenderingManager.ts +657 -0
  248. package/src/managers/SceneTracingManager.ts +120 -0
  249. package/src/managers/SceneTreeManager.ts +569 -0
  250. package/src/managers/postprocessing/GodRaysManager.ts +52 -0
  251. package/src/managers/postprocessing/OutlineManager.ts +58 -0
  252. package/src/managers/postprocessing/SSAARenderPass.ts +339 -0
  253. package/src/managers/postprocessing/SelectiveBloomManager.ts +58 -0
  254. package/src/managers/postprocessing/ao/ao/AOEffect.ts +180 -0
  255. package/src/managers/postprocessing/ao/ao/AOPass.ts +128 -0
  256. package/src/managers/postprocessing/ao/ao/shader/ao_compose.glsl +17 -0
  257. package/src/managers/postprocessing/ao/ao/shader/ao_compose.ts +19 -0
  258. package/src/managers/postprocessing/ao/hbao/HBAOEffect.ts +41 -0
  259. package/src/managers/postprocessing/ao/hbao/shader/hbao.glsl +96 -0
  260. package/src/managers/postprocessing/ao/hbao/shader/hbao.ts +98 -0
  261. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.glsl +92 -0
  262. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.ts +95 -0
  263. package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +245 -0
  264. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.glsl +125 -0
  265. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.ts +127 -0
  266. package/src/managers/postprocessing/ao/ssao/SSAOEffect.ts +106 -0
  267. package/src/managers/postprocessing/ao/ssao/shader/ssao.glsl +128 -0
  268. package/src/managers/postprocessing/ao/ssao/shader/ssao.ts +130 -0
  269. package/src/managers/postprocessing/ao/utils/shader/basic.glsl +6 -0
  270. package/src/managers/postprocessing/ao/utils/shader/basic.ts +8 -0
  271. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.glsl +36 -0
  272. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts +38 -0
  273. package/src/managers/postprocessing/utils/CopyMaterial.ts +130 -0
  274. package/src/managers/postprocessing/utils/CopyShader.ts +39 -0
  275. package/src/managers/postprocessing/utils/FullScreenQuad.ts +47 -0
  276. package/src/managers/postprocessing/utils/NormalPass.ts +222 -0
  277. package/src/managers/postprocessing/utils/RenderPass.ts +366 -0
  278. package/src/materials/GemMaterial.ts +268 -0
  279. package/src/materials/MeshUnlitMaterialParameters.ts +4 -0
  280. package/src/materials/MultiPointsMaterial.ts +646 -0
  281. package/src/materials/SpecularGlossinessMaterial.ts +182 -0
  282. package/src/objects/SDBone.ts +51 -0
  283. package/src/objects/SDColor.ts +54 -0
  284. package/src/objects/SDData.ts +44 -0
  285. package/src/objects/SDObject.ts +58 -0
  286. package/src/shaders/PCSS.ts +124 -0
  287. package/src/shaders/gem.ts +575 -0
  288. package/src/shaders/gem_frag.glsl +517 -0
  289. package/src/shaders/gem_vert.glsl +53 -0
  290. package/src/shaders/multi_points.ts +291 -0
  291. package/src/shaders/multi_points_frag.glsl +166 -0
  292. package/src/shaders/multi_points_vert.glsl +120 -0
  293. package/src/styling/viewport-css.ts +113 -0
  294. package/src/styling/viewport.css +111 -0
  295. package/src/three/font.ts +2 -0
  296. package/src/three/geometries/TextGeometry.ts +58 -0
  297. package/src/three/loaders/FontLoader.ts +205 -0
  298. package/src/three/loaders/RGBELoader.ts +496 -0
  299. package/src/types/IThreejsData.ts +16 -0
  300. package/src/types/ThreejsData.ts +43 -0
  301. package/tsconfig.json +20 -0
@@ -0,0 +1,171 @@
1
+ import * as THREE from 'three';
2
+ import { IBox, ISphere } from '@shapediver/viewer.shared.math';
3
+ import { ILoader } from '../interfaces/ILoader';
4
+ import { RenderingEngine } from '../RenderingEngine';
5
+ import { SDData } from '../objects/SDData';
6
+ import {
7
+ AbstractLight,
8
+ AmbientLight,
9
+ DirectionalLight,
10
+ HemisphereLight,
11
+ PointLight,
12
+ SpotLight,
13
+ } from '@shapediver/viewer.rendering-engine.light-engine';
14
+
15
+ export class LightLoader implements ILoader {
16
+ // #region Properties (3)
17
+
18
+ private _forceDisabledShadows: boolean = false;
19
+ private _shadowMapCount = 0;
20
+
21
+ // #endregion Properties (3)
22
+
23
+ // #region Constructors (1)
24
+
25
+ constructor(private readonly _renderingEngine: RenderingEngine) { }
26
+
27
+ // #endregion Constructors (1)
28
+
29
+ // #region Public Getters And Setters (4)
30
+
31
+ public get forceDisabledShadows(): boolean {
32
+ return this._forceDisabledShadows;
33
+ }
34
+
35
+ public set forceDisabledShadows(value: boolean) {
36
+ this._forceDisabledShadows = value;
37
+ }
38
+
39
+ public get shadowMapCount(): number {
40
+ return this._shadowMapCount;
41
+ }
42
+
43
+ public set shadowMapCount(value: number) {
44
+ this._shadowMapCount = value;
45
+ }
46
+
47
+ // #endregion Public Getters And Setters (4)
48
+
49
+ // #region Public Methods (3)
50
+
51
+ public adjustToBoundingBox(light: AbstractLight, dataChild: SDData, boundingBox: IBox) {
52
+ const threeLight: THREE.Light = <THREE.Light>dataChild.children[0];
53
+
54
+ if (light instanceof DirectionalLight) {
55
+ const threeDirectionalLight = <THREE.DirectionalLight>threeLight;
56
+
57
+ const bs: ISphere = boundingBox.boundingSphere;
58
+ threeDirectionalLight.position.set(bs.center[0] + light.direction[0] * bs.radius * 2.35, bs.center[1] + light.direction[1] * bs.radius * 2.35, bs.center[2] + light.direction[2] * bs.radius * 2.35);
59
+ threeDirectionalLight.target.position.set(bs.center[0], bs.center[1], bs.center[2]);
60
+
61
+ if (light.castShadow === true && this.forceDisabledShadows === false) {
62
+ threeDirectionalLight.castShadow = true;
63
+ threeDirectionalLight.shadow.camera.up.set(0, 0, 1);
64
+ threeDirectionalLight.shadow.camera.far = 8 * bs.radius;
65
+ threeDirectionalLight.shadow.camera.right = 1.5 * bs.radius;
66
+ threeDirectionalLight.shadow.camera.left = -1.5 * bs.radius;
67
+ threeDirectionalLight.shadow.camera.top = 1.5 * bs.radius;
68
+ threeDirectionalLight.shadow.camera.bottom = -1.5 * bs.radius;
69
+ threeDirectionalLight.shadow.mapSize.width = light.shadowMapResolution;
70
+ threeDirectionalLight.shadow.mapSize.height = light.shadowMapResolution;
71
+ threeDirectionalLight.shadow.bias = light.shadowMapBias;
72
+ threeDirectionalLight.shadow.camera.updateProjectionMatrix();
73
+ this._shadowMapCount++;
74
+ } else {
75
+ threeDirectionalLight.castShadow = false;
76
+ }
77
+ }
78
+ }
79
+
80
+ public init(): void { }
81
+
82
+ public load(light: AbstractLight, dataChild: SDData) {
83
+ let threeLight: THREE.Light | null = dataChild.children[0] instanceof THREE.Light ? <THREE.Light>dataChild.children[0] : null;
84
+ if (light instanceof AmbientLight) {
85
+ if (!threeLight) {
86
+ threeLight = new THREE.AmbientLight();
87
+ light.convertedObject[this._renderingEngine.id] = <THREE.AmbientLight>threeLight;
88
+ dataChild.add(threeLight);
89
+ }
90
+ const threeAmbientLight = <THREE.AmbientLight>threeLight;
91
+
92
+ threeAmbientLight.color = this._renderingEngine.createThreeJsColor(light.color);
93
+ threeAmbientLight.intensity = light.intensity;
94
+ }
95
+
96
+ if (light instanceof DirectionalLight) {
97
+ if (!threeLight) {
98
+ threeLight = new THREE.DirectionalLight();
99
+ dataChild.add(threeLight);
100
+ dataChild.add((<THREE.DirectionalLight>threeLight).target);
101
+ light.convertedObject[this._renderingEngine.id] = <THREE.DirectionalLight>threeLight;
102
+ }
103
+ const threeDirectionalLight = <THREE.DirectionalLight>threeLight;
104
+
105
+ threeDirectionalLight.color = this._renderingEngine.createThreeJsColor(light.color);
106
+ threeDirectionalLight.intensity = light.intensity;
107
+
108
+ if (light.useNodeData) {
109
+ threeDirectionalLight.position.set(0, 0, 0);
110
+ threeDirectionalLight.target.position.set(0, 0, -1);
111
+ }
112
+ }
113
+
114
+ if (light instanceof HemisphereLight) {
115
+ if (!threeLight) {
116
+ threeLight = new THREE.HemisphereLight();
117
+ dataChild.add(threeLight);
118
+ light.convertedObject[this._renderingEngine.id] = <THREE.HemisphereLight>threeLight;
119
+ }
120
+ const threeHemisphereLight = <THREE.HemisphereLight>threeLight;
121
+
122
+ threeHemisphereLight.color = this._renderingEngine.createThreeJsColor(light.color);
123
+ threeHemisphereLight.intensity = light.intensity;
124
+ threeHemisphereLight.groundColor = this._renderingEngine.createThreeJsColor(light.groundColor);
125
+ }
126
+
127
+ if (light instanceof PointLight) {
128
+ if (!threeLight) {
129
+ threeLight = new THREE.PointLight();
130
+ dataChild.add(threeLight);
131
+ light.convertedObject[this._renderingEngine.id] = <THREE.PointLight>threeLight;
132
+ }
133
+ const threePointLight = <THREE.PointLight>threeLight;
134
+
135
+ threePointLight.color = this._renderingEngine.createThreeJsColor(light.color);
136
+ threePointLight.intensity = light.intensity;
137
+ threePointLight.distance = light.distance;
138
+ threePointLight.decay = light.decay;
139
+ threePointLight.position.set(light.position[0], light.position[1], light.position[2]);
140
+ }
141
+
142
+ if (light instanceof SpotLight) {
143
+ if (!threeLight) {
144
+ threeLight = new THREE.SpotLight(
145
+ this._renderingEngine.createThreeJsColor(light.color),
146
+ light.intensity,
147
+ light.distance,
148
+ light.angle,
149
+ light.penumbra,
150
+ light.decay
151
+ );
152
+ dataChild.add(threeLight);
153
+ dataChild.add((<THREE.SpotLight>threeLight).target);
154
+ light.convertedObject[this._renderingEngine.id] = <THREE.SpotLight>threeLight;
155
+ }
156
+ const threeSpotLight = <THREE.SpotLight>threeLight;
157
+
158
+ threeSpotLight.color = this._renderingEngine.createThreeJsColor(light.color);
159
+ threeSpotLight.intensity = light.intensity;
160
+ threeSpotLight.distance = light.distance;
161
+ threeSpotLight.angle = light.angle;
162
+ threeSpotLight.penumbra = light.penumbra;
163
+ threeSpotLight.decay = light.decay;
164
+
165
+ threeSpotLight.position.set(light.position[0], light.position[1], light.position[2]);
166
+ threeSpotLight.target.position.set(light.target[0], light.target[1], light.target[2]);
167
+ }
168
+ }
169
+
170
+ // #endregion Public Methods (3)
171
+ }