three-stdlib 2.16.0 → 2.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1219) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +143 -64
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,16 +1,18 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- const _m1 = new THREE.Matrix4();
5
- const _obj = new THREE.Object3D();
6
- const _offset = new THREE.Vector3();
7
- class Geometry extends THREE.EventDispatcher {
1
+ import { Matrix4, Object3D, Vector3, EventDispatcher, MathUtils, Matrix3, Color, Box3, Sphere, BufferGeometry, BufferAttribute, Float32BufferAttribute, Vector2 } from 'three';
2
+
3
+ const _m1 = new Matrix4();
4
+
5
+ const _obj = new Object3D();
6
+
7
+ const _offset = new Vector3();
8
+
9
+ class Geometry extends EventDispatcher {
8
10
  constructor() {
9
11
  super();
10
12
  this.isGeometry = true;
11
- this.uuid = THREE.MathUtils.generateUUID();
12
- this.name = "";
13
- this.type = "Geometry";
13
+ this.uuid = MathUtils.generateUUID();
14
+ this.name = '';
15
+ this.type = 'Geometry';
14
16
  this.vertices = [];
15
17
  this.colors = [];
16
18
  this.faces = [];
@@ -21,7 +23,8 @@ class Geometry extends THREE.EventDispatcher {
21
23
  this.skinIndices = [];
22
24
  this.lineDistances = [];
23
25
  this.boundingBox = null;
24
- this.boundingSphere = null;
26
+ this.boundingSphere = null; // update flags
27
+
25
28
  this.elementsNeedUpdate = false;
26
29
  this.verticesNeedUpdate = false;
27
30
  this.uvsNeedUpdate = false;
@@ -30,113 +33,136 @@ class Geometry extends THREE.EventDispatcher {
30
33
  this.lineDistancesNeedUpdate = false;
31
34
  this.groupsNeedUpdate = false;
32
35
  }
36
+
33
37
  applyMatrix4(matrix) {
34
- const normalMatrix = new THREE.Matrix3().getNormalMatrix(matrix);
38
+ const normalMatrix = new Matrix3().getNormalMatrix(matrix);
39
+
35
40
  for (let i = 0, il = this.vertices.length; i < il; i++) {
36
41
  const vertex = this.vertices[i];
37
42
  vertex.applyMatrix4(matrix);
38
43
  }
44
+
39
45
  for (let i = 0, il = this.faces.length; i < il; i++) {
40
46
  const face = this.faces[i];
41
47
  face.normal.applyMatrix3(normalMatrix).normalize();
48
+
42
49
  for (let j = 0, jl = face.vertexNormals.length; j < jl; j++) {
43
50
  face.vertexNormals[j].applyMatrix3(normalMatrix).normalize();
44
51
  }
45
52
  }
53
+
46
54
  if (this.boundingBox !== null) {
47
55
  this.computeBoundingBox();
48
56
  }
57
+
49
58
  if (this.boundingSphere !== null) {
50
59
  this.computeBoundingSphere();
51
60
  }
61
+
52
62
  this.verticesNeedUpdate = true;
53
63
  this.normalsNeedUpdate = true;
54
64
  return this;
55
65
  }
66
+
56
67
  rotateX(angle) {
68
+ // rotate geometry around world x-axis
57
69
  _m1.makeRotationX(angle);
70
+
58
71
  this.applyMatrix4(_m1);
59
72
  return this;
60
73
  }
74
+
61
75
  rotateY(angle) {
76
+ // rotate geometry around world y-axis
62
77
  _m1.makeRotationY(angle);
78
+
63
79
  this.applyMatrix4(_m1);
64
80
  return this;
65
81
  }
82
+
66
83
  rotateZ(angle) {
84
+ // rotate geometry around world z-axis
67
85
  _m1.makeRotationZ(angle);
86
+
68
87
  this.applyMatrix4(_m1);
69
88
  return this;
70
89
  }
90
+
71
91
  translate(x, y, z) {
92
+ // translate geometry
72
93
  _m1.makeTranslation(x, y, z);
94
+
73
95
  this.applyMatrix4(_m1);
74
96
  return this;
75
97
  }
98
+
76
99
  scale(x, y, z) {
100
+ // scale geometry
77
101
  _m1.makeScale(x, y, z);
102
+
78
103
  this.applyMatrix4(_m1);
79
104
  return this;
80
105
  }
106
+
81
107
  lookAt(vector) {
82
108
  _obj.lookAt(vector);
109
+
83
110
  _obj.updateMatrix();
111
+
84
112
  this.applyMatrix4(_obj.matrix);
85
113
  return this;
86
114
  }
115
+
87
116
  fromBufferGeometry(geometry) {
88
117
  const scope = this;
89
- const index = geometry.index !== null ? geometry.index : void 0;
118
+ const index = geometry.index !== null ? geometry.index : undefined;
90
119
  const attributes = geometry.attributes;
91
- if (attributes.position === void 0) {
92
- console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.");
120
+
121
+ if (attributes.position === undefined) {
122
+ console.error('THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.');
93
123
  return this;
94
124
  }
125
+
95
126
  const position = attributes.position;
96
127
  const normal = attributes.normal;
97
128
  const color = attributes.color;
98
129
  const uv = attributes.uv;
99
130
  const uv2 = attributes.uv2;
100
- if (uv2 !== void 0)
101
- this.faceVertexUvs[1] = [];
131
+ if (uv2 !== undefined) this.faceVertexUvs[1] = [];
132
+
102
133
  for (let i = 0; i < position.count; i++) {
103
- scope.vertices.push(new THREE.Vector3().fromBufferAttribute(position, i));
104
- if (color !== void 0) {
105
- scope.colors.push(new THREE.Color().fromBufferAttribute(color, i));
134
+ scope.vertices.push(new Vector3().fromBufferAttribute(position, i));
135
+
136
+ if (color !== undefined) {
137
+ scope.colors.push(new Color().fromBufferAttribute(color, i));
106
138
  }
107
139
  }
140
+
108
141
  function addFace(a, b, c, materialIndex) {
109
- const vertexColors = color === void 0 ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];
110
- const vertexNormals = normal === void 0 ? [] : [
111
- new THREE.Vector3().fromBufferAttribute(normal, a),
112
- new THREE.Vector3().fromBufferAttribute(normal, b),
113
- new THREE.Vector3().fromBufferAttribute(normal, c)
114
- ];
142
+ const vertexColors = color === undefined ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];
143
+ const vertexNormals = normal === undefined ? [] : [new Vector3().fromBufferAttribute(normal, a), new Vector3().fromBufferAttribute(normal, b), new Vector3().fromBufferAttribute(normal, c)];
115
144
  const face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);
116
145
  scope.faces.push(face);
117
- if (uv !== void 0) {
118
- scope.faceVertexUvs[0].push([
119
- new THREE.Vector2().fromBufferAttribute(uv, a),
120
- new THREE.Vector2().fromBufferAttribute(uv, b),
121
- new THREE.Vector2().fromBufferAttribute(uv, c)
122
- ]);
146
+
147
+ if (uv !== undefined) {
148
+ scope.faceVertexUvs[0].push([new Vector2().fromBufferAttribute(uv, a), new Vector2().fromBufferAttribute(uv, b), new Vector2().fromBufferAttribute(uv, c)]);
123
149
  }
124
- if (uv2 !== void 0) {
125
- scope.faceVertexUvs[1].push([
126
- new THREE.Vector2().fromBufferAttribute(uv2, a),
127
- new THREE.Vector2().fromBufferAttribute(uv2, b),
128
- new THREE.Vector2().fromBufferAttribute(uv2, c)
129
- ]);
150
+
151
+ if (uv2 !== undefined) {
152
+ scope.faceVertexUvs[1].push([new Vector2().fromBufferAttribute(uv2, a), new Vector2().fromBufferAttribute(uv2, b), new Vector2().fromBufferAttribute(uv2, c)]);
130
153
  }
131
154
  }
155
+
132
156
  const groups = geometry.groups;
157
+
133
158
  if (groups.length > 0) {
134
159
  for (let i = 0; i < groups.length; i++) {
135
160
  const group = groups[i];
136
161
  const start = group.start;
137
162
  const count = group.count;
163
+
138
164
  for (let j = start, jl = start + count; j < jl; j += 3) {
139
- if (index !== void 0) {
165
+ if (index !== undefined) {
140
166
  addFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex);
141
167
  } else {
142
168
  addFace(j, j + 1, j + 2, group.materialIndex);
@@ -144,7 +170,7 @@ class Geometry extends THREE.EventDispatcher {
144
170
  }
145
171
  }
146
172
  } else {
147
- if (index !== void 0) {
173
+ if (index !== undefined) {
148
174
  for (let i = 0; i < index.count; i += 3) {
149
175
  addFace(index.getX(i), index.getX(i + 1), index.getX(i + 2));
150
176
  }
@@ -154,33 +180,42 @@ class Geometry extends THREE.EventDispatcher {
154
180
  }
155
181
  }
156
182
  }
183
+
157
184
  this.computeFaceNormals();
185
+
158
186
  if (geometry.boundingBox !== null) {
159
187
  this.boundingBox = geometry.boundingBox.clone();
160
188
  }
189
+
161
190
  if (geometry.boundingSphere !== null) {
162
191
  this.boundingSphere = geometry.boundingSphere.clone();
163
192
  }
193
+
164
194
  return this;
165
195
  }
196
+
166
197
  center() {
167
198
  this.computeBoundingBox();
168
199
  this.boundingBox.getCenter(_offset).negate();
169
200
  this.translate(_offset.x, _offset.y, _offset.z);
170
201
  return this;
171
202
  }
203
+
172
204
  normalize() {
173
205
  this.computeBoundingSphere();
174
206
  const center = this.boundingSphere.center;
175
207
  const radius = this.boundingSphere.radius;
176
- const s = radius === 0 ? 1 : 1 / radius;
177
- const matrix = new THREE.Matrix4();
208
+ const s = radius === 0 ? 1 : 1.0 / radius;
209
+ const matrix = new Matrix4();
178
210
  matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);
179
211
  this.applyMatrix4(matrix);
180
212
  return this;
181
213
  }
214
+
182
215
  computeFaceNormals() {
183
- const cb = new THREE.Vector3(), ab = new THREE.Vector3();
216
+ const cb = new Vector3(),
217
+ ab = new Vector3();
218
+
184
219
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
185
220
  const face = this.faces[f];
186
221
  const vA = this.vertices[face.a];
@@ -193,13 +228,20 @@ class Geometry extends THREE.EventDispatcher {
193
228
  face.normal.copy(cb);
194
229
  }
195
230
  }
231
+
196
232
  computeVertexNormals(areaWeighted = true) {
197
233
  const vertices = new Array(this.vertices.length);
234
+
198
235
  for (let v = 0, vl = this.vertices.length; v < vl; v++) {
199
- vertices[v] = new THREE.Vector3();
236
+ vertices[v] = new Vector3();
200
237
  }
238
+
201
239
  if (areaWeighted) {
202
- const cb = new THREE.Vector3(), ab = new THREE.Vector3();
240
+ // vertex normals weighted by triangle areas
241
+ // http://www.iquilezles.org/www/articles/normals/normals.htm
242
+ const cb = new Vector3(),
243
+ ab = new Vector3();
244
+
203
245
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
204
246
  const face = this.faces[f];
205
247
  const vA = this.vertices[face.a];
@@ -214,6 +256,7 @@ class Geometry extends THREE.EventDispatcher {
214
256
  }
215
257
  } else {
216
258
  this.computeFaceNormals();
259
+
217
260
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
218
261
  const face = this.faces[f];
219
262
  vertices[face.a].add(face.normal);
@@ -221,12 +264,15 @@ class Geometry extends THREE.EventDispatcher {
221
264
  vertices[face.c].add(face.normal);
222
265
  }
223
266
  }
267
+
224
268
  for (let v = 0, vl = this.vertices.length; v < vl; v++) {
225
269
  vertices[v].normalize();
226
270
  }
271
+
227
272
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
228
273
  const face = this.faces[f];
229
274
  const vertexNormals = face.vertexNormals;
275
+
230
276
  if (vertexNormals.length === 3) {
231
277
  vertexNormals[0].copy(vertices[face.a]);
232
278
  vertexNormals[1].copy(vertices[face.b]);
@@ -237,15 +283,19 @@ class Geometry extends THREE.EventDispatcher {
237
283
  vertexNormals[2] = vertices[face.c].clone();
238
284
  }
239
285
  }
286
+
240
287
  if (this.faces.length > 0) {
241
288
  this.normalsNeedUpdate = true;
242
289
  }
243
290
  }
291
+
244
292
  computeFlatVertexNormals() {
245
293
  this.computeFaceNormals();
294
+
246
295
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
247
296
  const face = this.faces[f];
248
297
  const vertexNormals = face.vertexNormals;
298
+
249
299
  if (vertexNormals.length === 3) {
250
300
  vertexNormals[0].copy(face.normal);
251
301
  vertexNormals[1].copy(face.normal);
@@ -256,20 +306,27 @@ class Geometry extends THREE.EventDispatcher {
256
306
  vertexNormals[2] = face.normal.clone();
257
307
  }
258
308
  }
309
+
259
310
  if (this.faces.length > 0) {
260
311
  this.normalsNeedUpdate = true;
261
312
  }
262
313
  }
314
+
263
315
  computeMorphNormals() {
316
+ // save original normals
317
+ // - create temp variables on first access
318
+ // otherwise just copy (for faster repeated calls)
264
319
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
265
320
  const face = this.faces[f];
321
+
266
322
  if (!face.__originalFaceNormal) {
267
323
  face.__originalFaceNormal = face.normal.clone();
268
324
  } else {
269
325
  face.__originalFaceNormal.copy(face.normal);
270
326
  }
271
- if (!face.__originalVertexNormals)
272
- face.__originalVertexNormals = [];
327
+
328
+ if (!face.__originalVertexNormals) face.__originalVertexNormals = [];
329
+
273
330
  for (let i = 0, il = face.vertexNormals.length; i < il; i++) {
274
331
  if (!face.__originalVertexNormals[i]) {
275
332
  face.__originalVertexNormals[i] = face.vertexNormals[i].clone();
@@ -277,31 +334,40 @@ class Geometry extends THREE.EventDispatcher {
277
334
  face.__originalVertexNormals[i].copy(face.vertexNormals[i]);
278
335
  }
279
336
  }
280
- }
337
+ } // use temp geometry to compute face and vertex normals for each morph
338
+
339
+
281
340
  const tmpGeo = new Geometry();
282
341
  tmpGeo.faces = this.faces;
342
+
283
343
  for (let i = 0, il = this.morphTargets.length; i < il; i++) {
344
+ // create on first access
284
345
  if (!this.morphNormals[i]) {
285
346
  this.morphNormals[i] = {};
286
347
  this.morphNormals[i].faceNormals = [];
287
348
  this.morphNormals[i].vertexNormals = [];
288
349
  const dstNormalsFace = this.morphNormals[i].faceNormals;
289
350
  const dstNormalsVertex = this.morphNormals[i].vertexNormals;
351
+
290
352
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
291
- const faceNormal = new THREE.Vector3();
353
+ const faceNormal = new Vector3();
292
354
  const vertexNormals = {
293
- a: new THREE.Vector3(),
294
- b: new THREE.Vector3(),
295
- c: new THREE.Vector3()
355
+ a: new Vector3(),
356
+ b: new Vector3(),
357
+ c: new Vector3()
296
358
  };
297
359
  dstNormalsFace.push(faceNormal);
298
360
  dstNormalsVertex.push(vertexNormals);
299
361
  }
300
362
  }
301
- const morphNormals = this.morphNormals[i];
302
- tmpGeo.vertices = this.morphTargets[i].vertices;
363
+
364
+ const morphNormals = this.morphNormals[i]; // set vertices to morph target
365
+
366
+ tmpGeo.vertices = this.morphTargets[i].vertices; // compute morph normals
367
+
303
368
  tmpGeo.computeFaceNormals();
304
- tmpGeo.computeVertexNormals();
369
+ tmpGeo.computeVertexNormals(); // store morph normals
370
+
305
371
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
306
372
  const face = this.faces[f];
307
373
  const faceNormal = morphNormals.faceNormals[f];
@@ -311,113 +377,165 @@ class Geometry extends THREE.EventDispatcher {
311
377
  vertexNormals.b.copy(face.vertexNormals[1]);
312
378
  vertexNormals.c.copy(face.vertexNormals[2]);
313
379
  }
314
- }
380
+ } // restore original normals
381
+
382
+
315
383
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
316
384
  const face = this.faces[f];
317
385
  face.normal = face.__originalFaceNormal;
318
386
  face.vertexNormals = face.__originalVertexNormals;
319
387
  }
320
388
  }
389
+
321
390
  computeBoundingBox() {
322
391
  if (this.boundingBox === null) {
323
- this.boundingBox = new THREE.Box3();
392
+ this.boundingBox = new Box3();
324
393
  }
394
+
325
395
  this.boundingBox.setFromPoints(this.vertices);
326
396
  }
397
+
327
398
  computeBoundingSphere() {
328
399
  if (this.boundingSphere === null) {
329
- this.boundingSphere = new THREE.Sphere();
400
+ this.boundingSphere = new Sphere();
330
401
  }
402
+
331
403
  this.boundingSphere.setFromPoints(this.vertices);
332
404
  }
405
+
333
406
  merge(geometry, matrix, materialIndexOffset = 0) {
334
407
  if (!(geometry && geometry.isGeometry)) {
335
- console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", geometry);
408
+ console.error('THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry);
336
409
  return;
337
410
  }
411
+
338
412
  let normalMatrix;
339
- const vertexOffset = this.vertices.length, vertices1 = this.vertices, vertices2 = geometry.vertices, faces1 = this.faces, faces2 = geometry.faces, colors1 = this.colors, colors2 = geometry.colors;
340
- if (matrix !== void 0) {
341
- normalMatrix = new THREE.Matrix3().getNormalMatrix(matrix);
342
- }
413
+ const vertexOffset = this.vertices.length,
414
+ vertices1 = this.vertices,
415
+ vertices2 = geometry.vertices,
416
+ faces1 = this.faces,
417
+ faces2 = geometry.faces,
418
+ colors1 = this.colors,
419
+ colors2 = geometry.colors;
420
+
421
+ if (matrix !== undefined) {
422
+ normalMatrix = new Matrix3().getNormalMatrix(matrix);
423
+ } // vertices
424
+
425
+
343
426
  for (let i = 0, il = vertices2.length; i < il; i++) {
344
427
  const vertex = vertices2[i];
345
428
  const vertexCopy = vertex.clone();
346
- if (matrix !== void 0)
347
- vertexCopy.applyMatrix4(matrix);
429
+ if (matrix !== undefined) vertexCopy.applyMatrix4(matrix);
348
430
  vertices1.push(vertexCopy);
349
- }
431
+ } // colors
432
+
433
+
350
434
  for (let i = 0, il = colors2.length; i < il; i++) {
351
435
  colors1.push(colors2[i].clone());
352
- }
436
+ } // faces
437
+
438
+
353
439
  for (let i = 0, il = faces2.length; i < il; i++) {
354
440
  const face = faces2[i];
355
441
  let normal, color;
356
- const faceVertexNormals = face.vertexNormals, faceVertexColors = face.vertexColors;
442
+ const faceVertexNormals = face.vertexNormals,
443
+ faceVertexColors = face.vertexColors;
357
444
  const faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);
358
445
  faceCopy.normal.copy(face.normal);
359
- if (normalMatrix !== void 0) {
446
+
447
+ if (normalMatrix !== undefined) {
360
448
  faceCopy.normal.applyMatrix3(normalMatrix).normalize();
361
449
  }
450
+
362
451
  for (let j = 0, jl = faceVertexNormals.length; j < jl; j++) {
363
452
  normal = faceVertexNormals[j].clone();
364
- if (normalMatrix !== void 0) {
453
+
454
+ if (normalMatrix !== undefined) {
365
455
  normal.applyMatrix3(normalMatrix).normalize();
366
456
  }
457
+
367
458
  faceCopy.vertexNormals.push(normal);
368
459
  }
460
+
369
461
  faceCopy.color.copy(face.color);
462
+
370
463
  for (let j = 0, jl = faceVertexColors.length; j < jl; j++) {
371
464
  color = faceVertexColors[j];
372
465
  faceCopy.vertexColors.push(color.clone());
373
466
  }
467
+
374
468
  faceCopy.materialIndex = face.materialIndex + materialIndexOffset;
375
469
  faces1.push(faceCopy);
376
- }
470
+ } // uvs
471
+
472
+
377
473
  for (let i = 0, il = geometry.faceVertexUvs.length; i < il; i++) {
378
474
  const faceVertexUvs2 = geometry.faceVertexUvs[i];
379
- if (this.faceVertexUvs[i] === void 0)
380
- this.faceVertexUvs[i] = [];
475
+ if (this.faceVertexUvs[i] === undefined) this.faceVertexUvs[i] = [];
476
+
381
477
  for (let j = 0, jl = faceVertexUvs2.length; j < jl; j++) {
382
- const uvs2 = faceVertexUvs2[j], uvsCopy = [];
478
+ const uvs2 = faceVertexUvs2[j],
479
+ uvsCopy = [];
480
+
383
481
  for (let k = 0, kl = uvs2.length; k < kl; k++) {
384
482
  uvsCopy.push(uvs2[k].clone());
385
483
  }
484
+
386
485
  this.faceVertexUvs[i].push(uvsCopy);
387
486
  }
388
487
  }
389
488
  }
489
+
390
490
  mergeMesh(mesh) {
391
491
  if (!(mesh && mesh.isMesh)) {
392
- console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", mesh);
492
+ console.error('THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh);
393
493
  return;
394
494
  }
395
- if (mesh.matrixAutoUpdate)
396
- mesh.updateMatrix();
495
+
496
+ if (mesh.matrixAutoUpdate) mesh.updateMatrix();
397
497
  this.merge(mesh.geometry, mesh.matrix);
398
498
  }
499
+ /*
500
+ * Checks for duplicate vertices with hashmap.
501
+ * Duplicated vertices are removed
502
+ * and faces' vertices are updated.
503
+ */
504
+
505
+
399
506
  mergeVertices(precisionPoints = 4) {
400
- const verticesMap = {};
401
- const unique = [], changes = [];
507
+ const verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique)
508
+
509
+ const unique = [],
510
+ changes = [];
402
511
  const precision = Math.pow(10, precisionPoints);
512
+
403
513
  for (let i = 0, il = this.vertices.length; i < il; i++) {
404
514
  const v = this.vertices[i];
405
515
  const key = `${Math.round(v.x * precision)}_${Math.round(v.y * precision)}_${Math.round(v.z * precision)}`;
406
- if (verticesMap[key] === void 0) {
516
+
517
+ if (verticesMap[key] === undefined) {
407
518
  verticesMap[key] = i;
408
519
  unique.push(this.vertices[i]);
409
520
  changes[i] = unique.length - 1;
410
521
  } else {
522
+ //console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]);
411
523
  changes[i] = changes[verticesMap[key]];
412
524
  }
413
- }
525
+ } // if faces are completely degenerate after merging vertices, we
526
+ // have to remove them from the geometry.
527
+
528
+
414
529
  const faceIndicesToRemove = [];
530
+
415
531
  for (let i = 0, il = this.faces.length; i < il; i++) {
416
532
  const face = this.faces[i];
417
533
  face.a = changes[face.a];
418
534
  face.b = changes[face.b];
419
535
  face.c = changes[face.c];
420
- const indices = [face.a, face.b, face.c];
536
+ const indices = [face.a, face.b, face.c]; // if any duplicate vertices are found in a Face3
537
+ // we have to remove the face as nothing can be saved
538
+
421
539
  for (let n = 0; n < 3; n++) {
422
540
  if (indices[n] === indices[(n + 1) % 3]) {
423
541
  faceIndicesToRemove.push(i);
@@ -425,79 +543,94 @@ class Geometry extends THREE.EventDispatcher {
425
543
  }
426
544
  }
427
545
  }
546
+
428
547
  for (let i = faceIndicesToRemove.length - 1; i >= 0; i--) {
429
548
  const idx = faceIndicesToRemove[i];
430
549
  this.faces.splice(idx, 1);
550
+
431
551
  for (let j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {
432
552
  this.faceVertexUvs[j].splice(idx, 1);
433
553
  }
434
- }
554
+ } // Use unique set of vertices
555
+
556
+
435
557
  const diff = this.vertices.length - unique.length;
436
558
  this.vertices = unique;
437
559
  return diff;
438
560
  }
561
+
439
562
  setFromPoints(points) {
440
563
  this.vertices = [];
564
+
441
565
  for (let i = 0, l = points.length; i < l; i++) {
442
566
  const point = points[i];
443
- this.vertices.push(new THREE.Vector3(point.x, point.y, point.z || 0));
567
+ this.vertices.push(new Vector3(point.x, point.y, point.z || 0));
444
568
  }
569
+
445
570
  return this;
446
571
  }
572
+
447
573
  sortFacesByMaterialIndex() {
448
574
  const faces = this.faces;
449
- const length = faces.length;
575
+ const length = faces.length; // tag faces
576
+
450
577
  for (let i = 0; i < length; i++) {
451
578
  faces[i]._id = i;
452
- }
579
+ } // sort faces
580
+
581
+
453
582
  function materialIndexSort(a, b) {
454
583
  return a.materialIndex - b.materialIndex;
455
584
  }
456
- faces.sort(materialIndexSort);
585
+
586
+ faces.sort(materialIndexSort); // sort uvs
587
+
457
588
  const uvs1 = this.faceVertexUvs[0];
458
589
  const uvs2 = this.faceVertexUvs[1];
459
590
  let newUvs1, newUvs2;
460
- if (uvs1 && uvs1.length === length)
461
- newUvs1 = [];
462
- if (uvs2 && uvs2.length === length)
463
- newUvs2 = [];
591
+ if (uvs1 && uvs1.length === length) newUvs1 = [];
592
+ if (uvs2 && uvs2.length === length) newUvs2 = [];
593
+
464
594
  for (let i = 0; i < length; i++) {
465
595
  const id = faces[i]._id;
466
- if (newUvs1)
467
- newUvs1.push(uvs1[id]);
468
- if (newUvs2)
469
- newUvs2.push(uvs2[id]);
596
+ if (newUvs1) newUvs1.push(uvs1[id]);
597
+ if (newUvs2) newUvs2.push(uvs2[id]);
470
598
  }
471
- if (newUvs1)
472
- this.faceVertexUvs[0] = newUvs1;
473
- if (newUvs2)
474
- this.faceVertexUvs[1] = newUvs2;
599
+
600
+ if (newUvs1) this.faceVertexUvs[0] = newUvs1;
601
+ if (newUvs2) this.faceVertexUvs[1] = newUvs2;
475
602
  }
603
+
476
604
  toJSON() {
477
605
  const data = {
478
606
  metadata: {
479
607
  version: 4.5,
480
- type: "Geometry",
481
- generator: "Geometry.toJSON"
608
+ type: 'Geometry',
609
+ generator: 'Geometry.toJSON'
482
610
  }
483
- };
611
+ }; // standard Geometry serialization
612
+
484
613
  data.uuid = this.uuid;
485
614
  data.type = this.type;
486
- if (this.name !== "")
487
- data.name = this.name;
488
- if (this.parameters !== void 0) {
615
+ if (this.name !== '') data.name = this.name;
616
+
617
+ if (this.parameters !== undefined) {
489
618
  const parameters = this.parameters;
619
+
490
620
  for (let key in parameters) {
491
- if (parameters[key] !== void 0)
492
- data[key] = parameters[key];
621
+ if (parameters[key] !== undefined) data[key] = parameters[key];
493
622
  }
623
+
494
624
  return data;
495
625
  }
626
+
496
627
  const vertices = [];
628
+
497
629
  for (let i = 0; i < this.vertices.length; i++) {
498
630
  const vertex = this.vertices[i];
499
631
  vertices.push(vertex.x, vertex.y, vertex.z);
500
632
  }
633
+
501
634
  const faces = [];
502
635
  const normals = [];
503
636
  const normalsHash = {};
@@ -505,17 +638,20 @@ class Geometry extends THREE.EventDispatcher {
505
638
  const colorsHash = {};
506
639
  const uvs = [];
507
640
  const uvsHash = {};
641
+
508
642
  for (let i = 0; i < this.faces.length; i++) {
509
643
  const face = this.faces[i];
510
644
  const hasMaterial = true;
511
- const hasFaceUv = false;
512
- const hasFaceVertexUv = this.faceVertexUvs[0][i] !== void 0;
645
+ const hasFaceUv = false; // deprecated
646
+
647
+ const hasFaceVertexUv = this.faceVertexUvs[0][i] !== undefined;
513
648
  const hasFaceNormal = face.normal.length() > 0;
514
649
  const hasFaceVertexNormal = face.vertexNormals.length > 0;
515
650
  const hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;
516
651
  const hasFaceVertexColor = face.vertexColors.length > 0;
517
652
  let faceType = 0;
518
- faceType = setBit(faceType, 0, 0);
653
+ faceType = setBit(faceType, 0, 0); // isQuad
654
+
519
655
  faceType = setBit(faceType, 1, hasMaterial);
520
656
  faceType = setBit(faceType, 2, hasFaceUv);
521
657
  faceType = setBit(faceType, 3, hasFaceVertexUv);
@@ -526,69 +662,101 @@ class Geometry extends THREE.EventDispatcher {
526
662
  faces.push(faceType);
527
663
  faces.push(face.a, face.b, face.c);
528
664
  faces.push(face.materialIndex);
665
+
529
666
  if (hasFaceVertexUv) {
530
667
  const faceVertexUvs = this.faceVertexUvs[0][i];
531
668
  faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));
532
669
  }
670
+
533
671
  if (hasFaceNormal) {
534
672
  faces.push(getNormalIndex(face.normal));
535
673
  }
674
+
536
675
  if (hasFaceVertexNormal) {
537
676
  const vertexNormals = face.vertexNormals;
538
677
  faces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2]));
539
678
  }
679
+
540
680
  if (hasFaceColor) {
541
681
  faces.push(getColorIndex(face.color));
542
682
  }
683
+
543
684
  if (hasFaceVertexColor) {
544
685
  const vertexColors = face.vertexColors;
545
686
  faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));
