three-stdlib 2.15.0 → 2.15.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 (1222) hide show
  1. package/animation/AnimationClipCreator.js +32 -52
  2. package/animation/AnimationClipCreator.mjs +57 -0
  3. package/animation/CCDIKSolver.js +66 -161
  4. package/animation/CCDIKSolver.mjs +234 -0
  5. package/animation/MMDAnimationHelper.js +150 -341
  6. package/animation/MMDAnimationHelper.mjs +514 -0
  7. package/animation/MMDPhysics.js +154 -361
  8. package/animation/MMDPhysics.mjs +769 -0
  9. package/cameras/CinematicCamera.js +67 -77
  10. package/cameras/CinematicCamera.mjs +129 -0
  11. package/controls/ArcballControls.js +544 -1449
  12. package/controls/ArcballControls.mjs +1737 -0
  13. package/controls/DeviceOrientationControls.js +52 -97
  14. package/controls/DeviceOrientationControls.mjs +74 -0
  15. package/controls/DragControls.js +85 -187
  16. package/controls/DragControls.mjs +172 -0
  17. package/controls/FirstPersonControls.js +123 -193
  18. package/controls/FirstPersonControls.mjs +220 -0
  19. package/controls/FlyControls.js +82 -152
  20. package/controls/FlyControls.mjs +239 -0
  21. package/controls/OrbitControls.js +232 -481
  22. package/controls/OrbitControls.mjs +731 -0
  23. package/controls/PointerLockControls.js +63 -99
  24. package/controls/PointerLockControls.mjs +88 -0
  25. package/controls/TrackballControls.js +211 -383
  26. package/controls/TrackballControls.mjs +481 -0
  27. package/controls/TransformControls.js +575 -782
  28. package/controls/TransformControls.mjs +1068 -0
  29. package/controls/experimental/CameraControls.js +329 -609
  30. package/controls/experimental/CameraControls.mjs +673 -0
  31. package/csm/CSM.js +47 -108
  32. package/csm/CSM.mjs +244 -0
  33. package/csm/CSMFrustum.js +14 -29
  34. package/csm/CSMFrustum.mjs +75 -0
  35. package/csm/CSMHelper.js +20 -34
  36. package/csm/CSMHelper.mjs +114 -0
  37. package/csm/CSMShader.js +7 -11
  38. package/csm/CSMShader.mjs +251 -0
  39. package/curves/CurveExtras.js +73 -115
  40. package/curves/CurveExtras.mjs +224 -0
  41. package/curves/NURBSCurve.js +15 -43
  42. package/curves/NURBSCurve.mjs +35 -0
  43. package/curves/NURBSSurface.js +11 -27
  44. package/curves/NURBSSurface.mjs +28 -0
  45. package/curves/NURBSUtils.js +54 -203
  46. package/curves/NURBSUtils.mjs +226 -0
  47. package/deprecated/Geometry.js +191 -486
  48. package/deprecated/Geometry.mjs +966 -0
  49. package/effects/AnaglyphEffect.js +95 -60
  50. package/effects/AnaglyphEffect.mjs +120 -0
  51. package/effects/AsciiEffect.js +80 -110
  52. package/effects/AsciiEffect.mjs +173 -0
  53. package/effects/OutlineEffect.js +121 -204
  54. package/effects/OutlineEffect.mjs +295 -0
  55. package/effects/ParallaxBarrierEffect.js +39 -38
  56. package/effects/ParallaxBarrierEffect.mjs +64 -0
  57. package/effects/PeppersGhostEffect.js +19 -68
  58. package/effects/PeppersGhostEffect.mjs +85 -0
  59. package/effects/StereoEffect.js +12 -16
  60. package/effects/StereoEffect.mjs +32 -0
  61. package/environments/RoomEnvironment.js +52 -47
  62. package/environments/RoomEnvironment.mjs +78 -0
  63. package/exporters/ColladaExporter.js +115 -241
  64. package/exporters/ColladaExporter.mjs +299 -0
  65. package/exporters/DRACOExporter.js +67 -121
  66. package/exporters/DRACOExporter.mjs +132 -0
  67. package/exporters/GLTFExporter.js +463 -1014
  68. package/exporters/GLTFExporter.mjs +1381 -0
  69. package/exporters/MMDExporter.js +44 -102
  70. package/exporters/MMDExporter.mjs +102 -0
  71. package/exporters/OBJExporter.js +78 -140
  72. package/exporters/OBJExporter.mjs +166 -0
  73. package/exporters/PLYExporter.js +93 -154
  74. package/exporters/PLYExporter.mjs +278 -0
  75. package/exporters/STLExporter.js +30 -81
  76. package/exporters/STLExporter.mjs +129 -0
  77. package/exporters/USDZExporter.js +84 -144
  78. package/exporters/USDZExporter.mjs +328 -0
  79. package/geometries/BoxLineGeometry.js +7 -14
  80. package/geometries/BoxLineGeometry.mjs +45 -0
  81. package/geometries/ConvexGeometry.js +15 -24
  82. package/geometries/ConvexGeometry.mjs +29 -0
  83. package/geometries/DecalGeometry.js +108 -162
  84. package/geometries/DecalGeometry.mjs +184 -0
  85. package/geometries/LightningStrike.js +101 -294
  86. package/geometries/LightningStrike.mjs +547 -0
  87. package/geometries/ParametricGeometries.js +26 -76
  88. package/geometries/ParametricGeometries.mjs +129 -0
  89. package/geometries/ParametricGeometry.js +24 -48
  90. package/geometries/ParametricGeometry.mjs +63 -0
  91. package/geometries/RoundedBoxGeometry.js +33 -64
  92. package/geometries/RoundedBoxGeometry.mjs +91 -0
  93. package/geometries/TeapotGeometry.js +1434 -174
  94. package/geometries/TeapotGeometry.mjs +1557 -0
  95. package/geometries/TextGeometry.js +9 -17
  96. package/geometries/TextGeometry.mjs +23 -0
  97. package/helpers/LightProbeHelper.js +53 -21
  98. package/helpers/LightProbeHelper.mjs +72 -0
  99. package/helpers/PositionalAudioHelper.js +23 -30
  100. package/helpers/PositionalAudioHelper.mjs +68 -0
  101. package/helpers/RectAreaLightHelper.js +17 -33
  102. package/helpers/RectAreaLightHelper.mjs +44 -0
  103. package/helpers/VertexNormalsHelper.js +20 -41
  104. package/helpers/VertexNormalsHelper.mjs +54 -0
  105. package/helpers/VertexTangentsHelper.js +18 -36
  106. package/helpers/VertexTangentsHelper.mjs +45 -0
  107. package/index.d.ts +54 -0
  108. package/index.js +968 -333
  109. package/index.mjs +968 -0
  110. package/interactive/SelectionBox.js +31 -46
  111. package/interactive/SelectionBox.mjs +137 -0
  112. package/interactive/SelectionHelper.js +16 -21
  113. package/interactive/SelectionHelper.mjs +54 -0
  114. package/libs/MeshoptDecoder.js +147 -58
  115. package/libs/MeshoptDecoder.mjs +210 -0
  116. package/libs/MotionControllers.js +66 -208
  117. package/libs/MotionControllers.mjs +261 -0
  118. package/lights/LightProbeGenerator.js +40 -96
  119. package/lights/LightProbeGenerator.mjs +145 -0
  120. package/lights/RectAreaLightUniformsLib.js +32842 -9
  121. package/lights/RectAreaLightUniformsLib.mjs +32842 -0
  122. package/lines/Line2.js +9 -12
  123. package/lines/Line2.mjs +13 -0
  124. package/lines/LineGeometry.js +7 -19
  125. package/lines/LineGeometry.mjs +44 -0
  126. package/lines/LineMaterial.js +51 -89
  127. package/lines/LineMaterial.mjs +539 -0
  128. package/lines/LineSegments2.js +56 -165
  129. package/lines/LineSegments2.mjs +202 -0
  130. package/lines/LineSegmentsGeometry.js +29 -71
  131. package/lines/LineSegmentsGeometry.mjs +124 -0
  132. package/lines/Wireframe.js +15 -29
  133. package/lines/Wireframe.mjs +31 -0
  134. package/lines/WireframeGeometry2.js +8 -9
  135. package/lines/WireframeGeometry2.mjs +13 -0
  136. package/loaders/3DMLoader.js +234 -469
  137. package/loaders/3DMLoader.mjs +802 -0
  138. package/loaders/3MFLoader.js +340 -555
  139. package/loaders/3MFLoader.mjs +837 -0
  140. package/loaders/AMFLoader.js +114 -219
  141. package/loaders/AMFLoader.mjs +284 -0
  142. package/loaders/AssimpLoader.js +328 -725
  143. package/loaders/AssimpLoader.mjs +1396 -0
  144. package/loaders/BVHLoader.js +94 -200
  145. package/loaders/BVHLoader.mjs +207 -0
  146. package/loaders/BasisTextureLoader.js +229 -357
  147. package/loaders/BasisTextureLoader.mjs +474 -0
  148. package/loaders/ColladaLoader.js +932 -1522
  149. package/loaders/ColladaLoader.mjs +2403 -0
  150. package/loaders/DDSLoader.js +42 -108
  151. package/loaders/DDSLoader.mjs +148 -0
  152. package/loaders/DRACOLoader.js +103 -210
  153. package/loaders/DRACOLoader.mjs +340 -0
  154. package/loaders/EXRLoader.js +461 -809
  155. package/loaders/EXRLoader.mjs +1351 -0
  156. package/loaders/FBXLoader.js +842 -1397
  157. package/loaders/FBXLoader.mjs +2362 -0
  158. package/loaders/FontLoader.js +33 -66
  159. package/loaders/FontLoader.mjs +111 -0
  160. package/loaders/GCodeLoader.js +63 -111
  161. package/loaders/GCodeLoader.mjs +141 -0
  162. package/loaders/GLTFLoader.js +771 -1484
  163. package/loaders/GLTFLoader.mjs +2316 -0
  164. package/loaders/HDRCubeTextureLoader.js +45 -50
  165. package/loaders/HDRCubeTextureLoader.mjs +77 -0
  166. package/loaders/KMZLoader.js +42 -55
  167. package/loaders/KMZLoader.mjs +75 -0
  168. package/loaders/KTX2Loader.js +229 -362
  169. package/loaders/KTX2Loader.mjs +427 -0
  170. package/loaders/KTXLoader.js +37 -99
  171. package/loaders/KTXLoader.mjs +87 -0
  172. package/loaders/LDrawLoader.js +313 -746
  173. package/loaders/LDrawLoader.mjs +1409 -0
  174. package/loaders/LUT3dlLoader.js +50 -62
  175. package/loaders/LUT3dlLoader.mjs +100 -0
  176. package/loaders/LUTCubeLoader.js +45 -56
  177. package/loaders/LUTCubeLoader.mjs +104 -0
  178. package/loaders/LWOLoader.js +227 -339
  179. package/loaders/LWOLoader.mjs +625 -0
  180. package/loaders/LottieLoader.js +36 -38
  181. package/loaders/LottieLoader.mjs +47 -0
  182. package/loaders/MD2Loader.js +248 -91
  183. package/loaders/MD2Loader.mjs +359 -0
  184. package/loaders/MDDLoader.js +25 -45
  185. package/loaders/MDDLoader.mjs +58 -0
  186. package/loaders/MMDLoader.js +359 -795
  187. package/loaders/MMDLoader.mjs +998 -0
  188. package/loaders/MTLLoader.js +91 -201
  189. package/loaders/MTLLoader.mjs +280 -0
  190. package/loaders/NRRDLoader.js +182 -263
  191. package/loaders/NRRDLoader.mjs +401 -0
  192. package/loaders/NodeMaterialLoader.js +121 -14
  193. package/loaders/NodeMaterialLoader.mjs +146 -0
  194. package/loaders/OBJLoader.js +161 -283
  195. package/loaders/OBJLoader.mjs +487 -0
  196. package/loaders/PCDLoader.js +145 -164
  197. package/loaders/PCDLoader.mjs +248 -0
  198. package/loaders/PDBLoader.js +45 -63
  199. package/loaders/PDBLoader.mjs +246 -0
  200. package/loaders/PLYLoader.js +106 -203
  201. package/loaders/PLYLoader.mjs +317 -0
  202. package/loaders/PRWMLoader.js +73 -110
  203. package/loaders/PRWMLoader.mjs +160 -0
  204. package/loaders/PVRLoader.js +32 -93
  205. package/loaders/PVRLoader.mjs +131 -0
  206. package/loaders/RGBELoader.js +96 -233
  207. package/loaders/RGBELoader.mjs +244 -0
  208. package/loaders/RGBMLoader.js +344 -514
  209. package/loaders/RGBMLoader.mjs +998 -0
  210. package/loaders/STLLoader.js +59 -165
  211. package/loaders/STLLoader.mjs +190 -0
  212. package/loaders/SVGLoader.js +481 -851
  213. package/loaders/SVGLoader.mjs +1709 -0
  214. package/loaders/TDSLoader.js +137 -527
  215. package/loaders/TDSLoader.mjs +480 -0
  216. package/loaders/TGALoader.js +94 -205
  217. package/loaders/TGALoader.mjs +285 -0
  218. package/loaders/TTFLoader.js +58 -79
  219. package/loaders/TTFLoader.mjs +131 -0
  220. package/loaders/TiltLoader.js +129 -167
  221. package/loaders/TiltLoader.mjs +373 -0
  222. package/loaders/VOXLoader.js +320 -84
  223. package/loaders/VOXLoader.mjs +431 -0
  224. package/loaders/VRMLLoader.js +786 -1268
  225. package/loaders/VRMLLoader.mjs +2093 -0
  226. package/loaders/VRMLoader.js +23 -31
  227. package/loaders/VRMLoader.mjs +38 -0
  228. package/loaders/VTKLoader.js +219 -407
  229. package/loaders/VTKLoader.mjs +646 -0
  230. package/loaders/XLoader.js +1083 -1259
  231. package/loaders/XLoader.mjs +1258 -0
  232. package/loaders/XYZLoader.js +28 -34
  233. package/loaders/XYZLoader.mjs +60 -0
  234. package/loaders/lwo/IFFParser.js +238 -492
  235. package/loaders/lwo/IFFParser.mjs +697 -0
  236. package/loaders/lwo/LWO2Parser.js +176 -279
  237. package/loaders/lwo/LWO2Parser.mjs +327 -0
  238. package/loaders/lwo/LWO3Parser.js +160 -247
  239. package/loaders/lwo/LWO3Parser.mjs +298 -0
  240. package/math/Capsule.js +56 -43
  241. package/math/Capsule.mjs +100 -0
  242. package/math/ColorConverter.js +18 -32
  243. package/math/ColorConverter.mjs +51 -0
  244. package/math/ConvexHull.js +515 -739
  245. package/math/ConvexHull.mjs +574 -0
  246. package/math/ImprovedNoise.js +282 -32
  247. package/math/ImprovedNoise.mjs +302 -0
  248. package/math/Lut.js +51 -35
  249. package/math/Lut.mjs +135 -0
  250. package/math/MeshSurfaceSampler.js +25 -68
  251. package/math/MeshSurfaceSampler.mjs +107 -0
  252. package/math/OBB.js +91 -152
  253. package/math/OBB.mjs +235 -0
  254. package/math/Octree.js +76 -139
  255. package/math/Octree.mjs +278 -0
  256. package/math/SimplexNoise.js +217 -238
  257. package/math/SimplexNoise.mjs +425 -0
  258. package/misc/ConvexObjectBreaker.js +79 -185
  259. package/misc/ConvexObjectBreaker.mjs +292 -0
  260. package/misc/GPUComputationRenderer.js +69 -194
  261. package/misc/GPUComputationRenderer.mjs +171 -0
  262. package/misc/Gyroscope.js +16 -22
  263. package/misc/Gyroscope.mjs +35 -0
  264. package/misc/MD2Character.js +52 -74
  265. package/misc/MD2Character.mjs +162 -0
  266. package/misc/MD2CharacterComplex.js +112 -163
  267. package/misc/MD2CharacterComplex.mjs +328 -0
  268. package/misc/MorphAnimMesh.js +20 -28
  269. package/misc/MorphAnimMesh.mjs +40 -0
  270. package/misc/MorphBlendMesh.js +45 -69
  271. package/misc/MorphBlendMesh.mjs +179 -0
  272. package/misc/ProgressiveLightmap.js +70 -187
  273. package/misc/ProgressiveLightmap.mjs +166 -0
  274. package/misc/RollerCoaster.js +106 -135
  275. package/misc/RollerCoaster.mjs +346 -0
  276. package/misc/TubePainter.js +74 -92
  277. package/misc/TubePainter.mjs +123 -0
  278. package/misc/Volume.js +108 -270
  279. package/misc/Volume.mjs +244 -0
  280. package/misc/VolumeSlice.js +34 -122
  281. package/misc/VolumeSlice.mjs +106 -0
  282. package/misc/WebGL.js +37 -34
  283. package/misc/WebGL.mjs +74 -0
  284. package/modifiers/CurveModifier.js +46 -151
  285. package/modifiers/CurveModifier.mjs +182 -0
  286. package/modifiers/EdgeSplitModifier.js +46 -90
  287. package/modifiers/EdgeSplitModifier.mjs +162 -0
  288. package/modifiers/SimplifyModifier.js +77 -202
  289. package/modifiers/SimplifyModifier.mjs +282 -0
  290. package/modifiers/TessellateModifier.js +65 -90
  291. package/modifiers/TessellateModifier.mjs +206 -0
  292. package/nodes/Nodes.js +274 -140
  293. package/nodes/Nodes.mjs +400 -0
  294. package/nodes/ShaderNode.js +296 -196
  295. package/nodes/ShaderNode.mjs +408 -0
  296. package/nodes/accessors/BufferNode.js +4 -8
  297. package/nodes/accessors/BufferNode.mjs +15 -0
  298. package/nodes/accessors/CameraNode.js +20 -25
  299. package/nodes/accessors/CameraNode.mjs +44 -0
  300. package/nodes/accessors/CubeTextureNode.js +14 -26
  301. package/nodes/accessors/CubeTextureNode.mjs +42 -0
  302. package/nodes/accessors/MaterialNode.js +43 -53
  303. package/nodes/accessors/MaterialNode.mjs +71 -0
  304. package/nodes/accessors/MaterialReferenceNode.js +3 -6
  305. package/nodes/accessors/MaterialReferenceNode.mjs +14 -0
  306. package/nodes/accessors/ModelNode.js +3 -5
  307. package/nodes/accessors/ModelNode.mjs +9 -0
  308. package/nodes/accessors/ModelViewProjectionNode.js +14 -13
  309. package/nodes/accessors/ModelViewProjectionNode.mjs +24 -0
  310. package/nodes/accessors/NormalNode.js +40 -39
  311. package/nodes/accessors/NormalNode.mjs +62 -0
  312. package/nodes/accessors/Object3DNode.js +40 -50
  313. package/nodes/accessors/Object3DNode.mjs +76 -0
  314. package/nodes/accessors/PointUVNode.js +5 -9
  315. package/nodes/accessors/PointUVNode.mjs +13 -0
  316. package/nodes/accessors/PositionNode.js +42 -41
  317. package/nodes/accessors/PositionNode.mjs +65 -0
  318. package/nodes/accessors/ReferenceNode.js +10 -17
  319. package/nodes/accessors/ReferenceNode.mjs +37 -0
  320. package/nodes/accessors/ReflectNode.js +23 -26
  321. package/nodes/accessors/ReflectNode.mjs +43 -0
  322. package/nodes/accessors/SkinningNode.js +46 -48
  323. package/nodes/accessors/SkinningNode.mjs +58 -0
  324. package/nodes/accessors/TextureNode.js +14 -29
  325. package/nodes/accessors/TextureNode.mjs +54 -0
  326. package/nodes/accessors/UVNode.js +5 -11
  327. package/nodes/accessors/UVNode.mjs +23 -0
  328. package/nodes/core/ArrayUniformNode.js +3 -7
  329. package/nodes/core/ArrayUniformNode.mjs +14 -0
  330. package/nodes/core/AttributeNode.js +5 -12
  331. package/nodes/core/AttributeNode.mjs +30 -0
  332. package/nodes/core/BypassNode.js +5 -12
  333. package/nodes/core/BypassNode.mjs +22 -0
  334. package/nodes/core/CodeNode.js +4 -12
  335. package/nodes/core/CodeNode.mjs +28 -0
  336. package/nodes/core/ConstNode.js +3 -7
  337. package/nodes/core/ConstNode.mjs +14 -0
  338. package/nodes/core/ContextNode.js +3 -8
  339. package/nodes/core/ContextNode.mjs +22 -0
  340. package/nodes/core/ExpressionNode.js +5 -9
  341. package/nodes/core/ExpressionNode.mjs +19 -0
  342. package/nodes/core/FunctionCallNode.js +6 -15
  343. package/nodes/core/FunctionCallNode.mjs +37 -0
  344. package/nodes/core/FunctionNode.js +10 -25
  345. package/nodes/core/FunctionNode.mjs +56 -0
  346. package/nodes/core/InputNode.js +12 -23
  347. package/nodes/core/InputNode.mjs +38 -0
  348. package/nodes/core/Node.js +35 -75
  349. package/nodes/core/Node.mjs +139 -0
  350. package/nodes/core/NodeAttribute.js +2 -4
  351. package/nodes/core/NodeAttribute.mjs +10 -0
  352. package/nodes/core/NodeBuilder.js +110 -224
  353. package/nodes/core/NodeBuilder.mjs +395 -0
  354. package/nodes/core/NodeCode.js +4 -7
  355. package/nodes/core/NodeCode.mjs +11 -0
  356. package/nodes/core/NodeFrame.js +9 -12
  357. package/nodes/core/NodeFrame.mjs +35 -0
  358. package/nodes/core/NodeFunctionInput.js +3 -5
  359. package/nodes/core/NodeFunctionInput.mjs +13 -0
  360. package/nodes/core/NodeKeywords.js +5 -16
  361. package/nodes/core/NodeKeywords.mjs +44 -0
  362. package/nodes/core/NodeUniform.js +3 -7
  363. package/nodes/core/NodeUniform.mjs +18 -0
  364. package/nodes/core/NodeUtils.js +39 -43
  365. package/nodes/core/NodeUtils.mjs +57 -0
  366. package/nodes/core/NodeVar.js +2 -4
  367. package/nodes/core/NodeVar.mjs +10 -0
  368. package/nodes/core/NodeVary.js +2 -4
  369. package/nodes/core/NodeVary.mjs +10 -0
  370. package/nodes/core/PropertyNode.js +4 -10
  371. package/nodes/core/PropertyNode.mjs +21 -0
  372. package/nodes/core/TempNode.js +5 -11
  373. package/nodes/core/TempNode.mjs +25 -0
  374. package/nodes/core/UniformNode.js +4 -10
  375. package/nodes/core/UniformNode.mjs +23 -0
  376. package/nodes/core/VarNode.js +3 -11
  377. package/nodes/core/VarNode.mjs +31 -0
  378. package/nodes/core/VaryNode.js +6 -15
  379. package/nodes/core/VaryNode.mjs +30 -0
  380. package/nodes/core/constants.js +20 -7
  381. package/nodes/core/constants.mjs +24 -0
  382. package/nodes/display/ColorSpaceNode.js +34 -38
  383. package/nodes/display/ColorSpaceNode.mjs +63 -0
  384. package/nodes/display/NormalMapNode.js +35 -53
  385. package/nodes/display/NormalMapNode.mjs +54 -0
  386. package/nodes/fog/FogNode.js +5 -9
  387. package/nodes/fog/FogNode.mjs +15 -0
  388. package/nodes/fog/FogRangeNode.js +5 -9
  389. package/nodes/fog/FogRangeNode.mjs +17 -0
  390. package/nodes/functions/BSDFs.js +61 -118
  391. package/nodes/functions/BSDFs.mjs +64 -0
  392. package/nodes/lights/LightContextNode.js +14 -23
  393. package/nodes/lights/LightContextNode.mjs +35 -0
  394. package/nodes/lights/LightNode.js +27 -31
  395. package/nodes/lights/LightNode.mjs +58 -0
  396. package/nodes/lights/LightsNode.js +9 -28
  397. package/nodes/lights/LightsNode.mjs +59 -0
  398. package/nodes/loaders/NodeLoader.js +27 -42
  399. package/nodes/loaders/NodeLoader.mjs +66 -0
  400. package/nodes/loaders/NodeMaterialLoader.js +4 -10
  401. package/nodes/loaders/NodeMaterialLoader.mjs +24 -0
  402. package/nodes/loaders/NodeObjectLoader.js +9 -19
  403. package/nodes/loaders/NodeObjectLoader.mjs +40 -0
  404. package/nodes/materials/LineBasicNodeMaterial.js +5 -10
  405. package/nodes/materials/LineBasicNodeMaterial.mjs +27 -0
  406. package/nodes/materials/Materials.js +14 -17
  407. package/nodes/materials/Materials.mjs +28 -0
  408. package/nodes/materials/MeshBasicNodeMaterial.js +5 -10
  409. package/nodes/materials/MeshBasicNodeMaterial.mjs +28 -0
  410. package/nodes/materials/MeshStandardNodeMaterial.js +5 -8
  411. package/nodes/materials/MeshStandardNodeMaterial.mjs +41 -0
  412. package/nodes/materials/NodeMaterial.js +20 -36
  413. package/nodes/materials/NodeMaterial.mjs +64 -0
  414. package/nodes/materials/PointsNodeMaterial.js +5 -10
  415. package/nodes/materials/PointsNodeMaterial.mjs +30 -0
  416. package/nodes/math/CondNode.js +11 -23
  417. package/nodes/math/CondNode.mjs +38 -0
  418. package/nodes/math/MathNode.js +98 -142
  419. package/nodes/math/MathNode.mjs +163 -0
  420. package/nodes/math/OperatorNode.js +24 -46
  421. package/nodes/math/OperatorNode.mjs +103 -0
  422. package/nodes/procedural/CheckerNode.js +13 -19
  423. package/nodes/procedural/CheckerNode.mjs +21 -0
  424. package/nodes/utils/ArrayElementNode.js +4 -8
  425. package/nodes/utils/ArrayElementNode.mjs +19 -0
  426. package/nodes/utils/ConvertNode.js +3 -8
  427. package/nodes/utils/ConvertNode.mjs +25 -0
  428. package/nodes/utils/JoinNode.js +7 -11
  429. package/nodes/utils/JoinNode.mjs +26 -0
  430. package/nodes/utils/MatcapUVNode.js +8 -11
  431. package/nodes/utils/MatcapUVNode.mjs +16 -0
  432. package/nodes/utils/OscNode.js +27 -33
  433. package/nodes/utils/OscNode.mjs +50 -0
  434. package/nodes/utils/SplitNode.js +6 -20
  435. package/nodes/utils/SplitNode.mjs +45 -0
  436. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  437. package/nodes/utils/SpriteSheetUVNode.mjs +40 -0
  438. package/nodes/utils/TimerNode.js +20 -24
  439. package/nodes/utils/TimerNode.mjs +44 -0
  440. package/objects/GroundProjectedEnv.js +22 -37
  441. package/objects/GroundProjectedEnv.mjs +130 -0
  442. package/objects/Lensflare.js +86 -156
  443. package/objects/Lensflare.mjs +262 -0
  444. package/objects/LightningStorm.js +38 -102
  445. package/objects/LightningStorm.mjs +110 -0
  446. package/objects/MarchingCubes.js +150 -303
  447. package/objects/MarchingCubes.mjs +457 -0
  448. package/objects/Reflector.js +50 -72
  449. package/objects/Reflector.mjs +166 -0
  450. package/objects/ReflectorForSSRPass.js +80 -131
  451. package/objects/ReflectorForSSRPass.mjs +247 -0
  452. package/objects/ReflectorRTT.js +6 -7
  453. package/objects/ReflectorRTT.mjs +10 -0
  454. package/objects/Refractor.js +64 -106
  455. package/objects/Refractor.mjs +178 -0
  456. package/objects/ShadowMesh.js +8 -17
  457. package/objects/ShadowMesh.mjs +41 -0
  458. package/objects/Sky.js +119 -80
  459. package/objects/Sky.mjs +124 -0
  460. package/objects/Water.js +83 -127
  461. package/objects/Water.mjs +235 -0
  462. package/objects/Water2.js +72 -108
  463. package/objects/Water2.mjs +252 -0
  464. package/offscreen/jank.js +10 -14
  465. package/offscreen/jank.mjs +27 -0
  466. package/offscreen/offscreen.js +4 -5
  467. package/offscreen/offscreen.mjs +5 -0
  468. package/offscreen/scene.js +45 -48
  469. package/offscreen/scene.mjs +52 -0
  470. package/package.json +3 -3
  471. package/physics/AmmoPhysics.js +30 -71
  472. package/physics/AmmoPhysics.mjs +165 -0
  473. package/postprocessing/AdaptiveToneMappingPass.js +97 -123
  474. package/postprocessing/AdaptiveToneMappingPass.mjs +221 -0
  475. package/postprocessing/AfterimagePass.js +28 -49
  476. package/postprocessing/AfterimagePass.mjs +55 -0
  477. package/postprocessing/BloomPass.js +43 -69
  478. package/postprocessing/BloomPass.mjs +90 -0
  479. package/postprocessing/BokehPass.js +39 -69
  480. package/postprocessing/BokehPass.mjs +76 -0
  481. package/postprocessing/ClearPass.js +10 -25
  482. package/postprocessing/ClearPass.mjs +27 -0
  483. package/postprocessing/CubeTexturePass.js +28 -27
  484. package/postprocessing/CubeTexturePass.mjs +49 -0
  485. package/postprocessing/DotScreenPass.js +24 -32
  486. package/postprocessing/DotScreenPass.mjs +40 -0
  487. package/postprocessing/EffectComposer.js +39 -86
  488. package/postprocessing/EffectComposer.mjs +139 -0
  489. package/postprocessing/FilmPass.js +25 -30
  490. package/postprocessing/FilmPass.mjs +42 -0
  491. package/postprocessing/GlitchPass.js +38 -61
  492. package/postprocessing/GlitchPass.mjs +75 -0
  493. package/postprocessing/HalftonePass.js +19 -39
  494. package/postprocessing/HalftonePass.mjs +44 -0
  495. package/postprocessing/LUTPass.js +13 -38
  496. package/postprocessing/LUTPass.mjs +136 -0
  497. package/postprocessing/MaskPass.js +19 -38
  498. package/postprocessing/MaskPass.mjs +60 -0
  499. package/postprocessing/OutlinePass.js +135 -277
  500. package/postprocessing/OutlinePass.mjs +438 -0
  501. package/postprocessing/Pass.js +20 -44
  502. package/postprocessing/Pass.mjs +37 -0
  503. package/postprocessing/RenderPass.js +13 -36
  504. package/postprocessing/RenderPass.mjs +48 -0
  505. package/postprocessing/RenderPixelatedPass.js +44 -58
  506. package/postprocessing/RenderPixelatedPass.mjs +199 -0
  507. package/postprocessing/SAOPass.js +154 -189
  508. package/postprocessing/SAOPass.mjs +282 -0
  509. package/postprocessing/SMAAPass.js +64 -84
  510. package/postprocessing/SMAAPass.mjs +112 -0
  511. package/postprocessing/SSAARenderPass.js +121 -69
  512. package/postprocessing/SSAARenderPass.mjs +170 -0
  513. package/postprocessing/SSAOPass.js +123 -172
  514. package/postprocessing/SSAOPass.mjs +265 -0
  515. package/postprocessing/SSRPass.js +211 -280
  516. package/postprocessing/SSRPass.mjs +432 -0
  517. package/postprocessing/SavePass.js +20 -25
  518. package/postprocessing/SavePass.mjs +37 -0
  519. package/postprocessing/ShaderPass.js +14 -30
  520. package/postprocessing/ShaderPass.mjs +39 -0
  521. package/postprocessing/TAARenderPass.js +42 -61
  522. package/postprocessing/TAARenderPass.mjs +88 -0
  523. package/postprocessing/TexturePass.js +21 -22
  524. package/postprocessing/TexturePass.mjs +39 -0
  525. package/postprocessing/UnrealBloomPass.js +105 -213
  526. package/postprocessing/UnrealBloomPass.mjs +220 -0
  527. package/renderers/CSS2DRenderer.js +44 -56
  528. package/renderers/CSS2DRenderer.mjs +112 -0
  529. package/renderers/CSS3DRenderer.js +53 -86
  530. package/renderers/CSS3DRenderer.mjs +133 -0
  531. package/renderers/Projector.js +107 -274
  532. package/renderers/Projector.mjs +511 -0
  533. package/renderers/SVGRenderer.js +72 -182
  534. package/renderers/SVGRenderer.mjs +306 -0
  535. package/renderers/nodes/accessors/CameraNode.js +29 -40
  536. package/renderers/nodes/accessors/CameraNode.mjs +63 -0
  537. package/renderers/nodes/accessors/ModelNode.js +28 -37
  538. package/renderers/nodes/accessors/ModelNode.mjs +61 -0
  539. package/renderers/nodes/accessors/ModelViewProjectionNode.js +10 -23
  540. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +21 -0
  541. package/renderers/nodes/accessors/NormalNode.js +35 -45
  542. package/renderers/nodes/accessors/NormalNode.mjs +61 -0
  543. package/renderers/nodes/accessors/PositionNode.js +18 -19
  544. package/renderers/nodes/accessors/PositionNode.mjs +30 -0
  545. package/renderers/nodes/accessors/UVNode.js +5 -10
  546. package/renderers/nodes/accessors/UVNode.mjs +13 -0
  547. package/renderers/nodes/core/AttributeNode.js +5 -14
  548. package/renderers/nodes/core/AttributeNode.mjs +35 -0
  549. package/renderers/nodes/core/InputNode.js +4 -14
  550. package/renderers/nodes/core/InputNode.mjs +31 -0
  551. package/renderers/nodes/core/Node.js +7 -17
  552. package/renderers/nodes/core/Node.mjs +34 -0
  553. package/renderers/nodes/core/NodeAttribute.js +3 -6
  554. package/renderers/nodes/core/NodeAttribute.mjs +10 -0
  555. package/renderers/nodes/core/NodeBuilder.js +87 -154
  556. package/renderers/nodes/core/NodeBuilder.mjs +243 -0
  557. package/renderers/nodes/core/NodeFrame.js +9 -12
  558. package/renderers/nodes/core/NodeFrame.mjs +35 -0
  559. package/renderers/nodes/core/NodeSlot.js +2 -3
  560. package/renderers/nodes/core/NodeSlot.mjs +10 -0
  561. package/renderers/nodes/core/NodeUniform.js +4 -9
  562. package/renderers/nodes/core/NodeUniform.mjs +18 -0
  563. package/renderers/nodes/core/NodeVary.js +4 -7
  564. package/renderers/nodes/core/NodeVary.mjs +11 -0
  565. package/renderers/nodes/core/VaryNode.js +6 -12
  566. package/renderers/nodes/core/VaryNode.mjs +22 -0
  567. package/renderers/nodes/core/constants.js +16 -13
  568. package/renderers/nodes/core/constants.mjs +22 -0
  569. package/renderers/nodes/inputs/ColorNode.js +5 -11
  570. package/renderers/nodes/inputs/ColorNode.mjs +11 -0
  571. package/renderers/nodes/inputs/FloatNode.js +5 -11
  572. package/renderers/nodes/inputs/FloatNode.mjs +11 -0
  573. package/renderers/nodes/inputs/Matrix3Node.js +7 -13
  574. package/renderers/nodes/inputs/Matrix3Node.mjs +12 -0
  575. package/renderers/nodes/inputs/Matrix4Node.js +7 -13
  576. package/renderers/nodes/inputs/Matrix4Node.mjs +12 -0
  577. package/renderers/nodes/inputs/TextureNode.js +7 -15
  578. package/renderers/nodes/inputs/TextureNode.mjs +20 -0
  579. package/renderers/nodes/inputs/Vector2Node.js +5 -11
  580. package/renderers/nodes/inputs/Vector2Node.mjs +11 -0
  581. package/renderers/nodes/inputs/Vector3Node.js +7 -13
  582. package/renderers/nodes/inputs/Vector3Node.mjs +12 -0
  583. package/renderers/nodes/inputs/Vector4Node.js +7 -13
  584. package/renderers/nodes/inputs/Vector4Node.mjs +12 -0
  585. package/renderers/nodes/math/MathNode.js +20 -30
  586. package/renderers/nodes/math/MathNode.mjs +55 -0
  587. package/renderers/nodes/math/OperatorNode.js +4 -20
  588. package/renderers/nodes/math/OperatorNode.mjs +42 -0
  589. package/renderers/nodes/utils/SwitchNode.js +4 -9
  590. package/renderers/nodes/utils/SwitchNode.mjs +20 -0
  591. package/renderers/nodes/utils/TimerNode.js +5 -10
  592. package/renderers/nodes/utils/TimerNode.mjs +14 -0
  593. package/renderers/webgpu/WebGPU.js +14 -16
  594. package/renderers/webgpu/WebGPU.mjs +24 -0
  595. package/renderers/webgpu/WebGPUAttributes.js +16 -23
  596. package/renderers/webgpu/WebGPUAttributes.mjs +69 -0
  597. package/renderers/webgpu/WebGPUBackground.js +13 -30
  598. package/renderers/webgpu/WebGPUBackground.mjs +61 -0
  599. package/renderers/webgpu/WebGPUBinding.js +4 -7
  600. package/renderers/webgpu/WebGPUBinding.mjs +14 -0
  601. package/renderers/webgpu/WebGPUBindings.js +21 -57
  602. package/renderers/webgpu/WebGPUBindings.mjs +155 -0
  603. package/renderers/webgpu/WebGPUComputePipelines.js +14 -25
  604. package/renderers/webgpu/WebGPUComputePipelines.mjs +44 -0
  605. package/renderers/webgpu/WebGPUGeometries.js +5 -15
  606. package/renderers/webgpu/WebGPUGeometries.mjs +41 -0
  607. package/renderers/webgpu/WebGPUInfo.js +3 -8
  608. package/renderers/webgpu/WebGPUInfo.mjs +46 -0
  609. package/renderers/webgpu/WebGPUObjects.js +5 -10
  610. package/renderers/webgpu/WebGPUObjects.mjs +25 -0
  611. package/renderers/webgpu/WebGPUProperties.js +5 -11
  612. package/renderers/webgpu/WebGPUProperties.mjs +22 -0
  613. package/renderers/webgpu/WebGPURenderLists.js +20 -36
  614. package/renderers/webgpu/WebGPURenderLists.mjs +119 -0
  615. package/renderers/webgpu/WebGPURenderPipelines.js +260 -387
  616. package/renderers/webgpu/WebGPURenderPipelines.mjs +545 -0
  617. package/renderers/webgpu/WebGPURenderer.js +124 -262
  618. package/renderers/webgpu/WebGPURenderer.mjs +574 -0
  619. package/renderers/webgpu/WebGPUSampledTexture.js +18 -31
  620. package/renderers/webgpu/WebGPUSampledTexture.mjs +40 -0
  621. package/renderers/webgpu/WebGPUSampler.js +7 -12
  622. package/renderers/webgpu/WebGPUSampler.mjs +15 -0
  623. package/renderers/webgpu/WebGPUStorageBuffer.js +7 -12
  624. package/renderers/webgpu/WebGPUStorageBuffer.mjs +15 -0
  625. package/renderers/webgpu/WebGPUTextureRenderer.js +5 -11
  626. package/renderers/webgpu/WebGPUTextureRenderer.mjs +23 -0
  627. package/renderers/webgpu/WebGPUTextureUtils.js +29 -40
  628. package/renderers/webgpu/WebGPUTextureUtils.mjs +98 -0
  629. package/renderers/webgpu/WebGPUTextures.js +186 -333
  630. package/renderers/webgpu/WebGPUTextures.mjs +484 -0
  631. package/renderers/webgpu/WebGPUUniform.js +25 -51
  632. package/renderers/webgpu/WebGPUUniform.mjs +81 -0
  633. package/renderers/webgpu/WebGPUUniformsGroup.js +32 -72
  634. package/renderers/webgpu/WebGPUUniformsGroup.mjs +176 -0
  635. package/renderers/webgpu/constants.js +190 -181
  636. package/renderers/webgpu/constants.mjs +230 -0
  637. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  638. package/renderers/webgpu/nodes/ShaderLib.mjs +42 -0
  639. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +53 -124
  640. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +165 -0
  641. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +17 -31
  642. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +73 -0
  643. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +8 -9
  644. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +15 -0
  645. package/renderers/webgpu/nodes/WebGPUNodes.js +7 -45
  646. package/renderers/webgpu/nodes/WebGPUNodes.mjs +40 -0
  647. package/shaders/ACESFilmicToneMappingShader.js +44 -24
  648. package/shaders/ACESFilmicToneMappingShader.mjs +48 -0
  649. package/shaders/AfterimageShader.js +28 -18
  650. package/shaders/AfterimageShader.mjs +32 -0
  651. package/shaders/BasicShader.js +9 -7
  652. package/shaders/BasicShader.mjs +12 -0
  653. package/shaders/BleachBypassShader.js +31 -15
  654. package/shaders/BleachBypassShader.mjs +35 -0
  655. package/shaders/BlendShader.js +26 -19
  656. package/shaders/BlendShader.mjs +30 -0
  657. package/shaders/BokehShader.js +98 -36
  658. package/shaders/BokehShader.mjs +106 -0
  659. package/shaders/BokehShader2.js +261 -90
  660. package/shaders/BokehShader2.mjs +269 -0
  661. package/shaders/BrightnessContrastShader.js +28 -19
  662. package/shaders/BrightnessContrastShader.mjs +32 -0
  663. package/shaders/ColorCorrectionShader.js +26 -22
  664. package/shaders/ColorCorrectionShader.mjs +30 -0
  665. package/shaders/ColorifyShader.js +24 -16
  666. package/shaders/ColorifyShader.mjs +28 -0
  667. package/shaders/ConvolutionShader.js +40 -36
  668. package/shaders/ConvolutionShader.mjs +55 -0
  669. package/shaders/CopyShader.js +21 -13
  670. package/shaders/CopyShader.mjs +25 -0
  671. package/shaders/DOFMipMapShader.js +28 -21
  672. package/shaders/DOFMipMapShader.mjs +32 -0
  673. package/shaders/DepthLimitedBlurShader.js +85 -40
  674. package/shaders/DepthLimitedBlurShader.mjs +114 -0
  675. package/shaders/DigitalGlitch.js +74 -46
  676. package/shaders/DigitalGlitch.mjs +78 -0
  677. package/shaders/DotScreenShader.js +35 -27
  678. package/shaders/DotScreenShader.mjs +39 -0
  679. package/shaders/FXAAShader.js +1094 -19
  680. package/shaders/FXAAShader.mjs +1098 -0
  681. package/shaders/FilmShader.js +38 -52
  682. package/shaders/FilmShader.mjs +42 -0
  683. package/shaders/FocusShader.js +51 -24
  684. package/shaders/FocusShader.mjs +55 -0
  685. package/shaders/FreiChenShader.js +57 -24
  686. package/shaders/FreiChenShader.mjs +61 -0
  687. package/shaders/FresnelShader.js +43 -22
  688. package/shaders/FresnelShader.mjs +47 -0
  689. package/shaders/GammaCorrectionShader.js +19 -11
  690. package/shaders/GammaCorrectionShader.mjs +23 -0
  691. package/shaders/GodRaysShader.js +103 -94
  692. package/shaders/GodRaysShader.mjs +146 -0
  693. package/shaders/HalftoneShader.js +208 -65
  694. package/shaders/HalftoneShader.mjs +212 -0
  695. package/shaders/HorizontalBlurShader.js +7 -23
  696. package/shaders/HorizontalBlurShader.mjs +43 -0
  697. package/shaders/HorizontalTiltShiftShader.js +33 -21
  698. package/shaders/HorizontalTiltShiftShader.mjs +37 -0
  699. package/shaders/HueSaturationShader.js +37 -21
  700. package/shaders/HueSaturationShader.mjs +41 -0
  701. package/shaders/KaleidoShader.js +30 -22
  702. package/shaders/KaleidoShader.mjs +34 -0
  703. package/shaders/LuminosityHighPassShader.js +33 -27
  704. package/shaders/LuminosityHighPassShader.mjs +37 -0
  705. package/shaders/LuminosityShader.js +21 -11
  706. package/shaders/LuminosityShader.mjs +25 -0
  707. package/shaders/MirrorShader.js +31 -16
  708. package/shaders/MirrorShader.mjs +35 -0
  709. package/shaders/NormalMapShader.js +27 -23
  710. package/shaders/NormalMapShader.mjs +31 -0
  711. package/shaders/ParallaxShader.js +107 -48
  712. package/shaders/ParallaxShader.mjs +113 -0
  713. package/shaders/PixelShader.js +24 -16
  714. package/shaders/PixelShader.mjs +28 -0
  715. package/shaders/RGBShiftShader.js +26 -22
  716. package/shaders/RGBShiftShader.mjs +30 -0
  717. package/shaders/SAOShader.js +132 -48
  718. package/shaders/SAOShader.mjs +144 -0
  719. package/shaders/SMAAShader.js +256 -135
  720. package/shaders/SMAAShader.mjs +272 -0
  721. package/shaders/SSAOShader.js +153 -81
  722. package/shaders/SSAOShader.mjs +172 -0
  723. package/shaders/SSRShader.js +32 -87
  724. package/shaders/SSRShader.mjs +324 -0
  725. package/shaders/SepiaShader.js +25 -15
  726. package/shaders/SepiaShader.mjs +29 -0
  727. package/shaders/SobelOperatorShader.js +40 -29
  728. package/shaders/SobelOperatorShader.mjs +44 -0
  729. package/shaders/SubsurfaceScatteringShader.js +53 -39
  730. package/shaders/SubsurfaceScatteringShader.mjs +59 -0
  731. package/shaders/TechnicolorShader.js +20 -13
  732. package/shaders/TechnicolorShader.mjs +24 -0
  733. package/shaders/ToneMapShader.js +44 -28
  734. package/shaders/ToneMapShader.mjs +48 -0
  735. package/shaders/ToonShader.js +172 -96
  736. package/shaders/ToonShader.mjs +188 -0
  737. package/shaders/TriangleBlurShader.js +32 -23
  738. package/shaders/TriangleBlurShader.mjs +36 -0
  739. package/shaders/UnpackDepthRGBAShader.js +22 -14
  740. package/shaders/UnpackDepthRGBAShader.mjs +26 -0
  741. package/shaders/VerticalBlurShader.js +7 -23
  742. package/shaders/VerticalBlurShader.mjs +44 -0
  743. package/shaders/VerticalTiltShiftShader.js +33 -21
  744. package/shaders/VerticalTiltShiftShader.mjs +37 -0
  745. package/shaders/VignetteShader.js +24 -28
  746. package/shaders/VignetteShader.mjs +28 -0
  747. package/shaders/VolumeShader.js +174 -77
  748. package/shaders/VolumeShader.mjs +178 -0
  749. package/shaders/WaterRefractionShader.js +38 -6
  750. package/shaders/WaterRefractionShader.mjs +57 -0
  751. package/shaders/types.js +1 -1
  752. package/{custom.d.js → shaders/types.mjs} +0 -0
  753. package/textures/FlakesTexture.js +8 -10
  754. package/textures/FlakesTexture.mjs +30 -0
  755. package/types/helpers.js +3 -2
  756. package/types/helpers.mjs +4 -0
  757. package/utils/BufferGeometryUtils.js +251 -325
  758. package/utils/BufferGeometryUtils.mjs +570 -0
  759. package/utils/GeometryCompressionUtils.js +241 -239
  760. package/utils/GeometryCompressionUtils.mjs +547 -0
  761. package/utils/GeometryUtils.js +41 -94
  762. package/utils/GeometryUtils.mjs +108 -0
  763. package/utils/RoughnessMipmapper.js +38 -82
  764. package/utils/RoughnessMipmapper.mjs +213 -0
  765. package/utils/SceneUtils.js +15 -20
  766. package/utils/SceneUtils.mjs +36 -0
  767. package/utils/ShadowMapViewer.js +49 -95
  768. package/utils/ShadowMapViewer.mjs +114 -0
  769. package/utils/SkeletonUtils.js +74 -165
  770. package/utils/SkeletonUtils.mjs +292 -0
  771. package/utils/UVsDebug.js +32 -62
  772. package/utils/UVsDebug.mjs +85 -0
  773. package/utils/WorkerPool.js +13 -33
  774. package/utils/WorkerPool.mjs +62 -0
  775. package/webxr/ARButton.js +72 -98
  776. package/webxr/ARButton.mjs +119 -0
  777. package/webxr/OculusHandModel.js +18 -37
  778. package/webxr/OculusHandModel.mjs +71 -0
  779. package/webxr/OculusHandPointerModel.js +58 -80
  780. package/webxr/OculusHandPointerModel.mjs +207 -0
  781. package/webxr/Text2D.js +37 -19
  782. package/webxr/Text2D.mjs +31 -0
  783. package/webxr/VRButton.js +59 -90
  784. package/webxr/VRButton.mjs +105 -0
  785. package/webxr/XRControllerModelFactory.js +58 -116
  786. package/webxr/XRControllerModelFactory.mjs +146 -0
  787. package/webxr/XREstimatedLight.js +39 -66
  788. package/webxr/XREstimatedLight.mjs +126 -0
  789. package/webxr/XRHandMeshModel.js +40 -29
  790. package/webxr/XRHandMeshModel.mjs +73 -0
  791. package/webxr/XRHandModelFactory.js +28 -31
  792. package/webxr/XRHandModelFactory.mjs +61 -0
  793. package/webxr/XRHandPrimitiveModel.js +41 -27
  794. package/webxr/XRHandPrimitiveModel.mjs +68 -0
  795. package/BufferGeometryUtils-1a7a235c.js +0 -655
  796. package/BufferGeometryUtils-971dfde3.js +0 -1
  797. package/Nodes-4f766d71.js +0 -471
  798. package/Nodes-9aa16d74.js +0 -1
  799. package/animation/AnimationClipCreator.cjs.js +0 -1
  800. package/animation/CCDIKSolver.cjs.js +0 -1
  801. package/animation/MMDAnimationHelper.cjs.js +0 -1
  802. package/animation/MMDPhysics.cjs.js +0 -1
  803. package/cameras/CinematicCamera.cjs.js +0 -1
  804. package/controls/ArcballControls.cjs.js +0 -1
  805. package/controls/DeviceOrientationControls.cjs.js +0 -1
  806. package/controls/DragControls.cjs.js +0 -1
  807. package/controls/FirstPersonControls.cjs.js +0 -1
  808. package/controls/FlyControls.cjs.js +0 -1
  809. package/controls/OrbitControls.cjs.js +0 -1
  810. package/controls/PointerLockControls.cjs.js +0 -1
  811. package/controls/TrackballControls.cjs.js +0 -1
  812. package/controls/TransformControls.cjs.js +0 -1
  813. package/controls/experimental/CameraControls.cjs.js +0 -1
  814. package/csm/CSM.cjs.js +0 -1
  815. package/csm/CSMFrustum.cjs.js +0 -1
  816. package/csm/CSMHelper.cjs.js +0 -1
  817. package/csm/CSMShader.cjs.js +0 -1
  818. package/curves/CurveExtras.cjs.js +0 -1
  819. package/curves/NURBSCurve.cjs.js +0 -1
  820. package/curves/NURBSSurface.cjs.js +0 -1
  821. package/curves/NURBSUtils.cjs.js +0 -1
  822. package/custom.d.cjs.js +0 -1
  823. package/deprecated/Geometry.cjs.js +0 -1
  824. package/effects/AnaglyphEffect.cjs.js +0 -1
  825. package/effects/AsciiEffect.cjs.js +0 -1
  826. package/effects/OutlineEffect.cjs.js +0 -1
  827. package/effects/ParallaxBarrierEffect.cjs.js +0 -1
  828. package/effects/PeppersGhostEffect.cjs.js +0 -1
  829. package/effects/StereoEffect.cjs.js +0 -1
  830. package/environments/RoomEnvironment.cjs.js +0 -1
  831. package/exporters/ColladaExporter.cjs.js +0 -1
  832. package/exporters/DRACOExporter.cjs.js +0 -1
  833. package/exporters/GLTFExporter.cjs.js +0 -1
  834. package/exporters/MMDExporter.cjs.js +0 -1
  835. package/exporters/OBJExporter.cjs.js +0 -1
  836. package/exporters/PLYExporter.cjs.js +0 -1
  837. package/exporters/STLExporter.cjs.js +0 -1
  838. package/exporters/USDZExporter.cjs.js +0 -1
  839. package/geometries/BoxLineGeometry.cjs.js +0 -1
  840. package/geometries/ConvexGeometry.cjs.js +0 -1
  841. package/geometries/DecalGeometry.cjs.js +0 -1
  842. package/geometries/LightningStrike.cjs.js +0 -1
  843. package/geometries/ParametricGeometries.cjs.js +0 -1
  844. package/geometries/ParametricGeometry.cjs.js +0 -1
  845. package/geometries/RoundedBoxGeometry.cjs.js +0 -1
  846. package/geometries/TeapotGeometry.cjs.js +0 -1
  847. package/geometries/TextGeometry.cjs.js +0 -1
  848. package/helpers/LightProbeHelper.cjs.js +0 -1
  849. package/helpers/PositionalAudioHelper.cjs.js +0 -1
  850. package/helpers/RectAreaLightHelper.cjs.js +0 -1
  851. package/helpers/VertexNormalsHelper.cjs.js +0 -1
  852. package/helpers/VertexTangentsHelper.cjs.js +0 -1
  853. package/index.cjs.js +0 -1
  854. package/interactive/InteractiveGroup.cjs.js +0 -1
  855. package/interactive/InteractiveGroup.d.ts +0 -5
  856. package/interactive/InteractiveGroup.js +0 -87
  857. package/interactive/SelectionBox.cjs.js +0 -1
  858. package/interactive/SelectionHelper.cjs.js +0 -1
  859. package/libs/MeshoptDecoder.cjs.js +0 -1
  860. package/libs/MotionControllers.cjs.js +0 -1
  861. package/lights/LightProbeGenerator.cjs.js +0 -1
  862. package/lights/RectAreaLightUniformsLib.cjs.js +0 -1
  863. package/lines/Line2.cjs.js +0 -1
  864. package/lines/LineGeometry.cjs.js +0 -1
  865. package/lines/LineMaterial.cjs.js +0 -1
  866. package/lines/LineSegments2.cjs.js +0 -1
  867. package/lines/LineSegmentsGeometry.cjs.js +0 -1
  868. package/lines/Wireframe.cjs.js +0 -1
  869. package/lines/WireframeGeometry2.cjs.js +0 -1
  870. package/loaders/3DMLoader.cjs.js +0 -1
  871. package/loaders/3MFLoader.cjs.js +0 -1
  872. package/loaders/AMFLoader.cjs.js +0 -1
  873. package/loaders/AssimpLoader.cjs.js +0 -1
  874. package/loaders/BVHLoader.cjs.js +0 -1
  875. package/loaders/BasisTextureLoader.cjs.js +0 -1
  876. package/loaders/ColladaLoader.cjs.js +0 -1
  877. package/loaders/DDSLoader.cjs.js +0 -1
  878. package/loaders/DRACOLoader.cjs.js +0 -1
  879. package/loaders/EXRLoader.cjs.js +0 -1
  880. package/loaders/FBXLoader.cjs.js +0 -1
  881. package/loaders/FontLoader.cjs.js +0 -1
  882. package/loaders/GCodeLoader.cjs.js +0 -1
  883. package/loaders/GLTFLoader.cjs.js +0 -1
  884. package/loaders/HDRCubeTextureLoader.cjs.js +0 -1
  885. package/loaders/KMZLoader.cjs.js +0 -1
  886. package/loaders/KTX2Loader.cjs.js +0 -1
  887. package/loaders/KTXLoader.cjs.js +0 -1
  888. package/loaders/LDrawLoader.cjs.js +0 -1
  889. package/loaders/LUT3dlLoader.cjs.js +0 -1
  890. package/loaders/LUTCubeLoader.cjs.js +0 -1
  891. package/loaders/LWOLoader.cjs.js +0 -1
  892. package/loaders/LottieLoader.cjs.js +0 -1
  893. package/loaders/MD2Loader.cjs.js +0 -1
  894. package/loaders/MDDLoader.cjs.js +0 -1
  895. package/loaders/MMDLoader.cjs.js +0 -1
  896. package/loaders/MTLLoader.cjs.js +0 -1
  897. package/loaders/NRRDLoader.cjs.js +0 -1
  898. package/loaders/NodeMaterialLoader.cjs.js +0 -1
  899. package/loaders/OBJLoader.cjs.js +0 -1
  900. package/loaders/PCDLoader.cjs.js +0 -1
  901. package/loaders/PDBLoader.cjs.js +0 -1
  902. package/loaders/PLYLoader.cjs.js +0 -1
  903. package/loaders/PRWMLoader.cjs.js +0 -1
  904. package/loaders/PVRLoader.cjs.js +0 -1
  905. package/loaders/RGBELoader.cjs.js +0 -1
  906. package/loaders/RGBMLoader.cjs.js +0 -1
  907. package/loaders/STLLoader.cjs.js +0 -1
  908. package/loaders/SVGLoader.cjs.js +0 -1
  909. package/loaders/TDSLoader.cjs.js +0 -1
  910. package/loaders/TGALoader.cjs.js +0 -1
  911. package/loaders/TTFLoader.cjs.js +0 -1
  912. package/loaders/TiltLoader.cjs.js +0 -1
  913. package/loaders/VOXLoader.cjs.js +0 -1
  914. package/loaders/VRMLLoader.cjs.js +0 -1
  915. package/loaders/VRMLoader.cjs.js +0 -1
  916. package/loaders/VTKLoader.cjs.js +0 -1
  917. package/loaders/XLoader.cjs.js +0 -1
  918. package/loaders/XYZLoader.cjs.js +0 -1
  919. package/loaders/lwo/IFFParser.cjs.js +0 -1
  920. package/loaders/lwo/LWO2Parser.cjs.js +0 -1
  921. package/loaders/lwo/LWO3Parser.cjs.js +0 -1
  922. package/math/Capsule.cjs.js +0 -1
  923. package/math/ColorConverter.cjs.js +0 -1
  924. package/math/ConvexHull.cjs.js +0 -1
  925. package/math/ImprovedNoise.cjs.js +0 -1
  926. package/math/Lut.cjs.js +0 -1
  927. package/math/MeshSurfaceSampler.cjs.js +0 -1
  928. package/math/OBB.cjs.js +0 -1
  929. package/math/Octree.cjs.js +0 -1
  930. package/math/SimplexNoise.cjs.js +0 -1
  931. package/misc/ConvexObjectBreaker.cjs.js +0 -1
  932. package/misc/GPUComputationRenderer.cjs.js +0 -1
  933. package/misc/Gyroscope.cjs.js +0 -1
  934. package/misc/MD2Character.cjs.js +0 -1
  935. package/misc/MD2CharacterComplex.cjs.js +0 -1
  936. package/misc/MorphAnimMesh.cjs.js +0 -1
  937. package/misc/MorphBlendMesh.cjs.js +0 -1
  938. package/misc/ProgressiveLightmap.cjs.js +0 -1
  939. package/misc/RollerCoaster.cjs.js +0 -1
  940. package/misc/TubePainter.cjs.js +0 -1
  941. package/misc/Volume.cjs.js +0 -1
  942. package/misc/VolumeSlice.cjs.js +0 -1
  943. package/misc/WebGL.cjs.js +0 -1
  944. package/modifiers/CurveModifier.cjs.js +0 -1
  945. package/modifiers/EdgeSplitModifier.cjs.js +0 -1
  946. package/modifiers/SimplifyModifier.cjs.js +0 -1
  947. package/modifiers/TessellateModifier.cjs.js +0 -1
  948. package/nodes/Nodes.cjs.js +0 -1
  949. package/nodes/ShaderNode.cjs.js +0 -1
  950. package/nodes/accessors/BufferNode.cjs.js +0 -1
  951. package/nodes/accessors/CameraNode.cjs.js +0 -1
  952. package/nodes/accessors/CubeTextureNode.cjs.js +0 -1
  953. package/nodes/accessors/MaterialNode.cjs.js +0 -1
  954. package/nodes/accessors/MaterialReferenceNode.cjs.js +0 -1
  955. package/nodes/accessors/ModelNode.cjs.js +0 -1
  956. package/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
  957. package/nodes/accessors/NormalNode.cjs.js +0 -1
  958. package/nodes/accessors/Object3DNode.cjs.js +0 -1
  959. package/nodes/accessors/PointUVNode.cjs.js +0 -1
  960. package/nodes/accessors/PositionNode.cjs.js +0 -1
  961. package/nodes/accessors/ReferenceNode.cjs.js +0 -1
  962. package/nodes/accessors/ReflectNode.cjs.js +0 -1
  963. package/nodes/accessors/SkinningNode.cjs.js +0 -1
  964. package/nodes/accessors/TextureNode.cjs.js +0 -1
  965. package/nodes/accessors/UVNode.cjs.js +0 -1
  966. package/nodes/core/ArrayUniformNode.cjs.js +0 -1
  967. package/nodes/core/AttributeNode.cjs.js +0 -1
  968. package/nodes/core/BypassNode.cjs.js +0 -1
  969. package/nodes/core/CodeNode.cjs.js +0 -1
  970. package/nodes/core/ConstNode.cjs.js +0 -1
  971. package/nodes/core/ContextNode.cjs.js +0 -1
  972. package/nodes/core/ExpressionNode.cjs.js +0 -1
  973. package/nodes/core/FunctionCallNode.cjs.js +0 -1
  974. package/nodes/core/FunctionNode.cjs.js +0 -1
  975. package/nodes/core/InputNode.cjs.js +0 -1
  976. package/nodes/core/Node.cjs.js +0 -1
  977. package/nodes/core/NodeAttribute.cjs.js +0 -1
  978. package/nodes/core/NodeBuilder.cjs.js +0 -1
  979. package/nodes/core/NodeCode.cjs.js +0 -1
  980. package/nodes/core/NodeFrame.cjs.js +0 -1
  981. package/nodes/core/NodeFunction.cjs.js +0 -1
  982. package/nodes/core/NodeFunction.js +0 -17
  983. package/nodes/core/NodeFunctionInput.cjs.js +0 -1
  984. package/nodes/core/NodeKeywords.cjs.js +0 -1
  985. package/nodes/core/NodeParser.cjs.js +0 -1
  986. package/nodes/core/NodeParser.js +0 -8
  987. package/nodes/core/NodeUniform.cjs.js +0 -1
  988. package/nodes/core/NodeUtils.cjs.js +0 -1
  989. package/nodes/core/NodeVar.cjs.js +0 -1
  990. package/nodes/core/NodeVary.cjs.js +0 -1
  991. package/nodes/core/PropertyNode.cjs.js +0 -1
  992. package/nodes/core/TempNode.cjs.js +0 -1
  993. package/nodes/core/UniformNode.cjs.js +0 -1
  994. package/nodes/core/VarNode.cjs.js +0 -1
  995. package/nodes/core/VaryNode.cjs.js +0 -1
  996. package/nodes/core/constants.cjs.js +0 -1
  997. package/nodes/display/ColorSpaceNode.cjs.js +0 -1
  998. package/nodes/display/NormalMapNode.cjs.js +0 -1
  999. package/nodes/fog/FogNode.cjs.js +0 -1
  1000. package/nodes/fog/FogRangeNode.cjs.js +0 -1
  1001. package/nodes/functions/BSDFs.cjs.js +0 -1
  1002. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +0 -1
  1003. package/nodes/functions/PhysicalMaterialFunctions.js +0 -57
  1004. package/nodes/lights/LightContextNode.cjs.js +0 -1
  1005. package/nodes/lights/LightNode.cjs.js +0 -1
  1006. package/nodes/lights/LightsNode.cjs.js +0 -1
  1007. package/nodes/loaders/NodeLoader.cjs.js +0 -1
  1008. package/nodes/loaders/NodeMaterialLoader.cjs.js +0 -1
  1009. package/nodes/loaders/NodeObjectLoader.cjs.js +0 -1
  1010. package/nodes/materials/LineBasicNodeMaterial.cjs.js +0 -1
  1011. package/nodes/materials/Materials.cjs.js +0 -1
  1012. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +0 -1
  1013. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +0 -1
  1014. package/nodes/materials/NodeMaterial.cjs.js +0 -1
  1015. package/nodes/materials/PointsNodeMaterial.cjs.js +0 -1
  1016. package/nodes/math/CondNode.cjs.js +0 -1
  1017. package/nodes/math/MathNode.cjs.js +0 -1
  1018. package/nodes/math/OperatorNode.cjs.js +0 -1
  1019. package/nodes/parsers/GLSLNodeFunction.cjs.js +0 -1
  1020. package/nodes/parsers/GLSLNodeFunction.js +0 -101
  1021. package/nodes/parsers/GLSLNodeParser.cjs.js +0 -1
  1022. package/nodes/parsers/GLSLNodeParser.js +0 -13
  1023. package/nodes/parsers/WGSLNodeFunction.cjs.js +0 -1
  1024. package/nodes/parsers/WGSLNodeFunction.js +0 -71
  1025. package/nodes/parsers/WGSLNodeParser.cjs.js +0 -1
  1026. package/nodes/parsers/WGSLNodeParser.js +0 -13
  1027. package/nodes/procedural/CheckerNode.cjs.js +0 -1
  1028. package/nodes/utils/ArrayElementNode.cjs.js +0 -1
  1029. package/nodes/utils/ConvertNode.cjs.js +0 -1
  1030. package/nodes/utils/JoinNode.cjs.js +0 -1
  1031. package/nodes/utils/MatcapUVNode.cjs.js +0 -1
  1032. package/nodes/utils/OscNode.cjs.js +0 -1
  1033. package/nodes/utils/SplitNode.cjs.js +0 -1
  1034. package/nodes/utils/SpriteSheetUVNode.cjs.js +0 -1
  1035. package/nodes/utils/TimerNode.cjs.js +0 -1
  1036. package/objects/GroundProjectedEnv.cjs.js +0 -1
  1037. package/objects/Lensflare.cjs.js +0 -1
  1038. package/objects/LightningStorm.cjs.js +0 -1
  1039. package/objects/MarchingCubes.cjs.js +0 -1
  1040. package/objects/Reflector.cjs.js +0 -1
  1041. package/objects/ReflectorForSSRPass.cjs.js +0 -1
  1042. package/objects/ReflectorRTT.cjs.js +0 -1
  1043. package/objects/Refractor.cjs.js +0 -1
  1044. package/objects/ShadowMesh.cjs.js +0 -1
  1045. package/objects/Sky.cjs.js +0 -1
  1046. package/objects/Water.cjs.js +0 -1
  1047. package/objects/Water2.cjs.js +0 -1
  1048. package/offscreen/jank.cjs.js +0 -1
  1049. package/offscreen/offscreen.cjs.js +0 -1
  1050. package/offscreen/scene.cjs.js +0 -1
  1051. package/physics/AmmoPhysics.cjs.js +0 -1
  1052. package/postprocessing/AdaptiveToneMappingPass.cjs.js +0 -1
  1053. package/postprocessing/AfterimagePass.cjs.js +0 -1
  1054. package/postprocessing/BloomPass.cjs.js +0 -1
  1055. package/postprocessing/BokehPass.cjs.js +0 -1
  1056. package/postprocessing/ClearPass.cjs.js +0 -1
  1057. package/postprocessing/CubeTexturePass.cjs.js +0 -1
  1058. package/postprocessing/DotScreenPass.cjs.js +0 -1
  1059. package/postprocessing/EffectComposer.cjs.js +0 -1
  1060. package/postprocessing/FilmPass.cjs.js +0 -1
  1061. package/postprocessing/GlitchPass.cjs.js +0 -1
  1062. package/postprocessing/HalftonePass.cjs.js +0 -1
  1063. package/postprocessing/LUTPass.cjs.js +0 -1
  1064. package/postprocessing/MaskPass.cjs.js +0 -1
  1065. package/postprocessing/OutlinePass.cjs.js +0 -1
  1066. package/postprocessing/Pass.cjs.js +0 -1
  1067. package/postprocessing/RenderPass.cjs.js +0 -1
  1068. package/postprocessing/RenderPixelatedPass.cjs.js +0 -1
  1069. package/postprocessing/SAOPass.cjs.js +0 -1
  1070. package/postprocessing/SMAAPass.cjs.js +0 -1
  1071. package/postprocessing/SSAARenderPass.cjs.js +0 -1
  1072. package/postprocessing/SSAOPass.cjs.js +0 -1
  1073. package/postprocessing/SSRPass.cjs.js +0 -1
  1074. package/postprocessing/SavePass.cjs.js +0 -1
  1075. package/postprocessing/ShaderPass.cjs.js +0 -1
  1076. package/postprocessing/TAARenderPass.cjs.js +0 -1
  1077. package/postprocessing/TexturePass.cjs.js +0 -1
  1078. package/postprocessing/UnrealBloomPass.cjs.js +0 -1
  1079. package/renderers/CSS2DRenderer.cjs.js +0 -1
  1080. package/renderers/CSS3DRenderer.cjs.js +0 -1
  1081. package/renderers/Projector.cjs.js +0 -1
  1082. package/renderers/SVGRenderer.cjs.js +0 -1
  1083. package/renderers/nodes/accessors/CameraNode.cjs.js +0 -1
  1084. package/renderers/nodes/accessors/ModelNode.cjs.js +0 -1
  1085. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
  1086. package/renderers/nodes/accessors/NormalNode.cjs.js +0 -1
  1087. package/renderers/nodes/accessors/PositionNode.cjs.js +0 -1
  1088. package/renderers/nodes/accessors/UVNode.cjs.js +0 -1
  1089. package/renderers/nodes/core/AttributeNode.cjs.js +0 -1
  1090. package/renderers/nodes/core/InputNode.cjs.js +0 -1
  1091. package/renderers/nodes/core/Node.cjs.js +0 -1
  1092. package/renderers/nodes/core/NodeAttribute.cjs.js +0 -1
  1093. package/renderers/nodes/core/NodeBuilder.cjs.js +0 -1
  1094. package/renderers/nodes/core/NodeFrame.cjs.js +0 -1
  1095. package/renderers/nodes/core/NodeSlot.cjs.js +0 -1
  1096. package/renderers/nodes/core/NodeUniform.cjs.js +0 -1
  1097. package/renderers/nodes/core/NodeVary.cjs.js +0 -1
  1098. package/renderers/nodes/core/VaryNode.cjs.js +0 -1
  1099. package/renderers/nodes/core/constants.cjs.js +0 -1
  1100. package/renderers/nodes/inputs/ColorNode.cjs.js +0 -1
  1101. package/renderers/nodes/inputs/FloatNode.cjs.js +0 -1
  1102. package/renderers/nodes/inputs/Matrix3Node.cjs.js +0 -1
  1103. package/renderers/nodes/inputs/Matrix4Node.cjs.js +0 -1
  1104. package/renderers/nodes/inputs/TextureNode.cjs.js +0 -1
  1105. package/renderers/nodes/inputs/Vector2Node.cjs.js +0 -1
  1106. package/renderers/nodes/inputs/Vector3Node.cjs.js +0 -1
  1107. package/renderers/nodes/inputs/Vector4Node.cjs.js +0 -1
  1108. package/renderers/nodes/math/MathNode.cjs.js +0 -1
  1109. package/renderers/nodes/math/OperatorNode.cjs.js +0 -1
  1110. package/renderers/nodes/utils/SwitchNode.cjs.js +0 -1
  1111. package/renderers/nodes/utils/TimerNode.cjs.js +0 -1
  1112. package/renderers/webgpu/WebGPU.cjs.js +0 -1
  1113. package/renderers/webgpu/WebGPUAttributes.cjs.js +0 -1
  1114. package/renderers/webgpu/WebGPUBackground.cjs.js +0 -1
  1115. package/renderers/webgpu/WebGPUBinding.cjs.js +0 -1
  1116. package/renderers/webgpu/WebGPUBindings.cjs.js +0 -1
  1117. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +0 -1
  1118. package/renderers/webgpu/WebGPUGeometries.cjs.js +0 -1
  1119. package/renderers/webgpu/WebGPUInfo.cjs.js +0 -1
  1120. package/renderers/webgpu/WebGPUObjects.cjs.js +0 -1
  1121. package/renderers/webgpu/WebGPUProperties.cjs.js +0 -1
  1122. package/renderers/webgpu/WebGPURenderLists.cjs.js +0 -1
  1123. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +0 -1
  1124. package/renderers/webgpu/WebGPURenderer.cjs.js +0 -1
  1125. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +0 -1
  1126. package/renderers/webgpu/WebGPUSampler.cjs.js +0 -1
  1127. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +0 -1
  1128. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +0 -1
  1129. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +0 -1
  1130. package/renderers/webgpu/WebGPUTextures.cjs.js +0 -1
  1131. package/renderers/webgpu/WebGPUUniform.cjs.js +0 -1
  1132. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +0 -1
  1133. package/renderers/webgpu/constants.cjs.js +0 -1
  1134. package/renderers/webgpu/nodes/ShaderLib.cjs.js +0 -1
  1135. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +0 -1
  1136. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +0 -1
  1137. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +0 -1
  1138. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +0 -1
  1139. package/shaders/ACESFilmicToneMappingShader.cjs.js +0 -1
  1140. package/shaders/AfterimageShader.cjs.js +0 -1
  1141. package/shaders/BasicShader.cjs.js +0 -1
  1142. package/shaders/BleachBypassShader.cjs.js +0 -1
  1143. package/shaders/BlendShader.cjs.js +0 -1
  1144. package/shaders/BokehShader.cjs.js +0 -1
  1145. package/shaders/BokehShader2.cjs.js +0 -1
  1146. package/shaders/BrightnessContrastShader.cjs.js +0 -1
  1147. package/shaders/ColorCorrectionShader.cjs.js +0 -1
  1148. package/shaders/ColorifyShader.cjs.js +0 -1
  1149. package/shaders/ConvolutionShader.cjs.js +0 -1
  1150. package/shaders/CopyShader.cjs.js +0 -1
  1151. package/shaders/DOFMipMapShader.cjs.js +0 -1
  1152. package/shaders/DepthLimitedBlurShader.cjs.js +0 -1
  1153. package/shaders/DigitalGlitch.cjs.js +0 -1
  1154. package/shaders/DotScreenShader.cjs.js +0 -1
  1155. package/shaders/FXAAShader.cjs.js +0 -1
  1156. package/shaders/FilmShader.cjs.js +0 -1
  1157. package/shaders/FocusShader.cjs.js +0 -1
  1158. package/shaders/FreiChenShader.cjs.js +0 -1
  1159. package/shaders/FresnelShader.cjs.js +0 -1
  1160. package/shaders/GammaCorrectionShader.cjs.js +0 -1
  1161. package/shaders/GodRaysShader.cjs.js +0 -1
  1162. package/shaders/HalftoneShader.cjs.js +0 -1
  1163. package/shaders/HorizontalBlurShader.cjs.js +0 -1
  1164. package/shaders/HorizontalTiltShiftShader.cjs.js +0 -1
  1165. package/shaders/HueSaturationShader.cjs.js +0 -1
  1166. package/shaders/KaleidoShader.cjs.js +0 -1
  1167. package/shaders/LuminosityHighPassShader.cjs.js +0 -1
  1168. package/shaders/LuminosityShader.cjs.js +0 -1
  1169. package/shaders/MirrorShader.cjs.js +0 -1
  1170. package/shaders/NormalMapShader.cjs.js +0 -1
  1171. package/shaders/ParallaxShader.cjs.js +0 -1
  1172. package/shaders/PixelShader.cjs.js +0 -1
  1173. package/shaders/RGBShiftShader.cjs.js +0 -1
  1174. package/shaders/SAOShader.cjs.js +0 -1
  1175. package/shaders/SMAAShader.cjs.js +0 -1
  1176. package/shaders/SSAOShader.cjs.js +0 -1
  1177. package/shaders/SSRShader.cjs.js +0 -1
  1178. package/shaders/SepiaShader.cjs.js +0 -1
  1179. package/shaders/SobelOperatorShader.cjs.js +0 -1
  1180. package/shaders/SubsurfaceScatteringShader.cjs.js +0 -1
  1181. package/shaders/TechnicolorShader.cjs.js +0 -1
  1182. package/shaders/ToneMapShader.cjs.js +0 -1
  1183. package/shaders/ToonShader.cjs.js +0 -1
  1184. package/shaders/TriangleBlurShader.cjs.js +0 -1
  1185. package/shaders/UnpackDepthRGBAShader.cjs.js +0 -1
  1186. package/shaders/VerticalBlurShader.cjs.js +0 -1
  1187. package/shaders/VerticalTiltShiftShader.cjs.js +0 -1
  1188. package/shaders/VignetteShader.cjs.js +0 -1
  1189. package/shaders/VolumeShader.cjs.js +0 -1
  1190. package/shaders/WaterRefractionShader.cjs.js +0 -1
  1191. package/shaders/index.cjs.js +0 -1
  1192. package/shaders/index.d.ts +0 -54
  1193. package/shaders/index.js +0 -53
  1194. package/shaders/types.cjs.js +0 -1
  1195. package/textures/FlakesTexture.cjs.js +0 -1
  1196. package/types/helpers.cjs.js +0 -1
  1197. package/types/shared.cjs.js +0 -1
  1198. package/types/shared.js +0 -1
  1199. package/types/utils.cjs.js +0 -1
  1200. package/types/utils.js +0 -1
  1201. package/utils/BufferGeometryUtils.cjs.js +0 -1
  1202. package/utils/GeometryCompressionUtils.cjs.js +0 -1
  1203. package/utils/GeometryUtils.cjs.js +0 -1
  1204. package/utils/LDrawUtils.cjs.js +0 -1
  1205. package/utils/LDrawUtils.d.ts +0 -5
  1206. package/utils/LDrawUtils.js +0 -144
  1207. package/utils/RoughnessMipmapper.cjs.js +0 -1
  1208. package/utils/SceneUtils.cjs.js +0 -1
  1209. package/utils/ShadowMapViewer.cjs.js +0 -1
  1210. package/utils/SkeletonUtils.cjs.js +0 -1
  1211. package/utils/UVsDebug.cjs.js +0 -1
  1212. package/utils/WorkerPool.cjs.js +0 -1
  1213. package/webxr/ARButton.cjs.js +0 -1
  1214. package/webxr/OculusHandModel.cjs.js +0 -1
  1215. package/webxr/OculusHandPointerModel.cjs.js +0 -1
  1216. package/webxr/Text2D.cjs.js +0 -1
  1217. package/webxr/VRButton.cjs.js +0 -1
  1218. package/webxr/XRControllerModelFactory.cjs.js +0 -1
  1219. package/webxr/XREstimatedLight.cjs.js +0 -1
  1220. package/webxr/XRHandMeshModel.cjs.js +0 -1
  1221. package/webxr/XRHandModelFactory.cjs.js +0 -1
  1222. package/webxr/XRHandPrimitiveModel.cjs.js +0 -1
