three-stdlib 2.16.0 → 2.16.2

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