three-stdlib 2.16.0 → 2.16.2

Sign up to get free protection for your applications and to get access to all the features.
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,213 +1,325 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- const LWO2Parser = require("./LWO2Parser.js");
5
- const LWO3Parser = require("./LWO3Parser.js");
1
+ import { LoaderUtils } from 'three';
2
+ import { LWO2Parser } from './LWO2Parser.js';
3
+ import { LWO3Parser } from './LWO3Parser.js';
4
+
5
+ /**
6
+ * === IFFParser ===
7
+ * - Parses data from the IFF buffer.
8
+ * - LWO3 files are in IFF format and can contain the following data types, referred to by shorthand codes
9
+ *
10
+ * ATOMIC DATA TYPES
11
+ * ID Tag - 4x 7 bit uppercase ASCII chars: ID4
12
+ * signed integer, 1, 2, or 4 byte length: I1, I2, I4
13
+ * unsigned integer, 1, 2, or 4 byte length: U1, U2, U4
14
+ * float, 4 byte length: F4
15
+ * string, series of ASCII chars followed by null byte (If the length of the string including the null terminating byte is odd, an extra null is added so that the data that follows will begin on an even byte boundary): S0
16
+ *
17
+ * COMPOUND DATA TYPES
18
+ * Variable-length Index (index into an array or collection): U2 or U4 : VX
19
+ * Color (RGB): F4 + F4 + F4: COL12
20
+ * Coordinate (x, y, z): F4 + F4 + F4: VEC12
21
+ * Percentage F4 data type from 0->1 with 1 = 100%: FP4
22
+ * Angle in radian F4: ANG4
23
+ * Filename (string) S0: FNAM0
24
+ * XValue F4 + index (VX) + optional envelope( ENVL ): XVAL
25
+ * XValue vector VEC12 + index (VX) + optional envelope( ENVL ): XVAL3
26
+ *
27
+ * The IFF file is arranged in chunks:
28
+ * CHUNK = ID4 + length (U4) + length X bytes of data + optional 0 pad byte
29
+ * optional 0 pad byte is there to ensure chunk ends on even boundary, not counted in size
30
+ *
31
+ * COMPOUND DATA TYPES
32
+ * - Chunks are combined in Forms (collections of chunks)
33
+ * - FORM = string 'FORM' (ID4) + length (U4) + type (ID4) + optional ( CHUNK | FORM )
34
+ * - CHUNKS and FORMS are collectively referred to as blocks
35
+ * - The entire file is contained in one top level FORM
36
+ *
37
+ **/
38
+
6
39
  function IFFParser() {
7
- this.debugger = new Debugger();
40
+ this.debugger = new Debugger(); // this.debugger.enable(); // un-comment to log IFF hierarchy.
8
41
  }
