@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,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Font = exports.FontLoader = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const three_1 = require("three");
6
+ class FontLoader extends three_1.Loader {
7
+ constructor(manager) {
8
+ super(manager);
9
+ }
10
+ load(url, onLoad, onProgress, onError) {
11
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
12
+ const scope = this;
13
+ const loader = new three_1.FileLoader(this.manager);
14
+ loader.setPath(this.path);
15
+ loader.setRequestHeader(this.requestHeader);
16
+ loader.setWithCredentials(scope.withCredentials);
17
+ loader.load(url, function (text) {
18
+ let json;
19
+ try {
20
+ json = JSON.parse(text);
21
+ }
22
+ catch (e) {
23
+ console.warn('THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.');
24
+ json = JSON.parse(text.substring(65, text.length - 2));
25
+ }
26
+ const font = scope.parse(json);
27
+ if (onLoad)
28
+ onLoad(font);
29
+ }, onProgress, onError);
30
+ }
31
+ parse(json) {
32
+ return new Font(json);
33
+ }
34
+ }
35
+ exports.FontLoader = FontLoader;
36
+ //
37
+ class Font {
38
+ constructor(data) {
39
+ this.isFont = true;
40
+ this.type = 'Font';
41
+ this.data = data;
42
+ }
43
+ generateShapes(text, size = 100) {
44
+ const shapes = [];
45
+ const paths = createPaths(text, size, this.data);
46
+ for (let p = 0, pl = paths.length; p < pl; p++) {
47
+ Array.prototype.push.apply(shapes, paths[p].toShapes());
48
+ }
49
+ return shapes;
50
+ }
51
+ }
52
+ exports.Font = Font;
53
+ function createPaths(text, size, data) {
54
+ const chars = Array.from(text);
55
+ const scale = size / data.resolution;
56
+ const line_height = (data.boundingBox.yMax - data.boundingBox.yMin + data.underlineThickness) * scale;
57
+ const paths = [];
58
+ let offsetX = 0, offsetY = 0;
59
+ for (let i = 0; i < chars.length; i++) {
60
+ const char = chars[i];
61
+ if (char === '\n') {
62
+ offsetX = 0;
63
+ offsetY -= line_height;
64
+ }
65
+ else {
66
+ const ret = createPath(char, scale, offsetX, offsetY, data);
67
+ offsetX += ret.offsetX;
68
+ paths.push(ret.path);
69
+ }
70
+ }
71
+ return paths;
72
+ }
73
+ function createPath(char, scale, offsetX, offsetY, data) {
74
+ const glyph = data.glyphs[char] || data.glyphs['?'];
75
+ if (!glyph) {
76
+ console.error('THREE.Font: character "' + char + '" does not exists in font family ' + data.familyName + '.');
77
+ return;
78
+ }
79
+ const path = new three_1.ShapePath();
80
+ let x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;
81
+ if (glyph.o) {
82
+ const outline = glyph._cachedOutline || (glyph._cachedOutline = glyph.o.split(' '));
83
+ for (let i = 0, l = outline.length; i < l;) {
84
+ const action = outline[i++];
85
+ switch (action) {
86
+ case 'm': // moveTo
87
+ x = outline[i++] * scale + offsetX;
88
+ y = outline[i++] * scale + offsetY;
89
+ path.moveTo(x, y);
90
+ break;
91
+ case 'l': // lineTo
92
+ x = outline[i++] * scale + offsetX;
93
+ y = outline[i++] * scale + offsetY;
94
+ path.lineTo(x, y);
95
+ break;
96
+ case 'q': // quadraticCurveTo
97
+ cpx = outline[i++] * scale + offsetX;
98
+ cpy = outline[i++] * scale + offsetY;
99
+ cpx1 = outline[i++] * scale + offsetX;
100
+ cpy1 = outline[i++] * scale + offsetY;
101
+ path.quadraticCurveTo(cpx1, cpy1, cpx, cpy);
102
+ break;
103
+ case 'b': // bezierCurveTo
104
+ cpx = outline[i++] * scale + offsetX;
105
+ cpy = outline[i++] * scale + offsetY;
106
+ cpx1 = outline[i++] * scale + offsetX;
107
+ cpy1 = outline[i++] * scale + offsetY;
108
+ cpx2 = outline[i++] * scale + offsetX;
109
+ cpy2 = outline[i++] * scale + offsetY;
110
+ path.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, cpx, cpy);
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ return { offsetX: glyph.ha * scale, path: path };
116
+ }
117
+ Font.prototype.isFont = true;
118
+ //# sourceMappingURL=FontLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontLoader.js","sourceRoot":"","sources":["../../../src/three/loaders/FontLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { DataTextureLoader, LoadingManager, PixelFormat, TextureDataType } from 'three';
2
+ export interface RGBE {
3
+ width: number;
4
+ height: number;
5
+ data: Float32Array | Uint8Array;
6
+ header: string;
7
+ gamma: number;
8
+ exposure: number;
9
+ format: PixelFormat;
10
+ type: TextureDataType;
11
+ }
12
+ declare class RGBELoader extends DataTextureLoader {
13
+ type: number;
14
+ constructor(manager?: LoadingManager);
15
+ parse(buffer: ArrayBuffer): RGBE;
16
+ setDataType(value: number): this;
17
+ load(url: string, onLoad: {
18
+ (texture: any, texData: any): void;
19
+ (texture: any): void;
20
+ (arg0: any, arg1: any): void;
21
+ }, onProgress: ((event: ProgressEvent<EventTarget>) => void) | undefined, onError: ((event: unknown) => void) | undefined): import("three").DataTexture;
22
+ }
23
+ export { RGBELoader };
24
+ //# sourceMappingURL=RGBELoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RGBELoader.d.ts","sourceRoot":"","sources":["../../../src/three/loaders/RGBELoader.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,iBAAiB,EAMjB,cAAc,EACd,WAAW,EACX,eAAe,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,IAAI;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,eAAe,CAAC;CACzB;AAKD,cAAM,UAAW,SAAQ,iBAAiB;IACzC,IAAI,EAAE,MAAM,CAAC;gBAEA,OAAO,CAAC,EAAE,cAAc;IAUrC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA0ZhC,WAAW,CAAE,KAAK,EAAE,MAAM;IAO1B,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;QAAC,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;QAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;KAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS;CAkC9O;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RGBELoader = void 0;
4
+ /* eslint-disable no-case-declarations */
5
+ /* eslint-disable no-cond-assign */
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ const three_1 = require("three");
8
+ // https://github.com/mrdoob/three.js/issues/5552
9
+ // http://en.wikipedia.org/wiki/RGBE_image_format
10
+ class RGBELoader extends three_1.DataTextureLoader {
11
+ constructor(manager) {
12
+ super(manager);
13
+ this.type = three_1.HalfFloatType;
14
+ }
15
+ // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html
16
+ parse(buffer) {
17
+ const
18
+ /* return codes for rgbe routines */
19
+ //RGBE_RETURN_SUCCESS = 0,
20
+ RGBE_RETURN_FAILURE = -1,
21
+ /* default error routine. change this to change error handling */
22
+ rgbe_read_error = 1, rgbe_write_error = 2, rgbe_format_error = 3, rgbe_memory_error = 4, rgbe_error = function (rgbe_error_code, msg) {
23
+ switch (rgbe_error_code) {
24
+ case rgbe_read_error:
25
+ console.error('THREE.RGBELoader Read Error: ' + (msg || ''));
26
+ break;
27
+ case rgbe_write_error:
28
+ console.error('THREE.RGBELoader Write Error: ' + (msg || ''));
29
+ break;
30
+ case rgbe_format_error:
31
+ console.error('THREE.RGBELoader Bad File Format: ' + (msg || ''));
32
+ break;
33
+ default:
34
+ case rgbe_memory_error: console.error('THREE.RGBELoader: Error: ' + (msg || ''));
35
+ }
36
+ return RGBE_RETURN_FAILURE;
37
+ },
38
+ /* offsets to red, green, and blue components in a data (float) pixel */
39
+ //RGBE_DATA_RED = 0,
40
+ //RGBE_DATA_GREEN = 1,
41
+ //RGBE_DATA_BLUE = 2,
42
+ /* number of floats per pixel, use 4 since stored in rgba image format */
43
+ //RGBE_DATA_SIZE = 4,
44
+ /* flags indicating which fields in an rgbe_header_info are valid */
45
+ RGBE_VALID_PROGRAMTYPE = 1, RGBE_VALID_FORMAT = 2, RGBE_VALID_DIMENSIONS = 4, NEWLINE = '\n', fgets = function (buffer, lineLimit, consume) {
46
+ const chunkSize = 128;
47
+ lineLimit = !lineLimit ? 1024 : lineLimit;
48
+ let p = buffer.pos, i = -1, len = 0, s = '', chunk = String.fromCharCode.apply(null, new Uint16Array(buffer.subarray(p, p + chunkSize)));
49
+ while ((0 > (i = chunk.indexOf(NEWLINE))) && (len < lineLimit) && (p < buffer.byteLength)) {
50
+ s += chunk;
51
+ len += chunk.length;
52
+ p += chunkSize;
53
+ chunk += String.fromCharCode.apply(null, new Uint16Array(buffer.subarray(p, p + chunkSize)));
54
+ }
55
+ if (-1 < i) {
56
+ /*for (i=l-1; i>=0; i--) {
57
+ byteCode = m.charCodeAt(i);
58
+ if (byteCode > 0x7f && byteCode <= 0x7ff) byteLen++;
59
+ else if (byteCode > 0x7ff && byteCode <= 0xffff) byteLen += 2;
60
+ if (byteCode >= 0xDC00 && byteCode <= 0xDFFF) i--; //trail surrogate
61
+ }*/
62
+ if (false !== consume)
63
+ buffer.pos += len + i + 1;
64
+ return s + chunk.slice(0, i);
65
+ }
66
+ return false;
67
+ },
68
+ /* minimal header reading. modify if you want to parse more information */
69
+ RGBE_ReadHeader = function (buffer) {
70
+ // regexes to parse header info fields
71
+ const magic_token_re = /^#\?(\S+)/, gamma_re = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, exposure_re = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, format_re = /^\s*FORMAT=(\S+)\s*$/,
72
+ // eslint-disable-next-line no-useless-escape
73
+ dimensions_re = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,
74
+ // RGBE format header struct
75
+ header = {
76
+ valid: 0,
77
+ string: '',
78
+ comments: '',
79
+ programtype: 'RGBE',
80
+ format: '',
81
+ gamma: 1.0,
82
+ exposure: 1.0,
83
+ width: 0, height: 0 /* image dimensions, width/height */
84
+ };
85
+ let line, match;
86
+ if (buffer.pos >= buffer.byteLength || !(line = fgets(buffer, undefined, undefined))) {
87
+ return rgbe_error(rgbe_read_error, 'no header found');
88
+ }
89
+ /* if you want to require the magic token then uncomment the next line */
90
+ if (!(match = line.match(magic_token_re))) {
91
+ return rgbe_error(rgbe_format_error, 'bad initial token');
92
+ }
93
+ header.valid |= RGBE_VALID_PROGRAMTYPE;
94
+ header.programtype = match[1];
95
+ header.string += line + '\n';
96
+ // eslint-disable-next-line no-constant-condition
97
+ while (true) {
98
+ line = fgets(buffer, undefined, undefined);
99
+ if (false === line)
100
+ break;
101
+ header.string += line + '\n';
102
+ if ('#' === line.charAt(0)) {
103
+ header.comments += line + '\n';
104
+ continue; // comment line
105
+ }
106
+ if (match = line.match(gamma_re)) {
107
+ header.gamma = parseFloat(match[1]);
108
+ }
109
+ if (match = line.match(exposure_re)) {
110
+ header.exposure = parseFloat(match[1]);
111
+ }
112
+ if (match = line.match(format_re)) {
113
+ header.valid |= RGBE_VALID_FORMAT;
114
+ header.format = match[1]; //'32-bit_rle_rgbe';
115
+ }
116
+ if (match = line.match(dimensions_re)) {
117
+ header.valid |= RGBE_VALID_DIMENSIONS;
118
+ header.height = parseInt(match[1], 10);
119
+ header.width = parseInt(match[2], 10);
120
+ }
121
+ if ((header.valid & RGBE_VALID_FORMAT) && (header.valid & RGBE_VALID_DIMENSIONS))
122
+ break;
123
+ }
124
+ if (!(header.valid & RGBE_VALID_FORMAT)) {
125
+ return rgbe_error(rgbe_format_error, 'missing format specifier');
126
+ }
127
+ if (!(header.valid & RGBE_VALID_DIMENSIONS)) {
128
+ return rgbe_error(rgbe_format_error, 'missing image size specifier');
129
+ }
130
+ return header;
131
+ }, RGBE_ReadPixels_RLE = function (buffer, w, h) {
132
+ const scanline_width = w;
133
+ if (
134
+ // run length encoding is not allowed so read flat
135
+ ((scanline_width < 8) || (scanline_width > 0x7fff)) ||
136
+ // this file is not run length encoded
137
+ ((2 !== buffer[0]) || (2 !== buffer[1]) || (buffer[2] & 0x80))) {
138
+ // return the flat buffer
139
+ return new Uint8Array(buffer);
140
+ }
141
+ if (scanline_width !== ((buffer[2] << 8) | buffer[3])) {
142
+ return rgbe_error(rgbe_format_error, 'wrong scanline width');
143
+ }
144
+ const data_rgba = new Uint8Array(4 * w * h);
145
+ if (!data_rgba.length) {
146
+ return rgbe_error(rgbe_memory_error, 'unable to allocate buffer space');
147
+ }
148
+ let offset = 0, pos = 0;
149
+ const ptr_end = 4 * scanline_width;
150
+ const rgbeStart = new Uint8Array(4);
151
+ const scanline_buffer = new Uint8Array(ptr_end);
152
+ let num_scanlines = h;
153
+ // read in each successive scanline
154
+ while ((num_scanlines > 0) && (pos < buffer.byteLength)) {
155
+ if (pos + 4 > buffer.byteLength) {
156
+ return rgbe_error(rgbe_read_error, undefined);
157
+ }
158
+ rgbeStart[0] = buffer[pos++];
159
+ rgbeStart[1] = buffer[pos++];
160
+ rgbeStart[2] = buffer[pos++];
161
+ rgbeStart[3] = buffer[pos++];
162
+ if ((2 != rgbeStart[0]) || (2 != rgbeStart[1]) || (((rgbeStart[2] << 8) | rgbeStart[3]) != scanline_width)) {
163
+ return rgbe_error(rgbe_format_error, 'bad rgbe scanline format');
164
+ }
165
+ // read each of the four channels for the scanline into the buffer
166
+ // first red, then green, then blue, then exponent
167
+ let ptr = 0, count;
168
+ while ((ptr < ptr_end) && (pos < buffer.byteLength)) {
169
+ count = buffer[pos++];
170
+ const isEncodedRun = count > 128;
171
+ if (isEncodedRun)
172
+ count -= 128;
173
+ if ((0 === count) || (ptr + count > ptr_end)) {
174
+ return rgbe_error(rgbe_format_error, 'bad scanline data');
175
+ }
176
+ if (isEncodedRun) {
177
+ // a (encoded) run of the same value
178
+ const byteValue = buffer[pos++];
179
+ for (let i = 0; i < count; i++) {
180
+ scanline_buffer[ptr++] = byteValue;
181
+ }
182
+ //ptr += count;
183
+ }
184
+ else {
185
+ // a literal-run
186
+ scanline_buffer.set(buffer.subarray(pos, pos + count), ptr);
187
+ ptr += count;
188
+ pos += count;
189
+ }
190
+ }
191
+ // now convert data from buffer into rgba
192
+ // first red, then green, then blue, then exponent (alpha)
193
+ const l = scanline_width; //scanline_buffer.byteLength;
194
+ for (let i = 0; i < l; i++) {
195
+ let off = 0;
196
+ data_rgba[offset] = scanline_buffer[i + off];
197
+ off += scanline_width; //1;
198
+ data_rgba[offset + 1] = scanline_buffer[i + off];
199
+ off += scanline_width; //1;
200
+ data_rgba[offset + 2] = scanline_buffer[i + off];
201
+ off += scanline_width; //1;
202
+ data_rgba[offset + 3] = scanline_buffer[i + off];
203
+ offset += 4;
204
+ }
205
+ num_scanlines--;
206
+ }
207
+ return data_rgba;
208
+ };
209
+ const RGBEByteToRGBFloat = function (sourceArray, sourceOffset, destArray, destOffset) {
210
+ const e = sourceArray[sourceOffset + 3];
211
+ const scale = Math.pow(2.0, e - 128.0) / 255.0;
212
+ destArray[destOffset + 0] = sourceArray[sourceOffset + 0] * scale;
213
+ destArray[destOffset + 1] = sourceArray[sourceOffset + 1] * scale;
214
+ destArray[destOffset + 2] = sourceArray[sourceOffset + 2] * scale;
215
+ destArray[destOffset + 3] = 1;
216
+ };
217
+ const RGBEByteToRGBHalf = function (sourceArray, sourceOffset, destArray, destOffset) {
218
+ const e = sourceArray[sourceOffset + 3];
219
+ const scale = Math.pow(2.0, e - 128.0) / 255.0;
220
+ // clamping to 65504, the maximum representable value in float16
221
+ destArray[destOffset + 0] = three_1.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 0] * scale, 65504));
222
+ destArray[destOffset + 1] = three_1.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 1] * scale, 65504));
223
+ destArray[destOffset + 2] = three_1.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 2] * scale, 65504));
224
+ destArray[destOffset + 3] = three_1.DataUtils.toHalfFloat(1);
225
+ };
226
+ const byteArray = new Uint8Array(buffer);
227
+ byteArray.pos = 0;
228
+ const rgbe_header_info = RGBE_ReadHeader(byteArray);
229
+ if (RGBE_RETURN_FAILURE !== rgbe_header_info) {
230
+ const w = rgbe_header_info.width, h = rgbe_header_info.height, image_rgba_data = RGBE_ReadPixels_RLE(byteArray.subarray(byteArray.pos), w, h);
231
+ if (RGBE_RETURN_FAILURE !== image_rgba_data) {
232
+ let data, format, type;
233
+ let numElements;
234
+ switch (this.type) {
235
+ case three_1.FloatType:
236
+ numElements = image_rgba_data.length / 4;
237
+ const floatArray = new Float32Array(numElements * 4);
238
+ for (let j = 0; j < numElements; j++) {
239
+ RGBEByteToRGBFloat(image_rgba_data, j * 4, floatArray, j * 4);
240
+ }
241
+ data = floatArray;
242
+ type = three_1.FloatType;
243
+ break;
244
+ case three_1.HalfFloatType:
245
+ numElements = image_rgba_data.length / 4;
246
+ const halfArray = new Uint16Array(numElements * 4);
247
+ for (let j = 0; j < numElements; j++) {
248
+ RGBEByteToRGBHalf(image_rgba_data, j * 4, halfArray, j * 4);
249
+ }
250
+ data = halfArray;
251
+ type = three_1.HalfFloatType;
252
+ break;
253
+ default:
254
+ console.error('THREE.RGBELoader: unsupported type: ', this.type);
255
+ break;
256
+ }
257
+ return {
258
+ width: w, height: h,
259
+ data: data,
260
+ header: rgbe_header_info.string,
261
+ gamma: rgbe_header_info.gamma,
262
+ exposure: rgbe_header_info.exposure,
263
+ format: format,
264
+ type: type
265
+ };
266
+ }
267
+ }
268
+ return null;
269
+ }
270
+ setDataType(value) {
271
+ this.type = value;
272
+ return this;
273
+ }
274
+ load(url, onLoad, onProgress, onError) {
275
+ function onLoadCallback(texture, texData) {
276
+ switch (texture.type) {
277
+ case three_1.FloatType:
278
+ texture.colorSpace = three_1.LinearSRGBColorSpace;
279
+ texture.minFilter = three_1.LinearFilter;
280
+ texture.magFilter = three_1.LinearFilter;
281
+ texture.generateMipmaps = false;
282
+ texture.flipY = true;
283
+ break;
284
+ case three_1.HalfFloatType:
285
+ texture.colorSpace = three_1.LinearSRGBColorSpace;
286
+ texture.minFilter = three_1.LinearFilter;
287
+ texture.magFilter = three_1.LinearFilter;
288
+ texture.generateMipmaps = false;
289
+ texture.flipY = true;
290
+ break;
291
+ }
292
+ if (onLoad)
293
+ onLoad(texture, texData);
294
+ }
295
+ return super.load(url, onLoadCallback, onProgress, onError);
296
+ }
297
+ }
298
+ exports.RGBELoader = RGBELoader;
299
+ //# sourceMappingURL=RGBELoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RGBELoader.js","sourceRoot":"","sources":["../../../src/three/loaders/RGBELoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as THREE from 'three';
2
+ import { ITreeNodeData } from '@shapediver/viewer.shared.node-tree';
3
+ export interface IThreejsData extends ITreeNodeData {
4
+ obj: THREE.Object3D;
5
+ clone(): IThreejsData;
6
+ }
7
+ //# sourceMappingURL=IThreejsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IThreejsData.d.ts","sourceRoot":"","sources":["../../src/types/IThreejsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnE,MAAM,WAAW,YAAa,SAAQ,aAAa;IAG/C,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IAMpB,KAAK,IAAI,YAAY,CAAC;CAGzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IThreejsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IThreejsData.js","sourceRoot":"","sources":["../../src/types/IThreejsData.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import * as THREE from 'three';
2
+ import { AbstractTreeNodeData } from '@shapediver/viewer.shared.node-tree';
3
+ import { IThreejsData } from './IThreejsData';
4
+ export declare class ThreejsData extends AbstractTreeNodeData implements IThreejsData {
5
+ #private;
6
+ constructor(obj: THREE.Object3D, id?: string);
7
+ get obj(): THREE.Object3D;
8
+ set obj(value: THREE.Object3D);
9
+ clone(): IThreejsData;
10
+ }
11
+ //# sourceMappingURL=ThreejsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreejsData.d.ts","sourceRoot":"","sources":["../../src/types/ThreejsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAiB,MAAM,qCAAqC,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,oBAAqB,YAAW,YAAY;;gBAUrE,GAAG,EAAE,KAAK,CAAC,QAAQ,EACnB,EAAE,CAAC,EAAE,MAAM;IAUf,IAAW,GAAG,IAAI,KAAK,CAAC,QAAQ,CAElC;IAEE,IAAW,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAEtC;IAMS,KAAK,IAAI,YAAY;CAK/B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _ThreejsData_obj;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ThreejsData = void 0;
16
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
17
+ class ThreejsData extends viewer_shared_node_tree_1.AbstractTreeNodeData {
18
+ // #endregion Properties (1)
19
+ // #region Constructors (1)
20
+ constructor(obj, id) {
21
+ super(id);
22
+ // #region Properties (1)
23
+ _ThreejsData_obj.set(this, void 0);
24
+ __classPrivateFieldSet(this, _ThreejsData_obj, obj, "f");
25
+ }
26
+ // #endregion Constructors (1)
27
+ // #region Public Accessors (2)
28
+ get obj() {
29
+ return __classPrivateFieldGet(this, _ThreejsData_obj, "f");
30
+ }
31
+ set obj(value) {
32
+ __classPrivateFieldSet(this, _ThreejsData_obj, value, "f");
33
+ }
34
+ // #endregion Public Accessors (2)
35
+ // #region Public Methods (1)
36
+ clone() {
37
+ return new ThreejsData(this.obj, this.id);
38
+ }
39
+ }
40
+ exports.ThreejsData = ThreejsData;
41
+ _ThreejsData_obj = new WeakMap();
42
+ //# sourceMappingURL=ThreejsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreejsData.js","sourceRoot":"","sources":["../../src/types/ThreejsData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iFAAyF;AAGzF,MAAa,WAAY,SAAQ,8CAAoB;IAKjD,4BAA4B;IAE5B,2BAA2B;IAE3B,YACI,GAAmB,EACnB,EAAW;QAEX,KAAK,CAAC,EAAE,CAAC,CAAC;QAZd,yBAAyB;QAEzB,mCAAqB;QAWjB,uBAAA,IAAI,oBAAQ,GAAG,MAAA,CAAC;IACpB,CAAC;IAED,8BAA8B;IAE9B,+BAA+B;IAE/B,IAAW,GAAG;QAChB,OAAO,uBAAA,IAAI,wBAAK,CAAC;IAClB,CAAC;IAEE,IAAW,GAAG,CAAC,KAAqB;QACtC,uBAAA,IAAI,oBAAQ,KAAK,MAAA,CAAC;IACnB,CAAC;IAEE,kCAAkC;IAElC,6BAA6B;IAEtB,KAAK;QACR,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;CAGJ;AAtCD,kCAsCC"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@shapediver/viewer.rendering-engine.rendering-engine-threejs",
3
+ "version": "3.0.0",
4
+ "description": "",
5
+ "keywords": [],
6
+ "author": "Michael Oppitz <michael@shapediver.com>",
7
+ "license": "polyform-noncommercial-1.0.0",
8
+ "main": "dist/index.js",
9
+ "directories": {
10
+ "test": "__tests__"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "src",
15
+ "package.json",
16
+ "README.md",
17
+ "tsconfig.json"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/shapediver/Viewer.git"
25
+ },
26
+ "scripts": {
27
+ "check": "tsc --noEmit",
28
+ "build": "bash ../../scripts/building/build.sh",
29
+ "build-watch": "bash ../../scripts/building/build-watch.sh",
30
+ "build-dep": "bash ../../scripts/building/build-dep.sh"
31
+ },
32
+ "bugs": {
33
+ "url": "https://github.com/shapediver/Viewer/issues"
34
+ },
35
+ "homepage": "https://github.com/shapediver/Viewer#readme",
36
+ "typings": "dist/index.d.ts",
37
+ "jest": {
38
+ "preset": "ts-jest",
39
+ "testEnvironment": "node"
40
+ },
41
+ "dependencies": {
42
+ "@shapediver/viewer.data-engine.gltf-converter": "3.0.0",
43
+ "@shapediver/viewer.data-engine.shared-types": "3.0.0",
44
+ "@shapediver/viewer.data-engine.tag3d-engine": "3.0.0",
45
+ "@shapediver/viewer.rendering-engine.animation-engine": "3.0.0",
46
+ "@shapediver/viewer.rendering-engine.animation-frame-engine": "3.0.0",
47
+ "@shapediver/viewer.rendering-engine.camera-engine": "3.0.0",
48
+ "@shapediver/viewer.rendering-engine.canvas-engine": "3.0.0",
49
+ "@shapediver/viewer.rendering-engine.intersection-engine": "3.0.0",
50
+ "@shapediver/viewer.rendering-engine.light-engine": "3.0.0",
51
+ "@shapediver/viewer.rendering-engine.rendering-engine": "3.0.0",
52
+ "@shapediver/viewer.shared.math": "3.0.0",
53
+ "@shapediver/viewer.shared.node-tree": "3.0.0",
54
+ "@shapediver/viewer.shared.services": "3.0.0",
55
+ "@shapediver/viewer.shared.types": "3.0.0",
56
+ "@tweenjs/tween.js": "^18.6.4",
57
+ "@types/stats.js": "^0.17.0",
58
+ "@types/three": "0.162.0",
59
+ "gl-matrix": "3.3.0",
60
+ "postprocessing": "6.35.3",
61
+ "stats.js": "^0.17.0",
62
+ "three": "0.162.0"
63
+ },
64
+ "gitHead": "b6b0010bf5d5652aa338df8016405d97f33fcabb"
65
+ }