546
687
  }
547
688
  }
689
+
548
690
  function setBit(value, position, enabled) {
549
691
  return enabled ? value | 1 << position : value & ~(1 << position);
550
692
  }
693
+
551
694
  function getNormalIndex(normal) {
552
695
  const hash = normal.x.toString() + normal.y.toString() + normal.z.toString();
553
- if (normalsHash[hash] !== void 0) {
696
+
697
+ if (normalsHash[hash] !== undefined) {
554
698
  return normalsHash[hash];
555
699
  }
700
+
556
701
  normalsHash[hash] = normals.length / 3;
557
702
  normals.push(normal.x, normal.y, normal.z);
558
703
  return normalsHash[hash];
559
704
  }
705
+
560
706
  function getColorIndex(color) {
561
707
  const hash = color.r.toString() + color.g.toString() + color.b.toString();
562
- if (colorsHash[hash] !== void 0) {
708
+
709
+ if (colorsHash[hash] !== undefined) {
563
710
  return colorsHash[hash];
564
711
  }
712
+
565
713
  colorsHash[hash] = colors.length;
566
714
  colors.push(color.getHex());
567
715
  return colorsHash[hash];
568
716
  }
717
+
569
718
  function getUvIndex(uv) {
570
719
  const hash = uv.x.toString() + uv.y.toString();
571
- if (uvsHash[hash] !== void 0) {
720
+
721
+ if (uvsHash[hash] !== undefined) {
572
722
  return uvsHash[hash];
573
723
  }
724
+
574
725
  uvsHash[hash] = uvs.length / 2;
575
726
  uvs.push(uv.x, uv.y);
576
727
  return uvsHash[hash];
577
728
  }
729
+
578
730
  data.data = {};
579
731
  data.data.vertices = vertices;
580
732
  data.data.normals = normals;
581
- if (colors.length > 0)
582
- data.data.colors = colors;
583
- if (uvs.length > 0)
584
- data.data.uvs = [uvs];
733
+ if (colors.length > 0) data.data.colors = colors;
734
+ if (uvs.length > 0) data.data.uvs = [uvs]; // temporal backward compatibility
735
+
585
736
  data.data.faces = faces;
586
737
  return data;
587
738
  }
739
+
588
740
  clone() {
741
+ /*
742
+ // Handle primitives
743
+ const parameters = this.parameters;
744
+ if ( parameters !== undefined ) {
745
+ const values = [];
746
+ for ( const key in parameters ) {
747
+ values.push( parameters[ key ] );
748
+ }
749
+ const geometry = Object.create( this.constructor.prototype );
750
+ this.constructor.apply( geometry, values );
751
+ return geometry;
752
+ }
753
+ return new this.constructor().copy( this );
754
+ */
589
755
  return new Geometry().copy(this);
590
756
  }
757
+
591
758
  copy(source) {
759
+ // reset
592
760
  this.vertices = [];
593
761
  this.colors = [];
594
762
  this.faces = [];
@@ -599,57 +767,87 @@ class Geometry extends THREE.EventDispatcher {
599
767
  this.skinIndices = [];
600
768
  this.lineDistances = [];
601
769
  this.boundingBox = null;
602
- this.boundingSphere = null;
603
- this.name = source.name;
770
+ this.boundingSphere = null; // name
771
+
772
+ this.name = source.name; // vertices
773
+
604
774
  const vertices = source.vertices;
775
+
605
776
  for (let i = 0, il = vertices.length; i < il; i++) {
606
777
  this.vertices.push(vertices[i].clone());
607
- }
778
+ } // colors
779
+
780
+
608
781
  const colors = source.colors;
782
+
609
783
  for (let i = 0, il = colors.length; i < il; i++) {
610
784
  this.colors.push(colors[i].clone());
611
- }
785
+ } // faces
786
+
787
+
612
788
  const faces = source.faces;
789
+
613
790
  for (let i = 0, il = faces.length; i < il; i++) {
614
791
  this.faces.push(faces[i].clone());
615
- }
792
+ } // face vertex uvs
793
+
794
+
616
795
  for (let i = 0, il = source.faceVertexUvs.length; i < il; i++) {
617
796
  const faceVertexUvs = source.faceVertexUvs[i];
618
- if (this.faceVertexUvs[i] === void 0) {
797
+
798
+ if (this.faceVertexUvs[i] === undefined) {
619
799
  this.faceVertexUvs[i] = [];
620
800
  }
801
+
621
802
  for (let j = 0, jl = faceVertexUvs.length; j < jl; j++) {
622
- const uvs = faceVertexUvs[j], uvsCopy = [];
803
+ const uvs = faceVertexUvs[j],
804
+ uvsCopy = [];
805
+
623
806
  for (let k = 0, kl = uvs.length; k < kl; k++) {
624
807
  const uv = uvs[k];
625
808
  uvsCopy.push(uv.clone());
626
809
  }
810
+
627
811
  this.faceVertexUvs[i].push(uvsCopy);
628
812
  }
629
- }
813
+ } // morph targets
814
+
815
+
630
816
  const morphTargets = source.morphTargets;
817
+
631
818
  for (let i = 0, il = morphTargets.length; i < il; i++) {
632
819
  const morphTarget = {};
633
- morphTarget.name = morphTargets[i].name;
634
- if (morphTargets[i].vertices !== void 0) {
820
+ morphTarget.name = morphTargets[i].name; // vertices
821
+
822
+ if (morphTargets[i].vertices !== undefined) {
635
823
  morphTarget.vertices = [];
824
+
636
825
  for (let j = 0, jl = morphTargets[i].vertices.length; j < jl; j++) {
637
826
  morphTarget.vertices.push(morphTargets[i].vertices[j].clone());
638
827
  }
639
- }
640
- if (morphTargets[i].normals !== void 0) {
828
+ } // normals
829
+
830
+
831
+ if (morphTargets[i].normals !== undefined) {
641
832
  morphTarget.normals = [];
833
+
642
834
  for (let j = 0, jl = morphTargets[i].normals.length; j < jl; j++) {
643
835
  morphTarget.normals.push(morphTargets[i].normals[j].clone());
644
836
  }
645
837
  }
838
+
646
839
  this.morphTargets.push(morphTarget);
647
- }
840
+ } // morph normals
841
+
842
+
648
843
  const morphNormals = source.morphNormals;
844
+
649
845
  for (let i = 0, il = morphNormals.length; i < il; i++) {
650
- const morphNormal = {};
651
- if (morphNormals[i].vertexNormals !== void 0) {
846
+ const morphNormal = {}; // vertex normals
847
+
848
+ if (morphNormals[i].vertexNormals !== undefined) {
652
849
  morphNormal.vertexNormals = [];
850
+
653
851
  for (let j = 0, jl = morphNormals[i].vertexNormals.length; j < jl; j++) {
654
852
  const srcVertexNormal = morphNormals[i].vertexNormals[j];
655
853
  const destVertexNormal = {};
@@ -658,35 +856,56 @@ class Geometry extends THREE.EventDispatcher {
658
856
  destVertexNormal.c = srcVertexNormal.c.clone();
659
857
  morphNormal.vertexNormals.push(destVertexNormal);
660
858
  }
661
- }
662
- if (morphNormals[i].faceNormals !== void 0) {
859
+ } // face normals
860
+
861
+
862
+ if (morphNormals[i].faceNormals !== undefined) {
663
863
  morphNormal.faceNormals = [];
864
+
664
865
  for (let j = 0, jl = morphNormals[i].faceNormals.length; j < jl; j++) {
665
866
  morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone());
666
867
  }
667
868
  }
869
+
668
870
  this.morphNormals.push(morphNormal);
669
- }
871
+ } // skin weights
872
+
873
+
670
874
  const skinWeights = source.skinWeights;
875
+
671
876
  for (let i = 0, il = skinWeights.length; i < il; i++) {
672
877
  this.skinWeights.push(skinWeights[i].clone());
673
- }
878
+ } // skin indices
879
+
880
+
674
881
  const skinIndices = source.skinIndices;