@@ -1,99 +1,81 @@
1
- import { Loader, FileLoader, MeshStandardMaterial, Color, TextureLoader, Object3D, Matrix4, BufferGeometryLoader, DirectionalLight, PointLight, RectAreaLight, Vector3, SpotLight, CanvasTexture, LinearFilter, ClampToEdgeWrapping, SpriteMaterial, Sprite, LineBasicMaterial, Line, Mesh, PointsMaterial, Points } from 'three';
2
-
3
- const _taskCache = new WeakMap();
4
-
5
- class Rhino3dmLoader extends Loader {
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const THREE = require("three");
4
+ const _taskCache = /* @__PURE__ */ new WeakMap();
5
+ class Rhino3dmLoader extends THREE.Loader {
6
6
  constructor(manager) {
7
7
  super(manager);
8
- this.libraryPath = '';
8
+ this.libraryPath = "";
9
9
  this.libraryPending = null;
10
10
  this.libraryBinary = null;
11
11
  this.libraryConfig = {};
12
- this.url = '';
12
+ this.url = "";
13
13
  this.workerLimit = 4;
14
14
  this.workerPool = [];
15
15
  this.workerNextTaskID = 1;
16
- this.workerSourceURL = '';
16
+ this.workerSourceURL = "";
17
17
  this.workerConfig = {};
18
18
  this.materials = [];
19
19
  }
20
-
21
20
  setLibraryPath(path) {
22
21
  this.libraryPath = path;
23
22
  return this;
24
23
  }
25
-
26
24
  setWorkerLimit(workerLimit) {
27
25
  this.workerLimit = workerLimit;
28
26
  return this;
29
27
  }
30
-
31
28
  load(url, onLoad, onProgress, onError) {
32
- const loader = new FileLoader(this.manager);
29
+ const loader = new THREE.FileLoader(this.manager);
33
30
  loader.setPath(this.path);
34
- loader.setResponseType('arraybuffer');
31
+ loader.setResponseType("arraybuffer");
35
32
  loader.setRequestHeader(this.requestHeader);
36
33
  this.url = url;
37
- loader.load(url, buffer => {
38
- // Check for an existing task using this buffer. A transferred buffer cannot be transferred
39
- // again from this thread.
40
- if (_taskCache.has(buffer)) {
41
- const cachedTask = _taskCache.get(buffer);
42
-
43
- return cachedTask.promise.then(onLoad).catch(onError);
44
- }
45
-
46
- this.decodeObjects(buffer, url).then(onLoad).catch(onError);
47
- }, onProgress, onError);
34
+ loader.load(
35
+ url,
36
+ (buffer) => {
37
+ if (_taskCache.has(buffer)) {
38
+ const cachedTask = _taskCache.get(buffer);
39
+ return cachedTask.promise.then(onLoad).catch(onError);
40
+ }
41
+ this.decodeObjects(buffer, url).then(onLoad).catch(onError);
42
+ },
43
+ onProgress,
44
+ onError
45
+ );
48
46
  }
49
-
50
47
  debug() {
51
- console.log('Task load: ', this.workerPool.map(worker => worker._taskLoad));
48
+ console.log(
49
+ "Task load: ",
50
+ this.workerPool.map((worker) => worker._taskLoad)
51
+ );
52
52
  }
53
-
54
53
  decodeObjects(buffer, url) {
55
54
  let worker;
56
55
  let taskID;
57
56
  const taskCost = buffer.byteLength;
58
-
59
- const objectPending = this._getWorker(taskCost).then(_worker => {
57
+ const objectPending = this._getWorker(taskCost).then((_worker) => {
60
58
  worker = _worker;
61
- taskID = this.workerNextTaskID++; //hmmm
62
-
59
+ taskID = this.workerNextTaskID++;
63
60
  return new Promise((resolve, reject) => {
64
- worker._callbacks[taskID] = {
65
- resolve,
66
- reject
67
- };
68
- worker.postMessage({
69
- type: 'decode',
70
- id: taskID,
71
- buffer
72
- }, [buffer]); //this.debug();
61
+ worker._callbacks[taskID] = { resolve, reject };
62
+ worker.postMessage({ type: "decode", id: taskID, buffer }, [buffer]);
73
63
  });
74
- }).then(message => this._createGeometry(message.data)); // Remove task from the task list.
75
- // Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)
76
-
77
-
64
+ }).then((message) => this._createGeometry(message.data));
78
65
  objectPending.catch(() => true).then(() => {
79
66
  if (worker && taskID) {
80
- this._releaseTask(worker, taskID); //this.debug();
81
-
67
+ this._releaseTask(worker, taskID);
82
68
  }
83
- }); // Cache the task result.
84
-
69
+ });
85
70
  _taskCache.set(buffer, {
86
- url: url,
71
+ url,
87
72
  promise: objectPending
88
73
  });
89
-
90
74
  return objectPending;
91
75
  }
