three-stdlib 2.16.0 → 2.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1219) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +143 -64
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,95 +1,96 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- var AssimpLoader = function(manager) {
5
- THREE.Loader.call(this, manager);
1
+ import { Loader, LoaderUtils, FileLoader, TextureLoader, Vector3, Quaternion, Matrix4, Skeleton, BufferGeometry, MeshLambertMaterial, BufferAttribute, Mesh, SkinnedMesh, Object3D, MeshPhongMaterial, Bone, Color } from 'three';
2
+
3
+ var AssimpLoader = function (manager) {
4
+ Loader.call(this, manager);
6
5
  };
7
- AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
6
+
7
+ AssimpLoader.prototype = Object.assign(Object.create(Loader.prototype), {
8
8
  constructor: AssimpLoader,
9
- load: function(url, onLoad, onProgress, onError) {
9
+ load: function (url, onLoad, onProgress, onError) {
10
10
  var scope = this;
11
- var path = scope.path === "" ? THREE.LoaderUtils.extractUrlBase(url) : scope.path;
12
- var loader = new THREE.FileLoader(scope.manager);
11
+ var path = scope.path === '' ? LoaderUtils.extractUrlBase(url) : scope.path;
12
+ var loader = new FileLoader(scope.manager);
13
13
  loader.setPath(scope.path);
14
- loader.setResponseType("arraybuffer");
14
+ loader.setResponseType('arraybuffer');
15
15
  loader.setRequestHeader(scope.requestHeader);
16
16
  loader.setWithCredentials(scope.withCredentials);
17
- loader.load(
18
- url,
19
- function(buffer) {
20
- try {
21
- onLoad(scope.parse(buffer, path));
22
- } catch (e) {
23
- if (onError) {
24
- onError(e);
25
- } else {
26
- console.error(e);
27
- }
28
- scope.manager.itemError(url);
17
+ loader.load(url, function (buffer) {
18
+ try {
19
+ onLoad(scope.parse(buffer, path));
20
+ } catch (e) {
21
+ if (onError) {
22
+ onError(e);
23
+ } else {
24
+ console.error(e);
29
25
  }
30
- },
31
- onProgress,
32
- onError
33
- );
26
+
27
+ scope.manager.itemError(url);
28
+ }
29
+ }, onProgress, onError);
34
30
  },
35
- parse: function(buffer, path) {
36
- var textureLoader = new THREE.TextureLoader(this.manager);
31
+ parse: function (buffer, path) {
32
+ var textureLoader = new TextureLoader(this.manager);
37
33
  textureLoader.setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
38
34
  var Virtulous = {};
39
- Virtulous.KeyFrame = function(time, matrix) {
35
+
36
+ Virtulous.KeyFrame = function (time, matrix) {
40
37
  this.time = time;
41
38
  this.matrix = matrix.clone();
42
- this.position = new THREE.Vector3();
43
- this.quaternion = new THREE.Quaternion();
44
- this.scale = new THREE.Vector3(1, 1, 1);
39
+ this.position = new Vector3();
40
+ this.quaternion = new Quaternion();
41
+ this.scale = new Vector3(1, 1, 1);
45
42
  this.matrix.decompose(this.position, this.quaternion, this.scale);
46
- this.clone = function() {
43
+
44
+ this.clone = function () {
47
45
  var n = new Virtulous.KeyFrame(this.time, this.matrix);
48
46
  return n;
49
47
  };
50
- this.lerp = function(nextKey, time2) {
51
- time2 -= this.time;
48
+
49
+ this.lerp = function (nextKey, time) {
50
+ time -= this.time;
52
51
  var dist = nextKey.time - this.time;
53
- var l = time2 / dist;
52
+ var l = time / dist;
54
53
  var l2 = 1 - l;
55
54
  var keypos = this.position;
56
- var keyrot = this.quaternion;
55
+ var keyrot = this.quaternion; // var keyscl = key.parentspaceScl || key.scl;
56
+
57
57
  var key2pos = nextKey.position;
58
- var key2rot = nextKey.quaternion;
58
+ var key2rot = nextKey.quaternion; // var key2scl = key2.parentspaceScl || key2.scl;
59
+
59
60
  Virtulous.KeyFrame.tempAniPos.x = keypos.x * l2 + key2pos.x * l;
60
61
  Virtulous.KeyFrame.tempAniPos.y = keypos.y * l2 + key2pos.y * l;
61
- Virtulous.KeyFrame.tempAniPos.z = keypos.z * l2 + key2pos.z * l;
62
+ Virtulous.KeyFrame.tempAniPos.z = keypos.z * l2 + key2pos.z * l; // tempAniScale.x = keyscl[0] * l2 + key2scl[0] * l;
63
+ // tempAniScale.y = keyscl[1] * l2 + key2scl[1] * l;
64
+ // tempAniScale.z = keyscl[2] * l2 + key2scl[2] * l;
65
+
62
66
  Virtulous.KeyFrame.tempAniQuat.set(keyrot.x, keyrot.y, keyrot.z, keyrot.w);
63
67
  Virtulous.KeyFrame.tempAniQuat.slerp(key2rot, l);
64
- return Virtulous.KeyFrame.tempAniMatrix.compose(
65
- Virtulous.KeyFrame.tempAniPos,
66
- Virtulous.KeyFrame.tempAniQuat,
67
- Virtulous.KeyFrame.tempAniScale
68
- );
68
+ return Virtulous.KeyFrame.tempAniMatrix.compose(Virtulous.KeyFrame.tempAniPos, Virtulous.KeyFrame.tempAniQuat, Virtulous.KeyFrame.tempAniScale);
69
69
  };
70
70
  };
71
- Virtulous.KeyFrame.tempAniPos = new THREE.Vector3();
72
- Virtulous.KeyFrame.tempAniQuat = new THREE.Quaternion();
73
- Virtulous.KeyFrame.tempAniScale = new THREE.Vector3(1, 1, 1);
74
- Virtulous.KeyFrame.tempAniMatrix = new THREE.Matrix4();
75
- Virtulous.KeyFrameTrack = function() {
71
+
72
+ Virtulous.KeyFrame.tempAniPos = new Vector3();
73
+ Virtulous.KeyFrame.tempAniQuat = new Quaternion();
74
+ Virtulous.KeyFrame.tempAniScale = new Vector3(1, 1, 1);
75
+ Virtulous.KeyFrame.tempAniMatrix = new Matrix4();
76
+
77
+ Virtulous.KeyFrameTrack = function () {
76
78
  this.keys = [];
77
79
  this.target = null;
78
80
  this.time = 0;
79
81
  this.length = 0;
80
82
  this._accelTable = {};
81
83
  this.fps = 20;
82
- this.addKey = function(key) {
84
+
85
+ this.addKey = function (key) {
83
86
  this.keys.push(key);
84
87
  };
85
- this.init = function() {
88
+
89
+ this.init = function () {
86
90
  this.sortKeys();
87
- if (this.keys.length > 0)
88
- this.length = this.keys[this.keys.length - 1].time;
89
- else
90
- this.length = 0;
91
- if (!this.fps)
92
- return;
91
+ if (this.keys.length > 0) this.length = this.keys[this.keys.length - 1].time;else this.length = 0;
92
+ if (!this.fps) return;
93
+
93
94
  for (let j = 0; j < this.length * this.fps; j++) {
94
95
  for (let i = 0; i < this.keys.length; i++) {
95
96
  if (this.keys[i].time == j) {
@@ -102,56 +103,69 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
102
103
  }
103
104
  }
104
105
  };
105
- this.parseFromThree = function(data) {
106
+
107
+ this.parseFromThree = function (data) {
106
108
  var fps = data.fps;
107
109
  this.target = data.node;
108
110
  var track = data.hierarchy[0].keys;
111
+
109
112
  for (let i = 0; i < track.length; i++) {
110
113
  this.addKey(new Virtulous.KeyFrame(i / fps || track[i].time, track[i].targets[0].data));
111
114
  }
115
+
112
116
  this.init();
113
117
  };
114
- this.parseFromCollada = function(data) {
118
+
119
+ this.parseFromCollada = function (data) {
115
120
  var track = data.keys;
116
121
  var fps = this.fps;
122
+
117
123
  for (let i = 0; i < track.length; i++) {
118
124
  this.addKey(new Virtulous.KeyFrame(i / fps || track[i].time, track[i].matrix));
119
125
  }
126
+
120
127
  this.init();
121
128
  };
122
- this.sortKeys = function() {
129
+
130
+ this.sortKeys = function () {
123
131
  this.keys.sort(this.keySortFunc);
124
132
  };
125
- this.keySortFunc = function(a, b) {
133
+
134
+ this.keySortFunc = function (a, b) {
126
135
  return a.time - b.time;
127
136
  };
128
- this.clone = function() {
137
+
138
+ this.clone = function () {
129
139
  var t = new Virtulous.KeyFrameTrack();
130
140
  t.target = this.target;
131
141
  t.time = this.time;
132
142
  t.length = this.length;
143
+
133
144
  for (let i = 0; i < this.keys.length; i++) {
134
145
  t.addKey(this.keys[i].clone());
135
146
  }
147
+
136
148
  t.init();
137
149
  return t;
138
150
  };
139
- this.reTarget = function(root, compareitor) {
140
- if (!compareitor)
141
- compareitor = Virtulous.TrackTargetNodeNameCompare;
151
+
152
+ this.reTarget = function (root, compareitor) {
153
+ if (!compareitor) compareitor = Virtulous.TrackTargetNodeNameCompare;
142
154
  this.target = compareitor(root, this.target);
143
155
  };
144
- this.keySearchAccel = function(time) {
156
+
157
+ this.keySearchAccel = function (time) {
145
158
  time *= this.fps;
146
159
  time = Math.floor(time);
147
160
  return this._accelTable[time] || 0;
148
161
  };
149
- this.setTime = function(time) {
162
+
163
+ this.setTime = function (time) {
150
164
  time = Math.abs(time);
151
- if (this.length)
152
- time = time % this.length + 0.05;
165
+ if (this.length) time = time % this.length + 0.05;
153
166
  var key0 = null;
154
167
  var key1 = null;
168
+
155
169
  for (let i = this.keySearchAccel(time); i < this.keys.length; i++) {
156
170
  if (this.keys[i].time == time) {
157
171
  key0 = this.keys[i];
@@ -168,12 +182,14 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
168
182
  break;
169
183
  }
170
184
  }
185
+
171
186
  if (key0 && key1 && key0 !== key1) {
172
187
  this.target.matrixAutoUpdate = false;
173
188
  this.target.matrix.copy(key0.lerp(key1, time));
174
189
  this.target.matrixWorldNeedsUpdate = true;
175
190
  return;
176
191
  }
192
+
177
193
  if (key0 && key1 && key0 == key1) {
178
194
  this.target.matrixAutoUpdate = false;
179
195
  this.target.matrix.copy(key0.matrix);
@@ -182,158 +198,313 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
182
198
  }
183
199
  };
184
200
  };
185
- Virtulous.TrackTargetNodeNameCompare = function(root, target) {
201
+
202
+ Virtulous.TrackTargetNodeNameCompare = function (root, target) {
186
203
  function find(node, name) {
187
- if (node.name == name)
188
- return node;
204
+ if (node.name == name) return node;
205
+
189
206
  for (let i = 0; i < node.children.length; i++) {
190
207
  var r = find(node.children[i], name);
191
- if (r)
192
- return r;
208
+ if (r) return r;
193
209
  }
210
+
194
211
  return null;
195
212
  }
213
+
196
214
  return find(root, target.name);
197
215
  };
198
- Virtulous.Animation = function() {
216
+
217
+ Virtulous.Animation = function () {
199
218
  this.tracks = [];
200
219
  this.length = 0;
201
- this.addTrack = function(track) {
220
+
221
+ this.addTrack = function (track) {
202
222
  this.tracks.push(track);
203
223
  this.length = Math.max(track.length, this.length);
204
224
  };
205
- this.setTime = function(time) {
225
+
226
+ this.setTime = function (time) {
206
227
  this.time = time;
207
- for (let i = 0; i < this.tracks.length; i++)
208
- this.tracks[i].setTime(time);
228
+
229
+ for (let i = 0; i < this.tracks.length; i++) this.tracks[i].setTime(time);
209
230
  };
210
- this.clone = function(target, compareitor) {
211
- if (!compareitor)
212
- compareitor = Virtulous.TrackTargetNodeNameCompare;
231
+
232
+ this.clone = function (target, compareitor) {
233
+ if (!compareitor) compareitor = Virtulous.TrackTargetNodeNameCompare;
213
234
  var n = new Virtulous.Animation();
214
235
  n.target = target;
236
+
215
237
  for (let i = 0; i < this.tracks.length; i++) {
216
238
  var track = this.tracks[i].clone();
217
239
  track.reTarget(target, compareitor);
218
240
  n.addTrack(track);
219
241
  }
242
+
220
243
  return n;
221
244
  };
222
245
  };
223
- var ASSBIN_CHUNK_AICAMERA = 4660;
224
- var ASSBIN_CHUNK_AILIGHT = 4661;
225
- var ASSBIN_CHUNK_AITEXTURE = 4662;
226
- var ASSBIN_CHUNK_AIMESH = 4663;
227
- var ASSBIN_CHUNK_AINODEANIM = 4664;
228
- var ASSBIN_CHUNK_AISCENE = 4665;
229
- var ASSBIN_CHUNK_AIBONE = 4666;
230
- var ASSBIN_CHUNK_AIANIMATION = 4667;
231
- var ASSBIN_CHUNK_AINODE = 4668;
232
- var ASSBIN_CHUNK_AIMATERIAL = 4669;
233
- var ASSBIN_CHUNK_AIMATERIALPROPERTY = 4670;
234
- var ASSBIN_MESH_HAS_POSITIONS = 1;
235
- var ASSBIN_MESH_HAS_NORMALS = 2;
236
- var ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS = 4;
237
- var ASSBIN_MESH_HAS_TEXCOORD_BASE = 256;
238
- var ASSBIN_MESH_HAS_COLOR_BASE = 65536;
246
+
247
+ var ASSBIN_CHUNK_AICAMERA = 0x1234;
248
+ var ASSBIN_CHUNK_AILIGHT = 0x1235;
249
+ var ASSBIN_CHUNK_AITEXTURE = 0x1236;
250
+ var ASSBIN_CHUNK_AIMESH = 0x1237;
251
+ var ASSBIN_CHUNK_AINODEANIM = 0x1238;
252
+ var ASSBIN_CHUNK_AISCENE = 0x1239;
253
+ var ASSBIN_CHUNK_AIBONE = 0x123a;
254
+ var ASSBIN_CHUNK_AIANIMATION = 0x123b;
255
+ var ASSBIN_CHUNK_AINODE = 0x123c;
256
+ var ASSBIN_CHUNK_AIMATERIAL = 0x123d;
257
+ var ASSBIN_CHUNK_AIMATERIALPROPERTY = 0x123e;
258
+ var ASSBIN_MESH_HAS_POSITIONS = 0x1;
259
+ var ASSBIN_MESH_HAS_NORMALS = 0x2;
260
+ var ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS = 0x4;
261
+ var ASSBIN_MESH_HAS_TEXCOORD_BASE = 0x100;
262
+ var ASSBIN_MESH_HAS_COLOR_BASE = 0x10000;
239
263
  var AI_MAX_NUMBER_OF_COLOR_SETS = 1;
240
- var AI_MAX_NUMBER_OF_TEXTURECOORDS = 4;
264
+ var AI_MAX_NUMBER_OF_TEXTURECOORDS = 4; //var aiLightSource_UNDEFINED = 0x0;
241
265
  //! A directional light source has a well-defined direction
242
266
  //! but is infinitely far away. That's quite a good
243
267
  //! approximation for sun light.
244
- var aiLightSource_DIRECTIONAL = 1;
245
- //! A point light source has a well-defined position
268
+
269
+ var aiLightSource_DIRECTIONAL = 0x1; //! A point light source has a well-defined position
246
270
  //! in space but no direction - it emits light in all
247
271
  //! directions. A normal bulb is a point light.
272
+ //var aiLightSource_POINT = 0x2;
248
273
  //! A spot light source emits light in a specific
249
274
  //! angle. It has a position and a direction it is pointing to.
250
275
  //! A good example for a spot light is a light spot in
251
276
  //! sport arenas.
252
- var aiLightSource_SPOT = 3;
253
- //! The generic light level of the world, including the bounces
277
+
278
+ var aiLightSource_SPOT = 0x3; //! The generic light level of the world, including the bounces
254
279
  //! of all other lightsources.
255
280
  //! Typically, there's at most one ambient light in a scene.
256
281
  //! This light type doesn't have a valid position, direction, or
257
282
  //! other properties, just a color.
258
- var aiTextureType_DIFFUSE = 1;
259
- var aiTextureType_NORMALS = 6;
260
- var aiTextureType_OPACITY = 8;
261
- var aiTextureType_LIGHTMAP = 10;
283
+ //var aiLightSource_AMBIENT = 0x4;
284
+
285
+ /** Flat shading. Shading is done on per-face base,
286
+ * diffuse only. Also known as 'faceted shading'.
287
+ */
288
+ //var aiShadingMode_Flat = 0x1;
289
+
290
+ /** Simple Gouraud shading.
291
+ */
292
+ //var aiShadingMode_Gouraud = 0x2;
293
+
294
+ /** Phong-Shading -
295
+ */
296
+ //var aiShadingMode_Phong = 0x3;
297
+
298
+ /** Phong-Blinn-Shading
299
+ */
300
+ //var aiShadingMode_Blinn = 0x4;
301
+
302
+ /** Toon-Shading per pixel
303
+ *
304
+ * Also known as 'comic' shader.
305
+ */
306
+ //var aiShadingMode_Toon = 0x5;
307
+
308
+ /** OrenNayar-Shading per pixel
309
+ *
310
+ * Extension to standard Lambertian shading, taking the
311
+ * roughness of the material into account
312
+ */
313
+ //var aiShadingMode_OrenNayar = 0x6;
314
+
315
+ /** Minnaert-Shading per pixel
316
+ *
317
+ * Extension to standard Lambertian shading, taking the
318
+ * "darkness" of the material into account
319
+ */
320
+ //var aiShadingMode_Minnaert = 0x7;
321
+
322
+ /** CookTorrance-Shading per pixel
323
+ *
324
+ * Special shader for metallic surfaces.
325
+ */
326
+ //var aiShadingMode_CookTorrance = 0x8;
327
+
328
+ /** No shading at all. Constant light influence of 1.0.
329
+ */
330
+ //var aiShadingMode_NoShading = 0x9;
331
+
332
+ /** Fresnel shading
333
+ */
334
+ //var aiShadingMode_Fresnel = 0xa;
335
+ //var aiTextureType_NONE = 0x0;
336
+
337
+ /** The texture is combined with the result of the diffuse
338
+ * lighting equation.
339
+ */
340
+
341
+ var aiTextureType_DIFFUSE = 0x1;
342
+ /** The texture is combined with the result of the specular
343
+ * lighting equation.
344
+ */
345
+ //var aiTextureType_SPECULAR = 0x2;
346
+
347
+ /** The texture is combined with the result of the ambient
348
+ * lighting equation.
349
+ */
350
+ //var aiTextureType_AMBIENT = 0x3;
351
+
352
+ /** The texture is added to the result of the lighting
353
+ * calculation. It isn't influenced by incoming light.
354
+ */
355
+ //var aiTextureType_EMISSIVE = 0x4;
356
+
357
+ /** The texture is a height map.
358
+ *
359
+ * By convention, higher gray-scale values stand for
360
+ * higher elevations from the base height.
361
+ */
362
+ //var aiTextureType_HEIGHT = 0x5;
363
+
364
+ /** The texture is a (tangent space) normal-map.
365
+ *
366
+ * Again, there are several conventions for tangent-space
367
+ * normal maps. Assimp does (intentionally) not
368
+ * distinguish here.
369
+ */
370
+
371
+ var aiTextureType_NORMALS = 0x6;
372
+ /** The texture defines the glossiness of the material.
373
+ *
374
+ * The glossiness is in fact the exponent of the specular
375
+ * (phong) lighting equation. Usually there is a conversion
376
+ * function defined to map the linear color values in the
377
+ * texture to a suitable exponent. Have fun.
378
+ */
379
+ //var aiTextureType_SHININESS = 0x7;
380
+
381
+ /** The texture defines per-pixel opacity.
382
+ *
383
+ * Usually 'white' means opaque and 'black' means
384
+ * 'transparency'. Or quite the opposite. Have fun.
385
+ */
386
+
387
+ var aiTextureType_OPACITY = 0x8;
388
+ /** Displacement texture
389
+ *
390
+ * The exact purpose and format is application-dependent.
391
+ * Higher color values stand for higher vertex displacements.
392
+ */
393
+ //var aiTextureType_DISPLACEMENT = 0x9;
394
+
395
+ /** Lightmap texture (aka Ambient Occlusion)
396
+ *
397
+ * Both 'Lightmaps' and dedicated 'ambient occlusion maps' are
398
+ * covered by this material property. The texture contains a
399
+ * scaling value for the final color value of a pixel. Its
400
+ * intensity is not affected by incoming light.
401
+ */
402
+
403
+ var aiTextureType_LIGHTMAP = 0xa;
404
+ /** Reflection texture
405
+ *
406
+ * Contains the color of a perfect mirror reflection.
407
+ * Rarely used, almost never for real-time applications.
408
+ */
409
+ //var aiTextureType_REFLECTION = 0xB;
410
+
411
+ /** Unknown texture
412
+ *
413
+ * A texture reference that does not match any of the definitions
414
+ * above is considered to be 'unknown'. It is still imported,
415
+ * but is excluded from any further postprocessing.
416
+ */
417
+ //var aiTextureType_UNKNOWN = 0xC;
418
+
262
419
  var BONESPERVERT = 4;
420
+
263
421
  function ASSBIN_MESH_HAS_TEXCOORD(n) {
264
422
  return ASSBIN_MESH_HAS_TEXCOORD_BASE << n;
265
423
  }
424
+
266
425
  function ASSBIN_MESH_HAS_COLOR(n) {
267
426
  return ASSBIN_MESH_HAS_COLOR_BASE << n;
268
427
  }
428
+
269
429
  function markBones(scene) {
270
430
  for (let i in scene.mMeshes) {
271
431
  var mesh = scene.mMeshes[i];
432
+
272
433
  for (let k in mesh.mBones) {
273
434
  var boneNode = scene.findNode(mesh.mBones[k].mName);
274
- if (boneNode)
275
- boneNode.isBone = true;
435
+ if (boneNode) boneNode.isBone = true;
276
436
  }
277
437
  }
278
438
  }
439
+
279
440
  function cloneTreeToBones(root, scene) {
280
- var rootBone = new THREE.Bone();
441
+ var rootBone = new Bone();
281
442
  rootBone.matrix.copy(root.matrix);
282
443
  rootBone.matrixWorld.copy(root.matrixWorld);
283
444
  rootBone.position.copy(root.position);
284
445
  rootBone.quaternion.copy(root.quaternion);
285
446
  rootBone.scale.copy(root.scale);
286
447
  scene.nodeCount++;
287
- rootBone.name = "bone_" + root.name + scene.nodeCount.toString();
288
- if (!scene.nodeToBoneMap[root.name])
289
- scene.nodeToBoneMap[root.name] = [];
448
+ rootBone.name = 'bone_' + root.name + scene.nodeCount.toString();
449
+ if (!scene.nodeToBoneMap[root.name]) scene.nodeToBoneMap[root.name] = [];
290
450
  scene.nodeToBoneMap[root.name].push(rootBone);
451
+
291
452
  for (let i in root.children) {
292
453
  var child = cloneTreeToBones(root.children[i], scene);
293
454
  rootBone.add(child);
294
455
  }
456
+
295
457
  return rootBone;
296
458
  }
459
+
297
460
  function sortWeights(indexes, weights) {
298
461
  var pairs = [];
462
+
299
463
  for (let i = 0; i < indexes.length; i++) {
300
464
  pairs.push({
301
465
  i: indexes[i],
302
466
  w: weights[i]
303
467
  });
304
468
  }
305
- pairs.sort(function(a, b) {
469
+
470
+ pairs.sort(function (a, b) {
306
471
  return b.w - a.w;
307
472
  });
473
+
308
474
  while (pairs.length < 4) {
309
475
  pairs.push({
310
476
  i: 0,
311
477
  w: 0
312
478
  });
313
479
  }
314
- if (pairs.length > 4)
315
- pairs.length = 4;
480
+
481
+ if (pairs.length > 4) pairs.length = 4;
316
482
  var sum = 0;
483
+
317
484
  for (let i = 0; i < 4; i++) {
318
485
  sum += pairs[i].w * pairs[i].w;
319
486
  }
487
+
320
488
  sum = Math.sqrt(sum);
489
+
321
490
  for (let i = 0; i < 4; i++) {
322
491
  pairs[i].w = pairs[i].w / sum;
323
492
  indexes[i] = pairs[i].i;
324
493
  weights[i] = pairs[i].w;
325
494
  }
326
495
  }
496
+
327
497
  function findMatchingBone(root, name) {
328
- if (root.name.indexOf("bone_" + name) == 0)
329
- return root;
498
+ if (root.name.indexOf('bone_' + name) == 0) return root;
499
+
330
500
  for (let i in root.children) {
331
501
  var ret = findMatchingBone(root.children[i], name);
332
- if (ret)
333
- return ret;
502
+ if (ret) return ret;
334
503
  }
335
- return void 0;
504
+
505
+ return undefined;
336
506
  }
507
+
337
508
  function aiMesh() {
338
509
  this.mPrimitiveTypes = 0;
339
510
  this.mNumVertices = 0;
@@ -348,303 +519,354 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
348
519
  this.mTextureCoords = [[]];
349
520
  this.mFaces = [];
350
521
  this.mBones = [];
351
- this.hookupSkeletons = function(scene) {
352
- if (this.mBones.length == 0)
353
- return;
522
+
523
+ this.hookupSkeletons = function (scene) {
524
+ if (this.mBones.length == 0) return;
354
525
  var allBones = [];
355
526
  var offsetMatrix = [];
356
527
  var skeletonRoot = scene.findNode(this.mBones[0].mName);
528
+
357
529
  while (skeletonRoot.mParent && skeletonRoot.mParent.isBone) {
358
530
  skeletonRoot = skeletonRoot.mParent;
359
531
  }
532
+
360
533
  var threeSkeletonRoot = skeletonRoot.toTHREE(scene);
361
534
  var threeSkeletonRootBone = cloneTreeToBones(threeSkeletonRoot, scene);
362
535
  this.threeNode.add(threeSkeletonRootBone);
536
+
363
537
  for (let i = 0; i < this.mBones.length; i++) {
364
538
  var bone = findMatchingBone(threeSkeletonRootBone, this.mBones[i].mName);
539
+
365
540
  if (bone) {
366
541
  var tbone = bone;
367
- allBones.push(tbone);
542
+ allBones.push(tbone); //tbone.matrixAutoUpdate = false;
543
+
368
544
  offsetMatrix.push(this.mBones[i].mOffsetMatrix.toTHREE());
369
545
  } else {
370
546
  var skeletonRoot = scene.findNode(this.mBones[i].mName);
371
- if (!skeletonRoot)
372
- return;
547
+ if (!skeletonRoot) return;
373
548
  var threeSkeletonRoot = skeletonRoot.toTHREE(scene);
374
549
  var threeSkeletonRootBone = cloneTreeToBones(threeSkeletonRoot, scene);
375
550
  this.threeNode.add(threeSkeletonRootBone);
376
551
  var bone = findMatchingBone(threeSkeletonRootBone, this.mBones[i].mName);
377
552
  var tbone = bone;
378
- allBones.push(tbone);
553
+ allBones.push(tbone); //tbone.matrixAutoUpdate = false;
554
+
379
555
  offsetMatrix.push(this.mBones[i].mOffsetMatrix.toTHREE());
380
556
  }
381
557
  }
382
- var skeleton = new THREE.Skeleton(allBones, offsetMatrix);
383
- this.threeNode.bind(skeleton, new THREE.Matrix4());
558
+
559
+ var skeleton = new Skeleton(allBones, offsetMatrix);
560
+ this.threeNode.bind(skeleton, new Matrix4());
384
561
  this.threeNode.material.skinning = true;
385
562
  };
386
- this.toTHREE = function(scene) {
387
- if (this.threeNode)
388
- return this.threeNode;
389
- var geometry = new THREE.BufferGeometry();
563
+
564
+ this.toTHREE = function (scene) {
565
+ if (this.threeNode) return this.threeNode;
566
+ var geometry = new BufferGeometry();
390
567
  var mat;
391
- if (scene.mMaterials[this.mMaterialIndex])
392
- mat = scene.mMaterials[this.mMaterialIndex].toTHREE(scene);
393
- else
394
- mat = new THREE.MeshLambertMaterial();
395
- geometry.setIndex(new THREE.BufferAttribute(new Uint32Array(this.mIndexArray), 1));
396
- geometry.setAttribute("position", new THREE.BufferAttribute(this.mVertexBuffer, 3));
568
+ if (scene.mMaterials[this.mMaterialIndex]) mat = scene.mMaterials[this.mMaterialIndex].toTHREE(scene);else mat = new MeshLambertMaterial();
569
+ geometry.setIndex(new BufferAttribute(new Uint32Array(this.mIndexArray), 1));
570
+ geometry.setAttribute('position', new BufferAttribute(this.mVertexBuffer, 3));
571
+
397
572
  if (this.mNormalBuffer && this.mNormalBuffer.length > 0) {
398
- geometry.setAttribute("normal", new THREE.BufferAttribute(this.mNormalBuffer, 3));
573
+ geometry.setAttribute('normal', new BufferAttribute(this.mNormalBuffer, 3));
399
574
  }
575
+
400
576
  if (this.mColorBuffer && this.mColorBuffer.length > 0) {
401
- geometry.setAttribute("color", new THREE.BufferAttribute(this.mColorBuffer, 4));
577
+ geometry.setAttribute('color', new BufferAttribute(this.mColorBuffer, 4));
402
578
  }
579
+
403
580
  if (this.mTexCoordsBuffers[0] && this.mTexCoordsBuffers[0].length > 0) {
404
- geometry.setAttribute("uv", new THREE.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[0]), 2));
581
+ geometry.setAttribute('uv', new BufferAttribute(new Float32Array(this.mTexCoordsBuffers[0]), 2));
405
582
  }
583
+
406
584
  if (this.mTexCoordsBuffers[1] && this.mTexCoordsBuffers[1].length > 0) {
407
- geometry.setAttribute("uv1", new THREE.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[1]), 2));
585
+ geometry.setAttribute('uv1', new BufferAttribute(new Float32Array(this.mTexCoordsBuffers[1]), 2));
408
586
  }
587
+
409
588
  if (this.mTangentBuffer && this.mTangentBuffer.length > 0) {
410
- geometry.setAttribute("tangents", new THREE.BufferAttribute(this.mTangentBuffer, 3));
589
+ geometry.setAttribute('tangents', new BufferAttribute(this.mTangentBuffer, 3));
411
590
  }
591
+
412
592
  if (this.mBitangentBuffer && this.mBitangentBuffer.length > 0) {
413
- geometry.setAttribute("bitangents", new THREE.BufferAttribute(this.mBitangentBuffer, 3));
593
+ geometry.setAttribute('bitangents', new BufferAttribute(this.mBitangentBuffer, 3));
414
594
  }
595
+
415
596
  if (this.mBones.length > 0) {
416
597
  var weights = [];
417
598
  var bones = [];
599
+
418
600
  for (let i = 0; i < this.mBones.length; i++) {
419
601
  for (let j = 0; j < this.mBones[i].mWeights.length; j++) {
420
602
  var weight = this.mBones[i].mWeights[j];
603
+
421
604
  if (weight) {
422
- if (!weights[weight.mVertexId])
423
- weights[weight.mVertexId] = [];
424
- if (!bones[weight.mVertexId])
425
- bones[weight.mVertexId] = [];
605
+ if (!weights[weight.mVertexId]) weights[weight.mVertexId] = [];
606
+ if (!bones[weight.mVertexId]) bones[weight.mVertexId] = [];
426
607
  weights[weight.mVertexId].push(weight.mWeight);
427
608
  bones[weight.mVertexId].push(parseInt(i));
428
609
  }
429
610
  }
430
611
  }
612
+
431
613
  for (let i in bones) {
432
614
  sortWeights(bones[i], weights[i]);
433
615
  }
616
+
434
617
  var _weights = [];
435
618
  var _bones = [];
619
+
436
620
  for (let i = 0; i < weights.length; i++) {
437
621
  for (let j = 0; j < 4; j++) {
438
622
  if (weights[i] && bones[i]) {
439
623
  _weights.push(weights[i][j]);
624
+
440
625
  _bones.push(bones[i][j]);
441
626
  } else {
442
627
  _weights.push(0);
628
+
443
629
  _bones.push(0);
444
630
  }
445
631
  }
446
632
  }
447
- geometry.setAttribute("skinWeight", new THREE.BufferAttribute(new Float32Array(_weights), BONESPERVERT));
448
- geometry.setAttribute("skinIndex", new THREE.BufferAttribute(new Float32Array(_bones), BONESPERVERT));
633
+
634
+ geometry.setAttribute('skinWeight', new BufferAttribute(new Float32Array(_weights), BONESPERVERT));
635
+ geometry.setAttribute('skinIndex', new BufferAttribute(new Float32Array(_bones), BONESPERVERT));
449
636
  }
637
+
450
638
  var mesh;
451
- if (this.mBones.length == 0)
452
- mesh = new THREE.Mesh(geometry, mat);
639
+ if (this.mBones.length == 0) mesh = new Mesh(geometry, mat);
640
+
453
641
  if (this.mBones.length > 0) {
454
- mesh = new THREE.SkinnedMesh(geometry, mat);
642
+ mesh = new SkinnedMesh(geometry, mat);
455
643
  mesh.normalizeSkinWeights();
456
644
  }
457
- this.threeNode = mesh;
645
+
646
+ this.threeNode = mesh; //mesh.matrixAutoUpdate = false;
647
+
458
648
  return mesh;
459
649
  };
460
650
  }
651
+
461
652
  function aiFace() {
462
653
  this.mNumIndices = 0;
463
654
  this.mIndices = [];
464
655
  }
656
+
465
657
  function aiVector3D() {
466
658
  this.x = 0;
467
659
  this.y = 0;
468
660
  this.z = 0;
469
- this.toTHREE = function() {
470
- return new THREE.Vector3(this.x, this.y, this.z);
661
+
662
+ this.toTHREE = function () {
663
+ return new Vector3(this.x, this.y, this.z);
471
664
  };
472
665
  }
666
+
473
667
  function aiColor3D() {
474
668
  this.r = 0;
475
669
  this.g = 0;
476
670
  this.b = 0;
477
671
  this.a = 0;
478
- this.toTHREE = function() {
479
- return new THREE.Color(this.r, this.g, this.b);
672
+
673
+ this.toTHREE = function () {
674
+ return new Color(this.r, this.g, this.b);
480
675
  };
481
676
  }
677
+
482
678
  function aiQuaternion() {
483
679
  this.x = 0;
484
680
  this.y = 0;
485
681
  this.z = 0;
486
682
  this.w = 0;
487
- this.toTHREE = function() {
488
- return new THREE.Quaternion(this.x, this.y, this.z, this.w);
683
+
684
+ this.toTHREE = function () {
685
+ return new Quaternion(this.x, this.y, this.z, this.w);
489
686
  };
490
687
  }
688
+
491
689
  function aiVertexWeight() {
492
690
  this.mVertexId = 0;
493
691
  this.mWeight = 0;
494
692
  }
693
+
495
694
  function aiString() {
496
695
  this.data = [];
497
- this.toString = function() {
498
- var str = "";
499
- this.data.forEach(function(i) {
696
+
697
+ this.toString = function () {
698
+ var str = '';
699
+ this.data.forEach(function (i) {
500
700
  str += String.fromCharCode(i);
501
701
  });
502
- return str.replace(/[^\x20-\x7E]+/g, "");
702
+ return str.replace(/[^\x20-\x7E]+/g, '');
503
703
  };
504
704
  }
705
+
505
706
  function aiVectorKey() {
506
707
  this.mTime = 0;
507
708
  this.mValue = null;
508
709
  }
710
+
509
711
  function aiQuatKey() {
510
712
  this.mTime = 0;
511
713
  this.mValue = null;
512
714
  }
715
+
513
716
  function aiNode() {
514
- this.mName = "";
717
+ this.mName = '';
515
718
  this.mTransformation = [];
516
719
  this.mNumChildren = 0;
517
720
  this.mNumMeshes = 0;
518
721
  this.mMeshes = [];
519
722
  this.mChildren = [];
520
- this.toTHREE = function(scene) {
521
- if (this.threeNode)
522
- return this.threeNode;
523
- var o = new THREE.Object3D();
723
+
724
+ this.toTHREE = function (scene) {
725
+ if (this.threeNode) return this.threeNode;
726
+ var o = new Object3D();
524
727
  o.name = this.mName;
525
728
  o.matrix = this.mTransformation.toTHREE();
729
+
526
730
  for (let i = 0; i < this.mChildren.length; i++) {
527
731
  o.add(this.mChildren[i].toTHREE(scene));
528
732
  }
733
+
529
734
  for (let i = 0; i < this.mMeshes.length; i++) {
530
735
  o.add(scene.mMeshes[this.mMeshes[i]].toTHREE(scene));
531
736
  }
532
- this.threeNode = o;
737
+
738
+ this.threeNode = o; //o.matrixAutoUpdate = false;
739
+
533
740
  o.matrix.decompose(o.position, o.quaternion, o.scale);
534
741
  return o;
535
742
  };
536
743
  }
744
+
537
745
  function aiBone() {
538
- this.mName = "";
746
+ this.mName = '';
539
747
  this.mNumWeights = 0;
540
748
  this.mOffsetMatrix = 0;
541
749
  }
750
+
542
751
  function aiMaterialProperty() {
543
- this.mKey = "";
752
+ this.mKey = '';
544
753
  this.mSemantic = 0;
545
754
  this.mIndex = 0;
546
755
  this.mData = [];
547
756
  this.mDataLength = 0;
548
757
  this.mType = 0;
549
- this.dataAsColor = function() {
758
+
759
+ this.dataAsColor = function () {
550
760
  var array = new Uint8Array(this.mData).buffer;
551
761
  var reader = new DataView(array);
552
762
  var r = reader.getFloat32(0, true);
553
763
  var g = reader.getFloat32(4, true);
554
- var b = reader.getFloat32(8, true);
555
- return new THREE.Color(r, g, b);
764
+ var b = reader.getFloat32(8, true); //var a = reader.getFloat32(12, true);
765
+
766
+ return new Color(r, g, b);
556
767
  };
557
- this.dataAsFloat = function() {
768
+
769
+ this.dataAsFloat = function () {
558
770
  var array = new Uint8Array(this.mData).buffer;
559
771
  var reader = new DataView(array);
560
772
  var r = reader.getFloat32(0, true);
561
773
  return r;
562
774
  };
563
- this.dataAsBool = function() {
775
+
776
+ this.dataAsBool = function () {
564
777
  var array = new Uint8Array(this.mData).buffer;
565
778
  var reader = new DataView(array);
566
779
  var r = reader.getFloat32(0, true);
567
780
  return !!r;
568
781
  };
569
- this.dataAsString = function() {
782
+
783
+ this.dataAsString = function () {
570
784
  var s = new aiString();
571
785
  s.data = this.mData;
572
786
  return s.toString();
573
787
  };
574
- this.dataAsMap = function() {
788
+
789
+ this.dataAsMap = function () {
575
790
  var s = new aiString();
576
791
  s.data = this.mData;
577
- var path2 = s.toString();
578
- path2 = path2.replace(/\\/g, "/");
579
- if (path2.indexOf("/") != -1) {
580
- path2 = path2.substr(path2.lastIndexOf("/") + 1);
792
+ var path = s.toString();
793
+ path = path.replace(/\\/g, '/');
794
+
795
+ if (path.indexOf('/') != -1) {
796
+ path = path.substr(path.lastIndexOf('/') + 1);
581
797
  }
582
- return textureLoader.load(path2);
798
+
799
+ return textureLoader.load(path);
583
800
  };
584
801
  }
802
+
585
803
  var namePropMapping = {
586
- "?mat.name": "name",
587
- "$mat.shadingm": "shading",
588
- "$mat.twosided": "twoSided",
589
- "$mat.wireframe": "wireframe",
590
- "$clr.ambient": "ambient",
591
- "$clr.diffuse": "color",
592
- "$clr.specular": "specular",
593
- "$clr.emissive": "emissive",
594
- "$clr.transparent": "transparent",
595
- "$clr.reflective": "reflect",
596
- "$mat.shininess": "shininess",
597
- "$mat.reflectivity": "reflectivity",
598
- "$mat.refracti": "refraction",
599
- "$tex.file": "map"
804
+ '?mat.name': 'name',
805
+ '$mat.shadingm': 'shading',
806
+ '$mat.twosided': 'twoSided',
807
+ '$mat.wireframe': 'wireframe',
808
+ '$clr.ambient': 'ambient',
809
+ '$clr.diffuse': 'color',
810
+ '$clr.specular': 'specular',
811
+ '$clr.emissive': 'emissive',
812
+ '$clr.transparent': 'transparent',
813
+ '$clr.reflective': 'reflect',
814
+ '$mat.shininess': 'shininess',
815
+ '$mat.reflectivity': 'reflectivity',
816
+ '$mat.refracti': 'refraction',
817
+ '$tex.file': 'map'
600
818
  };
601
819
  var nameTypeMapping = {
602
- "?mat.name": "string",
603
- "$mat.shadingm": "bool",
604
- "$mat.twosided": "bool",
605
- "$mat.wireframe": "bool",
606
- "$clr.ambient": "color",
607
- "$clr.diffuse": "color",
608
- "$clr.specular": "color",
609
- "$clr.emissive": "color",
610
- "$clr.transparent": "color",
611
- "$clr.reflective": "color",
612
- "$mat.shininess": "float",
613
- "$mat.reflectivity": "float",
614
- "$mat.refracti": "float",
615
- "$tex.file": "map"
820
+ '?mat.name': 'string',
821
+ '$mat.shadingm': 'bool',
822
+ '$mat.twosided': 'bool',
823
+ '$mat.wireframe': 'bool',
824
+ '$clr.ambient': 'color',
825
+ '$clr.diffuse': 'color',
826
+ '$clr.specular': 'color',
827
+ '$clr.emissive': 'color',
828
+ '$clr.transparent': 'color',
829
+ '$clr.reflective': 'color',
830
+ '$mat.shininess': 'float',
831
+ '$mat.reflectivity': 'float',
832
+ '$mat.refracti': 'float',
833
+ '$tex.file': 'map'
616
834
  };
835
+
617
836
  function aiMaterial() {
618
837
  this.mNumAllocated = 0;
619
838
  this.mNumProperties = 0;
620
839
  this.mProperties = [];
621
- this.toTHREE = function() {
622
- var mat = new THREE.MeshPhongMaterial();
840
+
841
+ this.toTHREE = function () {
842
+ var mat = new MeshPhongMaterial();
843
+
623
844
  for (let i = 0; i < this.mProperties.length; i++) {
624
- if (nameTypeMapping[this.mProperties[i].mKey] == "float") {
845
+ if (nameTypeMapping[this.mProperties[i].mKey] == 'float') {
625
846
  mat[namePropMapping[this.mProperties[i].mKey]] = this.mProperties[i].dataAsFloat();
626
847
  }
627
- if (nameTypeMapping[this.mProperties[i].mKey] == "color") {
848
+
849
+ if (nameTypeMapping[this.mProperties[i].mKey] == 'color') {
628
850
  mat[namePropMapping[this.mProperties[i].mKey]] = this.mProperties[i].dataAsColor();
629
851
  }
630
- if (nameTypeMapping[this.mProperties[i].mKey] == "bool") {
852
+
853
+ if (nameTypeMapping[this.mProperties[i].mKey] == 'bool') {
631
854
  mat[namePropMapping[this.mProperties[i].mKey]] = this.mProperties[i].dataAsBool();
632
855
  }
633
- if (nameTypeMapping[this.mProperties[i].mKey] == "string") {
856
+
857
+ if (nameTypeMapping[this.mProperties[i].mKey] == 'string') {
634
858
  mat[namePropMapping[this.mProperties[i].mKey]] = this.mProperties[i].dataAsString();
635
859
  }
636
- if (nameTypeMapping[this.mProperties[i].mKey] == "map") {
860
+
861
+ if (nameTypeMapping[this.mProperties[i].mKey] == 'map') {
637
862
  var prop = this.mProperties[i];
638
- if (prop.mSemantic == aiTextureType_DIFFUSE)
639
- mat.map = this.mProperties[i].dataAsMap();
640
- if (prop.mSemantic == aiTextureType_NORMALS)
641
- mat.normalMap = this.mProperties[i].dataAsMap();
642
- if (prop.mSemantic == aiTextureType_LIGHTMAP)
643
- mat.lightMap = this.mProperties[i].dataAsMap();
644
- if (prop.mSemantic == aiTextureType_OPACITY)
645
- mat.alphaMap = this.mProperties[i].dataAsMap();
863
+ if (prop.mSemantic == aiTextureType_DIFFUSE) mat.map = this.mProperties[i].dataAsMap();
864
+ if (prop.mSemantic == aiTextureType_NORMALS) mat.normalMap = this.mProperties[i].dataAsMap();
865
+ if (prop.mSemantic == aiTextureType_LIGHTMAP) mat.lightMap = this.mProperties[i].dataAsMap();
866
+ if (prop.mSemantic == aiTextureType_OPACITY) mat.alphaMap = this.mProperties[i].dataAsMap();
646
867
  }
647
868
  }
869
+
648
870
  mat.ambient.r = 0.53;
649
871
  mat.ambient.g = 0.53;
650
872
  mat.ambient.b = 0.53;
@@ -654,31 +876,36 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
654
876
  return mat;
655
877
  };
656
878
  }
879
+
657
880
  function veclerp(v1, v2, l) {
658
- var v = new THREE.Vector3();
881
+ var v = new Vector3();
659
882
  var lm1 = 1 - l;
660
883
  v.x = v1.x * l + v2.x * lm1;
661
884
  v.y = v1.y * l + v2.y * lm1;
662
885
  v.z = v1.z * l + v2.z * lm1;
663
886
  return v;
664
887
  }
888
+
665
889
  function quatlerp(q1, q2, l) {
666
890
  return q1.clone().slerp(q2, 1 - l);
667
891
  }
892
+
668
893
  function sampleTrack(keys, time, lne, lerp) {
669
- if (keys.length == 1)
670
- return keys[0].mValue.toTHREE();
894
+ if (keys.length == 1) return keys[0].mValue.toTHREE();
671
895
  var dist = Infinity;
672
896
  var key = null;
673
897
  var nextKey = null;
898
+
674
899
  for (let i = 0; i < keys.length; i++) {
675
900
  var timeDist = Math.abs(keys[i].mTime - time);
901
+
676
902
  if (timeDist < dist && keys[i].mTime <= time) {
677
903
  dist = timeDist;
678
904
  key = keys[i];
679
905
  nextKey = keys[i + 1];
680
906
  }
681
907
  }
908
+
682
909
  if (!key) {
683
910
  return null;
684
911
  } else if (nextKey) {
@@ -695,62 +922,57 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
695
922
  return lerp(key.mValue.toTHREE(), nextKey.mValue.toTHREE(), l);
696
923
  }
697
924
  }
925
+
698
926
  function aiNodeAnim() {
699
- this.mNodeName = "";
927
+ this.mNodeName = '';
700
928
  this.mNumPositionKeys = 0;
701
929
  this.mNumRotationKeys = 0;
702
930
  this.mNumScalingKeys = 0;
703
931
  this.mPositionKeys = [];
704
932
  this.mRotationKeys = [];
705
933
  this.mScalingKeys = [];
706
- this.mPreState = "";
707
- this.mPostState = "";
708
- this.init = function(tps) {
709
- if (!tps)
710
- tps = 1;
711
- function t(t2) {
712
- t2.mTime /= tps;
934
+ this.mPreState = '';
935
+ this.mPostState = '';
936
+
937
+ this.init = function (tps) {
938
+ if (!tps) tps = 1;
939
+
940
+ function t(t) {
941
+ t.mTime /= tps;
713
942
  }
943
+
714
944
  this.mPositionKeys.forEach(t);
715
945
  this.mRotationKeys.forEach(t);
716
946
  this.mScalingKeys.forEach(t);
717
947
  };
718
- this.sortKeys = function() {
948
+
949
+ this.sortKeys = function () {
719
950
  function comp(a, b) {
720
951
  return a.mTime - b.mTime;
721
952
  }
953
+
722
954
  this.mPositionKeys.sort(comp);
723
955
  this.mRotationKeys.sort(comp);
724
956
  this.mScalingKeys.sort(comp);
725
957
  };
726
- this.getLength = function() {
727
- return Math.max(
728
- Math.max.apply(
729
- null,
730
- this.mPositionKeys.map(function(a) {
731
- return a.mTime;
732
- })
733
- ),
734
- Math.max.apply(
735
- null,
736
- this.mRotationKeys.map(function(a) {
737
- return a.mTime;
738
- })
739
- ),
740
- Math.max.apply(
741
- null,
742
- this.mScalingKeys.map(function(a) {
743
- return a.mTime;
744
- })
745
- )
746
- );
958
+
959
+ this.getLength = function () {
960
+ return Math.max(Math.max.apply(null, this.mPositionKeys.map(function (a) {
961
+ return a.mTime;
962
+ })), Math.max.apply(null, this.mRotationKeys.map(function (a) {
963
+ return a.mTime;
964
+ })), Math.max.apply(null, this.mScalingKeys.map(function (a) {
965
+ return a.mTime;
966
+ })));
747
967
  };
748
- this.toTHREE = function(o) {
968
+
969
+ this.toTHREE = function (o) {
749
970
  this.sortKeys();
750
971
  var length = this.getLength();
751
972
  var track = new Virtulous.KeyFrameTrack();
973
+
752
974
  for (let i = 0; i < length; i += 0.05) {
753
- var matrix = new THREE.Matrix4();
975
+ var matrix = new Matrix4();
754
976
  var time = i;
755
977
  var pos = sampleTrack(this.mPositionKeys, time, length, veclerp);
756
978
  var scale = sampleTrack(this.mScalingKeys, time, length, veclerp);
@@ -759,8 +981,10 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
759
981
  var key = new Virtulous.KeyFrame(time, matrix);
760
982
  track.addKey(key);
761
983
  }
984
+
762
985
  track.target = o.findNode(this.mNodeName).toTHREE();
763
986
  var tracks = [track];
987
+
764
988
  if (o.nodeToBoneMap[this.mNodeName]) {
765
989
  for (let i = 0; i < o.nodeToBoneMap[this.mNodeName].length; i++) {
766
990
  var t2 = track.clone();
@@ -768,42 +992,47 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
768
992
  tracks.push(t2);
769
993
  }
770
994
  }
995
+
771
996
  return tracks;
772
997
  };
773
998
  }
999
+
774
1000
  function aiAnimation() {
775
- this.mName = "";
1001
+ this.mName = '';
776
1002
  this.mDuration = 0;
777
1003
  this.mTicksPerSecond = 0;
778
1004
  this.mNumChannels = 0;
779
1005
  this.mChannels = [];
780
- this.toTHREE = function(root) {
1006
+
1007
+ this.toTHREE = function (root) {
781
1008
  var animationHandle = new Virtulous.Animation();
1009
+
782
1010
  for (let i in this.mChannels) {
783
1011
  this.mChannels[i].init(this.mTicksPerSecond);
784
1012
  var tracks = this.mChannels[i].toTHREE(root);
1013
+
785
1014
  for (let j in tracks) {
786
1015
  tracks[j].init();
787
1016
  animationHandle.addTrack(tracks[j]);
788
1017
  }
789
1018
  }
790
- animationHandle.length = Math.max.apply(
791
- null,
792
- animationHandle.tracks.map(function(e) {
793
- return e.length;
794
- })
795
- );
1019
+
1020
+ animationHandle.length = Math.max.apply(null, animationHandle.tracks.map(function (e) {
1021
+ return e.length;
1022
+ }));
796
1023
  return animationHandle;
797
1024
  };
798
1025
  }
1026
+
799
1027
  function aiTexture() {
800
1028
  this.mWidth = 0;
801
1029
  this.mHeight = 0;
802
1030
  this.texAchFormatHint = [];
803
1031
  this.pcData = [];
804
1032
  }
1033
+
805
1034
  function aiLight() {
806
- this.mName = "";
1035
+ this.mName = '';
807
1036
  this.mType = 0;
808
1037
  this.mAttenuationConstant = 0;
809
1038
  this.mAttenuationLinear = 0;
@@ -814,8 +1043,9 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
814
1043
  this.mColorSpecular = null;
815
1044
  this.mColorAmbient = null;
816
1045
  }
1046
+
817
1047
  function aiCamera() {
818
- this.mName = "";
1048
+ this.mName = '';
819
1049
  this.mPosition = null;
820
1050
  this.mLookAt = null;
821
1051
  this.mUp = null;
@@ -824,6 +1054,7 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
824
1054
  this.mClipPlaneFar = 0;
825
1055
  this.mAspect = 0;
826
1056
  }
1057
+
827
1058
  function aiScene() {
828
1059
  this.versionMajor = 0;
829
1060
  this.versionMinor = 0;
@@ -843,75 +1074,96 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
843
1074
  this.mLights = [];
844
1075
  this.mCameras = [];
845
1076
  this.nodeToBoneMap = {};
846
- this.findNode = function(name, root) {
1077
+
1078
+ this.findNode = function (name, root) {
847
1079
  if (!root) {
848
1080
  root = this.mRootNode;
849
1081
  }
1082
+
850
1083
  if (root.mName == name) {
851
1084
  return root;
852
1085
  }
1086
+
853
1087
  for (let i = 0; i < root.mChildren.length; i++) {
854
1088
  var ret = this.findNode(name, root.mChildren[i]);
855
- if (ret)
856
- return ret;
1089
+ if (ret) return ret;
857
1090
  }
1091
+
858
1092
  return null;
859
1093
  };
860
- this.toTHREE = function() {
1094
+
1095
+ this.toTHREE = function () {
861
1096
  this.nodeCount = 0;
862
1097
  markBones(this);
863
1098
  var o = this.mRootNode.toTHREE(this);
864
- for (let i in this.mMeshes)
865
- this.mMeshes[i].hookupSkeletons(this);
1099
+
1100
+ for (let i in this.mMeshes) this.mMeshes[i].hookupSkeletons(this);
1101
+
866
1102
  if (this.mAnimations.length > 0) {
867
1103
  var a = this.mAnimations[0].toTHREE(this);
868
1104
  }
869
- return { object: o, animation: a };
1105
+
1106
+ return {
1107
+ object: o,
1108
+ animation: a
1109
+ };
870
1110
  };
871
1111
  }
1112
+
872
1113
  function aiMatrix4() {
873
1114
  this.elements = [[], [], [], []];
874
- this.toTHREE = function() {
875
- var m = new THREE.Matrix4();
1115
+
1116
+ this.toTHREE = function () {
1117
+ var m = new Matrix4();
1118
+
876
1119
  for (let i = 0; i < 4; ++i) {
877
1120
  for (let i2 = 0; i2 < 4; ++i2) {
878
1121
  m.elements[i * 4 + i2] = this.elements[i2][i];
879
1122
  }
880
1123
  }
1124
+
881
1125
  return m;
882
1126
  };
883
1127
  }
1128
+
884
1129
  var littleEndian = true;
1130
+
885
1131
  function readFloat(dataview) {
886
1132
  var val = dataview.getFloat32(dataview.readOffset, littleEndian);
887
1133
  dataview.readOffset += 4;
888
1134
  return val;
889
1135
  }
1136
+
890
1137
  function Read_double(dataview) {
891
1138
  var val = dataview.getFloat64(dataview.readOffset, littleEndian);
892
1139
  dataview.readOffset += 8;
893
1140
  return val;
894
1141
  }
1142
+
895
1143
  function Read_uint8_t(dataview) {
896
1144
  var val = dataview.getUint8(dataview.readOffset);
897
1145
  dataview.readOffset += 1;
898
1146
  return val;
899
1147
  }
1148
+
900
1149
  function Read_uint16_t(dataview) {
901
1150
  var val = dataview.getUint16(dataview.readOffset, littleEndian);
902
1151
  dataview.readOffset += 2;
903
1152
  return val;
904
1153
  }
1154
+
905
1155
  function Read_unsigned_int(dataview) {
906
1156
  var val = dataview.getUint32(dataview.readOffset, littleEndian);
907
1157
  dataview.readOffset += 4;
908
1158
  return val;
909
1159
  }
1160
+
910
1161
  function Read_uint32_t(dataview) {
911
1162
  var val = dataview.getUint32(dataview.readOffset, littleEndian);
912
1163
  dataview.readOffset += 4;
913
1164
  return val;
914
1165
  }
1166
+
915
1167
  function Read_aiVector3D(stream) {
916
1168
  var v = new aiVector3D();
917
1169
  v.x = readFloat(stream);
@@ -919,6 +1171,7 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
919
1171
  v.z = readFloat(stream);
920
1172
  return v;
921
1173
  }
1174
+
922
1175
  function Read_aiColor3D(stream) {
923
1176
  var c = new aiColor3D();
924
1177
  c.r = readFloat(stream);
@@ -926,6 +1179,7 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
926
1179
  c.b = readFloat(stream);
927
1180
  return c;
928
1181
  }
1182
+
929
1183
  function Read_aiQuaternion(stream) {
930
1184
  var v = new aiQuaternion();
931
1185
  v.w = readFloat(stream);
@@ -934,61 +1188,75 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
934
1188
  v.z = readFloat(stream);
935
1189
  return v;
936
1190
  }
1191
+
937
1192
  function Read_aiString(stream) {
938
1193
  var s = new aiString();
939
1194
  var stringlengthbytes = Read_unsigned_int(stream);
940
1195
  stream.ReadBytes(s.data, 1, stringlengthbytes);
941
1196
  return s.toString();
942
1197
  }
1198
+
943
1199
  function Read_aiVertexWeight(stream) {
944
1200
  var w = new aiVertexWeight();
945
1201
  w.mVertexId = Read_unsigned_int(stream);
946
1202
  w.mWeight = readFloat(stream);
947
1203
  return w;
948
1204
  }
1205
+
949
1206
  function Read_aiMatrix4x4(stream) {
950
1207
  var m = new aiMatrix4();
1208
+
951
1209
  for (let i = 0; i < 4; ++i) {
952
1210
  for (let i2 = 0; i2 < 4; ++i2) {
953
1211
  m.elements[i][i2] = readFloat(stream);
954
1212
  }
955
1213
  }
1214
+
956
1215
  return m;
957
1216
  }
1217
+
958
1218
  function Read_aiVectorKey(stream) {
959
1219
  var v = new aiVectorKey();
960
1220
  v.mTime = Read_double(stream);
961
1221
  v.mValue = Read_aiVector3D(stream);
962
1222
  return v;
963
1223
  }
1224
+
964
1225
  function Read_aiQuatKey(stream) {
965
1226
  var v = new aiQuatKey();
966
1227
  v.mTime = Read_double(stream);
967
1228
  v.mValue = Read_aiQuaternion(stream);
968
1229
  return v;
969
1230
  }
1231
+
970
1232
  function ReadArray_aiVertexWeight(stream, data, size) {
971
- for (let i = 0; i < size; i++)
972
- data[i] = Read_aiVertexWeight(stream);
1233
+ for (let i = 0; i < size; i++) data[i] = Read_aiVertexWeight(stream);
973
1234
  }
1235
+
974
1236
  function ReadArray_aiVectorKey(stream, data, size) {
975
- for (let i = 0; i < size; i++)
976
- data[i] = Read_aiVectorKey(stream);
1237
+ for (let i = 0; i < size; i++) data[i] = Read_aiVectorKey(stream);
977
1238
  }
1239
+
978
1240
  function ReadArray_aiQuatKey(stream, data, size) {
979
- for (let i = 0; i < size; i++)
980
- data[i] = Read_aiQuatKey(stream);
1241
+ for (let i = 0; i < size; i++) data[i] = Read_aiQuatKey(stream);
981
1242
  }
982
- function ReadBounds(stream, T, n) {
983
- return stream.Seek(sizeof(T) * n, aiOrigin_CUR);
1243
+
1244
+ function ReadBounds(stream, T
1245
+ /*p*/
1246
+ , n) {
1247
+ // not sure what to do here, the data isn't really useful.
1248
+ return stream.Seek(sizeof(T) * n, aiOrigin_CUR); // eslint-disable-line no-undef
984
1249
  }
1250
+
985
1251
  function ai_assert(bool) {
986
- if (!bool)
987
- throw "asset failed";
1252
+ if (!bool) throw 'asset failed';
988
1253
  }
1254
+
989
1255
  function ReadBinaryNode(stream, parent, depth) {
990
1256
  var chunkID = Read_uint32_t(stream);
991
1257
  ai_assert(chunkID == ASSBIN_CHUNK_AINODE);
1258
+ /*uint32_t size =*/
1259
+
992
1260
  Read_uint32_t(stream);
993
1261
  var node = new aiNode();
994
1262
  node.mParent = parent;
@@ -997,70 +1265,93 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
997
1265
  node.mTransformation = Read_aiMatrix4x4(stream);
998
1266
  node.mNumChildren = Read_unsigned_int(stream);
999
1267
  node.mNumMeshes = Read_unsigned_int(stream);
1268
+
1000
1269
  if (node.mNumMeshes) {
1001
1270
  node.mMeshes = [];
1271
+
1002
1272
  for (let i = 0; i < node.mNumMeshes; ++i) {
1003
1273
  node.mMeshes[i] = Read_unsigned_int(stream);
1004
1274
  }
1005
1275
  }
1276
+
1006
1277
  if (node.mNumChildren) {
1007
1278
  node.mChildren = [];
1279
+
1008
1280
  for (let i = 0; i < node.mNumChildren; ++i) {
1009
1281
  var node2 = ReadBinaryNode(stream, node, depth++);
1010
1282
  node.mChildren[i] = node2;
1011
1283
  }
1012
1284
  }
1285
+
1013
1286
  return node;
1014
- }
1287
+ } // -----------------------------------------------------------------------------------
1288
+
1289
+
1015
1290
  function ReadBinaryBone(stream, b) {
1016
1291
  var chunkID = Read_uint32_t(stream);
1017
1292
  ai_assert(chunkID == ASSBIN_CHUNK_AIBONE);
1293
+ /*uint32_t size =*/
1294
+
1018
1295
  Read_uint32_t(stream);
1019
1296
  b.mName = Read_aiString(stream);
1020
1297
  b.mNumWeights = Read_unsigned_int(stream);
1021
- b.mOffsetMatrix = Read_aiMatrix4x4(stream);
1298
+ b.mOffsetMatrix = Read_aiMatrix4x4(stream); // for the moment we write dumb min/max values for the bones, too.
1299
+ // maybe I'll add a better, hash-like solution later
1300
+
1022
1301
  if (shortened) {
1023
1302
  ReadBounds(stream, b.mWeights, b.mNumWeights);
1024
1303
  } else {
1304
+ // else write as usual
1025
1305
  b.mWeights = [];
1026
1306
  ReadArray_aiVertexWeight(stream, b.mWeights, b.mNumWeights);
1027
1307
  }
1308
+
1028
1309
  return b;
1029
1310
  }
1311
+
1030
1312
  function ReadBinaryMesh(stream, mesh) {
1031
1313
  var chunkID = Read_uint32_t(stream);
1032
1314
  ai_assert(chunkID == ASSBIN_CHUNK_AIMESH);
1315
+ /*uint32_t size =*/
1316
+
1033
1317
  Read_uint32_t(stream);
1034
1318
  mesh.mPrimitiveTypes = Read_unsigned_int(stream);
1035
1319
  mesh.mNumVertices = Read_unsigned_int(stream);
1036
1320
  mesh.mNumFaces = Read_unsigned_int(stream);
1037
1321
  mesh.mNumBones = Read_unsigned_int(stream);
1038
1322
  mesh.mMaterialIndex = Read_unsigned_int(stream);
1039
- mesh.mNumUVComponents = [];
1323
+ mesh.mNumUVComponents = []; // first of all, write bits for all existent vertex components
1324
+
1040
1325
  var c = Read_unsigned_int(stream);
1326
+
1041
1327
  if (c & ASSBIN_MESH_HAS_POSITIONS) {
1042
1328
  if (shortened) {
1043
1329
  ReadBounds(stream, mesh.mVertices, mesh.mNumVertices);
1044
1330
  } else {
1331
+ // else write as usual
1045
1332
  mesh.mVertices = [];
1046
1333
  mesh.mVertexBuffer = stream.subArray32(stream.readOffset, stream.readOffset + mesh.mNumVertices * 3 * 4);
1047
1334
  stream.Seek(mesh.mNumVertices * 3 * 4, aiOrigin_CUR);
1048
1335
  }
1049
1336
  }
1337
+
1050
1338
  if (c & ASSBIN_MESH_HAS_NORMALS) {
1051
1339
  if (shortened) {
1052
1340
  ReadBounds(stream, mesh.mNormals, mesh.mNumVertices);
1053
1341
  } else {
1342
+ // else write as usual
1054
1343
  mesh.mNormals = [];
1055
1344
  mesh.mNormalBuffer = stream.subArray32(stream.readOffset, stream.readOffset + mesh.mNumVertices * 3 * 4);
1056
1345
  stream.Seek(mesh.mNumVertices * 3 * 4, aiOrigin_CUR);
1057
1346
  }
1058
1347
  }
1348
+
1059
1349
  if (c & ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS) {
1060
1350
  if (shortened) {
1061
1351
  ReadBounds(stream, mesh.mTangents, mesh.mNumVertices);
1062
1352
  ReadBounds(stream, mesh.mBitangents, mesh.mNumVertices);
1063
1353
  } else {
1354
+ // else write as usual
1064
1355
  mesh.mTangents = [];
1065
1356
  mesh.mTangentBuffer = stream.subArray32(stream.readOffset, stream.readOffset + mesh.mNumVertices * 3 * 4);
1066
1357
  stream.Seek(mesh.mNumVertices * 3 * 4, aiOrigin_CUR);
@@ -1069,43 +1360,61 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1069
1360
  stream.Seek(mesh.mNumVertices * 3 * 4, aiOrigin_CUR);
1070
1361
  }
1071
1362
  }
1363
+
1072
1364
  for (let n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS; ++n) {
1073
- if (!(c & ASSBIN_MESH_HAS_COLOR(n)))
1074
- break;
1365
+ if (!(c & ASSBIN_MESH_HAS_COLOR(n))) break;
1366
+
1075
1367
  if (shortened) {
1076
1368
  ReadBounds(stream, mesh.mColors[n], mesh.mNumVertices);
1077
1369
  } else {
1370
+ // else write as usual
1078
1371
  mesh.mColors[n] = [];
1079
1372
  mesh.mColorBuffer = stream.subArray32(stream.readOffset, stream.readOffset + mesh.mNumVertices * 4 * 4);
1080
1373
  stream.Seek(mesh.mNumVertices * 4 * 4, aiOrigin_CUR);
1081
1374
  }
1082
1375
  }
1376
+
1083
1377
  mesh.mTexCoordsBuffers = [];
1378
+
1084
1379
  for (let n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++n) {
1085
- if (!(c & ASSBIN_MESH_HAS_TEXCOORD(n)))
1086
- break;
1380
+ if (!(c & ASSBIN_MESH_HAS_TEXCOORD(n))) break; // write number of UV components
1381
+
1087
1382
  mesh.mNumUVComponents[n] = Read_unsigned_int(stream);
1383
+
1088
1384
  if (shortened) {
1089
1385
  ReadBounds(stream, mesh.mTextureCoords[n], mesh.mNumVertices);
1090
1386
  } else {
1091
- mesh.mTextureCoords[n] = [];
1387
+ // else write as usual
1388
+ mesh.mTextureCoords[n] = []; //note that assbin always writes 3d texcoords
1389
+
1092
1390
  mesh.mTexCoordsBuffers[n] = [];
1391
+
1093
1392
  for (let uv = 0; uv < mesh.mNumVertices; uv++) {
1094
1393
  mesh.mTexCoordsBuffers[n].push(readFloat(stream));
1095
1394
  mesh.mTexCoordsBuffers[n].push(readFloat(stream));
1096
1395
  readFloat(stream);
1097
1396
  }
1098
1397
  }
1099
- }
1398
+ } // write faces. There are no floating-point calculations involved
1399
+ // in these, so we can write a simple hash over the face data
1400
+ // to the dump file. We generate a single 32 Bit hash for 512 faces
1401
+ // using Assimp's standard hashing function.
1402
+
1403
+
1100
1404
  if (shortened) {
1101
1405
  Read_unsigned_int(stream);
1102
1406
  } else {
1407
+ // else write as usual
1408
+ // if there are less than 2^16 vertices, we can simply use 16 bit integers ...
1103
1409
  mesh.mFaces = [];
1104
1410
  mesh.mIndexArray = [];
1411
+
1105
1412
  for (let i = 0; i < mesh.mNumFaces; ++i) {
1106
- var f = mesh.mFaces[i] = new aiFace();
1413
+ var f = mesh.mFaces[i] = new aiFace(); // BOOST_STATIC_ASSERT(AI_MAX_FACE_INDICES <= 0xffff);
1414
+
1107
1415
  f.mNumIndices = Read_uint16_t(stream);
1108
1416
  f.mIndices = [];
1417
+
1109
1418
  for (let a = 0; a < f.mNumIndices; ++a) {
1110
1419
  if (mesh.mNumVertices < 1 << 16) {
1111
1420
  f.mIndices[a] = Read_uint16_t(stream);
@@ -1113,6 +1422,7 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1113
1422
  f.mIndices[a] = Read_unsigned_int(stream);
1114
1423
  }
1115
1424
  }
1425
+
1116
1426
  if (f.mNumIndices === 3) {
1117
1427
  mesh.mIndexArray.push(f.mIndices[0]);
1118
1428
  mesh.mIndexArray.push(f.mIndices[1]);
@@ -1128,18 +1438,24 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1128
1438
  throw new Error("Sorry, can't currently triangulate polys. Use the triangulate preprocessor in Assimp.");
1129
1439
  }
1130
1440
  }
1131
- }
1441
+ } // write bones
1442
+
1443
+
1132
1444
  if (mesh.mNumBones) {
1133
1445
  mesh.mBones = [];
1446
+
1134
1447
  for (let a = 0; a < mesh.mNumBones; ++a) {
1135
1448
  mesh.mBones[a] = new aiBone();
1136
1449
  ReadBinaryBone(stream, mesh.mBones[a]);
1137
1450
  }
1138
1451
  }
1139
1452
  }
1453
+
1140
1454
  function ReadBinaryMaterialProperty(stream, prop) {
1141
1455
  var chunkID = Read_uint32_t(stream);
1142
1456
  ai_assert(chunkID == ASSBIN_CHUNK_AIMATERIALPROPERTY);
1457
+ /*uint32_t size =*/
1458
+
1143
1459
  Read_uint32_t(stream);
1144
1460
  prop.mKey = Read_aiString(stream);
1145
1461
  prop.mSemantic = Read_unsigned_int(stream);
@@ -1148,26 +1464,36 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1148
1464
  prop.mType = Read_unsigned_int(stream);
1149
1465
  prop.mData = [];
1150
1466
  stream.ReadBytes(prop.mData, 1, prop.mDataLength);
1151
- }
1467
+ } // -----------------------------------------------------------------------------------
1468
+
1469
+
1152
1470
  function ReadBinaryMaterial(stream, mat) {
1153
1471
  var chunkID = Read_uint32_t(stream);
1154
1472
  ai_assert(chunkID == ASSBIN_CHUNK_AIMATERIAL);
1473
+ /*uint32_t size =*/
1474
+
1155
1475
  Read_uint32_t(stream);
1156
1476
  mat.mNumAllocated = mat.mNumProperties = Read_unsigned_int(stream);
1477
+
1157
1478
  if (mat.mNumProperties) {
1158
1479
  if (mat.mProperties) {
1159
1480
  delete mat.mProperties;
1160
1481
  }
1482
+
1161
1483
  mat.mProperties = [];
1484
+
1162
1485
  for (let i = 0; i < mat.mNumProperties; ++i) {
1163
1486
  mat.mProperties[i] = new aiMaterialProperty();
1164
1487
  ReadBinaryMaterialProperty(stream, mat.mProperties[i]);
1165
1488
  }
1166
1489
  }
1167
1490
  }
1491
+
1168
1492
  function ReadBinaryNodeAnim(stream, nd) {
1169
1493
  var chunkID = Read_uint32_t(stream);
1170
1494
  ai_assert(chunkID == ASSBIN_CHUNK_AINODEANIM);
1495
+ /*uint32_t size =*/
1496
+
1171
1497
  Read_uint32_t(stream);
1172
1498
  nd.mNodeName = Read_aiString(stream);
1173
1499
  nd.mNumPositionKeys = Read_unsigned_int(stream);
@@ -1175,54 +1501,69 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1175
1501
  nd.mNumScalingKeys = Read_unsigned_int(stream);
1176
1502
  nd.mPreState = Read_unsigned_int(stream);
1177
1503
  nd.mPostState = Read_unsigned_int(stream);
1504
+
1178
1505
  if (nd.mNumPositionKeys) {
1179
1506
  if (shortened) {
1180
1507
  ReadBounds(stream, nd.mPositionKeys, nd.mNumPositionKeys);
1181
1508
  } else {
1509
+ // else write as usual
1182
1510
  nd.mPositionKeys = [];
1183
1511
  ReadArray_aiVectorKey(stream, nd.mPositionKeys, nd.mNumPositionKeys);
1184
1512
  }
1185
1513
  }
1514
+
1186
1515
  if (nd.mNumRotationKeys) {
1187
1516
  if (shortened) {
1188
1517
  ReadBounds(stream, nd.mRotationKeys, nd.mNumRotationKeys);
1189
1518
  } else {
1519
+ // else write as usual
1190
1520
  nd.mRotationKeys = [];
1191
1521
  ReadArray_aiQuatKey(stream, nd.mRotationKeys, nd.mNumRotationKeys);
1192
1522
  }
1193
1523
  }
1524
+
1194
1525
  if (nd.mNumScalingKeys) {
1195
1526
  if (shortened) {
1196
1527
  ReadBounds(stream, nd.mScalingKeys, nd.mNumScalingKeys);
1197
1528
  } else {
1529
+ // else write as usual
1198
1530
  nd.mScalingKeys = [];
1199
1531
  ReadArray_aiVectorKey(stream, nd.mScalingKeys, nd.mNumScalingKeys);
1200
1532
  }
1201
1533
  }
1202
1534
  }
1535
+
1203
1536
  function ReadBinaryAnim(stream, anim) {
1204
1537
  var chunkID = Read_uint32_t(stream);
1205
1538
  ai_assert(chunkID == ASSBIN_CHUNK_AIANIMATION);
1539
+ /*uint32_t size =*/
1540
+
1206
1541
  Read_uint32_t(stream);
1207
1542
  anim.mName = Read_aiString(stream);
1208
1543
  anim.mDuration = Read_double(stream);
1209
1544
  anim.mTicksPerSecond = Read_double(stream);
1210
1545
  anim.mNumChannels = Read_unsigned_int(stream);
1546
+
1211
1547
  if (anim.mNumChannels) {
1212
1548
  anim.mChannels = [];
1549
+
1213
1550
  for (let a = 0; a < anim.mNumChannels; ++a) {
1214
1551
  anim.mChannels[a] = new aiNodeAnim();
1215
1552
  ReadBinaryNodeAnim(stream, anim.mChannels[a]);
1216
1553
  }
1217
1554
  }
1218
1555
  }
1556
+
1219
1557
  function ReadBinaryTexture(stream, tex) {
1220
1558
  var chunkID = Read_uint32_t(stream);
1221
1559
  ai_assert(chunkID == ASSBIN_CHUNK_AITEXTURE);
1560
+ /*uint32_t size =*/
1561
+
1222
1562
  Read_uint32_t(stream);
1223
1563
  tex.mWidth = Read_unsigned_int(stream);
1224
1564
  tex.mHeight = Read_unsigned_int(stream);
1225
1565
  stream.ReadBytes(tex.achFormatHint, 1, 4);
1566
+
1226
1567
  if (!shortened) {
1227
1568
  if (!tex.mHeight) {
1228
1569
  tex.pcData = [];
@@ -1233,28 +1574,37 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1233
1574
  }
1234
1575
  }
1235
1576
  }
1577
+
1236
1578
  function ReadBinaryLight(stream, l) {
1237
1579
  var chunkID = Read_uint32_t(stream);
1238
1580
  ai_assert(chunkID == ASSBIN_CHUNK_AILIGHT);
1581
+ /*uint32_t size =*/
1582
+
1239
1583
  Read_uint32_t(stream);
1240
1584
  l.mName = Read_aiString(stream);
1241
1585
  l.mType = Read_unsigned_int(stream);
1586
+
1242
1587
  if (l.mType != aiLightSource_DIRECTIONAL) {
1243
1588
  l.mAttenuationConstant = readFloat(stream);
1244
1589
  l.mAttenuationLinear = readFloat(stream);
1245
1590
  l.mAttenuationQuadratic = readFloat(stream);
1246
1591
  }
1592
+
1247
1593
  l.mColorDiffuse = Read_aiColor3D(stream);
1248
1594
  l.mColorSpecular = Read_aiColor3D(stream);
1249
1595
  l.mColorAmbient = Read_aiColor3D(stream);
1596
+
1250
1597
  if (l.mType == aiLightSource_SPOT) {
1251
1598
  l.mAngleInnerCone = readFloat(stream);
1252
1599
  l.mAngleOuterCone = readFloat(stream);
1253
1600
  }
1254
1601
  }
1602
+
1255
1603
  function ReadBinaryCamera(stream, cam) {
1256
1604
  var chunkID = Read_uint32_t(stream);
1257
1605
  ai_assert(chunkID == ASSBIN_CHUNK_AICAMERA);
1606
+ /*uint32_t size =*/
1607
+
1258
1608
  Read_uint32_t(stream);
1259
1609
  cam.mName = Read_aiString(stream);
1260
1610
  cam.mPosition = Read_aiVector3D(stream);
@@ -1265,9 +1615,12 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1265
1615
  cam.mClipPlaneFar = readFloat(stream);
1266
1616
  cam.mAspect = readFloat(stream);
1267
1617
  }
1618
+
1268
1619
  function ReadBinaryScene(stream, scene) {
1269
1620
  var chunkID = Read_uint32_t(stream);
1270
1621
  ai_assert(chunkID == ASSBIN_CHUNK_AISCENE);
1622
+ /*uint32_t size =*/
1623
+
1271
1624
  Read_uint32_t(stream);
1272
1625
  scene.mFlags = Read_unsigned_int(stream);
1273
1626
  scene.mNumMeshes = Read_unsigned_int(stream);
@@ -1275,122 +1628,166 @@ AssimpLoader.prototype = Object.assign(Object.create(THREE.Loader.prototype), {
1275
1628
  scene.mNumAnimations = Read_unsigned_int(stream);
1276
1629
  scene.mNumTextures = Read_unsigned_int(stream);
1277
1630
  scene.mNumLights = Read_unsigned_int(stream);
1278
- scene.mNumCameras = Read_unsigned_int(stream);
1631
+ scene.mNumCameras = Read_unsigned_int(stream); // Read node graph
1632
+
1279
1633
  scene.mRootNode = new aiNode();
1280
- scene.mRootNode = ReadBinaryNode(stream, null, 0);
1634
+ scene.mRootNode = ReadBinaryNode(stream, null, 0); // Read all meshes
1635
+
1281
1636
  if (scene.mNumMeshes) {
1282
1637
  scene.mMeshes = [];
1638
+
1283
1639
  for (let i = 0; i < scene.mNumMeshes; ++i) {
1284
1640
  scene.mMeshes[i] = new aiMesh();
1285
1641
  ReadBinaryMesh(stream, scene.mMeshes[i]);
1286
1642
  }
1287
- }
1643
+ } // Read materials
1644
+
1645
+
1288
1646
  if (scene.mNumMaterials) {
1289
1647
  scene.mMaterials = [];
1648
+
1290
1649
  for (let i = 0; i < scene.mNumMaterials; ++i) {
1291
1650
  scene.mMaterials[i] = new aiMaterial();
1292
1651
  ReadBinaryMaterial(stream, scene.mMaterials[i]);
1293
1652
  }
1294
- }
1653
+ } // Read all animations
1654
+
1655
+
1295
1656
  if (scene.mNumAnimations) {
1296
1657
  scene.mAnimations = [];
1658
+
1297
1659
  for (let i = 0; i < scene.mNumAnimations; ++i) {
1298
1660
  scene.mAnimations[i] = new aiAnimation();
1299
1661
  ReadBinaryAnim(stream, scene.mAnimations[i]);
1300
1662
  }
1301
- }
1663
+ } // Read all textures
1664
+
1665
+
1302
1666
  if (scene.mNumTextures) {
1303
1667
  scene.mTextures = [];
1668
+
1304
1669
  for (let i = 0; i < scene.mNumTextures; ++i) {
1305
1670
  scene.mTextures[i] = new aiTexture();
1306
1671
  ReadBinaryTexture(stream, scene.mTextures[i]);
1307
1672
  }
1308
- }
1673
+ } // Read lights
1674
+
1675
+
1309
1676
  if (scene.mNumLights) {
1310
1677
  scene.mLights = [];
1678
+
1311
1679
  for (let i = 0; i < scene.mNumLights; ++i) {
1312
1680
  scene.mLights[i] = new aiLight();
1313
1681
  ReadBinaryLight(stream, scene.mLights[i]);
1314
1682
  }
1315
- }
1683
+ } // Read cameras
1684
+
1685
+
1316
1686
  if (scene.mNumCameras) {
1317
1687
  scene.mCameras = [];
1688
+
1318
1689
  for (let i = 0; i < scene.mNumCameras; ++i) {
1319
1690
  scene.mCameras[i] = new aiCamera();
1320
1691
  ReadBinaryCamera(stream, scene.mCameras[i]);
1321
1692
  }
1322
1693
  }
1323
1694
  }
1695
+
1324
1696
  var aiOrigin_CUR = 0;
1325
1697
  var aiOrigin_BEG = 1;
1698
+
1326
1699
  function extendStream(stream) {
1327
1700
  stream.readOffset = 0;
1328
- stream.Seek = function(off, ori) {
1701
+
1702
+ stream.Seek = function (off, ori) {
1329
1703
  if (ori == aiOrigin_CUR) {
1330
1704
  stream.readOffset += off;
1331
1705
  }
1706
+
1332
1707
  if (ori == aiOrigin_BEG) {
1333
1708
  stream.readOffset = off;
1334
1709
  }
1335
1710
  };
1336
- stream.ReadBytes = function(buff, size, n) {
1711
+
1712
+ stream.ReadBytes = function (buff, size, n) {
1337
1713
  var bytes = size * n;
1338
- for (let i = 0; i < bytes; i++)
1339
- buff[i] = Read_uint8_t(this);
1714
+
1715
+ for (let i = 0; i < bytes; i++) buff[i] = Read_uint8_t(this);
1340
1716
  };
1341
- stream.subArray32 = function(start, end) {
1717
+
1718
+ stream.subArray32 = function (start, end) {
1342
1719
  var buff = this.buffer;
1343
1720
  var newbuff = buff.slice(start, end);
1344
1721
  return new Float32Array(newbuff);
1345
1722
  };
1346
- stream.subArrayUint16 = function(start, end) {
1723
+
1724
+ stream.subArrayUint16 = function (start, end) {
1347
1725
  var buff = this.buffer;
1348
1726
  var newbuff = buff.slice(start, end);
1349
1727
  return new Uint16Array(newbuff);
1350
1728
  };
1351
- stream.subArrayUint8 = function(start, end) {
1729
+
1730
+ stream.subArrayUint8 = function (start, end) {
1352
1731
  var buff = this.buffer;
1353
1732
  var newbuff = buff.slice(start, end);
1354
1733
  return new Uint8Array(newbuff);
1355
1734
  };
1356
- stream.subArrayUint32 = function(start, end) {
1735
+
1736
+ stream.subArrayUint32 = function (start, end) {
1357
1737
  var buff = this.buffer;
1358
1738
  var newbuff = buff.slice(start, end);
1359
1739
  return new Uint32Array(newbuff);
1360
1740
  };
1361
1741
  }
1742
+
1362
1743
  var shortened, compressed;
1744
+
1363
1745
  function InternReadFile(pFiledata) {
1364
1746
  var pScene = new aiScene();
1365
1747
  var stream = new DataView(pFiledata);
1366
1748
  extendStream(stream);
1367
- stream.Seek(44, aiOrigin_CUR);
1749
+ stream.Seek(44, aiOrigin_CUR); // signature
1750
+
1751
+ /*unsigned int versionMajor =*/
1752
+
1368
1753
  pScene.versionMajor = Read_unsigned_int(stream);
1754
+ /*unsigned int versionMinor =*/
1755
+
1369
1756
  pScene.versionMinor = Read_unsigned_int(stream);
1757
+ /*unsigned int versionRevision =*/
1758
+
1370
1759
  pScene.versionRevision = Read_unsigned_int(stream);
1760
+ /*unsigned int compileFlags =*/
1761
+
1371
1762
  pScene.compileFlags = Read_unsigned_int(stream);
1372
1763
  shortened = Read_uint16_t(stream) > 0;
1373
1764
  compressed = Read_uint16_t(stream) > 0;
1374
- if (shortened)
1375
- throw "Shortened binaries are not supported!";
1376
- stream.Seek(256, aiOrigin_CUR);
1377
- stream.Seek(128, aiOrigin_CUR);
1378
- stream.Seek(64, aiOrigin_CUR);
1765
+ if (shortened) throw 'Shortened binaries are not supported!';
1766
+ stream.Seek(256, aiOrigin_CUR); // original filename
1767
+
1768
+ stream.Seek(128, aiOrigin_CUR); // options
1769
+
1770
+ stream.Seek(64, aiOrigin_CUR); // padding
1771
+
1379
1772
  if (compressed) {
1380
1773
  var uncompressedSize = Read_uint32_t(stream);
1381
1774
  var compressedSize = stream.FileSize() - stream.Tell();
1382
1775
  var compressedData = [];
1383
1776
  stream.Read(compressedData, 1, compressedSize);
1384
1777
  var uncompressedData = [];
1385
- uncompress(uncompressedData, uncompressedSize, compressedData, compressedSize);
1778
+ uncompress(uncompressedData, uncompressedSize, compressedData, compressedSize); // eslint-disable-line no-undef
1779
+
1386
1780
  var buff = new ArrayBuffer(uncompressedData);
1387
1781
  ReadBinaryScene(buff, pScene);
1388
1782
  } else {
1389
1783
  ReadBinaryScene(stream, pScene);
1390
1784
  }
1785
+
1391
1786
  return pScene.toTHREE();
1392
1787
  }
1788
+
1393
1789
  return InternReadFile(buffer);
1394
1790
  }
1395
1791
  });
1396
- exports.AssimpLoader = AssimpLoader;
1792
+
1793
+ export { AssimpLoader };