882
+
675
883
  for (let i = 0, il = skinIndices.length; i < il; i++) {
676
884
  this.skinIndices.push(skinIndices[i].clone());
677
- }
885
+ } // line distances
886
+
887
+
678
888
  const lineDistances = source.lineDistances;
889
+
679
890
  for (let i = 0, il = lineDistances.length; i < il; i++) {
680
891
  this.lineDistances.push(lineDistances[i]);
681
- }
892
+ } // bounding box
893
+
894
+
682
895
  const boundingBox = source.boundingBox;
896
+
683
897
  if (boundingBox !== null) {
684
898
  this.boundingBox = boundingBox.clone();
685
- }
899
+ } // bounding sphere
900
+
901
+
686
902
  const boundingSphere = source.boundingSphere;
903
+
687
904
  if (boundingSphere !== null) {
688
905
  this.boundingSphere = boundingSphere.clone();
689
- }
906
+ } // update flags
907
+
908
+
690
909
  this.elementsNeedUpdate = source.elementsNeedUpdate;
691
910
  this.verticesNeedUpdate = source.verticesNeedUpdate;
692
911
  this.uvsNeedUpdate = source.uvsNeedUpdate;
@@ -696,94 +915,123 @@ class Geometry extends THREE.EventDispatcher {
696
915
  this.groupsNeedUpdate = source.groupsNeedUpdate;
697
916
  return this;
698
917
  }