92
-
93
76
  parse(data, onLoad, onError) {
94
- this.decodeObjects(data, '').then(onLoad).catch(onError);
77
+ this.decodeObjects(data, "").then(onLoad).catch(onError);
95
78
  }
96
-
97
79
  _compareMaterials(material) {
98
80
  const mat = {};
99
81
  mat.name = material.name;
@@ -102,7 +84,6 @@ class Rhino3dmLoader extends Loader {
102
84
  mat.color.g = material.color.g;
103
85
  mat.color.b = material.color.b;
104
86
  mat.type = material.type;
105
-
106
87
  for (let i = 0; i < this.materials.length; i++) {
107
88
  const m = this.materials[i];
108
89
  const _mat = {};
@@ -112,263 +93,216 @@ class Rhino3dmLoader extends Loader {
112
93
  _mat.color.g = m.color.g;
113
94
  _mat.color.b = m.color.b;
114
95
  _mat.type = m.type;
115
-
116
96
  if (JSON.stringify(mat) === JSON.stringify(_mat)) {
117
97
  return m;
118
98
  }
119
99
  }
120
-
121
100
  this.materials.push(material);
122
101
  return material;
123
102
  }
124
-
125
103
  _createMaterial(material) {
126
- if (material === undefined) {
127
- return new MeshStandardMaterial({
128
- color: new Color(1, 1, 1),
104
+ if (material === void 0) {
105
+ return new THREE.MeshStandardMaterial({
106
+ color: new THREE.Color(1, 1, 1),
129
107
  metalness: 0.8,
130
- name: 'default',
108
+ name: "default",
131
109
  side: 2
132
110
  });
133
111
  }
134
-
135
112
  const _diffuseColor = material.diffuseColor;
136
- const diffusecolor = new Color(_diffuseColor.r / 255.0, _diffuseColor.g / 255.0, _diffuseColor.b / 255.0);
137
-
113
+ const diffusecolor = new THREE.Color(_diffuseColor.r / 255, _diffuseColor.g / 255, _diffuseColor.b / 255);
138
114
  if (_diffuseColor.r === 0 && _diffuseColor.g === 0 && _diffuseColor.b === 0) {
139
115
  diffusecolor.r = 1;
140
116
  diffusecolor.g = 1;
141
117
  diffusecolor.b = 1;
142
- } // console.log( material );
143
-
144
-
145
- const mat = new MeshStandardMaterial({
118
+ }
119
+ const mat = new THREE.MeshStandardMaterial({
146
120
  color: diffusecolor,
147
121
  name: material.name,
148
122
  side: 2,
149
123
  transparent: material.transparency > 0 ? true : false,
150
- opacity: 1.0 - material.transparency
124
+ opacity: 1 - material.transparency
151
125
  });
152
- const textureLoader = new TextureLoader();
153
-
126
+ const textureLoader = new THREE.TextureLoader();
154
127
  for (let i = 0; i < material.textures.length; i++) {
155
128
  const texture = material.textures[i];
156
-
157
129
  if (texture.image !== null) {
158
130
  const map = textureLoader.load(texture.image);
159
-
160
131
  switch (texture.type) {
161
- case 'Diffuse':
132
+ case "Diffuse":
162
133
  mat.map = map;
163
134
  break;
164
-
165
- case 'Bump':
135
+ case "Bump":
166
136
  mat.bumpMap = map;
167
137
  break;
168
-
169
- case 'Transparency':
138
+ case "Transparency":
170
139
  mat.alphaMap = map;
171
140
  mat.transparent = true;
172
141
  break;
173
-
174
- case 'Emap':
142
+ case "Emap":
175
143
  mat.envMap = map;
176
144
  break;
177
145
  }
178
146
  }
179
147
  }
180
-
181
148
  return mat;
182
149
  }
183
-
184
150
  _createGeometry(data) {
185
- // console.log(data);
186
- const object = new Object3D();
151
+ const object = new THREE.Object3D();
187
152
  const instanceDefinitionObjects = [];
188
153
  const instanceDefinitions = [];
189
154
  const instanceReferences = [];
190
- object.userData['layers'] = data.layers;
191
- object.userData['groups'] = data.groups;
192
- object.userData['settings'] = data.settings;
193
- object.userData['objectType'] = 'File3dm';
194
- object.userData['materials'] = null;
155
+ object.userData["layers"] = data.layers;
156
+ object.userData["groups"] = data.groups;
157
+ object.userData["settings"] = data.settings;
158
+ object.userData["objectType"] = "File3dm";
159
+ object.userData["materials"] = null;
195
160
  object.name = this.url;
196
161
  let objects = data.objects;
197
162
  const materials = data.materials;
198
-
199
163
  for (let i = 0; i < objects.length; i++) {
200
164
  const obj = objects[i];
201
165
  const attributes = obj.attributes;
202
-
203
166
  switch (obj.objectType) {
204
- case 'InstanceDefinition':
167
+ case "InstanceDefinition":
205
168
  instanceDefinitions.push(obj);
206
169
  break;
207
-
208
- case 'InstanceReference':
170
+ case "InstanceReference":
209
171
  instanceReferences.push(obj);
210
172
  break;
211
-
212
173
  default:
213
174
  let _object;
214
-
215
175
  if (attributes.materialIndex >= 0) {
216
176
  const rMaterial = materials[attributes.materialIndex];
217
-
218
177
  let material = this._createMaterial(rMaterial);
219
-
220
178
  material = this._compareMaterials(material);
221
179
  _object = this._createObject(obj, material);
222
180
  } else {
223
181
  const material = this._createMaterial();
224
-
225
182
  _object = this._createObject(obj, material);
226
183
  }
227
-
228
- if (_object === undefined) {
184
+ if (_object === void 0) {
229
185
  continue;
230
186
  }
231
-
232
187
  const layer = data.layers[attributes.layerIndex];
233
188
  _object.visible = layer ? data.layers[attributes.layerIndex].visible : true;
234
-
235
189
  if (attributes.isInstanceDefinitionObject) {
236
190
  instanceDefinitionObjects.push(_object);
237
191
  } else {
238
192
  object.add(_object);
239
193
  }
240
-
241
194
  break;
242
195
  }
243
196
  }
244
-
245
197
  for (let i = 0; i < instanceDefinitions.length; i++) {
246
198
  const iDef = instanceDefinitions[i];
247
199
  objects = [];
248
-
249
200
  for (let j = 0; j < iDef.attributes.objectIds.length; j++) {
250
201
  const objId = iDef.attributes.objectIds[j];
251
-
252
202
  for (let p = 0; p < instanceDefinitionObjects.length; p++) {
253
203
  const idoId = instanceDefinitionObjects[p].userData.attributes.id;
254
-
255
204
  if (objId === idoId) {
256
205
  objects.push(instanceDefinitionObjects[p]);
257
206
  }
258
207
  }
259
- } // Currently clones geometry and does not take advantage of instancing
260
-
261
-
208
+ }
262
209
  for (let j = 0; j < instanceReferences.length; j++) {
263
210
  const iRef = instanceReferences[j];
264
-
265
211
  if (iRef.geometry.parentIdefId === iDef.attributes.id) {
266
- const iRefObject = new Object3D();
212
+ const iRefObject = new THREE.Object3D();
267
213
  const xf = iRef.geometry.xform.array;
268
- const matrix = new Matrix4();
269
- matrix.set(xf[0], xf[1], xf[2], xf[3], xf[4], xf[5], xf[6], xf[7], xf[8], xf[9], xf[10], xf[11], xf[12], xf[13], xf[14], xf[15]);
214
+ const matrix = new THREE.Matrix4();
215
+ matrix.set(
216
+ xf[0],
217
+ xf[1],
218
+ xf[2],
219
+ xf[3],
220
+ xf[4],
221
+ xf[5],
222
+ xf[6],
223
+ xf[7],
224
+ xf[8],
225
+ xf[9],
226
+ xf[10],
227
+ xf[11],
228
+ xf[12],
229
+ xf[13],
230
+ xf[14],
231
+ xf[15]
232
+ );
270
233
  iRefObject.applyMatrix4(matrix);
271
-
272
234
  for (let p = 0; p < objects.length; p++) {
273
235
  iRefObject.add(objects[p].clone(true));
274
236
  }
275
-
276
237
  object.add(iRefObject);
277
238
  }
278
239
  }
279
240
  }
280
-
281
- object.userData['materials'] = this.materials;
241
+ object.userData["materials"] = this.materials;
282
242
  return object;
283
243
  }
284
-
285
244
  _createObject(obj, mat) {
286
- const loader = new BufferGeometryLoader();
245
+ const loader = new THREE.BufferGeometryLoader();
287
246
  const attributes = obj.attributes;
288
-
289
247
  let geometry, material, _color, color;
290
-
291
248
  switch (obj.objectType) {
292
- case 'Point':
293
- case 'PointSet':
249
+ case "Point":
250
+ case "PointSet":
294
251
  geometry = loader.parse(obj.geometry);
295
-
296
- if (geometry.attributes.hasOwnProperty('color')) {
297
- material = new PointsMaterial({
298
- vertexColors: true,
299
- sizeAttenuation: false,
300
- size: 2
301
- });
252
+ if (geometry.attributes.hasOwnProperty("color")) {
253
+ material = new THREE.PointsMaterial({ vertexColors: true, sizeAttenuation: false, size: 2 });
302
254
  } else {
303
255
  _color = attributes.drawColor;
304
- color = new Color(_color.r / 255.0, _color.g / 255.0, _color.b / 255.0);
305
- material = new PointsMaterial({
306
- color: color,
307
- sizeAttenuation: false,
308
- size: 2
309
- });
256
+ color = new THREE.Color(_color.r / 255, _color.g / 255, _color.b / 255);
257
+ material = new THREE.PointsMaterial({ color, sizeAttenuation: false, size: 2 });
310
258
  }
311
-
312
259
  material = this._compareMaterials(material);
313
- const points = new Points(geometry, material);
314
- points.userData['attributes'] = attributes;
315
- points.userData['objectType'] = obj.objectType;
316
-
260
+ const points = new THREE.Points(geometry, material);
261
+ points.userData["attributes"] = attributes;
262
+ points.userData["objectType"] = obj.objectType;
317
263
  if (attributes.name) {
318
264
  points.name = attributes.name;
319
265
  }
320
-
321
266
  return points;
322
-
323
- case 'Mesh':
324
- case 'Extrusion':
325
- case 'SubD':
326
- case 'Brep':
327
- if (obj.geometry === null) return;
267
+ case "Mesh":
268
+ case "Extrusion":
269
+ case "SubD":
270
+ case "Brep":
271
+ if (obj.geometry === null)
272
+ return;
328
273
  geometry = loader.parse(obj.geometry);
329
-
330
- if (geometry.attributes.hasOwnProperty('color')) {
274
+ if (geometry.attributes.hasOwnProperty("color")) {
331
275
  mat.vertexColors = true;
332
276
  }
333
-
334
277
  if (mat === null) {
335
278
  mat = this._createMaterial();
336
279
  mat = this._compareMaterials(mat);
337
280
  }
338
-
339
- const mesh = new Mesh(geometry, mat);
281
+ const mesh = new THREE.Mesh(geometry, mat);
340
282
  mesh.castShadow = attributes.castsShadows;
341
283
  mesh.receiveShadow = attributes.receivesShadows;
342
- mesh.userData['attributes'] = attributes;
343
- mesh.userData['objectType'] = obj.objectType;
344
-
284
+ mesh.userData["attributes"] = attributes;
285
+ mesh.userData["objectType"] = obj.objectType;
345
286
  if (attributes.name) {
346
287
  mesh.name = attributes.name;
347
288
  }
348
-
349
289
  return mesh;
350
-
351
- case 'Curve':
290
+ case "Curve":
352
291
  geometry = loader.parse(obj.geometry);
353
292
  _color = attributes.drawColor;
354
- color = new Color(_color.r / 255.0, _color.g / 255.0, _color.b / 255.0);
355
- material = new LineBasicMaterial({
356
- color: color
357
- });
293
+ color = new THREE.Color(_color.r / 255, _color.g / 255, _color.b / 255);
294
+ material = new THREE.LineBasicMaterial({ color });
358
295
  material = this._compareMaterials(material);
359
- const lines = new Line(geometry, material);
360
- lines.userData['attributes'] = attributes;
361
- lines.userData['objectType'] = obj.objectType;
362
-
296
+ const lines = new THREE.Line(geometry, material);
297
+ lines.userData["attributes"] = attributes;
298
+ lines.userData["objectType"] = obj.objectType;
363
299
  if (attributes.name) {
364
300
  lines.name = attributes.name;
365
301
  }
366
-
367
302
  return lines;
368
-
369
- case 'TextDot':
303
+ case "TextDot":
370
304
  geometry = obj.geometry;
371
- const ctx = document.createElement('canvas').getContext('2d');
305
+ const ctx = document.createElement("canvas").getContext("2d");
372
306
  const font = `${geometry.fontHeight}px ${geometry.fontFace}`;
373
307
  ctx.font = font;
374
308
  const width = ctx.measureText(geometry.text).width + 10;
@@ -376,403 +310,307 @@ class Rhino3dmLoader extends Loader {
376
310
  const r = window.devicePixelRatio;
377
311
  ctx.canvas.width = width * r;
378
312
  ctx.canvas.height = height * r;
379
- ctx.canvas.style.width = width + 'px';
380
- ctx.canvas.style.height = height + 'px';
313
+ ctx.canvas.style.width = width + "px";
314
+ ctx.canvas.style.height = height + "px";
381
315
  ctx.setTransform(r, 0, 0, r, 0, 0);
382
316
  ctx.font = font;
383
- ctx.textBaseline = 'middle';
384
- ctx.textAlign = 'center';
317
+ ctx.textBaseline = "middle";
318
+ ctx.textAlign = "center";
385
319
  color = attributes.drawColor;
386
320
  ctx.fillStyle = `rgba(${color.r},${color.g},${color.b},${color.a})`;
387
321
  ctx.fillRect(0, 0, width, height);
388
- ctx.fillStyle = 'white';
322
+ ctx.fillStyle = "white";
389
323
  ctx.fillText(geometry.text, width / 2, height / 2);
390
- const texture = new CanvasTexture(ctx.canvas);
391
- texture.minFilter = LinearFilter;
392
- texture.wrapS = ClampToEdgeWrapping;
393
- texture.wrapT = ClampToEdgeWrapping;
394
- material = new SpriteMaterial({
395
- map: texture,
396
- depthTest: false
397
- });
398
- const sprite = new Sprite(material);
324
+ const texture = new THREE.CanvasTexture(ctx.canvas);
325
+ texture.minFilter = THREE.LinearFilter;
326
+ texture.wrapS = THREE.ClampToEdgeWrapping;
327
+ texture.wrapT = THREE.ClampToEdgeWrapping;
328
+ material = new THREE.SpriteMaterial({ map: texture, depthTest: false });
329
+ const sprite = new THREE.Sprite(material);
399
330
  sprite.position.set(geometry.point[0], geometry.point[1], geometry.point[2]);
400
- sprite.scale.set(width / 10, height / 10, 1.0);
401
- sprite.userData['attributes'] = attributes;
402
- sprite.userData['objectType'] = obj.objectType;
403
-
331
+ sprite.scale.set(width / 10, height / 10, 1);
332
+ sprite.userData["attributes"] = attributes;
333
+ sprite.userData["objectType"] = obj.objectType;
404
334
  if (attributes.name) {
405
335
  sprite.name = attributes.name;
406
336
  }
407
-
408
337
  return sprite;
409
-
410
- case 'Light':
338
+ case "Light":
411
339
  geometry = obj.geometry;
412
340
  let light;
413
-
414
341
  if (geometry.isDirectionalLight) {
415
- light = new DirectionalLight();
342
+ light = new THREE.DirectionalLight();
416
343
  light.castShadow = attributes.castsShadows;
417
344
  light.position.set(geometry.location[0], geometry.location[1], geometry.location[2]);
418
345
  light.target.position.set(geometry.direction[0], geometry.direction[1], geometry.direction[2]);
419
346
  light.shadow.normalBias = 0.1;
420
347
  } else if (geometry.isPointLight) {
421
- light = new PointLight();
348
+ light = new THREE.PointLight();
422
349
  light.castShadow = attributes.castsShadows;
423
350
  light.position.set(geometry.location[0], geometry.location[1], geometry.location[2]);
424
351
  light.shadow.normalBias = 0.1;
425
352
  } else if (geometry.isRectangularLight) {
426
- light = new RectAreaLight();
427
- const width = Math.abs(geometry.width[2]);
428
- const height = Math.abs(geometry.length[0]);
429
- light.position.set(geometry.location[0] - height / 2, geometry.location[1], geometry.location[2] - width / 2);
430
- light.height = height;
431
- light.width = width;
432
- light.lookAt(new Vector3(geometry.direction[0], geometry.direction[1], geometry.direction[2]));
353
+ light = new THREE.RectAreaLight();
354
+ const width2 = Math.abs(geometry.width[2]);
355
+ const height2 = Math.abs(geometry.length[0]);
356
+ light.position.set(geometry.location[0] - height2 / 2, geometry.location[1], geometry.location[2] - width2 / 2);
357
+ light.height = height2;
358
+ light.width = width2;
359
+ light.lookAt(new THREE.Vector3(geometry.direction[0], geometry.direction[1], geometry.direction[2]));
433
360
  } else if (geometry.isSpotLight) {
434
- light = new SpotLight();
361
+ light = new THREE.SpotLight();
435
362
  light.castShadow = attributes.castsShadows;
436
363
  light.position.set(geometry.location[0], geometry.location[1], geometry.location[2]);
437
364
  light.target.position.set(geometry.direction[0], geometry.direction[1], geometry.direction[2]);
438
365
  light.angle = geometry.spotAngleRadians;
439
366
  light.shadow.normalBias = 0.1;
440
367
  } else if (geometry.isLinearLight) {
441
- console.warn('THREE.3DMLoader: No conversion exists for linear lights.');
368
+ console.warn("THREE.3DMLoader: No conversion exists for linear lights.");
442
369
  return;
443
370
  }
444
-
445
371
  if (light) {
446
372
  light.intensity = geometry.intensity;
447
373
  _color = geometry.diffuse;
448
- color = new Color(_color.r / 255.0, _color.g / 255.0, _color.b / 255.0);
374
+ color = new THREE.Color(_color.r / 255, _color.g / 255, _color.b / 255);
449
375
  light.color = color;
450
- light.userData['attributes'] = attributes;
451
- light.userData['objectType'] = obj.objectType;
376
+ light.userData["attributes"] = attributes;
377
+ light.userData["objectType"] = obj.objectType;
452
378
  }
453
-
454
379
  return light;
455
380
  }
456
381
  }
457
-
458
382
  _initLibrary() {
459
383
  if (!this.libraryPending) {
460
- // Load rhino3dm wrapper.
461
- const jsLoader = new FileLoader(this.manager);
384
+ const jsLoader = new THREE.FileLoader(this.manager);
462
385
  jsLoader.setPath(this.libraryPath);
463
386
  const jsContent = new Promise((resolve, reject) => {
464
- jsLoader.load('rhino3dm.js', resolve, undefined, reject);
465
- }); // Load rhino3dm WASM binary.
466
-
467
- const binaryLoader = new FileLoader(this.manager);
387
+ jsLoader.load("rhino3dm.js", resolve, void 0, reject);
388
+ });
389
+ const binaryLoader = new THREE.FileLoader(this.manager);
468
390
  binaryLoader.setPath(this.libraryPath);
469
- binaryLoader.setResponseType('arraybuffer');
391
+ binaryLoader.setResponseType("arraybuffer");
470
392
  const binaryContent = new Promise((resolve, reject) => {
471
- binaryLoader.load('rhino3dm.wasm', resolve, undefined, reject);
393
+ binaryLoader.load("rhino3dm.wasm", resolve, void 0, reject);
472
394
  });
473
- this.libraryPending = Promise.all([jsContent, binaryContent]).then(([jsContent, binaryContent]) => {
474
- //this.libraryBinary = binaryContent;
475
- this.libraryConfig.wasmBinary = binaryContent;
395
+ this.libraryPending = Promise.all([jsContent, binaryContent]).then(([jsContent2, binaryContent2]) => {
396
+ this.libraryConfig.wasmBinary = binaryContent2;
476
397
  const fn = Rhino3dmWorker.toString();
477
- const body = ['/* rhino3dm.js */', jsContent, '/* worker */', fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'))].join('\n');
398
+ const body = [
399
+ "/* rhino3dm.js */",
400
+ jsContent2,
401
+ "/* worker */",
402
+ fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
403
+ ].join("\n");
478
404
  this.workerSourceURL = URL.createObjectURL(new Blob([body]));
479
405
  });
480
406
  }
481
-
482
407
  return this.libraryPending;
483
408
  }
484
-
485
409
  _getWorker(taskCost) {
486
410
  return this._initLibrary().then(() => {
487
411
  if (this.workerPool.length < this.workerLimit) {
488
- const worker = new Worker(this.workerSourceURL);
489
- worker._callbacks = {};
490
- worker._taskCosts = {};
491
- worker._taskLoad = 0;
492
- worker.postMessage({
493
- type: 'init',
412
+ const worker2 = new Worker(this.workerSourceURL);
413
+ worker2._callbacks = {};
414
+ worker2._taskCosts = {};
415
+ worker2._taskLoad = 0;
416
+ worker2.postMessage({
417
+ type: "init",
494
418
  libraryConfig: this.libraryConfig
495
419
  });
496
-
497
- worker.onmessage = function (e) {
420
+ worker2.onmessage = function(e) {
498
421
  const message = e.data;
499
-
500
422
  switch (message.type) {
501
- case 'decode':
502
- worker._callbacks[message.id].resolve(message);
503
-
423
+ case "decode":
424
+ worker2._callbacks[message.id].resolve(message);
504
425
  break;
505
-
506
- case 'error':
507
- worker._callbacks[message.id].reject(message);
508
-
426
+ case "error":
427
+ worker2._callbacks[message.id].reject(message);
509
428
  break;
510
-
511
429
  default:
512
430
  console.error('THREE.Rhino3dmLoader: Unexpected message, "' + message.type + '"');
513
431
  }
514
432
  };
515
-
516
- this.workerPool.push(worker);
433
+ this.workerPool.push(worker2);
517
434
  } else {
518
- this.workerPool.sort(function (a, b) {
435
+ this.workerPool.sort(function(a, b) {
519
436
  return a._taskLoad > b._taskLoad ? -1 : 1;
520
437
  });
521
438
  }
522
-
523
439
  const worker = this.workerPool[this.workerPool.length - 1];
524
440
  worker._taskLoad += taskCost;
525
441
  return worker;
526
442
  });
527
443
  }
528
-
529
444
  _releaseTask(worker, taskID) {
530
445
  worker._taskLoad -= worker._taskCosts[taskID];
531
446
  delete worker._callbacks[taskID];
532
447
  delete worker._taskCosts[taskID];
533
448
  }
534
-
535
449
  dispose() {
536
450
  for (let i = 0; i < this.workerPool.length; ++i) {
537
451
  this.workerPool[i].terminate();
538
452
  }
539
-
540
453
  this.workerPool.length = 0;
541
454
  return this;
542
455
  }
543
-
544
456
  }
545
- /* WEB WORKER */
546
-
547
-
548
457
  function Rhino3dmWorker() {
549
458
  let libraryPending;
550
459
  let libraryConfig;
551
460
  let rhino;
552
-
553
- onmessage = function (e) {
461
+ onmessage = function(e) {
554
462
  const message = e.data;
555
-
556
463
  switch (message.type) {
557
- case 'init':
464
+ case "init":
558
465
  libraryConfig = message.libraryConfig;
559
466
  const wasmBinary = libraryConfig.wasmBinary;
560
467
  let RhinoModule;
561
- libraryPending = new Promise(function (resolve) {
562
- /* Like Basis Loader */
563
- RhinoModule = {
564
- wasmBinary,
565
- onRuntimeInitialized: resolve
566
- };
567
- rhino3dm(RhinoModule); // eslint-disable-line no-undef
468
+ libraryPending = new Promise(function(resolve) {
469
+ RhinoModule = { wasmBinary, onRuntimeInitialized: resolve };
470
+ rhino3dm(RhinoModule);
568
471
  }).then(() => {
569
472
  rhino = RhinoModule;
570
473
  });
571
474
  break;
572
-
573
- case 'decode':
475
+ case "decode":
574
476
  const buffer = message.buffer;
575
477
  libraryPending.then(() => {
576
478
  const data = decodeObjects(rhino, buffer);
577
- self.postMessage({
578
- type: 'decode',
579
- id: message.id,
580
- data
581
- });
479
+ self.postMessage({ type: "decode", id: message.id, data });
582
480
  });
583
481
  break;
584
482
  }
585
483
  };
586
-
587
- function decodeObjects(rhino, buffer) {
484
+ function decodeObjects(rhino2, buffer) {
588
485
  const arr = new Uint8Array(buffer);
589
- const doc = rhino.File3dm.fromByteArray(arr);
486
+ const doc = rhino2.File3dm.fromByteArray(arr);
590
487
  const objects = [];
591
488
  const materials = [];
592
489
  const layers = [];
593
490
  const views = [];
594
491
  const namedViews = [];
595
- const groups = []; //Handle objects
596
-
492
+ const groups = [];
597
493
  const objs = doc.objects();
598
494
  const cnt = objs.count;
599
-
600
495
  for (let i = 0; i < cnt; i++) {
601
496
  const _object = objs.get(i);
602
-
603
497
  const object = extractObjectData(_object, doc);
604
-
605
498
  _object.delete();
606
-
607
499
  if (object) {
608
500
  objects.push(object);
609
501
  }
610
- } // Handle instance definitions
611
- // console.log( `Instance Definitions Count: ${doc.instanceDefinitions().count()}` );
612
-
613
-
502
+ }
614
503
  for (let i = 0; i < doc.instanceDefinitions().count(); i++) {
615
504
  const idef = doc.instanceDefinitions().get(i);
616
505
  const idefAttributes = extractProperties(idef);
617
506
  idefAttributes.objectIds = idef.getObjectIds();
618
- objects.push({
619
- geometry: null,
620
- attributes: idefAttributes,
621
- objectType: 'InstanceDefinition'
622
- });
623
- } // Handle materials
624
-
625
-
626
- const textureTypes = [// rhino.TextureType.Bitmap,
627
- rhino.TextureType.Diffuse, rhino.TextureType.Bump, rhino.TextureType.Transparency, rhino.TextureType.Opacity, rhino.TextureType.Emap];
628
- const pbrTextureTypes = [rhino.TextureType.PBR_BaseColor, rhino.TextureType.PBR_Subsurface, rhino.TextureType.PBR_SubsurfaceScattering, rhino.TextureType.PBR_SubsurfaceScatteringRadius, rhino.TextureType.PBR_Metallic, rhino.TextureType.PBR_Specular, rhino.TextureType.PBR_SpecularTint, rhino.TextureType.PBR_Roughness, rhino.TextureType.PBR_Anisotropic, rhino.TextureType.PBR_Anisotropic_Rotation, rhino.TextureType.PBR_Sheen, rhino.TextureType.PBR_SheenTint, rhino.TextureType.PBR_Clearcoat, rhino.TextureType.PBR_ClearcoatBump, rhino.TextureType.PBR_ClearcoatRoughness, rhino.TextureType.PBR_OpacityIor, rhino.TextureType.PBR_OpacityRoughness, rhino.TextureType.PBR_Emission, rhino.TextureType.PBR_AmbientOcclusion, rhino.TextureType.PBR_Displacement];
629
-
507
+ objects.push({ geometry: null, attributes: idefAttributes, objectType: "InstanceDefinition" });
508
+ }
509
+ const textureTypes = [
510
+ rhino2.TextureType.Diffuse,
511
+ rhino2.TextureType.Bump,
512
+ rhino2.TextureType.Transparency,
513
+ rhino2.TextureType.Opacity,
514
+ rhino2.TextureType.Emap
515
+ ];
516
+ const pbrTextureTypes = [
517
+ rhino2.TextureType.PBR_BaseColor,
518
+ rhino2.TextureType.PBR_Subsurface,
519
+ rhino2.TextureType.PBR_SubsurfaceScattering,
520
+ rhino2.TextureType.PBR_SubsurfaceScatteringRadius,
521
+ rhino2.TextureType.PBR_Metallic,
522
+ rhino2.TextureType.PBR_Specular,
523
+ rhino2.TextureType.PBR_SpecularTint,
524
+ rhino2.TextureType.PBR_Roughness,
525
+ rhino2.TextureType.PBR_Anisotropic,
526
+ rhino2.TextureType.PBR_Anisotropic_Rotation,
527
+ rhino2.TextureType.PBR_Sheen,
528
+ rhino2.TextureType.PBR_SheenTint,
529
+ rhino2.TextureType.PBR_Clearcoat,
530
+ rhino2.TextureType.PBR_ClearcoatBump,
531
+ rhino2.TextureType.PBR_ClearcoatRoughness,
532
+ rhino2.TextureType.PBR_OpacityIor,
533
+ rhino2.TextureType.PBR_OpacityRoughness,
534
+ rhino2.TextureType.PBR_Emission,
535
+ rhino2.TextureType.PBR_AmbientOcclusion,
536
+ rhino2.TextureType.PBR_Displacement
537
+ ];
630
538
  for (let i = 0; i < doc.materials().count(); i++) {
631
539
  const _material = doc.materials().get(i);
632
-
633
540
  const _pbrMaterial = _material.physicallyBased();
634
-
635
541
  let material = extractProperties(_material);
636
542
  const textures = [];
637
-
638
543
  for (let j = 0; j < textureTypes.length; j++) {
639
544
  const _texture = _material.getTexture(textureTypes[j]);
640
-
641
545
  if (_texture) {
642
546
  let textureType = textureTypes[j].constructor.name;
643
547
  textureType = textureType.substring(12, textureType.length);
644
- const texture = {
645
- type: textureType
646
- };
548
+ const texture = { type: textureType };
647
549
  const image = doc.getEmbeddedFileAsBase64(_texture.fileName);
648
-
649
550
  if (image) {
650
- texture.image = 'data:image/png;base64,' + image;
551
+ texture.image = "data:image/png;base64," + image;
651
552
  } else {
652
553
  console.warn(`THREE.3DMLoader: Image for ${textureType} texture not embedded in file.`);
653
554
  texture.image = null;
654
555
  }
655
-
656
556
  textures.push(texture);
657
-
658
557
  _texture.delete();
659
558
  }
660
559
  }
661
-
662
560
  material.textures = textures;
663
-
664
561
  if (_pbrMaterial.supported) {
665
- console.log('pbr true');
666
-
562
+ console.log("pbr true");
667
563
  for (let j = 0; j < pbrTextureTypes.length; j++) {
668
564
  const _texture = _material.getTexture(textureTypes[j]);
669
-
670
565
  if (_texture) {
671
566
  const image = doc.getEmbeddedFileAsBase64(_texture.fileName);
672
567
  let textureType = textureTypes[j].constructor.name;
673
568
  textureType = textureType.substring(12, textureType.length);
674
- const texture = {
675
- type: textureType,
676
- image: 'data:image/png;base64,' + image
677
- };
569
+ const texture = { type: textureType, image: "data:image/png;base64," + image };
678
570
  textures.push(texture);
679
-
680
571
  _texture.delete();
681
572
  }
682
573
  }
683
-
684
574
  const pbMaterialProperties = extractProperties(_material.physicallyBased());
685
575
  material = Object.assign(pbMaterialProperties, material);
686
576
  }
687
-
688
577
  materials.push(material);
689
-
690
578
  _material.delete();
691
-
692
579
  _pbrMaterial.delete();
693
- } // Handle layers
694
-
695
-
580
+ }
696
581
  for (let i = 0; i < doc.layers().count(); i++) {
697
582
  const _layer = doc.layers().get(i);
698
-
699
583
  const layer = extractProperties(_layer);
700
584
  layers.push(layer);
701
-
702
585
  _layer.delete();
703
- } // Handle views
704
-
705
-
586
+ }
706
587
  for (let i = 0; i < doc.views().count(); i++) {
707
588
  const _view = doc.views().get(i);
708
-
709
589
  const view = extractProperties(_view);
710
590
  views.push(view);
711
-
712
591
  _view.delete();
713
- } // Handle named views
714
-
715
-
592
+ }
716
593
  for (let i = 0; i < doc.namedViews().count(); i++) {
717
594
  const _namedView = doc.namedViews().get(i);
718
-
719
595
  const namedView = extractProperties(_namedView);
720
596
  namedViews.push(namedView);
721
-
722
597
  _namedView.delete();
723
- } // Handle groups
724
-
725
-
598
+ }
726
599
  for (let i = 0; i < doc.groups().count(); i++) {
727
600
  const _group = doc.groups().get(i);
728
-
729
601
  const group = extractProperties(_group);
730
602
  groups.push(group);
731
-
732
603
  _group.delete();
733
- } // Handle settings
734
-
735
-
736
- const settings = extractProperties(doc.settings()); //TODO: Handle other document stuff like dimstyles, instance definitions, bitmaps etc.
737
- // Handle dimstyles
738
- // console.log( `Dimstyle Count: ${doc.dimstyles().count()}` );
739
- // Handle bitmaps
740
- // console.log( `Bitmap Count: ${doc.bitmaps().count()}` );
741
- // Handle strings -- this seems to be broken at the moment in rhino3dm
742
- // console.log( `Document Strings Count: ${doc.strings().count()}` );
743
-
744
- /*
745
- for( var i = 0; i < doc.strings().count(); i++ ){
746
- var _string= doc.strings().get( i );
747
- console.log(_string);
748
- var string = extractProperties( _group );
749
- strings.push( string );
750
- _string.delete();
751
604
  }
752
- */
753
-
605
+ const settings = extractProperties(doc.settings());
754
606
  doc.delete();
755
- return {
756
- objects,
757
- materials,
758
- layers,
759
- views,
760
- namedViews,
761
- groups,
762
- settings
763
- };
607
+ return { objects, materials, layers, views, namedViews, groups, settings };
764
608
  }
765
-
766
609
  function extractObjectData(object, doc) {
767
610
  const _geometry = object.geometry();
768
-
769
611
  const _attributes = object.attributes();
770
-
771
612
  let objectType = _geometry.objectType;
772
- let geometry, attributes, position, data, mesh; // skip instance definition objects
773
- //if( _attributes.isInstanceDefinitionObject ) { continue; }
774
- // TODO: handle other geometry types
775
-
613
+ let geometry, attributes, position, data, mesh;
776
614
  switch (objectType) {
777
615
  case rhino.ObjectType.Curve:
778
616
  const pts = curveToPoints(_geometry, 100);
@@ -780,22 +618,17 @@ function Rhino3dmWorker() {
780
618
  attributes = {};
781
619
  data = {};
782
620
  position.itemSize = 3;
783
- position.type = 'Float32Array';
621
+ position.type = "Float32Array";
784
622
  position.array = [];
785
-
786
623
  for (let j = 0; j < pts.length; j++) {
787
624
  position.array.push(pts[j][0]);
788
625
  position.array.push(pts[j][1]);
789
626
  position.array.push(pts[j][2]);
790
627
  }
791
-
792
628
  attributes.position = position;
793
629
  data.attributes = attributes;
794
- geometry = {
795
- data
796
- };
630
+ geometry = { data };
797
631
  break;
798
-
799
632
  case rhino.ObjectType.Point:
800
633
  const pt = _geometry.location;
801
634
  position = {};
@@ -803,235 +636,167 @@ function Rhino3dmWorker() {
803
636
  attributes = {};
804
637
  data = {};
805
638
  position.itemSize = 3;
806
- position.type = 'Float32Array';
639
+ position.type = "Float32Array";
807
640
  position.array = [pt[0], pt[1], pt[2]];
808
-
809
641
  const _color = _attributes.drawColor(doc);
810
-
811
642
  color.itemSize = 3;
812
- color.type = 'Float32Array';
813
- color.array = [_color.r / 255.0, _color.g / 255.0, _color.b / 255.0];
643
+ color.type = "Float32Array";
644
+ color.array = [_color.r / 255, _color.g / 255, _color.b / 255];
814
645
  attributes.position = position;
815
646
  attributes.color = color;
816
647
  data.attributes = attributes;
817
- geometry = {
818
- data
819
- };
648
+ geometry = { data };
820
649
  break;
821
-
822
650
  case rhino.ObjectType.PointSet:
823
651
  case rhino.ObjectType.Mesh:
824
652
  geometry = _geometry.toThreejsJSON();
825
653
  break;
826
-
827
654
  case rhino.ObjectType.Brep:
828
655
  const faces = _geometry.faces();
829
-
830
656
  mesh = new rhino.Mesh();
831
-
832
657
  for (let faceIndex = 0; faceIndex < faces.count; faceIndex++) {
833
658
  const face = faces.get(faceIndex);
834
-
835
659
  const _mesh = face.getMesh(rhino.MeshType.Any);
836
-
837
660
  if (_mesh) {
838
661
  mesh.append(_mesh);
839
-
840
662
  _mesh.delete();
841
663
  }
842
-
843
664
  face.delete();
844
665
  }
845
-
846
666
  if (mesh.faces().count > 0) {
847
667
  mesh.compact();
848
668
  geometry = mesh.toThreejsJSON();
849
669
  faces.delete();
850
670
  }
851
-
852
671
  mesh.delete();
853
672
  break;
854
-
855
673
  case rhino.ObjectType.Extrusion:
856
674
  mesh = _geometry.getMesh(rhino.MeshType.Any);
857
-
858
675
  if (mesh) {
859
676
  geometry = mesh.toThreejsJSON();
860
677
  mesh.delete();
861
678
  }
862
-
863
679
  break;
864
-
865
680
  case rhino.ObjectType.TextDot:
866
681
  geometry = extractProperties(_geometry);
867
682
  break;
868
-
869
683
  case rhino.ObjectType.Light:
870
684
  geometry = extractProperties(_geometry);
871
685
  break;
872
-
873
686
  case rhino.ObjectType.InstanceReference:
874
687
  geometry = extractProperties(_geometry);
875
688
  geometry.xform = extractProperties(_geometry.xform);
876
689
  geometry.xform.array = _geometry.xform.toFloatArray(true);
877
690
  break;
878
-
879
691
  case rhino.ObjectType.SubD:
880
- // TODO: precalculate resulting vertices and faces and warn on excessive results
881
692
  _geometry.subdivide(3);
882
-
883
693
  mesh = rhino.Mesh.createFromSubDControlNet(_geometry);
884
-
885
694
  if (mesh) {
886
695
  geometry = mesh.toThreejsJSON();
887
696
  mesh.delete();
888
697
  }
889
-
890
698
  break;
891
-
892
- /*
893
- case rhino.ObjectType.Annotation:
894
- case rhino.ObjectType.Hatch:
895
- case rhino.ObjectType.ClipPlane:
896
- */
897
-
898
699
  default:
899
700
  console.warn(`THREE.3DMLoader: TODO: Implement ${objectType.constructor.name}`);
900
701
  break;
901
702
  }
902
-
903
703
  if (geometry) {
904
704
  attributes = extractProperties(_attributes);
905
705
  attributes.geometry = extractProperties(_geometry);
906
-
907
706
  if (_attributes.groupCount > 0) {
908
707
  attributes.groupIds = _attributes.getGroupList();
909
708
  }
910
-
911
709
  if (_attributes.userStringCount > 0) {
912
710
  attributes.userStrings = _attributes.getUserStrings();
913
711
  }
914
-
915
712
  if (_geometry.userStringCount > 0) {
916
713
  attributes.geometry.userStrings = _geometry.getUserStrings();
917
714
  }
918
-
919
715
  attributes.drawColor = _attributes.drawColor(doc);
920
716
  objectType = objectType.constructor.name;
921
717
  objectType = objectType.substring(11, objectType.length);
922
- return {
923
- geometry,
924
- attributes,
925
- objectType
926
- };
718
+ return { geometry, attributes, objectType };
927
719
  } else {
928
720
  console.warn(`THREE.3DMLoader: ${objectType.constructor.name} has no associated mesh geometry.`);
929
721
  }
930
722
  }
931
-
932
723
  function extractProperties(object) {
933
724
  const result = {};
934
-
935
725
  for (const property in object) {
936
726
  const value = object[property];
937
-
938
- if (typeof value !== 'function') {
939
- if (typeof value === 'object' && value !== null && value.hasOwnProperty('constructor')) {
940
- result[property] = {
941
- name: value.constructor.name,
942
- value: value.value
943
- };
727
+ if (typeof value !== "function") {
728
+ if (typeof value === "object" && value !== null && value.hasOwnProperty("constructor")) {
729
+ result[property] = { name: value.constructor.name, value: value.value };
944
730
  } else {
945
731
  result[property] = value;
946
732
  }
733
+ } else {
947
734
  }
948
735
  }
949
-
950
736
  return result;
951
737
  }
952
-
953
738
  function curveToPoints(curve, pointLimit) {
954
739
  let pointCount = pointLimit;
955
740
  let rc = [];
956
741
  const ts = [];
957
-
958
742
  if (curve instanceof rhino.LineCurve) {
959
743
  return [curve.pointAtStart, curve.pointAtEnd];
960
744
  }
961
-
962
745
  if (curve instanceof rhino.PolylineCurve) {
963
746
  pointCount = curve.pointCount;
964
-
965
747
  for (let i = 0; i < pointCount; i++) {
966
748
  rc.push(curve.point(i));
967
749
  }
968
-
969
750
  return rc;
970
751
  }
971
-
972
752
  if (curve instanceof rhino.PolyCurve) {
973
753
  const segmentCount = curve.segmentCount;
974
-
975
754
  for (let i = 0; i < segmentCount; i++) {
976
755
  const segment = curve.segmentCurve(i);
977
756
  const segmentArray = curveToPoints(segment, pointCount);
978
757
  rc = rc.concat(segmentArray);
979
758
  segment.delete();
980
759
  }
981
-
982
760
  return rc;
983
761
  }
984
-
985
762
  if (curve instanceof rhino.ArcCurve) {
986
763
  pointCount = Math.floor(curve.angleDegrees / 5);
987
- pointCount = pointCount < 2 ? 2 : pointCount; // alternative to this hardcoded version: https://stackoverflow.com/a/18499923/2179399
764
+ pointCount = pointCount < 2 ? 2 : pointCount;
988
765
  }
989
-
990
766
  if (curve instanceof rhino.NurbsCurve && curve.degree === 1) {
991
767
  const pLine = curve.tryGetPolyline();
992
-
993
768
  for (let i = 0; i < pLine.count; i++) {
994
769
  rc.push(pLine.get(i));
995
770
  }
996
-
997
771
  pLine.delete();
998
772
  return rc;
999
773
  }
1000
-
1001
774
  const domain = curve.domain;
1002
- const divisions = pointCount - 1.0;
1003
-
775
+ const divisions = pointCount - 1;
1004
776
  for (let j = 0; j < pointCount; j++) {
1005
777
  const t = domain[0] + j / divisions * (domain[1] - domain[0]);
1006
-
1007
778
  if (t === domain[0] || t === domain[1]) {
1008
779
  ts.push(t);
1009
780
  continue;
1010
781
  }
1011
-
1012
782
  const tan = curve.tangentAt(t);
1013
- const prevTan = curve.tangentAt(ts.slice(-1)[0]); // Duplicated from THREE.Vector3
1014
- // How to pass imports to worker?
1015
-
783
+ const prevTan = curve.tangentAt(ts.slice(-1)[0]);
1016
784
  const tS = tan[0] * tan[0] + tan[1] * tan[1] + tan[2] * tan[2];
1017
785
  const ptS = prevTan[0] * prevTan[0] + prevTan[1] * prevTan[1] + prevTan[2] * prevTan[2];
1018
786
  const denominator = Math.sqrt(tS * ptS);
1019
787
  let angle;
1020
-
1021
788
  if (denominator === 0) {
1022
789
  angle = Math.PI / 2;
1023
790
  } else {
1024
791
  const theta = (tan.x * prevTan.x + tan.y * prevTan.y + tan.z * prevTan.z) / denominator;
1025
792
  angle = Math.acos(Math.max(-1, Math.min(1, theta)));
1026
793
  }
1027
-
1028
- if (angle < 0.1) continue;
794
+ if (angle < 0.1)
795
+ continue;
1029
796
  ts.push(t);
1030
797
  }
1031
-
1032
- rc = ts.map(t => curve.pointAt(t));
798
+ rc = ts.map((t) => curve.pointAt(t));
1033
799
  return rc;
1034
800
  }
1035
801
  }
1036
-
1037
- export { Rhino3dmLoader };
802
+ exports.Rhino3dmLoader = Rhino3dmLoader;