three-stdlib 2.16.0 → 2.16.2

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 (1219) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +143 -64
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,62 +1,78 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- const fflate = require("fflate");
5
- class ThreeMFLoader extends THREE.Loader {
1
+ import { Loader, FileLoader, TextureLoader, LoaderUtils, Group, Color, Matrix4, BufferGeometry, Float32BufferAttribute, Mesh, MeshPhongMaterial, BufferAttribute, MeshStandardMaterial, sRGBEncoding, RepeatWrapping, ClampToEdgeWrapping, MirroredRepeatWrapping, LinearFilter, LinearMipmapLinearFilter, NearestFilter } from 'three';
2
+ import { unzipSync } from 'fflate';
3
+
4
+ /**
5
+ *
6
+ * 3D Manufacturing Format (3MF) specification: https://3mf.io/specification/
7
+ *
8
+ * The following features from the core specification are supported:
9
+ *
10
+ * - 3D Models
11
+ * - Object Resources (Meshes and Components)
12
+ * - Material Resources (Base Materials)
13
+ *
14
+ * 3MF Materials and Properties Extension are only partially supported.
15
+ *
16
+ * - Texture 2D
17
+ * - Texture 2D Groups
18
+ * - Color Groups (Vertex Colors)
19
+ * - Metallic Display Properties (PBR)
20
+ */
21
+
22
+ class ThreeMFLoader extends Loader {
6
23
  constructor(manager) {
7
24
  super(manager);
8
25
  this.availableExtensions = [];
9
26
  }
27
+
10
28
  load(url, onLoad, onProgress, onError) {
11
29
  const scope = this;
12
- const loader = new THREE.FileLoader(scope.manager);
30
+ const loader = new FileLoader(scope.manager);
13
31
  loader.setPath(scope.path);
14
- loader.setResponseType("arraybuffer");
32
+ loader.setResponseType('arraybuffer');
15
33
  loader.setRequestHeader(scope.requestHeader);
16
34
  loader.setWithCredentials(scope.withCredentials);
17
- loader.load(
18
- url,
19
- function(buffer) {
20
- try {
21
- onLoad(scope.parse(buffer));
22
- } catch (e) {
23
- if (onError) {
24
- onError(e);
25
- } else {
26
- console.error(e);
27
- }
28
- scope.manager.itemError(url);
35
+ loader.load(url, function (buffer) {
36
+ try {
37
+ onLoad(scope.parse(buffer));
38
+ } catch (e) {
39
+ if (onError) {
40
+ onError(e);
41
+ } else {
42
+ console.error(e);
29
43
  }
30
- },
31
- onProgress,
32
- onError
33
- );
44
+
45
+ scope.manager.itemError(url);
46
+ }
47
+ }, onProgress, onError);
34
48
  }
49
+
35
50
  parse(data) {
36
51
  const scope = this;
37
- const textureLoader = new THREE.TextureLoader(this.manager);
38
- function loadDocument(data2) {
52
+ const textureLoader = new TextureLoader(this.manager);
53
+
54
+ function loadDocument(data) {
39
55
  let zip = null;
40
56
  let file = null;
41
57
  let relsName;
42
58
  let modelRelsName;
43
59
  const modelPartNames = [];
44
- const printTicketPartNames = [];
45
60
  const texturesPartNames = [];
46
- const otherPartNames = [];
47
61
  let modelRels;
48
62
  const modelParts = {};
49
63
  const printTicketParts = {};
50
64
  const texturesParts = {};
51
65
  const otherParts = {};
66
+
52
67
  try {
53
- zip = fflate.unzipSync(new Uint8Array(data2));
68
+ zip = unzipSync(new Uint8Array(data)); // eslint-disable-line no-undef
54
69
  } catch (e) {
55
70
  if (e instanceof ReferenceError) {
56
- console.error("THREE.3MFLoader: fflate missing and file is compressed.");
71
+ console.error('THREE.3MFLoader: fflate missing and file is compressed.');
57
72
  return null;
58
73
  }
59
74
  }
75
+
60
76
  for (file in zip) {
61
77
  if (file.match(/\_rels\/.rels$/)) {
62
78
  relsName = file;
@@ -64,454 +80,585 @@ class ThreeMFLoader extends THREE.Loader {
64
80
  modelRelsName = file;
65
81
  } else if (file.match(/^3D\/.*\.model$/)) {
66
82
  modelPartNames.push(file);
67
- } else if (file.match(/^3D\/Metadata\/.*\.xml$/)) {
68
- printTicketPartNames.push(file);
69
- } else if (file.match(/^3D\/Textures?\/.*/)) {
83
+ } else if (file.match(/^3D\/Metadata\/.*\.xml$/)) ; else if (file.match(/^3D\/Textures?\/.*/)) {
70
84
  texturesPartNames.push(file);
71
- } else if (file.match(/^3D\/Other\/.*/)) {
72
- otherPartNames.push(file);
73
- }
74
- }
85
+ } else if (file.match(/^3D\/Other\/.*/)) ;
86
+ } //
87
+
88
+
75
89
  const relsView = zip[relsName];
76
- const relsFileText = THREE.LoaderUtils.decodeText(relsView);
77
- const rels = parseRelsXml(relsFileText);
90
+ const relsFileText = LoaderUtils.decodeText(relsView);
91
+ const rels = parseRelsXml(relsFileText); //
92
+
78
93
  if (modelRelsName) {
79
- const relsView2 = zip[modelRelsName];
80
- const relsFileText2 = THREE.LoaderUtils.decodeText(relsView2);
81
- modelRels = parseRelsXml(relsFileText2);
82
- }
94
+ const relsView = zip[modelRelsName];
95
+ const relsFileText = LoaderUtils.decodeText(relsView);
96
+ modelRels = parseRelsXml(relsFileText);
97
+ } //
98
+
99
+
83
100
  for (let i = 0; i < modelPartNames.length; i++) {
84
101
  const modelPart = modelPartNames[i];
85
102
  const view = zip[modelPart];
86
- const fileText = THREE.LoaderUtils.decodeText(view);
87
- const xmlData = new DOMParser().parseFromString(fileText, "application/xml");
88
- if (xmlData.documentElement.nodeName.toLowerCase() !== "model") {
89
- console.error("THREE.3MFLoader: Error loading 3MF - no 3MF document found: ", modelPart);
103
+ const fileText = LoaderUtils.decodeText(view);
104
+ const xmlData = new DOMParser().parseFromString(fileText, 'application/xml');
105
+
106
+ if (xmlData.documentElement.nodeName.toLowerCase() !== 'model') {
107
+ console.error('THREE.3MFLoader: Error loading 3MF - no 3MF document found: ', modelPart);
90
108
  }
91
- const modelNode = xmlData.querySelector("model");
109
+
110
+ const modelNode = xmlData.querySelector('model');
92
111
  const extensions = {};
93
- for (let i2 = 0; i2 < modelNode.attributes.length; i2++) {
94
- const attr = modelNode.attributes[i2];
112
+
113
+ for (let i = 0; i < modelNode.attributes.length; i++) {
114
+ const attr = modelNode.attributes[i];
115
+
95
116
  if (attr.name.match(/^xmlns:(.+)$/)) {
96
117
  extensions[attr.value] = RegExp.$1;
97
118
  }
98
119
  }
120
+
99
121
  const modelData = parseModelNode(modelNode);
100
- modelData["xml"] = modelNode;
122
+ modelData['xml'] = modelNode;
123
+
101
124
  if (0 < Object.keys(extensions).length) {
102
- modelData["extensions"] = extensions;
125
+ modelData['extensions'] = extensions;
103
126
  }
127
+
104
128
  modelParts[modelPart] = modelData;
105
- }
129
+ } //
130
+
131
+
106
132
  for (let i = 0; i < texturesPartNames.length; i++) {
107
133
  const texturesPartName = texturesPartNames[i];
108
134
  texturesParts[texturesPartName] = zip[texturesPartName].buffer;
109
135
  }
136
+
110
137
  return {
111
- rels,
112
- modelRels,
138
+ rels: rels,
139
+ modelRels: modelRels,
113
140
  model: modelParts,
114
141
  printTicket: printTicketParts,
115
142
  texture: texturesParts,
116
143
  other: otherParts
117
144
  };
118
145
  }
146
+
119
147
  function parseRelsXml(relsFileText) {
120
148
  const relationships = [];
121
- const relsXmlData = new DOMParser().parseFromString(relsFileText, "application/xml");
122
- const relsNodes = relsXmlData.querySelectorAll("Relationship");
149
+ const relsXmlData = new DOMParser().parseFromString(relsFileText, 'application/xml');
150
+ const relsNodes = relsXmlData.querySelectorAll('Relationship');
151
+
123
152
  for (let i = 0; i < relsNodes.length; i++) {
124
153
  const relsNode = relsNodes[i];
125
154
  const relationship = {
126
- target: relsNode.getAttribute("Target"),
127
- id: relsNode.getAttribute("Id"),
128
- type: relsNode.getAttribute("Type")
155
+ target: relsNode.getAttribute('Target'),
156
+ //required
157
+ id: relsNode.getAttribute('Id'),
158
+ //required
159
+ type: relsNode.getAttribute('Type') //required
160
+
129
161
  };
130
162
  relationships.push(relationship);
131
163
  }
164
+
132
165
  return relationships;
133
166
  }
167
+
134
168
  function parseMetadataNodes(metadataNodes) {
135
169
  const metadataData = {};
170
+
136
171
  for (let i = 0; i < metadataNodes.length; i++) {
137
172
  const metadataNode = metadataNodes[i];
138
- const name = metadataNode.getAttribute("name");
139
- const validNames = [
140
- "Title",
141
- "Designer",
142
- "Description",
143
- "Copyright",
144
- "LicenseTerms",
145
- "Rating",
146
- "CreationDate",
147
- "ModificationDate"
148
- ];
173
+ const name = metadataNode.getAttribute('name');
174
+ const validNames = ['Title', 'Designer', 'Description', 'Copyright', 'LicenseTerms', 'Rating', 'CreationDate', 'ModificationDate'];
175
+
149
176
  if (0 <= validNames.indexOf(name)) {
150
177
  metadataData[name] = metadataNode.textContent;
151
178
  }
152
179
  }
180
+
153
181
  return metadataData;
154
182
  }
183
+
155
184
  function parseBasematerialsNode(basematerialsNode) {
156
185
  const basematerialsData = {
157
- id: basematerialsNode.getAttribute("id"),
186
+ id: basematerialsNode.getAttribute('id'),
187
+ // required
158
188
  basematerials: []
159
189
  };
160
- const basematerialNodes = basematerialsNode.querySelectorAll("base");
190
+ const basematerialNodes = basematerialsNode.querySelectorAll('base');
191
+
161
192
  for (let i = 0; i < basematerialNodes.length; i++) {
162
193
  const basematerialNode = basematerialNodes[i];
163
194
  const basematerialData = parseBasematerialNode(basematerialNode);
164
- basematerialData.index = i;
195
+ basematerialData.index = i; // the order and count of the material nodes form an implicit 0-based index
196
+
165
197
  basematerialsData.basematerials.push(basematerialData);
166
198
  }
199
+
167
200
  return basematerialsData;
168
201
  }
202
+
169
203
  function parseTexture2DNode(texture2DNode) {
170
204
  const texture2dData = {
171
- id: texture2DNode.getAttribute("id"),
172
- path: texture2DNode.getAttribute("path"),
173
- contenttype: texture2DNode.getAttribute("contenttype"),
174
- tilestyleu: texture2DNode.getAttribute("tilestyleu"),
175
- tilestylev: texture2DNode.getAttribute("tilestylev"),
176
- filter: texture2DNode.getAttribute("filter")
205
+ id: texture2DNode.getAttribute('id'),
206
+ // required
207
+ path: texture2DNode.getAttribute('path'),
208
+ // required
209
+ contenttype: texture2DNode.getAttribute('contenttype'),
210
+ // required
211
+ tilestyleu: texture2DNode.getAttribute('tilestyleu'),
212
+ tilestylev: texture2DNode.getAttribute('tilestylev'),
213
+ filter: texture2DNode.getAttribute('filter')
177
214
  };
178
215
  return texture2dData;
179
216
  }
217
+
180
218
  function parseTextures2DGroupNode(texture2DGroupNode) {
181
219
  const texture2DGroupData = {
182
- id: texture2DGroupNode.getAttribute("id"),
183
- texid: texture2DGroupNode.getAttribute("texid"),
184
- displaypropertiesid: texture2DGroupNode.getAttribute("displaypropertiesid")
220
+ id: texture2DGroupNode.getAttribute('id'),
221
+ // required
222
+ texid: texture2DGroupNode.getAttribute('texid'),
223
+ // required
224
+ displaypropertiesid: texture2DGroupNode.getAttribute('displaypropertiesid')
185
225
  };
186
- const tex2coordNodes = texture2DGroupNode.querySelectorAll("tex2coord");
226
+ const tex2coordNodes = texture2DGroupNode.querySelectorAll('tex2coord');
187
227
  const uvs = [];
228
+
188
229
  for (let i = 0; i < tex2coordNodes.length; i++) {
189
230
  const tex2coordNode = tex2coordNodes[i];
190
- const u = tex2coordNode.getAttribute("u");
191
- const v = tex2coordNode.getAttribute("v");
231
+ const u = tex2coordNode.getAttribute('u');
232
+ const v = tex2coordNode.getAttribute('v');
192
233
  uvs.push(parseFloat(u), parseFloat(v));
193
234
  }
194
- texture2DGroupData["uvs"] = new Float32Array(uvs);
235
+
236
+ texture2DGroupData['uvs'] = new Float32Array(uvs);
195
237
  return texture2DGroupData;
196
238
  }
239
+
197
240
  function parseColorGroupNode(colorGroupNode) {
198
241
  const colorGroupData = {
199
- id: colorGroupNode.getAttribute("id"),
200
- displaypropertiesid: colorGroupNode.getAttribute("displaypropertiesid")
242
+ id: colorGroupNode.getAttribute('id'),
243
+ // required
244
+ displaypropertiesid: colorGroupNode.getAttribute('displaypropertiesid')
201
245
  };
202
- const colorNodes = colorGroupNode.querySelectorAll("color");
246
+ const colorNodes = colorGroupNode.querySelectorAll('color');
203
247
  const colors = [];
204
- const colorObject = new THREE.Color();
248
+ const colorObject = new Color();
249
+
205
250
  for (let i = 0; i < colorNodes.length; i++) {
206
251
  const colorNode = colorNodes[i];
207
- const color = colorNode.getAttribute("color");
252
+ const color = colorNode.getAttribute('color');
208
253
  colorObject.setStyle(color.substring(0, 7));
209
- colorObject.convertSRGBToLinear();
254
+ colorObject.convertSRGBToLinear(); // color is in sRGB
255
+
210
256
  colors.push(colorObject.r, colorObject.g, colorObject.b);
211
257
  }
212
- colorGroupData["colors"] = new Float32Array(colors);
258
+
259
+ colorGroupData['colors'] = new Float32Array(colors);
213
260
  return colorGroupData;
214
261
  }
262
+
215
263
  function parseMetallicDisplaypropertiesNode(metallicDisplaypropetiesNode) {
216
264
  const metallicDisplaypropertiesData = {
217
- id: metallicDisplaypropetiesNode.getAttribute("id")
265
+ id: metallicDisplaypropetiesNode.getAttribute('id') // required
266
+
218
267
  };
219
- const metallicNodes = metallicDisplaypropetiesNode.querySelectorAll("pbmetallic");
268
+ const metallicNodes = metallicDisplaypropetiesNode.querySelectorAll('pbmetallic');
220
269
  const metallicData = [];
270
+
221
271
  for (let i = 0; i < metallicNodes.length; i++) {
222
272
  const metallicNode = metallicNodes[i];
223
273
  metallicData.push({
224
- name: metallicNode.getAttribute("name"),
225
- metallicness: parseFloat(metallicNode.getAttribute("metallicness")),
226
- roughness: parseFloat(metallicNode.getAttribute("roughness"))
274
+ name: metallicNode.getAttribute('name'),
275
+ // required
276
+ metallicness: parseFloat(metallicNode.getAttribute('metallicness')),
277
+ // required
278
+ roughness: parseFloat(metallicNode.getAttribute('roughness')) // required
279
+
227
280
  });
228
281
  }
282
+
229
283
  metallicDisplaypropertiesData.data = metallicData;
230
284
  return metallicDisplaypropertiesData;
231
285
  }
286
+
232
287
  function parseBasematerialNode(basematerialNode) {
233
288
  const basematerialData = {};
234
- basematerialData["name"] = basematerialNode.getAttribute("name");
235
- basematerialData["displaycolor"] = basematerialNode.getAttribute("displaycolor");
236
- basematerialData["displaypropertiesid"] = basematerialNode.getAttribute("displaypropertiesid");
289
+ basematerialData['name'] = basematerialNode.getAttribute('name'); // required
290
+
291
+ basematerialData['displaycolor'] = basematerialNode.getAttribute('displaycolor'); // required
292
+
293
+ basematerialData['displaypropertiesid'] = basematerialNode.getAttribute('displaypropertiesid');
237
294
  return basematerialData;
238
295
  }
296
+
239
297
  function parseMeshNode(meshNode) {
240
298
  const meshData = {};
241
299
  const vertices = [];
242
- const vertexNodes = meshNode.querySelectorAll("vertices vertex");
300
+ const vertexNodes = meshNode.querySelectorAll('vertices vertex');
301
+
243
302
  for (let i = 0; i < vertexNodes.length; i++) {
244
303
  const vertexNode = vertexNodes[i];
245
- const x = vertexNode.getAttribute("x");
246
- const y = vertexNode.getAttribute("y");
247
- const z = vertexNode.getAttribute("z");
304
+ const x = vertexNode.getAttribute('x');
305
+ const y = vertexNode.getAttribute('y');
306
+ const z = vertexNode.getAttribute('z');
248
307
  vertices.push(parseFloat(x), parseFloat(y), parseFloat(z));
249
308
  }
250
- meshData["vertices"] = new Float32Array(vertices);
309
+
310
+ meshData['vertices'] = new Float32Array(vertices);
251
311
  const triangleProperties = [];
252
312
  const triangles = [];
253
- const triangleNodes = meshNode.querySelectorAll("triangles triangle");
313
+ const triangleNodes = meshNode.querySelectorAll('triangles triangle');
314
+
254
315
  for (let i = 0; i < triangleNodes.length; i++) {
255
316
  const triangleNode = triangleNodes[i];
256
- const v1 = triangleNode.getAttribute("v1");
257
- const v2 = triangleNode.getAttribute("v2");
258
- const v3 = triangleNode.getAttribute("v3");
259
- const p1 = triangleNode.getAttribute("p1");
260
- const p2 = triangleNode.getAttribute("p2");
261
- const p3 = triangleNode.getAttribute("p3");
262
- const pid = triangleNode.getAttribute("pid");
317
+ const v1 = triangleNode.getAttribute('v1');
318
+ const v2 = triangleNode.getAttribute('v2');
319
+ const v3 = triangleNode.getAttribute('v3');
320
+ const p1 = triangleNode.getAttribute('p1');
321
+ const p2 = triangleNode.getAttribute('p2');
322
+ const p3 = triangleNode.getAttribute('p3');
323
+ const pid = triangleNode.getAttribute('pid');
263
324
  const triangleProperty = {};
264
- triangleProperty["v1"] = parseInt(v1, 10);
265
- triangleProperty["v2"] = parseInt(v2, 10);
266
- triangleProperty["v3"] = parseInt(v3, 10);
267
- triangles.push(triangleProperty["v1"], triangleProperty["v2"], triangleProperty["v3"]);
325
+ triangleProperty['v1'] = parseInt(v1, 10);
326
+ triangleProperty['v2'] = parseInt(v2, 10);
327
+ triangleProperty['v3'] = parseInt(v3, 10);
328
+ triangles.push(triangleProperty['v1'], triangleProperty['v2'], triangleProperty['v3']); // optional
329
+
268
330
  if (p1) {
269
- triangleProperty["p1"] = parseInt(p1, 10);
331
+ triangleProperty['p1'] = parseInt(p1, 10);
270
332
  }
333
+
271
334
  if (p2) {
272
- triangleProperty["p2"] = parseInt(p2, 10);
335
+ triangleProperty['p2'] = parseInt(p2, 10);
273
336
  }
337
+
274
338
  if (p3) {
275
- triangleProperty["p3"] = parseInt(p3, 10);
339
+ triangleProperty['p3'] = parseInt(p3, 10);
276
340
  }
341
+
277
342
  if (pid) {
278
- triangleProperty["pid"] = pid;
343
+ triangleProperty['pid'] = pid;
279
344
  }
345
+
280
346
  if (0 < Object.keys(triangleProperty).length) {
281
347
  triangleProperties.push(triangleProperty);
282
348
  }
283
349
  }
284
- meshData["triangleProperties"] = triangleProperties;
285
- meshData["triangles"] = new Uint32Array(triangles);
350
+
351
+ meshData['triangleProperties'] = triangleProperties;
352
+ meshData['triangles'] = new Uint32Array(triangles);
286
353
  return meshData;
287
354
  }
355
+
288
356
  function parseComponentsNode(componentsNode) {
289
357
  const components = [];
290
- const componentNodes = componentsNode.querySelectorAll("component");
358
+ const componentNodes = componentsNode.querySelectorAll('component');
359
+
291
360
  for (let i = 0; i < componentNodes.length; i++) {
292
361
  const componentNode = componentNodes[i];
293
362
  const componentData = parseComponentNode(componentNode);
294
363
  components.push(componentData);
295
364
  }
365
+
296
366
  return components;
297
367
  }
368
+
298
369
  function parseComponentNode(componentNode) {
299
370
  const componentData = {};
300
- componentData["objectId"] = componentNode.getAttribute("objectid");
301
- const transform = componentNode.getAttribute("transform");
371
+ componentData['objectId'] = componentNode.getAttribute('objectid'); // required
372
+
373
+ const transform = componentNode.getAttribute('transform');
374
+
302
375
  if (transform) {
303
- componentData["transform"] = parseTransform(transform);
376
+ componentData['transform'] = parseTransform(transform);
304
377
  }
378
+
305
379
  return componentData;
306
380
  }
381
+
307
382
  function parseTransform(transform) {
308
383
  const t = [];
309
- transform.split(" ").forEach(function(s) {
384
+ transform.split(' ').forEach(function (s) {
310
385
  t.push(parseFloat(s));
311
386
  });
312
- const matrix = new THREE.Matrix4();
313
- matrix.set(t[0], t[3], t[6], t[9], t[1], t[4], t[7], t[10], t[2], t[5], t[8], t[11], 0, 0, 0, 1);
387
+ const matrix = new Matrix4();
388
+ matrix.set(t[0], t[3], t[6], t[9], t[1], t[4], t[7], t[10], t[2], t[5], t[8], t[11], 0.0, 0.0, 0.0, 1.0);
314
389
  return matrix;
315
390
  }
391
+
316
392
  function parseObjectNode(objectNode) {
317
393
  const objectData = {
318
- type: objectNode.getAttribute("type")
394
+ type: objectNode.getAttribute('type')
319
395
  };
320
- const id = objectNode.getAttribute("id");
396
+ const id = objectNode.getAttribute('id');
397
+
321
398
  if (id) {
322
- objectData["id"] = id;
399
+ objectData['id'] = id;
323
400
  }
324
- const pid = objectNode.getAttribute("pid");
401
+
402
+ const pid = objectNode.getAttribute('pid');
403
+
325
404
  if (pid) {
326
- objectData["pid"] = pid;
405
+ objectData['pid'] = pid;
327
406
  }
328
- const pindex = objectNode.getAttribute("pindex");
407
+
408
+ const pindex = objectNode.getAttribute('pindex');
409
+
329
410
  if (pindex) {
330
- objectData["pindex"] = pindex;
411
+ objectData['pindex'] = pindex;
331
412
  }
332
- const thumbnail = objectNode.getAttribute("thumbnail");
413
+
414
+ const thumbnail = objectNode.getAttribute('thumbnail');
415
+
333
416
  if (thumbnail) {
334
- objectData["thumbnail"] = thumbnail;
417
+ objectData['thumbnail'] = thumbnail;
335
418
  }
336
- const partnumber = objectNode.getAttribute("partnumber");
419
+
420
+ const partnumber = objectNode.getAttribute('partnumber');
421
+
337
422
  if (partnumber) {
338
- objectData["partnumber"] = partnumber;
423
+ objectData['partnumber'] = partnumber;
339
424
  }
340
- const name = objectNode.getAttribute("name");
425
+
426
+ const name = objectNode.getAttribute('name');
427
+
341
428
  if (name) {
342
- objectData["name"] = name;
429
+ objectData['name'] = name;
343
430
  }
344
- const meshNode = objectNode.querySelector("mesh");
431
+
432
+ const meshNode = objectNode.querySelector('mesh');
433
+
345
434
  if (meshNode) {
346
- objectData["mesh"] = parseMeshNode(meshNode);
435
+ objectData['mesh'] = parseMeshNode(meshNode);
347
436
  }
348
- const componentsNode = objectNode.querySelector("components");
437
+
438
+ const componentsNode = objectNode.querySelector('components');
439
+
349
440
  if (componentsNode) {
350
- objectData["components"] = parseComponentsNode(componentsNode);
441
+ objectData['components'] = parseComponentsNode(componentsNode);
351
442
  }
443
+
352
444
  return objectData;
353
445
  }
446
+
354
447
  function parseResourcesNode(resourcesNode) {
355
448
  const resourcesData = {};
356
- resourcesData["basematerials"] = {};
357
- const basematerialsNodes = resourcesNode.querySelectorAll("basematerials");
449
+ resourcesData['basematerials'] = {};
450
+ const basematerialsNodes = resourcesNode.querySelectorAll('basematerials');
451
+
358
452
  for (let i = 0; i < basematerialsNodes.length; i++) {
359
453
  const basematerialsNode = basematerialsNodes[i];
360
454
  const basematerialsData = parseBasematerialsNode(basematerialsNode);
361
- resourcesData["basematerials"][basematerialsData["id"]] = basematerialsData;
362
- }
363
- resourcesData["texture2d"] = {};
364
- const textures2DNodes = resourcesNode.querySelectorAll("texture2d");
455
+ resourcesData['basematerials'][basematerialsData['id']] = basematerialsData;
456
+ } //
457
+
458
+
459
+ resourcesData['texture2d'] = {};
460
+ const textures2DNodes = resourcesNode.querySelectorAll('texture2d');
461
+
365
462
  for (let i = 0; i < textures2DNodes.length; i++) {
366
463
  const textures2DNode = textures2DNodes[i];
367
464
  const texture2DData = parseTexture2DNode(textures2DNode);
368
- resourcesData["texture2d"][texture2DData["id"]] = texture2DData;
369
- }
370
- resourcesData["colorgroup"] = {};
371
- const colorGroupNodes = resourcesNode.querySelectorAll("colorgroup");
465
+ resourcesData['texture2d'][texture2DData['id']] = texture2DData;
466
+ } //
467
+
468
+
469
+ resourcesData['colorgroup'] = {};
470
+ const colorGroupNodes = resourcesNode.querySelectorAll('colorgroup');
471
+
372
472
  for (let i = 0; i < colorGroupNodes.length; i++) {
373
473
  const colorGroupNode = colorGroupNodes[i];
374
474
  const colorGroupData = parseColorGroupNode(colorGroupNode);
375
- resourcesData["colorgroup"][colorGroupData["id"]] = colorGroupData;
376
- }
377
- resourcesData["pbmetallicdisplayproperties"] = {};
378
- const pbmetallicdisplaypropertiesNodes = resourcesNode.querySelectorAll("pbmetallicdisplayproperties");
475
+ resourcesData['colorgroup'][colorGroupData['id']] = colorGroupData;
476
+ } //
477
+
478
+
479
+ resourcesData['pbmetallicdisplayproperties'] = {};
480
+ const pbmetallicdisplaypropertiesNodes = resourcesNode.querySelectorAll('pbmetallicdisplayproperties');
481
+
379
482
  for (let i = 0; i < pbmetallicdisplaypropertiesNodes.length; i++) {
380
483
  const pbmetallicdisplaypropertiesNode = pbmetallicdisplaypropertiesNodes[i];
381
484
  const pbmetallicdisplaypropertiesData = parseMetallicDisplaypropertiesNode(pbmetallicdisplaypropertiesNode);
382
- resourcesData["pbmetallicdisplayproperties"][pbmetallicdisplaypropertiesData["id"]] = pbmetallicdisplaypropertiesData;
383
- }
384
- resourcesData["texture2dgroup"] = {};
385
- const textures2DGroupNodes = resourcesNode.querySelectorAll("texture2dgroup");
485
+ resourcesData['pbmetallicdisplayproperties'][pbmetallicdisplaypropertiesData['id']] = pbmetallicdisplaypropertiesData;
486
+ } //
487
+
488
+
489
+ resourcesData['texture2dgroup'] = {};
490
+ const textures2DGroupNodes = resourcesNode.querySelectorAll('texture2dgroup');
491
+
386
492
  for (let i = 0; i < textures2DGroupNodes.length; i++) {
387
493
  const textures2DGroupNode = textures2DGroupNodes[i];
388
494
  const textures2DGroupData = parseTextures2DGroupNode(textures2DGroupNode);
389
- resourcesData["texture2dgroup"][textures2DGroupData["id"]] = textures2DGroupData;
390
- }
391
- resourcesData["object"] = {};
392
- const objectNodes = resourcesNode.querySelectorAll("object");
495
+ resourcesData['texture2dgroup'][textures2DGroupData['id']] = textures2DGroupData;
496
+ } //
497
+
498
+
499
+ resourcesData['object'] = {};
500
+ const objectNodes = resourcesNode.querySelectorAll('object');
501
+
393
502
  for (let i = 0; i < objectNodes.length; i++) {
394
503
  const objectNode = objectNodes[i];
395
504
  const objectData = parseObjectNode(objectNode);
396
- resourcesData["object"][objectData["id"]] = objectData;
505
+ resourcesData['object'][objectData['id']] = objectData;
397
506
  }
507
+
398
508
  return resourcesData;
399
509
  }
510
+
400
511
  function parseBuildNode(buildNode) {
401
512
  const buildData = [];
402
- const itemNodes = buildNode.querySelectorAll("item");
513
+ const itemNodes = buildNode.querySelectorAll('item');
514
+
403
515
  for (let i = 0; i < itemNodes.length; i++) {
404
516
  const itemNode = itemNodes[i];
405
517
  const buildItem = {
406
- objectId: itemNode.getAttribute("objectid")
518
+ objectId: itemNode.getAttribute('objectid')
407
519
  };
408
- const transform = itemNode.getAttribute("transform");
520
+ const transform = itemNode.getAttribute('transform');
521
+
409
522
  if (transform) {
410
- buildItem["transform"] = parseTransform(transform);
523
+ buildItem['transform'] = parseTransform(transform);
411
524
  }
525
+
412
526
  buildData.push(buildItem);
413
527
  }
528
+
414
529
  return buildData;
415
530
  }
531
+
416
532
  function parseModelNode(modelNode) {
417
- const modelData = { unit: modelNode.getAttribute("unit") || "millimeter" };
418
- const metadataNodes = modelNode.querySelectorAll("metadata");
533
+ const modelData = {
534
+ unit: modelNode.getAttribute('unit') || 'millimeter'
535
+ };
536
+ const metadataNodes = modelNode.querySelectorAll('metadata');
537
+
419
538
  if (metadataNodes) {
420
- modelData["metadata"] = parseMetadataNodes(metadataNodes);
539
+ modelData['metadata'] = parseMetadataNodes(metadataNodes);
421
540
  }
422
- const resourcesNode = modelNode.querySelector("resources");
541
+
542
+ const resourcesNode = modelNode.querySelector('resources');
543
+
423
544
  if (resourcesNode) {
424
- modelData["resources"] = parseResourcesNode(resourcesNode);
545
+ modelData['resources'] = parseResourcesNode(resourcesNode);
425
546
  }
426
- const buildNode = modelNode.querySelector("build");
547
+
548
+ const buildNode = modelNode.querySelector('build');
549
+
427
550
  if (buildNode) {
428
- modelData["build"] = parseBuildNode(buildNode);
551
+ modelData['build'] = parseBuildNode(buildNode);
429
552
  }
553
+
430
554
  return modelData;
431
555
  }
432
- function buildTexture(texture2dgroup, objects2, modelData, textureData) {
556
+
557
+ function buildTexture(texture2dgroup, objects, modelData, textureData) {
433
558
  const texid = texture2dgroup.texid;
434
559
  const texture2ds = modelData.resources.texture2d;
435
560
  const texture2d = texture2ds[texid];
561
+
436
562
  if (texture2d) {
437
- const data2 = textureData[texture2d.path];
563
+ const data = textureData[texture2d.path];
438
564
  const type = texture2d.contenttype;
439
- const blob = new Blob([data2], { type });
565
+ const blob = new Blob([data], {
566
+ type: type
567
+ });
440
568
  const sourceURI = URL.createObjectURL(blob);
441
- const texture = textureLoader.load(sourceURI, function() {
569
+ const texture = textureLoader.load(sourceURI, function () {
442
570
  URL.revokeObjectURL(sourceURI);
443
571
  });
444
- texture.encoding = THREE.sRGBEncoding;
572
+ texture.encoding = sRGBEncoding; // texture parameters
573
+
445
574
  switch (texture2d.tilestyleu) {
446
- case "wrap":
447
- texture.wrapS = THREE.RepeatWrapping;
575
+ case 'wrap':
576
+ texture.wrapS = RepeatWrapping;
448
577
  break;
449
- case "mirror":
450
- texture.wrapS = THREE.MirroredRepeatWrapping;
578
+
579
+ case 'mirror':
580
+ texture.wrapS = MirroredRepeatWrapping;
451
581
  break;
452
- case "none":
453
- case "clamp":
454
- texture.wrapS = THREE.ClampToEdgeWrapping;
582
+
583
+ case 'none':
584
+ case 'clamp':
585
+ texture.wrapS = ClampToEdgeWrapping;
455
586
  break;
587
+
456
588
  default:
457
- texture.wrapS = THREE.RepeatWrapping;
589
+ texture.wrapS = RepeatWrapping;
458
590
  }
591
+
459
592
  switch (texture2d.tilestylev) {
460
- case "wrap":
461
- texture.wrapT = THREE.RepeatWrapping;
593
+ case 'wrap':
594
+ texture.wrapT = RepeatWrapping;
462
595
  break;
463
- case "mirror":
464
- texture.wrapT = THREE.MirroredRepeatWrapping;
596
+
597
+ case 'mirror':
598
+ texture.wrapT = MirroredRepeatWrapping;
465
599
  break;
466
- case "none":
467
- case "clamp":
468
- texture.wrapT = THREE.ClampToEdgeWrapping;
600
+
601
+ case 'none':
602
+ case 'clamp':
603
+ texture.wrapT = ClampToEdgeWrapping;
469
604
  break;
605
+
470
606
  default:
471
- texture.wrapT = THREE.RepeatWrapping;
607
+ texture.wrapT = RepeatWrapping;
472
608
  }
609
+
473
610
  switch (texture2d.filter) {
474
- case "auto":
475
- texture.magFilter = THREE.LinearFilter;
476
- texture.minFilter = THREE.LinearMipmapLinearFilter;
611
+ case 'auto':
612
+ texture.magFilter = LinearFilter;
613
+ texture.minFilter = LinearMipmapLinearFilter;
477
614
  break;
478
- case "linear":
479
- texture.magFilter = THREE.LinearFilter;
480
- texture.minFilter = THREE.LinearFilter;
615
+
616
+ case 'linear':
617
+ texture.magFilter = LinearFilter;
618
+ texture.minFilter = LinearFilter;
481
619
  break;
482
- case "nearest":
483
- texture.magFilter = THREE.NearestFilter;
484
- texture.minFilter = THREE.NearestFilter;
620
+
621
+ case 'nearest':
622
+ texture.magFilter = NearestFilter;
623
+ texture.minFilter = NearestFilter;
485
624
  break;
625
+
486
626
  default:
487
- texture.magFilter = THREE.LinearFilter;
488
- texture.minFilter = THREE.LinearMipmapLinearFilter;
627
+ texture.magFilter = LinearFilter;
628
+ texture.minFilter = LinearMipmapLinearFilter;
489
629
  }
630
+
490
631
  return texture;
491
632
  } else {
492
633
  return null;
493
634
  }
494
635
  }
495
- function buildBasematerialsMeshes(basematerials, triangleProperties, meshData, objects2, modelData, textureData, objectData) {
636
+
637
+ function buildBasematerialsMeshes(basematerials, triangleProperties, meshData, objects, modelData, textureData, objectData) {
496
638
  const objectPindex = objectData.pindex;
497
639
  const materialMap = {};
640
+
498
641
  for (let i = 0, l = triangleProperties.length; i < l; i++) {
499
642
  const triangleProperty = triangleProperties[i];
500
- const pindex = triangleProperty.p1 !== void 0 ? triangleProperty.p1 : objectPindex;
501
- if (materialMap[pindex] === void 0)
502
- materialMap[pindex] = [];
643
+ const pindex = triangleProperty.p1 !== undefined ? triangleProperty.p1 : objectPindex;
644
+ if (materialMap[pindex] === undefined) materialMap[pindex] = [];
503
645
  materialMap[pindex].push(triangleProperty);
504
- }
646
+ } //
647
+
648
+
505
649
  const keys = Object.keys(materialMap);
506
650
  const meshes = [];
651
+
507
652
  for (let i = 0, l = keys.length; i < l; i++) {
508
653
  const materialIndex = keys[i];
509
654
  const trianglePropertiesProps = materialMap[materialIndex];
510
655
  const basematerialData = basematerials.basematerials[materialIndex];
511
- const material = getBuild(basematerialData, objects2, modelData, textureData, objectData, buildBasematerial);
512
- const geometry = new THREE.BufferGeometry();
656
+ const material = getBuild(basematerialData, objects, modelData, textureData, objectData, buildBasematerial); //
657
+
658
+ const geometry = new BufferGeometry();
513
659
  const positionData = [];
514
660
  const vertices = meshData.vertices;
661
+
515
662
  for (let j = 0, jl = trianglePropertiesProps.length; j < jl; j++) {
516
663
  const triangleProperty = trianglePropertiesProps[j];
517
664
  positionData.push(vertices[triangleProperty.v1 * 3 + 0]);
@@ -524,18 +671,24 @@ class ThreeMFLoader extends THREE.Loader {
524
671
  positionData.push(vertices[triangleProperty.v3 * 3 + 1]);
525
672
  positionData.push(vertices[triangleProperty.v3 * 3 + 2]);
526
673
  }
527
- geometry.setAttribute("position", new THREE.Float32BufferAttribute(positionData, 3));
528
- const mesh = new THREE.Mesh(geometry, material);
674
+
675
+ geometry.setAttribute('position', new Float32BufferAttribute(positionData, 3)); //
676
+
677
+ const mesh = new Mesh(geometry, material);
529
678
  meshes.push(mesh);
530
679
  }
680
+
531
681
  return meshes;
532
682
  }
533
- function buildTexturedMesh(texture2dgroup, triangleProperties, meshData, objects2, modelData, textureData, objectData) {
534
- const geometry = new THREE.BufferGeometry();
683
+
684
+ function buildTexturedMesh(texture2dgroup, triangleProperties, meshData, objects, modelData, textureData, objectData) {
685
+ // geometry
686
+ const geometry = new BufferGeometry();
535
687
  const positionData = [];
536
688
  const uvData = [];
537
689
  const vertices = meshData.vertices;
538
690
  const uvs = texture2dgroup.uvs;
691
+
539
692
  for (let i = 0, l = triangleProperties.length; i < l; i++) {
540
693
  const triangleProperty = triangleProperties[i];
541
694
  positionData.push(vertices[triangleProperty.v1 * 3 + 0]);
@@ -546,7 +699,8 @@ class ThreeMFLoader extends THREE.Loader {
546
699
  positionData.push(vertices[triangleProperty.v2 * 3 + 2]);
547
700
  positionData.push(vertices[triangleProperty.v3 * 3 + 0]);
548
701
  positionData.push(vertices[triangleProperty.v3 * 3 + 1]);
549
- positionData.push(vertices[triangleProperty.v3 * 3 + 2]);
702
+ positionData.push(vertices[triangleProperty.v3 * 3 + 2]); //
703
+
550
704
  uvData.push(uvs[triangleProperty.p1 * 2 + 0]);
551
705
  uvData.push(uvs[triangleProperty.p1 * 2 + 1]);
552
706
  uvData.push(uvs[triangleProperty.p2 * 2 + 0]);
@@ -554,19 +708,28 @@ class ThreeMFLoader extends THREE.Loader {
554
708
  uvData.push(uvs[triangleProperty.p3 * 2 + 0]);
555
709
  uvData.push(uvs[triangleProperty.p3 * 2 + 1]);
556
710
  }
557
- geometry.setAttribute("position", new THREE.Float32BufferAttribute(positionData, 3));
558
- geometry.setAttribute("uv", new THREE.Float32BufferAttribute(uvData, 2));
559
- const texture = getBuild(texture2dgroup, objects2, modelData, textureData, objectData, buildTexture);
560
- const material = new THREE.MeshPhongMaterial({ map: texture, flatShading: true });
561
- const mesh = new THREE.Mesh(geometry, material);
711
+
712
+ geometry.setAttribute('position', new Float32BufferAttribute(positionData, 3));
713
+ geometry.setAttribute('uv', new Float32BufferAttribute(uvData, 2)); // material
714
+
715
+ const texture = getBuild(texture2dgroup, objects, modelData, textureData, objectData, buildTexture);
716
+ const material = new MeshPhongMaterial({
717
+ map: texture,
718
+ flatShading: true
719
+ }); // mesh
720
+
721
+ const mesh = new Mesh(geometry, material);
562
722
  return mesh;
563
723
  }
564
- function buildVertexColorMesh(colorgroup, triangleProperties, meshData, objects2, modelData, objectData) {
565
- const geometry = new THREE.BufferGeometry();
724
+
725
+ function buildVertexColorMesh(colorgroup, triangleProperties, meshData, objects, modelData, objectData) {
726
+ // geometry
727
+ const geometry = new BufferGeometry();
566
728
  const positionData = [];
567
729
  const colorData = [];
568
730
  const vertices = meshData.vertices;
569
731
  const colors = colorgroup.colors;
732
+
570
733
  for (let i = 0, l = triangleProperties.length; i < l; i++) {
571
734
  const triangleProperty = triangleProperties[i];
572
735
  const v1 = triangleProperty.v1;
@@ -580,10 +743,11 @@ class ThreeMFLoader extends THREE.Loader {
580
743
  positionData.push(vertices[v2 * 3 + 2]);
581
744
  positionData.push(vertices[v3 * 3 + 0]);
582
745
  positionData.push(vertices[v3 * 3 + 1]);
583
- positionData.push(vertices[v3 * 3 + 2]);
584
- const p1 = triangleProperty.p1 !== void 0 ? triangleProperty.p1 : objectData.pindex;
585
- const p2 = triangleProperty.p2 !== void 0 ? triangleProperty.p2 : p1;
586
- const p3 = triangleProperty.p3 !== void 0 ? triangleProperty.p3 : p1;
746
+ positionData.push(vertices[v3 * 3 + 2]); //
747
+
748
+ const p1 = triangleProperty.p1 !== undefined ? triangleProperty.p1 : objectData.pindex;
749
+ const p2 = triangleProperty.p2 !== undefined ? triangleProperty.p2 : p1;
750
+ const p3 = triangleProperty.p3 !== undefined ? triangleProperty.p3 : p1;
587
751
  colorData.push(colors[p1 * 3 + 0]);
588
752
  colorData.push(colors[p1 * 3 + 1]);
589
753
  colorData.push(colors[p1 * 3 + 2]);
@@ -594,244 +758,295 @@ class ThreeMFLoader extends THREE.Loader {
594
758
  colorData.push(colors[p3 * 3 + 1]);
595
759
  colorData.push(colors[p3 * 3 + 2]);
596
760
  }
597
- geometry.setAttribute("position", new THREE.Float32BufferAttribute(positionData, 3));
598
- geometry.setAttribute("color", new THREE.Float32BufferAttribute(colorData, 3));
599
- const material = new THREE.MeshPhongMaterial({ vertexColors: true, flatShading: true });
600
- const mesh = new THREE.Mesh(geometry, material);
761
+
762
+ geometry.setAttribute('position', new Float32BufferAttribute(positionData, 3));
763
+ geometry.setAttribute('color', new Float32BufferAttribute(colorData, 3)); // material
764
+
765
+ const material = new MeshPhongMaterial({
766
+ vertexColors: true,
767
+ flatShading: true
768
+ }); // mesh
769
+
770
+ const mesh = new Mesh(geometry, material);
601
771
  return mesh;
602
772
  }
773
+
603
774
  function buildDefaultMesh(meshData) {
604
- const geometry = new THREE.BufferGeometry();
605
- geometry.setIndex(new THREE.BufferAttribute(meshData["triangles"], 1));
606
- geometry.setAttribute("position", new THREE.BufferAttribute(meshData["vertices"], 3));
607
- const material = new THREE.MeshPhongMaterial({ color: 11184895, flatShading: true });
608
- const mesh = new THREE.Mesh(geometry, material);
775
+ const geometry = new BufferGeometry();
776
+ geometry.setIndex(new BufferAttribute(meshData['triangles'], 1));
777
+ geometry.setAttribute('position', new BufferAttribute(meshData['vertices'], 3));
778
+ const material = new MeshPhongMaterial({
779
+ color: 0xaaaaff,
780
+ flatShading: true
781
+ });
782
+ const mesh = new Mesh(geometry, material);
609
783
  return mesh;
610
784
  }
611
- function buildMeshes(resourceMap, meshData, objects2, modelData, textureData, objectData) {
785
+
786
+ function buildMeshes(resourceMap, meshData, objects, modelData, textureData, objectData) {
612
787
  const keys = Object.keys(resourceMap);
613
788
  const meshes = [];
789
+
614
790
  for (let i = 0, il = keys.length; i < il; i++) {
615
791
  const resourceId = keys[i];
616
792
  const triangleProperties = resourceMap[resourceId];
617
793
  const resourceType = getResourceType(resourceId, modelData);
794
+
618
795
  switch (resourceType) {
619
- case "material":
796
+ case 'material':
620
797
  const basematerials = modelData.resources.basematerials[resourceId];
621
- const newMeshes = buildBasematerialsMeshes(
622
- basematerials,
623
- triangleProperties,
624
- meshData,
625
- objects2,
626
- modelData,
627
- textureData,
628
- objectData
629
- );
798
+ const newMeshes = buildBasematerialsMeshes(basematerials, triangleProperties, meshData, objects, modelData, textureData, objectData);
799
+
630
800
  for (let j = 0, jl = newMeshes.length; j < jl; j++) {
631
801
  meshes.push(newMeshes[j]);
632
802
  }
803
+
633
804
  break;
634
- case "texture":
805
+
806
+ case 'texture':
635
807
  const texture2dgroup = modelData.resources.texture2dgroup[resourceId];
636
- meshes.push(
637
- buildTexturedMesh(
638
- texture2dgroup,
639
- triangleProperties,
640
- meshData,
641
- objects2,
642
- modelData,
643
- textureData,
644
- objectData
645
- )
646
- );
808
+ meshes.push(buildTexturedMesh(texture2dgroup, triangleProperties, meshData, objects, modelData, textureData, objectData));
647
809
  break;
648
- case "vertexColors":
810
+
811
+ case 'vertexColors':
649
812
  const colorgroup = modelData.resources.colorgroup[resourceId];
650
- meshes.push(buildVertexColorMesh(colorgroup, triangleProperties, meshData, objects2, modelData, objectData));
813
+ meshes.push(buildVertexColorMesh(colorgroup, triangleProperties, meshData, objects, modelData, objectData));
651
814
  break;
652
- case "default":
815
+
816
+ case 'default':
653
817
  meshes.push(buildDefaultMesh(meshData));
654
818
  break;
819
+
655
820
  default:
656
- console.error("THREE.3MFLoader: Unsupported resource type.");
821
+ console.error('THREE.3MFLoader: Unsupported resource type.');
657
822
  }
658
823
  }
824
+
659
825
  return meshes;
660
826
  }
827
+
661
828
  function getResourceType(pid, modelData) {
662
- if (modelData.resources.texture2dgroup[pid] !== void 0) {
663
- return "texture";
664
- } else if (modelData.resources.basematerials[pid] !== void 0) {
665
- return "material";
666
- } else if (modelData.resources.colorgroup[pid] !== void 0) {
667
- return "vertexColors";
668
- } else if (pid === "default") {
669
- return "default";
829
+ if (modelData.resources.texture2dgroup[pid] !== undefined) {
830
+ return 'texture';
831
+ } else if (modelData.resources.basematerials[pid] !== undefined) {
832
+ return 'material';
833
+ } else if (modelData.resources.colorgroup[pid] !== undefined) {
834
+ return 'vertexColors';
835
+ } else if (pid === 'default') {
836
+ return 'default';
670
837
  } else {
671
- return void 0;
838
+ return undefined;
672
839
  }
673
840
  }
841
+
674
842
  function analyzeObject(modelData, meshData, objectData) {
675
843
  const resourceMap = {};
676
- const triangleProperties = meshData["triangleProperties"];
844
+ const triangleProperties = meshData['triangleProperties'];
677
845
  const objectPid = objectData.pid;
846
+
678
847
  for (let i = 0, l = triangleProperties.length; i < l; i++) {
679
848
  const triangleProperty = triangleProperties[i];
680
- let pid = triangleProperty.pid !== void 0 ? triangleProperty.pid : objectPid;
681
- if (pid === void 0)
682
- pid = "default";
683
- if (resourceMap[pid] === void 0)
684
- resourceMap[pid] = [];
849
+ let pid = triangleProperty.pid !== undefined ? triangleProperty.pid : objectPid;
850
+ if (pid === undefined) pid = 'default';
851
+ if (resourceMap[pid] === undefined) resourceMap[pid] = [];
685
852
  resourceMap[pid].push(triangleProperty);
686
853
  }
854
+
687
855
  return resourceMap;
688
856
  }
689
- function buildGroup(meshData, objects2, modelData, textureData, objectData) {
690
- const group = new THREE.Group();
857
+
858
+ function buildGroup(meshData, objects, modelData, textureData, objectData) {
859
+ const group = new Group();
691
860
  const resourceMap = analyzeObject(modelData, meshData, objectData);
692
- const meshes = buildMeshes(resourceMap, meshData, objects2, modelData, textureData, objectData);
861
+ const meshes = buildMeshes(resourceMap, meshData, objects, modelData, textureData, objectData);
862
+
693
863
  for (let i = 0, l = meshes.length; i < l; i++) {
694
864
  group.add(meshes[i]);
695
865
  }
866
+
696
867
  return group;
697
868
  }
869
+
698
870
  function applyExtensions(extensions, meshData, modelXml) {
699
871
  if (!extensions) {
700
872
  return;
701
873
  }
874
+
702
875
  const availableExtensions = [];
703
876
  const keys = Object.keys(extensions);
877
+
704
878
  for (let i = 0; i < keys.length; i++) {
705
879
  const ns = keys[i];
880
+
706
881
  for (let j = 0; j < scope.availableExtensions.length; j++) {
707
882
  const extension = scope.availableExtensions[j];
883
+
708
884
  if (extension.ns === ns) {
709
885
  availableExtensions.push(extension);
710
886
  }
711
887
  }
712
888
  }
889
+
713
890
  for (let i = 0; i < availableExtensions.length; i++) {
714
891
  const extension = availableExtensions[i];
715
- extension.apply(modelXml, extensions[extension["ns"]], meshData);
892
+ extension.apply(modelXml, extensions[extension['ns']], meshData);
716
893
  }
717
894
  }
718
- function getBuild(data2, objects2, modelData, textureData, objectData, builder) {
719
- if (data2.build !== void 0)
720
- return data2.build;
721
- data2.build = builder(data2, objects2, modelData, textureData, objectData);
722
- return data2.build;
895
+
896
+ function getBuild(data, objects, modelData, textureData, objectData, builder) {
897
+ if (data.build !== undefined) return data.build;
898
+ data.build = builder(data, objects, modelData, textureData, objectData);
899
+ return data.build;
723
900
  }
724
- function buildBasematerial(materialData, objects2, modelData) {
901
+
902
+ function buildBasematerial(materialData, objects, modelData) {
725
903
  let material;
726
904
  const displaypropertiesid = materialData.displaypropertiesid;
727
905
  const pbmetallicdisplayproperties = modelData.resources.pbmetallicdisplayproperties;
728
- if (displaypropertiesid !== null && pbmetallicdisplayproperties[displaypropertiesid] !== void 0) {
906
+
907
+ if (displaypropertiesid !== null && pbmetallicdisplayproperties[displaypropertiesid] !== undefined) {
908
+ // metallic display property, use StandardMaterial
729
909
  const pbmetallicdisplayproperty = pbmetallicdisplayproperties[displaypropertiesid];
730
910
  const metallicData = pbmetallicdisplayproperty.data[materialData.index];
731
- material = new THREE.MeshStandardMaterial({
911
+ material = new MeshStandardMaterial({
732
912
  flatShading: true,
733
913
  roughness: metallicData.roughness,
734
914
  metalness: metallicData.metallicness
735
915
  });
736
916
  } else {
737
- material = new THREE.MeshPhongMaterial({ flatShading: true });
917
+ // otherwise use PhongMaterial
918
+ material = new MeshPhongMaterial({
919
+ flatShading: true
920
+ });
738
921
  }
739
- material.name = materialData.name;
922
+
923
+ material.name = materialData.name; // displaycolor MUST be specified with a value of a 6 or 8 digit hexadecimal number, e.g. "#RRGGBB" or "#RRGGBBAA"
924
+
740
925
  const displaycolor = materialData.displaycolor;
741
926
  const color = displaycolor.substring(0, 7);
742
927
  material.color.setStyle(color);
743
- material.color.convertSRGBToLinear();
928
+ material.color.convertSRGBToLinear(); // displaycolor is in sRGB
929
+ // process alpha if set
930
+
744
931
  if (displaycolor.length === 9) {
745
932
  material.opacity = parseInt(displaycolor.charAt(7) + displaycolor.charAt(8), 16) / 255;
746
933
  }
934
+
747
935
  return material;
748
936
  }
749
- function buildComposite(compositeData, objects2, modelData, textureData) {
750
- const composite = new THREE.Group();
937
+
938
+ function buildComposite(compositeData, objects, modelData, textureData) {
939
+ const composite = new Group();
940
+
751
941
  for (let j = 0; j < compositeData.length; j++) {
752
942
  const component = compositeData[j];
753
- let build2 = objects2[component.objectId];
754
- if (build2 === void 0) {
755
- buildObject(component.objectId, objects2, modelData, textureData);
756
- build2 = objects2[component.objectId];
943
+ let build = objects[component.objectId];
944
+
945
+ if (build === undefined) {
946
+ buildObject(component.objectId, objects, modelData, textureData);
947
+ build = objects[component.objectId];
757
948
  }
758
- const object3D = build2.clone();
949
+
950
+ const object3D = build.clone(); // apply component transform
951
+
759
952
  const transform = component.transform;
953
+
760
954
  if (transform) {
761
955
  object3D.applyMatrix4(transform);
762
956
  }
957
+
763
958
  composite.add(object3D);
764
959
  }
960
+
765
961
  return composite;
766
962
  }
767
- function buildObject(objectId, objects2, modelData, textureData) {
768
- const objectData = modelData["resources"]["object"][objectId];
769
- if (objectData["mesh"]) {
770
- const meshData = objectData["mesh"];
771
- const extensions = modelData["extensions"];
772
- const modelXml = modelData["xml"];
963
+
964
+ function buildObject(objectId, objects, modelData, textureData) {
965
+ const objectData = modelData['resources']['object'][objectId];
966
+
967
+ if (objectData['mesh']) {
968
+ const meshData = objectData['mesh'];
969
+ const extensions = modelData['extensions'];
970
+ const modelXml = modelData['xml'];
773
971
  applyExtensions(extensions, meshData, modelXml);
774
- objects2[objectData.id] = getBuild(meshData, objects2, modelData, textureData, objectData, buildGroup);
972
+ objects[objectData.id] = getBuild(meshData, objects, modelData, textureData, objectData, buildGroup);
775
973
  } else {
776
- const compositeData = objectData["components"];
777
- objects2[objectData.id] = getBuild(compositeData, objects2, modelData, textureData, objectData, buildComposite);
974
+ const compositeData = objectData['components'];
975
+ objects[objectData.id] = getBuild(compositeData, objects, modelData, textureData, objectData, buildComposite);
778
976
  }
779
977
  }
780
- function buildObjects(data3mf2) {
781
- const modelsData = data3mf2.model;
782
- const modelRels = data3mf2.modelRels;
783
- const objects2 = {};
978
+
979
+ function buildObjects(data3mf) {
980
+ const modelsData = data3mf.model;
981
+ const modelRels = data3mf.modelRels;
982
+ const objects = {};
784
983
  const modelsKeys = Object.keys(modelsData);
785
- const textureData = {};
984
+ const textureData = {}; // evaluate model relationships to textures
985
+
786
986
  if (modelRels) {
787
987
  for (let i = 0, l = modelRels.length; i < l; i++) {
788
988
  const modelRel = modelRels[i];
789
989
  const textureKey = modelRel.target.substring(1);
790
- if (data3mf2.texture[textureKey]) {
791
- textureData[modelRel.target] = data3mf2.texture[textureKey];
990
+
991
+ if (data3mf.texture[textureKey]) {
992
+ textureData[modelRel.target] = data3mf.texture[textureKey];
792
993
  }
793
994
  }
794
- }
995
+ } // start build
996
+
997
+
795
998
  for (let i = 0; i < modelsKeys.length; i++) {
796
999
  const modelsKey = modelsKeys[i];
797
1000
  const modelData = modelsData[modelsKey];
798
- const objectIds = Object.keys(modelData["resources"]["object"]);
1001
+ const objectIds = Object.keys(modelData['resources']['object']);
1002
+
799
1003
  for (let j = 0; j < objectIds.length; j++) {
800
1004
  const objectId = objectIds[j];
801
- buildObject(objectId, objects2, modelData, textureData);
1005
+ buildObject(objectId, objects, modelData, textureData);
802
1006
  }
803
1007
  }
804
- return objects2;
1008
+
1009
+ return objects;
805
1010
  }
1011
+
806
1012
  function fetch3DModelPart(rels) {
807
1013
  for (let i = 0; i < rels.length; i++) {
808
1014
  const rel = rels[i];
809
- const extension = rel.target.split(".").pop();
810
- if (extension.toLowerCase() === "model")
811
- return rel;
1015
+ const extension = rel.target.split('.').pop();
1016
+ if (extension.toLowerCase() === 'model') return rel;
812
1017
  }
813
1018
  }
814
- function build(objects2, data3mf2) {
815
- const group = new THREE.Group();
816
- const relationship = fetch3DModelPart(data3mf2["rels"]);
817
- const buildData = data3mf2.model[relationship["target"].substring(1)]["build"];
1019
+
1020
+ function build(objects, data3mf) {
1021
+ const group = new Group();
1022
+ const relationship = fetch3DModelPart(data3mf['rels']);
1023
+ const buildData = data3mf.model[relationship['target'].substring(1)]['build'];
1024
+
818
1025
  for (let i = 0; i < buildData.length; i++) {
819
1026
  const buildItem = buildData[i];
820
- const object3D = objects2[buildItem["objectId"]];
821
- const transform = buildItem["transform"];
1027
+ const object3D = objects[buildItem['objectId']]; // apply transform
1028
+
1029
+ const transform = buildItem['transform'];
1030
+
822
1031
  if (transform) {
823
1032
  object3D.applyMatrix4(transform);
824
1033
  }
1034
+
825
1035
  group.add(object3D);
826
1036
  }
1037
+
827
1038
  return group;
828
1039
  }
1040
+
829
1041
  const data3mf = loadDocument(data);
830
1042
  const objects = buildObjects(data3mf);
831
1043
  return build(objects, data3mf);
832
1044
  }
1045
+
833
1046
  addExtension(extension) {
834
1047
  this.availableExtensions.push(extension);
835
1048
  }
1049
+
836
1050
  }
837
- exports.ThreeMFLoader = ThreeMFLoader;
1051
+
1052
+ export { ThreeMFLoader };