three-stdlib 2.15.2 → 2.16.1

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 (1218) 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 +275 -207
  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.js +152 -82
  25. package/controls/OrbitControls.cjs.js +1 -0
  26. package/controls/OrbitControls.js +481 -232
  27. package/controls/PointerLockControls.cjs.js +1 -0
  28. package/controls/PointerLockControls.js +99 -63
  29. package/controls/TrackballControls.cjs.js +1 -0
  30. package/controls/TrackballControls.js +383 -211
  31. package/controls/TransformControls.cjs.js +1 -0
  32. package/controls/TransformControls.js +782 -575
  33. package/controls/experimental/CameraControls.cjs.js +1 -0
  34. package/controls/experimental/CameraControls.js +609 -329
  35. package/csm/CSM.cjs.js +1 -0
  36. package/csm/CSM.js +108 -47
  37. package/csm/CSMFrustum.cjs.js +1 -0
  38. package/csm/CSMFrustum.js +29 -14
  39. package/csm/CSMHelper.cjs.js +1 -0
  40. package/csm/CSMHelper.js +34 -20
  41. package/csm/CSMShader.cjs.js +1 -0
  42. package/csm/CSMShader.js +11 -7
  43. package/curves/CurveExtras.cjs.js +1 -0
  44. package/curves/CurveExtras.js +115 -73
  45. package/curves/NURBSCurve.cjs.js +1 -0
  46. package/curves/NURBSCurve.js +43 -15
  47. package/curves/NURBSSurface.cjs.js +1 -0
  48. package/curves/NURBSSurface.js +27 -11
  49. package/curves/NURBSUtils.cjs.js +1 -0
  50. package/curves/NURBSUtils.js +203 -54
  51. package/custom.d.cjs.js +1 -0
  52. package/{shaders/types.mjs → custom.d.js} +0 -0
  53. package/deprecated/Geometry.cjs.js +1 -0
  54. package/deprecated/Geometry.js +486 -191
  55. package/effects/AnaglyphEffect.cjs.js +1 -0
  56. package/effects/AnaglyphEffect.js +60 -95
  57. package/effects/AsciiEffect.cjs.js +1 -0
  58. package/effects/AsciiEffect.js +110 -80
  59. package/effects/OutlineEffect.cjs.js +1 -0
  60. package/effects/OutlineEffect.js +204 -121
  61. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  62. package/effects/ParallaxBarrierEffect.js +38 -39
  63. package/effects/PeppersGhostEffect.cjs.js +1 -0
  64. package/effects/PeppersGhostEffect.js +68 -19
  65. package/effects/StereoEffect.cjs.js +1 -0
  66. package/effects/StereoEffect.js +16 -12
  67. package/environments/RoomEnvironment.cjs.js +1 -0
  68. package/environments/RoomEnvironment.js +47 -52
  69. package/exporters/ColladaExporter.cjs.js +1 -0
  70. package/exporters/ColladaExporter.js +241 -115
  71. package/exporters/DRACOExporter.cjs.js +1 -0
  72. package/exporters/DRACOExporter.js +121 -67
  73. package/exporters/GLTFExporter.cjs.js +1 -0
  74. package/exporters/GLTFExporter.js +1014 -463
  75. package/exporters/MMDExporter.cjs.js +1 -0
  76. package/exporters/MMDExporter.js +102 -44
  77. package/exporters/OBJExporter.cjs.js +1 -0
  78. package/exporters/OBJExporter.js +140 -78
  79. package/exporters/PLYExporter.cjs.js +1 -0
  80. package/exporters/PLYExporter.js +154 -93
  81. package/exporters/STLExporter.cjs.js +1 -0
  82. package/exporters/STLExporter.js +81 -30
  83. package/exporters/USDZExporter.cjs.js +1 -0
  84. package/exporters/USDZExporter.js +144 -84
  85. package/geometries/BoxLineGeometry.cjs.js +1 -0
  86. package/geometries/BoxLineGeometry.js +14 -7
  87. package/geometries/ConvexGeometry.cjs.js +1 -0
  88. package/geometries/ConvexGeometry.js +23 -14
  89. package/geometries/DecalGeometry.cjs.js +1 -0
  90. package/geometries/DecalGeometry.js +162 -108
  91. package/geometries/LightningStrike.cjs.js +1 -0
  92. package/geometries/LightningStrike.js +294 -101
  93. package/geometries/ParametricGeometries.cjs.js +1 -0
  94. package/geometries/ParametricGeometries.js +76 -26
  95. package/geometries/ParametricGeometry.cjs.js +1 -0
  96. package/geometries/ParametricGeometry.js +48 -24
  97. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  98. package/geometries/RoundedBoxGeometry.js +64 -33
  99. package/geometries/TeapotGeometry.cjs.js +1 -0
  100. package/geometries/TeapotGeometry.js +174 -1434
  101. package/geometries/TextGeometry.cjs.js +1 -0
  102. package/geometries/TextGeometry.js +17 -9
  103. package/helpers/LightProbeHelper.cjs.js +1 -0
  104. package/helpers/LightProbeHelper.js +21 -53
  105. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  106. package/helpers/PositionalAudioHelper.js +30 -23
  107. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  108. package/helpers/RectAreaLightHelper.js +33 -17
  109. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  110. package/helpers/VertexNormalsHelper.js +41 -20
  111. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  112. package/helpers/VertexTangentsHelper.js +36 -18
  113. package/index.cjs.js +1 -0
  114. package/index.js +333 -968
  115. package/interactive/InteractiveGroup.cjs.js +1 -0
  116. package/interactive/InteractiveGroup.d.ts +5 -0
  117. package/interactive/InteractiveGroup.js +87 -0
  118. package/interactive/SelectionBox.cjs.js +1 -0
  119. package/interactive/SelectionBox.js +46 -31
  120. package/interactive/SelectionHelper.cjs.js +1 -0
  121. package/interactive/SelectionHelper.js +21 -16
  122. package/libs/MeshoptDecoder.cjs.js +1 -0
  123. package/libs/MeshoptDecoder.js +58 -147
  124. package/libs/MotionControllers.cjs.js +1 -0
  125. package/libs/MotionControllers.js +208 -66
  126. package/lights/LightProbeGenerator.cjs.js +1 -0
  127. package/lights/LightProbeGenerator.js +96 -40
  128. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  129. package/lights/RectAreaLightUniformsLib.js +9 -32842
  130. package/lines/Line2.cjs.js +1 -0
  131. package/lines/Line2.js +12 -9
  132. package/lines/LineGeometry.cjs.js +1 -0
  133. package/lines/LineGeometry.js +19 -7
  134. package/lines/LineMaterial.cjs.js +1 -0
  135. package/lines/LineMaterial.js +89 -51
  136. package/lines/LineSegments2.cjs.js +1 -0
  137. package/lines/LineSegments2.js +165 -56
  138. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  139. package/lines/LineSegmentsGeometry.js +71 -29
  140. package/lines/Wireframe.cjs.js +1 -0
  141. package/lines/Wireframe.js +29 -15
  142. package/lines/WireframeGeometry2.cjs.js +1 -0
  143. package/lines/WireframeGeometry2.js +9 -8
  144. package/loaders/3DMLoader.cjs.js +1 -0
  145. package/loaders/3DMLoader.js +469 -234
  146. package/loaders/3MFLoader.cjs.js +1 -0
  147. package/loaders/3MFLoader.js +555 -340
  148. package/loaders/AMFLoader.cjs.js +1 -0
  149. package/loaders/AMFLoader.js +219 -114
  150. package/loaders/AssimpLoader.cjs.js +1 -0
  151. package/loaders/AssimpLoader.js +725 -328
  152. package/loaders/BVHLoader.cjs.js +1 -0
  153. package/loaders/BVHLoader.js +200 -94
  154. package/loaders/BasisTextureLoader.cjs.js +1 -0
  155. package/loaders/BasisTextureLoader.js +357 -229
  156. package/loaders/ColladaLoader.cjs.js +1 -0
  157. package/loaders/ColladaLoader.js +1522 -932
  158. package/loaders/DDSLoader.cjs.js +1 -0
  159. package/loaders/DDSLoader.js +108 -42
  160. package/loaders/DRACOLoader.cjs.js +1 -0
  161. package/loaders/DRACOLoader.js +210 -103
  162. package/loaders/EXRLoader.cjs.js +1 -0
  163. package/loaders/EXRLoader.js +809 -461
  164. package/loaders/FBXLoader.cjs.js +1 -0
  165. package/loaders/FBXLoader.js +1397 -842
  166. package/loaders/FontLoader.cjs.js +1 -0
  167. package/loaders/FontLoader.js +66 -33
  168. package/loaders/GCodeLoader.cjs.js +1 -0
  169. package/loaders/GCodeLoader.js +111 -63
  170. package/loaders/GLTFLoader.cjs.js +1 -0
  171. package/loaders/GLTFLoader.js +1484 -771
  172. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  173. package/loaders/HDRCubeTextureLoader.js +50 -45
  174. package/loaders/KMZLoader.cjs.js +1 -0
  175. package/loaders/KMZLoader.js +55 -42
  176. package/loaders/KTX2Loader.cjs.js +1 -0
  177. package/loaders/KTX2Loader.js +362 -229
  178. package/loaders/KTXLoader.cjs.js +1 -0
  179. package/loaders/KTXLoader.js +99 -37
  180. package/loaders/LDrawLoader.cjs.js +1 -0
  181. package/loaders/LDrawLoader.js +746 -313
  182. package/loaders/LUT3dlLoader.cjs.js +1 -0
  183. package/loaders/LUT3dlLoader.js +62 -50
  184. package/loaders/LUTCubeLoader.cjs.js +1 -0
  185. package/loaders/LUTCubeLoader.js +56 -45
  186. package/loaders/LWOLoader.cjs.js +1 -0
  187. package/loaders/LWOLoader.js +339 -227
  188. package/loaders/LottieLoader.cjs.js +1 -0
  189. package/loaders/LottieLoader.js +38 -36
  190. package/loaders/MD2Loader.cjs.js +1 -0
  191. package/loaders/MD2Loader.js +91 -248
  192. package/loaders/MDDLoader.cjs.js +1 -0
  193. package/loaders/MDDLoader.js +45 -25
  194. package/loaders/MMDLoader.cjs.js +1 -0
  195. package/loaders/MMDLoader.js +795 -359
  196. package/loaders/MTLLoader.cjs.js +1 -0
  197. package/loaders/MTLLoader.js +201 -91
  198. package/loaders/NRRDLoader.cjs.js +1 -0
  199. package/loaders/NRRDLoader.js +263 -182
  200. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  201. package/loaders/NodeMaterialLoader.js +14 -121
  202. package/loaders/OBJLoader.cjs.js +1 -0
  203. package/loaders/OBJLoader.js +283 -161
  204. package/loaders/PCDLoader.cjs.js +1 -0
  205. package/loaders/PCDLoader.js +164 -145
  206. package/loaders/PDBLoader.cjs.js +1 -0
  207. package/loaders/PDBLoader.js +63 -45
  208. package/loaders/PLYLoader.cjs.js +1 -0
  209. package/loaders/PLYLoader.js +203 -106
  210. package/loaders/PRWMLoader.cjs.js +1 -0
  211. package/loaders/PRWMLoader.js +110 -73
  212. package/loaders/PVRLoader.cjs.js +1 -0
  213. package/loaders/PVRLoader.js +93 -32
  214. package/loaders/RGBELoader.cjs.js +1 -0
  215. package/loaders/RGBELoader.js +233 -96
  216. package/loaders/RGBMLoader.cjs.js +1 -0
  217. package/loaders/RGBMLoader.js +514 -344
  218. package/loaders/STLLoader.cjs.js +1 -0
  219. package/loaders/STLLoader.js +165 -59
  220. package/loaders/SVGLoader.cjs.js +1 -0
  221. package/loaders/SVGLoader.js +851 -481
  222. package/loaders/TDSLoader.cjs.js +1 -0
  223. package/loaders/TDSLoader.js +527 -137
  224. package/loaders/TGALoader.cjs.js +1 -0
  225. package/loaders/TGALoader.js +205 -94
  226. package/loaders/TTFLoader.cjs.js +1 -0
  227. package/loaders/TTFLoader.js +79 -58
  228. package/loaders/TiltLoader.cjs.js +1 -0
  229. package/loaders/TiltLoader.js +167 -129
  230. package/loaders/VOXLoader.cjs.js +1 -0
  231. package/loaders/VOXLoader.js +84 -320
  232. package/loaders/VRMLLoader.cjs.js +1 -0
  233. package/loaders/VRMLLoader.js +1268 -786
  234. package/loaders/VRMLoader.cjs.js +1 -0
  235. package/loaders/VRMLoader.js +31 -23
  236. package/loaders/VTKLoader.cjs.js +1 -0
  237. package/loaders/VTKLoader.js +407 -219
  238. package/loaders/XLoader.cjs.js +1 -0
  239. package/loaders/XLoader.js +1259 -1083
  240. package/loaders/XYZLoader.cjs.js +1 -0
  241. package/loaders/XYZLoader.js +34 -28
  242. package/loaders/lwo/IFFParser.cjs.js +1 -0
  243. package/loaders/lwo/IFFParser.js +492 -238
  244. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  245. package/loaders/lwo/LWO2Parser.js +279 -176
  246. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  247. package/loaders/lwo/LWO3Parser.js +247 -160
  248. package/math/Capsule.cjs.js +1 -0
  249. package/math/Capsule.js +43 -56
  250. package/math/ColorConverter.cjs.js +1 -0
  251. package/math/ColorConverter.js +32 -18
  252. package/math/ConvexHull.cjs.js +1 -0
  253. package/math/ConvexHull.js +357 -97
  254. package/math/ImprovedNoise.cjs.js +1 -0
  255. package/math/ImprovedNoise.js +32 -282
  256. package/math/Lut.cjs.js +1 -0
  257. package/math/Lut.js +35 -51
  258. package/math/MeshSurfaceSampler.cjs.js +1 -0
  259. package/math/MeshSurfaceSampler.js +68 -25
  260. package/math/OBB.cjs.js +1 -0
  261. package/math/OBB.js +152 -91
  262. package/math/Octree.cjs.js +1 -0
  263. package/math/Octree.js +139 -76
  264. package/math/SimplexNoise.cjs.js +1 -0
  265. package/math/SimplexNoise.js +238 -217
  266. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  267. package/misc/ConvexObjectBreaker.js +185 -79
  268. package/misc/GPUComputationRenderer.cjs.js +1 -0
  269. package/misc/GPUComputationRenderer.js +194 -69
  270. package/misc/Gyroscope.cjs.js +1 -0
  271. package/misc/Gyroscope.js +22 -16
  272. package/misc/MD2Character.cjs.js +1 -0
  273. package/misc/MD2Character.js +74 -52
  274. package/misc/MD2CharacterComplex.cjs.js +1 -0
  275. package/misc/MD2CharacterComplex.js +163 -112
  276. package/misc/MorphAnimMesh.cjs.js +1 -0
  277. package/misc/MorphAnimMesh.js +28 -20
  278. package/misc/MorphBlendMesh.cjs.js +1 -0
  279. package/misc/MorphBlendMesh.js +69 -45
  280. package/misc/ProgressiveLightmap.cjs.js +1 -0
  281. package/misc/ProgressiveLightmap.js +187 -70
  282. package/misc/RollerCoaster.cjs.js +1 -0
  283. package/misc/RollerCoaster.js +135 -106
  284. package/misc/TubePainter.cjs.js +1 -0
  285. package/misc/TubePainter.js +92 -74
  286. package/misc/Volume.cjs.js +1 -0
  287. package/misc/Volume.js +270 -108
  288. package/misc/VolumeSlice.cjs.js +1 -0
  289. package/misc/VolumeSlice.js +122 -34
  290. package/misc/WebGL.cjs.js +1 -0
  291. package/misc/WebGL.js +34 -37
  292. package/modifiers/CurveModifier.cjs.js +1 -0
  293. package/modifiers/CurveModifier.js +151 -46
  294. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  295. package/modifiers/EdgeSplitModifier.js +90 -46
  296. package/modifiers/SimplifyModifier.cjs.js +1 -0
  297. package/modifiers/SimplifyModifier.js +202 -77
  298. package/modifiers/TessellateModifier.cjs.js +1 -0
  299. package/modifiers/TessellateModifier.js +90 -65
  300. package/nodes/Nodes.cjs.js +1 -0
  301. package/nodes/Nodes.js +140 -274
  302. package/nodes/ShaderNode.cjs.js +1 -0
  303. package/nodes/ShaderNode.js +196 -296
  304. package/nodes/accessors/BufferNode.cjs.js +1 -0
  305. package/nodes/accessors/BufferNode.js +8 -4
  306. package/nodes/accessors/CameraNode.cjs.js +1 -0
  307. package/nodes/accessors/CameraNode.js +25 -20
  308. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  309. package/nodes/accessors/CubeTextureNode.js +26 -14
  310. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  311. package/nodes/accessors/MaterialNode.js +53 -43
  312. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  313. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  314. package/nodes/accessors/ModelNode.cjs.js +1 -0
  315. package/nodes/accessors/ModelNode.js +5 -3
  316. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  317. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  318. package/nodes/accessors/NormalNode.cjs.js +1 -0
  319. package/nodes/accessors/NormalNode.js +39 -40
  320. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  321. package/nodes/accessors/Object3DNode.js +50 -40
  322. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  323. package/nodes/accessors/PointUVNode.js +9 -5
  324. package/nodes/accessors/PositionNode.cjs.js +1 -0
  325. package/nodes/accessors/PositionNode.js +41 -42
  326. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  327. package/nodes/accessors/ReferenceNode.js +17 -10
  328. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  329. package/nodes/accessors/ReflectNode.js +26 -23
  330. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  331. package/nodes/accessors/SkinningNode.js +48 -46
  332. package/nodes/accessors/TextureNode.cjs.js +1 -0
  333. package/nodes/accessors/TextureNode.js +29 -14
  334. package/nodes/accessors/UVNode.cjs.js +1 -0
  335. package/nodes/accessors/UVNode.js +11 -5
  336. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  337. package/nodes/core/ArrayUniformNode.js +7 -3
  338. package/nodes/core/AttributeNode.cjs.js +1 -0
  339. package/nodes/core/AttributeNode.js +12 -5
  340. package/nodes/core/BypassNode.cjs.js +1 -0
  341. package/nodes/core/BypassNode.js +12 -5
  342. package/nodes/core/CodeNode.cjs.js +1 -0
  343. package/nodes/core/CodeNode.js +12 -4
  344. package/nodes/core/ConstNode.cjs.js +1 -0
  345. package/nodes/core/ConstNode.js +7 -3
  346. package/nodes/core/ContextNode.cjs.js +1 -0
  347. package/nodes/core/ContextNode.js +8 -3
  348. package/nodes/core/ExpressionNode.cjs.js +1 -0
  349. package/nodes/core/ExpressionNode.js +9 -5
  350. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  351. package/nodes/core/FunctionCallNode.js +15 -6
  352. package/nodes/core/FunctionNode.cjs.js +1 -0
  353. package/nodes/core/FunctionNode.js +25 -10
  354. package/nodes/core/InputNode.cjs.js +1 -0
  355. package/nodes/core/InputNode.js +23 -12
  356. package/nodes/core/Node.cjs.js +1 -0
  357. package/nodes/core/Node.js +75 -35
  358. package/nodes/core/NodeAttribute.cjs.js +1 -0
  359. package/nodes/core/NodeAttribute.js +4 -2
  360. package/nodes/core/NodeBuilder.cjs.js +1 -0
  361. package/nodes/core/NodeBuilder.js +224 -110
  362. package/nodes/core/NodeCode.cjs.js +1 -0
  363. package/nodes/core/NodeCode.js +7 -4
  364. package/nodes/core/NodeFrame.cjs.js +1 -0
  365. package/nodes/core/NodeFrame.js +12 -9
  366. package/nodes/core/NodeFunction.cjs.js +1 -0
  367. package/nodes/core/NodeFunction.js +17 -0
  368. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  369. package/nodes/core/NodeFunctionInput.js +5 -3
  370. package/nodes/core/NodeKeywords.cjs.js +1 -0
  371. package/nodes/core/NodeKeywords.js +16 -5
  372. package/nodes/core/NodeParser.cjs.js +1 -0
  373. package/nodes/core/NodeParser.js +8 -0
  374. package/nodes/core/NodeUniform.cjs.js +1 -0
  375. package/nodes/core/NodeUniform.js +7 -3
  376. package/nodes/core/NodeUtils.cjs.js +1 -0
  377. package/nodes/core/NodeUtils.js +43 -39
  378. package/nodes/core/NodeVar.cjs.js +1 -0
  379. package/nodes/core/NodeVar.js +4 -2
  380. package/nodes/core/NodeVary.cjs.js +1 -0
  381. package/nodes/core/NodeVary.js +4 -2
  382. package/nodes/core/PropertyNode.cjs.js +1 -0
  383. package/nodes/core/PropertyNode.js +10 -4
  384. package/nodes/core/TempNode.cjs.js +1 -0
  385. package/nodes/core/TempNode.js +11 -5
  386. package/nodes/core/UniformNode.cjs.js +1 -0
  387. package/nodes/core/UniformNode.js +10 -4
  388. package/nodes/core/VarNode.cjs.js +1 -0
  389. package/nodes/core/VarNode.js +11 -3
  390. package/nodes/core/VaryNode.cjs.js +1 -0
  391. package/nodes/core/VaryNode.js +15 -6
  392. package/nodes/core/constants.cjs.js +1 -0
  393. package/nodes/core/constants.js +7 -20
  394. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  395. package/nodes/display/ColorSpaceNode.js +38 -34
  396. package/nodes/display/NormalMapNode.cjs.js +1 -0
  397. package/nodes/display/NormalMapNode.js +53 -35
  398. package/nodes/fog/FogNode.cjs.js +1 -0
  399. package/nodes/fog/FogNode.js +9 -5
  400. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  401. package/nodes/fog/FogRangeNode.js +9 -5
  402. package/nodes/functions/BSDFs.cjs.js +1 -0
  403. package/nodes/functions/BSDFs.js +118 -61
  404. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  405. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  406. package/nodes/lights/LightContextNode.cjs.js +1 -0
  407. package/nodes/lights/LightContextNode.js +23 -14
  408. package/nodes/lights/LightNode.cjs.js +1 -0
  409. package/nodes/lights/LightNode.js +31 -27
  410. package/nodes/lights/LightsNode.cjs.js +1 -0
  411. package/nodes/lights/LightsNode.js +28 -9
  412. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  413. package/nodes/loaders/NodeLoader.js +42 -27
  414. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  415. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  416. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  417. package/nodes/loaders/NodeObjectLoader.js +19 -9
  418. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  419. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  420. package/nodes/materials/Materials.cjs.js +1 -0
  421. package/nodes/materials/Materials.js +17 -14
  422. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  423. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  424. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  425. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  426. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  427. package/nodes/materials/NodeMaterial.js +36 -20
  428. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  429. package/nodes/materials/PointsNodeMaterial.js +10 -5
  430. package/nodes/math/CondNode.cjs.js +1 -0
  431. package/nodes/math/CondNode.js +23 -11
  432. package/nodes/math/MathNode.cjs.js +1 -0
  433. package/nodes/math/MathNode.js +142 -98
  434. package/nodes/math/OperatorNode.cjs.js +1 -0
  435. package/nodes/math/OperatorNode.js +46 -24
  436. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  437. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  438. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  439. package/nodes/parsers/GLSLNodeParser.js +13 -0
  440. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  441. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  442. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  443. package/nodes/parsers/WGSLNodeParser.js +13 -0
  444. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  445. package/nodes/procedural/CheckerNode.js +19 -13
  446. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  447. package/nodes/utils/ArrayElementNode.js +8 -4
  448. package/nodes/utils/ConvertNode.cjs.js +1 -0
  449. package/nodes/utils/ConvertNode.js +8 -3
  450. package/nodes/utils/JoinNode.cjs.js +1 -0
  451. package/nodes/utils/JoinNode.js +11 -7
  452. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  453. package/nodes/utils/MatcapUVNode.js +11 -8
  454. package/nodes/utils/OscNode.cjs.js +1 -0
  455. package/nodes/utils/OscNode.js +33 -27
  456. package/nodes/utils/SplitNode.cjs.js +1 -0
  457. package/nodes/utils/SplitNode.js +20 -6
  458. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  459. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  460. package/nodes/utils/TimerNode.cjs.js +1 -0
  461. package/nodes/utils/TimerNode.js +24 -20
  462. package/objects/GroundProjectedEnv.cjs.js +1 -0
  463. package/objects/GroundProjectedEnv.js +37 -22
  464. package/objects/Lensflare.cjs.js +1 -0
  465. package/objects/Lensflare.js +156 -86
  466. package/objects/LightningStorm.cjs.js +1 -0
  467. package/objects/LightningStorm.js +102 -38
  468. package/objects/MarchingCubes.cjs.js +1 -0
  469. package/objects/MarchingCubes.js +303 -150
  470. package/objects/Reflector.cjs.js +1 -0
  471. package/objects/Reflector.js +72 -50
  472. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  473. package/objects/ReflectorForSSRPass.js +131 -80
  474. package/objects/ReflectorRTT.cjs.js +1 -0
  475. package/objects/ReflectorRTT.js +7 -6
  476. package/objects/Refractor.cjs.js +1 -0
  477. package/objects/Refractor.js +106 -64
  478. package/objects/ShadowMesh.cjs.js +1 -0
  479. package/objects/ShadowMesh.js +17 -8
  480. package/objects/Sky.cjs.js +1 -0
  481. package/objects/Sky.js +80 -119
  482. package/objects/Water.cjs.js +1 -0
  483. package/objects/Water.js +127 -83
  484. package/objects/Water2.cjs.js +1 -0
  485. package/objects/Water2.js +108 -72
  486. package/offscreen/jank.cjs.js +1 -0
  487. package/offscreen/jank.js +14 -10
  488. package/offscreen/offscreen.cjs.js +1 -0
  489. package/offscreen/offscreen.js +5 -4
  490. package/offscreen/scene.cjs.js +1 -0
  491. package/offscreen/scene.js +48 -45
  492. package/package.json +3 -3
  493. package/physics/AmmoPhysics.cjs.js +1 -0
  494. package/physics/AmmoPhysics.js +71 -30
  495. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  496. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  497. package/postprocessing/AfterimagePass.cjs.js +1 -0
  498. package/postprocessing/AfterimagePass.js +49 -28
  499. package/postprocessing/BloomPass.cjs.js +1 -0
  500. package/postprocessing/BloomPass.js +69 -43
  501. package/postprocessing/BokehPass.cjs.js +1 -0
  502. package/postprocessing/BokehPass.js +69 -39
  503. package/postprocessing/ClearPass.cjs.js +1 -0
  504. package/postprocessing/ClearPass.js +25 -10
  505. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  506. package/postprocessing/CubeTexturePass.js +27 -28
  507. package/postprocessing/DotScreenPass.cjs.js +1 -0
  508. package/postprocessing/DotScreenPass.js +32 -24
  509. package/postprocessing/EffectComposer.cjs.js +1 -0
  510. package/postprocessing/EffectComposer.js +86 -39
  511. package/postprocessing/FilmPass.cjs.js +1 -0
  512. package/postprocessing/FilmPass.js +30 -25
  513. package/postprocessing/GlitchPass.cjs.js +1 -0
  514. package/postprocessing/GlitchPass.js +61 -38
  515. package/postprocessing/HalftonePass.cjs.js +1 -0
  516. package/postprocessing/HalftonePass.js +39 -19
  517. package/postprocessing/LUTPass.cjs.js +1 -0
  518. package/postprocessing/LUTPass.js +38 -13
  519. package/postprocessing/MaskPass.cjs.js +1 -0
  520. package/postprocessing/MaskPass.js +38 -19
  521. package/postprocessing/OutlinePass.cjs.js +1 -0
  522. package/postprocessing/OutlinePass.js +277 -135
  523. package/postprocessing/Pass.cjs.js +1 -0
  524. package/postprocessing/Pass.js +44 -20
  525. package/postprocessing/RenderPass.cjs.js +1 -0
  526. package/postprocessing/RenderPass.js +36 -13
  527. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  528. package/postprocessing/RenderPixelatedPass.js +58 -44
  529. package/postprocessing/SAOPass.cjs.js +1 -0
  530. package/postprocessing/SAOPass.js +189 -154
  531. package/postprocessing/SMAAPass.cjs.js +1 -0
  532. package/postprocessing/SMAAPass.js +84 -64
  533. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  534. package/postprocessing/SSAARenderPass.js +69 -121
  535. package/postprocessing/SSAOPass.cjs.js +1 -0
  536. package/postprocessing/SSAOPass.js +172 -123
  537. package/postprocessing/SSRPass.cjs.js +1 -0
  538. package/postprocessing/SSRPass.js +280 -211
  539. package/postprocessing/SavePass.cjs.js +1 -0
  540. package/postprocessing/SavePass.js +25 -20
  541. package/postprocessing/ShaderPass.cjs.js +1 -0
  542. package/postprocessing/ShaderPass.js +30 -14
  543. package/postprocessing/TAARenderPass.cjs.js +1 -0
  544. package/postprocessing/TAARenderPass.js +61 -42
  545. package/postprocessing/TexturePass.cjs.js +1 -0
  546. package/postprocessing/TexturePass.js +22 -21
  547. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  548. package/postprocessing/UnrealBloomPass.js +213 -105
  549. package/renderers/CSS2DRenderer.cjs.js +1 -0
  550. package/renderers/CSS2DRenderer.js +56 -44
  551. package/renderers/CSS3DRenderer.cjs.js +1 -0
  552. package/renderers/CSS3DRenderer.js +86 -53
  553. package/renderers/Projector.cjs.js +1 -0
  554. package/renderers/Projector.js +274 -107
  555. package/renderers/SVGRenderer.cjs.js +1 -0
  556. package/renderers/SVGRenderer.js +182 -72
  557. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  558. package/renderers/nodes/accessors/CameraNode.js +40 -29
  559. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  560. package/renderers/nodes/accessors/ModelNode.js +37 -28
  561. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  563. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  564. package/renderers/nodes/accessors/NormalNode.js +45 -35
  565. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  566. package/renderers/nodes/accessors/PositionNode.js +19 -18
  567. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  568. package/renderers/nodes/accessors/UVNode.js +10 -5
  569. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  570. package/renderers/nodes/core/AttributeNode.js +14 -5
  571. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  572. package/renderers/nodes/core/InputNode.js +14 -4
  573. package/renderers/nodes/core/Node.cjs.js +1 -0
  574. package/renderers/nodes/core/Node.js +17 -7
  575. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  576. package/renderers/nodes/core/NodeAttribute.js +6 -3
  577. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  578. package/renderers/nodes/core/NodeBuilder.js +154 -87
  579. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  580. package/renderers/nodes/core/NodeFrame.js +12 -9
  581. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  582. package/renderers/nodes/core/NodeSlot.js +3 -2
  583. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  584. package/renderers/nodes/core/NodeUniform.js +9 -4
  585. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  586. package/renderers/nodes/core/NodeVary.js +7 -4
  587. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  588. package/renderers/nodes/core/VaryNode.js +12 -6
  589. package/renderers/nodes/core/constants.cjs.js +1 -0
  590. package/renderers/nodes/core/constants.js +13 -16
  591. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  592. package/renderers/nodes/inputs/ColorNode.js +11 -5
  593. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  594. package/renderers/nodes/inputs/FloatNode.js +11 -5
  595. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  596. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  597. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  598. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  599. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  600. package/renderers/nodes/inputs/TextureNode.js +15 -7
  601. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  602. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  603. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  604. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  605. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  606. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  607. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  608. package/renderers/nodes/math/MathNode.js +30 -20
  609. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  610. package/renderers/nodes/math/OperatorNode.js +20 -4
  611. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  612. package/renderers/nodes/utils/SwitchNode.js +9 -4
  613. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  614. package/renderers/nodes/utils/TimerNode.js +10 -5
  615. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  616. package/renderers/webgpu/WebGPU.js +16 -14
  617. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  618. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  619. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  620. package/renderers/webgpu/WebGPUBackground.js +30 -13
  621. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  622. package/renderers/webgpu/WebGPUBinding.js +7 -4
  623. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  624. package/renderers/webgpu/WebGPUBindings.js +57 -21
  625. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  626. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  627. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  628. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  629. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  630. package/renderers/webgpu/WebGPUInfo.js +8 -3
  631. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  632. package/renderers/webgpu/WebGPUObjects.js +10 -5
  633. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  634. package/renderers/webgpu/WebGPUProperties.js +11 -5
  635. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  636. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  637. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  638. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  639. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  640. package/renderers/webgpu/WebGPURenderer.js +262 -124
  641. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  642. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  643. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  644. package/renderers/webgpu/WebGPUSampler.js +12 -7
  645. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  646. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  647. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  648. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  649. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  650. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  651. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  652. package/renderers/webgpu/WebGPUTextures.js +333 -186
  653. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  654. package/renderers/webgpu/WebGPUUniform.js +51 -25
  655. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  656. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  657. package/renderers/webgpu/constants.cjs.js +1 -0
  658. package/renderers/webgpu/constants.js +181 -190
  659. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  660. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  661. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  663. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  665. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  667. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  668. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  669. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  670. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  671. package/shaders/AfterimageShader.cjs.js +1 -0
  672. package/shaders/AfterimageShader.js +18 -28
  673. package/shaders/BasicShader.cjs.js +1 -0
  674. package/shaders/BasicShader.js +7 -9
  675. package/shaders/BleachBypassShader.cjs.js +1 -0
  676. package/shaders/BleachBypassShader.js +15 -31
  677. package/shaders/BlendShader.cjs.js +1 -0
  678. package/shaders/BlendShader.js +19 -26
  679. package/shaders/BokehShader.cjs.js +1 -0
  680. package/shaders/BokehShader.js +36 -98
  681. package/shaders/BokehShader2.cjs.js +1 -0
  682. package/shaders/BokehShader2.js +90 -261
  683. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  684. package/shaders/BrightnessContrastShader.js +19 -28
  685. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  686. package/shaders/ColorCorrectionShader.js +22 -26
  687. package/shaders/ColorifyShader.cjs.js +1 -0
  688. package/shaders/ColorifyShader.js +16 -24
  689. package/shaders/ConvolutionShader.cjs.js +1 -0
  690. package/shaders/ConvolutionShader.js +36 -40
  691. package/shaders/CopyShader.cjs.js +1 -0
  692. package/shaders/CopyShader.js +13 -21
  693. package/shaders/DOFMipMapShader.cjs.js +1 -0
  694. package/shaders/DOFMipMapShader.js +21 -28
  695. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  696. package/shaders/DepthLimitedBlurShader.js +40 -85
  697. package/shaders/DigitalGlitch.cjs.js +1 -0
  698. package/shaders/DigitalGlitch.js +46 -74
  699. package/shaders/DotScreenShader.cjs.js +1 -0
  700. package/shaders/DotScreenShader.js +27 -35
  701. package/shaders/FXAAShader.cjs.js +1 -0
  702. package/shaders/FXAAShader.js +19 -1094
  703. package/shaders/FilmShader.cjs.js +1 -0
  704. package/shaders/FilmShader.js +52 -38
  705. package/shaders/FocusShader.cjs.js +1 -0
  706. package/shaders/FocusShader.js +24 -51
  707. package/shaders/FreiChenShader.cjs.js +1 -0
  708. package/shaders/FreiChenShader.js +24 -57
  709. package/shaders/FresnelShader.cjs.js +1 -0
  710. package/shaders/FresnelShader.js +22 -43
  711. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  712. package/shaders/GammaCorrectionShader.js +11 -19
  713. package/shaders/GodRaysShader.cjs.js +1 -0
  714. package/shaders/GodRaysShader.js +94 -103
  715. package/shaders/HalftoneShader.cjs.js +1 -0
  716. package/shaders/HalftoneShader.js +65 -208
  717. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  718. package/shaders/HorizontalBlurShader.js +23 -7
  719. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  720. package/shaders/HorizontalTiltShiftShader.js +21 -33
  721. package/shaders/HueSaturationShader.cjs.js +1 -0
  722. package/shaders/HueSaturationShader.js +21 -37
  723. package/shaders/KaleidoShader.cjs.js +1 -0
  724. package/shaders/KaleidoShader.js +22 -30
  725. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  726. package/shaders/LuminosityHighPassShader.js +27 -33
  727. package/shaders/LuminosityShader.cjs.js +1 -0
  728. package/shaders/LuminosityShader.js +11 -21
  729. package/shaders/MirrorShader.cjs.js +1 -0
  730. package/shaders/MirrorShader.js +16 -31
  731. package/shaders/NormalMapShader.cjs.js +1 -0
  732. package/shaders/NormalMapShader.js +23 -27
  733. package/shaders/ParallaxShader.cjs.js +1 -0
  734. package/shaders/ParallaxShader.js +48 -107
  735. package/shaders/PixelShader.cjs.js +1 -0
  736. package/shaders/PixelShader.js +16 -24
  737. package/shaders/RGBShiftShader.cjs.js +1 -0
  738. package/shaders/RGBShiftShader.js +22 -26
  739. package/shaders/SAOShader.cjs.js +1 -0
  740. package/shaders/SAOShader.js +48 -132
  741. package/shaders/SMAAShader.cjs.js +1 -0
  742. package/shaders/SMAAShader.js +135 -256
  743. package/shaders/SSAOShader.cjs.js +1 -0
  744. package/shaders/SSAOShader.js +81 -153
  745. package/shaders/SSRShader.cjs.js +1 -0
  746. package/shaders/SSRShader.js +87 -32
  747. package/shaders/SepiaShader.cjs.js +1 -0
  748. package/shaders/SepiaShader.js +15 -25
  749. package/shaders/SobelOperatorShader.cjs.js +1 -0
  750. package/shaders/SobelOperatorShader.js +29 -40
  751. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  752. package/shaders/SubsurfaceScatteringShader.js +39 -53
  753. package/shaders/TechnicolorShader.cjs.js +1 -0
  754. package/shaders/TechnicolorShader.js +13 -20
  755. package/shaders/ToneMapShader.cjs.js +1 -0
  756. package/shaders/ToneMapShader.js +28 -44
  757. package/shaders/ToonShader.cjs.js +1 -0
  758. package/shaders/ToonShader.js +96 -172
  759. package/shaders/TriangleBlurShader.cjs.js +1 -0
  760. package/shaders/TriangleBlurShader.js +23 -32
  761. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  762. package/shaders/UnpackDepthRGBAShader.js +14 -22
  763. package/shaders/VerticalBlurShader.cjs.js +1 -0
  764. package/shaders/VerticalBlurShader.js +23 -7
  765. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  766. package/shaders/VerticalTiltShiftShader.js +21 -33
  767. package/shaders/VignetteShader.cjs.js +1 -0
  768. package/shaders/VignetteShader.js +28 -24
  769. package/shaders/VolumeShader.cjs.js +1 -0
  770. package/shaders/VolumeShader.js +77 -174
  771. package/shaders/WaterRefractionShader.cjs.js +1 -0
  772. package/shaders/WaterRefractionShader.js +6 -38
  773. package/shaders/types.cjs.js +1 -0
  774. package/shaders/types.js +1 -1
  775. package/textures/FlakesTexture.cjs.js +1 -0
  776. package/textures/FlakesTexture.js +10 -8
  777. package/types/helpers.cjs.js +1 -0
  778. package/types/helpers.js +2 -3
  779. package/types/shared.cjs.js +1 -0
  780. package/types/shared.js +1 -0
  781. package/types/utils.cjs.js +1 -0
  782. package/types/utils.js +1 -0
  783. package/utils/BufferGeometryUtils.cjs.js +1 -0
  784. package/utils/BufferGeometryUtils.js +325 -251
  785. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  786. package/utils/GeometryCompressionUtils.js +239 -241
  787. package/utils/GeometryUtils.cjs.js +1 -0
  788. package/utils/GeometryUtils.js +94 -41
  789. package/utils/LDrawUtils.cjs.js +1 -0
  790. package/utils/LDrawUtils.d.ts +5 -0
  791. package/utils/LDrawUtils.js +144 -0
  792. package/utils/RoughnessMipmapper.cjs.js +1 -0
  793. package/utils/RoughnessMipmapper.js +82 -38
  794. package/utils/SceneUtils.cjs.js +1 -0
  795. package/utils/SceneUtils.js +20 -15
  796. package/utils/ShadowMapViewer.cjs.js +1 -0
  797. package/utils/ShadowMapViewer.js +95 -49
  798. package/utils/SkeletonUtils.cjs.js +1 -0
  799. package/utils/SkeletonUtils.js +165 -74
  800. package/utils/UVsDebug.cjs.js +1 -0
  801. package/utils/UVsDebug.js +62 -32
  802. package/utils/WorkerPool.cjs.js +1 -0
  803. package/utils/WorkerPool.js +33 -13
  804. package/webxr/ARButton.cjs.js +1 -0
  805. package/webxr/ARButton.js +98 -72
  806. package/webxr/OculusHandModel.cjs.js +1 -0
  807. package/webxr/OculusHandModel.js +37 -18
  808. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  809. package/webxr/OculusHandPointerModel.js +80 -58
  810. package/webxr/Text2D.cjs.js +1 -0
  811. package/webxr/Text2D.js +19 -37
  812. package/webxr/VRButton.cjs.js +1 -0
  813. package/webxr/VRButton.js +90 -59
  814. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  815. package/webxr/XRControllerModelFactory.js +116 -58
  816. package/webxr/XREstimatedLight.cjs.js +1 -0
  817. package/webxr/XREstimatedLight.js +66 -39
  818. package/webxr/XRHandMeshModel.cjs.js +1 -0
  819. package/webxr/XRHandMeshModel.js +29 -40
  820. package/webxr/XRHandModelFactory.cjs.js +1 -0
  821. package/webxr/XRHandModelFactory.js +31 -28
  822. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  823. package/webxr/XRHandPrimitiveModel.js +27 -41
  824. package/animation/AnimationClipCreator.mjs +0 -57
  825. package/animation/CCDIKSolver.mjs +0 -234
  826. package/animation/MMDAnimationHelper.mjs +0 -514
  827. package/animation/MMDPhysics.mjs +0 -769
  828. package/cameras/CinematicCamera.mjs +0 -129
  829. package/controls/ArcballControls.mjs +0 -1737
  830. package/controls/DeviceOrientationControls.mjs +0 -74
  831. package/controls/DragControls.mjs +0 -172
  832. package/controls/FirstPersonControls.mjs +0 -220
  833. package/controls/FlyControls.mjs +0 -239
  834. package/controls/OrbitControls.mjs +0 -731
  835. package/controls/PointerLockControls.mjs +0 -88
  836. package/controls/TrackballControls.mjs +0 -481
  837. package/controls/TransformControls.mjs +0 -1068
  838. package/controls/experimental/CameraControls.mjs +0 -673
  839. package/csm/CSM.mjs +0 -244
  840. package/csm/CSMFrustum.mjs +0 -75
  841. package/csm/CSMHelper.mjs +0 -114
  842. package/csm/CSMShader.mjs +0 -251
  843. package/curves/CurveExtras.mjs +0 -224
  844. package/curves/NURBSCurve.mjs +0 -35
  845. package/curves/NURBSSurface.mjs +0 -28
  846. package/curves/NURBSUtils.mjs +0 -226
  847. package/deprecated/Geometry.mjs +0 -966
  848. package/effects/AnaglyphEffect.mjs +0 -120
  849. package/effects/AsciiEffect.mjs +0 -173
  850. package/effects/OutlineEffect.mjs +0 -295
  851. package/effects/ParallaxBarrierEffect.mjs +0 -64
  852. package/effects/PeppersGhostEffect.mjs +0 -85
  853. package/effects/StereoEffect.mjs +0 -32
  854. package/environments/RoomEnvironment.mjs +0 -78
  855. package/exporters/ColladaExporter.mjs +0 -299
  856. package/exporters/DRACOExporter.mjs +0 -132
  857. package/exporters/GLTFExporter.mjs +0 -1381
  858. package/exporters/MMDExporter.mjs +0 -102
  859. package/exporters/OBJExporter.mjs +0 -166
  860. package/exporters/PLYExporter.mjs +0 -278
  861. package/exporters/STLExporter.mjs +0 -129
  862. package/exporters/USDZExporter.mjs +0 -328
  863. package/geometries/BoxLineGeometry.mjs +0 -45
  864. package/geometries/ConvexGeometry.mjs +0 -29
  865. package/geometries/DecalGeometry.mjs +0 -184
  866. package/geometries/LightningStrike.mjs +0 -547
  867. package/geometries/ParametricGeometries.mjs +0 -129
  868. package/geometries/ParametricGeometry.mjs +0 -63
  869. package/geometries/RoundedBoxGeometry.mjs +0 -91
  870. package/geometries/TeapotGeometry.mjs +0 -1557
  871. package/geometries/TextGeometry.mjs +0 -23
  872. package/helpers/LightProbeHelper.mjs +0 -72
  873. package/helpers/PositionalAudioHelper.mjs +0 -68
  874. package/helpers/RectAreaLightHelper.mjs +0 -44
  875. package/helpers/VertexNormalsHelper.mjs +0 -54
  876. package/helpers/VertexTangentsHelper.mjs +0 -45
  877. package/index.mjs +0 -968
  878. package/interactive/SelectionBox.mjs +0 -137
  879. package/interactive/SelectionHelper.mjs +0 -54
  880. package/libs/MeshoptDecoder.mjs +0 -210
  881. package/libs/MotionControllers.mjs +0 -261
  882. package/lights/LightProbeGenerator.mjs +0 -145
  883. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  884. package/lines/Line2.mjs +0 -13
  885. package/lines/LineGeometry.mjs +0 -44
  886. package/lines/LineMaterial.mjs +0 -539
  887. package/lines/LineSegments2.mjs +0 -202
  888. package/lines/LineSegmentsGeometry.mjs +0 -124
  889. package/lines/Wireframe.mjs +0 -31
  890. package/lines/WireframeGeometry2.mjs +0 -13
  891. package/loaders/3DMLoader.mjs +0 -802
  892. package/loaders/3MFLoader.mjs +0 -837
  893. package/loaders/AMFLoader.mjs +0 -284
  894. package/loaders/AssimpLoader.mjs +0 -1396
  895. package/loaders/BVHLoader.mjs +0 -207
  896. package/loaders/BasisTextureLoader.mjs +0 -474
  897. package/loaders/ColladaLoader.mjs +0 -2403
  898. package/loaders/DDSLoader.mjs +0 -148
  899. package/loaders/DRACOLoader.mjs +0 -340
  900. package/loaders/EXRLoader.mjs +0 -1351
  901. package/loaders/FBXLoader.mjs +0 -2362
  902. package/loaders/FontLoader.mjs +0 -111
  903. package/loaders/GCodeLoader.mjs +0 -141
  904. package/loaders/GLTFLoader.mjs +0 -2316
  905. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  906. package/loaders/KMZLoader.mjs +0 -75
  907. package/loaders/KTX2Loader.mjs +0 -427
  908. package/loaders/KTXLoader.mjs +0 -87
  909. package/loaders/LDrawLoader.mjs +0 -1409
  910. package/loaders/LUT3dlLoader.mjs +0 -100
  911. package/loaders/LUTCubeLoader.mjs +0 -104
  912. package/loaders/LWOLoader.mjs +0 -625
  913. package/loaders/LottieLoader.mjs +0 -47
  914. package/loaders/MD2Loader.mjs +0 -359
  915. package/loaders/MDDLoader.mjs +0 -58
  916. package/loaders/MMDLoader.mjs +0 -998
  917. package/loaders/MTLLoader.mjs +0 -280
  918. package/loaders/NRRDLoader.mjs +0 -401
  919. package/loaders/NodeMaterialLoader.mjs +0 -146
  920. package/loaders/OBJLoader.mjs +0 -487
  921. package/loaders/PCDLoader.mjs +0 -248
  922. package/loaders/PDBLoader.mjs +0 -246
  923. package/loaders/PLYLoader.mjs +0 -317
  924. package/loaders/PRWMLoader.mjs +0 -160
  925. package/loaders/PVRLoader.mjs +0 -131
  926. package/loaders/RGBELoader.mjs +0 -244
  927. package/loaders/RGBMLoader.mjs +0 -998
  928. package/loaders/STLLoader.mjs +0 -190
  929. package/loaders/SVGLoader.mjs +0 -1709
  930. package/loaders/TDSLoader.mjs +0 -480
  931. package/loaders/TGALoader.mjs +0 -285
  932. package/loaders/TTFLoader.mjs +0 -131
  933. package/loaders/TiltLoader.mjs +0 -373
  934. package/loaders/VOXLoader.mjs +0 -431
  935. package/loaders/VRMLLoader.mjs +0 -2093
  936. package/loaders/VRMLoader.mjs +0 -38
  937. package/loaders/VTKLoader.mjs +0 -646
  938. package/loaders/XLoader.mjs +0 -1258
  939. package/loaders/XYZLoader.mjs +0 -60
  940. package/loaders/lwo/IFFParser.mjs +0 -697
  941. package/loaders/lwo/LWO2Parser.mjs +0 -327
  942. package/loaders/lwo/LWO3Parser.mjs +0 -298
  943. package/math/Capsule.mjs +0 -100
  944. package/math/ColorConverter.mjs +0 -51
  945. package/math/ConvexHull.mjs +0 -574
  946. package/math/ImprovedNoise.mjs +0 -302
  947. package/math/Lut.mjs +0 -135
  948. package/math/MeshSurfaceSampler.mjs +0 -107
  949. package/math/OBB.mjs +0 -235
  950. package/math/Octree.mjs +0 -278
  951. package/math/SimplexNoise.mjs +0 -425
  952. package/misc/ConvexObjectBreaker.mjs +0 -292
  953. package/misc/GPUComputationRenderer.mjs +0 -171
  954. package/misc/Gyroscope.mjs +0 -35
  955. package/misc/MD2Character.mjs +0 -162
  956. package/misc/MD2CharacterComplex.mjs +0 -328
  957. package/misc/MorphAnimMesh.mjs +0 -40
  958. package/misc/MorphBlendMesh.mjs +0 -179
  959. package/misc/ProgressiveLightmap.mjs +0 -166
  960. package/misc/RollerCoaster.mjs +0 -346
  961. package/misc/TubePainter.mjs +0 -123
  962. package/misc/Volume.mjs +0 -244
  963. package/misc/VolumeSlice.mjs +0 -106
  964. package/misc/WebGL.mjs +0 -74
  965. package/modifiers/CurveModifier.mjs +0 -182
  966. package/modifiers/EdgeSplitModifier.mjs +0 -162
  967. package/modifiers/SimplifyModifier.mjs +0 -282
  968. package/modifiers/TessellateModifier.mjs +0 -206
  969. package/nodes/Nodes.mjs +0 -400
  970. package/nodes/ShaderNode.mjs +0 -408
  971. package/nodes/accessors/BufferNode.mjs +0 -15
  972. package/nodes/accessors/CameraNode.mjs +0 -44
  973. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  974. package/nodes/accessors/MaterialNode.mjs +0 -71
  975. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  976. package/nodes/accessors/ModelNode.mjs +0 -9
  977. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  978. package/nodes/accessors/NormalNode.mjs +0 -62
  979. package/nodes/accessors/Object3DNode.mjs +0 -76
  980. package/nodes/accessors/PointUVNode.mjs +0 -13
  981. package/nodes/accessors/PositionNode.mjs +0 -65
  982. package/nodes/accessors/ReferenceNode.mjs +0 -37
  983. package/nodes/accessors/ReflectNode.mjs +0 -43
  984. package/nodes/accessors/SkinningNode.mjs +0 -58
  985. package/nodes/accessors/TextureNode.mjs +0 -54
  986. package/nodes/accessors/UVNode.mjs +0 -23
  987. package/nodes/core/ArrayUniformNode.mjs +0 -14
  988. package/nodes/core/AttributeNode.mjs +0 -30
  989. package/nodes/core/BypassNode.mjs +0 -22
  990. package/nodes/core/CodeNode.mjs +0 -28
  991. package/nodes/core/ConstNode.mjs +0 -14
  992. package/nodes/core/ContextNode.mjs +0 -22
  993. package/nodes/core/ExpressionNode.mjs +0 -19
  994. package/nodes/core/FunctionCallNode.mjs +0 -37
  995. package/nodes/core/FunctionNode.mjs +0 -56
  996. package/nodes/core/InputNode.mjs +0 -38
  997. package/nodes/core/Node.mjs +0 -139
  998. package/nodes/core/NodeAttribute.mjs +0 -10
  999. package/nodes/core/NodeBuilder.mjs +0 -395
  1000. package/nodes/core/NodeCode.mjs +0 -11
  1001. package/nodes/core/NodeFrame.mjs +0 -35
  1002. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1003. package/nodes/core/NodeKeywords.mjs +0 -44
  1004. package/nodes/core/NodeUniform.mjs +0 -18
  1005. package/nodes/core/NodeUtils.mjs +0 -57
  1006. package/nodes/core/NodeVar.mjs +0 -10
  1007. package/nodes/core/NodeVary.mjs +0 -10
  1008. package/nodes/core/PropertyNode.mjs +0 -21
  1009. package/nodes/core/TempNode.mjs +0 -25
  1010. package/nodes/core/UniformNode.mjs +0 -23
  1011. package/nodes/core/VarNode.mjs +0 -31
  1012. package/nodes/core/VaryNode.mjs +0 -30
  1013. package/nodes/core/constants.mjs +0 -24
  1014. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1015. package/nodes/display/NormalMapNode.mjs +0 -54
  1016. package/nodes/fog/FogNode.mjs +0 -15
  1017. package/nodes/fog/FogRangeNode.mjs +0 -17
  1018. package/nodes/functions/BSDFs.mjs +0 -64
  1019. package/nodes/lights/LightContextNode.mjs +0 -35
  1020. package/nodes/lights/LightNode.mjs +0 -58
  1021. package/nodes/lights/LightsNode.mjs +0 -59
  1022. package/nodes/loaders/NodeLoader.mjs +0 -66
  1023. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1024. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1025. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1026. package/nodes/materials/Materials.mjs +0 -28
  1027. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1028. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1029. package/nodes/materials/NodeMaterial.mjs +0 -64
  1030. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1031. package/nodes/math/CondNode.mjs +0 -38
  1032. package/nodes/math/MathNode.mjs +0 -163
  1033. package/nodes/math/OperatorNode.mjs +0 -103
  1034. package/nodes/procedural/CheckerNode.mjs +0 -21
  1035. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1036. package/nodes/utils/ConvertNode.mjs +0 -25
  1037. package/nodes/utils/JoinNode.mjs +0 -26
  1038. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1039. package/nodes/utils/OscNode.mjs +0 -50
  1040. package/nodes/utils/SplitNode.mjs +0 -45
  1041. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1042. package/nodes/utils/TimerNode.mjs +0 -44
  1043. package/objects/GroundProjectedEnv.mjs +0 -130
  1044. package/objects/Lensflare.mjs +0 -262
  1045. package/objects/LightningStorm.mjs +0 -110
  1046. package/objects/MarchingCubes.mjs +0 -457
  1047. package/objects/Reflector.mjs +0 -166
  1048. package/objects/ReflectorForSSRPass.mjs +0 -247
  1049. package/objects/ReflectorRTT.mjs +0 -10
  1050. package/objects/Refractor.mjs +0 -178
  1051. package/objects/ShadowMesh.mjs +0 -41
  1052. package/objects/Sky.mjs +0 -124
  1053. package/objects/Water.mjs +0 -235
  1054. package/objects/Water2.mjs +0 -252
  1055. package/offscreen/jank.mjs +0 -27
  1056. package/offscreen/offscreen.mjs +0 -5
  1057. package/offscreen/scene.mjs +0 -52
  1058. package/physics/AmmoPhysics.mjs +0 -165
  1059. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1060. package/postprocessing/AfterimagePass.mjs +0 -55
  1061. package/postprocessing/BloomPass.mjs +0 -90
  1062. package/postprocessing/BokehPass.mjs +0 -76
  1063. package/postprocessing/ClearPass.mjs +0 -27
  1064. package/postprocessing/CubeTexturePass.mjs +0 -49
  1065. package/postprocessing/DotScreenPass.mjs +0 -40
  1066. package/postprocessing/EffectComposer.mjs +0 -139
  1067. package/postprocessing/FilmPass.mjs +0 -42
  1068. package/postprocessing/GlitchPass.mjs +0 -75
  1069. package/postprocessing/HalftonePass.mjs +0 -44
  1070. package/postprocessing/LUTPass.mjs +0 -136
  1071. package/postprocessing/MaskPass.mjs +0 -60
  1072. package/postprocessing/OutlinePass.mjs +0 -438
  1073. package/postprocessing/Pass.mjs +0 -37
  1074. package/postprocessing/RenderPass.mjs +0 -48
  1075. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1076. package/postprocessing/SAOPass.mjs +0 -282
  1077. package/postprocessing/SMAAPass.mjs +0 -112
  1078. package/postprocessing/SSAARenderPass.mjs +0 -170
  1079. package/postprocessing/SSAOPass.mjs +0 -265
  1080. package/postprocessing/SSRPass.mjs +0 -432
  1081. package/postprocessing/SavePass.mjs +0 -37
  1082. package/postprocessing/ShaderPass.mjs +0 -39
  1083. package/postprocessing/TAARenderPass.mjs +0 -88
  1084. package/postprocessing/TexturePass.mjs +0 -39
  1085. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1086. package/renderers/CSS2DRenderer.mjs +0 -112
  1087. package/renderers/CSS3DRenderer.mjs +0 -133
  1088. package/renderers/Projector.mjs +0 -511
  1089. package/renderers/SVGRenderer.mjs +0 -306
  1090. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1091. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1092. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1093. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1094. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1095. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1096. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1097. package/renderers/nodes/core/InputNode.mjs +0 -31
  1098. package/renderers/nodes/core/Node.mjs +0 -34
  1099. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1100. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1101. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1102. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1103. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1104. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1105. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1106. package/renderers/nodes/core/constants.mjs +0 -22
  1107. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1108. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1110. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1112. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1113. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1114. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1115. package/renderers/nodes/math/MathNode.mjs +0 -55
  1116. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1117. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1118. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1119. package/renderers/webgpu/WebGPU.mjs +0 -24
  1120. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1121. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1122. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1123. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1124. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1125. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1126. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1127. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1128. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1129. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1130. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1131. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1132. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1133. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1134. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1136. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1137. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1138. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1139. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1140. package/renderers/webgpu/constants.mjs +0 -230
  1141. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1142. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1143. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1145. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1146. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1147. package/shaders/AfterimageShader.mjs +0 -32
  1148. package/shaders/BasicShader.mjs +0 -12
  1149. package/shaders/BleachBypassShader.mjs +0 -35
  1150. package/shaders/BlendShader.mjs +0 -30
  1151. package/shaders/BokehShader.mjs +0 -106
  1152. package/shaders/BokehShader2.mjs +0 -269
  1153. package/shaders/BrightnessContrastShader.mjs +0 -32
  1154. package/shaders/ColorCorrectionShader.mjs +0 -30
  1155. package/shaders/ColorifyShader.mjs +0 -28
  1156. package/shaders/ConvolutionShader.mjs +0 -55
  1157. package/shaders/CopyShader.mjs +0 -25
  1158. package/shaders/DOFMipMapShader.mjs +0 -32
  1159. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1160. package/shaders/DigitalGlitch.mjs +0 -78
  1161. package/shaders/DotScreenShader.mjs +0 -39
  1162. package/shaders/FXAAShader.mjs +0 -1098
  1163. package/shaders/FilmShader.mjs +0 -42
  1164. package/shaders/FocusShader.mjs +0 -55
  1165. package/shaders/FreiChenShader.mjs +0 -61
  1166. package/shaders/FresnelShader.mjs +0 -47
  1167. package/shaders/GammaCorrectionShader.mjs +0 -23
  1168. package/shaders/GodRaysShader.mjs +0 -146
  1169. package/shaders/HalftoneShader.mjs +0 -212
  1170. package/shaders/HorizontalBlurShader.mjs +0 -43
  1171. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1172. package/shaders/HueSaturationShader.mjs +0 -41
  1173. package/shaders/KaleidoShader.mjs +0 -34
  1174. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1175. package/shaders/LuminosityShader.mjs +0 -25
  1176. package/shaders/MirrorShader.mjs +0 -35
  1177. package/shaders/NormalMapShader.mjs +0 -31
  1178. package/shaders/ParallaxShader.mjs +0 -113
  1179. package/shaders/PixelShader.mjs +0 -28
  1180. package/shaders/RGBShiftShader.mjs +0 -30
  1181. package/shaders/SAOShader.mjs +0 -144
  1182. package/shaders/SMAAShader.mjs +0 -272
  1183. package/shaders/SSAOShader.mjs +0 -172
  1184. package/shaders/SSRShader.mjs +0 -324
  1185. package/shaders/SepiaShader.mjs +0 -29
  1186. package/shaders/SobelOperatorShader.mjs +0 -44
  1187. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1188. package/shaders/TechnicolorShader.mjs +0 -24
  1189. package/shaders/ToneMapShader.mjs +0 -48
  1190. package/shaders/ToonShader.mjs +0 -188
  1191. package/shaders/TriangleBlurShader.mjs +0 -36
  1192. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1193. package/shaders/VerticalBlurShader.mjs +0 -44
  1194. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1195. package/shaders/VignetteShader.mjs +0 -28
  1196. package/shaders/VolumeShader.mjs +0 -178
  1197. package/shaders/WaterRefractionShader.mjs +0 -57
  1198. package/textures/FlakesTexture.mjs +0 -30
  1199. package/types/helpers.mjs +0 -4
  1200. package/utils/BufferGeometryUtils.mjs +0 -570
  1201. package/utils/GeometryCompressionUtils.mjs +0 -547
  1202. package/utils/GeometryUtils.mjs +0 -108
  1203. package/utils/RoughnessMipmapper.mjs +0 -213
  1204. package/utils/SceneUtils.mjs +0 -36
  1205. package/utils/ShadowMapViewer.mjs +0 -114
  1206. package/utils/SkeletonUtils.mjs +0 -292
  1207. package/utils/UVsDebug.mjs +0 -85
  1208. package/utils/WorkerPool.mjs +0 -62
  1209. package/webxr/ARButton.mjs +0 -119
  1210. package/webxr/OculusHandModel.mjs +0 -71
  1211. package/webxr/OculusHandPointerModel.mjs +0 -207
  1212. package/webxr/Text2D.mjs +0 -31
  1213. package/webxr/VRButton.mjs +0 -105
  1214. package/webxr/XRControllerModelFactory.mjs +0 -146
  1215. package/webxr/XREstimatedLight.mjs +0 -126
  1216. package/webxr/XRHandMeshModel.mjs +0 -73
  1217. package/webxr/XRHandModelFactory.mjs +0 -61
  1218. 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 };