42
+
9
43
  IFFParser.prototype = {
10
44
  constructor: IFFParser,
11
- parse: function(buffer) {
45
+ parse: function (buffer) {
12
46
  this.reader = new DataViewReader(buffer);
13
47
  this.tree = {
14
48
  materials: {},
15
49
  layers: [],
16
50
  tags: [],
17
51
  textures: []
18
- };
52
+ }; // start out at the top level to add any data before first layer is encountered
53
+
19
54
  this.currentLayer = this.tree;
20
55
  this.currentForm = this.tree;
21
56
  this.parseTopForm();
22
- if (this.tree.format === void 0)
23
- return;
24
- if (this.tree.format === "LWO2") {
25
- this.parser = new LWO2Parser.LWO2Parser(this);
26
- while (!this.reader.endOfFile())
27
- this.parser.parseBlock();
28
- } else if (this.tree.format === "LWO3") {
29
- this.parser = new LWO3Parser.LWO3Parser(this);
30
- while (!this.reader.endOfFile())
31
- this.parser.parseBlock();
57
+ if (this.tree.format === undefined) return;
58
+
59
+ if (this.tree.format === 'LWO2') {
60
+ this.parser = new LWO2Parser(this);
61
+
62
+ while (!this.reader.endOfFile()) this.parser.parseBlock();
63
+ } else if (this.tree.format === 'LWO3') {
64
+ this.parser = new LWO3Parser(this);
65
+
66
+ while (!this.reader.endOfFile()) this.parser.parseBlock();
32
67
  }
68
+
33
69
  this.debugger.offset = this.reader.offset;
34
70
  this.debugger.closeForms();
35
71
  return this.tree;
36
72
  },
73
+
37
74
  parseTopForm() {
38
75
  this.debugger.offset = this.reader.offset;
39
76
  var topForm = this.reader.getIDTag();
40
- if (topForm !== "FORM") {
41
- console.warn("LWOLoader: Top-level FORM missing.");
77
+
78
+ if (topForm !== 'FORM') {
79
+ console.warn('LWOLoader: Top-level FORM missing.');
42
80
  return;
43
81
  }
82
+
44
83
  var length = this.reader.getUint32();
45
84
  this.debugger.dataOffset = this.reader.offset;
46
85
  this.debugger.length = length;
47
86
  var type = this.reader.getIDTag();
48
- if (type === "LWO2") {
87
+
88
+ if (type === 'LWO2') {
49
89
  this.tree.format = type;
50
- } else if (type === "LWO3") {
90
+ } else if (type === 'LWO3') {
51
91
  this.tree.format = type;
52
92
  }
93
+
53
94
  this.debugger.node = 0;
54
95
  this.debugger.nodeID = type;
55
96
  this.debugger.log();
56
97
  return;
57
98
  },
99
+
100
+ ///
101
+ // FORM PARSING METHODS
102
+ ///
103
+ // Forms are organisational and can contain any number of sub chunks and sub forms
104
+ // FORM ::= 'FORM'[ID4], length[U4], type[ID4], ( chunk[CHUNK] | form[FORM] ) * }
58
105
  parseForm(length) {
59
106
  var type = this.reader.getIDTag();
107
+
60
108
  switch (type) {
61
- case "ISEQ":
62
- case "ANIM":
63
- case "STCC":
64
- case "VPVL":
65
- case "VPRM":
66
- case "NROT":
67
- case "WRPW":
68
- case "WRPH":
69
- case "FUNC":
70
- case "FALL":
71
- case "OPAC":
72
- case "GRAD":
73
- case "ENVS":
74
- case "VMOP":
75
- case "VMBG":
76
- case "OMAX":
77
- case "STEX":
78
- case "CKBG":
79
- case "CKEY":
80
- case "VMLA":
81
- case "VMLB":
109
+ // SKIPPED FORMS
110
+ // if skipForm( length ) is called, the entire form and any sub forms and chunks are skipped
111
+ case 'ISEQ': // Image sequence
112
+
113
+ case 'ANIM': // plug in animation
114
+
115
+ case 'STCC': // Color-cycling Still
116
+
117
+ case 'VPVL':
118
+ case 'VPRM':
119
+ case 'NROT':
120
+ case 'WRPW': // image wrap w ( for cylindrical and spherical projections)
121
+
122
+ case 'WRPH': // image wrap h
123
+
124
+ case 'FUNC':
125
+ case 'FALL':
126
+ case 'OPAC':
127
+ case 'GRAD': // gradient texture
128
+
129
+ case 'ENVS':
130
+ case 'VMOP':
131
+ case 'VMBG': // Car Material FORMS
132
+
133
+ case 'OMAX':
134
+ case 'STEX':
135
+ case 'CKBG':
136
+ case 'CKEY':
137
+ case 'VMLA':
138
+ case 'VMLB':
82
139
  this.debugger.skipped = true;
83
- this.skipForm(length);
84
- break;
85
- case "META":
86
- case "NNDS":
87
- case "NODS":
88
- case "NDTA":
89
- case "ADAT":
90
- case "AOVS":
91
- case "BLOK":
92
- case "IBGC":
93
- case "IOPC":
94
- case "IIMG":
95
- case "TXTR":
140
+ this.skipForm(length); // not currently supported
141
+
142
+ break;
143
+ // if break; is called directly, the position in the lwoTree is not created
144
+ // any sub chunks and forms are added to the parent form instead
145
+
146
+ case 'META':
147
+ case 'NNDS':
148
+ case 'NODS':
149
+ case 'NDTA':
150
+ case 'ADAT':
151
+ case 'AOVS':
152
+ case 'BLOK': // used by texture nodes
153
+
154
+ case 'IBGC': // imageBackgroundColor
155
+
156
+ case 'IOPC': // imageOpacity
157
+
158
+ case 'IIMG': // hold reference to image path
159
+
160
+ case 'TXTR':
161
+ // this.setupForm( type, length );
96
162
  this.debugger.length = 4;
97
163
  this.debugger.skipped = true;
98
164
  break;
99
- case "IFAL":
100
- case "ISCL":
101
- case "IPOS":
102
- case "IROT":
103
- case "IBMP":
104
- case "IUTD":
105
- case "IVTD":
165
+
166
+ case 'IFAL': // imageFallof
167
+
168
+ case 'ISCL': // imageScale
169
+
170
+ case 'IPOS': // imagePosition
171
+
172
+ case 'IROT': // imageRotation
173
+
174
+ case 'IBMP':
175
+ case 'IUTD':
176
+ case 'IVTD':
106
177
  this.parseTextureNodeAttribute(type);
107
178
  break;
108
- case "ENVL":
179
+
180
+ case 'ENVL':
109
181
  this.parseEnvelope(length);
110
182
  break;
111
- case "CLIP":
112
- if (this.tree.format === "LWO2") {
183
+ // CLIP FORM AND SUB FORMS
184
+
185
+ case 'CLIP':
186
+ if (this.tree.format === 'LWO2') {
113
187
  this.parseForm(length);
114
188
  } else {
115
189
  this.parseClip(length);
116
190
  }
191
+
117
192
  break;
118
- case "STIL":
193
+
194
+ case 'STIL':
119
195
  this.parseImage();
120
196
  break;
121
- case "XREF":
122
- this.reader.skip(8);
197
+
198
+ case 'XREF':
199
+ // clone of another STIL
200
+ this.reader.skip(8); // unknown
201
+
123
202
  this.currentForm.referenceTexture = {
124
203
  index: this.reader.getUint32(),
125
- refName: this.reader.getString()
204
+ refName: this.reader.getString() // internal unique ref
205
+
126
206
  };
127
207
  break;
128
- case "IMST":
208
+ // Not in spec, used by texture nodes
209
+
210
+ case 'IMST':
129
211
  this.parseImageStateForm(length);
130
212
  break;
131
- case "SURF":
213
+ // SURF FORM AND SUB FORMS
214
+
215
+ case 'SURF':
132
216
  this.parseSurfaceForm(length);
133
217
  break;
134
- case "VALU":
218
+
219
+ case 'VALU':
220
+ // Not in spec
135
221
  this.parseValueForm(length);
136
222
  break;
137
- case "NTAG":
223
+
224
+ case 'NTAG':
138
225
  this.parseSubNode(length);
139
226
  break;
140
- case "ATTR":
141
- case "SATR":
142
- this.setupForm("attributes", length);
227
+
228
+ case 'ATTR': // BSDF Node Attributes
229
+
230
+ case 'SATR':
231
+ // Standard Node Attributes
232
+ this.setupForm('attributes', length);
143
233
  break;
144
- case "NCON":
234
+
235
+ case 'NCON':
145
236
  this.parseConnections(length);
146
237
  break;
147
- case "SSHA":
238
+
239
+ case 'SSHA':
148
240
  this.parentForm = this.currentForm;
149
241
  this.currentForm = this.currentSurface;
150
- this.setupForm("surfaceShader", length);
242
+ this.setupForm('surfaceShader', length);
151
243
  break;
152
- case "SSHD":
153
- this.setupForm("surfaceShaderData", length);
244
+
245
+ case 'SSHD':
246
+ this.setupForm('surfaceShaderData', length);
154
247
  break;
155
- case "ENTR":
248
+
249
+ case 'ENTR':
250
+ // Not in spec
156
251
  this.parseEntryForm(length);
157
252
  break;
158
- case "IMAP":
253
+ // Image Map Layer
254
+
255
+ case 'IMAP':
159
256
  this.parseImageMap(length);
160
257
  break;
161
- case "TAMP":
162
- this.parseXVAL("amplitude", length);
258
+
259
+ case 'TAMP':
260
+ this.parseXVAL('amplitude', length);
163
261
  break;
164
- case "TMAP":
165
- this.setupForm("textureMap", length);
262
+ //Texture Mapping Form
263
+
264
+ case 'TMAP':
265
+ this.setupForm('textureMap', length);
166
266
  break;
167
- case "CNTR":
168
- this.parseXVAL3("center", length);
267
+
268
+ case 'CNTR':
269
+ this.parseXVAL3('center', length);
169
270
  break;
170
- case "SIZE":
171
- this.parseXVAL3("scale", length);
271
+
272
+ case 'SIZE':
273
+ this.parseXVAL3('scale', length);
172
274
  break;
173
- case "ROTA":
174
- this.parseXVAL3("rotation", length);
275
+
276
+ case 'ROTA':
277
+ this.parseXVAL3('rotation', length);
175
278
  break;
279
+
176
280
  default:
177
281
  this.parseUnknownForm(type, length);
178
282
  }
283
+
179
284
  this.debugger.node = 0;
180
285
  this.debugger.nodeID = type;
181
286
  this.debugger.log();
182
287
  },
288
+
183
289
  setupForm(type, length) {
184
- if (!this.currentForm)
185
- this.currentForm = this.currentNode;
290
+ if (!this.currentForm) this.currentForm = this.currentNode;
186
291
  this.currentFormEnd = this.reader.offset + length;
187
292
  this.parentForm = this.currentForm;
293
+
188
294
  if (!this.currentForm[type]) {
189
295
  this.currentForm[type] = {};
190
296
  this.currentForm = this.currentForm[type];
191
297
  } else {
192
- console.warn("LWOLoader: form already exists on parent: ", type, this.currentForm);
298
+ // should never see this unless there's a bug in the reader
299
+ console.warn('LWOLoader: form already exists on parent: ', type, this.currentForm);
193
300
  this.currentForm = this.currentForm[type];
194
301
  }
195
302
  },
303
+
196
304
  skipForm(length) {
197
305
  this.reader.skip(length - 4);
198
306
  },
307
+
199
308
  parseUnknownForm(type, length) {
200
- console.warn("LWOLoader: unknown FORM encountered: " + type, length);
309
+ console.warn('LWOLoader: unknown FORM encountered: ' + type, length);
201
310
  printBuffer(this.reader.dv.buffer, this.reader.offset, length - 4);
202
311
  this.reader.skip(length - 4);
203
312
  },
313
+
204
314
  parseSurfaceForm(length) {
205
- this.reader.skip(8);
315
+ this.reader.skip(8); // unknown Uint32 x2
316
+
206
317
  var name = this.reader.getString();
207
318
  var surface = {
208
319
  attributes: {},
320
+ // LWO2 style non-node attributes will go here
209
321
  connections: {},
210
- name,
322
+ name: name,
211
323
  inputName: name,
212
324
  nodes: {},
213
325
  source: this.reader.getString()
@@ -218,12 +330,14 @@ IFFParser.prototype = {
218
330
  this.currentForm = surface;
219
331
  this.currentFormEnd = this.reader.offset + length;
220
332
  },
333
+
221
334
  parseSurfaceLwo2(length) {
222
335
  var name = this.reader.getString();
223
336
  var surface = {
224
337
  attributes: {},
338
+ // LWO2 style non-node attributes will go here
225
339
  connections: {},
226
- name,
340
+ name: name,
227
341
  nodes: {},
228
342
  source: this.reader.getString()
229
343
  };
@@ -233,133 +347,184 @@ IFFParser.prototype = {
233
347
  this.currentForm = surface;
234
348
  this.currentFormEnd = this.reader.offset + length;
235
349
  },
350
+
236
351
  parseSubNode(length) {
237
- this.reader.skip(8);
352
+ // parse the NRNM CHUNK of the subnode FORM to get
353
+ // a meaningful name for the subNode
354
+ // some subnodes can be renamed, but Input and Surface cannot
355
+ this.reader.skip(8); // NRNM + length
356
+
238
357
  var name = this.reader.getString();
239
358
  var node = {
240
- name
359
+ name: name
241
360
  };
242
361
  this.currentForm = node;
243
362
  this.currentNode = node;
244
363
  this.currentFormEnd = this.reader.offset + length;
245
364
  },
365
+
366
+ // collect attributes from all nodes at the top level of a surface
246
367
  parseConnections(length) {
247
368
  this.currentFormEnd = this.reader.offset + length;
248
369
  this.parentForm = this.currentForm;
249
370
  this.currentForm = this.currentSurface.connections;
250
371
  },
372
+
373
+ // surface node attribute data, e.g. specular, roughness etc
251
374
  parseEntryForm(length) {
252
- this.reader.skip(8);
375
+ this.reader.skip(8); // NAME + length
376
+
253
377
  var name = this.reader.getString();
254
378
  this.currentForm = this.currentNode.attributes;
255
379
  this.setupForm(name, length);
256
380
  },
381
+
382
+ // parse values from material - doesn't match up to other LWO3 data types
383
+ // sub form of entry form
257
384
  parseValueForm() {
258
- this.reader.skip(8);
385
+ this.reader.skip(8); // unknown + length
386
+
259
387
  var valueType = this.reader.getString();
260
- if (valueType === "double") {
388
+
389
+ if (valueType === 'double') {
261
390
  this.currentForm.value = this.reader.getUint64();
262
- } else if (valueType === "int") {
391
+ } else if (valueType === 'int') {
263
392
  this.currentForm.value = this.reader.getUint32();
264
- } else if (valueType === "vparam") {
393
+ } else if (valueType === 'vparam') {
265
394
  this.reader.skip(24);
266
395
  this.currentForm.value = this.reader.getFloat64();
267
- } else if (valueType === "vparam3") {
396
+ } else if (valueType === 'vparam3') {
268
397
  this.reader.skip(24);
269
398
  this.currentForm.value = this.reader.getFloat64Array(3);
270
399
  }
271
400
  },
401
+
402
+ // holds various data about texture node image state
403
+ // Data other thanmipMapLevel unknown
272
404
  parseImageStateForm() {
273
- this.reader.skip(8);
405
+ this.reader.skip(8); // unknown
406
+
274
407
  this.currentForm.mipMapLevel = this.reader.getFloat32();
275
408
  },
409
+
410
+ // LWO2 style image data node OR LWO3 textures defined at top level in editor (not as SURF node)
276
411
  parseImageMap(length) {
277
412
  this.currentFormEnd = this.reader.offset + length;
278
413
  this.parentForm = this.currentForm;
279
- if (!this.currentForm.maps)
280
- this.currentForm.maps = [];
414
+ if (!this.currentForm.maps) this.currentForm.maps = [];
281
415
  var map = {};
282
416
  this.currentForm.maps.push(map);
283
417
  this.currentForm = map;
284
- this.reader.skip(10);
418
+ this.reader.skip(10); // unknown, could be an issue if it contains a VX
285
419
  },
420
+
286
421
  parseTextureNodeAttribute(type) {
287
- this.reader.skip(28);
288
- this.reader.skip(20);
422
+ this.reader.skip(28); // FORM + length + VPRM + unknown + Uint32 x2 + float32
423
+
424
+ this.reader.skip(20); // FORM + length + VPVL + float32 + Uint32
425
+
289
426
  switch (type) {
290
- case "ISCL":
427
+ case 'ISCL':
291
428
  this.currentNode.scale = this.reader.getFloat32Array(3);
292
429
  break;
293
- case "IPOS":
430
+
431
+ case 'IPOS':
294
432
  this.currentNode.position = this.reader.getFloat32Array(3);
295
433
  break;
296
- case "IROT":
434
+
435
+ case 'IROT':
297
436
  this.currentNode.rotation = this.reader.getFloat32Array(3);
298
437
  break;
299
- case "IFAL":
438
+
439
+ case 'IFAL':
300
440
  this.currentNode.falloff = this.reader.getFloat32Array(3);
301
441
  break;
302
- case "IBMP":
442
+
443
+ case 'IBMP':
303
444
  this.currentNode.amplitude = this.reader.getFloat32();
304
445
  break;
305
- case "IUTD":
446
+
447
+ case 'IUTD':
306
448
  this.currentNode.uTiles = this.reader.getFloat32();
307
449
  break;
308
- case "IVTD":
450
+
451
+ case 'IVTD':
309
452
  this.currentNode.vTiles = this.reader.getFloat32();
310
453
  break;
311
454
  }
312
- this.reader.skip(2);
455
+
456
+ this.reader.skip(2); // unknown
313
457
  },
458
+
459
+ // ENVL forms are currently ignored
314
460
  parseEnvelope(length) {
315
- this.reader.skip(length - 4);
316
- },
461
+ this.reader.skip(length - 4); // skipping entirely for now
462
+ },
463
+
464
+ ///
465
+ // CHUNK PARSING METHODS
466
+ ///
467
+ // clips can either be defined inside a surface node, or at the top
468
+ // level and they have a different format in each case
317
469
  parseClip(length) {
318
- var tag = this.reader.getIDTag();
319
- if (tag === "FORM") {
470
+ var tag = this.reader.getIDTag(); // inside surface node
471
+
472
+ if (tag === 'FORM') {
320
473
  this.reader.skip(16);
321
474
  this.currentNode.fileName = this.reader.getString();
322
475
  return;
323
- }
476
+ } // otherwise top level
477
+
478
+
324
479
  this.reader.setOffset(this.reader.offset - 4);
325
480
  this.currentFormEnd = this.reader.offset + length;
326
481
  this.parentForm = this.currentForm;
327
- this.reader.skip(8);
482
+ this.reader.skip(8); // unknown
483
+
328
484
  var texture = {
329
485
  index: this.reader.getUint32()
330
486
  };
331
487
  this.tree.textures.push(texture);
332
488
  this.currentForm = texture;
333
489
  },
490
+
334
491
  parseClipLwo2(length) {
335
492
  var texture = {
336
493
  index: this.reader.getUint32(),
337
- fileName: ""
338
- };
494
+ fileName: ''
495
+ }; // seach STIL block
496
+
339
497
  while (true) {
340
498
  var tag = this.reader.getIDTag();
341
499
  var n_length = this.reader.getUint16();
342
- if (tag === "STIL") {
500
+
501
+ if (tag === 'STIL') {
343
502
  texture.fileName = this.reader.getString();
344
503
  break;
345
504
  }
505
+
346
506
  if (n_length >= length) {
347
507
  break;
348
508
  }
349
509
  }
510
+
350
511
  this.tree.textures.push(texture);
351
512
  this.currentForm = texture;
352
513
  },
514
+
353
515
  parseImage() {
354
- this.reader.skip(8);
516
+ this.reader.skip(8); // unknown
517
+
355
518
  this.currentForm.fileName = this.reader.getString();
356
519
  },
520
+
357
521
  parseXVAL(type, length) {
358
522
  var endOffset = this.reader.offset + length - 4;
359
523
  this.reader.skip(8);
360
524
  this.currentForm[type] = this.reader.getFloat32();
361
- this.reader.setOffset(endOffset);
525
+ this.reader.setOffset(endOffset); // set end offset directly to skip optional envelope
362
526
  },
527
+
363
528
  parseXVAL3(type, length) {
364
529
  var endOffset = this.reader.offset + length - 4;
365
530
  this.reader.skip(8);
@@ -370,246 +535,326 @@ IFFParser.prototype = {
370
535
  };
371
536
  this.reader.setOffset(endOffset);
372
537
  },
538
+
539
+ // Tags associated with an object
540
+ // OTAG { type[ID4], tag-string[S0] }
373
541
  parseObjectTag() {
374
- if (!this.tree.objectTags)
375
- this.tree.objectTags = {};
542
+ if (!this.tree.objectTags) this.tree.objectTags = {};
376
543
  this.tree.objectTags[this.reader.getIDTag()] = {
377
544
  tagString: this.reader.getString()
378
545
  };
379
546
  },
547
+
548
+ // Signals the start of a new layer. All the data chunks which follow will be included in this layer until another layer chunk is encountered.
549
+ // LAYR: number[U2], flags[U2], pivot[VEC12], name[S0], parent[U2]
380
550
  parseLayer(length) {
381
551
  var layer = {
382
552
  number: this.reader.getUint16(),
383
553
  flags: this.reader.getUint16(),
554
+ // If the least significant bit of flags is set, the layer is hidden.
384
555
  pivot: this.reader.getFloat32Array(3),
556
+ // Note: this seems to be superflous, as the geometry is translated when pivot is present
385
557
  name: this.reader.getString()
386
558
  };
387
559
  this.tree.layers.push(layer);
388
560
  this.currentLayer = layer;
389
- var parsedLength = 16 + stringOffset(this.currentLayer.name);
390
- this.currentLayer.parent = parsedLength < length ? this.reader.getUint16() : -1;
391
- },
561
+ var parsedLength = 16 + stringOffset(this.currentLayer.name); // index ( 2 ) + flags( 2 ) + pivot( 12 ) + stringlength
562
+ // if we have not reached then end of the layer block, there must be a parent defined
563
+
564
+ this.currentLayer.parent = parsedLength < length ? this.reader.getUint16() : -1; // omitted or -1 for no parent
565
+ },
566
+
567
+ // VEC12 * ( F4 + F4 + F4 ) array of x,y,z vectors
568
+ // Converting from left to right handed coordinate system:
569
+ // x -> -x and switch material FrontSide -> BackSide
392
570
  parsePoints(length) {
393
571
  this.currentPoints = [];
572
+
394
573
  for (let i = 0; i < length / 4; i += 3) {
574
+ // z -> -z to match three.js right handed coords
395
575
  this.currentPoints.push(this.reader.getFloat32(), this.reader.getFloat32(), -this.reader.getFloat32());
396
576
  }
397
577
  },
578
+
579
+ // parse VMAP or VMAD
580
+ // Associates a set of floating-point vectors with a set of points.
581
+ // VMAP: { type[ID4], dimension[U2], name[S0], ( vert[VX], value[F4] # dimension ) * }
582
+ // VMAD Associates a set of floating-point vectors with the vertices of specific polygons.
583
+ // Similar to VMAP UVs, but associates with polygon vertices rather than points
584
+ // to solve to problem of UV seams: VMAD chunks are paired with VMAPs of the same name,
585
+ // if they exist. The vector values in the VMAD will then replace those in the
586
+ // corresponding VMAP, but only for calculations involving the specified polygons.
587
+ // VMAD { type[ID4], dimension[U2], name[S0], ( vert[VX], poly[VX], value[F4] # dimension ) * }
398
588
  parseVertexMapping(length, discontinuous) {
399
589
  var finalOffset = this.reader.offset + length;
400
590
  var channelName = this.reader.getString();
591
+
401
592
  if (this.reader.offset === finalOffset) {
593
+ // then we are in a texture node and the VMAP chunk is just a reference to a UV channel name
402
594
  this.currentForm.UVChannel = channelName;
403
595
  return;
404
- }
596
+ } // otherwise reset to initial length and parse normal VMAP CHUNK
597
+
598
+
405
599
  this.reader.setOffset(this.reader.offset - stringOffset(channelName));
406
600
  var type = this.reader.getIDTag();
407
- this.reader.getUint16();
601
+ this.reader.getUint16(); // dimension
602
+
408
603
  var name = this.reader.getString();
409
604
  var remainingLength = length - 6 - stringOffset(name);
605
+
410
606
  switch (type) {
411
- case "TXUV":
607
+ case 'TXUV':
412
608
  this.parseUVMapping(name, finalOffset, discontinuous);
413
609
  break;
414
- case "MORF":
415
- case "SPOT":
416
- this.parseMorphTargets(name, finalOffset, type);
417
- break;
418
- case "APSL":
419
- case "NORM":
420
- case "WGHT":
421
- case "MNVW":
422
- case "PICK":
423
- case "RGB ":
424
- case "RGBA":
610
+
611
+ case 'MORF':
612
+ case 'SPOT':
613
+ this.parseMorphTargets(name, finalOffset, type); // can't be discontinuous
614
+
615
+ break;
616
+ // unsupported VMAPs
617
+
618
+ case 'APSL':
619
+ case 'NORM':
620
+ case 'WGHT':
621
+ case 'MNVW':
622
+ case 'PICK':
623
+ case 'RGB ':
624
+ case 'RGBA':
425
625
  this.reader.skip(remainingLength);
426
626
  break;
627
+
427
628
  default:
428
- console.warn("LWOLoader: unknown vertex map type: " + type);
629
+ console.warn('LWOLoader: unknown vertex map type: ' + type);
429
630
  this.reader.skip(remainingLength);
430
631
  }
431
632
  },
633
+
432
634
  parseUVMapping(name, finalOffset, discontinuous) {
433
635
  var uvIndices = [];
434
636
  var polyIndices = [];
435
637
  var uvs = [];
638
+
436
639
  while (this.reader.offset < finalOffset) {
437
640
  uvIndices.push(this.reader.getVariableLengthIndex());
438
- if (discontinuous)
439
- polyIndices.push(this.reader.getVariableLengthIndex());
641
+ if (discontinuous) polyIndices.push(this.reader.getVariableLengthIndex());
440
642
  uvs.push(this.reader.getFloat32(), this.reader.getFloat32());
441
643
  }
644
+
442
645
  if (discontinuous) {
443
- if (!this.currentLayer.discontinuousUVs)
444
- this.currentLayer.discontinuousUVs = {};
646
+ if (!this.currentLayer.discontinuousUVs) this.currentLayer.discontinuousUVs = {};
445
647
  this.currentLayer.discontinuousUVs[name] = {
446
- uvIndices,
447
- polyIndices,
448
- uvs
648
+ uvIndices: uvIndices,
649
+ polyIndices: polyIndices,
650
+ uvs: uvs
449
651
  };
450
652
  } else {
451
- if (!this.currentLayer.uvs)
452
- this.currentLayer.uvs = {};
653
+ if (!this.currentLayer.uvs) this.currentLayer.uvs = {};
453
654
  this.currentLayer.uvs[name] = {
454
- uvIndices,
455
- uvs
655
+ uvIndices: uvIndices,
656
+ uvs: uvs
456
657
  };
457
658
  }
458
659
  },
660
+
459
661
  parseMorphTargets(name, finalOffset, type) {
460
662
  var indices = [];
461
663
  var points = [];
462
- type = type === "MORF" ? "relative" : "absolute";
664
+ type = type === 'MORF' ? 'relative' : 'absolute';
665
+
463
666
  while (this.reader.offset < finalOffset) {
464
- indices.push(this.reader.getVariableLengthIndex());
667
+ indices.push(this.reader.getVariableLengthIndex()); // z -> -z to match three.js right handed coords
668
+
465
669
  points.push(this.reader.getFloat32(), this.reader.getFloat32(), -this.reader.getFloat32());
466
670
  }
467
- if (!this.currentLayer.morphTargets)
468
- this.currentLayer.morphTargets = {};
671
+
672
+ if (!this.currentLayer.morphTargets) this.currentLayer.morphTargets = {};
469
673
  this.currentLayer.morphTargets[name] = {
470
- indices,
471
- points,
472
- type
674
+ indices: indices,
675
+ points: points,
676
+ type: type
473
677
  };
474
678
  },
679
+
680
+ // A list of polygons for the current layer.
681
+ // POLS { type[ID4], ( numvert+flags[U2], vert[VX] # numvert ) * }
475
682
  parsePolygonList(length) {
476
683
  var finalOffset = this.reader.offset + length;
477
684
  var type = this.reader.getIDTag();
478
- var indices = [];
685
+ var indices = []; // hold a list of polygon sizes, to be split up later
686
+
479
687
  var polygonDimensions = [];
688
+
480
689
  while (this.reader.offset < finalOffset) {
481
- var numverts = this.reader.getUint16();
482
- numverts = numverts & 1023;
690
+ var numverts = this.reader.getUint16(); //var flags = numverts & 64512; // 6 high order bits are flags - ignoring for now
691
+
692
+ numverts = numverts & 1023; // remaining ten low order bits are vertex num
693
+
483
694
  polygonDimensions.push(numverts);
484
- for (let j = 0; j < numverts; j++)
485
- indices.push(this.reader.getVariableLengthIndex());
695
+
696
+ for (let j = 0; j < numverts; j++) indices.push(this.reader.getVariableLengthIndex());
486
697
  }
698
+
487
699
  var geometryData = {
488
- type,
700
+ type: type,
489
701
  vertexIndices: indices,
490
- polygonDimensions,
702
+ polygonDimensions: polygonDimensions,
491
703
  points: this.currentPoints
492
- };
493
- if (polygonDimensions[0] === 1)
494
- geometryData.type = "points";
495
- else if (polygonDimensions[0] === 2)
496
- geometryData.type = "lines";
704
+ }; // Note: assuming that all polys will be lines or points if the first is
705
+
706
+ if (polygonDimensions[0] === 1) geometryData.type = 'points';else if (polygonDimensions[0] === 2) geometryData.type = 'lines';
497
707
  this.currentLayer.geometry = geometryData;
498
708
  },
709
+
710
+ // Lists the tag strings that can be associated with polygons by the PTAG chunk.
711
+ // TAGS { tag-string[S0] * }
499
712
  parseTagStrings(length) {
500
713
  this.tree.tags = this.reader.getStringArray(length);
501
714
  },
715
+
716
+ // Associates tags of a given type with polygons in the most recent POLS chunk.
717
+ // PTAG { type[ID4], ( poly[VX], tag[U2] ) * }
502
718
  parsePolygonTagMapping(length) {
503
719
  var finalOffset = this.reader.offset + length;
504
720
  var type = this.reader.getIDTag();
505
- if (type === "SURF") {
721
+
722
+ if (type === 'SURF') {
506
723
  this.parseMaterialIndices(finalOffset);
507
724
  } else {
725
+ //PART, SMGP, COLR not supported
508
726
  this.reader.skip(length - 4);
509
727
  }
510
728
  },
729
+
511
730
  parseMaterialIndices(finalOffset) {
731
+ // array holds polygon index followed by material index
512
732
  this.currentLayer.geometry.materialIndices = [];
733
+
513
734
  while (this.reader.offset < finalOffset) {
514
735
  var polygonIndex = this.reader.getVariableLengthIndex();
515
736
  var materialIndex = this.reader.getUint16();
516
737
  this.currentLayer.geometry.materialIndices.push(polygonIndex, materialIndex);
517
738
  }
518
739
  },
740
+
519
741
  parseUnknownCHUNK(blockID, length) {
520
- console.warn("LWOLoader: unknown chunk type: " + blockID + " length: " + length);
742
+ console.warn('LWOLoader: unknown chunk type: ' + blockID + ' length: ' + length); // print the chunk plus some bytes padding either side
743
+ // printBuffer( this.reader.dv.buffer, this.reader.offset - 20, length + 40 );
744
+
521
745
  var data = this.reader.getString(length);
522
746
  this.currentForm[blockID] = data;
523
747
  }
748
+
524
749
  };
750
+
525
751
  function DataViewReader(buffer) {
526
752
  this.dv = new DataView(buffer);
527
753
  this.offset = 0;
528
754
  }
755
+
529
756
  DataViewReader.prototype = {
530
757
  constructor: DataViewReader,
531
- size: function() {
758
+ size: function () {
532
759
  return this.dv.buffer.byteLength;
533
760
  },
761
+
534
762
  setOffset(offset) {
535
763
  if (offset > 0 && offset < this.dv.buffer.byteLength) {
536
764
  this.offset = offset;
537
765
  } else {
538
- console.error("LWOLoader: invalid buffer offset");
766
+ console.error('LWOLoader: invalid buffer offset');
539
767
  }
540
768
  },
541
- endOfFile: function() {
542
- if (this.offset >= this.size())
543
- return true;
769
+
770
+ endOfFile: function () {
771
+ if (this.offset >= this.size()) return true;
544
772
  return false;
545
773
  },
546
- skip: function(length) {
774
+ skip: function (length) {
547
775
  this.offset += length;
548
776
  },
549
- getUint8: function() {
777
+ getUint8: function () {
550
778
  var value = this.dv.getUint8(this.offset);
551
779
  this.offset += 1;
552
780
  return value;
553
781
  },
554
- getUint16: function() {
782
+ getUint16: function () {
555
783
  var value = this.dv.getUint16(this.offset);
556
784
  this.offset += 2;
557
785
  return value;
558
786
  },
559
- getInt32: function() {
787
+ getInt32: function () {
560
788
  var value = this.dv.getInt32(this.offset, false);
561
789
  this.offset += 4;
562
790
  return value;
563
791
  },
564
- getUint32: function() {
792
+ getUint32: function () {
565
793
  var value = this.dv.getUint32(this.offset, false);
566
794
  this.offset += 4;
567
795
  return value;
568
796
  },
569
- getUint64: function() {
797
+ getUint64: function () {
570
798
  var low, high;
571
799
  high = this.getUint32();
572
800
  low = this.getUint32();
573
- return high * 4294967296 + low;
801
+ return high * 0x100000000 + low;
574
802
  },
575
- getFloat32: function() {
803
+ getFloat32: function () {
576
804
  var value = this.dv.getFloat32(this.offset, false);
577
805
  this.offset += 4;
578
806
  return value;
579
807
  },
580
- getFloat32Array: function(size) {
808
+ getFloat32Array: function (size) {
581
809
  var a = [];
810
+
582
811
  for (let i = 0; i < size; i++) {
583
812
  a.push(this.getFloat32());
584
813
  }
814
+
585
815
  return a;
586
816
  },
587
- getFloat64: function() {
817
+ getFloat64: function () {
588
818
  var value = this.dv.getFloat64(this.offset, this.littleEndian);
589
819
  this.offset += 8;
590
820
  return value;
591
821
  },
592
- getFloat64Array: function(size) {
822
+ getFloat64Array: function (size) {
593
823
  var a = [];
824
+
594
825
  for (let i = 0; i < size; i++) {
595
826
  a.push(this.getFloat64());
596
827
  }
828
+
597
829
  return a;
598
830
  },
831
+
832
+ // get variable-length index data type
833
+ // VX ::= index[U2] | (index + 0xFF000000)[U4]
834
+ // If the index value is less than 65,280 (0xFF00),then VX === U2
835
+ // otherwise VX === U4 with bits 24-31 set
836
+ // When reading an index, if the first byte encountered is 255 (0xFF), then
837
+ // the four-byte form is being used and the first byte should be discarded or masked out.
599
838
  getVariableLengthIndex() {
600
839
  var firstByte = this.getUint8();
840
+
601
841
  if (firstByte === 255) {
602
842
  return this.getUint8() * 65536 + this.getUint8() * 256 + this.getUint8();
603
843
  }
844
+
604
845
  return firstByte * 256 + this.getUint8();
605
846
  },
847
+
848
+ // An ID tag is a sequence of 4 bytes containing 7-bit ASCII values
606
849
  getIDTag() {
607
850
  return this.getString(4);
608
851
  },
609
- getString: function(size) {
610
- if (size === 0)
611
- return;
852
+
853
+ getString: function (size) {
854
+ if (size === 0) return; // note: safari 9 doesn't support Uint8Array.indexOf; create intermediate array instead
855
+
612
856
  var a = [];
857
+
613
858
  if (size) {
614
859
  for (let i = 0; i < size; i++) {
615
860
  a[i] = this.getUint8();
@@ -617,81 +862,90 @@ DataViewReader.prototype = {
617
862
  } else {
618
863
  var currentChar;
619
864
  var len = 0;
865
+
620
866
  while (currentChar !== 0) {
621
867
  currentChar = this.getUint8();
622
- if (currentChar !== 0)
623
- a.push(currentChar);
868
+ if (currentChar !== 0) a.push(currentChar);
624
869
  len++;
625
870
  }
626
- if (!isEven(len + 1))
627
- this.getUint8();
871
+
872
+ if (!isEven(len + 1)) this.getUint8(); // if string with terminating nullbyte is uneven, extra nullbyte is added
628
873
  }
629
- return THREE.LoaderUtils.decodeText(new Uint8Array(a));
874
+
875
+ return LoaderUtils.decodeText(new Uint8Array(a));
630
876
  },
631
- getStringArray: function(size) {
877
+ getStringArray: function (size) {
632
878
  var a = this.getString(size);
633
- a = a.split("\0");
634
- return a.filter(Boolean);
879
+ a = a.split('\0');
880
+ return a.filter(Boolean); // return array with any empty strings removed
635
881
  }
636
- };
882
+ }; // ************** DEBUGGER **************
883
+
637
884
  function Debugger() {
638
885
  this.active = false;
639
886
  this.depth = 0;
640
887
  this.formList = [];
641
888
  }
889
+
642
890
  Debugger.prototype = {
643
891
  constructor: Debugger,
644
- enable: function() {
892
+ enable: function () {
645
893
  this.active = true;
646
894
  },
647
- log: function() {
648
- if (!this.active)
649
- return;
895
+ log: function () {
896
+ if (!this.active) return;
650
897
  var nodeType;
898
+
651
899
  switch (this.node) {
652
900
  case 0:
653
- nodeType = "FORM";
901
+ nodeType = 'FORM';
654
902
  break;
903
+
655
904
  case 1:
656
- nodeType = "CHK";
905
+ nodeType = 'CHK';
657
906
  break;
907
+
658
908
  case 2:
659
- nodeType = "S-CHK";
909
+ nodeType = 'S-CHK';
660
910
  break;
661
911
  }
662
- console.log(
663
- "| ".repeat(this.depth) + nodeType,
664
- this.nodeID,
665
- `( ${this.offset} ) -> ( ${this.dataOffset + this.length} )`,
666
- this.node == 0 ? " {" : "",
667
- this.skipped ? "SKIPPED" : "",
668
- this.node == 0 && this.skipped ? "}" : ""
669
- );
912
+
913
+ console.log('| '.repeat(this.depth) + nodeType, this.nodeID, `( ${this.offset} ) -> ( ${this.dataOffset + this.length} )`, this.node == 0 ? ' {' : '', this.skipped ? 'SKIPPED' : '', this.node == 0 && this.skipped ? '}' : '');
914
+
670
915
  if (this.node == 0 && !this.skipped) {
671
916
  this.depth += 1;
672
917
  this.formList.push(this.dataOffset + this.length);
673
918
  }
919
+
674
920
  this.skipped = false;
675
921
  },
676
- closeForms: function() {
677
- if (!this.active)
678
- return;
922
+ closeForms: function () {
923
+ if (!this.active) return;
924
+
679
925
  for (let i = this.formList.length - 1; i >= 0; i--) {
680
926
  if (this.offset >= this.formList[i]) {
681
927
  this.depth -= 1;
682
- console.log("| ".repeat(this.depth) + "}");
928
+ console.log('| '.repeat(this.depth) + '}');
683
929
  this.formList.splice(-1, 1);
684
930
  }
685
931
  }
686
932
  }
687
- };
933
+ }; // ************** UTILITY FUNCTIONS **************
934
+
688
935
  function isEven(num) {
689
936
  return num % 2;
690
- }
937
+ } // calculate the length of the string in the buffer
938
+ // this will be string.length + nullbyte + optional padbyte to make the length even
939
+
940
+
691
941
  function stringOffset(string) {
692
942
  return string.length + 1 + (isEven(string.length + 1) ? 1 : 0);
693
- }
943
+ } // for testing purposes, dump buffer to console
944
+ // printBuffer( this.reader.dv.buffer, this.reader.offset, length );
945
+
946
+
694
947
  function printBuffer(buffer, from, to) {
695
- console.log(THREE.LoaderUtils.decodeText(new Uint8Array(buffer, from, to)));
948
+ console.log(LoaderUtils.decodeText(new Uint8Array(buffer, from, to)));
696
949
  }
697
- exports.IFFParser = IFFParser;
950
+
951
+ export { IFFParser };