918
+
699
919
  toBufferGeometry() {
700
920
  const geometry = new DirectGeometry().fromGeometry(this);
701
- const buffergeometry = new THREE.BufferGeometry();
921
+ const buffergeometry = new BufferGeometry();
702
922
  const positions = new Float32Array(geometry.vertices.length * 3);
703
- buffergeometry.setAttribute("position", new THREE.BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));
923
+ buffergeometry.setAttribute('position', new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));
924
+
704
925
  if (geometry.normals.length > 0) {
705
926
  const normals = new Float32Array(geometry.normals.length * 3);
706
- buffergeometry.setAttribute("normal", new THREE.BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));
927
+ buffergeometry.setAttribute('normal', new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));
707
928
  }
929
+
708
930
  if (geometry.colors.length > 0) {
709
931
  const colors = new Float32Array(geometry.colors.length * 3);
710
- buffergeometry.setAttribute("color", new THREE.BufferAttribute(colors, 3).copyColorsArray(geometry.colors));
932
+ buffergeometry.setAttribute('color', new BufferAttribute(colors, 3).copyColorsArray(geometry.colors));
711
933
  }
934
+
712
935
  if (geometry.uvs.length > 0) {
713
936
  const uvs = new Float32Array(geometry.uvs.length * 2);
714
- buffergeometry.setAttribute("uv", new THREE.BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));
937
+ buffergeometry.setAttribute('uv', new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));
715
938
  }
