@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,505 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.GeometryLoader = void 0;
27
+ const THREE = __importStar(require("three"));
28
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
29
+ const GemMaterial_1 = require("../materials/GemMaterial");
30
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
31
+ const viewer_rendering_engine_rendering_engine_1 = require("@shapediver/viewer.rendering-engine.rendering-engine");
32
+ const SDData_1 = require("../objects/SDData");
33
+ const gl_matrix_1 = require("gl-matrix");
34
+ class GeometryLoader {
35
+ // #endregion Properties (8)
36
+ // #region Constructors (1)
37
+ constructor(_renderingEngine) {
38
+ this._renderingEngine = _renderingEngine;
39
+ this._gemSphericalMapsCache = {};
40
+ this._geometryCache = {};
41
+ this._logger = viewer_shared_services_1.Logger.instance;
42
+ this._primitiveCache = {};
43
+ }
44
+ // #endregion Constructors (1)
45
+ // #region Public Methods (7)
46
+ emptyGeometryCache() {
47
+ this._geometryCache = {};
48
+ this._primitiveCache = {};
49
+ }
50
+ init() { }
51
+ /**
52
+ * Create a geometry object with the provided geometry data.
53
+ *
54
+ * @param geometry the geometry data
55
+ * @returns the geometry object
56
+ */
57
+ load(geometry, parent, newChild, skeleton) {
58
+ const threeGeometry = (() => {
59
+ if (!this._primitiveCache[geometry.primitive.id + '_' + geometry.primitive.version]) {
60
+ return this.loadPrimitive(geometry.primitive);
61
+ }
62
+ else {
63
+ this._primitiveCache[geometry.primitive.id + '_' + geometry.primitive.version].counter++;
64
+ const clone = this._primitiveCache[geometry.primitive.id + '_' + geometry.primitive.version].threeGeometry.clone();
65
+ this._primitiveCache[geometry.primitive.id + '_' + geometry.primitive.version].clones.push(clone);
66
+ return clone;
67
+ }
68
+ })();
69
+ let incomingMaterialData;
70
+ if (geometry.effectMaterials.length > 0) {
71
+ incomingMaterialData = geometry.effectMaterials[geometry.effectMaterials.length - 1].material;
72
+ }
73
+ else if (this._renderingEngine.type === viewer_rendering_engine_rendering_engine_1.RENDERER_TYPE.ATTRIBUTES) {
74
+ incomingMaterialData = geometry.attributeMaterial;
75
+ }
76
+ else {
77
+ incomingMaterialData = geometry.material;
78
+ }
79
+ const materialSettings = {
80
+ mode: geometry.mode,
81
+ useVertexTangents: threeGeometry.attributes.tangent !== undefined,
82
+ useVertexColors: threeGeometry.attributes.color !== undefined && this._renderingEngine.type !== viewer_rendering_engine_rendering_engine_1.RENDERER_TYPE.ATTRIBUTES,
83
+ useFlatShading: threeGeometry.attributes.normal === undefined,
84
+ useMorphTargets: Object.keys(threeGeometry.morphAttributes).length > 0,
85
+ useMorphNormals: Object.keys(threeGeometry.morphAttributes).length > 0 && threeGeometry.morphAttributes.normal !== undefined
86
+ };
87
+ if (incomingMaterialData instanceof viewer_shared_types_1.MaterialGemData) {
88
+ const gemMaterialData = incomingMaterialData;
89
+ threeGeometry.computeBoundingSphere();
90
+ const sphericalNormalMap = this.createCubeNormalMap(geometry, threeGeometry);
91
+ const center = threeGeometry.boundingSphere.center, radius = threeGeometry.boundingSphere.radius;
92
+ gemMaterialData.side = viewer_shared_types_1.MATERIAL_SIDE.FRONT;
93
+ gemMaterialData.center = gl_matrix_1.vec3.fromValues(center.x, center.y, center.z);
94
+ gemMaterialData.radius = radius;
95
+ gemMaterialData.sphericalNormalMap = sphericalNormalMap;
96
+ }
97
+ while (parent.children.length !== 0)
98
+ parent.remove(parent.children[0]);
99
+ const material = this._renderingEngine.materialLoader.load(incomingMaterialData || geometry, materialSettings);
100
+ let obj;
101
+ if (this._geometryCache[geometry.id + '_' + geometry.version] && !skeleton) {
102
+ obj = this._geometryCache[geometry.id + '_' + geometry.version].obj;
103
+ // case 1: in case the geometry data was cloned and this is a different object
104
+ // case 2: it is a new child
105
+ if (newChild === false && obj.parent !== parent || newChild === true) {
106
+ obj = obj.cloneObject();
107
+ parent.add(obj);
108
+ }
109
+ obj.traverse(o => {
110
+ if (o instanceof THREE.Points ||
111
+ o instanceof THREE.LineSegments ||
112
+ o instanceof THREE.LineLoop ||
113
+ o instanceof THREE.Line ||
114
+ o instanceof THREE.Mesh)
115
+ o.material = material;
116
+ });
117
+ }
118
+ else {
119
+ obj = new SDData_1.SDData(geometry.id, geometry.version);
120
+ this.createMesh(obj, geometry, threeGeometry, material, skeleton);
121
+ this._geometryCache[geometry.id + '_' + geometry.version] = { obj };
122
+ parent.add(obj);
123
+ }
124
+ obj.children.forEach(m => m.castShadow = true);
125
+ if (material instanceof GemMaterial_1.GemMaterial) {
126
+ obj.children.forEach(m => m.receiveShadow = false);
127
+ }
128
+ else {
129
+ obj.children.forEach(m => m.receiveShadow = true);
130
+ }
131
+ return geometry.boundingBox.clone();
132
+ }
133
+ loadPrimitive(primitive) {
134
+ const geometry = new THREE.BufferGeometry();
135
+ if (primitive.indices)
136
+ geometry.setIndex(new THREE.BufferAttribute(primitive.indices.array, primitive.indices.itemSize));
137
+ for (const attributeId in primitive.attributes) {
138
+ const buffer = this.loadAttribute(primitive.attributes[attributeId], attributeId);
139
+ const attributeName = this.getAttributeName(attributeId);
140
+ if (attributeId === 'NORMAL')
141
+ if (this.checkNormals(primitive, attributeId, buffer, geometry))
142
+ continue;
143
+ geometry.setAttribute(attributeName, buffer);
144
+ const morphAttributeData = primitive.attributes[attributeId].morphAttributeData;
145
+ if (morphAttributeData.length > 0) {
146
+ geometry.morphTargetsRelative = true;
147
+ const buffers = [];
148
+ for (let i = 0; i < morphAttributeData.length; i++)
149
+ buffers.push(this.loadAttribute(morphAttributeData[i], attributeId));
150
+ geometry.morphAttributes[attributeName] = buffers;
151
+ }
152
+ // we copy the uv coordinates into the second set of uv coordinates if there are none
153
+ // this allows for the usage of AO and light maps that share this coordinate set
154
+ const attributeIdUV2 = 'TEXCOORD_1', attributeNameUV2 = 'uv1';
155
+ if (attributeName === 'uv' && !primitive.attributes[attributeIdUV2]) {
156
+ geometry.setAttribute(attributeNameUV2, buffer);
157
+ const morphAttributeData = primitive.attributes[attributeId].morphAttributeData;
158
+ if (morphAttributeData.length > 0) {
159
+ geometry.morphTargetsRelative = true;
160
+ const buffers = [];
161
+ for (let i = 0; i < morphAttributeData.length; i++)
162
+ buffers.push(this.loadAttribute(morphAttributeData[i], attributeId));
163
+ geometry.morphAttributes[attributeNameUV2] = buffers;
164
+ }
165
+ }
166
+ }
167
+ primitive.convertedObject[this._renderingEngine.id] = geometry;
168
+ this._primitiveCache[primitive.id + '_' + primitive.version] = { threeGeometry: geometry, counter: 1, clones: [] };
169
+ return geometry;
170
+ }
171
+ removeFromGemSphericalMapsCache(id) {
172
+ if (this._gemSphericalMapsCache[id]) {
173
+ if (this._gemSphericalMapsCache[id].counter === 1) {
174
+ this._gemSphericalMapsCache[id].renderTarget.dispose();
175
+ this._gemSphericalMapsCache[id].texture.dispose();
176
+ delete this._gemSphericalMapsCache[id];
177
+ }
178
+ else {
179
+ this._gemSphericalMapsCache[id].counter--;
180
+ }
181
+ }
182
+ }
183
+ removeFromGeometryCache(id) {
184
+ if (this._geometryCache[id])
185
+ delete this._geometryCache[id];
186
+ }
187
+ removeFromPrimitiveCache(id) {
188
+ if (this._primitiveCache[id]) {
189
+ if (this._primitiveCache[id].counter === 1) {
190
+ this._primitiveCache[id].threeGeometry.dispose();
191
+ for (const key in this._primitiveCache[id].threeGeometry.attributes)
192
+ this._primitiveCache[id].threeGeometry.deleteAttribute(key);
193
+ this._primitiveCache[id].threeGeometry.setIndex(null);
194
+ this._primitiveCache[id].clones.forEach(c => {
195
+ c.dispose();
196
+ for (const key in c.attributes)
197
+ c.deleteAttribute(key);
198
+ c.setIndex(null);
199
+ });
200
+ delete this._primitiveCache[id];
201
+ }
202
+ else {
203
+ this._primitiveCache[id].counter--;
204
+ }
205
+ }
206
+ }
207
+ // #endregion Public Methods (7)
208
+ // #region Private Methods (6)
209
+ checkNormals(primitive, attributeId, buffer, geometry) {
210
+ let blnNormalsOk = false;
211
+ for (let index = 0; index < 10; ++index) {
212
+ if (Math.abs(buffer.array[index * 3]) > 0.001) {
213
+ blnNormalsOk = true;
214
+ break;
215
+ }
216
+ if (Math.abs(buffer.array[index * 3 + 1]) > 0.001) {
217
+ blnNormalsOk = true;
218
+ break;
219
+ }
220
+ if (Math.abs(buffer.array[index * 3 + 2]) > 0.001) {
221
+ blnNormalsOk = true;
222
+ break;
223
+ }
224
+ }
225
+ if (!blnNormalsOk) {
226
+ geometry.computeVertexNormals();
227
+ const computedNormalAttribute = geometry.getAttribute('normal');
228
+ // store the computed normals in the attribute data
229
+ primitive.attributes[attributeId] = new viewer_shared_types_1.AttributeData(new Float32Array(computedNormalAttribute.array), computedNormalAttribute.itemSize, 0, 0, 3, computedNormalAttribute.normalized, computedNormalAttribute.array.length / 3);
230
+ return true;
231
+ }
232
+ return false;
233
+ }
234
+ convertToTriangleMode(geometry, drawMode) {
235
+ let index = geometry.getIndex();
236
+ // generate index if not present
237
+ if (index === null) {
238
+ const indices = [];
239
+ const position = geometry.getAttribute('position');
240
+ if (position !== undefined) {
241
+ for (let i = 0; i < position.count; i++)
242
+ indices.push(i);
243
+ geometry.setIndex(indices);
244
+ index = geometry.getIndex();
245
+ }
246
+ else {
247
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('GeometryLoader.convertToTriangleMode: Undefined position attribute. Processing not possible.');
248
+ }
249
+ }
250
+ if (index === null)
251
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('GeometryLoader.convertToTriangleMode: Undefined index. Processing not possible.');
252
+ const numberOfTriangles = index.count - 2;
253
+ const newIndices = [];
254
+ if (drawMode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_FAN) {
255
+ for (let i = 1; i <= numberOfTriangles; i++) {
256
+ newIndices.push(index.getX(0));
257
+ newIndices.push(index.getX(i));
258
+ newIndices.push(index.getX(i + 1));
259
+ }
260
+ }
261
+ else {
262
+ for (let i = 0; i < numberOfTriangles; i++) {
263
+ if (i % 2 === 0) {
264
+ newIndices.push(index.getX(i));
265
+ newIndices.push(index.getX(i + 1));
266
+ newIndices.push(index.getX(i + 2));
267
+ }
268
+ else {
269
+ newIndices.push(index.getX(i + 2));
270
+ newIndices.push(index.getX(i + 1));
271
+ newIndices.push(index.getX(i));
272
+ }
273
+ }
274
+ }
275
+ if ((newIndices.length / 3) !== numberOfTriangles)
276
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('GeometryLoader.convertToTriangleMode: Unable to generate correct amount of triangle.');
277
+ geometry.setIndex(newIndices);
278
+ }
279
+ createCubeNormalMap(geometryData, geometry, resolution = 1024) {
280
+ if (this._gemSphericalMapsCache[geometryData.primitive.id + '_' + geometryData.primitive.version]) {
281
+ this._gemSphericalMapsCache[geometryData.primitive.id + '_' + geometryData.primitive.version].counter++;
282
+ return this._gemSphericalMapsCache[geometryData.primitive.id + '_' + geometryData.primitive.version].texture;
283
+ }
284
+ if (!this._gemScene) {
285
+ this._gemScene = new THREE.Scene();
286
+ this._gemCubeCameraRenderTarget = new THREE.WebGLCubeRenderTarget(resolution, { format: THREE.RGBAFormat, magFilter: THREE.LinearFilter, minFilter: THREE.LinearFilter });
287
+ this._gemCubeCameraRenderTarget.texture.generateMipmaps = false;
288
+ this._gemCubeCameraRenderTarget.texture.minFilter = THREE.NearestFilter;
289
+ this._gemCubeCameraRenderTarget.texture.magFilter = THREE.NearestFilter;
290
+ this._gemCubeCameraRenderTarget.texture.format = THREE.RGBAFormat;
291
+ this._gemCubeCamera = new THREE.CubeCamera(0.001, 10000, this._gemCubeCameraRenderTarget);
292
+ this._gemScene.add(this._gemCubeCamera);
293
+ }
294
+ else {
295
+ this._gemCubeCameraRenderTarget = new THREE.WebGLCubeRenderTarget(resolution, { format: THREE.RGBAFormat, magFilter: THREE.LinearFilter, minFilter: THREE.LinearFilter });
296
+ this._gemCubeCameraRenderTarget.texture.generateMipmaps = false;
297
+ this._gemCubeCameraRenderTarget.texture.minFilter = THREE.NearestFilter;
298
+ this._gemCubeCameraRenderTarget.texture.magFilter = THREE.NearestFilter;
299
+ this._gemCubeCameraRenderTarget.texture.format = THREE.RGBAFormat;
300
+ this._gemCubeCamera.renderTarget = this._gemCubeCameraRenderTarget;
301
+ }
302
+ if (!this._gemNormalMaterial) {
303
+ const _normalShader = {
304
+ defines: {},
305
+ uniforms: THREE.UniformsUtils.merge([
306
+ THREE.UniformsLib.common
307
+ ]),
308
+ vertexShader: `
309
+ varying vec3 vNormal;
310
+
311
+ void main() {
312
+ vNormal = normal;
313
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
314
+ }
315
+ `,
316
+ fragmentShader: `
317
+ varying highp vec3 vNormal;
318
+
319
+ float decodeFloat(float f) {
320
+ float r = mod(f, 1.0/255.0);
321
+ return /*r > 0.5/256.0 ? f + (1.0/256.0) - r : */f - r;
322
+ }
323
+
324
+ vec3 decodeVec3(vec3 v) {
325
+ return vec3(decodeFloat(v.x), decodeFloat(v.y), decodeFloat(v.z));
326
+ }
327
+
328
+ float signEncoding(vec3 v) {
329
+ float code = 1.0;
330
+ if(v.x < 0.0 && v.y < 0.0 && v.z < 0.0) {
331
+ code = 0.0;
332
+ } else if (v.x < 0.0 && v.y < 0.0) {
333
+ code = 2.0/256.0;
334
+ } else if (v.x < 0.0 && v.z < 0.0) {
335
+ code = 4.0/256.0;
336
+ } else if (v.y < 0.0 && v.z < 0.0) {
337
+ code = 6.0/256.0;
338
+ } else if (v.x < 0.0) {
339
+ code = 8.0/256.0;
340
+ } else if (v.y < 0.0) {
341
+ code = 10.0/256.0;
342
+ } else if (v.z < 0.0) {
343
+ code = 12.0/256.0;
344
+ }
345
+ return code;
346
+ }
347
+
348
+ void main() {
349
+ vec3 n = normalize(vNormal);
350
+ gl_FragColor = vec4(decodeVec3(abs(n)), signEncoding(n));
351
+ }
352
+ `
353
+ };
354
+ this._gemNormalMaterial = new THREE.ShaderMaterial({
355
+ uniforms: THREE.UniformsUtils.clone(_normalShader.uniforms),
356
+ defines: _normalShader.defines,
357
+ vertexShader: _normalShader.vertexShader,
358
+ fragmentShader: _normalShader.fragmentShader
359
+ });
360
+ this._gemNormalMaterial.blending = THREE.NoBlending;
361
+ this._gemNormalMaterial.side = THREE.DoubleSide;
362
+ this._gemScene.overrideMaterial = this._gemNormalMaterial;
363
+ }
364
+ const mesh = new THREE.Mesh(geometry.clone(), this._gemNormalMaterial);
365
+ mesh.geometry.center();
366
+ this._gemScene.add(mesh);
367
+ this._gemCubeCamera.update(this._renderingEngine.renderer, this._gemScene);
368
+ this._gemScene.remove(mesh);
369
+ mesh.geometry.dispose();
370
+ mesh.material.dispose();
371
+ this._gemCubeCamera.renderTarget.texture.userData = {
372
+ SDid: geometryData.primitive.id,
373
+ SDversion: geometryData.primitive.version
374
+ };
375
+ this._gemSphericalMapsCache[geometryData.primitive.id + '_' + geometryData.primitive.version] = { texture: this._gemCubeCameraRenderTarget.texture, renderTarget: this._gemCubeCameraRenderTarget, counter: 1 };
376
+ return this._gemSphericalMapsCache[geometryData.primitive.id + '_' + geometryData.primitive.version].texture;
377
+ }
378
+ createMesh(obj, geometry, threeGeometry, material, skeleton) {
379
+ if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.POINTS) {
380
+ const points = new THREE.Points(threeGeometry, material);
381
+ geometry.convertedObject[this._renderingEngine.id] = points;
382
+ obj.add(points);
383
+ }
384
+ else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINES) {
385
+ const lineSegments = new THREE.LineSegments(threeGeometry, material);
386
+ geometry.convertedObject[this._renderingEngine.id] = lineSegments;
387
+ obj.add(lineSegments);
388
+ }
389
+ else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINE_LOOP) {
390
+ const lineLoop = new THREE.LineLoop(threeGeometry, material);
391
+ geometry.convertedObject[this._renderingEngine.id] = lineLoop;
392
+ obj.add(lineLoop);
393
+ }
394
+ else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.LINE_STRIP) {
395
+ const line = new THREE.Line(threeGeometry, material);
396
+ geometry.convertedObject[this._renderingEngine.id] = line;
397
+ obj.add(line);
398
+ }
399
+ else if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLES || geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_STRIP || geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_FAN) {
400
+ const bufferGeometry = threeGeometry;
401
+ if (geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_STRIP || geometry.mode === viewer_shared_types_1.PRIMITIVE_MODE.TRIANGLE_FAN)
402
+ this.convertToTriangleMode(bufferGeometry, geometry.mode);
403
+ if (skeleton) {
404
+ const skinnedMesh = new THREE.SkinnedMesh(bufferGeometry, material);
405
+ geometry.convertedObject[this._renderingEngine.id] = skinnedMesh;
406
+ skinnedMesh.bind(skeleton, skinnedMesh.matrixWorld);
407
+ if (bufferGeometry.attributes.skinWeight.normalized)
408
+ skinnedMesh.normalizeSkinWeights();
409
+ obj.add(skinnedMesh);
410
+ }
411
+ else {
412
+ const mesh = new THREE.Mesh(bufferGeometry, material);
413
+ geometry.convertedObject[this._renderingEngine.id] = mesh;
414
+ obj.add(mesh);
415
+ }
416
+ }
417
+ else {
418
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError(`GeometryLoader.load: Unrecognized primitive mode ${geometry.mode}.`);
419
+ }
420
+ obj.traverse(m => {
421
+ if (m instanceof THREE.Mesh || m instanceof THREE.Points || m instanceof THREE.LineSegments || m instanceof THREE.LineLoop || m instanceof THREE.Line) {
422
+ m.geometry.userData = {
423
+ SDid: geometry.id,
424
+ SDversion: geometry.version,
425
+ primitiveSDid: geometry.primitive.id,
426
+ primitiveSDversion: geometry.primitive.version
427
+ };
428
+ m.renderOrder = geometry.renderOrder;
429
+ }
430
+ if (m instanceof THREE.Mesh && m.userData.transparencyPlaceholder !== true) {
431
+ m.geometry.boundingBox = new THREE.Box3(new THREE.Vector3(geometry.boundingBox.min[0], geometry.boundingBox.min[1], geometry.boundingBox.min[2]), new THREE.Vector3(geometry.boundingBox.max[0], geometry.boundingBox.max[1], geometry.boundingBox.max[2]));
432
+ m.geometry.boundingSphere = new THREE.Sphere(new THREE.Vector3(geometry.boundingBox.boundingSphere.center[0], geometry.boundingBox.boundingSphere.center[1], geometry.boundingBox.boundingSphere.center[2]), geometry.boundingBox.boundingSphere.radius);
433
+ m.morphTargetInfluences = geometry.morphWeights;
434
+ }
435
+ });
436
+ }
437
+ getAttributeName(attributeId) {
438
+ switch (attributeId) {
439
+ case 'POSITION':
440
+ return 'position';
441
+ case 'NORMAL':
442
+ return 'normal';
443
+ case 'TEXCOORD_0':
444
+ case 'TEXCOORD0':
445
+ case 'TEXCOORD':
446
+ case 'UV':
447
+ return 'uv';
448
+ case 'TEXCOORD_1':
449
+ return 'uv1';
450
+ case 'TEXCOORD_2':
451
+ return 'uv2';
452
+ case 'TEXCOORD_3':
453
+ return 'uv3';
454
+ case 'COLOR_0':
455
+ case 'COLOR0':
456
+ case 'COLOR':
457
+ return 'color';
458
+ case 'WEIGHT':
459
+ case 'WEIGHTS_0':
460
+ return 'skinWeight';
461
+ case 'JOINT':
462
+ case 'JOINTS_0':
463
+ return 'skinIndex';
464
+ case 'TANGENT':
465
+ return 'tangent';
466
+ case 'POSITION_INDEX':
467
+ return 'positionIndex';
468
+ default:
469
+ this._logger.warn(`GeometryLoader.loadPrimitive: Unrecognized attribute id ${attributeId}.`);
470
+ }
471
+ return '';
472
+ }
473
+ loadAttribute(bufferAttribute, attributeId) {
474
+ let buffer;
475
+ if (bufferAttribute.byteStride && bufferAttribute.byteStride !== bufferAttribute.itemBytes) {
476
+ // Integer parameters to IB/IBA are in array elements, not bytes.
477
+ const ib = new THREE.InterleavedBuffer(bufferAttribute.array, bufferAttribute.byteStride / bufferAttribute.elementBytes);
478
+ buffer = new THREE.InterleavedBufferAttribute(ib, bufferAttribute.itemSize, (bufferAttribute.byteOffset % bufferAttribute.byteStride) / bufferAttribute.elementBytes, bufferAttribute.normalized);
479
+ }
480
+ else {
481
+ buffer = new THREE.BufferAttribute(bufferAttribute.array, bufferAttribute.itemSize, (attributeId === 'COLOR_0' || attributeId === 'COLOR0' || attributeId === 'COLOR') ? true : bufferAttribute.normalized);
482
+ }
483
+ if (bufferAttribute.sparse) {
484
+ if (bufferAttribute.array !== null) {
485
+ // Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.
486
+ buffer = new THREE.BufferAttribute(bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized);
487
+ }
488
+ for (let i = 0, il = bufferAttribute.sparseIndices.length; i < il; i++) {
489
+ const index = bufferAttribute.sparseIndices[i];
490
+ buffer.setX(index, bufferAttribute.sparseValues[i * bufferAttribute.itemSize]);
491
+ if (bufferAttribute.itemSize >= 2)
492
+ buffer.setY(index, bufferAttribute.sparseValues[i * bufferAttribute.itemSize + 1]);
493
+ if (bufferAttribute.itemSize >= 3)
494
+ buffer.setZ(index, bufferAttribute.sparseValues[i * bufferAttribute.itemSize + 2]);
495
+ if (bufferAttribute.itemSize >= 4)
496
+ buffer.setW(index, bufferAttribute.sparseValues[i * bufferAttribute.itemSize + 3]);
497
+ if (bufferAttribute.itemSize >= 5)
498
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('GeometryLoader.loadPrimitive: Unsupported itemSize in sparse BufferAttribute.');
499
+ }
500
+ }
501
+ return buffer;
502
+ }
503
+ }
504
+ exports.GeometryLoader = GeometryLoader;
505
+ //# sourceMappingURL=GeometryLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeometryLoader.js","sourceRoot":"","sources":["../../src/loaders/GeometryLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { HTMLElementAnchorData } from '@shapediver/viewer.shared.types';
2
+ import { ILoader } from '../interfaces/ILoader';
3
+ import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
4
+ import { RenderingEngine } from '../RenderingEngine';
5
+ export declare class HTMLElementAnchorLoader implements ILoader {
6
+ private readonly _renderingEngine;
7
+ private readonly _htmlElements;
8
+ private readonly _parentDiv;
9
+ constructor(_renderingEngine: RenderingEngine);
10
+ get parentDiv(): HTMLDivElement;
11
+ adjustPositions(scaleWidth: number, scaleHeight: number): void;
12
+ init(): void;
13
+ load(node: ITreeNode, anchor: HTMLElementAnchorData, isVisibleInHierarchy: boolean): void;
14
+ removeData(id: string, version: string): void;
15
+ toggleBusyMode(toggle: boolean): void;
16
+ }
17
+ //# sourceMappingURL=HTMLElementAnchorLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLElementAnchorLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qBAAa,uBAAwB,YAAW,OAAO;IAevC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAZ7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAKvB;IACP,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAMf,gBAAgB,EAAE,eAAe;IAS9D,IAAW,SAAS,IAAI,cAAc,CAErC;IAMM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAuB9D,IAAI,IAAI,IAAI;IAIZ,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,OAAO,GAAG,IAAI;IAiBzF,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAYtC,cAAc,CAAC,MAAM,EAAE,OAAO;CAWxC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTMLElementAnchorLoader = void 0;
4
+ const viewer_rendering_engine_rendering_engine_1 = require("@shapediver/viewer.rendering-engine.rendering-engine");
5
+ const gl_matrix_1 = require("gl-matrix");
6
+ class HTMLElementAnchorLoader {
7
+ // #endregion Properties (2)
8
+ // #region Constructors (1)
9
+ constructor(_renderingEngine) {
10
+ this._renderingEngine = _renderingEngine;
11
+ // #region Properties (2)
12
+ this._htmlElements = {};
13
+ this._parentDiv = document.createElement('div');
14
+ this._parentDiv.classList.add('sdv-anchor-container');
15
+ }
16
+ // #endregion Constructors (1)
17
+ // #region Public Getters And Setters (1)
18
+ get parentDiv() {
19
+ return this._parentDiv;
20
+ }
21
+ // #endregion Public Getters And Setters (1)
22
+ // #region Public Methods (5)
23
+ adjustPositions(scaleWidth, scaleHeight) {
24
+ for (const anchorId in this._htmlElements) {
25
+ const anchor = this._htmlElements[anchorId].anchor;
26
+ const { page, container, client, hidden } = this._renderingEngine.sceneTracingManager.convert3Dto2D(gl_matrix_1.vec3.clone(anchor.location));
27
+ const htmlElement = anchor.createViewerHtmlElement(this._renderingEngine.id);
28
+ if (!htmlElement)
29
+ continue;
30
+ let node = this._htmlElements[anchorId].node;
31
+ let visible = node.visible;
32
+ while (node.parent) {
33
+ node = node.parent;
34
+ visible = node.visible && visible;
35
+ }
36
+ if (this._renderingEngine.show === false)
37
+ visible = false;
38
+ anchor.update({ anchor, htmlElement, page, container, client, scale: gl_matrix_1.vec2.fromValues(scaleWidth, scaleHeight), hidden, visible });
39
+ }
40
+ }
41
+ init() {
42
+ var _a;
43
+ (_a = this._renderingEngine.canvas.parentNode) === null || _a === void 0 ? void 0 : _a.appendChild(this._parentDiv);
44
+ }
45
+ load(node, anchor, isVisibleInHierarchy) {
46
+ const htmlElement = anchor.createViewerHtmlElement(this._renderingEngine.id);
47
+ if (!htmlElement)
48
+ return;
49
+ // set the display property to "none" if the viewport is not shown or the node is not visible
50
+ if (this._renderingEngine.show === false || isVisibleInHierarchy === false)
51
+ htmlElement.style.display = 'none';
52
+ // if the node is not visible return
53
+ if (isVisibleInHierarchy === false)
54
+ return;
55
+ this._parentDiv.appendChild(htmlElement);
56
+ this._htmlElements[anchor.id + '_' + anchor.version] = {
57
+ node,
58
+ anchor
59
+ };
60
+ }
61
+ removeData(id, version) {
62
+ // since the data object might be there, but no data is loaded for this viewport
63
+ // this check is needed
64
+ if (!this._htmlElements[id + '_' + version])
65
+ return;
66
+ const anchor = this._htmlElements[id + '_' + version].anchor;
67
+ if (anchor && anchor.getViewerHtmlElement(this._renderingEngine.id)) {
68
+ this._parentDiv.removeChild(anchor.getViewerHtmlElement(this._renderingEngine.id));
69
+ delete this._htmlElements[id + '_' + version];
70
+ }
71
+ }
72
+ toggleBusyMode(toggle) {
73
+ if (toggle && this._renderingEngine.busyModeDisplay === viewer_rendering_engine_rendering_engine_1.BUSY_MODE_DISPLAY.BLUR) {
74
+ if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && navigator.userAgent.toLowerCase().indexOf('android') > -1)
75
+ return;
76
+ this._parentDiv.style.filter = 'blur(3px)';
77
+ }
78
+ else {
79
+ this._parentDiv.style.filter = '';
80
+ }
81
+ }
82
+ }
83
+ exports.HTMLElementAnchorLoader = HTMLElementAnchorLoader;
84
+ //# sourceMappingURL=HTMLElementAnchorLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLElementAnchorLoader.js","sourceRoot":"","sources":["../../src/loaders/HTMLElementAnchorLoader.ts"],"names":[],"mappings":"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"}