939
+
716
940
  if (geometry.uvs2.length > 0) {
717
941
  const uvs2 = new Float32Array(geometry.uvs2.length * 2);
718
- buffergeometry.setAttribute("uv2", new THREE.BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));
719
- }
720
- buffergeometry.groups = geometry.groups;
942
+ buffergeometry.setAttribute('uv2', new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));
943
+ } // groups
944
+
945
+
946
+ buffergeometry.groups = geometry.groups; // morphs
947
+
721
948
  for (let name in geometry.morphTargets) {
722
949
  const array = [];
723
950
  const morphTargets = geometry.morphTargets[name];
951
+
724
952
  for (let i = 0, l = morphTargets.length; i < l; i++) {
725
953
  const morphTarget = morphTargets[i];
726
- const attribute = new THREE.Float32BufferAttribute(morphTarget.data.length * 3, 3);
954
+ const attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);
727
955
  attribute.name = morphTarget.name;
728
956
  array.push(attribute.copyVector3sArray(morphTarget.data));
729
957
  }
958
+
730
959
  buffergeometry.morphAttributes[name] = array;
731
- }
960
+ } // skinning
961
+
962
+
732
963
  if (geometry.skinIndices.length > 0) {
733
- const skinIndices = new THREE.Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
734
- buffergeometry.setAttribute("skinIndex", skinIndices.copyVector4sArray(geometry.skinIndices));
964
+ const skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
965
+ buffergeometry.setAttribute('skinIndex', skinIndices.copyVector4sArray(geometry.skinIndices));
735
966
  }
967
+
736
968
  if (geometry.skinWeights.length > 0) {
737
- const skinWeights = new THREE.Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
738
- buffergeometry.setAttribute("skinWeight", skinWeights.copyVector4sArray(geometry.skinWeights));
739
- }
969
+ const skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
970
+ buffergeometry.setAttribute('skinWeight', skinWeights.copyVector4sArray(geometry.skinWeights));
971
+ } //
972
+
973
+
740
974
  if (geometry.boundingSphere !== null) {
741
975
  buffergeometry.boundingSphere = geometry.boundingSphere.clone();
742
976
  }
977
+
743
978
  if (geometry.boundingBox !== null) {
744
979
  buffergeometry.boundingBox = geometry.boundingBox.clone();
745
980
  }
981
+
746
982
  return buffergeometry;
747
983
  }
984
+
748
985
  computeTangents() {
749
- console.error("THREE.Geometry: .computeTangents() has been removed.");
986
+ console.error('THREE.Geometry: .computeTangents() has been removed.');
750
987
  }
988
+
751
989
  computeLineDistances() {
752
- console.error(
753
- "THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead."
754
- );
990
+ console.error('THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.');
755
991
  }
992
+
756
993
  applyMatrix(matrix) {
757
- console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");
994
+ console.warn('THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().');
758
995
  return this.applyMatrix4(matrix);
759
996
  }
997
+
760
998
  dispose() {
761
- this.dispatchEvent({ type: "dispose" });
999
+ this.dispatchEvent({
1000
+ type: 'dispose'
1001
+ });
762
1002
  }
1003
+
763
1004
  }
764
- Geometry.createBufferGeometryFromObject = (object) => {
765
- let buffergeometry = new THREE.BufferGeometry();
1005
+
1006
+ Geometry.createBufferGeometryFromObject = object => {
1007
+ let buffergeometry = new BufferGeometry();
766
1008
  const geometry = object.geometry;
1009
+
767
1010
  if (object.isPoints || object.isLine) {
768
- const positions = new THREE.Float32BufferAttribute(geometry.vertices.length * 3, 3);
769
- const colors = new THREE.Float32BufferAttribute(geometry.colors.length * 3, 3);
770
- buffergeometry.setAttribute("position", positions.copyVector3sArray(geometry.vertices));
771
- buffergeometry.setAttribute("color", colors.copyColorsArray(geometry.colors));
1011
+ const positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);
1012
+ const colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);
1013
+ buffergeometry.setAttribute('position', positions.copyVector3sArray(geometry.vertices));
1014
+ buffergeometry.setAttribute('color', colors.copyColorsArray(geometry.colors));
1015
+
772
1016
  if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {
773
- const lineDistances = new THREE.Float32BufferAttribute(geometry.lineDistances.length, 1);
774
- buffergeometry.setAttribute("lineDistance", lineDistances.copyArray(geometry.lineDistances));
1017
+ const lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);
1018
+ buffergeometry.setAttribute('lineDistance', lineDistances.copyArray(geometry.lineDistances));
775
1019
  }
1020
+
776
1021
  if (geometry.boundingSphere !== null) {
777
1022
  buffergeometry.boundingSphere = geometry.boundingSphere.clone();
778
1023
  }
1024
+
779
1025
  if (geometry.boundingBox !== null) {
780
1026
  buffergeometry.boundingBox = geometry.boundingBox.clone();
781
1027
  }
782
1028
  } else if (object.isMesh) {
783
1029
  buffergeometry = geometry.toBufferGeometry();
784
1030
  }
1031
+
785
1032
  return buffergeometry;
786
1033
  };
1034
+
787
1035
  class DirectGeometry {
788
1036
  constructor() {
789
1037
  this.vertices = [];
@@ -794,158 +1042,201 @@ class DirectGeometry {
794
1042
  this.groups = [];
795
1043
  this.morphTargets = {};
796
1044
  this.skinWeights = [];
797
- this.skinIndices = [];
1045
+ this.skinIndices = []; // this.lineDistances = [];
1046
+
798
1047
  this.boundingBox = null;
799
- this.boundingSphere = null;
1048
+ this.boundingSphere = null; // update flags
1049
+
800
1050
  this.verticesNeedUpdate = false;
801
1051
  this.normalsNeedUpdate = false;
802
1052
  this.colorsNeedUpdate = false;
803
1053
  this.uvsNeedUpdate = false;
804
1054
  this.groupsNeedUpdate = false;
805
1055
  }
1056
+
806
1057
  computeGroups(geometry) {
807
1058
  const groups = [];
808
1059
  let group, i;
809
- let materialIndex = void 0;
1060
+ let materialIndex = undefined;
810
1061
  const faces = geometry.faces;
1062
+
811
1063
  for (i = 0; i < faces.length; i++) {
812
- const face = faces[i];
1064
+ const face = faces[i]; // materials
1065
+
813
1066
  if (face.materialIndex !== materialIndex) {
814
1067
  materialIndex = face.materialIndex;
815
- if (group !== void 0) {
1068
+
1069
+ if (group !== undefined) {
816
1070
  group.count = i * 3 - group.start;
817
1071
  groups.push(group);
818
1072
  }
1073
+
819
1074
  group = {
820
1075
  start: i * 3,
821
1076
  materialIndex
822
1077
  };
823
1078
  }
824
1079
  }
825
- if (group !== void 0) {
1080
+
1081
+ if (group !== undefined) {
826
1082
  group.count = i * 3 - group.start;
827
1083
  groups.push(group);
828
1084
  }
1085
+
829
1086
  this.groups = groups;
830
1087
  }
1088
+
831
1089
  fromGeometry(geometry) {
832
1090
  const faces = geometry.faces;
833
1091
  const vertices = geometry.vertices;
834
1092
  const faceVertexUvs = geometry.faceVertexUvs;
835
1093
  const hasFaceVertexUv = faceVertexUvs[0] && faceVertexUvs[0].length > 0;
836
- const hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0;
1094
+ const hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0; // morphs
1095
+
837
1096
  const morphTargets = geometry.morphTargets;
838
1097
  const morphTargetsLength = morphTargets.length;
839
1098
  let morphTargetsPosition;
1099
+
840
1100
  if (morphTargetsLength > 0) {
841
1101
  morphTargetsPosition = [];
1102
+
842
1103
  for (let i = 0; i < morphTargetsLength; i++) {
843
1104
  morphTargetsPosition[i] = {
844
1105
  name: morphTargets[i].name,
845
1106
  data: []
846
1107
  };
847
1108
  }
1109
+
848
1110
  this.morphTargets.position = morphTargetsPosition;
849
1111
  }
1112
+
850
1113
  const morphNormals = geometry.morphNormals;
851
1114
  const morphNormalsLength = morphNormals.length;
852
1115
  let morphTargetsNormal;
1116
+
853
1117
  if (morphNormalsLength > 0) {
854
1118
  morphTargetsNormal = [];
1119
+
855
1120
  for (let i = 0; i < morphNormalsLength; i++) {
856
1121
  morphTargetsNormal[i] = {
857
1122
  name: morphNormals[i].name,
858
1123
  data: []
859
1124
  };
860
1125
  }
1126
+
861
1127
  this.morphTargets.normal = morphTargetsNormal;
862
- }
1128
+ } // skins
1129
+
1130
+
863
1131
  const skinIndices = geometry.skinIndices;
864
1132
  const skinWeights = geometry.skinWeights;
865
1133
  const hasSkinIndices = skinIndices.length === vertices.length;
866
- const hasSkinWeights = skinWeights.length === vertices.length;
1134
+ const hasSkinWeights = skinWeights.length === vertices.length; //
1135
+
867
1136
  if (vertices.length > 0 && faces.length === 0) {
868
- console.error("THREE.DirectGeometry: Faceless geometries are not supported.");
1137
+ console.error('THREE.DirectGeometry: Faceless geometries are not supported.');
869
1138
  }
1139
+
870
1140
  for (let i = 0; i < faces.length; i++) {
871
1141
  const face = faces[i];
872
1142
  this.vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]);
873
1143
  const vertexNormals = face.vertexNormals;
1144
+
874
1145
  if (vertexNormals.length === 3) {
875
1146
  this.normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]);
876
1147
  } else {
877
1148
  const normal = face.normal;
878
1149
  this.normals.push(normal, normal, normal);
879
1150
  }
1151
+
880
1152
  const vertexColors = face.vertexColors;
1153
+
881
1154
  if (vertexColors.length === 3) {
882
1155
  this.colors.push(vertexColors[0], vertexColors[1], vertexColors[2]);
883
1156
  } else {
884
1157
  const color = face.color;
885
1158
  this.colors.push(color, color, color);
886
1159
  }
1160
+
887
1161
  if (hasFaceVertexUv === true) {
888
1162
  const vertexUvs = faceVertexUvs[0][i];
889
- if (vertexUvs !== void 0) {
1163
+
1164
+ if (vertexUvs !== undefined) {
890
1165
  this.uvs.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);
891
1166
  } else {
892
- console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ", i);
893
- this.uvs.push(new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2());
1167
+ console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ', i);
1168
+ this.uvs.push(new Vector2(), new Vector2(), new Vector2());
894
1169
  }
895
1170
  }
1171
+
896
1172
  if (hasFaceVertexUv2 === true) {
897
1173
  const vertexUvs = faceVertexUvs[1][i];
898
- if (vertexUvs !== void 0) {
1174
+
1175
+ if (vertexUvs !== undefined) {
899
1176
  this.uvs2.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);
900
1177
  } else {
901
- console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ", i);
902
- this.uvs2.push(new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2());
1178
+ console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ', i);
1179
+ this.uvs2.push(new Vector2(), new Vector2(), new Vector2());
903
1180
  }
904
- }
1181
+ } // morphs
1182
+
1183
+
905
1184
  for (let j = 0; j < morphTargetsLength; j++) {
906
1185
  const morphTarget = morphTargets[j].vertices;
907
1186
  morphTargetsPosition[j].data.push(morphTarget[face.a], morphTarget[face.b], morphTarget[face.c]);
908
1187
  }
1188
+
909
1189
  for (let j = 0; j < morphNormalsLength; j++) {
910
1190
  const morphNormal = morphNormals[j].vertexNormals[i];
911
1191
  morphTargetsNormal[j].data.push(morphNormal.a, morphNormal.b, morphNormal.c);
912
- }
1192
+ } // skins
1193
+
1194
+
913
1195
  if (hasSkinIndices) {
914
1196
  this.skinIndices.push(skinIndices[face.a], skinIndices[face.b], skinIndices[face.c]);
915
1197
  }
1198
+
916
1199
  if (hasSkinWeights) {
917
1200
  this.skinWeights.push(skinWeights[face.a], skinWeights[face.b], skinWeights[face.c]);
918
1201
  }
919
1202
  }
1203
+
920
1204
  this.computeGroups(geometry);
921
1205
  this.verticesNeedUpdate = geometry.verticesNeedUpdate;
922
1206
  this.normalsNeedUpdate = geometry.normalsNeedUpdate;
923
1207
  this.colorsNeedUpdate = geometry.colorsNeedUpdate;
924
1208
  this.uvsNeedUpdate = geometry.uvsNeedUpdate;
925
1209
  this.groupsNeedUpdate = geometry.groupsNeedUpdate;
1210
+
926
1211
  if (geometry.boundingSphere !== null) {
927
1212
  this.boundingSphere = geometry.boundingSphere.clone();
928
1213
  }
1214
+
929
1215
  if (geometry.boundingBox !== null) {
930
1216
  this.boundingBox = geometry.boundingBox.clone();
931
1217
  }
1218
+
932
1219
  return this;
933
1220
  }
1221
+
934
1222
  }
1223
+
935
1224
  class Face3 {
936
1225
  constructor(a, b, c, normal, color, materialIndex = 0) {
937
1226
  this.a = a;
938
1227
  this.b = b;
939
1228
  this.c = c;
940
- this.normal = normal && normal.isVector3 ? normal : new THREE.Vector3();
1229
+ this.normal = normal && normal.isVector3 ? normal : new Vector3();
941
1230
  this.vertexNormals = Array.isArray(normal) ? normal : [];
942
- this.color = color && color.isColor ? color : new THREE.Color();
1231
+ this.color = color && color.isColor ? color : new Color();
943
1232
  this.vertexColors = Array.isArray(color) ? color : [];
944
1233
  this.materialIndex = materialIndex;
945
1234
  }
1235
+
946
1236
  clone() {
947
1237
  return new this.constructor().copy(this);
948
1238
  }
1239
+
949
1240
  copy(source) {
950
1241
  this.a = source.a;
951
1242
  this.b = source.b;
@@ -953,14 +1244,18 @@ class Face3 {
953
1244
  this.normal.copy(source.normal);
954
1245
  this.color.copy(source.color);
955
1246
  this.materialIndex = source.materialIndex;
1247
+
956
1248
  for (let i = 0, il = source.vertexNormals.length; i < il; i++) {
957
1249
  this.vertexNormals[i] = source.vertexNormals[i].clone();
958
1250
  }
1251
+
959
1252
  for (let i = 0, il = source.vertexColors.length; i < il; i++) {
960
1253
  this.vertexColors[i] = source.vertexColors[i].clone();
961
1254
  }
1255
+
962
1256
  return this;
963
1257
  }
1258
+
964
1259
  }
965
- exports.Face3 = Face3;
966
- exports.Geometry = Geometry;
1260
+
1261
+ export { Face3, Geometry };