three-stdlib 2.15.1 → 2.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1218) hide show
  1. package/animation/AnimationClipCreator.js +32 -52
  2. package/animation/AnimationClipCreator.mjs +57 -0
  3. package/animation/CCDIKSolver.js +196 -302
  4. package/animation/CCDIKSolver.mjs +223 -0
  5. package/animation/MMDAnimationHelper.js +150 -341
  6. package/animation/MMDAnimationHelper.mjs +514 -0
  7. package/animation/MMDPhysics.js +154 -361
  8. package/animation/MMDPhysics.mjs +769 -0
  9. package/cameras/CinematicCamera.js +67 -77
  10. package/cameras/CinematicCamera.mjs +129 -0
  11. package/controls/ArcballControls.js +544 -1449
  12. package/controls/ArcballControls.mjs +1737 -0
  13. package/controls/DeviceOrientationControls.js +52 -97
  14. package/controls/DeviceOrientationControls.mjs +74 -0
  15. package/controls/DragControls.js +85 -187
  16. package/controls/DragControls.mjs +172 -0
  17. package/controls/FirstPersonControls.js +123 -193
  18. package/controls/FirstPersonControls.mjs +220 -0
  19. package/controls/FlyControls.js +82 -152
  20. package/controls/FlyControls.mjs +239 -0
  21. package/controls/OrbitControls.js +232 -481
  22. package/controls/OrbitControls.mjs +731 -0
  23. package/controls/PointerLockControls.js +63 -99
  24. package/controls/PointerLockControls.mjs +88 -0
  25. package/controls/TrackballControls.js +211 -383
  26. package/controls/TrackballControls.mjs +481 -0
  27. package/controls/TransformControls.js +575 -782
  28. package/controls/TransformControls.mjs +1068 -0
  29. package/controls/experimental/CameraControls.js +329 -609
  30. package/controls/experimental/CameraControls.mjs +673 -0
  31. package/csm/CSM.js +47 -108
  32. package/csm/CSM.mjs +244 -0
  33. package/csm/CSMFrustum.js +14 -29
  34. package/csm/CSMFrustum.mjs +75 -0
  35. package/csm/CSMHelper.js +20 -34
  36. package/csm/CSMHelper.mjs +114 -0
  37. package/csm/CSMShader.js +7 -11
  38. package/csm/CSMShader.mjs +251 -0
  39. package/curves/CurveExtras.js +73 -115
  40. package/curves/CurveExtras.mjs +224 -0
  41. package/curves/NURBSCurve.js +15 -43
  42. package/curves/NURBSCurve.mjs +35 -0
  43. package/curves/NURBSSurface.js +11 -27
  44. package/curves/NURBSSurface.mjs +28 -0
  45. package/curves/NURBSUtils.js +54 -203
  46. package/curves/NURBSUtils.mjs +226 -0
  47. package/deprecated/Geometry.js +191 -486
  48. package/deprecated/Geometry.mjs +966 -0
  49. package/effects/AnaglyphEffect.js +95 -60
  50. package/effects/AnaglyphEffect.mjs +120 -0
  51. package/effects/AsciiEffect.js +80 -110
  52. package/effects/AsciiEffect.mjs +173 -0
  53. package/effects/OutlineEffect.js +121 -204
  54. package/effects/OutlineEffect.mjs +295 -0
  55. package/effects/ParallaxBarrierEffect.js +39 -38
  56. package/effects/ParallaxBarrierEffect.mjs +64 -0
  57. package/effects/PeppersGhostEffect.js +19 -68
  58. package/effects/PeppersGhostEffect.mjs +85 -0
  59. package/effects/StereoEffect.js +12 -16
  60. package/effects/StereoEffect.mjs +32 -0
  61. package/environments/RoomEnvironment.js +52 -47
  62. package/environments/RoomEnvironment.mjs +78 -0
  63. package/exporters/ColladaExporter.js +115 -241
  64. package/exporters/ColladaExporter.mjs +299 -0
  65. package/exporters/DRACOExporter.js +67 -121
  66. package/exporters/DRACOExporter.mjs +132 -0
  67. package/exporters/GLTFExporter.js +463 -1014
  68. package/exporters/GLTFExporter.mjs +1381 -0
  69. package/exporters/MMDExporter.js +44 -102
  70. package/exporters/MMDExporter.mjs +102 -0
  71. package/exporters/OBJExporter.js +78 -140
  72. package/exporters/OBJExporter.mjs +166 -0
  73. package/exporters/PLYExporter.js +93 -154
  74. package/exporters/PLYExporter.mjs +278 -0
  75. package/exporters/STLExporter.js +30 -81
  76. package/exporters/STLExporter.mjs +129 -0
  77. package/exporters/USDZExporter.js +84 -144
  78. package/exporters/USDZExporter.mjs +328 -0
  79. package/geometries/BoxLineGeometry.js +7 -14
  80. package/geometries/BoxLineGeometry.mjs +45 -0
  81. package/geometries/ConvexGeometry.js +14 -23
  82. package/geometries/ConvexGeometry.mjs +29 -0
  83. package/geometries/DecalGeometry.js +108 -162
  84. package/geometries/DecalGeometry.mjs +184 -0
  85. package/geometries/LightningStrike.js +101 -294
  86. package/geometries/LightningStrike.mjs +547 -0
  87. package/geometries/ParametricGeometries.js +26 -76
  88. package/geometries/ParametricGeometries.mjs +129 -0
  89. package/geometries/ParametricGeometry.js +24 -48
  90. package/geometries/ParametricGeometry.mjs +63 -0
  91. package/geometries/RoundedBoxGeometry.js +33 -64
  92. package/geometries/RoundedBoxGeometry.mjs +91 -0
  93. package/geometries/TeapotGeometry.js +1434 -174
  94. package/geometries/TeapotGeometry.mjs +1557 -0
  95. package/geometries/TextGeometry.js +9 -17
  96. package/geometries/TextGeometry.mjs +23 -0
  97. package/helpers/LightProbeHelper.js +53 -21
  98. package/helpers/LightProbeHelper.mjs +72 -0
  99. package/helpers/PositionalAudioHelper.js +23 -30
  100. package/helpers/PositionalAudioHelper.mjs +68 -0
  101. package/helpers/RectAreaLightHelper.js +17 -33
  102. package/helpers/RectAreaLightHelper.mjs +44 -0
  103. package/helpers/VertexNormalsHelper.js +20 -41
  104. package/helpers/VertexNormalsHelper.mjs +54 -0
  105. package/helpers/VertexTangentsHelper.js +18 -36
  106. package/helpers/VertexTangentsHelper.mjs +45 -0
  107. package/index.js +969 -333
  108. package/index.mjs +969 -0
  109. package/interactive/SelectionBox.js +31 -46
  110. package/interactive/SelectionBox.mjs +137 -0
  111. package/interactive/SelectionHelper.js +16 -21
  112. package/interactive/SelectionHelper.mjs +54 -0
  113. package/libs/MeshoptDecoder.js +147 -58
  114. package/libs/MeshoptDecoder.mjs +210 -0
  115. package/libs/MotionControllers.js +66 -208
  116. package/libs/MotionControllers.mjs +261 -0
  117. package/lights/LightProbeGenerator.js +40 -96
  118. package/lights/LightProbeGenerator.mjs +145 -0
  119. package/lights/RectAreaLightUniformsLib.js +32842 -9
  120. package/lights/RectAreaLightUniformsLib.mjs +32842 -0
  121. package/lines/Line2.js +9 -12
  122. package/lines/Line2.mjs +13 -0
  123. package/lines/LineGeometry.js +7 -19
  124. package/lines/LineGeometry.mjs +44 -0
  125. package/lines/LineMaterial.js +51 -89
  126. package/lines/LineMaterial.mjs +539 -0
  127. package/lines/LineSegments2.js +56 -165
  128. package/lines/LineSegments2.mjs +202 -0
  129. package/lines/LineSegmentsGeometry.js +29 -71
  130. package/lines/LineSegmentsGeometry.mjs +124 -0
  131. package/lines/Wireframe.js +15 -29
  132. package/lines/Wireframe.mjs +31 -0
  133. package/lines/WireframeGeometry2.js +8 -9
  134. package/lines/WireframeGeometry2.mjs +13 -0
  135. package/loaders/3DMLoader.js +234 -469
  136. package/loaders/3DMLoader.mjs +802 -0
  137. package/loaders/3MFLoader.js +340 -555
  138. package/loaders/3MFLoader.mjs +837 -0
  139. package/loaders/AMFLoader.js +114 -219
  140. package/loaders/AMFLoader.mjs +284 -0
  141. package/loaders/AssimpLoader.js +328 -725
  142. package/loaders/AssimpLoader.mjs +1396 -0
  143. package/loaders/BVHLoader.js +94 -200
  144. package/loaders/BVHLoader.mjs +207 -0
  145. package/loaders/BasisTextureLoader.js +229 -357
  146. package/loaders/BasisTextureLoader.mjs +474 -0
  147. package/loaders/ColladaLoader.js +932 -1522
  148. package/loaders/ColladaLoader.mjs +2403 -0
  149. package/loaders/DDSLoader.js +42 -108
  150. package/loaders/DDSLoader.mjs +148 -0
  151. package/loaders/DRACOLoader.js +103 -210
  152. package/loaders/DRACOLoader.mjs +340 -0
  153. package/loaders/EXRLoader.js +461 -809
  154. package/loaders/EXRLoader.mjs +1351 -0
  155. package/loaders/FBXLoader.js +842 -1397
  156. package/loaders/FBXLoader.mjs +2362 -0
  157. package/loaders/FontLoader.js +33 -66
  158. package/loaders/FontLoader.mjs +111 -0
  159. package/loaders/GCodeLoader.js +63 -111
  160. package/loaders/GCodeLoader.mjs +141 -0
  161. package/loaders/GLTFLoader.js +771 -1484
  162. package/loaders/GLTFLoader.mjs +2316 -0
  163. package/loaders/HDRCubeTextureLoader.js +45 -50
  164. package/loaders/HDRCubeTextureLoader.mjs +77 -0
  165. package/loaders/KMZLoader.js +42 -55
  166. package/loaders/KMZLoader.mjs +75 -0
  167. package/loaders/KTX2Loader.js +229 -362
  168. package/loaders/KTX2Loader.mjs +427 -0
  169. package/loaders/KTXLoader.js +37 -99
  170. package/loaders/KTXLoader.mjs +87 -0
  171. package/loaders/LDrawLoader.js +313 -746
  172. package/loaders/LDrawLoader.mjs +1409 -0
  173. package/loaders/LUT3dlLoader.js +50 -62
  174. package/loaders/LUT3dlLoader.mjs +100 -0
  175. package/loaders/LUTCubeLoader.js +45 -56
  176. package/loaders/LUTCubeLoader.mjs +104 -0
  177. package/loaders/LWOLoader.js +227 -339
  178. package/loaders/LWOLoader.mjs +625 -0
  179. package/loaders/LottieLoader.js +36 -38
  180. package/loaders/LottieLoader.mjs +47 -0
  181. package/loaders/MD2Loader.js +248 -91
  182. package/loaders/MD2Loader.mjs +359 -0
  183. package/loaders/MDDLoader.js +25 -45
  184. package/loaders/MDDLoader.mjs +58 -0
  185. package/loaders/MMDLoader.js +359 -795
  186. package/loaders/MMDLoader.mjs +998 -0
  187. package/loaders/MTLLoader.js +91 -201
  188. package/loaders/MTLLoader.mjs +280 -0
  189. package/loaders/NRRDLoader.js +182 -263
  190. package/loaders/NRRDLoader.mjs +401 -0
  191. package/loaders/NodeMaterialLoader.js +121 -14
  192. package/loaders/NodeMaterialLoader.mjs +146 -0
  193. package/loaders/OBJLoader.js +161 -283
  194. package/loaders/OBJLoader.mjs +487 -0
  195. package/loaders/PCDLoader.js +145 -164
  196. package/loaders/PCDLoader.mjs +248 -0
  197. package/loaders/PDBLoader.js +45 -63
  198. package/loaders/PDBLoader.mjs +246 -0
  199. package/loaders/PLYLoader.js +106 -203
  200. package/loaders/PLYLoader.mjs +317 -0
  201. package/loaders/PRWMLoader.js +73 -110
  202. package/loaders/PRWMLoader.mjs +160 -0
  203. package/loaders/PVRLoader.js +32 -93
  204. package/loaders/PVRLoader.mjs +131 -0
  205. package/loaders/RGBELoader.js +96 -233
  206. package/loaders/RGBELoader.mjs +244 -0
  207. package/loaders/RGBMLoader.js +344 -514
  208. package/loaders/RGBMLoader.mjs +998 -0
  209. package/loaders/STLLoader.js +59 -165
  210. package/loaders/STLLoader.mjs +190 -0
  211. package/loaders/SVGLoader.js +481 -851
  212. package/loaders/SVGLoader.mjs +1709 -0
  213. package/loaders/TDSLoader.js +137 -527
  214. package/loaders/TDSLoader.mjs +480 -0
  215. package/loaders/TGALoader.js +94 -205
  216. package/loaders/TGALoader.mjs +285 -0
  217. package/loaders/TTFLoader.js +58 -79
  218. package/loaders/TTFLoader.mjs +131 -0
  219. package/loaders/TiltLoader.js +129 -167
  220. package/loaders/TiltLoader.mjs +373 -0
  221. package/loaders/VOXLoader.js +320 -84
  222. package/loaders/VOXLoader.mjs +431 -0
  223. package/loaders/VRMLLoader.js +786 -1268
  224. package/loaders/VRMLLoader.mjs +2093 -0
  225. package/loaders/VRMLoader.js +23 -31
  226. package/loaders/VRMLoader.mjs +38 -0
  227. package/loaders/VTKLoader.js +219 -407
  228. package/loaders/VTKLoader.mjs +646 -0
  229. package/loaders/XLoader.js +1083 -1259
  230. package/loaders/XLoader.mjs +1258 -0
  231. package/loaders/XYZLoader.js +28 -34
  232. package/loaders/XYZLoader.mjs +60 -0
  233. package/loaders/lwo/IFFParser.js +238 -492
  234. package/loaders/lwo/IFFParser.mjs +697 -0
  235. package/loaders/lwo/LWO2Parser.js +176 -279
  236. package/loaders/lwo/LWO2Parser.mjs +327 -0
  237. package/loaders/lwo/LWO3Parser.js +160 -247
  238. package/loaders/lwo/LWO3Parser.mjs +298 -0
  239. package/math/Capsule.js +56 -43
  240. package/math/Capsule.mjs +100 -0
  241. package/math/ColorConverter.js +18 -32
  242. package/math/ColorConverter.mjs +51 -0
  243. package/math/ConvexHull.js +97 -357
  244. package/math/ConvexHull.mjs +574 -0
  245. package/math/ImprovedNoise.js +282 -32
  246. package/math/ImprovedNoise.mjs +302 -0
  247. package/math/Lut.js +51 -35
  248. package/math/Lut.mjs +135 -0
  249. package/math/MeshSurfaceSampler.js +25 -68
  250. package/math/MeshSurfaceSampler.mjs +107 -0
  251. package/math/OBB.js +91 -152
  252. package/math/OBB.mjs +235 -0
  253. package/math/Octree.js +76 -139
  254. package/math/Octree.mjs +278 -0
  255. package/math/SimplexNoise.js +217 -238
  256. package/math/SimplexNoise.mjs +425 -0
  257. package/misc/ConvexObjectBreaker.js +79 -185
  258. package/misc/ConvexObjectBreaker.mjs +292 -0
  259. package/misc/GPUComputationRenderer.js +69 -194
  260. package/misc/GPUComputationRenderer.mjs +171 -0
  261. package/misc/Gyroscope.js +16 -22
  262. package/misc/Gyroscope.mjs +35 -0
  263. package/misc/MD2Character.js +52 -74
  264. package/misc/MD2Character.mjs +162 -0
  265. package/misc/MD2CharacterComplex.js +112 -163
  266. package/misc/MD2CharacterComplex.mjs +328 -0
  267. package/misc/MorphAnimMesh.js +20 -28
  268. package/misc/MorphAnimMesh.mjs +40 -0
  269. package/misc/MorphBlendMesh.js +45 -69
  270. package/misc/MorphBlendMesh.mjs +179 -0
  271. package/misc/ProgressiveLightmap.js +70 -187
  272. package/misc/ProgressiveLightmap.mjs +166 -0
  273. package/misc/RollerCoaster.js +106 -135
  274. package/misc/RollerCoaster.mjs +346 -0
  275. package/misc/TubePainter.js +74 -92
  276. package/misc/TubePainter.mjs +123 -0
  277. package/misc/Volume.js +108 -270
  278. package/misc/Volume.mjs +244 -0
  279. package/misc/VolumeSlice.js +34 -122
  280. package/misc/VolumeSlice.mjs +106 -0
  281. package/misc/WebGL.js +37 -34
  282. package/misc/WebGL.mjs +74 -0
  283. package/modifiers/CurveModifier.js +46 -151
  284. package/modifiers/CurveModifier.mjs +182 -0
  285. package/modifiers/EdgeSplitModifier.js +46 -90
  286. package/modifiers/EdgeSplitModifier.mjs +162 -0
  287. package/modifiers/SimplifyModifier.js +77 -202
  288. package/modifiers/SimplifyModifier.mjs +282 -0
  289. package/modifiers/TessellateModifier.js +65 -90
  290. package/modifiers/TessellateModifier.mjs +206 -0
  291. package/nodes/Nodes.js +274 -140
  292. package/nodes/Nodes.mjs +400 -0
  293. package/nodes/ShaderNode.js +296 -196
  294. package/nodes/ShaderNode.mjs +408 -0
  295. package/nodes/accessors/BufferNode.js +4 -8
  296. package/nodes/accessors/BufferNode.mjs +15 -0
  297. package/nodes/accessors/CameraNode.js +20 -25
  298. package/nodes/accessors/CameraNode.mjs +44 -0
  299. package/nodes/accessors/CubeTextureNode.js +14 -26
  300. package/nodes/accessors/CubeTextureNode.mjs +42 -0
  301. package/nodes/accessors/MaterialNode.js +43 -53
  302. package/nodes/accessors/MaterialNode.mjs +71 -0
  303. package/nodes/accessors/MaterialReferenceNode.js +3 -6
  304. package/nodes/accessors/MaterialReferenceNode.mjs +14 -0
  305. package/nodes/accessors/ModelNode.js +3 -5
  306. package/nodes/accessors/ModelNode.mjs +9 -0
  307. package/nodes/accessors/ModelViewProjectionNode.js +14 -13
  308. package/nodes/accessors/ModelViewProjectionNode.mjs +24 -0
  309. package/nodes/accessors/NormalNode.js +40 -39
  310. package/nodes/accessors/NormalNode.mjs +62 -0
  311. package/nodes/accessors/Object3DNode.js +40 -50
  312. package/nodes/accessors/Object3DNode.mjs +76 -0
  313. package/nodes/accessors/PointUVNode.js +5 -9
  314. package/nodes/accessors/PointUVNode.mjs +13 -0
  315. package/nodes/accessors/PositionNode.js +42 -41
  316. package/nodes/accessors/PositionNode.mjs +65 -0
  317. package/nodes/accessors/ReferenceNode.js +10 -17
  318. package/nodes/accessors/ReferenceNode.mjs +37 -0
  319. package/nodes/accessors/ReflectNode.js +23 -26
  320. package/nodes/accessors/ReflectNode.mjs +43 -0
  321. package/nodes/accessors/SkinningNode.js +46 -48
  322. package/nodes/accessors/SkinningNode.mjs +58 -0
  323. package/nodes/accessors/TextureNode.js +14 -29
  324. package/nodes/accessors/TextureNode.mjs +54 -0
  325. package/nodes/accessors/UVNode.js +5 -11
  326. package/nodes/accessors/UVNode.mjs +23 -0
  327. package/nodes/core/ArrayUniformNode.js +3 -7
  328. package/nodes/core/ArrayUniformNode.mjs +14 -0
  329. package/nodes/core/AttributeNode.js +5 -12
  330. package/nodes/core/AttributeNode.mjs +30 -0
  331. package/nodes/core/BypassNode.js +5 -12
  332. package/nodes/core/BypassNode.mjs +22 -0
  333. package/nodes/core/CodeNode.js +4 -12
  334. package/nodes/core/CodeNode.mjs +28 -0
  335. package/nodes/core/ConstNode.js +3 -7
  336. package/nodes/core/ConstNode.mjs +14 -0
  337. package/nodes/core/ContextNode.js +3 -8
  338. package/nodes/core/ContextNode.mjs +22 -0
  339. package/nodes/core/ExpressionNode.js +5 -9
  340. package/nodes/core/ExpressionNode.mjs +19 -0
  341. package/nodes/core/FunctionCallNode.js +6 -15
  342. package/nodes/core/FunctionCallNode.mjs +37 -0
  343. package/nodes/core/FunctionNode.js +10 -25
  344. package/nodes/core/FunctionNode.mjs +56 -0
  345. package/nodes/core/InputNode.js +12 -23
  346. package/nodes/core/InputNode.mjs +38 -0
  347. package/nodes/core/Node.js +35 -75
  348. package/nodes/core/Node.mjs +139 -0
  349. package/nodes/core/NodeAttribute.js +2 -4
  350. package/nodes/core/NodeAttribute.mjs +10 -0
  351. package/nodes/core/NodeBuilder.js +110 -224
  352. package/nodes/core/NodeBuilder.mjs +395 -0
  353. package/nodes/core/NodeCode.js +4 -7
  354. package/nodes/core/NodeCode.mjs +11 -0
  355. package/nodes/core/NodeFrame.js +9 -12
  356. package/nodes/core/NodeFrame.mjs +35 -0
  357. package/nodes/core/NodeFunctionInput.js +3 -5
  358. package/nodes/core/NodeFunctionInput.mjs +13 -0
  359. package/nodes/core/NodeKeywords.js +5 -16
  360. package/nodes/core/NodeKeywords.mjs +44 -0
  361. package/nodes/core/NodeUniform.js +3 -7
  362. package/nodes/core/NodeUniform.mjs +18 -0
  363. package/nodes/core/NodeUtils.js +39 -43
  364. package/nodes/core/NodeUtils.mjs +57 -0
  365. package/nodes/core/NodeVar.js +2 -4
  366. package/nodes/core/NodeVar.mjs +10 -0
  367. package/nodes/core/NodeVary.js +2 -4
  368. package/nodes/core/NodeVary.mjs +10 -0
  369. package/nodes/core/PropertyNode.js +4 -10
  370. package/nodes/core/PropertyNode.mjs +21 -0
  371. package/nodes/core/TempNode.js +5 -11
  372. package/nodes/core/TempNode.mjs +25 -0
  373. package/nodes/core/UniformNode.js +4 -10
  374. package/nodes/core/UniformNode.mjs +23 -0
  375. package/nodes/core/VarNode.js +3 -11
  376. package/nodes/core/VarNode.mjs +31 -0
  377. package/nodes/core/VaryNode.js +6 -15
  378. package/nodes/core/VaryNode.mjs +30 -0
  379. package/nodes/core/constants.js +20 -7
  380. package/nodes/core/constants.mjs +24 -0
  381. package/nodes/display/ColorSpaceNode.js +34 -38
  382. package/nodes/display/ColorSpaceNode.mjs +63 -0
  383. package/nodes/display/NormalMapNode.js +35 -53
  384. package/nodes/display/NormalMapNode.mjs +54 -0
  385. package/nodes/fog/FogNode.js +5 -9
  386. package/nodes/fog/FogNode.mjs +15 -0
  387. package/nodes/fog/FogRangeNode.js +5 -9
  388. package/nodes/fog/FogRangeNode.mjs +17 -0
  389. package/nodes/functions/BSDFs.js +61 -118
  390. package/nodes/functions/BSDFs.mjs +64 -0
  391. package/nodes/lights/LightContextNode.js +14 -23
  392. package/nodes/lights/LightContextNode.mjs +35 -0
  393. package/nodes/lights/LightNode.js +27 -31
  394. package/nodes/lights/LightNode.mjs +58 -0
  395. package/nodes/lights/LightsNode.js +9 -28
  396. package/nodes/lights/LightsNode.mjs +59 -0
  397. package/nodes/loaders/NodeLoader.js +27 -42
  398. package/nodes/loaders/NodeLoader.mjs +66 -0
  399. package/nodes/loaders/NodeMaterialLoader.js +4 -10
  400. package/nodes/loaders/NodeMaterialLoader.mjs +24 -0
  401. package/nodes/loaders/NodeObjectLoader.js +9 -19
  402. package/nodes/loaders/NodeObjectLoader.mjs +40 -0
  403. package/nodes/materials/LineBasicNodeMaterial.js +5 -10
  404. package/nodes/materials/LineBasicNodeMaterial.mjs +27 -0
  405. package/nodes/materials/Materials.js +14 -17
  406. package/nodes/materials/Materials.mjs +28 -0
  407. package/nodes/materials/MeshBasicNodeMaterial.js +5 -10
  408. package/nodes/materials/MeshBasicNodeMaterial.mjs +28 -0
  409. package/nodes/materials/MeshStandardNodeMaterial.js +5 -8
  410. package/nodes/materials/MeshStandardNodeMaterial.mjs +41 -0
  411. package/nodes/materials/NodeMaterial.js +20 -36
  412. package/nodes/materials/NodeMaterial.mjs +64 -0
  413. package/nodes/materials/PointsNodeMaterial.js +5 -10
  414. package/nodes/materials/PointsNodeMaterial.mjs +30 -0
  415. package/nodes/math/CondNode.js +11 -23
  416. package/nodes/math/CondNode.mjs +38 -0
  417. package/nodes/math/MathNode.js +98 -142
  418. package/nodes/math/MathNode.mjs +163 -0
  419. package/nodes/math/OperatorNode.js +24 -46
  420. package/nodes/math/OperatorNode.mjs +103 -0
  421. package/nodes/procedural/CheckerNode.js +13 -19
  422. package/nodes/procedural/CheckerNode.mjs +21 -0
  423. package/nodes/utils/ArrayElementNode.js +4 -8
  424. package/nodes/utils/ArrayElementNode.mjs +19 -0
  425. package/nodes/utils/ConvertNode.js +3 -8
  426. package/nodes/utils/ConvertNode.mjs +25 -0
  427. package/nodes/utils/JoinNode.js +7 -11
  428. package/nodes/utils/JoinNode.mjs +26 -0
  429. package/nodes/utils/MatcapUVNode.js +8 -11
  430. package/nodes/utils/MatcapUVNode.mjs +16 -0
  431. package/nodes/utils/OscNode.js +27 -33
  432. package/nodes/utils/OscNode.mjs +50 -0
  433. package/nodes/utils/SplitNode.js +6 -20
  434. package/nodes/utils/SplitNode.mjs +45 -0
  435. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  436. package/nodes/utils/SpriteSheetUVNode.mjs +40 -0
  437. package/nodes/utils/TimerNode.js +20 -24
  438. package/nodes/utils/TimerNode.mjs +44 -0
  439. package/objects/GroundProjectedEnv.js +22 -37
  440. package/objects/GroundProjectedEnv.mjs +130 -0
  441. package/objects/Lensflare.js +86 -156
  442. package/objects/Lensflare.mjs +262 -0
  443. package/objects/LightningStorm.js +38 -102
  444. package/objects/LightningStorm.mjs +110 -0
  445. package/objects/MarchingCubes.js +150 -303
  446. package/objects/MarchingCubes.mjs +457 -0
  447. package/objects/Reflector.js +50 -72
  448. package/objects/Reflector.mjs +166 -0
  449. package/objects/ReflectorForSSRPass.js +80 -131
  450. package/objects/ReflectorForSSRPass.mjs +247 -0
  451. package/objects/ReflectorRTT.js +6 -7
  452. package/objects/ReflectorRTT.mjs +10 -0
  453. package/objects/Refractor.js +64 -106
  454. package/objects/Refractor.mjs +178 -0
  455. package/objects/ShadowMesh.js +8 -17
  456. package/objects/ShadowMesh.mjs +41 -0
  457. package/objects/Sky.js +119 -80
  458. package/objects/Sky.mjs +124 -0
  459. package/objects/Water.js +83 -127
  460. package/objects/Water.mjs +235 -0
  461. package/objects/Water2.js +72 -108
  462. package/objects/Water2.mjs +252 -0
  463. package/offscreen/jank.js +10 -14
  464. package/offscreen/jank.mjs +27 -0
  465. package/offscreen/offscreen.js +4 -5
  466. package/offscreen/offscreen.mjs +5 -0
  467. package/offscreen/scene.js +45 -48
  468. package/offscreen/scene.mjs +52 -0
  469. package/package.json +3 -3
  470. package/physics/AmmoPhysics.js +30 -71
  471. package/physics/AmmoPhysics.mjs +165 -0
  472. package/postprocessing/AdaptiveToneMappingPass.js +97 -123
  473. package/postprocessing/AdaptiveToneMappingPass.mjs +221 -0
  474. package/postprocessing/AfterimagePass.js +28 -49
  475. package/postprocessing/AfterimagePass.mjs +55 -0
  476. package/postprocessing/BloomPass.js +43 -69
  477. package/postprocessing/BloomPass.mjs +90 -0
  478. package/postprocessing/BokehPass.js +39 -69
  479. package/postprocessing/BokehPass.mjs +76 -0
  480. package/postprocessing/ClearPass.js +10 -25
  481. package/postprocessing/ClearPass.mjs +27 -0
  482. package/postprocessing/CubeTexturePass.js +28 -27
  483. package/postprocessing/CubeTexturePass.mjs +49 -0
  484. package/postprocessing/DotScreenPass.js +24 -32
  485. package/postprocessing/DotScreenPass.mjs +40 -0
  486. package/postprocessing/EffectComposer.js +39 -86
  487. package/postprocessing/EffectComposer.mjs +139 -0
  488. package/postprocessing/FilmPass.js +25 -30
  489. package/postprocessing/FilmPass.mjs +42 -0
  490. package/postprocessing/GlitchPass.js +38 -61
  491. package/postprocessing/GlitchPass.mjs +75 -0
  492. package/postprocessing/HalftonePass.js +19 -39
  493. package/postprocessing/HalftonePass.mjs +44 -0
  494. package/postprocessing/LUTPass.js +13 -38
  495. package/postprocessing/LUTPass.mjs +136 -0
  496. package/postprocessing/MaskPass.js +19 -38
  497. package/postprocessing/MaskPass.mjs +60 -0
  498. package/postprocessing/OutlinePass.js +135 -277
  499. package/postprocessing/OutlinePass.mjs +438 -0
  500. package/postprocessing/Pass.js +20 -44
  501. package/postprocessing/Pass.mjs +37 -0
  502. package/postprocessing/RenderPass.js +13 -36
  503. package/postprocessing/RenderPass.mjs +48 -0
  504. package/postprocessing/RenderPixelatedPass.js +44 -58
  505. package/postprocessing/RenderPixelatedPass.mjs +199 -0
  506. package/postprocessing/SAOPass.js +154 -189
  507. package/postprocessing/SAOPass.mjs +282 -0
  508. package/postprocessing/SMAAPass.js +64 -84
  509. package/postprocessing/SMAAPass.mjs +112 -0
  510. package/postprocessing/SSAARenderPass.js +121 -69
  511. package/postprocessing/SSAARenderPass.mjs +170 -0
  512. package/postprocessing/SSAOPass.js +123 -172
  513. package/postprocessing/SSAOPass.mjs +265 -0
  514. package/postprocessing/SSRPass.js +211 -280
  515. package/postprocessing/SSRPass.mjs +432 -0
  516. package/postprocessing/SavePass.js +20 -25
  517. package/postprocessing/SavePass.mjs +37 -0
  518. package/postprocessing/ShaderPass.js +14 -30
  519. package/postprocessing/ShaderPass.mjs +39 -0
  520. package/postprocessing/TAARenderPass.js +42 -61
  521. package/postprocessing/TAARenderPass.mjs +88 -0
  522. package/postprocessing/TexturePass.js +21 -22
  523. package/postprocessing/TexturePass.mjs +39 -0
  524. package/postprocessing/UnrealBloomPass.js +105 -213
  525. package/postprocessing/UnrealBloomPass.mjs +220 -0
  526. package/renderers/CSS2DRenderer.js +44 -56
  527. package/renderers/CSS2DRenderer.mjs +112 -0
  528. package/renderers/CSS3DRenderer.js +53 -86
  529. package/renderers/CSS3DRenderer.mjs +133 -0
  530. package/renderers/Projector.js +107 -274
  531. package/renderers/Projector.mjs +511 -0
  532. package/renderers/SVGRenderer.js +72 -182
  533. package/renderers/SVGRenderer.mjs +306 -0
  534. package/renderers/nodes/accessors/CameraNode.js +29 -40
  535. package/renderers/nodes/accessors/CameraNode.mjs +63 -0
  536. package/renderers/nodes/accessors/ModelNode.js +28 -37
  537. package/renderers/nodes/accessors/ModelNode.mjs +61 -0
  538. package/renderers/nodes/accessors/ModelViewProjectionNode.js +10 -23
  539. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +21 -0
  540. package/renderers/nodes/accessors/NormalNode.js +35 -45
  541. package/renderers/nodes/accessors/NormalNode.mjs +61 -0
  542. package/renderers/nodes/accessors/PositionNode.js +18 -19
  543. package/renderers/nodes/accessors/PositionNode.mjs +30 -0
  544. package/renderers/nodes/accessors/UVNode.js +5 -10
  545. package/renderers/nodes/accessors/UVNode.mjs +13 -0
  546. package/renderers/nodes/core/AttributeNode.js +5 -14
  547. package/renderers/nodes/core/AttributeNode.mjs +35 -0
  548. package/renderers/nodes/core/InputNode.js +4 -14
  549. package/renderers/nodes/core/InputNode.mjs +31 -0
  550. package/renderers/nodes/core/Node.js +7 -17
  551. package/renderers/nodes/core/Node.mjs +34 -0
  552. package/renderers/nodes/core/NodeAttribute.js +3 -6
  553. package/renderers/nodes/core/NodeAttribute.mjs +10 -0
  554. package/renderers/nodes/core/NodeBuilder.js +87 -154
  555. package/renderers/nodes/core/NodeBuilder.mjs +243 -0
  556. package/renderers/nodes/core/NodeFrame.js +9 -12
  557. package/renderers/nodes/core/NodeFrame.mjs +35 -0
  558. package/renderers/nodes/core/NodeSlot.js +2 -3
  559. package/renderers/nodes/core/NodeSlot.mjs +10 -0
  560. package/renderers/nodes/core/NodeUniform.js +4 -9
  561. package/renderers/nodes/core/NodeUniform.mjs +18 -0
  562. package/renderers/nodes/core/NodeVary.js +4 -7
  563. package/renderers/nodes/core/NodeVary.mjs +11 -0
  564. package/renderers/nodes/core/VaryNode.js +6 -12
  565. package/renderers/nodes/core/VaryNode.mjs +22 -0
  566. package/renderers/nodes/core/constants.js +16 -13
  567. package/renderers/nodes/core/constants.mjs +22 -0
  568. package/renderers/nodes/inputs/ColorNode.js +5 -11
  569. package/renderers/nodes/inputs/ColorNode.mjs +11 -0
  570. package/renderers/nodes/inputs/FloatNode.js +5 -11
  571. package/renderers/nodes/inputs/FloatNode.mjs +11 -0
  572. package/renderers/nodes/inputs/Matrix3Node.js +7 -13
  573. package/renderers/nodes/inputs/Matrix3Node.mjs +12 -0
  574. package/renderers/nodes/inputs/Matrix4Node.js +7 -13
  575. package/renderers/nodes/inputs/Matrix4Node.mjs +12 -0
  576. package/renderers/nodes/inputs/TextureNode.js +7 -15
  577. package/renderers/nodes/inputs/TextureNode.mjs +20 -0
  578. package/renderers/nodes/inputs/Vector2Node.js +5 -11
  579. package/renderers/nodes/inputs/Vector2Node.mjs +11 -0
  580. package/renderers/nodes/inputs/Vector3Node.js +7 -13
  581. package/renderers/nodes/inputs/Vector3Node.mjs +12 -0
  582. package/renderers/nodes/inputs/Vector4Node.js +7 -13
  583. package/renderers/nodes/inputs/Vector4Node.mjs +12 -0
  584. package/renderers/nodes/math/MathNode.js +20 -30
  585. package/renderers/nodes/math/MathNode.mjs +55 -0
  586. package/renderers/nodes/math/OperatorNode.js +4 -20
  587. package/renderers/nodes/math/OperatorNode.mjs +42 -0
  588. package/renderers/nodes/utils/SwitchNode.js +4 -9
  589. package/renderers/nodes/utils/SwitchNode.mjs +20 -0
  590. package/renderers/nodes/utils/TimerNode.js +5 -10
  591. package/renderers/nodes/utils/TimerNode.mjs +14 -0
  592. package/renderers/webgpu/WebGPU.js +14 -16
  593. package/renderers/webgpu/WebGPU.mjs +24 -0
  594. package/renderers/webgpu/WebGPUAttributes.js +16 -23
  595. package/renderers/webgpu/WebGPUAttributes.mjs +69 -0
  596. package/renderers/webgpu/WebGPUBackground.js +13 -30
  597. package/renderers/webgpu/WebGPUBackground.mjs +61 -0
  598. package/renderers/webgpu/WebGPUBinding.js +4 -7
  599. package/renderers/webgpu/WebGPUBinding.mjs +14 -0
  600. package/renderers/webgpu/WebGPUBindings.js +21 -57
  601. package/renderers/webgpu/WebGPUBindings.mjs +155 -0
  602. package/renderers/webgpu/WebGPUComputePipelines.js +14 -25
  603. package/renderers/webgpu/WebGPUComputePipelines.mjs +44 -0
  604. package/renderers/webgpu/WebGPUGeometries.js +5 -15
  605. package/renderers/webgpu/WebGPUGeometries.mjs +41 -0
  606. package/renderers/webgpu/WebGPUInfo.js +3 -8
  607. package/renderers/webgpu/WebGPUInfo.mjs +46 -0
  608. package/renderers/webgpu/WebGPUObjects.js +5 -10
  609. package/renderers/webgpu/WebGPUObjects.mjs +25 -0
  610. package/renderers/webgpu/WebGPUProperties.js +5 -11
  611. package/renderers/webgpu/WebGPUProperties.mjs +22 -0
  612. package/renderers/webgpu/WebGPURenderLists.js +20 -36
  613. package/renderers/webgpu/WebGPURenderLists.mjs +119 -0
  614. package/renderers/webgpu/WebGPURenderPipelines.js +260 -387
  615. package/renderers/webgpu/WebGPURenderPipelines.mjs +545 -0
  616. package/renderers/webgpu/WebGPURenderer.js +124 -262
  617. package/renderers/webgpu/WebGPURenderer.mjs +574 -0
  618. package/renderers/webgpu/WebGPUSampledTexture.js +18 -31
  619. package/renderers/webgpu/WebGPUSampledTexture.mjs +40 -0
  620. package/renderers/webgpu/WebGPUSampler.js +7 -12
  621. package/renderers/webgpu/WebGPUSampler.mjs +15 -0
  622. package/renderers/webgpu/WebGPUStorageBuffer.js +7 -12
  623. package/renderers/webgpu/WebGPUStorageBuffer.mjs +15 -0
  624. package/renderers/webgpu/WebGPUTextureRenderer.js +5 -11
  625. package/renderers/webgpu/WebGPUTextureRenderer.mjs +23 -0
  626. package/renderers/webgpu/WebGPUTextureUtils.js +29 -40
  627. package/renderers/webgpu/WebGPUTextureUtils.mjs +98 -0
  628. package/renderers/webgpu/WebGPUTextures.js +186 -333
  629. package/renderers/webgpu/WebGPUTextures.mjs +484 -0
  630. package/renderers/webgpu/WebGPUUniform.js +25 -51
  631. package/renderers/webgpu/WebGPUUniform.mjs +81 -0
  632. package/renderers/webgpu/WebGPUUniformsGroup.js +32 -72
  633. package/renderers/webgpu/WebGPUUniformsGroup.mjs +176 -0
  634. package/renderers/webgpu/constants.js +190 -181
  635. package/renderers/webgpu/constants.mjs +230 -0
  636. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  637. package/renderers/webgpu/nodes/ShaderLib.mjs +42 -0
  638. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +53 -124
  639. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +165 -0
  640. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +17 -31
  641. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +73 -0
  642. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +8 -9
  643. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +15 -0
  644. package/renderers/webgpu/nodes/WebGPUNodes.js +7 -45
  645. package/renderers/webgpu/nodes/WebGPUNodes.mjs +40 -0
  646. package/shaders/ACESFilmicToneMappingShader.js +44 -24
  647. package/shaders/ACESFilmicToneMappingShader.mjs +48 -0
  648. package/shaders/AfterimageShader.js +28 -18
  649. package/shaders/AfterimageShader.mjs +32 -0
  650. package/shaders/BasicShader.js +9 -7
  651. package/shaders/BasicShader.mjs +12 -0
  652. package/shaders/BleachBypassShader.js +31 -15
  653. package/shaders/BleachBypassShader.mjs +35 -0
  654. package/shaders/BlendShader.js +26 -19
  655. package/shaders/BlendShader.mjs +30 -0
  656. package/shaders/BokehShader.js +98 -36
  657. package/shaders/BokehShader.mjs +106 -0
  658. package/shaders/BokehShader2.js +261 -90
  659. package/shaders/BokehShader2.mjs +269 -0
  660. package/shaders/BrightnessContrastShader.js +28 -19
  661. package/shaders/BrightnessContrastShader.mjs +32 -0
  662. package/shaders/ColorCorrectionShader.js +26 -22
  663. package/shaders/ColorCorrectionShader.mjs +30 -0
  664. package/shaders/ColorifyShader.js +24 -16
  665. package/shaders/ColorifyShader.mjs +28 -0
  666. package/shaders/ConvolutionShader.js +40 -36
  667. package/shaders/ConvolutionShader.mjs +55 -0
  668. package/shaders/CopyShader.js +21 -13
  669. package/shaders/CopyShader.mjs +25 -0
  670. package/shaders/DOFMipMapShader.js +28 -21
  671. package/shaders/DOFMipMapShader.mjs +32 -0
  672. package/shaders/DepthLimitedBlurShader.js +85 -40
  673. package/shaders/DepthLimitedBlurShader.mjs +114 -0
  674. package/shaders/DigitalGlitch.js +74 -46
  675. package/shaders/DigitalGlitch.mjs +78 -0
  676. package/shaders/DotScreenShader.js +35 -27
  677. package/shaders/DotScreenShader.mjs +39 -0
  678. package/shaders/FXAAShader.js +1094 -19
  679. package/shaders/FXAAShader.mjs +1098 -0
  680. package/shaders/FilmShader.js +38 -52
  681. package/shaders/FilmShader.mjs +42 -0
  682. package/shaders/FocusShader.js +51 -24
  683. package/shaders/FocusShader.mjs +55 -0
  684. package/shaders/FreiChenShader.js +57 -24
  685. package/shaders/FreiChenShader.mjs +61 -0
  686. package/shaders/FresnelShader.js +43 -22
  687. package/shaders/FresnelShader.mjs +47 -0
  688. package/shaders/GammaCorrectionShader.js +19 -11
  689. package/shaders/GammaCorrectionShader.mjs +23 -0
  690. package/shaders/GodRaysShader.js +103 -94
  691. package/shaders/GodRaysShader.mjs +146 -0
  692. package/shaders/HalftoneShader.js +208 -65
  693. package/shaders/HalftoneShader.mjs +212 -0
  694. package/shaders/HorizontalBlurShader.js +7 -23
  695. package/shaders/HorizontalBlurShader.mjs +43 -0
  696. package/shaders/HorizontalTiltShiftShader.js +33 -21
  697. package/shaders/HorizontalTiltShiftShader.mjs +37 -0
  698. package/shaders/HueSaturationShader.js +37 -21
  699. package/shaders/HueSaturationShader.mjs +41 -0
  700. package/shaders/KaleidoShader.js +30 -22
  701. package/shaders/KaleidoShader.mjs +34 -0
  702. package/shaders/LuminosityHighPassShader.js +33 -27
  703. package/shaders/LuminosityHighPassShader.mjs +37 -0
  704. package/shaders/LuminosityShader.js +21 -11
  705. package/shaders/LuminosityShader.mjs +25 -0
  706. package/shaders/MirrorShader.js +31 -16
  707. package/shaders/MirrorShader.mjs +35 -0
  708. package/shaders/NormalMapShader.js +27 -23
  709. package/shaders/NormalMapShader.mjs +31 -0
  710. package/shaders/ParallaxShader.js +107 -48
  711. package/shaders/ParallaxShader.mjs +113 -0
  712. package/shaders/PixelShader.js +24 -16
  713. package/shaders/PixelShader.mjs +28 -0
  714. package/shaders/RGBShiftShader.js +26 -22
  715. package/shaders/RGBShiftShader.mjs +30 -0
  716. package/shaders/SAOShader.js +132 -48
  717. package/shaders/SAOShader.mjs +144 -0
  718. package/shaders/SMAAShader.js +256 -135
  719. package/shaders/SMAAShader.mjs +272 -0
  720. package/shaders/SSAOShader.js +153 -81
  721. package/shaders/SSAOShader.mjs +172 -0
  722. package/shaders/SSRShader.js +32 -87
  723. package/shaders/SSRShader.mjs +324 -0
  724. package/shaders/SepiaShader.js +25 -15
  725. package/shaders/SepiaShader.mjs +29 -0
  726. package/shaders/SobelOperatorShader.js +40 -29
  727. package/shaders/SobelOperatorShader.mjs +44 -0
  728. package/shaders/SubsurfaceScatteringShader.js +53 -39
  729. package/shaders/SubsurfaceScatteringShader.mjs +59 -0
  730. package/shaders/TechnicolorShader.js +20 -13
  731. package/shaders/TechnicolorShader.mjs +24 -0
  732. package/shaders/ToneMapShader.js +44 -28
  733. package/shaders/ToneMapShader.mjs +48 -0
  734. package/shaders/ToonShader.js +172 -96
  735. package/shaders/ToonShader.mjs +188 -0
  736. package/shaders/TriangleBlurShader.js +32 -23
  737. package/shaders/TriangleBlurShader.mjs +36 -0
  738. package/shaders/UnpackDepthRGBAShader.js +22 -14
  739. package/shaders/UnpackDepthRGBAShader.mjs +26 -0
  740. package/shaders/VerticalBlurShader.js +7 -23
  741. package/shaders/VerticalBlurShader.mjs +44 -0
  742. package/shaders/VerticalTiltShiftShader.js +33 -21
  743. package/shaders/VerticalTiltShiftShader.mjs +37 -0
  744. package/shaders/VignetteShader.js +24 -28
  745. package/shaders/VignetteShader.mjs +28 -0
  746. package/shaders/VolumeShader.js +174 -77
  747. package/shaders/VolumeShader.mjs +178 -0
  748. package/shaders/WaterRefractionShader.js +38 -6
  749. package/shaders/WaterRefractionShader.mjs +57 -0
  750. package/shaders/types.js +1 -1
  751. package/{custom.d.js → shaders/types.mjs} +0 -0
  752. package/textures/FlakesTexture.js +8 -10
  753. package/textures/FlakesTexture.mjs +30 -0
  754. package/types/helpers.js +3 -2
  755. package/types/helpers.mjs +4 -0
  756. package/utils/BufferGeometryUtils.js +251 -325
  757. package/utils/BufferGeometryUtils.mjs +570 -0
  758. package/utils/GeometryCompressionUtils.js +241 -239
  759. package/utils/GeometryCompressionUtils.mjs +547 -0
  760. package/utils/GeometryUtils.js +41 -94
  761. package/utils/GeometryUtils.mjs +108 -0
  762. package/utils/RoughnessMipmapper.js +38 -82
  763. package/utils/RoughnessMipmapper.mjs +213 -0
  764. package/utils/SceneUtils.js +15 -20
  765. package/utils/SceneUtils.mjs +36 -0
  766. package/utils/ShadowMapViewer.js +49 -95
  767. package/utils/ShadowMapViewer.mjs +114 -0
  768. package/utils/SkeletonUtils.js +74 -165
  769. package/utils/SkeletonUtils.mjs +292 -0
  770. package/utils/UVsDebug.js +32 -62
  771. package/utils/UVsDebug.mjs +85 -0
  772. package/utils/WorkerPool.js +13 -33
  773. package/utils/WorkerPool.mjs +62 -0
  774. package/webxr/ARButton.js +72 -98
  775. package/webxr/ARButton.mjs +119 -0
  776. package/webxr/OculusHandModel.js +18 -37
  777. package/webxr/OculusHandModel.mjs +71 -0
  778. package/webxr/OculusHandPointerModel.js +58 -80
  779. package/webxr/OculusHandPointerModel.mjs +207 -0
  780. package/webxr/Text2D.js +37 -19
  781. package/webxr/Text2D.mjs +31 -0
  782. package/webxr/VRButton.js +59 -90
  783. package/webxr/VRButton.mjs +105 -0
  784. package/webxr/XRControllerModelFactory.js +58 -116
  785. package/webxr/XRControllerModelFactory.mjs +146 -0
  786. package/webxr/XREstimatedLight.js +39 -66
  787. package/webxr/XREstimatedLight.mjs +126 -0
  788. package/webxr/XRHandMeshModel.js +40 -29
  789. package/webxr/XRHandMeshModel.mjs +73 -0
  790. package/webxr/XRHandModelFactory.js +28 -31
  791. package/webxr/XRHandModelFactory.mjs +61 -0
  792. package/webxr/XRHandPrimitiveModel.js +41 -27
  793. package/webxr/XRHandPrimitiveModel.mjs +68 -0
  794. package/BufferGeometryUtils-1a7a235c.js +0 -655
  795. package/BufferGeometryUtils-971dfde3.js +0 -1
  796. package/Nodes-4f766d71.js +0 -471
  797. package/Nodes-9aa16d74.js +0 -1
  798. package/animation/AnimationClipCreator.cjs.js +0 -1
  799. package/animation/CCDIKSolver.cjs.js +0 -1
  800. package/animation/MMDAnimationHelper.cjs.js +0 -1
  801. package/animation/MMDPhysics.cjs.js +0 -1
  802. package/cameras/CinematicCamera.cjs.js +0 -1
  803. package/controls/ArcballControls.cjs.js +0 -1
  804. package/controls/DeviceOrientationControls.cjs.js +0 -1
  805. package/controls/DragControls.cjs.js +0 -1
  806. package/controls/FirstPersonControls.cjs.js +0 -1
  807. package/controls/FlyControls.cjs.js +0 -1
  808. package/controls/OrbitControls.cjs.js +0 -1
  809. package/controls/PointerLockControls.cjs.js +0 -1
  810. package/controls/TrackballControls.cjs.js +0 -1
  811. package/controls/TransformControls.cjs.js +0 -1
  812. package/controls/experimental/CameraControls.cjs.js +0 -1
  813. package/csm/CSM.cjs.js +0 -1
  814. package/csm/CSMFrustum.cjs.js +0 -1
  815. package/csm/CSMHelper.cjs.js +0 -1
  816. package/csm/CSMShader.cjs.js +0 -1
  817. package/curves/CurveExtras.cjs.js +0 -1
  818. package/curves/NURBSCurve.cjs.js +0 -1
  819. package/curves/NURBSSurface.cjs.js +0 -1
  820. package/curves/NURBSUtils.cjs.js +0 -1
  821. package/custom.d.cjs.js +0 -1
  822. package/deprecated/Geometry.cjs.js +0 -1
  823. package/effects/AnaglyphEffect.cjs.js +0 -1
  824. package/effects/AsciiEffect.cjs.js +0 -1
  825. package/effects/OutlineEffect.cjs.js +0 -1
  826. package/effects/ParallaxBarrierEffect.cjs.js +0 -1
  827. package/effects/PeppersGhostEffect.cjs.js +0 -1
  828. package/effects/StereoEffect.cjs.js +0 -1
  829. package/environments/RoomEnvironment.cjs.js +0 -1
  830. package/exporters/ColladaExporter.cjs.js +0 -1
  831. package/exporters/DRACOExporter.cjs.js +0 -1
  832. package/exporters/GLTFExporter.cjs.js +0 -1
  833. package/exporters/MMDExporter.cjs.js +0 -1
  834. package/exporters/OBJExporter.cjs.js +0 -1
  835. package/exporters/PLYExporter.cjs.js +0 -1
  836. package/exporters/STLExporter.cjs.js +0 -1
  837. package/exporters/USDZExporter.cjs.js +0 -1
  838. package/geometries/BoxLineGeometry.cjs.js +0 -1
  839. package/geometries/ConvexGeometry.cjs.js +0 -1
  840. package/geometries/DecalGeometry.cjs.js +0 -1
  841. package/geometries/LightningStrike.cjs.js +0 -1
  842. package/geometries/ParametricGeometries.cjs.js +0 -1
  843. package/geometries/ParametricGeometry.cjs.js +0 -1
  844. package/geometries/RoundedBoxGeometry.cjs.js +0 -1
  845. package/geometries/TeapotGeometry.cjs.js +0 -1
  846. package/geometries/TextGeometry.cjs.js +0 -1
  847. package/helpers/LightProbeHelper.cjs.js +0 -1
  848. package/helpers/PositionalAudioHelper.cjs.js +0 -1
  849. package/helpers/RectAreaLightHelper.cjs.js +0 -1
  850. package/helpers/VertexNormalsHelper.cjs.js +0 -1
  851. package/helpers/VertexTangentsHelper.cjs.js +0 -1
  852. package/index.cjs.js +0 -1
  853. package/interactive/InteractiveGroup.cjs.js +0 -1
  854. package/interactive/InteractiveGroup.d.ts +0 -5
  855. package/interactive/InteractiveGroup.js +0 -87
  856. package/interactive/SelectionBox.cjs.js +0 -1
  857. package/interactive/SelectionHelper.cjs.js +0 -1
  858. package/libs/MeshoptDecoder.cjs.js +0 -1
  859. package/libs/MotionControllers.cjs.js +0 -1
  860. package/lights/LightProbeGenerator.cjs.js +0 -1
  861. package/lights/RectAreaLightUniformsLib.cjs.js +0 -1
  862. package/lines/Line2.cjs.js +0 -1
  863. package/lines/LineGeometry.cjs.js +0 -1
  864. package/lines/LineMaterial.cjs.js +0 -1
  865. package/lines/LineSegments2.cjs.js +0 -1
  866. package/lines/LineSegmentsGeometry.cjs.js +0 -1
  867. package/lines/Wireframe.cjs.js +0 -1
  868. package/lines/WireframeGeometry2.cjs.js +0 -1
  869. package/loaders/3DMLoader.cjs.js +0 -1
  870. package/loaders/3MFLoader.cjs.js +0 -1
  871. package/loaders/AMFLoader.cjs.js +0 -1
  872. package/loaders/AssimpLoader.cjs.js +0 -1
  873. package/loaders/BVHLoader.cjs.js +0 -1
  874. package/loaders/BasisTextureLoader.cjs.js +0 -1
  875. package/loaders/ColladaLoader.cjs.js +0 -1
  876. package/loaders/DDSLoader.cjs.js +0 -1
  877. package/loaders/DRACOLoader.cjs.js +0 -1
  878. package/loaders/EXRLoader.cjs.js +0 -1
  879. package/loaders/FBXLoader.cjs.js +0 -1
  880. package/loaders/FontLoader.cjs.js +0 -1
  881. package/loaders/GCodeLoader.cjs.js +0 -1
  882. package/loaders/GLTFLoader.cjs.js +0 -1
  883. package/loaders/HDRCubeTextureLoader.cjs.js +0 -1
  884. package/loaders/KMZLoader.cjs.js +0 -1
  885. package/loaders/KTX2Loader.cjs.js +0 -1
  886. package/loaders/KTXLoader.cjs.js +0 -1
  887. package/loaders/LDrawLoader.cjs.js +0 -1
  888. package/loaders/LUT3dlLoader.cjs.js +0 -1
  889. package/loaders/LUTCubeLoader.cjs.js +0 -1
  890. package/loaders/LWOLoader.cjs.js +0 -1
  891. package/loaders/LottieLoader.cjs.js +0 -1
  892. package/loaders/MD2Loader.cjs.js +0 -1
  893. package/loaders/MDDLoader.cjs.js +0 -1
  894. package/loaders/MMDLoader.cjs.js +0 -1
  895. package/loaders/MTLLoader.cjs.js +0 -1
  896. package/loaders/NRRDLoader.cjs.js +0 -1
  897. package/loaders/NodeMaterialLoader.cjs.js +0 -1
  898. package/loaders/OBJLoader.cjs.js +0 -1
  899. package/loaders/PCDLoader.cjs.js +0 -1
  900. package/loaders/PDBLoader.cjs.js +0 -1
  901. package/loaders/PLYLoader.cjs.js +0 -1
  902. package/loaders/PRWMLoader.cjs.js +0 -1
  903. package/loaders/PVRLoader.cjs.js +0 -1
  904. package/loaders/RGBELoader.cjs.js +0 -1
  905. package/loaders/RGBMLoader.cjs.js +0 -1
  906. package/loaders/STLLoader.cjs.js +0 -1
  907. package/loaders/SVGLoader.cjs.js +0 -1
  908. package/loaders/TDSLoader.cjs.js +0 -1
  909. package/loaders/TGALoader.cjs.js +0 -1
  910. package/loaders/TTFLoader.cjs.js +0 -1
  911. package/loaders/TiltLoader.cjs.js +0 -1
  912. package/loaders/VOXLoader.cjs.js +0 -1
  913. package/loaders/VRMLLoader.cjs.js +0 -1
  914. package/loaders/VRMLoader.cjs.js +0 -1
  915. package/loaders/VTKLoader.cjs.js +0 -1
  916. package/loaders/XLoader.cjs.js +0 -1
  917. package/loaders/XYZLoader.cjs.js +0 -1
  918. package/loaders/lwo/IFFParser.cjs.js +0 -1
  919. package/loaders/lwo/LWO2Parser.cjs.js +0 -1
  920. package/loaders/lwo/LWO3Parser.cjs.js +0 -1
  921. package/math/Capsule.cjs.js +0 -1
  922. package/math/ColorConverter.cjs.js +0 -1
  923. package/math/ConvexHull.cjs.js +0 -1
  924. package/math/ImprovedNoise.cjs.js +0 -1
  925. package/math/Lut.cjs.js +0 -1
  926. package/math/MeshSurfaceSampler.cjs.js +0 -1
  927. package/math/OBB.cjs.js +0 -1
  928. package/math/Octree.cjs.js +0 -1
  929. package/math/SimplexNoise.cjs.js +0 -1
  930. package/misc/ConvexObjectBreaker.cjs.js +0 -1
  931. package/misc/GPUComputationRenderer.cjs.js +0 -1
  932. package/misc/Gyroscope.cjs.js +0 -1
  933. package/misc/MD2Character.cjs.js +0 -1
  934. package/misc/MD2CharacterComplex.cjs.js +0 -1
  935. package/misc/MorphAnimMesh.cjs.js +0 -1
  936. package/misc/MorphBlendMesh.cjs.js +0 -1
  937. package/misc/ProgressiveLightmap.cjs.js +0 -1
  938. package/misc/RollerCoaster.cjs.js +0 -1
  939. package/misc/TubePainter.cjs.js +0 -1
  940. package/misc/Volume.cjs.js +0 -1
  941. package/misc/VolumeSlice.cjs.js +0 -1
  942. package/misc/WebGL.cjs.js +0 -1
  943. package/modifiers/CurveModifier.cjs.js +0 -1
  944. package/modifiers/EdgeSplitModifier.cjs.js +0 -1
  945. package/modifiers/SimplifyModifier.cjs.js +0 -1
  946. package/modifiers/TessellateModifier.cjs.js +0 -1
  947. package/nodes/Nodes.cjs.js +0 -1
  948. package/nodes/ShaderNode.cjs.js +0 -1
  949. package/nodes/accessors/BufferNode.cjs.js +0 -1
  950. package/nodes/accessors/CameraNode.cjs.js +0 -1
  951. package/nodes/accessors/CubeTextureNode.cjs.js +0 -1
  952. package/nodes/accessors/MaterialNode.cjs.js +0 -1
  953. package/nodes/accessors/MaterialReferenceNode.cjs.js +0 -1
  954. package/nodes/accessors/ModelNode.cjs.js +0 -1
  955. package/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
  956. package/nodes/accessors/NormalNode.cjs.js +0 -1
  957. package/nodes/accessors/Object3DNode.cjs.js +0 -1
  958. package/nodes/accessors/PointUVNode.cjs.js +0 -1
  959. package/nodes/accessors/PositionNode.cjs.js +0 -1
  960. package/nodes/accessors/ReferenceNode.cjs.js +0 -1
  961. package/nodes/accessors/ReflectNode.cjs.js +0 -1
  962. package/nodes/accessors/SkinningNode.cjs.js +0 -1
  963. package/nodes/accessors/TextureNode.cjs.js +0 -1
  964. package/nodes/accessors/UVNode.cjs.js +0 -1
  965. package/nodes/core/ArrayUniformNode.cjs.js +0 -1
  966. package/nodes/core/AttributeNode.cjs.js +0 -1
  967. package/nodes/core/BypassNode.cjs.js +0 -1
  968. package/nodes/core/CodeNode.cjs.js +0 -1
  969. package/nodes/core/ConstNode.cjs.js +0 -1
  970. package/nodes/core/ContextNode.cjs.js +0 -1
  971. package/nodes/core/ExpressionNode.cjs.js +0 -1
  972. package/nodes/core/FunctionCallNode.cjs.js +0 -1
  973. package/nodes/core/FunctionNode.cjs.js +0 -1
  974. package/nodes/core/InputNode.cjs.js +0 -1
  975. package/nodes/core/Node.cjs.js +0 -1
  976. package/nodes/core/NodeAttribute.cjs.js +0 -1
  977. package/nodes/core/NodeBuilder.cjs.js +0 -1
  978. package/nodes/core/NodeCode.cjs.js +0 -1
  979. package/nodes/core/NodeFrame.cjs.js +0 -1
  980. package/nodes/core/NodeFunction.cjs.js +0 -1
  981. package/nodes/core/NodeFunction.js +0 -17
  982. package/nodes/core/NodeFunctionInput.cjs.js +0 -1
  983. package/nodes/core/NodeKeywords.cjs.js +0 -1
  984. package/nodes/core/NodeParser.cjs.js +0 -1
  985. package/nodes/core/NodeParser.js +0 -8
  986. package/nodes/core/NodeUniform.cjs.js +0 -1
  987. package/nodes/core/NodeUtils.cjs.js +0 -1
  988. package/nodes/core/NodeVar.cjs.js +0 -1
  989. package/nodes/core/NodeVary.cjs.js +0 -1
  990. package/nodes/core/PropertyNode.cjs.js +0 -1
  991. package/nodes/core/TempNode.cjs.js +0 -1
  992. package/nodes/core/UniformNode.cjs.js +0 -1
  993. package/nodes/core/VarNode.cjs.js +0 -1
  994. package/nodes/core/VaryNode.cjs.js +0 -1
  995. package/nodes/core/constants.cjs.js +0 -1
  996. package/nodes/display/ColorSpaceNode.cjs.js +0 -1
  997. package/nodes/display/NormalMapNode.cjs.js +0 -1
  998. package/nodes/fog/FogNode.cjs.js +0 -1
  999. package/nodes/fog/FogRangeNode.cjs.js +0 -1
  1000. package/nodes/functions/BSDFs.cjs.js +0 -1
  1001. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +0 -1
  1002. package/nodes/functions/PhysicalMaterialFunctions.js +0 -57
  1003. package/nodes/lights/LightContextNode.cjs.js +0 -1
  1004. package/nodes/lights/LightNode.cjs.js +0 -1
  1005. package/nodes/lights/LightsNode.cjs.js +0 -1
  1006. package/nodes/loaders/NodeLoader.cjs.js +0 -1
  1007. package/nodes/loaders/NodeMaterialLoader.cjs.js +0 -1
  1008. package/nodes/loaders/NodeObjectLoader.cjs.js +0 -1
  1009. package/nodes/materials/LineBasicNodeMaterial.cjs.js +0 -1
  1010. package/nodes/materials/Materials.cjs.js +0 -1
  1011. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +0 -1
  1012. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +0 -1
  1013. package/nodes/materials/NodeMaterial.cjs.js +0 -1
  1014. package/nodes/materials/PointsNodeMaterial.cjs.js +0 -1
  1015. package/nodes/math/CondNode.cjs.js +0 -1
  1016. package/nodes/math/MathNode.cjs.js +0 -1
  1017. package/nodes/math/OperatorNode.cjs.js +0 -1
  1018. package/nodes/parsers/GLSLNodeFunction.cjs.js +0 -1
  1019. package/nodes/parsers/GLSLNodeFunction.js +0 -101
  1020. package/nodes/parsers/GLSLNodeParser.cjs.js +0 -1
  1021. package/nodes/parsers/GLSLNodeParser.js +0 -13
  1022. package/nodes/parsers/WGSLNodeFunction.cjs.js +0 -1
  1023. package/nodes/parsers/WGSLNodeFunction.js +0 -71
  1024. package/nodes/parsers/WGSLNodeParser.cjs.js +0 -1
  1025. package/nodes/parsers/WGSLNodeParser.js +0 -13
  1026. package/nodes/procedural/CheckerNode.cjs.js +0 -1
  1027. package/nodes/utils/ArrayElementNode.cjs.js +0 -1
  1028. package/nodes/utils/ConvertNode.cjs.js +0 -1
  1029. package/nodes/utils/JoinNode.cjs.js +0 -1
  1030. package/nodes/utils/MatcapUVNode.cjs.js +0 -1
  1031. package/nodes/utils/OscNode.cjs.js +0 -1
  1032. package/nodes/utils/SplitNode.cjs.js +0 -1
  1033. package/nodes/utils/SpriteSheetUVNode.cjs.js +0 -1
  1034. package/nodes/utils/TimerNode.cjs.js +0 -1
  1035. package/objects/GroundProjectedEnv.cjs.js +0 -1
  1036. package/objects/Lensflare.cjs.js +0 -1
  1037. package/objects/LightningStorm.cjs.js +0 -1
  1038. package/objects/MarchingCubes.cjs.js +0 -1
  1039. package/objects/Reflector.cjs.js +0 -1
  1040. package/objects/ReflectorForSSRPass.cjs.js +0 -1
  1041. package/objects/ReflectorRTT.cjs.js +0 -1
  1042. package/objects/Refractor.cjs.js +0 -1
  1043. package/objects/ShadowMesh.cjs.js +0 -1
  1044. package/objects/Sky.cjs.js +0 -1
  1045. package/objects/Water.cjs.js +0 -1
  1046. package/objects/Water2.cjs.js +0 -1
  1047. package/offscreen/jank.cjs.js +0 -1
  1048. package/offscreen/offscreen.cjs.js +0 -1
  1049. package/offscreen/scene.cjs.js +0 -1
  1050. package/physics/AmmoPhysics.cjs.js +0 -1
  1051. package/postprocessing/AdaptiveToneMappingPass.cjs.js +0 -1
  1052. package/postprocessing/AfterimagePass.cjs.js +0 -1
  1053. package/postprocessing/BloomPass.cjs.js +0 -1
  1054. package/postprocessing/BokehPass.cjs.js +0 -1
  1055. package/postprocessing/ClearPass.cjs.js +0 -1
  1056. package/postprocessing/CubeTexturePass.cjs.js +0 -1
  1057. package/postprocessing/DotScreenPass.cjs.js +0 -1
  1058. package/postprocessing/EffectComposer.cjs.js +0 -1
  1059. package/postprocessing/FilmPass.cjs.js +0 -1
  1060. package/postprocessing/GlitchPass.cjs.js +0 -1
  1061. package/postprocessing/HalftonePass.cjs.js +0 -1
  1062. package/postprocessing/LUTPass.cjs.js +0 -1
  1063. package/postprocessing/MaskPass.cjs.js +0 -1
  1064. package/postprocessing/OutlinePass.cjs.js +0 -1
  1065. package/postprocessing/Pass.cjs.js +0 -1
  1066. package/postprocessing/RenderPass.cjs.js +0 -1
  1067. package/postprocessing/RenderPixelatedPass.cjs.js +0 -1
  1068. package/postprocessing/SAOPass.cjs.js +0 -1
  1069. package/postprocessing/SMAAPass.cjs.js +0 -1
  1070. package/postprocessing/SSAARenderPass.cjs.js +0 -1
  1071. package/postprocessing/SSAOPass.cjs.js +0 -1
  1072. package/postprocessing/SSRPass.cjs.js +0 -1
  1073. package/postprocessing/SavePass.cjs.js +0 -1
  1074. package/postprocessing/ShaderPass.cjs.js +0 -1
  1075. package/postprocessing/TAARenderPass.cjs.js +0 -1
  1076. package/postprocessing/TexturePass.cjs.js +0 -1
  1077. package/postprocessing/UnrealBloomPass.cjs.js +0 -1
  1078. package/renderers/CSS2DRenderer.cjs.js +0 -1
  1079. package/renderers/CSS3DRenderer.cjs.js +0 -1
  1080. package/renderers/Projector.cjs.js +0 -1
  1081. package/renderers/SVGRenderer.cjs.js +0 -1
  1082. package/renderers/nodes/accessors/CameraNode.cjs.js +0 -1
  1083. package/renderers/nodes/accessors/ModelNode.cjs.js +0 -1
  1084. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +0 -1
  1085. package/renderers/nodes/accessors/NormalNode.cjs.js +0 -1
  1086. package/renderers/nodes/accessors/PositionNode.cjs.js +0 -1
  1087. package/renderers/nodes/accessors/UVNode.cjs.js +0 -1
  1088. package/renderers/nodes/core/AttributeNode.cjs.js +0 -1
  1089. package/renderers/nodes/core/InputNode.cjs.js +0 -1
  1090. package/renderers/nodes/core/Node.cjs.js +0 -1
  1091. package/renderers/nodes/core/NodeAttribute.cjs.js +0 -1
  1092. package/renderers/nodes/core/NodeBuilder.cjs.js +0 -1
  1093. package/renderers/nodes/core/NodeFrame.cjs.js +0 -1
  1094. package/renderers/nodes/core/NodeSlot.cjs.js +0 -1
  1095. package/renderers/nodes/core/NodeUniform.cjs.js +0 -1
  1096. package/renderers/nodes/core/NodeVary.cjs.js +0 -1
  1097. package/renderers/nodes/core/VaryNode.cjs.js +0 -1
  1098. package/renderers/nodes/core/constants.cjs.js +0 -1
  1099. package/renderers/nodes/inputs/ColorNode.cjs.js +0 -1
  1100. package/renderers/nodes/inputs/FloatNode.cjs.js +0 -1
  1101. package/renderers/nodes/inputs/Matrix3Node.cjs.js +0 -1
  1102. package/renderers/nodes/inputs/Matrix4Node.cjs.js +0 -1
  1103. package/renderers/nodes/inputs/TextureNode.cjs.js +0 -1
  1104. package/renderers/nodes/inputs/Vector2Node.cjs.js +0 -1
  1105. package/renderers/nodes/inputs/Vector3Node.cjs.js +0 -1
  1106. package/renderers/nodes/inputs/Vector4Node.cjs.js +0 -1
  1107. package/renderers/nodes/math/MathNode.cjs.js +0 -1
  1108. package/renderers/nodes/math/OperatorNode.cjs.js +0 -1
  1109. package/renderers/nodes/utils/SwitchNode.cjs.js +0 -1
  1110. package/renderers/nodes/utils/TimerNode.cjs.js +0 -1
  1111. package/renderers/webgpu/WebGPU.cjs.js +0 -1
  1112. package/renderers/webgpu/WebGPUAttributes.cjs.js +0 -1
  1113. package/renderers/webgpu/WebGPUBackground.cjs.js +0 -1
  1114. package/renderers/webgpu/WebGPUBinding.cjs.js +0 -1
  1115. package/renderers/webgpu/WebGPUBindings.cjs.js +0 -1
  1116. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +0 -1
  1117. package/renderers/webgpu/WebGPUGeometries.cjs.js +0 -1
  1118. package/renderers/webgpu/WebGPUInfo.cjs.js +0 -1
  1119. package/renderers/webgpu/WebGPUObjects.cjs.js +0 -1
  1120. package/renderers/webgpu/WebGPUProperties.cjs.js +0 -1
  1121. package/renderers/webgpu/WebGPURenderLists.cjs.js +0 -1
  1122. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +0 -1
  1123. package/renderers/webgpu/WebGPURenderer.cjs.js +0 -1
  1124. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +0 -1
  1125. package/renderers/webgpu/WebGPUSampler.cjs.js +0 -1
  1126. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +0 -1
  1127. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +0 -1
  1128. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +0 -1
  1129. package/renderers/webgpu/WebGPUTextures.cjs.js +0 -1
  1130. package/renderers/webgpu/WebGPUUniform.cjs.js +0 -1
  1131. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +0 -1
  1132. package/renderers/webgpu/constants.cjs.js +0 -1
  1133. package/renderers/webgpu/nodes/ShaderLib.cjs.js +0 -1
  1134. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +0 -1
  1135. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +0 -1
  1136. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +0 -1
  1137. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +0 -1
  1138. package/shaders/ACESFilmicToneMappingShader.cjs.js +0 -1
  1139. package/shaders/AfterimageShader.cjs.js +0 -1
  1140. package/shaders/BasicShader.cjs.js +0 -1
  1141. package/shaders/BleachBypassShader.cjs.js +0 -1
  1142. package/shaders/BlendShader.cjs.js +0 -1
  1143. package/shaders/BokehShader.cjs.js +0 -1
  1144. package/shaders/BokehShader2.cjs.js +0 -1
  1145. package/shaders/BrightnessContrastShader.cjs.js +0 -1
  1146. package/shaders/ColorCorrectionShader.cjs.js +0 -1
  1147. package/shaders/ColorifyShader.cjs.js +0 -1
  1148. package/shaders/ConvolutionShader.cjs.js +0 -1
  1149. package/shaders/CopyShader.cjs.js +0 -1
  1150. package/shaders/DOFMipMapShader.cjs.js +0 -1
  1151. package/shaders/DepthLimitedBlurShader.cjs.js +0 -1
  1152. package/shaders/DigitalGlitch.cjs.js +0 -1
  1153. package/shaders/DotScreenShader.cjs.js +0 -1
  1154. package/shaders/FXAAShader.cjs.js +0 -1
  1155. package/shaders/FilmShader.cjs.js +0 -1
  1156. package/shaders/FocusShader.cjs.js +0 -1
  1157. package/shaders/FreiChenShader.cjs.js +0 -1
  1158. package/shaders/FresnelShader.cjs.js +0 -1
  1159. package/shaders/GammaCorrectionShader.cjs.js +0 -1
  1160. package/shaders/GodRaysShader.cjs.js +0 -1
  1161. package/shaders/HalftoneShader.cjs.js +0 -1
  1162. package/shaders/HorizontalBlurShader.cjs.js +0 -1
  1163. package/shaders/HorizontalTiltShiftShader.cjs.js +0 -1
  1164. package/shaders/HueSaturationShader.cjs.js +0 -1
  1165. package/shaders/KaleidoShader.cjs.js +0 -1
  1166. package/shaders/LuminosityHighPassShader.cjs.js +0 -1
  1167. package/shaders/LuminosityShader.cjs.js +0 -1
  1168. package/shaders/MirrorShader.cjs.js +0 -1
  1169. package/shaders/NormalMapShader.cjs.js +0 -1
  1170. package/shaders/ParallaxShader.cjs.js +0 -1
  1171. package/shaders/PixelShader.cjs.js +0 -1
  1172. package/shaders/RGBShiftShader.cjs.js +0 -1
  1173. package/shaders/SAOShader.cjs.js +0 -1
  1174. package/shaders/SMAAShader.cjs.js +0 -1
  1175. package/shaders/SSAOShader.cjs.js +0 -1
  1176. package/shaders/SSRShader.cjs.js +0 -1
  1177. package/shaders/SepiaShader.cjs.js +0 -1
  1178. package/shaders/SobelOperatorShader.cjs.js +0 -1
  1179. package/shaders/SubsurfaceScatteringShader.cjs.js +0 -1
  1180. package/shaders/TechnicolorShader.cjs.js +0 -1
  1181. package/shaders/ToneMapShader.cjs.js +0 -1
  1182. package/shaders/ToonShader.cjs.js +0 -1
  1183. package/shaders/TriangleBlurShader.cjs.js +0 -1
  1184. package/shaders/UnpackDepthRGBAShader.cjs.js +0 -1
  1185. package/shaders/VerticalBlurShader.cjs.js +0 -1
  1186. package/shaders/VerticalTiltShiftShader.cjs.js +0 -1
  1187. package/shaders/VignetteShader.cjs.js +0 -1
  1188. package/shaders/VolumeShader.cjs.js +0 -1
  1189. package/shaders/WaterRefractionShader.cjs.js +0 -1
  1190. package/shaders/types.cjs.js +0 -1
  1191. package/textures/FlakesTexture.cjs.js +0 -1
  1192. package/types/helpers.cjs.js +0 -1
  1193. package/types/shared.cjs.js +0 -1
  1194. package/types/shared.js +0 -1
  1195. package/types/utils.cjs.js +0 -1
  1196. package/types/utils.js +0 -1
  1197. package/utils/BufferGeometryUtils.cjs.js +0 -1
  1198. package/utils/GeometryCompressionUtils.cjs.js +0 -1
  1199. package/utils/GeometryUtils.cjs.js +0 -1
  1200. package/utils/LDrawUtils.cjs.js +0 -1
  1201. package/utils/LDrawUtils.d.ts +0 -5
  1202. package/utils/LDrawUtils.js +0 -144
  1203. package/utils/RoughnessMipmapper.cjs.js +0 -1
  1204. package/utils/SceneUtils.cjs.js +0 -1
  1205. package/utils/ShadowMapViewer.cjs.js +0 -1
  1206. package/utils/SkeletonUtils.cjs.js +0 -1
  1207. package/utils/UVsDebug.cjs.js +0 -1
  1208. package/utils/WorkerPool.cjs.js +0 -1
  1209. package/webxr/ARButton.cjs.js +0 -1
  1210. package/webxr/OculusHandModel.cjs.js +0 -1
  1211. package/webxr/OculusHandPointerModel.cjs.js +0 -1
  1212. package/webxr/Text2D.cjs.js +0 -1
  1213. package/webxr/VRButton.cjs.js +0 -1
  1214. package/webxr/XRControllerModelFactory.cjs.js +0 -1
  1215. package/webxr/XREstimatedLight.cjs.js +0 -1
  1216. package/webxr/XRHandMeshModel.cjs.js +0 -1
  1217. package/webxr/XRHandModelFactory.cjs.js +0 -1
  1218. package/webxr/XRHandPrimitiveModel.cjs.js +0 -1
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(e){return new i(e)})),this.register((function(e){return new p(e)})),this.register((function(e){return new d(e)})),this.register((function(e){return new a(e)})),this.register((function(e){return new l(e)})),this.register((function(e){return new c(e)})),this.register((function(e){return new u(e)})),this.register((function(e){return new h(e)})),this.register((function(e){return new r(e)})),this.register((function(e){return new m(e)}))}load(t,s,n,r){const o=this;let i;i=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.LoaderUtils.extractUrlBase(t),this.manager.itemStart(t);const a=function(e){r?r(e):console.error(e),o.manager.itemError(t),o.manager.itemEnd(t)},l=new e.FileLoader(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(t,(function(e){try{o.parse(e,i,(function(e){s(e),o.manager.itemEnd(t)}),a)}catch(e){a(e)}}),n,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(t,s,r,i){let a;const l={},c={};if("string"==typeof t)a=t;else{if(e.LoaderUtils.decodeText(new Uint8Array(t,0,4))===f){try{l[n.KHR_BINARY_GLTF]=new x(t)}catch(e){return void(i&&i(e))}a=l[n.KHR_BINARY_GLTF].content}else a=e.LoaderUtils.decodeText(new Uint8Array(t))}const u=JSON.parse(a);if(void 0===u.asset||u.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const h=new Y(u,{path:s||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});h.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const t=this.pluginCallbacks[e](h);c[t.name]=t,l[t.name]=!0}if(u.extensionsUsed)for(let e=0;e<u.extensionsUsed.length;++e){const t=u.extensionsUsed[e],s=u.extensionsRequired||[];switch(t){case n.KHR_MATERIALS_UNLIT:l[t]=new o;break;case n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:l[t]=new S;break;case n.KHR_DRACO_MESH_COMPRESSION:l[t]=new M(u,this.dracoLoader);break;case n.KHR_TEXTURE_TRANSFORM:l[t]=new R;break;case n.KHR_MESH_QUANTIZATION:l[t]=new _;break;default:s.indexOf(t)>=0&&void 0===c[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}h.setExtensions(l),h.setPlugins(c),h.parse(r,i)}parseAsync(e,t){const s=this;return new Promise((function(n,r){s.parse(e,t,n,r)}))}}function s(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const n={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class r{constructor(e){this.parser=e,this.name=n.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,n=t.length;s<n;s++){const n=t[s];n.extensions&&n.extensions[this.name]&&void 0!==n.extensions[this.name].light&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(t){const s=this.parser,n="light:"+t;let r=s.cache.get(n);if(r)return r;const o=s.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[t];let a;const l=new e.Color(16777215);void 0!==i.color&&l.fromArray(i.color);const c=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new e.DirectionalLight(l),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new e.PointLight(l),a.distance=c;break;case"spot":a=new e.SpotLight(l),a.distance=c,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),a.decay=2,void 0!==i.intensity&&(a.intensity=i.intensity),a.name=s.createUniqueName(i.name||"light_"+t),r=Promise.resolve(a),s.cache.add(n,r),r}createNodeAttachment(e){const t=this,s=this.parser,n=s.json.nodes[e],r=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then((function(e){return s._getNodeRef(t.cache,r,e)}))}}class o{constructor(){this.name=n.KHR_MATERIALS_UNLIT}getMaterialType(){return e.MeshBasicMaterial}extendParams(t,s,n){const r=[];t.color=new e.Color(1,1,1),t.opacity=1;const o=s.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const e=o.baseColorFactor;t.color.fromArray(e),t.opacity=e[3]}void 0!==o.baseColorTexture&&r.push(n.assignTexture(t,"map",o.baseColorTexture))}return Promise.all(r)}}class i{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(t,s){const n=this.parser,r=n.json.materials[t];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];if(void 0!==i.clearcoatFactor&&(s.clearcoat=i.clearcoatFactor),void 0!==i.clearcoatTexture&&o.push(n.assignTexture(s,"clearcoatMap",i.clearcoatTexture)),void 0!==i.clearcoatRoughnessFactor&&(s.clearcoatRoughness=i.clearcoatRoughnessFactor),void 0!==i.clearcoatRoughnessTexture&&o.push(n.assignTexture(s,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),void 0!==i.clearcoatNormalTexture&&(o.push(n.assignTexture(s,"clearcoatNormalMap",i.clearcoatNormalTexture)),void 0!==i.clearcoatNormalTexture.scale)){const t=i.clearcoatNormalTexture.scale;s.clearcoatNormalScale=new e.Vector2(t,t)}return Promise.all(o)}}class a{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_SHEEN}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(t,s){const n=this.parser,r=n.json.materials[t];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[];s.sheenColor=new e.Color(0,0,0),s.sheenRoughness=0,s.sheen=1;const i=r.extensions[this.name];return void 0!==i.sheenColorFactor&&s.sheenColor.fromArray(i.sheenColorFactor),void 0!==i.sheenRoughnessFactor&&(s.sheenRoughness=i.sheenRoughnessFactor),void 0!==i.sheenColorTexture&&o.push(n.assignTexture(s,"sheenColorMap",i.sheenColorTexture)),void 0!==i.sheenRoughnessTexture&&o.push(n.assignTexture(s,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(o)}}class l{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(e,t){const s=this.parser,n=s.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const r=[],o=n.extensions[this.name];return void 0!==o.transmissionFactor&&(t.transmission=o.transmissionFactor),void 0!==o.transmissionTexture&&r.push(s.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(r)}}class c{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_VOLUME}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(t,s){const n=this.parser,r=n.json.materials[t];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];s.thickness=void 0!==i.thicknessFactor?i.thicknessFactor:0,void 0!==i.thicknessTexture&&o.push(n.assignTexture(s,"thicknessMap",i.thicknessTexture)),s.attenuationDistance=i.attenuationDistance||0;const a=i.attenuationColor||[1,1,1];return s.attenuationColor=new e.Color(a[0],a[1],a[2]),Promise.all(o)}}class u{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_IOR}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(e,t){const s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const n=s.extensions[this.name];return t.ior=void 0!==n.ior?n.ior:1.5,Promise.resolve()}}class h{constructor(e){this.parser=e,this.name=n.KHR_MATERIALS_SPECULAR}getMaterialType(t){const s=this.parser.json.materials[t];return s.extensions&&s.extensions[this.name]?e.MeshPhysicalMaterial:null}extendMaterialParams(t,s){const n=this.parser,r=n.json.materials[t];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];s.specularIntensity=void 0!==i.specularFactor?i.specularFactor:1,void 0!==i.specularTexture&&o.push(n.assignTexture(s,"specularIntensityMap",i.specularTexture));const a=i.specularColorFactor||[1,1,1];return s.specularColor=new e.Color(a[0],a[1],a[2]),void 0!==i.specularColorTexture&&o.push(n.assignTexture(s,"specularColorMap",i.specularColorTexture).then((function(t){t.encoding=e.sRGBEncoding}))),Promise.all(o)}}class p{constructor(e){this.parser=e,this.name=n.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,n=s.textures[e];if(!n.extensions||!n.extensions[this.name])return null;const r=n.extensions[this.name],o=s.images[r.source],i=t.options.ktx2Loader;if(!i){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,o,i)}}class d{constructor(e){this.parser=e,this.name=n.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return this.detectSupport().then((function(r){if(r)return s.loadTextureImage(e,i,a);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class m{constructor(e){this.name=n.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([n,r.ready]).then((function(t){const s=e.byteOffset||0,n=e.byteLength||0,o=e.count,i=e.byteStride,a=new ArrayBuffer(o*i),l=new Uint8Array(t[0],s,n);return r.decodeGltfBuffer(new Uint8Array(a),o,i,l,e.mode,e.filter),a}))}return null}}const f="glTF",g=1313821514,T=5130562;class x{constructor(t){this.name=n.KHR_BINARY_GLTF,this.content=null,this.body=null;const s=new DataView(t,0,12);if(this.header={magic:e.LoaderUtils.decodeText(new Uint8Array(t.slice(0,4))),version:s.getUint32(4,!0),length:s.getUint32(8,!0)},this.header.magic!==f)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const r=this.header.length-12,o=new DataView(t,12);let i=0;for(;i<r;){const s=o.getUint32(i,!0);i+=4;const n=o.getUint32(i,!0);if(i+=4,n===g){const n=new Uint8Array(t,12+i,s);this.content=e.LoaderUtils.decodeText(n)}else if(n===T){const e=12+i;this.body=t.slice(e,e+s)}i+=s}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class M{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=n.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const s=this.json,n=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,i={},a={},l={};for(const e in o){const t=k[e]||e.toLowerCase();i[t]=o[e]}for(const t in e.attributes){const n=k[t]||t.toLowerCase();if(void 0!==o[t]){const r=s.accessors[e.attributes[t]],o=N[r.componentType];l[n]=o,a[n]=!0===r.normalized}}return t.getDependency("bufferView",r).then((function(e){return new Promise((function(t){n.decodeDracoFile(e,(function(e){for(const t in e.attributes){const s=e.attributes[t],n=a[t];void 0!==n&&(s.normalized=n)}t(e)}),i,l)}))}))}}class R{constructor(){this.name=n.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),void 0===t.offset&&void 0===t.rotation&&void 0===t.scale||(e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}class v extends e.MeshStandardMaterial{constructor(t){super(),this.isGLTFSpecularGlossinessMaterial=!0;const s=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),n=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),o=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),i=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.specularColor = specularFactor;"].join("\n"),a={specular:{value:(new e.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=a,this.onBeforeCompile=function(e){for(const t in a)e.uniforms[t]=a[t];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",s).replace("#include <metalnessmap_pars_fragment>",n).replace("#include <roughnessmap_fragment>",r).replace("#include <metalnessmap_fragment>",o).replace("#include <lights_physical_fragment>",i)},Object.defineProperties(this,{specular:{get:function(){return a.specular.value},set:function(e){a.specular.value=e}},specularMap:{get:function(){return a.specularMap.value},set:function(e){a.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return a.glossiness.value},set:function(e){a.glossiness.value=e}},glossinessMap:{get:function(){return a.glossinessMap.value},set:function(e){a.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(t)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class S{constructor(){this.name=n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return v}extendParams(t,s,n){const r=s.extensions[this.name];t.color=new e.Color(1,1,1),t.opacity=1;const o=[];if(Array.isArray(r.diffuseFactor)){const e=r.diffuseFactor;t.color.fromArray(e),t.opacity=e[3]}if(void 0!==r.diffuseTexture&&o.push(n.assignTexture(t,"map",r.diffuseTexture)),t.emissive=new e.Color(0,0,0),t.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,t.specular=new e.Color(1,1,1),Array.isArray(r.specularFactor)&&t.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){const e=r.specularGlossinessTexture;o.push(n.assignTexture(t,"glossinessMap",e)),o.push(n.assignTexture(t,"specularMap",e))}return Promise.all(o)}createMaterial(t){const s=new v(t);return s.fog=!0,s.color=t.color,s.map=void 0===t.map?null:t.map,s.lightMap=null,s.lightMapIntensity=1,s.aoMap=void 0===t.aoMap?null:t.aoMap,s.aoMapIntensity=1,s.emissive=t.emissive,s.emissiveIntensity=1,s.emissiveMap=void 0===t.emissiveMap?null:t.emissiveMap,s.bumpMap=void 0===t.bumpMap?null:t.bumpMap,s.bumpScale=1,s.normalMap=void 0===t.normalMap?null:t.normalMap,s.normalMapType=e.TangentSpaceNormalMap,t.normalScale&&(s.normalScale=t.normalScale),s.displacementMap=null,s.displacementScale=1,s.displacementBias=0,s.specularMap=void 0===t.specularMap?null:t.specularMap,s.specular=t.specular,s.glossinessMap=void 0===t.glossinessMap?null:t.glossinessMap,s.glossiness=t.glossiness,s.alphaMap=null,s.envMap=void 0===t.envMap?null:t.envMap,s.envMapIntensity=1,s.refractionRatio=.98,s}}class _{constructor(){this.name=n.KHR_MESH_QUANTIZATION}}class y extends e.Interpolant{constructor(e,t,s,n){super(e,t,s,n)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,n=this.valueSize,r=e*n*3+n;for(let e=0;e!==n;e++)t[e]=s[r+e];return t}}y.prototype.beforeStart_=y.prototype.copySampleValue_,y.prototype.afterEnd_=y.prototype.copySampleValue_,y.prototype.interpolate_=function(e,t,s,n){const r=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,l=3*i,c=n-t,u=(s-t)/c,h=u*u,p=h*u,d=e*l,m=d-l,f=-2*p+3*h,g=p-h,T=1-f,x=g-h+u;for(let e=0;e!==i;e++){const t=o[m+e+i],s=o[m+e+a]*c,n=o[d+e+i],l=o[d+e]*c;r[e]=T*t+x*s+f*n+g*l}return r};const A=new e.Quaternion;class E extends y{interpolate_(e,t,s,n){const r=super.interpolate_(e,t,s,n);return A.fromArray(r).normalize().toArray(r),r}}const L=0,w=1,b=2,P=3,I=4,C=5,O=6,N={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},F={9728:e.NearestFilter,9729:e.LinearFilter,9984:e.NearestMipmapNearestFilter,9985:e.LinearMipmapNearestFilter,9986:e.NearestMipmapLinearFilter,9987:e.LinearMipmapLinearFilter},H={33071:e.ClampToEdgeWrapping,33648:e.MirroredRepeatWrapping,10497:e.RepeatWrapping},U={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},k={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},D={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},G={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear,STEP:e.InterpolateDiscrete},B="OPAQUE",K="MASK",j="BLEND";function V(e,t,s){for(const n in s.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=s.extensions[n])}function X(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function q(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,n=t.weights.length;s<n;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,n=s.length;t<n;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function z(e){const t=e.extensions&&e.extensions[n.KHR_DRACO_MESH_COMPRESSION];let s;return s=t?"draco:"+t.bufferView+":"+t.indices+":"+W(t.attributes):e.indices+":"+W(e.attributes)+":"+e.mode,s}function W(e){let t="";const s=Object.keys(e).sort();for(let n=0,r=s.length;n<r;n++)t+=s[n]+":"+e[s[n]]+";";return t}function Q(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}class Y{constructor(t={},n={}){this.json=t,this.extensions={},this.plugins={},this.options=n,this.cache=new s,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.textureCache={},this.nodeNamesUsed={},"undefined"!=typeof createImageBitmap&&!1===/Firefox|^((?!chrome|android).)*safari/i.test(navigator.userAgent)?this.textureLoader=new e.ImageBitmapLoader(this.options.manager):this.textureLoader=new e.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new e.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,n=this.json,r=this.extensions;this.cache.removeAll(),this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])})).then((function(t){const o={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:s,userData:{}};V(r,o,n),X(o,n),Promise.all(s._invokeAll((function(e){return e.afterRoot&&e.afterRoot(o)}))).then((function(){e(o)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let s=0,n=t.length;s<n;s++){const n=t[s].joints;for(let t=0,s=n.length;t<s;t++)e[n[t]].isBone=!0}for(let t=0,n=e.length;t<n;t++){const n=e[t];void 0!==n.mesh&&(this._addNodeRef(this.meshCache,n.mesh),void 0!==n.skin&&(s[n.mesh].isSkinnedMesh=!0)),void 0!==n.camera&&this._addNodeRef(this.cameraCache,n.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const n=s.clone(),r=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,n]of e.children.entries())r(n,t.children[s])};return r(s,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const n=e(t[s]);if(n)return n}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let n=0;n<t.length;n++){const r=e(t[n]);r&&s.push(r)}return s}getDependency(e,t){const s=e+":"+t;let n=this.cache.get(s);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this.loadNode(t);break;case"mesh":n=this._invokeOne((function(e){return e.loadMesh&&e.loadMesh(t)}));break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne((function(e){return e.loadBufferView&&e.loadBufferView(t)}));break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne((function(e){return e.loadMaterial&&e.loadMaterial(t)}));break;case"texture":n=this._invokeOne((function(e){return e.loadTexture&&e.loadTexture(t)}));break;case"skin":n=this.loadSkin(t);break;case"animation":n=this.loadAnimation(t);break;case"camera":n=this.loadCamera(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(s,n)}return n}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map((function(t,n){return s.getDependency(e,n)}))),this.cache.add(e,t)}return t}loadBuffer(t){const s=this.json.buffers[t],r=this.fileLoader;if(s.type&&"arraybuffer"!==s.type)throw new Error("THREE.GLTFLoader: "+s.type+" buffer type is not supported.");if(void 0===s.uri&&0===t)return Promise.resolve(this.extensions[n.KHR_BINARY_GLTF].body);const o=this.options;return new Promise((function(t,n){r.load(e.LoaderUtils.resolveURL(s.uri,o.path),t,void 0,(function(){n(new Error('THREE.GLTFLoader: Failed to load buffer "'+s.uri+'".'))}))}))}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){const s=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+s)}))}loadAccessor(t){const s=this,n=this.json,r=this.json.accessors[t];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);const o=[];return void 0!==r.bufferView?o.push(this.getDependency("bufferView",r.bufferView)):o.push(null),void 0!==r.sparse&&(o.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(o).then((function(t){const o=t[0],i=U[r.type],a=N[r.componentType],l=a.BYTES_PER_ELEMENT,c=l*i,u=r.byteOffset||0,h=void 0!==r.bufferView?n.bufferViews[r.bufferView].byteStride:void 0,p=!0===r.normalized;let d,m;if(h&&h!==c){const t=Math.floor(u/h),n="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+t+":"+r.count;let c=s.cache.get(n);c||(d=new a(o,t*h,r.count*h/l),c=new e.InterleavedBuffer(d,h/l),s.cache.add(n,c)),m=new e.InterleavedBufferAttribute(c,i,u%h/l,p)}else d=null===o?new a(r.count*i):new a(o,u,r.count*i),m=new e.BufferAttribute(d,i,p);if(void 0!==r.sparse){const s=U.SCALAR,n=N[r.sparse.indices.componentType],l=r.sparse.indices.byteOffset||0,c=r.sparse.values.byteOffset||0,u=new n(t[1],l,r.sparse.count*s),h=new a(t[2],c,r.sparse.count*i);null!==o&&(m=new e.BufferAttribute(m.array.slice(),m.itemSize,m.normalized));for(let e=0,t=u.length;e<t;e++){const t=u[e];if(m.setX(t,h[e*i]),i>=2&&m.setY(t,h[e*i+1]),i>=3&&m.setZ(t,h[e*i+2]),i>=4&&m.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,n=t.textures[e],r=t.images[n.source];let o=this.textureLoader;if(r.uri){const e=s.manager.getHandler(r.uri);null!==e&&(o=e)}return this.loadTextureImage(e,r,o)}loadTextureImage(t,s,n){const r=this,o=this.json,i=this.options,a=o.textures[t],l=(s.uri||s.bufferView)+":"+a.sampler;if(this.textureCache[l])return this.textureCache[l];const c=self.URL||self.webkitURL;let u=s.uri||"",h=!1;if(void 0!==s.bufferView)u=r.getDependency("bufferView",s.bufferView).then((function(e){h=!0;const t=new Blob([e],{type:s.mimeType});return u=c.createObjectURL(t),u}));else if(void 0===s.uri)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const p=Promise.resolve(u).then((function(t){return new Promise((function(s,r){let o=s;!0===n.isImageBitmapLoader&&(o=function(t){const n=new e.Texture(t);n.needsUpdate=!0,s(n)}),n.load(e.LoaderUtils.resolveURL(t,i.path),o,void 0,r)}))})).then((function(s){!0===h&&c.revokeObjectURL(u),s.flipY=!1,a.name&&(s.name=a.name);const n=(o.samplers||{})[a.sampler]||{};return s.magFilter=F[n.magFilter]||e.LinearFilter,s.minFilter=F[n.minFilter]||e.LinearMipmapLinearFilter,s.wrapS=H[n.wrapS]||e.RepeatWrapping,s.wrapT=H[n.wrapT]||e.RepeatWrapping,r.associations.set(s,{textures:t}),s})).catch((function(){return console.error("THREE.GLTFLoader: Couldn't load texture",u),null}));return this.textureCache[l]=p,p}assignTexture(e,t,s){const r=this;return this.getDependency("texture",s.index).then((function(o){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),r.extensions[n.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[n.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(o);o=r.extensions[n.KHR_TEXTURE_TRANSFORM].extendTexture(o,e),r.associations.set(o,t)}}return e[t]=o,o}))}assignFinalMaterial(t){const s=t.geometry;let n=t.material;const r=void 0===s.attributes.tangent,o=void 0!==s.attributes.color,i=void 0===s.attributes.normal;if(t.isPoints){const t="PointsMaterial:"+n.uuid;let s=this.cache.get(t);s||(s=new e.PointsMaterial,e.Material.prototype.copy.call(s,n),s.color.copy(n.color),s.map=n.map,s.sizeAttenuation=!1,this.cache.add(t,s)),n=s}else if(t.isLine){const t="LineBasicMaterial:"+n.uuid;let s=this.cache.get(t);s||(s=new e.LineBasicMaterial,e.Material.prototype.copy.call(s,n),s.color.copy(n.color),this.cache.add(t,s)),n=s}if(r||o||i){let e="ClonedMaterial:"+n.uuid+":";n.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),r&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}n.aoMap&&void 0===s.attributes.uv2&&void 0!==s.attributes.uv&&s.setAttribute("uv2",s.attributes.uv),t.material=n}getMaterialType(){return e.MeshStandardMaterial}loadMaterial(t){const s=this,r=this.json,o=this.extensions,i=r.materials[t];let a;const l={},c=i.extensions||{},u=[];if(c[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=o[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];a=e.getMaterialType(),u.push(e.extendParams(l,i,s))}else if(c[n.KHR_MATERIALS_UNLIT]){const e=o[n.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),u.push(e.extendParams(l,i,s))}else{const n=i.pbrMetallicRoughness||{};if(l.color=new e.Color(1,1,1),l.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;l.color.fromArray(e),l.opacity=e[3]}void 0!==n.baseColorTexture&&u.push(s.assignTexture(l,"map",n.baseColorTexture)),l.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,l.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(u.push(s.assignTexture(l,"metalnessMap",n.metallicRoughnessTexture)),u.push(s.assignTexture(l,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne((function(e){return e.getMaterialType&&e.getMaterialType(t)})),u.push(Promise.all(this._invokeAll((function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,l)}))))}!0===i.doubleSided&&(l.side=e.DoubleSide);const h=i.alphaMode||B;if(h===j?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,h===K&&(l.alphaTest=void 0!==i.alphaCutoff?i.alphaCutoff:.5)),void 0!==i.normalTexture&&a!==e.MeshBasicMaterial&&(u.push(s.assignTexture(l,"normalMap",i.normalTexture)),l.normalScale=new e.Vector2(1,1),void 0!==i.normalTexture.scale)){const e=i.normalTexture.scale;l.normalScale.set(e,e)}return void 0!==i.occlusionTexture&&a!==e.MeshBasicMaterial&&(u.push(s.assignTexture(l,"aoMap",i.occlusionTexture)),void 0!==i.occlusionTexture.strength&&(l.aoMapIntensity=i.occlusionTexture.strength)),void 0!==i.emissiveFactor&&a!==e.MeshBasicMaterial&&(l.emissive=(new e.Color).fromArray(i.emissiveFactor)),void 0!==i.emissiveTexture&&a!==e.MeshBasicMaterial&&u.push(s.assignTexture(l,"emissiveMap",i.emissiveTexture)),Promise.all(u).then((function(){let r;return r=a===v?o[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(l):new a(l),i.name&&(r.name=i.name),r.map&&(r.map.encoding=e.sRGBEncoding),r.emissiveMap&&(r.emissiveMap.encoding=e.sRGBEncoding),X(r,i),s.associations.set(r,{materials:t}),i.extensions&&V(o,r,i),r}))}createUniqueName(t){const s=e.PropertyBinding.sanitizeNodeName(t||"");let n=s;for(let e=1;this.nodeNamesUsed[n];++e)n=s+"_"+e;return this.nodeNamesUsed[n]=!0,n}loadGeometries(t){const s=this,r=this.extensions,o=this.primitiveCache;function i(e){return r[n.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,s).then((function(t){return Z(t,e,s)}))}const a=[];for(let r=0,l=t.length;r<l;r++){const l=t[r],c=z(l),u=o[c];if(u)a.push(u.promise);else{let t;t=l.extensions&&l.extensions[n.KHR_DRACO_MESH_COMPRESSION]?i(l):Z(new e.BufferGeometry,l,s),o[c]={primitive:l,promise:t},a.push(t)}}return Promise.all(a)}loadMesh(t){const s=this,n=this.json,r=this.extensions,o=n.meshes[t],i=o.primitives,a=[];for(let t=0,s=i.length;t<s;t++){const s=void 0===i[t].material?(void 0===(l=this.cache).DefaultMaterial&&(l.DefaultMaterial=new e.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:e.FrontSide})),l.DefaultMaterial):this.getDependency("material",i[t].material);a.push(s)}var l;return a.push(s.loadGeometries(i)),Promise.all(a).then((function(n){const a=n.slice(0,n.length-1),l=n[n.length-1],c=[];for(let n=0,u=l.length;n<u;n++){const u=l[n],h=i[n];let p;const d=a[n];if(h.mode===I||h.mode===C||h.mode===O||void 0===h.mode)p=!0===o.isSkinnedMesh?new e.SkinnedMesh(u,d):new e.Mesh(u,d),!0!==p.isSkinnedMesh||p.geometry.attributes.skinWeight.normalized||p.normalizeSkinWeights(),h.mode===C?p.geometry=$(p.geometry,e.TriangleStripDrawMode):h.mode===O&&(p.geometry=$(p.geometry,e.TriangleFanDrawMode));else if(h.mode===w)p=new e.LineSegments(u,d);else if(h.mode===P)p=new e.Line(u,d);else if(h.mode===b)p=new e.LineLoop(u,d);else{if(h.mode!==L)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);p=new e.Points(u,d)}Object.keys(p.geometry.morphAttributes).length>0&&q(p,o),p.name=s.createUniqueName(o.name||"mesh_"+t),X(p,o),h.extensions&&V(r,p,h),s.assignFinalMaterial(p),c.push(p)}for(let e=0,n=c.length;e<n;e++)s.associations.set(c[e],{meshes:t,primitives:e});if(1===c.length)return c[0];const u=new e.Group;s.associations.set(u,{meshes:t});for(let e=0,t=c.length;e<t;e++)u.add(c[e]);return u}))}loadCamera(t){let s;const n=this.json.cameras[t],r=n[n.type];if(r)return"perspective"===n.type?s=new e.PerspectiveCamera(e.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===n.type&&(s=new e.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),n.name&&(s.name=this.createUniqueName(n.name)),X(s,n),Promise.resolve(s);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],s={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(s):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return s.inverseBindMatrices=e,s}))}loadAnimation(t){const s=this.json.animations[t],n=[],r=[],o=[],i=[],a=[];for(let e=0,t=s.channels.length;e<t;e++){const t=s.channels[e],l=s.samplers[t.sampler],c=t.target,u=void 0!==c.node?c.node:c.id,h=void 0!==s.parameters?s.parameters[l.input]:l.input,p=void 0!==s.parameters?s.parameters[l.output]:l.output;n.push(this.getDependency("node",u)),r.push(this.getDependency("accessor",h)),o.push(this.getDependency("accessor",p)),i.push(l),a.push(c)}return Promise.all([Promise.all(n),Promise.all(r),Promise.all(o),Promise.all(i),Promise.all(a)]).then((function(n){const r=n[0],o=n[1],i=n[2],a=n[3],l=n[4],c=[];for(let t=0,s=r.length;t<s;t++){const s=r[t],n=o[t],u=i[t],h=a[t],p=l[t];if(void 0===s)continue;let d;switch(s.updateMatrix(),s.matrixAutoUpdate=!0,D[p.path]){case D.weights:d=e.NumberKeyframeTrack;break;case D.rotation:d=e.QuaternionKeyframeTrack;break;case D.position:case D.scale:default:d=e.VectorKeyframeTrack}const m=s.name?s.name:s.uuid,f=void 0!==h.interpolation?G[h.interpolation]:e.InterpolateLinear,g=[];D[p.path]===D.weights?s.traverse((function(e){e.morphTargetInfluences&&g.push(e.name?e.name:e.uuid)})):g.push(m);let T=u.array;if(u.normalized){const e=Q(T.constructor),t=new Float32Array(T.length);for(let s=0,n=T.length;s<n;s++)t[s]=T[s]*e;T=t}for(let t=0,s=g.length;t<s;t++){const s=new d(g[t]+"."+D[p.path],n.array,T,f);"CUBICSPLINE"===h.interpolation&&(s.createInterpolant=function(t){return new(this instanceof e.QuaternionKeyframeTrack?E:y)(this.times,this.values,this.getValueSize()/3,t)},s.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),c.push(s)}}const u=s.name?s.name:"animation_"+t;return new e.AnimationClip(u,void 0,c)}))}createNodeMesh(e){const t=this.json,s=this,n=t.nodes[e];return void 0===n.mesh?null:s.getDependency("mesh",n.mesh).then((function(e){const t=s._getNodeRef(s.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse((function(e){if(e.isMesh)for(let t=0,s=n.weights.length;t<s;t++)e.morphTargetInfluences[t]=n.weights[t]})),t}))}loadNode(t){const s=this.json,n=this.extensions,r=this,o=s.nodes[t],i=o.name?r.createUniqueName(o.name):"";return function(){const e=[],s=r._invokeOne((function(e){return e.createNodeMesh&&e.createNodeMesh(t)}));return s&&e.push(s),void 0!==o.camera&&e.push(r.getDependency("camera",o.camera).then((function(e){return r._getNodeRef(r.cameraCache,o.camera,e)}))),r._invokeAll((function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)})).forEach((function(t){e.push(t)})),Promise.all(e)}().then((function(s){let a;if(a=!0===o.isBone?new e.Bone:s.length>1?new e.Group:1===s.length?s[0]:new e.Object3D,a!==s[0])for(let e=0,t=s.length;e<t;e++)a.add(s[e]);if(o.name&&(a.userData.name=o.name,a.name=i),X(a,o),o.extensions&&V(n,a,o),void 0!==o.matrix){const t=new e.Matrix4;t.fromArray(o.matrix),a.applyMatrix4(t)}else void 0!==o.translation&&a.position.fromArray(o.translation),void 0!==o.rotation&&a.quaternion.fromArray(o.rotation),void 0!==o.scale&&a.scale.fromArray(o.scale);return r.associations.has(a)||r.associations.set(a,{}),r.associations.get(a).nodes=t,a}))}loadScene(t){const s=this.json,n=this.extensions,r=this.json.scenes[t],o=this,i=new e.Group;r.name&&(i.name=o.createUniqueName(r.name)),X(i,r),r.extensions&&V(n,i,r);const a=r.nodes||[],l=[];for(let e=0,t=a.length;e<t;e++)l.push(J(a[e],i,s,o));return Promise.all(l).then((function(){return o.associations=(t=>{const s=new Map;for(const[t,n]of o.associations)(t instanceof e.Material||t instanceof e.Texture)&&s.set(t,n);return t.traverse((e=>{const t=o.associations.get(e);null!=t&&s.set(e,t)})),s})(i),i}))}}function J(t,s,n,r){const o=n.nodes[t];return r.getDependency("node",t).then((function(t){if(void 0===o.skin)return t;let s;return r.getDependency("skin",o.skin).then((function(e){s=e;const t=[];for(let e=0,n=s.joints.length;e<n;e++)t.push(r.getDependency("node",s.joints[e]));return Promise.all(t)})).then((function(n){return t.traverse((function(t){if(!t.isMesh)return;const r=[],o=[];for(let t=0,i=n.length;t<i;t++){const i=n[t];if(i){r.push(i);const n=new e.Matrix4;void 0!==s.inverseBindMatrices&&n.fromArray(s.inverseBindMatrices.array,16*t),o.push(n)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',s.joints[t])}t.bind(new e.Skeleton(r,o),t.matrixWorld)})),t}))})).then((function(e){s.add(e);const t=[];if(o.children){const s=o.children;for(let o=0,i=s.length;o<i;o++){const i=s[o];t.push(J(i,e,n,r))}}return Promise.all(t)}))}function Z(t,s,n){const r=s.attributes,o=[];function i(e,s){return n.getDependency("accessor",e).then((function(e){t.setAttribute(s,e)}))}for(const e in r){const s=k[e]||e.toLowerCase();s in t.attributes||o.push(i(r[e],s))}if(void 0!==s.indices&&!t.index){const e=n.getDependency("accessor",s.indices).then((function(e){t.setIndex(e)}));o.push(e)}return X(t,s),function(t,s,n){const r=s.attributes,o=new e.Box3;if(void 0===r.POSITION)return;{const t=n.json.accessors[r.POSITION],s=t.min,i=t.max;if(void 0===s||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new e.Vector3(s[0],s[1],s[2]),new e.Vector3(i[0],i[1],i[2])),t.normalized){const e=Q(N[t.componentType]);o.min.multiplyScalar(e),o.max.multiplyScalar(e)}}const i=s.targets;if(void 0!==i){const t=new e.Vector3,s=new e.Vector3;for(let e=0,r=i.length;e<r;e++){const r=i[e];if(void 0!==r.POSITION){const e=n.json.accessors[r.POSITION],o=e.min,i=e.max;if(void 0!==o&&void 0!==i){if(s.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),s.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),s.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),e.normalized){const t=Q(N[e.componentType]);s.multiplyScalar(t)}t.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(t)}t.boundingBox=o;const a=new e.Sphere;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=a}(t,s,n),Promise.all(o).then((function(){return void 0!==s.targets?function(e,t,s){let n=!1,r=!1;for(let e=0,s=t.length;e<s;e++){const s=t[e];if(void 0!==s.POSITION&&(n=!0),void 0!==s.NORMAL&&(r=!0),n&&r)break}if(!n&&!r)return Promise.resolve(e);const o=[],i=[];for(let a=0,l=t.length;a<l;a++){const l=t[a];if(n){const t=void 0!==l.POSITION?s.getDependency("accessor",l.POSITION):e.attributes.position;o.push(t)}if(r){const t=void 0!==l.NORMAL?s.getDependency("accessor",l.NORMAL):e.attributes.normal;i.push(t)}}return Promise.all([Promise.all(o),Promise.all(i)]).then((function(t){const s=t[0],o=t[1];return n&&(e.morphAttributes.position=s),r&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}(t,s.targets,n):t}))}function $(t,s){let n=t.getIndex();if(null===n){const e=[],s=t.getAttribute("position");if(void 0===s)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(let t=0;t<s.count;t++)e.push(t);t.setIndex(e),n=t.getIndex()}const r=n.count-2,o=[];if(s===e.TriangleFanDrawMode)for(let e=1;e<=r;e++)o.push(n.getX(0)),o.push(n.getX(e)),o.push(n.getX(e+1));else for(let e=0;e<r;e++)e%2==0?(o.push(n.getX(e)),o.push(n.getX(e+1)),o.push(n.getX(e+2))):(o.push(n.getX(e+2)),o.push(n.getX(e+1)),o.push(n.getX(e)));o.length/3!==r&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=t.clone();return i.setIndex(o),i}exports.GLTFLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./RGBELoader.cjs.js");class a extends e.Loader{constructor(a){super(a),this.hdrLoader=new t.RGBELoader,this.type=e.HalfFloatType}load(t,a,r,i){Array.isArray(t)||(console.warn("THREE.HDRCubeTextureLoader signature has changed. Use .setDataType() instead."),this.setDataType(t),t=a,a=r,r=i,i=arguments[4]);const s=new e.CubeTexture;switch(s.type=this.type,s.type){case e.FloatType:case e.HalfFloatType:s.encoding=e.LinearEncoding,s.minFilter=e.LinearFilter,s.magFilter=e.LinearFilter,s.generateMipmaps=!1}const n=this;let o=0;function d(a,r,i,d){new e.FileLoader(n.manager).setPath(n.path).setResponseType("arraybuffer").setWithCredentials(n.withCredentials).load(t[a],(function(t){o++;const i=n.hdrLoader.parse(t);if(i){if(void 0!==i.data){const t=new e.DataTexture(i.data,i.width,i.height);t.type=s.type,t.encoding=s.encoding,t.format=s.format,t.minFilter=s.minFilter,t.magFilter=s.magFilter,t.generateMipmaps=s.generateMipmaps,s.images[a]=t}6===o&&(s.needsUpdate=!0,r&&r(s))}}),i,d)}for(let e=0;e<t.length;e++)d(e,a,r,i);return s}setDataType(e){return this.type=e,this.hdrLoader.setDataType(e),this}}exports.HDRCubeTextureLoader=a;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./ColladaLoader.cjs.js"),t=require("fflate");require("./TGALoader.cjs.js");class o extends e.Loader{constructor(e){super(e)}load(r,t,o,a){const n=this,s=new e.FileLoader(n.manager);s.setPath(n.path),s.setResponseType("arraybuffer"),s.setRequestHeader(n.requestHeader),s.setWithCredentials(n.withCredentials),s.load(r,(function(e){try{t(n.parse(e))}catch(e){a?a(e):console.error(e),n.manager.itemError(r)}}),o,a)}parse(o){const a=new e.LoadingManager;a.setURLModifier((function(e){const r=function(e){for(const r in n)if(r.substr(-e.length)===e)return n[r]}(e);if(r){console.log("Loading",e);const t=new Blob([r.buffer],{type:"application/octet-stream"});return URL.createObjectURL(t)}return e}));const n=t.unzipSync(new Uint8Array(o));if(n["doc.kml"]){const e=(new DOMParser).parseFromString(fflate.strFromU8(n["doc.kml"]),"application/xml").querySelector("Placemark Model Link href");if(e){return new r.ColladaLoader(a).parse(fflate.strFromU8(n[e.textContent]))}}else{console.warn("KMZLoader: Missing doc.kml file.");for(const e in n){if("dae"===e.split(".").pop().toLowerCase()){return new r.ColladaLoader(a).parse(fflate.strFromU8(n[e]))}}}return console.error("KMZLoader: Couldn't find .dae file."),{scene:new e.Group}}}exports.KMZLoader=o;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("../utils/WorkerPool.cjs.js"),t=require("ktx-parse"),o=require("zstddec");const s=new WeakMap;let a,n=0;class i extends e.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new r.WorkerPool,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const r=new e.FileLoader(this.manager);r.setPath(this.transcoderPath),r.setWithCredentials(this.withCredentials);const t=r.loadAsync("basis_transcoder.js"),o=new e.FileLoader(this.manager);o.setPath(this.transcoderPath),o.setResponseType("arraybuffer"),o.setWithCredentials(this.withCredentials);const s=o.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,s]).then((([e,r])=>{const t=i.BasisWorker.toString(),o=["/* constants */","let _EngineFormat = "+JSON.stringify(i.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(i.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(i.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",t.substring(t.indexOf("{")+1,t.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=r,this.workerPool.setWorkerCreator((()=>{const e=new Worker(this.workerSourceURL),r=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:r},[r]),e}))})),n>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),n++}return this.transcoderPending}load(r,t,o,a){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const n=new e.FileLoader(this.manager);n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials),n.load(r,(e=>{if(s.has(e)){return s.get(e).promise.then(t).catch(a)}this._createTexture(e).then((e=>t?t(e):null)).catch(a)}),o,a)}_createTextureFrom(r){const{mipmaps:o,width:s,height:a,format:n,type:i,error:_,dfdTransferFn:T,dfdFlags:d}=r;if("error"===i)return Promise.reject(_);const R=new e.CompressedTexture(o,s,a,n,e.UnsignedByteType);return R.minFilter=1===o.length?e.LinearFilter:e.LinearMipmapLinearFilter,R.magFilter=e.LinearFilter,R.generateMipmaps=!1,R.needsUpdate=!0,R.encoding=T===t.KHR_DF_TRANSFER_SRGB?e.sRGBEncoding:e.LinearEncoding,R.premultiplyAlpha=!!(d&t.KHR_DF_FLAG_ALPHA_PREMULTIPLIED),R}_createTexture(r,n={}){const i=t.read(new Uint8Array(r));if(i.vkFormat!==t.VK_FORMAT_UNDEFINED)return async function(r){const{vkFormat:s,pixelWidth:n,pixelHeight:i,pixelDepth:R}=r;if(void 0===_[s])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");const c=r.levels[0];let F,p;if(r.supercompressionScheme===t.KHR_SUPERCOMPRESSION_NONE)F=c.levelData;else{if(r.supercompressionScheme!==t.KHR_SUPERCOMPRESSION_ZSTD)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");a||(a=new Promise((async e=>{const r=new o.ZSTDDecoder;await r.init(),e(r)}))),F=(await a).decode(c.levelData,c.uncompressedByteLength)}p=T[s]===e.FloatType?new Float32Array(F.buffer,F.byteOffset,F.byteLength/Float32Array.BYTES_PER_ELEMENT):T[s]===e.HalfFloatType?new Uint16Array(F.buffer,F.byteOffset,F.byteLength/Uint16Array.BYTES_PER_ELEMENT):F;const m=0===R?new e.DataTexture(p,n,i):new e.Data3DTexture(p,n,i,R);return m.type=T[s],m.format=_[s],m.encoding=d[s]||e.LinearEncoding,m.needsUpdate=!0,Promise.resolve(m)}(i);const R=n,c=this.init().then((()=>this.workerPool.postMessage({type:"transcode",buffer:r,taskConfig:R},[r]))).then((e=>this._createTextureFrom(e.data)));return s.set(r,{promise:c}),c}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),n--,this}}i.BasisFormat={ETC1S:0,UASTC_4x4:1},i.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},i.EngineFormat={RGBAFormat:e.RGBAFormat,RGBA_ASTC_4x4_Format:e.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:e.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:e.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:e.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:e.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:e.RGB_ETC1_Format,RGB_ETC2_Format:e.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:e.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:e.RGB_S3TC_DXT1_Format},i.BasisWorker=function(){let e,r,t;const o=_EngineFormat,s=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(n){const d=n.data;switch(d.type){case"init":e=d.config,R=d.transcoderBinary,r=new Promise((e=>{t={wasmBinary:R,onRuntimeInitialized:e},BASIS(t)})).then((()=>{t.initializeBasis(),void 0===t.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}));break;case"transcode":r.then((()=>{try{const{width:r,height:n,hasAlpha:R,mipmaps:c,format:F,dfdTransferFn:p,dfdFlags:m}=function(r){const n=new t.KTX2File(new Uint8Array(r));function d(){n.close(),n.delete()}if(!n.isValid())throw d(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const R=n.isUASTC()?a.UASTC_4x4:a.ETC1S,c=n.getWidth(),F=n.getHeight(),p=n.getLevels(),m=n.getHasAlpha(),l=n.getDFDTransferFunc(),A=n.getDFDFlags(),{transcoderFormat:B,engineFormat:h}=function(r,t,n,d){let R,c;const F=r===a.ETC1S?i:_;for(let o=0;o<F.length;o++){const s=F[o];if(e[s.if]&&(s.basisFormat.includes(r)&&!(d&&s.transcoderFormat.length<2)&&(!s.needsPowerOfTwo||T(t)&&T(n))))return R=s.transcoderFormat[d?1:0],c=s.engineFormat[d?1:0],{transcoderFormat:R,engineFormat:c}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),R=s.RGBA32,c=o.RGBAFormat,{transcoderFormat:R,engineFormat:c}}(R,c,F,m);if(!c||!F||!p)throw d(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!n.startTranscoding())throw d(),new Error("THREE.KTX2Loader: .startTranscoding failed");const S=[];for(let e=0;e<p;e++){const r=n.getImageLevelInfo(e,0,0),t=r.origWidth,o=r.origHeight,s=new Uint8Array(n.getImageTranscodedSizeInBytes(e,0,0,B));if(!n.transcodeImage(s,e,0,0,B,0,-1,-1))throw d(),new Error("THREE.KTX2Loader: .transcodeImage failed.");S.push({data:s,width:t,height:o})}return d(),{width:c,height:F,hasAlpha:m,mipmaps:S,format:h,dfdTransferFn:l,dfdFlags:A}}(d.buffer),l=[];for(let e=0;e<c.length;++e)l.push(c[e].data.buffer);self.postMessage({type:"transcode",id:d.id,width:r,height:n,hasAlpha:R,mipmaps:c,format:F,dfdTransferFn:p,dfdFlags:m},l)}catch(e){console.error(e),self.postMessage({type:"error",id:d.id,error:e.message})}}))}var R}));const n=[{if:"astcSupported",basisFormat:[a.UASTC_4x4],transcoderFormat:[s.ASTC_4x4,s.ASTC_4x4],engineFormat:[o.RGBA_ASTC_4x4_Format,o.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[s.BC7_M5,s.BC7_M5],engineFormat:[o.RGBA_BPTC_Format,o.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[s.BC1,s.BC3],engineFormat:[o.RGB_S3TC_DXT1_Format,o.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[s.ETC1,s.ETC2],engineFormat:[o.RGB_ETC2_Format,o.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[s.ETC1],engineFormat:[o.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[s.PVRTC1_4_RGB,s.PVRTC1_4_RGBA],engineFormat:[o.RGB_PVRTC_4BPPV1_Format,o.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],i=n.sort((function(e,r){return e.priorityETC1S-r.priorityETC1S})),_=n.sort((function(e,r){return e.priorityUASTC-r.priorityUASTC}));function T(e){return e<=2||0==(e&e-1)&&0!==e}};const _={[t.VK_FORMAT_R32G32B32A32_SFLOAT]:e.RGBAFormat,[t.VK_FORMAT_R16G16B16A16_SFLOAT]:e.RGBAFormat,[t.VK_FORMAT_R8G8B8A8_UNORM]:e.RGBAFormat,[t.VK_FORMAT_R8G8B8A8_SRGB]:e.RGBAFormat,[t.VK_FORMAT_R32G32_SFLOAT]:e.RGFormat,[t.VK_FORMAT_R16G16_SFLOAT]:e.RGFormat,[t.VK_FORMAT_R8G8_UNORM]:e.RGFormat,[t.VK_FORMAT_R8G8_SRGB]:e.RGFormat,[t.VK_FORMAT_R32_SFLOAT]:e.RedFormat,[t.VK_FORMAT_R16_SFLOAT]:e.RedFormat,[t.VK_FORMAT_R8_SRGB]:e.RedFormat,[t.VK_FORMAT_R8_UNORM]:e.RedFormat},T={[t.VK_FORMAT_R32G32B32A32_SFLOAT]:e.FloatType,[t.VK_FORMAT_R16G16B16A16_SFLOAT]:e.HalfFloatType,[t.VK_FORMAT_R8G8B8A8_UNORM]:e.UnsignedByteType,[t.VK_FORMAT_R8G8B8A8_SRGB]:e.UnsignedByteType,[t.VK_FORMAT_R32G32_SFLOAT]:e.FloatType,[t.VK_FORMAT_R16G16_SFLOAT]:e.HalfFloatType,[t.VK_FORMAT_R8G8_UNORM]:e.UnsignedByteType,[t.VK_FORMAT_R8G8_SRGB]:e.UnsignedByteType,[t.VK_FORMAT_R32_SFLOAT]:e.FloatType,[t.VK_FORMAT_R16_SFLOAT]:e.HalfFloatType,[t.VK_FORMAT_R8_SRGB]:e.UnsignedByteType,[t.VK_FORMAT_R8_UNORM]:e.UnsignedByteType},d={[t.VK_FORMAT_R8G8B8A8_SRGB]:e.sRGBEncoding,[t.VK_FORMAT_R8G8_SRGB]:e.sRGBEncoding,[t.VK_FORMAT_R8_SRGB]:e.sRGBEncoding};exports.KTX2Loader=i;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const s=new r(e,1);return{mipmaps:s.mipmaps(t),width:s.pixelWidth,height:s.pixelHeight,format:s.glInternalFormat,isCubemap:6===s.numberOfFaces,mipmapCount:s.numberOfMipmapLevels}}}class r{constructor(e,t){this.arrayBuffer=e;const r=new Uint8Array(this.arrayBuffer,0,12);if(171!==r[0]||75!==r[1]||84!==r[2]||88!==r[3]||32!==r[4]||49!==r[5]||49!==r[6]||187!==r[7]||13!==r[8]||10!==r[9]||26!==r[10]||10!==r[11])return void console.error("texture missing KTX identifier");const s=Uint32Array.BYTES_PER_ELEMENT,i=new DataView(this.arrayBuffer,12,13*s),n=67305985===i.getUint32(0,!0);this.glType=i.getUint32(1*s,n),this.glTypeSize=i.getUint32(2*s,n),this.glFormat=i.getUint32(3*s,n),this.glInternalFormat=i.getUint32(4*s,n),this.glBaseInternalFormat=i.getUint32(5*s,n),this.pixelWidth=i.getUint32(6*s,n),this.pixelHeight=i.getUint32(7*s,n),this.pixelDepth=i.getUint32(8*s,n),this.numberOfArrayElements=i.getUint32(9*s,n),this.numberOfFaces=i.getUint32(10*s,n),this.numberOfMipmapLevels=i.getUint32(11*s,n),this.bytesOfKeyValueData=i.getUint32(12*s,n),0===this.glType?(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===t?this.loadType=0:console.warn("number of faces expected"+t+", but found "+this.numberOfFaces):console.warn("texture arrays not currently supported"):console.warn("only 2D textures currently supported")):console.warn("only compressed formats currently supported")}mipmaps(e){const t=[];let r=64+this.bytesOfKeyValueData,s=this.pixelWidth,i=this.pixelHeight;const n=e?this.numberOfMipmapLevels:1;for(let e=0;e<n;e++){const e=new Int32Array(this.arrayBuffer,r,1)[0];r+=4;for(let n=0;n<this.numberOfFaces;n++){const n=new Uint8Array(this.arrayBuffer,r,e);t.push({data:n,width:s,height:i}),r+=e,r+=3-(e+3)%4}s=Math.max(1,.5*s),i=Math.max(1,.5*i)}return t}}exports.KTXLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const t=new e.Vector3,r=new e.Vector3;class a extends e.ShaderMaterial{constructor(t){super({uniforms:e.UniformsUtils.merge([e.UniformsLib.fog,{diffuse:{value:new e.Color},opacity:{value:1}}]),vertexShader:"\n attribute vec3 control0;\n attribute vec3 control1;\n attribute vec3 direction;\n varying float discardFlag;\n\n #include <common>\n #include <color_pars_vertex>\n #include <fog_pars_vertex>\n #include <logdepthbuf_pars_vertex>\n #include <clipping_planes_pars_vertex>\n\n void main() {\n #include <color_vertex>\n\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n\n // Transform the line segment ends and control points into camera clip space\n vec4 c0 = projectionMatrix * modelViewMatrix * vec4(control0, 1.0);\n vec4 c1 = projectionMatrix * modelViewMatrix * vec4(control1, 1.0);\n vec4 p0 = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 p1 = projectionMatrix * modelViewMatrix * vec4(position + direction, 1.0);\n\n c0.xy /= c0.w;\n c1.xy /= c1.w;\n p0.xy /= p0.w;\n p1.xy /= p1.w;\n\n // Get the direction of the segment and an orthogonal vector\n vec2 dir = p1.xy - p0.xy;\n vec2 norm = vec2(-dir.y, dir.x);\n\n // Get control point directions from the line\n vec2 c0dir = c0.xy - p1.xy;\n vec2 c1dir = c1.xy - p1.xy;\n\n // If the vectors to the controls points are pointed in different directions away\n // from the line segment then the line should not be drawn.\n float d0 = dot(normalize(norm), normalize(c0dir));\n float d1 = dot(normalize(norm), normalize(c1dir));\n discardFlag = float(sign(d0) != sign(d1));\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n #include <fog_vertex>\n }\n ",fragmentShader:"\n uniform vec3 diffuse;\n uniform float opacity;\n varying float discardFlag;\n\n #include <common>\n #include <color_pars_fragment>\n #include <fog_pars_fragment>\n #include <logdepthbuf_pars_fragment>\n #include <clipping_planes_pars_fragment>\n\n void main() {\n if (discardFlag > 0.5) discard;\n\n #include <clipping_planes_fragment>\n vec3 outgoingLight = vec3(0.0);\n vec4 diffuseColor = vec4(diffuse, opacity);\n #include <logdepthbuf_fragment>\n #include <color_fragment>\n outgoingLight = diffuseColor.rgb; // simple shader\n gl_FragColor = vec4(outgoingLight, diffuseColor.a);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n }\n "}),Object.defineProperties(this,{opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},color:{get:function(){return this.uniforms.diffuse.value}}}),this.setValues(t),this.isLDrawConditionalLineMaterial=!0}}class n extends e.LineSegments{constructor(e,t){super(e,t),this.isConditionalLine=!0}}const o=new e.Ray;function i(e){return"Part"===e||"Unofficial_Part"===e}class s{constructor(e,t){this.line=e,this.lineLength=e.length,this.currentCharIndex=0,this.currentChar=" ",this.lineNumber=t}seekNonSpace(){for(;this.currentCharIndex<this.lineLength;){if(this.currentChar=this.line.charAt(this.currentCharIndex)," "!==this.currentChar&&"\t"!==this.currentChar)return;this.currentCharIndex++}}getToken(){const e=this.currentCharIndex++;for(;this.currentCharIndex<this.lineLength&&(this.currentChar=this.line.charAt(this.currentCharIndex)," "!==this.currentChar&&"\t"!==this.currentChar);)this.currentCharIndex++;const t=this.currentCharIndex;return this.seekNonSpace(),this.line.substring(e,t)}getVector(){return new e.Vector3(parseFloat(this.getToken()),parseFloat(this.getToken()),parseFloat(this.getToken()))}getRemainingString(){return this.line.substring(this.currentCharIndex,this.lineLength)}isAtTheEnd(){return this.currentCharIndex>=this.lineLength}setToEnd(){this.currentCharIndex=this.lineLength}getLineNumberString(){return this.lineNumber>=0?" at line "+this.lineNumber:""}}class l{constructor(e){this.loader=e,this._cache={}}cloneResult(e){const t={};return t.faces=e.faces.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),normals:e.normals.map((()=>null)),faceNormal:null}))),t.conditionalSegments=e.conditionalSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),controlPoints:e.controlPoints.map((e=>e.clone()))}))),t.lineSegments=e.lineSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone()))}))),t.type=e.type,t.category=e.category,t.keywords=e.keywords,t.subobjects=e.subobjects,t.totalFaces=e.totalFaces,t.startingConstructionStep=e.startingConstructionStep,t.materials=e.materials,t.group=null,t}async fetchData(t){let r=!1,a=0;for(;6!==a;){let n=t;switch(a){case 0:a+=1;break;case 1:n="parts/"+n,a+=1;break;case 2:n="p/"+n,a+=1;break;case 3:n="models/"+n,a+=1;break;case 4:n=t.substring(0,t.lastIndexOf("/")+1)+n,a+=1;break;case 5:r?a=6:(n=t=t.toLowerCase(),r=!0,a=0)}const o=this.loader,i=new e.FileLoader(o.manager);i.setPath(o.partsLibraryPath),i.setRequestHeader(o.requestHeader),i.setWithCredentials(o.withCredentials);try{return await i.loadAsync(n)}catch{continue}}throw new Error('LDrawLoader: Subobject "'+t+'" could not be loaded.')}parse(t,r=null){const a=this.loader,n=[],o=[],i=[],l=[],c={},h=e=>c[e]||null;let u="Model",d=null,g=null,p=0;-1!==t.indexOf("\r\n")&&(t=t.replace(/\r\n/g,"\n"));const m=t.split("\n"),f=m.length;let C=!1,w=null,M=null,b=!1,y=!0,L=!1,v=!0,k=!1;for(let t=0;t<f;t++){const r=m[t];if(0===r.length)continue;if(C){r.startsWith("0 FILE ")?(this.setData(w,M),w=r.substring(7),M=""):M+=r+"\n";continue}const f=new s(r,t+1);if(f.seekNonSpace(),f.isAtTheEnd())continue;const x=f.getToken();let S,D,E,T,_,N,V,F,A,I,P;switch(x){case"0":const r=f.getToken();if(r)switch(r){case"!LDRAW_ORG":u=f.getToken();break;case"!COLOUR":S=a.parseColorMetaDirective(f),S?c[S.userData.code]=S:console.warn("LDrawLoader: Error parsing material"+f.getLineNumberString());break;case"!CATEGORY":d=f.getToken();break;case"!KEYWORDS":const e=f.getRemainingString().split(",");e.length>0&&(g||(g=[]),e.forEach((function(e){g.push(e.trim())})));break;case"FILE":t>0&&(C=!0,w=f.getRemainingString(),M="",b=!1,y=!0);break;case"BFC":for(;!f.isAtTheEnd();){const e=f.getToken();switch(e){case"CERTIFY":case"NOCERTIFY":b="CERTIFY"===e,y=!0;break;case"CW":case"CCW":y="CCW"===e;break;case"INVERTNEXT":L=!0;break;case"CLIP":case"NOCLIP":v="CLIP"===e;break;default:console.warn('THREE.LDrawLoader: BFC directive "'+e+'" is unknown.')}}break;case"STEP":k=!0}break;case"1":D=f.getToken(),S=h(D);const s=parseFloat(f.getToken()),m=parseFloat(f.getToken()),R=parseFloat(f.getToken()),O=parseFloat(f.getToken()),z=parseFloat(f.getToken()),W=parseFloat(f.getToken()),U=parseFloat(f.getToken()),G=parseFloat(f.getToken()),j=parseFloat(f.getToken()),B=parseFloat(f.getToken()),H=parseFloat(f.getToken()),q=parseFloat(f.getToken()),$=(new e.Matrix4).set(O,z,W,s,U,G,j,m,B,H,q,R,0,0,0,1);let Y=f.getRemainingString().trim().replace(/\\/g,"/");a.fileMap[Y]?Y=a.fileMap[Y]:Y.startsWith("s/")?Y="parts/"+Y:Y.startsWith("48/")&&(Y="p/"+Y),l.push({material:S,colorCode:D,matrix:$,fileName:Y,inverted:L,startingConstructionStep:k}),L=!1;break;case"2":D=f.getToken(),S=h(D),N=f.getVector(),V=f.getVector(),E={material:S,colorCode:D,vertices:[N,V]},o.push(E);break;case"5":D=f.getToken(),S=h(D),N=f.getVector(),V=f.getVector(),I=f.getVector(),P=f.getVector(),E={material:S,colorCode:D,vertices:[N,V],controlPoints:[I,P]},i.push(E);break;case"3":D=f.getToken(),S=h(D),T=y,_=!b||!v,!0===T?(N=f.getVector(),V=f.getVector(),F=f.getVector()):(F=f.getVector(),V=f.getVector(),N=f.getVector()),n.push({material:S,colorCode:D,faceNormal:null,vertices:[N,V,F],normals:[null,null,null]}),p++,!0===_&&(n.push({material:S,colorCode:D,faceNormal:null,vertices:[F,V,N],normals:[null,null,null]}),p++);break;case"4":D=f.getToken(),S=h(D),T=y,_=!b||!v,!0===T?(N=f.getVector(),V=f.getVector(),F=f.getVector(),A=f.getVector()):(A=f.getVector(),F=f.getVector(),V=f.getVector(),N=f.getVector()),n.push({material:S,colorCode:D,faceNormal:null,vertices:[N,V,F,A],normals:[null,null,null,null]}),p+=2,!0===_&&(n.push({material:S,colorCode:D,faceNormal:null,vertices:[A,F,V,N],normals:[null,null,null,null]}),p+=2);break;default:throw new Error('LDrawLoader: Unknown line type "'+x+'"'+f.getLineNumberString()+".")}}return C&&this.setData(w,M),{faces:n,conditionalSegments:i,lineSegments:o,type:u,category:d,keywords:g,subobjects:l,totalFaces:p,startingConstructionStep:k,materials:c,fileName:r,group:null}}getData(e,t=!0){const r=e.toLowerCase(),a=this._cache[r];return null===a||a instanceof Promise?null:t?this.cloneResult(a):a}async ensureDataLoaded(e){const t=e.toLowerCase();t in this._cache||(this._cache[t]=this.fetchData(e).then((r=>{const a=this.parse(r,e);return this._cache[t]=a,a}))),await this._cache[t]}setData(e,t){const r=e.toLowerCase();this._cache[r]=this.parse(t,e)}}function c(e,t,r,a){return(!a&&"16"===e||a&&"24"===e)&&(e=t),r[e]||null}class h{constructor(e){this.loader=e,this.parseCache=new l(e),this._cache={}}async processIntoMesh(a){const n=this.loader,i=this.parseCache,s=new Set,l=async(t,r=null)=>{const a=t.subobjects,o=[];for(let e=0,t=a.length;e<t;e++){const t=a[e],r=i.ensureDataLoaded(t.fileName).then((()=>{const e=i.getData(t.fileName,!1);return r=e.type,/primitive/i.test(r)||"Subpart"===r?l(i.getData(t.fileName),t):this.loadModel(t.fileName).catch((e=>(console.warn(e),null)));var r}));o.push(r)}const h=new e.Group;h.userData.category=t.category,h.userData.keywords=t.keywords,t.group=h;const u=await Promise.all(o);for(let e=0,r=u.length;e<r;e++){const r=t.subobjects[e],a=u[e];if(null===a)continue;if(a.isGroup){const e=a;r.matrix.decompose(e.position,e.quaternion,e.scale),e.userData.startingConstructionStep=r.startingConstructionStep,e.name=r.fileName,n.applyMaterialsToMesh(e,r.colorCode,t.materials),h.add(e);continue}a.group.children.length&&h.add(a.group);const o=t.lineSegments,i=t.conditionalSegments,l=t.faces,d=a.lineSegments,g=a.conditionalSegments,p=a.faces,m=r.matrix,f=r.inverted,C=m.determinant()<0,w=r.colorCode,M="16"===w?"24":w;for(let e=0,r=d.length;e<r;e++){const r=d[e],a=r.vertices;a[0].applyMatrix4(m),a[1].applyMatrix4(m),r.colorCode="24"===r.colorCode?M:r.colorCode,r.material=r.material||c(r.colorCode,r.colorCode,t.materials,!0),o.push(r)}for(let e=0,r=g.length;e<r;e++){const r=g[e],a=r.vertices,n=r.controlPoints;a[0].applyMatrix4(m),a[1].applyMatrix4(m),n[0].applyMatrix4(m),n[1].applyMatrix4(m),r.colorCode="24"===r.colorCode?M:r.colorCode,r.material=r.material||c(r.colorCode,r.colorCode,t.materials,!0),i.push(r)}for(let e=0,r=p.length;e<r;e++){const r=p[e],a=r.vertices;for(let e=0,t=a.length;e<t;e++)a[e].applyMatrix4(m);r.colorCode="16"===r.colorCode?w:r.colorCode,r.material=r.material||c(r.colorCode,w,t.materials,!1),s.add(r.colorCode),C!==f&&a.reverse(),l.push(r)}t.totalFaces+=a.totalFaces}return r&&n.applyMaterialsToMesh(h,r.colorCode,t.materials),t};for(let e=0,t=a.faces;e<t;e++)s.add(a.faces[e].colorCode);if(await l(a),n.smoothNormals){const n=s.size>1;!function(a){for(let n=0,o=a.length;n<o;n++){const o=a[n],i=o.vertices,s=i[0],l=i[1],c=i[2];t.subVectors(l,s),r.subVectors(c,l),o.faceNormal=(new e.Vector3).crossVectors(t,r).normalize()}}(a.faces),function(t,r,a=!1){const n=100*(1+1e-10);function i(e){return`${~~(e.x*n)},${~~(e.y*n)},${~~(e.z*n)}`}function s(e,t){return`${i(e)}_${i(t)}`}function l(e,t,r){r.direction.subVectors(t,e).normalize();const a=e.dot(r.direction);return r.origin.copy(e).addScaledVector(r.direction,-a),r}function c(e){return s(e.origin,e.direction)}const h=new Set,u=new Map,d={},g=[];for(let t=0,n=r.length;t<n;t++){const n=r[t].vertices,o=n[0],i=n[1];if(h.add(s(o,i)),h.add(s(i,o)),a){const t=l(o,i,new e.Ray),r=c(t);if(!u.has(r)){l(i,o,t);const e=c(t),a={ray:t,distances:[]};u.set(r,a),u.set(e,a)}const a=u.get(r);let n=a.ray.direction.dot(o),s=a.ray.direction.dot(i);n>s&&([n,s]=[s,n]),a.distances.push(n,s)}}for(let e=0,r=t.length;e<r;e++){const r=t[e],n=r.vertices,i=n.length;for(let e=0;e<i;e++){const t=e,g=(e+1)%i,p=n[t],m=n[g],f=s(p,m);if(h.has(f))continue;if(a){l(p,m,o);const e=c(o);if(u.has(e)){const t=u.get(e),{ray:r,distances:a}=t;let n=r.direction.dot(p),o=r.direction.dot(m);n>o&&([n,o]=[o,n]);let i=!1;for(let e=0,t=a.length;e<t;e+=2)if(n>=a[e]&&o<=a[e+1]){i=!0;break}if(i)continue}}const C={index:t,tri:r};d[f]=C}}for(;;){let t=null;for(const e in d){t=d[e];break}if(null===t)break;const r=[t];for(;r.length>0;){const t=r.pop().tri,a=t.vertices,n=t.normals,o=t.faceNormal,i=a.length;for(let l=0;l<i;l++){const c=l,h=(l+1)%i,u=a[c],p=a[h];delete d[s(u,p)];const m=s(p,u),f=d[m];if(f){const a=f.tri,i=f.index,s=a.normals,l=s.length,u=a.faceNormal;if(Math.abs(a.faceNormal.dot(t.faceNormal))<.25)continue;m in d&&(r.push(f),delete d[m]);const p=(i+1)%l;n[c]&&s[p]&&n[c]!==s[p]&&(s[p].norm.add(n[c].norm),n[c].norm=s[p].norm);let C=n[c]||s[p];null===C&&(C={norm:new e.Vector3},g.push(C.norm)),null===n[c]&&(n[c]=C,C.norm.add(o)),null===s[p]&&(s[p]=C,C.norm.add(u)),n[h]&&s[i]&&n[h]!==s[i]&&(s[i].norm.add(n[h].norm),n[h].norm=s[i].norm);let w=n[h]||s[i];null===w&&(w={norm:new e.Vector3},g.push(w.norm)),null===n[h]&&(n[h]=w,w.norm.add(o)),null===s[i]&&(s[i]=w,w.norm.add(u))}}}}for(let e=0,t=g.length;e<t;e++)g[e].normalize()}(a.faces,a.lineSegments,n)}const h=a.group;return a.faces.length>0&&h.add(d(a.faces,3,!1,a.totalFaces)),a.lineSegments.length>0&&h.add(d(a.lineSegments,2)),a.conditionalSegments.length>0&&h.add(d(a.conditionalSegments,2,!0)),h}hasCachedModel(e){return null!==e&&e.toLowerCase()in this._cache}async getCachedModel(e){if(null!==e&&this.hasCachedModel(e)){const t=e.toLowerCase();return(await this._cache[t]).clone()}return null}async loadModel(e){const t=this.parseCache,r=e.toLowerCase();if(this.hasCachedModel(e))return this.getCachedModel(e);{await t.ensureDataLoaded(e);const a=t.getData(e),n=this.processIntoMesh(a);if(this.hasCachedModel(e))return this.getCachedModel(e);i(a.type)&&(this._cache[r]=n);return(await n).clone()}}async parseModel(e){const t=this.parseCache.parse(e);return i(t.type)&&this.hasCachedModel(t.fileName)?this.getCachedModel(t.fileName):this.processIntoMesh(t)}}function u(e,t){return e.colorCode===t.colorCode?0:e.colorCode<t.colorCode?-1:1}function d(a,o,i=!1,s=null){a.sort(u),null===s&&(s=a.length);const l=new Float32Array(o*s*3),c=3===o?new Float32Array(o*s*3):null,h=[],d=new Array(6),g=new e.BufferGeometry;let p=null,m=0,f=0,C=0;for(let n=0,s=a.length;n<s;n++){const s=a[n];let u=s.vertices;4===u.length&&(d[0]=u[0],d[1]=u[1],d[2]=u[2],d[3]=u[0],d[4]=u[2],d[5]=u[3],u=d);for(let e=0,t=u.length;e<t;e++){const t=u[e],r=C+3*e;l[r+0]=t.x,l[r+1]=t.y,l[r+2]=t.z}if(3===o){if(!s.faceNormal){const a=u[0],n=u[1],o=u[2];t.subVectors(n,a),r.subVectors(o,n),s.faceNormal=(new e.Vector3).crossVectors(t,r).normalize()}let a=s.normals;4===a.length&&(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[0],d[4]=a[2],d[5]=a[3],a=d);for(let e=0,t=a.length;e<t;e++){let t=s.faceNormal;a[e]&&(t=a[e].norm);const r=C+3*e;c[r+0]=t.x,c[r+1]=t.y,c[r+2]=t.z}}if(p!==s.colorCode){null!==p&&g.addGroup(m,f,h.length-1);const e=s.material;null!==e?3===o?h.push(e):2===o&&(null!==e?i?h.push(e.userData.edgeMaterial.userData.conditionalEdgeMaterial):h.push(e.userData.edgeMaterial):h.push(null)):h.push(s.colorCode),p=s.colorCode,m=C/3,f=u.length}else f+=u.length;C+=3*u.length}f>0&&g.addGroup(m,1/0,h.length-1),g.setAttribute("position",new e.BufferAttribute(l,3)),null!==c&&g.setAttribute("normal",new e.BufferAttribute(c,3));let w=null;if(2===o?w=i?new n(g,1===h.length?h[0]:h):new e.LineSegments(g,1===h.length?h[0]:h):3===o&&(w=new e.Mesh(g,1===h.length?h[0]:h)),i){w.isConditionalLine=!0;const t=new Float32Array(3*a.length*2),r=new Float32Array(3*a.length*2),n=new Float32Array(3*a.length*2);for(let e=0,o=a.length;e<o;e++){const o=a[e],i=o.vertices,s=o.controlPoints,l=s[0],c=s[1],h=i[0],u=i[1],d=3*e*2;t[d+0]=l.x,t[d+1]=l.y,t[d+2]=l.z,t[d+3]=l.x,t[d+4]=l.y,t[d+5]=l.z,r[d+0]=c.x,r[d+1]=c.y,r[d+2]=c.z,r[d+3]=c.x,r[d+4]=c.y,r[d+5]=c.z,n[d+0]=u.x-h.x,n[d+1]=u.y-h.y,n[d+2]=u.z-h.z,n[d+3]=u.x-h.x,n[d+4]=u.y-h.y,n[d+5]=u.z-h.z}g.setAttribute("control0",new e.BufferAttribute(t,3,!1)),g.setAttribute("control1",new e.BufferAttribute(r,3,!1)),g.setAttribute("direction",new e.BufferAttribute(n,3,!1))}return w}class g extends e.Loader{constructor(e){super(e),this.materials=[],this.materialLibrary={},this.partsCache=new h(this),this.fileMap={},this.setMaterials([]),this.smoothNormals=!0,this.partsLibraryPath=""}setPartsLibraryPath(e){return this.partsLibraryPath=e,this}async preloadMaterials(t){const r=new e.FileLoader(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials);const a=/^0 !COLOUR/,n=(await r.loadAsync(t)).split(/[\n\r]/g),o=[];for(let e=0,t=n.length;e<t;e++){const t=n[e];if(a.test(t)){const e=t.replace(a,""),r=this.parseColorMetaDirective(new s(e));o.push(r)}}this.setMaterials(o)}load(t,r,a,n){const o=new e.FileLoader(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(e=>{this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.applyMaterialsToMesh(e,"16",this.materialLibrary,!0),this.computeConstructionSteps(e),r(e)})).catch(n)}),a,n)}parse(e,t){this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.computeConstructionSteps(e),t(e)}))}setMaterials(e){this.materialLibrary={},this.materials=[];for(let t=0,r=e.length;t<r;t++)this.addMaterial(e[t]);return this.addMaterial(this.parseColorMetaDirective(new s("Main_Colour CODE 16 VALUE #FF8080 EDGE #333333"))),this.addMaterial(this.parseColorMetaDirective(new s("Edge_Colour CODE 24 VALUE #A0A0A0 EDGE #333333"))),this}setFileMap(e){return this.fileMap=e,this}addMaterial(e){const t=this.materialLibrary;return t[e.userData.code]||(this.materials.push(e),t[e.userData.code]=e),this}getMaterial(e){if(e.startsWith("0x2")){const t=e.substring(3);return this.parseColorMetaDirective(new s("Direct_Color_"+t+" CODE -1 VALUE #"+t+" EDGE #"+t))}return this.materialLibrary[e]||null}applyMaterialsToMesh(e,t,r,a=!1){const n=this,o="16"===t;function i(e,i){if(o&&!(i in r)&&!a)return i;const s=e.isLineSegments||e.isConditionalLine;(!s&&"16"===i||s&&"24"===i)&&(i=t);let l=null;if(i in r)l=r[i];else{if(!a)return i;if(l=n.getMaterial(i),null===l)throw new Error(`LDrawLoader: Material properties for code ${i} not available.`)}return e.isLineSegments&&(l=l.userData.edgeMaterial,e.isConditionalLine&&(l=l.userData.conditionalEdgeMaterial)),l}e.traverse((e=>{if(e.isMesh||e.isLineSegments)if(Array.isArray(e.material))for(let t=0,r=e.material.length;t<r;t++)e.material[t].isMaterial||(e.material[t]=i(e,e.material[t]));else e.material.isMaterial||(e.material=i(e,e.material))}))}getMainMaterial(){return this.getMaterial("16")}getMainEdgeMaterial(){return this.getMaterial("24")}parseColorMetaDirective(t){let r=null,n=16711935,o=16711935,i=1,l=!1,c=0,h=0,u=null;const d=t.getToken();if(!d)throw new Error('LDrawLoader: Material name was expected after "!COLOUR tag'+t.getLineNumberString()+".");let g=null;for(;g=t.getToken(),g;)switch(g.toUpperCase()){case"CODE":r=t.getToken();break;case"VALUE":if(n=t.getToken(),n.startsWith("0x"))n="#"+n.substring(2);else if(!n.startsWith("#"))throw new Error("LDrawLoader: Invalid color while parsing material"+t.getLineNumberString()+".");break;case"EDGE":if(o=t.getToken(),o.startsWith("0x"))o="#"+o.substring(2);else if(!o.startsWith("#")){if(u=this.getMaterial(o),!u)throw new Error("LDrawLoader: Invalid edge color while parsing material"+t.getLineNumberString()+".");u=u.userData.edgeMaterial}break;case"ALPHA":if(i=parseInt(t.getToken()),isNaN(i))throw new Error("LDrawLoader: Invalid alpha value in material definition"+t.getLineNumberString()+".");i=Math.max(0,Math.min(1,i/255)),i<1&&(l=!0);break;case"LUMINANCE":if(c=parseInt(t.getToken()),isNaN(c))throw new Error("LDrawLoader: Invalid luminance value in material definition"+s.getLineNumberString()+".");c=Math.max(0,Math.min(1,c/255));break;case"CHROME":h=1;break;case"PEARLESCENT":h=2;break;case"RUBBER":h=3;break;case"MATTE_METALLIC":h=4;break;case"METAL":h=5;break;case"MATERIAL":t.setToEnd();break;default:throw new Error('LDrawLoader: Unknown token "'+g+'" while parsing material'+t.getLineNumberString()+".")}let p=null;switch(h){case 0:p=new e.MeshStandardMaterial({color:n,roughness:.3,metalness:0});break;case 2:p=new e.MeshStandardMaterial({color:n,roughness:.3,metalness:.25});break;case 1:p=new e.MeshStandardMaterial({color:n,roughness:0,metalness:1});break;case 3:p=new e.MeshStandardMaterial({color:n,roughness:.9,metalness:0});break;case 4:p=new e.MeshStandardMaterial({color:n,roughness:.8,metalness:.4});break;case 5:p=new e.MeshStandardMaterial({color:n,roughness:.2,metalness:.85})}return p.transparent=l,p.premultipliedAlpha=!0,p.opacity=i,p.depthWrite=!l,p.polygonOffset=!0,p.polygonOffsetFactor=1,0!==c&&p.emissive.set(p.color).multiplyScalar(c),u||(u=new e.LineBasicMaterial({color:o,transparent:l,opacity:i,depthWrite:!l}),u.userData.code=r,u.name=d+" - Edge",u.userData.conditionalEdgeMaterial=new a({fog:!0,transparent:l,depthWrite:!l,color:o,opacity:i})),p.userData.code=r,p.name=d,p.userData.edgeMaterial=u,this.addMaterial(p),p}computeConstructionSteps(e){let t=0;e.traverse((e=>{e.isGroup&&(e.userData.startingConstructionStep&&t++,e.userData.constructionStep=t)})),e.userData.numConstructionSteps=t+1}}exports.LDrawLoader=g;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{load(t,r,a,i){const n=new e.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("text"),n.load(t,(e=>{try{r(this.parse(e))}catch(e){i?i(e):console.error(e),this.manager.itemError(t)}}),a,i)}parse(t){const r=(t=t.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim()).split(/[\n\r]+/g),a=r[0].trim().split(/\s+/g).map((e=>parseFloat(e))),i=a[1]-a[0],n=a.length;for(let e=1,t=a.length;e<t;e++)if(i!==a[e]-a[e-1])throw new Error("LUT3dlLoader: Inconsistent grid size not supported.");const o=new Array(n*n*n*4);let p=0,s=0;for(let e=1,t=r.length;e<t;e++){const t=r[e].trim().split(/\s/g),a=parseFloat(t[0]),i=parseFloat(t[1]),l=parseFloat(t[2]);s=Math.max(s,a,i,l);const g=p%n*n*n+Math.floor(p/n)%n*n+Math.floor(p/(n*n))%n;o[4*g+0]=a,o[4*g+1]=i,o[4*g+2]=l,o[4*g+3]=1,p+=1}const l=Math.ceil(Math.log2(s)),g=Math.pow(2,l);for(let e=0,t=o.length;e<t;e+=4){const t=o[e+0],r=o[e+1],a=o[e+2];o[e+0]=255*t/g,o[e+1]=255*r/g,o[e+2]=255*a/g}const m=new Uint8Array(o),h=new e.DataTexture;h.image.data=m,h.image.width=n,h.image.height=n*n,h.format=e.RGBAFormat,h.type=e.UnsignedByteType,h.magFilter=e.LinearFilter,h.minFilter=e.LinearFilter,h.wrapS=e.ClampToEdgeWrapping,h.wrapT=e.ClampToEdgeWrapping,h.generateMipmaps=!1;const d=new e.DataTexture3D;return d.image.data=m,d.image.width=n,d.image.height=n,d.image.depth=n,d.format=e.RGBAFormat,d.type=e.UnsignedByteType,d.magFilter=e.LinearFilter,d.minFilter=e.LinearFilter,d.wrapS=e.ClampToEdgeWrapping,d.wrapT=e.ClampToEdgeWrapping,d.wrapR=e.ClampToEdgeWrapping,d.generateMipmaps=!1,{size:n,texture:h,texture3D:d}}}exports.LUT3dlLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class a extends e.Loader{load(a,t,r,i){const n=new e.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("text"),n.load(a,(e=>{try{t(this.parse(e))}catch(e){i?i(e):console.error(e),this.manager.itemError(a)}}),r,i)}parse(a){a=a.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim();let t=null,r=null;const i=new e.Vector3(0,0,0),n=new e.Vector3(1,1,1),s=a.split(/[\n\r]+/g);let p=null,l=0;for(let e=0,a=s.length;e<a;e++){const a=s[e].trim(),o=a.split(/\s/g);switch(o[0]){case"TITLE":t=a.substring(7,a.length-1);break;case"LUT_3D_SIZE":const e=o[1];r=parseFloat(e),p=new Uint8Array(r*r*r*4);break;case"DOMAIN_MIN":i.x=parseFloat(o[1]),i.y=parseFloat(o[2]),i.z=parseFloat(o[3]);break;case"DOMAIN_MAX":n.x=parseFloat(o[1]),n.y=parseFloat(o[2]),n.z=parseFloat(o[3]);break;default:const s=parseFloat(o[0]),g=parseFloat(o[1]),m=parseFloat(o[2]);if(s>1||s<0||g>1||g<0||m>1||m<0)throw new Error("LUTCubeLoader : Non normalized values not supported.");p[l+0]=255*s,p[l+1]=255*g,p[l+2]=255*m,p[l+3]=255,l+=4}}const o=new e.DataTexture;o.image.data=p,o.image.width=r,o.image.height=r*r,o.type=e.UnsignedByteType,o.magFilter=e.LinearFilter,o.minFilter=e.LinearFilter,o.wrapS=e.ClampToEdgeWrapping,o.wrapT=e.ClampToEdgeWrapping,o.generateMipmaps=!1;const g=new e.DataTexture3D;return g.image.data=p,g.image.width=r,g.image.height=r,g.image.depth=r,g.type=e.UnsignedByteType,g.magFilter=e.LinearFilter,g.minFilter=e.LinearFilter,g.wrapS=e.ClampToEdgeWrapping,g.wrapT=e.ClampToEdgeWrapping,g.wrapR=e.ClampToEdgeWrapping,g.generateMipmaps=!1,{title:t,size:r,domainMin:i,domainMax:n,texture:o,texture3D:g}}}exports.LUTCubeLoader=a;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./lwo/IFFParser.cjs.js");let a;require("./lwo/LWO2Parser.cjs.js"),require("./lwo/LWO3Parser.cjs.js");class s extends e.Loader{constructor(e,t={}){super(e),this.resourcePath=void 0!==t.resourcePath?t.resourcePath:""}load(t,a,s,r){const i=this,o=""===i.path?function(e,t){const a=e.indexOf(t);return-1===a?"./":e.substr(0,a)}(t,"Objects"):i.path,n=t.split(o).pop().split(".")[0],p=new e.FileLoader(this.manager);p.setPath(i.path),p.setResponseType("arraybuffer"),p.load(t,(function(e){try{a(i.parse(e,o,n))}catch(e){r?r(e):console.error(e),i.manager.itemError(t)}}),s,r)}parse(s,i,o){a=(new t.IFFParser).parse(s);const n=new e.TextureLoader(this.manager).setPath(this.resourcePath||i).setCrossOrigin(this.crossOrigin);return new r(n).parse(o)}}class r{constructor(e){this.textureLoader=e}parse(e){return this.materials=new i(this.textureLoader).parse(),this.defaultLayerName=e,this.meshes=this.parseLayers(),{materials:this.materials,meshes:this.meshes}}parseLayers(){const e=[],t=[],s=new o,r=this;return a.layers.forEach((function(a){const i=s.parse(a.geometry,a),o=r.parseMesh(i,a);e[a.number]=o,-1===a.parent?t.push(o):e[a.parent].add(o)})),this.applyPivots(t),t}parseMesh(t,a){let s;const r=this.getMaterials(t.userData.matNames,a.geometry.type);return this.duplicateUVs(t,r),s="points"===a.geometry.type?new e.Points(t,r):"lines"===a.geometry.type?new e.LineSegments(t,r):new e.Mesh(t,r),a.name?s.name=a.name:s.name=this.defaultLayerName+"_layer_"+a.number,s.userData.pivot=a.pivot,s}applyPivots(e){e.forEach((function(e){e.traverse((function(e){const t=e.userData.pivot;if(e.position.x+=t[0],e.position.y+=t[1],e.position.z+=t[2],e.parent){const t=e.parent.userData.pivot;e.position.x-=t[0],e.position.y-=t[1],e.position.z-=t[2]}}))}))}getMaterials(t,a){const s=[],r=this;t.forEach((function(e,t){s[t]=r.getMaterialByName(e)})),"points"!==a&&"lines"!==a||s.forEach((function(t,r){const i={color:t.color};"points"===a?(i.size=.1,i.map=t.map,i.morphTargets=t.morphTargets,s[r]=new e.PointsMaterial(i)):"lines"===a&&(s[r]=new e.LineBasicMaterial(i))}));const i=s.filter(Boolean);return 1===i.length?i[0]:s}getMaterialByName(e){return this.materials.filter((function(t){return t.name===e}))[0]}duplicateUVs(t,a){let s=!1;Array.isArray(a)?a.forEach((function(e){e.aoMap&&(s=!0)})):a.aoMap&&(s=!0),s&&t.setAttribute("uv2",new e.BufferAttribute(t.attributes.uv.array,2))}}class i{constructor(e){this.textureLoader=e}parse(){const e=[];this.textures={};for(const t in a.materials)"LWO3"===a.format?e.push(this.parseMaterial(a.materials[t],t,a.textures)):"LWO2"===a.format&&e.push(this.parseMaterialLwo2(a.materials[t],t,a.textures));return e}parseMaterial(e,t,a){let s={name:t,side:this.getSide(e.attributes),flatShading:this.getSmooth(e.attributes)};const r=this.parseConnections(e.connections,e.nodes),i=this.parseTextureNodes(r.maps);this.parseAttributeImageMaps(r.attributes,a,i,e.maps);const o=this.parseAttributes(r.attributes,i);this.parseEnvMap(r,i,o),s=Object.assign(i,s),s=Object.assign(s,o);return new(this.getMaterialType(r.attributes))(s)}parseMaterialLwo2(t,a){let s={name:a,side:this.getSide(t.attributes),flatShading:this.getSmooth(t.attributes)};const r=this.parseAttributes(t.attributes,{});return s=Object.assign(s,r),new e.MeshPhongMaterial(s)}getSide(t){if(!t.side)return e.BackSide;switch(t.side){case 0:case 1:return e.BackSide;case 2:return e.FrontSide;case 3:return e.DoubleSide}}getSmooth(e){return!e.smooth||!e.smooth}parseConnections(e,t){const a={maps:{}},s=e.inputName,r=e.inputNodeName,i=e.nodeName,o=this;return s.forEach((function(e,s){if("Material"===e){const e=o.getNodeByRefName(r[s],t);a.attributes=e.attributes,a.envMap=e.fileName,a.name=r[s]}})),i.forEach((function(e,i){e===a.name&&(a.maps[s[i]]=o.getNodeByRefName(r[i],t))})),a}getNodeByRefName(e,t){for(const a in t)if(t[a].refName===e)return t[a]}parseTextureNodes(t){const a={};for(const s in t){const r=t[s],i=r.fileName;if(!i)return;const o=this.loadTexture(i);switch(void 0!==r.widthWrappingMode&&(o.wrapS=this.getWrappingType(r.widthWrappingMode)),void 0!==r.heightWrappingMode&&(o.wrapT=this.getWrappingType(r.heightWrappingMode)),s){case"Color":a.map=o;break;case"Roughness":a.roughnessMap=o,a.roughness=.5;break;case"Specular":a.specularMap=o,a.specular=16777215;break;case"Luminous":a.emissiveMap=o,a.emissive=8421504;break;case"Luminous Color":a.emissive=8421504;break;case"Metallic":a.metalnessMap=o,a.metalness=.5;break;case"Transparency":case"Alpha":a.alphaMap=o,a.transparent=!0;break;case"Normal":a.normalMap=o,void 0!==r.amplitude&&(a.normalScale=new e.Vector2(r.amplitude,r.amplitude));break;case"Bump":a.bumpMap=o}}return a.roughnessMap&&a.specularMap&&delete a.specularMap,a}parseAttributeImageMaps(e,t,a){for(const s in e){const r=e[s];if(r.maps){const e=r.maps[0],i=this.getTexturePathByIndex(e.imageIndex,t);if(!i)return;const o=this.loadTexture(i);switch(void 0!==e.wrap&&(o.wrapS=this.getWrappingType(e.wrap.w)),void 0!==e.wrap&&(o.wrapT=this.getWrappingType(e.wrap.h)),s){case"Color":a.map=o;break;case"Diffuse":a.aoMap=o;break;case"Roughness":a.roughnessMap=o,a.roughness=1;break;case"Specular":a.specularMap=o,a.specular=16777215;break;case"Luminosity":a.emissiveMap=o,a.emissive=8421504;break;case"Metallic":a.metalnessMap=o,a.metalness=1;break;case"Transparency":case"Alpha":a.alphaMap=o,a.transparent=!0;break;case"Normal":a.normalMap=o;break;case"Bump":a.bumpMap=o}}}}parseAttributes(t,a){const s={};return t.Color&&!a.map?s.color=(new e.Color).fromArray(t.Color.value):s.color=new e.Color,t.Transparency&&0!==t.Transparency.value&&(s.opacity=1-t.Transparency.value,s.transparent=!0),t["Bump Height"]&&(s.bumpScale=.1*t["Bump Height"].value),t["Refraction Index"]&&(s.refractionRatio=1/t["Refraction Index"].value),this.parsePhysicalAttributes(s,t,a),this.parseStandardAttributes(s,t,a),this.parsePhongAttributes(s,t,a),s}parsePhysicalAttributes(e,t){t.Clearcoat&&t.Clearcoat.value>0&&(e.clearcoat=t.Clearcoat.value,t["Clearcoat Gloss"]&&(e.clearcoatRoughness=.5*(1-t["Clearcoat Gloss"].value)))}parseStandardAttributes(t,a,s){a.Luminous&&(t.emissiveIntensity=a.Luminous.value,a["Luminous Color"]&&!s.emissive?t.emissive=(new e.Color).fromArray(a["Luminous Color"].value):t.emissive=new e.Color(8421504)),a.Roughness&&!s.roughnessMap&&(t.roughness=a.Roughness.value),a.Metallic&&!s.metalnessMap&&(t.metalness=a.Metallic.value)}parsePhongAttributes(t,a,s){a.Diffuse&&t.color.multiplyScalar(a.Diffuse.value),a.Reflection&&(t.reflectivity=a.Reflection.value,t.combine=e.AddOperation),a.Luminosity&&(t.emissiveIntensity=a.Luminosity.value,s.emissiveMap||s.map?t.emissive=new e.Color(8421504):t.emissive=t.color),a.Roughness||!a.Specular||s.specularMap||(a["Color Highlight"]?t.specular=(new e.Color).setScalar(a.Specular.value).lerp(t.color.clone().multiplyScalar(a.Specular.value),a["Color Highlight"].value):t.specular=(new e.Color).setScalar(a.Specular.value)),t.specular&&a.Glossiness&&(t.shininess=7+Math.pow(2,12*a.Glossiness.value+2))}parseEnvMap(t,a,s){if(t.envMap){const r=this.loadTexture(t.envMap);s.transparent&&s.opacity<.999?(r.mapping=e.EquirectangularRefractionMapping,void 0!==s.reflectivity&&(delete s.reflectivity,delete s.combine),void 0!==s.metalness&&delete s.metalness):r.mapping=e.EquirectangularReflectionMapping,a.envMap=r}}getTexturePathByIndex(e){let t="";return a.textures?(a.textures.forEach((function(a){a.index===e&&(t=a.fileName)})),t):t}loadTexture(e){if(!e)return null;return this.textureLoader.load(e,void 0,void 0,(function(){console.warn("LWOLoader: non-standard resource hierarchy. Use `resourcePath` parameter to specify root content directory.")}))}getWrappingType(t){switch(t){case 0:return console.warn('LWOLoader: "Reset" texture wrapping type is not supported in three.js'),e.ClampToEdgeWrapping;case 1:return e.RepeatWrapping;case 2:return e.MirroredRepeatWrapping;case 3:return e.ClampToEdgeWrapping}}getMaterialType(t){return t.Clearcoat&&t.Clearcoat.value>0?e.MeshPhysicalMaterial:t.Roughness?e.MeshStandardMaterial:e.MeshPhongMaterial}}class o{parse(t,a){const s=new e.BufferGeometry;s.setAttribute("position",new e.Float32BufferAttribute(t.points,3));const r=this.splitIndices(t.vertexIndices,t.polygonDimensions);return s.setIndex(r),this.parseGroups(s,t),s.computeVertexNormals(),this.parseUVs(s,a,r),this.parseMorphTargets(s,a,r),s.translate(-a.pivot[0],-a.pivot[1],-a.pivot[2]),s}splitIndices(e,t){const a=[];let s=0;return t.forEach((function(t){if(t<4)for(let r=0;r<t;r++)a.push(e[s+r]);else if(4===t)a.push(e[s],e[s+1],e[s+2],e[s],e[s+2],e[s+3]);else if(t>4){for(let r=1;r<t-1;r++)a.push(e[s],e[s+r],e[s+r+1]);console.warn("LWOLoader: polygons with greater than 4 sides are not supported")}s+=t})),a}parseGroups(e,t){const s=a.tags,r=[];let i=3;"lines"===t.type&&(i=2),"points"===t.type&&(i=1);const o=this.splitMaterialIndices(t.polygonDimensions,t.materialIndices);let n=0;const p={};let u,l,c=0,h=0;for(let t=0;t<o.length;t+=2){if(l=o[t+1],0===t&&(r[n]=s[l]),void 0===u&&(u=l),l!==u){let t;p[s[u]]?t=p[s[u]]:(t=n,p[s[u]]=n,r[n]=s[u],n++),e.addGroup(c,h,t),c+=h,u=l,h=0}h+=i}if(e.groups.length>0){let t;p[s[l]]?t=p[s[l]]:(t=n,p[s[l]]=n,r[n]=s[l]),e.addGroup(c,h,t)}e.userData.matNames=r}splitMaterialIndices(e,t){const a=[];return e.forEach((function(e,s){if(e<=3)a.push(t[2*s],t[2*s+1]);else if(4===e)a.push(t[2*s],t[2*s+1],t[2*s],t[2*s+1]);else for(let r=0;r<e-2;r++)a.push(t[2*s],t[2*s+1])})),a}parseUVs(t,a){const s=Array.from(Array(2*t.attributes.position.count),(function(){return 0}));for(const e in a.uvs){const t=a.uvs[e].uvs;a.uvs[e].uvIndices.forEach((function(e,a){s[2*e]=t[2*a],s[2*e+1]=t[2*a+1]}))}t.setAttribute("uv",new e.Float32BufferAttribute(s,2))}parseMorphTargets(t,a){let s=0;for(const r in a.morphTargets){const i=t.attributes.position.array.slice();t.morphAttributes.position||(t.morphAttributes.position=[]);const o=a.morphTargets[r].points,n=a.morphTargets[r].indices,p=a.morphTargets[r].type;n.forEach((function(e,t){"relative"===p?(i[3*e]+=o[3*t],i[3*e+1]+=o[3*t+1],i[3*e+2]+=o[3*t+2]):(i[3*e]=o[3*t],i[3*e+1]=o[3*t+1],i[3*e+2]=o[3*t+2])})),t.morphAttributes.position[s]=new e.Float32BufferAttribute(i,3),t.morphAttributes.position[s].name=r,s++}t.morphTargetsRelative=!1}}exports.LWOLoader=s;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{setQuality(e){this._quality=e}load(t,a,n,i){const s=this._quality||1,o=new e.CanvasTexture;o.minFilter=e.NearestFilter;const r=new e.FileLoader(this.manager);return r.setPath(this.path),r.setWithCredentials(this.withCredentials),r.load(t,(function(e){const t=JSON.parse(e),n=document.createElement("div");n.style.width=t.w+"px",n.style.height=t.h+"px",document.body.appendChild(n);const i=bodymovin.loadAnimation({container:n,animType:"canvas",loop:!0,autoplay:!0,animationData:t,rendererSettings:{dpr:s}});o.animation=i,o.image=i.container,i.addEventListener("enterFrame",(function(){o.needsUpdate=!0})),n.style.display="none",void 0!==a&&a(o)}),n,i),o}}exports.LottieLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");const e=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];class s extends t.Loader{constructor(t){super(t)}load(e,s,r,n){const o=this,i=new t.FileLoader(o.manager);i.setPath(o.path),i.setResponseType("arraybuffer"),i.setRequestHeader(o.requestHeader),i.setWithCredentials(o.withCredentials),i.load(e,(function(t){try{s(o.parse(t))}catch(t){n?n(t):console.error(t),o.manager.itemError(e)}}),r,n)}parse(s){const r=new DataView(s),n={},o=["ident","version","skinwidth","skinheight","framesize","num_skins","num_vertices","num_st","num_tris","num_glcmds","num_frames","offset_skins","offset_st","offset_tris","offset_frames","offset_glcmds","offset_end"];for(let t=0;t<o.length;t++)n[o[t]]=r.getInt32(4*t,!0);if(844121161!==n.ident||8!==n.version)return void console.error("Not a valid MD2 file");if(n.offset_end!==r.byteLength)return void console.error("Corrupted MD2 file");const i=new t.BufferGeometry,a=[];let l=n.offset_st;for(let t=0,e=n.num_st;t<e;t++){const t=r.getInt16(l+0,!0),e=r.getInt16(l+2,!0);a.push(t/n.skinwidth,1-e/n.skinheight),l+=4}l=n.offset_tris;const f=[],u=[];for(let t=0,e=n.num_tris;t<e;t++)f.push(r.getUint16(l+0,!0),r.getUint16(l+2,!0),r.getUint16(l+4,!0)),u.push(r.getUint16(l+6,!0),r.getUint16(l+8,!0),r.getUint16(l+10,!0)),l+=12;const c=new t.Vector3,m=new t.Vector3,h=[],g=[];l=n.offset_frames;for(let t=0,s=n.num_frames;t<s;t++){m.set(r.getFloat32(l+0,!0),r.getFloat32(l+4,!0),r.getFloat32(l+8,!0)),c.set(r.getFloat32(l+12,!0),r.getFloat32(l+16,!0),r.getFloat32(l+20,!0)),l+=24;for(let t=0;t<16;t++){const e=r.getUint8(l+t,!0);if(0===e)break;h[t]=e}const t={name:String.fromCharCode.apply(null,h),vertices:[],normals:[]};l+=16;for(let s=0;s<n.num_vertices;s++){let s=r.getUint8(l++,!0),n=r.getUint8(l++,!0),o=r.getUint8(l++,!0);const i=e[r.getUint8(l++,!0)];s=s*m.x+c.x,n=n*m.y+c.y,o=o*m.z+c.z,t.vertices.push(s,o,n),t.normals.push(i[0],i[2],i[1])}g.push(t)}const p=[],d=[],_=[],v=g[0].vertices,b=g[0].normals;for(let t=0,e=f.length;t<e;t++){let e=3*f[t];const s=v[e],r=v[e+1],n=v[e+2];p.push(s,r,n);const o=b[e],i=b[e+1],l=b[e+2];d.push(o,i,l);e=2*u[t];const c=a[e],m=a[e+1];_.push(c,m)}i.setAttribute("position",new t.Float32BufferAttribute(p,3)),i.setAttribute("normal",new t.Float32BufferAttribute(d,3)),i.setAttribute("uv",new t.Float32BufferAttribute(_,2));const w=[],F=[];for(let e=0,s=g.length;e<s;e++){const s=g[e],r=s.name;if(s.vertices.length>0){const e=[];for(let t=0,r=f.length;t<r;t++){const r=3*f[t],n=s.vertices[r],o=s.vertices[r+1],i=s.vertices[r+2];e.push(n,o,i)}const n=new t.Float32BufferAttribute(e,3);n.name=r,w.push(n)}if(s.normals.length>0){const e=[];for(let t=0,r=f.length;t<r;t++){const r=3*f[t],n=s.normals[r],o=s.normals[r+1],i=s.normals[r+2];e.push(n,o,i)}const n=new t.Float32BufferAttribute(e,3);n.name=r,F.push(n)}}return i.morphAttributes.position=w,i.morphAttributes.normal=F,i.morphTargetsRelative=!1,i.animations=t.AnimationClip.CreateClipsFromMorphTargetSequences(g,10),i}}exports.MD2Loader=s;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e)}load(t,r,a,o){const n=this,s=new e.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.load(t,(function(e){r(n.parse(e))}),a,o)}parse(t){const r=new DataView(t),a=r.getUint32(0),o=r.getUint32(4);let n=8;const s=new Float32Array(a),l=new Float32Array(a*a).fill(0);for(let e=0;e<a;e++)s[e]=r.getFloat32(n),n+=4,l[a*e+e]=1;const i=new e.NumberKeyframeTrack(".morphTargetInfluences",s,l),c=new e.AnimationClip("default",s[s.length-1],[i]),p=[];for(let t=0;t<a;t++){const a=new Float32Array(3*o);for(let e=0;e<o;e++){const t=3*e;a[t+0]=r.getFloat32(n),n+=4,a[t+1]=r.getFloat32(n),n+=4,a[t+2]=r.getFloat32(n),n+=4}const s=new e.BufferAttribute(a,3);s.name="morph_"+t,p.push(s)}return{morphTargets:p,clip:c}}}exports.MDDLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./TGALoader.cjs.js"),n=require("mmd-parser");class a extends e.Loader{constructor(t){super(t),this.loader=new e.FileLoader(this.manager),this.parser=null,this.meshBuilder=new o(this.manager),this.animationBuilder=new A}setAnimationPath(e){return this.animationPath=e,this}load(t,n,a,r){const o=this.meshBuilder.setCrossOrigin(this.crossOrigin);let s;s=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.LoaderUtils.extractUrlBase(t);const i=this._extractExtension(t).toLowerCase();"pmd"===i||"pmx"===i?this["pmd"===i?"loadPMD":"loadPMX"](t,(function(e){n(o.build(e,s,a,r))}),a,r):r&&r(new Error("THREE.MMDLoader: Unknown model file extension ."+i+"."))}loadAnimation(e,t,n,a,r){const o=this.animationBuilder;this.loadVMD(e,(function(e){n(t.isCamera?o.buildCameraAnimation(e):o.build(e,t))}),a,r)}loadWithAnimation(e,t,n,a,r){const o=this;this.load(e,(function(e){o.loadAnimation(t,e,(function(t){n({mesh:e,animation:t})}),a,r)}),a,r)}loadPMD(e,t,n,a){const r=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(r.parsePmd(e,!0))}),n,a)}loadPMX(e,t,n,a){const r=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(r.parsePmx(e,!0))}),n,a)}loadVMD(e,t,n,a){const r=Array.isArray(e)?e:[e],o=[],s=r.length,i=this._getParser();this.loader.setMimeType(void 0).setPath(this.animationPath).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials);for(let e=0,A=r.length;e<A;e++)this.loader.load(r[e],(function(e){o.push(i.parseVmd(e,!0)),o.length===s&&t(i.mergeVmds(o))}),n,a)}loadVPD(e,t,n,a,r){const o=this._getParser();this.loader.setMimeType(t?void 0:"text/plain; charset=shift_jis").setPath(this.animationPath).setResponseType("text").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){n(o.parseVpd(e,!0))}),a,r)}_extractExtension(e){const t=e.lastIndexOf(".");return t<0?"":e.slice(t+1)}_getParser(){return null===this.parser&&(this.parser=new n.Parser),this.parser}}const r=["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAN0lEQVRYR+3WQREAMBACsZ5/bWiiMvgEBTt5cW37hjsBBAgQIECAwFwgyfYPCCBAgAABAgTWAh8aBHZBl14e8wAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAOUlEQVRYR+3WMREAMAwDsYY/yoDI7MLwIiP40+RJklfcCCBAgAABAgTqArfb/QMCCBAgQIAAgbbAB3z/e0F3js2cAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAN0lEQVRYR+3WQREAMBACsZ5/B5ilMvgEBTt5cW37hjsBBAgQIECAwFwgyfYPCCBAgAABAgTWAh81dWyx0gFwKAAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAOklEQVRYR+3WoREAMAwDsWb/UQtCy9wxTOQJ/oQ8SXKKGwEECBAgQIBAXeDt7f4BAQQIECBAgEBb4AOz8Hzx7WLY4wAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABPUlEQVRYR+1XwW7CMAy1+f9fZOMysSEOEweEOPRNdm3HbdOyIhAcklPrOs/PLy9RygBALxzcCDQFmgJNgaZAU6Ap0BR4PwX8gsRMVLssMRH5HcpzJEaWL7EVg9F1IHRlyqQohgVr4FGUlUcMJSjcUlDw0zvjeun70cLWmneoyf7NgBTQSniBTQQSuJAZsOnnaczjIMb5hCiuHKxokCrJfVnrctyZL0PkJAJe1HMil4nxeyi3Ypfn1kX51jpPvo/JeCNC4PhVdHdJw2XjBR8brF8PEIhNVn12AgP7uHsTBguBn53MUZCqv7Lp07Pn5k1Ro+uWmUNn7D+M57rtk7aG0Vo73xyF/fbFf0bPJjDXngnGocDTdFhygZjwUQrMNrDcmZlQT50VJ/g/UwNyHpu778+yW+/ksOz/BFo54P4AsUXMfRq7XWsAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACMElEQVRYR+2Xv4pTQRTGf2dubhLdICiii2KnYKHVolhauKWPoGAnNr6BD6CvIVaihYuI2i1ia0BY0MZGRHQXjZj/mSPnnskfNWiWZUlzJ5k7M2cm833nO5Mziej2DWWJRUoCpQKlAntSQCqgw39/iUWAGmh37jrRnVsKlgpiqmkoGVABA7E57fvY+pJDdgKqF6HzFCSADkDq+F6AHABtQ+UMVE5D7zXod7fFNhTEckTbj5XQgHzNN+5tQvc5NG7C6BNkp6D3EmpXHDR+dQAjFLchW3VS9rlw3JBh+B7ys5Cf9z0GW1C/7P32AyBAOAz1q4jGliIH3YPuBnSfQX4OGreTIgEYQb/pBDtPnEQ4CivXYPAWBk13oHrB54yA9QuSn2H4AcKRpEILDt0BUzj+RLR1V5EqjD66NPRBVpLcQwjHoHYJOhsQv6U4mnzmrIXJCFr4LDwm/xBUoboG9XX4cc9VKdYoSA2yk5NQLJaKDUjTBoveG3Z2TElTxwjNK4M3LEZgUdDdruvcXzKBpStgp2NPiWi3ks9ZXxIoFVi+AvHLdc9TqtjL3/aYjpPlrzOcEnK62Szhimdd7xX232zFDTgtxezOu3WNMRLjiKgjtOhHVMd1loynVHvOgjuIIJMaELEqhJAV/RCSLbWTcfPFakFgFlALTRRvx+ok6Hlp/Q+v3fmx90bMyUzaEAhmM3KvHlXTL5DxnbGf/1M8RNNACLL5MNtPxP/mypJAqcDSFfgFhpYqWUzhTEAAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII="];class o{constructor(e){this.crossOrigin="anonymous",this.geometryBuilder=new s,this.materialBuilder=new i(e)}setCrossOrigin(e){return this.crossOrigin=e,this}build(t,n,a,r){const o=this.geometryBuilder.build(t),s=this.materialBuilder.setCrossOrigin(this.crossOrigin).setResourcePath(n).build(t,o,a,r),i=new e.SkinnedMesh(o,s),A=new e.Skeleton(function(t){const n=t.geometry,a=[];if(n&&void 0!==n.bones){for(let t=0,r=n.bones.length;t<r;t++){const r=n.bones[t],o=new e.Bone;a.push(o),o.name=r.name,o.position.fromArray(r.pos),o.quaternion.fromArray(r.rotq),void 0!==r.scl&&o.scale.fromArray(r.scl)}for(let e=0,r=n.bones.length;e<r;e++){const r=n.bones[e];-1!==r.parent&&null!==r.parent&&void 0!==a[r.parent]?a[r.parent].add(a[e]):t.add(a[e])}}return t.updateMatrixWorld(!0),a}(i));return i.bind(A),i}}class s{build(t){const n=[],a=[],r=[],o=[],s=[],i=[],A=[],l=[],h=[],u=[],d=[],c=[],p=[],m=[];let g=0;const f={};for(let e=0;e<t.metadata.vertexCount;e++){const o=t.vertices[e];for(let e=0,t=o.position.length;e<t;e++)n.push(o.position[e]);for(let e=0,t=o.normal.length;e<t;e++)r.push(o.normal[e]);for(let e=0,t=o.uv.length;e<t;e++)a.push(o.uv[e]);for(let e=0;e<4;e++)A.push(o.skinIndices.length-1>=e?o.skinIndices[e]:0);for(let e=0;e<4;e++)l.push(o.skinWeights.length-1>=e?o.skinWeights[e]:0)}for(let e=0;e<t.metadata.faceCount;e++){const n=t.faces[e];for(let e=0,t=n.indices.length;e<t;e++)o.push(n.indices[e])}for(let e=0;e<t.metadata.materialCount;e++){const n=t.materials[e];s.push({offset:3*g,count:3*n.faceCount}),g+=n.faceCount}for(let e=0;e<t.metadata.rigidBodyCount;e++){const n=t.rigidBodies[e];let a=f[n.boneIndex];a=void 0===a?n.type:Math.max(n.type,a),f[n.boneIndex]=a}for(let e=0;e<t.metadata.boneCount;e++){const n=t.bones[e],a={index:e,transformationClass:n.transformationClass,parent:n.parentIndex,name:n.name,pos:n.position.slice(0,3),rotq:[0,0,0,1],scl:[1,1,1],rigidBodyType:void 0!==f[e]?f[e]:-1};-1!==a.parent&&(a.pos[0]-=t.bones[a.parent].position[0],a.pos[1]-=t.bones[a.parent].position[1],a.pos[2]-=t.bones[a.parent].position[2]),i.push(a)}if("pmd"===t.metadata.format)for(let n=0;n<t.metadata.ikCount;n++){const a=t.iks[n],r={target:a.target,effector:a.effector,iteration:a.iteration,maxAngle:4*a.maxAngle,links:[]};for(let n=0,o=a.links.length;n<o;n++){const o={};o.index=a.links[n].index,o.enabled=!0,t.bones[o.index].name.indexOf("ひざ")>=0&&(o.limitation=new e.Vector3(1,0,0)),r.links.push(o)}d.push(r)}else for(let n=0;n<t.metadata.boneCount;n++){const a=t.bones[n].ik;if(void 0===a)continue;const r={target:n,effector:a.effector,iteration:a.iteration,maxAngle:a.maxAngle,links:[]};for(let t=0,n=a.links.length;t<n;t++){const n={};if(n.index=a.links[t].index,n.enabled=!0,1===a.links[t].angleLimitation){const r=a.links[t].lowerLimitationAngle,o=a.links[t].upperLimitationAngle,s=-o[0],i=-o[1];o[0]=-r[0],o[1]=-r[1],r[0]=s,r[1]=i,n.rotationMin=(new e.Vector3).fromArray(r),n.rotationMax=(new e.Vector3).fromArray(o)}r.links.push(n)}d.push(r),i[n].ik=r}if("pmx"===t.metadata.format){const e={};for(let n=0;n<t.metadata.boneCount;n++){const a=t.bones[n],r=a.grant;if(void 0===r)continue;const o={index:n,parentIndex:r.parentIndex,ratio:r.ratio,isLocal:r.isLocal,affectRotation:r.affectRotation,affectPosition:r.affectPosition,transformationClass:a.transformationClass};e[n]={parent:null,children:[],param:o,visited:!1}}const n={parent:null,children:[],param:null,visited:!1};for(const t in e){const a=e[t],r=e[a.parentIndex]||n;a.parent=r,r.children.push(a)}!function e(t){t.param&&(c.push(t.param),i[t.param.index].grant=t.param),t.visited=!0;for(let n=0,a=t.children.length;n<a;n++){const a=t.children[n];a.visited||e(a)}}(n)}function C(e,n,a){for(let r=0;r<n.elementCount;r++){const o=n.elements[r];let s;s="pmd"===t.metadata.format?t.morphs[0].elements[o.index].index:o.index,e.array[3*s+0]+=o.position[0]*a,e.array[3*s+1]+=o.position[1]*a,e.array[3*s+2]+=o.position[2]*a}}for(let a=0;a<t.metadata.morphCount;a++){const r=t.morphs[a],o={name:r.name},s=new e.Float32BufferAttribute(3*t.metadata.vertexCount,3);s.name=r.name;for(let e=0;e<3*t.metadata.vertexCount;e++)s.array[e]=n[e];if("pmd"===t.metadata.format)0!==a&&C(s,r,1);else if(0===r.type)for(let e=0;e<r.elementCount;e++){const n=t.morphs[r.elements[e].index],a=r.elements[e].ratio;1===n.type&&C(s,n,a)}else 1===r.type?C(s,r,1):2===r.type||3===r.type||4===r.type||5===r.type||6===r.type||7===r.type||r.type;h.push(o),u.push(s)}for(let e=0;e<t.metadata.rigidBodyCount;e++){const n=t.rigidBodies[e],a={};for(const e in n)a[e]=n[e];if("pmx"===t.metadata.format&&-1!==a.boneIndex){const e=t.bones[a.boneIndex];a.position[0]-=e.position[0],a.position[1]-=e.position[1],a.position[2]-=e.position[2]}p.push(a)}for(let e=0;e<t.metadata.constraintCount;e++){const n=t.constraints[e],a={};for(const e in n)a[e]=n[e];const r=p[a.rigidBodyIndex1],o=p[a.rigidBodyIndex2];0!==r.type&&2===o.type&&-1!==r.boneIndex&&-1!==o.boneIndex&&t.bones[o.boneIndex].parentIndex===r.boneIndex&&(o.type=1),m.push(a)}const x=new e.BufferGeometry;x.setAttribute("position",new e.Float32BufferAttribute(n,3)),x.setAttribute("normal",new e.Float32BufferAttribute(r,3)),x.setAttribute("uv",new e.Float32BufferAttribute(a,2)),x.setAttribute("skinIndex",new e.Uint16BufferAttribute(A,4)),x.setAttribute("skinWeight",new e.Float32BufferAttribute(l,4)),x.setIndex(o);for(let e=0,t=s.length;e<t;e++)x.addGroup(s[e].offset,s[e].count,e);return x.bones=i,x.morphTargets=h,x.morphAttributes.position=u,x.morphTargetsRelative=!1,x.userData.MMD={bones:i,iks:d,grants:c,rigidBodies:p,constraints:m,format:t.metadata.format},x.computeBoundingSphere(),x}}class i{constructor(t){this.manager=t,this.textureLoader=new e.TextureLoader(this.manager),this.tgaLoader=null,this.crossOrigin="anonymous",this.resourcePath=void 0}setCrossOrigin(e){return this.crossOrigin=e,this}setResourcePath(e){return this.resourcePath=e,this}build(t,n){const a=[],r={};this.textureLoader.setCrossOrigin(this.crossOrigin);for(let o=0;o<t.metadata.materialCount;o++){const s=t.materials[o],i={userData:{}};if(void 0!==s.name&&(i.name=s.name),i.color=(new e.Color).fromArray(s.diffuse),i.opacity=s.diffuse[3],i.emissive=(new e.Color).fromArray(s.ambient),i.transparent=1!==i.opacity,i.skinning=n.bones.length>0,i.morphTargets=n.morphTargets.length>0,i.fog=!0,i.blending=e.CustomBlending,i.blendSrc=e.SrcAlphaFactor,i.blendDst=e.OneMinusSrcAlphaFactor,i.blendSrcAlpha=e.SrcAlphaFactor,i.blendDstAlpha=e.DstAlphaFactor,"pmx"===t.metadata.format&&1==(1&s.flag)?i.side=e.DoubleSide:i.side=1===i.opacity?e.FrontSide:e.DoubleSide,"pmd"===t.metadata.format){if(s.fileName){const t=s.fileName.split("*");if(i.map=this._loadTexture(t[0],r),t.length>1){const n=t[1].slice(-4).toLowerCase();i.envMap=this._loadTexture(t[1],r),i.combine=".sph"===n?e.MultiplyOperation:e.AddOperation}}const n=-1===s.toonIndex?"toon00.bmp":t.toonTextures[s.toonIndex].fileName;i.gradientMap=this._loadTexture(n,r,{isToonTexture:!0,isDefaultToonTexture:this._isDefaultToonTexture(n)}),i.userData.outlineParameters={thickness:1===s.edgeFlag?.003:0,color:[0,0,0],alpha:1,visible:1===s.edgeFlag}}else{let n,a;-1!==s.textureIndex&&(i.map=this._loadTexture(t.textures[s.textureIndex],r)),-1===s.envTextureIndex||1!==s.envFlag&&2!=s.envFlag||(i.envMap=this._loadTexture(t.textures[s.envTextureIndex],r),i.combine=1===s.envFlag?e.MultiplyOperation:e.AddOperation),-1===s.toonIndex||0!==s.toonFlag?(n="toon"+("0"+(s.toonIndex+1)).slice(-2)+".bmp",a=!0):(n=t.textures[s.toonIndex],a=!1),i.gradientMap=this._loadTexture(n,r,{isToonTexture:!0,isDefaultToonTexture:a}),i.userData.outlineParameters={thickness:s.edgeSize/300,color:s.edgeColor.slice(0,3),alpha:s.edgeColor[3],visible:0!=(16&s.flag)&&s.edgeSize>0}}void 0!==i.map&&(i.transparent||this._checkImageTransparency(i.map,n,o),i.emissive.multiplyScalar(.2)),a.push(new e.MeshToonMaterial(i))}if("pmx"===t.metadata.format){function o(e,t){for(let n=0,a=e.length;n<a;n++){const a=e[n];if(-1===a.index)continue;const r=t[a.index];r.opacity!==a.diffuse[3]&&(r.transparent=!0)}}for(let e=0,n=t.morphs.length;e<n;e++){const n=t.morphs[e],r=n.elements;if(0===n.type)for(let e=0,n=r.length;e<n;e++){const n=t.morphs[r[e].index];8===n.type&&o(n.elements,a)}else 8===n.type&&o(r,a)}}return a}_getTGALoader(){if(null===this.tgaLoader){if(void 0===t.TGALoader)throw new Error("THREE.MMDLoader: Import TGALoader");this.tgaLoader=new t.TGALoader(this.manager)}return this.tgaLoader}_isDefaultToonTexture(e){return 10===e.length&&/toon(10|0[0-9])\.bmp/.test(e)}_loadTexture(t,n,a,o,s){const i=this;let A;if(!0===(a=a||{}).isDefaultToonTexture){let e;try{e=parseInt(t.match(/toon([0-9]{2})\.bmp$/)[1])}catch(n){console.warn("THREE.MMDLoader: "+t+" seems like a not right default texture path. Using toon00.bmp instead."),e=0}A=r[e]}else A=this.resourcePath+t;if(void 0!==n[A])return n[A];let l=this.manager.getHandler(A);null===l&&(l=".tga"===t.slice(-4).toLowerCase()?this._getTGALoader():this.textureLoader);const h=l.load(A,(function(t){!0===a.isToonTexture&&(t.image=i._getRotatedImage(t.image),t.magFilter=e.NearestFilter,t.minFilter=e.NearestFilter),t.flipY=!1,t.wrapS=e.RepeatWrapping,t.wrapT=e.RepeatWrapping;for(let e=0;e<h.readyCallbacks.length;e++)h.readyCallbacks[e](h);delete h.readyCallbacks}),o,s);return h.readyCallbacks=[],n[A]=h,h}_getRotatedImage(e){const t=document.createElement("canvas"),n=t.getContext("2d"),a=e.width,r=e.height;return t.width=a,t.height=r,n.clearRect(0,0,a,r),n.translate(a/2,r/2),n.rotate(.5*Math.PI),n.translate(-a/2,-r/2),n.drawImage(e,0,0),n.getImageData(0,0,a,r)}_checkImageTransparency(e,t,n){e.readyCallbacks.push((function(a){function r(e,t){const n=e.width,a=e.height;let r=Math.round(t.x*n)%n,o=Math.round(t.y*a)%a;r<0&&(r+=n),o<0&&(o+=a);const s=o*n+r;return e.data[4*s+3]}const o=void 0!==a.image.data?a.image:function(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");return n.drawImage(e,0,0),n.getImageData(0,0,t.width,t.height)}(a.image),s=t.groups[n];(function(e,t,n){const a=e.width,o=e.height;if(e.data.length/(a*o)!=4)return!1;for(let a=0;a<n.length;a+=3){const o={x:0,y:0};for(let s=0;s<3;s++){const i=n[3*a+s],A={x:t[2*i+0],y:t[2*i+1]};if(r(e,A)<253)return!0;o.x+=A.x,o.y+=A.y}if(o.x/=3,o.y/=3,r(e,o)<253)return!0}return!1})(o,t.attributes.uv.array,t.index.array.slice(s.start,s.start+s.count))&&(e.transparent=!0)}))}}class A{build(t,n){const a=this.buildSkeletalAnimation(t,n).tracks,r=this.buildMorphAnimation(t,n).tracks;for(let e=0,t=r.length;e<t;e++)a.push(r[e]);return new e.AnimationClip("",-1,a)}buildSkeletalAnimation(t,n){function a(e,t,n){e.push(t[n+0]/127),e.push(t[n+8]/127),e.push(t[n+4]/127),e.push(t[n+12]/127)}const r=[],o={},s=n.skeleton.bones,i={};for(let e=0,t=s.length;e<t;e++)i[s[e].name]=!0;for(let e=0;e<t.metadata.motionCount;e++){const n=t.motions[e],a=n.boneName;void 0!==i[a]&&(o[a]=o[a]||[],o[a].push(n))}for(const t in o){const s=o[t];s.sort((function(e,t){return e.frameNum-t.frameNum}));const i=[],A=[],l=[],h=[],u=[],d=n.skeleton.getBoneByName(t).position.toArray();for(let e=0,t=s.length;e<t;e++){const t=s[e].frameNum/30,n=s[e].position,r=s[e].rotation,o=s[e].interpolation;i.push(t);for(let e=0;e<3;e++)A.push(d[e]+n[e]);for(let e=0;e<4;e++)l.push(r[e]);for(let e=0;e<3;e++)a(h,o,e);a(u,o,3)}const c=".bones["+t+"]";r.push(this._createTrack(c+".position",e.VectorKeyframeTrack,i,A,h)),r.push(this._createTrack(c+".quaternion",e.QuaternionKeyframeTrack,i,l,u))}return new e.AnimationClip("",-1,r)}buildMorphAnimation(t,n){const a=[],r={},o=n.morphTargetDictionary;for(let e=0;e<t.metadata.morphCount;e++){const n=t.morphs[e],a=n.morphName;void 0!==o[a]&&(r[a]=r[a]||[],r[a].push(n))}for(const t in r){const n=r[t];n.sort((function(e,t){return e.frameNum-t.frameNum}));const s=[],i=[];for(let e=0,t=n.length;e<t;e++)s.push(n[e].frameNum/30),i.push(n[e].weight);a.push(new e.NumberKeyframeTrack(".morphTargetInfluences["+o[t]+"]",s,i))}return new e.AnimationClip("",-1,a)}buildCameraAnimation(t){function n(e,t){e.push(t.x),e.push(t.y),e.push(t.z)}function a(e,t,n){e.push(t[4*n+0]/127),e.push(t[4*n+1]/127),e.push(t[4*n+2]/127),e.push(t[4*n+3]/127)}const r=void 0===t.cameras?[]:t.cameras.slice();r.sort((function(e,t){return e.frameNum-t.frameNum}));const o=[],s=[],i=[],A=[],l=[],h=[],u=[],d=[],c=[],p=new e.Quaternion,m=new e.Euler,g=new e.Vector3,f=new e.Vector3;for(let e=0,t=r.length;e<t;e++){const t=r[e],B=t.frameNum/30,b=t.position,y=t.rotation,I=t.distance,w=t.fov,R=t.interpolation;o.push(B),g.set(0,0,-I),f.set(b[0],b[1],b[2]),m.set(-y[0],-y[1],-y[2]),p.setFromEuler(m),g.add(f),g.applyQuaternion(p),n(s,f),(C=i).push((x=p).x),C.push(x.y),C.push(x.z),C.push(x.w),n(A,g),l.push(w);for(let e=0;e<3;e++)a(h,R,e);a(u,R,3);for(let e=0;e<3;e++)a(d,R,4);a(c,R,5)}var C,x;const B=[];return B.push(this._createTrack("target.position",e.VectorKeyframeTrack,o,s,h)),B.push(this._createTrack(".quaternion",e.QuaternionKeyframeTrack,o,i,u)),B.push(this._createTrack(".position",e.VectorKeyframeTrack,o,A,d)),B.push(this._createTrack(".fov",e.NumberKeyframeTrack,o,l,c)),new e.AnimationClip("",-1,B)}_createTrack(e,t,n,a,r){if(n.length>2){n=n.slice(),a=a.slice(),r=r.slice();const e=a.length/n.length,t=r.length/n.length;let o=1;for(let s=2,i=n.length;s<i;s++){for(let t=0;t<e;t++)if(a[o*e+t]!==a[(o-1)*e+t]||a[o*e+t]!==a[s*e+t]){o++;break}if(s>o){n[o]=n[s];for(let t=0;t<e;t++)a[o*e+t]=a[s*e+t];for(let e=0;e<t;e++)r[o*t+e]=r[s*t+e]}}n.length=o+1,a.length=(o+1)*e,r.length=(o+1)*t}const o=new t(e,n,a);return o.createInterpolant=function(e){return new l(this.times,this.values,this.getValueSize(),e,new Float32Array(r))},o}}class l extends e.Interpolant{constructor(e,t,n,a,r){super(e,t,n,a),this.interpolationParams=r}interpolate_(t,n,a,r){const o=this.resultBuffer,s=this.sampleValues,i=this.valueSize,A=this.interpolationParams,l=t*i,h=l-i,u=r-n<.05?0:(a-n)/(r-n);if(4===i){const n=A[4*t+0],a=A[4*t+1],r=A[4*t+2],i=A[4*t+3],d=this._calculate(n,a,r,i,u);e.Quaternion.slerpFlat(o,0,s,h,s,l,d)}else if(3===i)for(let e=0;e!==i;++e){const n=A[12*t+4*e+0],a=A[12*t+4*e+1],r=A[12*t+4*e+2],i=A[12*t+4*e+3],d=this._calculate(n,a,r,i,u);o[e]=s[h+e]*(1-d)+s[l+e]*d}else{const e=A[4*t+0],n=A[4*t+1],a=A[4*t+2],r=A[4*t+3],i=this._calculate(e,n,a,r,u);o[0]=s[h]*(1-i)+s[l]*i}return o}_calculate(e,t,n,a,r){let o=.5,s=o,i=1-s;const A=Math;let l,h,u;for(let n=0;n<15;n++){l=3*i*i*s,h=3*i*s*s,u=s*s*s;const n=l*e+h*t+u-r;if(A.abs(n)<1e-5)break;o/=2,s+=n<0?o:-o,i=1-s}return l*n+h*a+u}}exports.MMDLoader=a;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e)}load(t,s,r,a){const i=this,o=""===this.path?e.LoaderUtils.extractUrlBase(t):this.path,n=new e.FileLoader(this.manager);n.setPath(this.path),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(t,(function(e){try{s(i.parse(e,o))}catch(e){a?a(e):console.error(e),i.manager.itemError(t)}}),r,a)}setMaterialOptions(e){return this.materialOptions=e,this}parse(e,t){const r=e.split("\n");let a={};const i=/\s+/,o={};for(let e=0;e<r.length;e++){let t=r[e];if(t=t.trim(),0===t.length||"#"===t.charAt(0))continue;const s=t.indexOf(" ");let n=s>=0?t.substring(0,s):t;n=n.toLowerCase();let l=s>=0?t.substring(s+1):"";if(l=l.trim(),"newmtl"===n)a={name:l},o[l]=a;else if("ka"===n||"kd"===n||"ks"===n||"ke"===n){const e=l.split(i,3);a[n]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else a[n]=l}const n=new s(this.resourcePath||t,this.materialOptions);return n.setCrossOrigin(this.crossOrigin),n.setManager(this.manager),n.setMaterials(o),n}}class s{constructor(t="",s={}){this.baseUrl=t,this.options=s,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:e.FrontSide,this.wrap=void 0!==this.options.wrap?this.options.wrap:e.RepeatWrapping}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;const t={};for(const s in e){const r=e[s],a={};t[s]=a;for(const e in r){let t=!0,s=r[e];const i=e.toLowerCase();switch(i){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(s=[s[0]/255,s[1]/255,s[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===s[0]&&0===s[1]&&0===s[2]&&(t=!1)}t&&(a[i]=s)}}return t}preload(){for(const e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(const t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(t){const s=this,r=this.materialsInfo[t],a={name:t,side:this.side};function i(e,t){if(a[e])return;const r=s.getTextureParams(t,a),i=s.loadTexture((o=s.baseUrl,"string"!=typeof(n=r.url)||""===n?"":/^https?:\/\//i.test(n)?n:o+n));var o,n;i.repeat.copy(r.scale),i.offset.copy(r.offset),i.wrapS=s.wrap,i.wrapT=s.wrap,a[e]=i}for(const t in r){const s=r[t];let o;if(""!==s)switch(t.toLowerCase()){case"kd":a.color=(new e.Color).fromArray(s);break;case"ks":a.specular=(new e.Color).fromArray(s);break;case"ke":a.emissive=(new e.Color).fromArray(s);break;case"map_kd":i("map",s);break;case"map_ks":i("specularMap",s);break;case"map_ke":i("emissiveMap",s);break;case"norm":i("normalMap",s);break;case"map_bump":case"bump":i("bumpMap",s);break;case"map_d":i("alphaMap",s),a.transparent=!0;break;case"ns":a.shininess=parseFloat(s);break;case"d":o=parseFloat(s),o<1&&(a.opacity=o,a.transparent=!0);break;case"tr":o=parseFloat(s),this.options&&this.options.invertTrProperty&&(o=1-o),o>0&&(a.opacity=1-o,a.transparent=!0)}}return this.materials[t]=new e.MeshPhongMaterial(a),this.materials[t]}getTextureParams(t,s){const r={scale:new e.Vector2(1,1),offset:new e.Vector2(0,0)},a=t.split(/\s+/);let i;return i=a.indexOf("-bm"),i>=0&&(s.bumpScale=parseFloat(a[i+1]),a.splice(i,2)),i=a.indexOf("-s"),i>=0&&(r.scale.set(parseFloat(a[i+1]),parseFloat(a[i+2])),a.splice(i,4)),i=a.indexOf("-o"),i>=0&&(r.offset.set(parseFloat(a[i+1]),parseFloat(a[i+2])),a.splice(i,4)),r.url=a.join(" ").trim(),r}loadTexture(t,s,r,a,i){const o=void 0!==this.manager?this.manager:e.DefaultLoadingManager;let n=o.getHandler(t);null===n&&(n=new e.TextureLoader(o)),n.setCrossOrigin&&n.setCrossOrigin(this.crossOrigin);const l=n.load(t,r,a,i);return void 0!==s&&(l.mapping=s),l}}exports.MTLLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("fflate"),r=require("../misc/Volume.cjs.js");require("../misc/VolumeSlice.cjs.js");class n extends e.Loader{constructor(e){super(e)}load(t,r,n,s){const a=this,i=new e.FileLoader(a.manager);i.setPath(a.path),i.setResponseType("arraybuffer"),i.setRequestHeader(a.requestHeader),i.setWithCredentials(a.withCredentials),i.load(t,(function(e){try{r(a.parse(e))}catch(e){s?s(e):console.error(e),a.manager.itemError(t)}}),n,s)}parse(n){let a=n,i=0;const o=new Int8Array(new Int16Array([1]).buffer)[0]>0,c={};const u=function(e,t){null==t&&(t=1);let r=1,n=Uint8Array;switch(e){case"uchar":break;case"schar":n=Int8Array;break;case"ushort":n=Uint16Array,r=2;break;case"sshort":n=Int16Array,r=2;break;case"uint":n=Uint32Array,r=4;break;case"sint":n=Int32Array,r=4;break;case"float":n=Float32Array,r=4;break;case"complex":case"double":n=Float64Array,r=8}let s=new n(a.slice(i,i+=t*r));return true!=o&&(s=function(e,t){const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let n=0;n<e.byteLength;n+=t)for(let e=n+t-1,s=n;e>s;e--,s++){const t=r[s];r[s]=r[e],r[e]=t}return e}(s,r)),1==t?s[0]:s}("uchar",n.byteLength),l=u.length;let h,p=null,d=0;for(h=1;h<l;h++)if(10==u[h-1]&&10==u[h]){p=this.parseChars(u,0,h-2),d=h+1;break}if(function(t){let r,n,a,i,o,u,l,h;const p=t.split(/\r?\n/);for(l=0,h=p.length;l<h;l++)o=p[l],o.match(/NRRD\d+/)?c.isNrrd=!0:o.match(/^#/)||(u=o.match(/(.*):(.*)/))&&(n=u[1].trim(),r=u[2].trim(),a=s[n],a?a.call(c,r):c[n]=r);if(!c.isNrrd)throw new Error("Not an NRRD file");if("bz2"===c.encoding||"bzip2"===c.encoding)throw new Error("Bzip is not supported");if(!c.vectors&&(c.vectors=[new e.Vector3(1,0,0),new e.Vector3(0,1,0),new e.Vector3(0,0,1)],c.spacings))for(i=0;i<=2;i++)isNaN(c.spacings[i])||c.vectors[i].multiplyScalar(c.spacings[i])}(p),a=u.subarray(d),"gz"===c.encoding.substring(0,2))a=t.gunzipSync(new Uint8Array(a));else if("ascii"===c.encoding||"text"===c.encoding||"txt"===c.encoding||"hex"===c.encoding)a=function(e,t,r){let n,s="";t=t||0,r=r||e.length;const a=c.sizes.reduce((function(e,t){return e*t}),1);let i=10;"hex"===c.encoding&&(i=16);const o=new c.__array(a);let u=0,l=parseInt;c.__array!==Float32Array&&c.__array!==Float64Array||(l=parseFloat);for(let a=t;a<r;a++)n=e[a],(n<9||n>13)&&32!==n?s+=String.fromCharCode(n):(""!==s&&(o[u]=l(s,i),u++),s="");return""!==s&&(o[u]=l(s,i),u++),o}(a);else if("raw"===c.encoding){const e=new Uint8Array(a.length);for(let t=0;t<a.length;t++)e[t]=a[t];a=e}a=a.buffer;const f=new r.Volume;f.header=c,f.data=new c.__array(a);const g=f.computeMinMax(),y=g[0],w=g[1];f.windowLow=y,f.windowHigh=w,f.dimensions=[c.sizes[0],c.sizes[1],c.sizes[2]],f.xLength=f.dimensions[0],f.yLength=f.dimensions[1],f.zLength=f.dimensions[2];const _=new e.Vector3(c.vectors[0][0],c.vectors[0][1],c.vectors[0][2]).length(),b=new e.Vector3(c.vectors[1][0],c.vectors[1][1],c.vectors[1][2]).length(),m=new e.Vector3(c.vectors[2][0],c.vectors[2][1],c.vectors[2][2]).length();f.spacing=[_,b,m],f.matrix=new e.Matrix4;let A=1,v=1;if("left-posterior-superior"==c.space?(A=-1,v=-1):"left-anterior-superior"===c.space&&(A=-1),c.vectors){const e=c.vectors;f.matrix.set(A*e[0][0],A*e[1][0],A*e[2][0],0,v*e[0][1],v*e[1][1],v*e[2][1],0,1*e[0][2],1*e[1][2],1*e[2][2],0,0,0,0,1)}else f.matrix.set(A,0,0,0,0,v,0,0,0,0,1,0,0,0,0,1);return f.inverseMatrix=new e.Matrix4,f.inverseMatrix.copy(f.matrix).invert(),f.RASDimensions=new e.Vector3(f.xLength,f.yLength,f.zLength).applyMatrix4(f.matrix).round().toArray().map(Math.abs),f.lowerThreshold===-1/0&&(f.lowerThreshold=y),f.upperThreshold===1/0&&(f.upperThreshold=w),f}parseChars(e,t,r){void 0===t&&(t=0),void 0===r&&(r=e.length);let n="",s=0;for(s=t;s<r;++s)n+=String.fromCharCode(e[s]);return n}}const s={type:function(e){switch(e){case"uchar":case"unsigned char":case"uint8":case"uint8_t":this.__array=Uint8Array;break;case"signed char":case"int8":case"int8_t":this.__array=Int8Array;break;case"short":case"short int":case"signed short":case"signed short int":case"int16":case"int16_t":this.__array=Int16Array;break;case"ushort":case"unsigned short":case"unsigned short int":case"uint16":case"uint16_t":this.__array=Uint16Array;break;case"int":case"signed int":case"int32":case"int32_t":this.__array=Int32Array;break;case"uint":case"unsigned int":case"uint32":case"uint32_t":this.__array=Uint32Array;break;case"float":this.__array=Float32Array;break;case"double":this.__array=Float64Array;break;default:throw new Error("Unsupported NRRD data type: "+e)}return this.type=e},endian:function(e){return this.endian=e},encoding:function(e){return this.encoding=e},dimension:function(e){return this.dim=parseInt(e,10)},sizes:function(e){let t;return this.sizes=function(){const r=e.split(/\s+/),n=[];for(let e=0,s=r.length;e<s;e++)t=r[e],n.push(parseInt(t,10));return n}()},space:function(e){return this.space=e},"space origin":function(e){return this.space_origin=e.split("(")[1].split(")")[0].split(",")},"space directions":function(e){let t,r;const n=e.match(/\(.*?\)/g);return this.vectors=function(){const e=[];for(let s=0,a=n.length;s<a;s++)r=n[s],e.push(function(){const e=r.slice(1,-1).split(/,/),n=[];for(let r=0,s=e.length;r<s;r++)t=e[r],n.push(parseFloat(t));return n}());return e}()},spacings:function(e){let t;const r=e.split(/\s+/);return this.spacings=function(){const e=[];for(let n=0,s=r.length;n<s;n++)t=r[n],e.push(parseFloat(t));return e}()}};exports.NRRDLoader=n;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),s=require("../Nodes-9aa16d74.js");require("../nodes/core/ArrayUniformNode.cjs.js"),require("../nodes/core/UniformNode.cjs.js"),require("../nodes/core/InputNode.cjs.js"),require("../nodes/core/Node.cjs.js"),require("../nodes/core/constants.cjs.js"),require("../nodes/core/NodeUtils.cjs.js"),require("../nodes/core/AttributeNode.cjs.js"),require("../nodes/core/VaryNode.cjs.js"),require("../nodes/core/BypassNode.cjs.js"),require("../nodes/core/CodeNode.cjs.js"),require("../nodes/core/ConstNode.cjs.js"),require("../nodes/core/ContextNode.cjs.js"),require("../nodes/core/ExpressionNode.cjs.js"),require("../nodes/core/TempNode.cjs.js"),require("../nodes/core/FunctionCallNode.cjs.js"),require("../nodes/core/FunctionNode.cjs.js"),require("../nodes/core/NodeAttribute.cjs.js"),require("../nodes/core/NodeBuilder.cjs.js"),require("../nodes/core/NodeUniform.cjs.js"),require("../nodes/core/NodeVary.cjs.js"),require("../nodes/core/NodeVar.cjs.js"),require("../nodes/core/NodeCode.cjs.js"),require("../nodes/core/NodeKeywords.cjs.js"),require("../nodes/core/NodeFrame.cjs.js"),require("../nodes/core/NodeFunctionInput.cjs.js"),require("../nodes/core/PropertyNode.cjs.js"),require("../nodes/core/VarNode.cjs.js"),require("../nodes/accessors/BufferNode.cjs.js"),require("../nodes/accessors/CameraNode.cjs.js"),require("@babel/runtime/helpers/defineProperty"),require("../nodes/accessors/Object3DNode.cjs.js"),require("../nodes/accessors/CubeTextureNode.cjs.js"),require("../nodes/accessors/TextureNode.cjs.js"),require("../nodes/accessors/UVNode.cjs.js"),require("../nodes/accessors/ReflectNode.cjs.js"),require("../nodes/ShaderNode.cjs.js"),require("../nodes/accessors/PositionNode.cjs.js"),require("../nodes/accessors/ModelNode.cjs.js"),require("../nodes/math/MathNode.cjs.js"),require("../nodes/utils/JoinNode.cjs.js"),require("../nodes/utils/SplitNode.cjs.js"),require("../nodes/math/OperatorNode.cjs.js"),require("../nodes/accessors/NormalNode.cjs.js"),require("../nodes/math/CondNode.cjs.js"),require("../nodes/utils/ArrayElementNode.cjs.js"),require("../nodes/utils/ConvertNode.cjs.js"),require("../nodes/accessors/MaterialNode.cjs.js"),require("../nodes/accessors/MaterialReferenceNode.cjs.js"),require("../nodes/accessors/ReferenceNode.cjs.js"),require("../nodes/accessors/ModelViewProjectionNode.cjs.js"),require("../nodes/accessors/PointUVNode.cjs.js"),require("../nodes/accessors/SkinningNode.cjs.js"),require("../nodes/display/ColorSpaceNode.cjs.js"),require("../nodes/display/NormalMapNode.cjs.js"),require("../nodes/lights/LightContextNode.cjs.js"),require("../nodes/functions/BSDFs.cjs.js"),require("../nodes/lights/LightNode.cjs.js"),require("../nodes/lights/LightsNode.cjs.js"),require("../nodes/utils/SpriteSheetUVNode.cjs.js"),require("../nodes/utils/MatcapUVNode.cjs.js"),require("../nodes/utils/OscNode.cjs.js"),require("../nodes/utils/TimerNode.cjs.js"),require("../nodes/loaders/NodeMaterialLoader.cjs.js"),require("../nodes/procedural/CheckerNode.cjs.js"),require("../nodes/fog/FogNode.cjs.js"),require("../nodes/fog/FogRangeNode.cjs.js"),require("../nodes/materials/LineBasicNodeMaterial.cjs.js"),require("../nodes/materials/NodeMaterial.cjs.js"),require("../nodes/materials/MeshBasicNodeMaterial.cjs.js"),require("../nodes/materials/MeshStandardNodeMaterial.cjs.js"),require("../nodes/materials/PointsNodeMaterial.cjs.js");class r extends e.Loader{constructor(e,s={}){super(e),this.nodes={},this.materials={},this.passes={},this.names={},this.library=s}load(s,r,o,i){const t=this,d=new e.FileLoader(t.manager);return d.setPath(t.path),d.load(s,(function(e){r(t.parse(JSON.parse(e)))}),o,i),this}getObjectByName(e){return this.names[e]}getObjectById(e){return this.library[e]||this.nodes[e]||this.materials[e]||this.passes[e]||this.names[e]}getNode(e){const s=this.getObjectById(e);return s||console.warn('Node "'+e+'" not found.'),s}resolve(e){switch(typeof e){case"boolean":case"number":return e;case"string":return/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.test(e)||this.library[e]?this.getNode(e):e;default:if(Array.isArray(e))for(let s=0;s<e.length;s++)e[s]=this.resolve(e[s]);else for(const s in e)"uuid"!==s&&(e[s]=this.resolve(e[s]))}return e}declare(e){let r,o,i;for(r in e.nodes)o=e.nodes[r],i=new s.Nodes[o.nodeType+"Node"],o.name&&(i.name=o.name,this.names[i.name]=i),this.nodes[r]=i;for(r in e.materials)o=e.materials[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.materials[r]=i;for(r in e.passes)o=e.passes[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.passes[r]=i;return e.material&&(this.material=this.materials[e.material]),e.pass&&(this.pass=this.passes[e.pass]),e}parse(e){let s;for(s in(e=this.resolve(this.declare(e))).nodes)this.nodes[s].copy(e.nodes[s]);for(s in e.materials)this.materials[s].copy(e.materials[s]);for(s in e.passes)this.passes[s].copy(e.passes[s]);return this.material||this.pass||this}}exports.NodeMaterialLoader=r,exports.NodeMaterialLoaderUtils=class{static replaceUUIDObject(e,s,r,o){if(o=void 0===o||o,"object"==typeof s&&(s=s.uuid),"object"==typeof e){const i=Object.keys(e);for(let t=0;t<i.length;t++){const d=i[t];o&&(e[d]=this.replaceUUIDObject(e[d],s,r)),d===s&&(e[s]=e[d],delete e[d])}}return e===s?r:e}static replaceUUID(e,s,r){return this.replaceUUIDObject(e,s,r,!1),this.replaceUUIDObject(e.nodes,s,r),this.replaceUUIDObject(e.materials,s,r),this.replaceUUIDObject(e.passes,s,r),this.replaceUUIDObject(e.library,s,r,!1),e}};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");const e=/^[og]\s*(.+)?/,s=/^mtllib /,o=/^usemtl /,i=/^usemap /,r=new t.Vector3,n=new t.Vector3,a=new t.Vector3,l=new t.Vector3,c=new t.Vector3;function h(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(t,e){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=t,void(this.object.fromDeclaration=!1!==e);const s=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:t||"",fromDeclaration:!1!==e,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(t,e){const s=this._finalize(!1);s&&(s.inherited||s.groupCount<=0)&&this.materials.splice(s.index,1);const o={index:this.materials.length,name:t||"",mtllib:Array.isArray(e)&&e.length>0?e[e.length-1]:"",smooth:void 0!==s?s.smooth:this.smooth,groupStart:void 0!==s?s.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(t){const e={index:"number"==typeof t?t:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return e.clone=this.clone.bind(e),e}};return this.materials.push(o),o},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(t){const e=this.currentMaterial();if(e&&-1===e.groupEnd&&(e.groupEnd=this.geometry.vertices.length/3,e.groupCount=e.groupEnd-e.groupStart,e.inherited=!1),t&&this.materials.length>1)for(let t=this.materials.length-1;t>=0;t--)this.materials[t].groupCount<=0&&this.materials.splice(t,1);return t&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),e}},s&&s.name&&"function"==typeof s.clone){const t=s.clone(0);t.inherited=!0,this.object.materials.push(t)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(t,e){const s=parseInt(t,10);return 3*(s>=0?s-1:s+e/3)},parseNormalIndex:function(t,e){const s=parseInt(t,10);return 3*(s>=0?s-1:s+e/3)},parseUVIndex:function(t,e){const s=parseInt(t,10);return 2*(s>=0?s-1:s+e/2)},addVertex:function(t,e,s){const o=this.vertices,i=this.object.geometry.vertices;i.push(o[t+0],o[t+1],o[t+2]),i.push(o[e+0],o[e+1],o[e+2]),i.push(o[s+0],o[s+1],o[s+2])},addVertexPoint:function(t){const e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])},addVertexLine:function(t){const e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])},addNormal:function(t,e,s){const o=this.normals,i=this.object.geometry.normals;i.push(o[t+0],o[t+1],o[t+2]),i.push(o[e+0],o[e+1],o[e+2]),i.push(o[s+0],o[s+1],o[s+2])},addFaceNormal:function(t,e,s){const o=this.vertices,i=this.object.geometry.normals;r.fromArray(o,t),n.fromArray(o,e),a.fromArray(o,s),c.subVectors(a,n),l.subVectors(r,n),c.cross(l),c.normalize(),i.push(c.x,c.y,c.z),i.push(c.x,c.y,c.z),i.push(c.x,c.y,c.z)},addColor:function(t,e,s){const o=this.colors,i=this.object.geometry.colors;void 0!==o[t]&&i.push(o[t+0],o[t+1],o[t+2]),void 0!==o[e]&&i.push(o[e+0],o[e+1],o[e+2]),void 0!==o[s]&&i.push(o[s+0],o[s+1],o[s+2])},addUV:function(t,e,s){const o=this.uvs,i=this.object.geometry.uvs;i.push(o[t+0],o[t+1]),i.push(o[e+0],o[e+1]),i.push(o[s+0],o[s+1])},addDefaultUV:function(){const t=this.object.geometry.uvs;t.push(0,0),t.push(0,0),t.push(0,0)},addUVLine:function(t){const e=this.uvs;this.object.geometry.uvs.push(e[t+0],e[t+1])},addFace:function(t,e,s,o,i,r,n,a,l){const c=this.vertices.length;let h=this.parseVertexIndex(t,c),u=this.parseVertexIndex(e,c),p=this.parseVertexIndex(s,c);if(this.addVertex(h,u,p),this.addColor(h,u,p),void 0!==n&&""!==n){const t=this.normals.length;h=this.parseNormalIndex(n,t),u=this.parseNormalIndex(a,t),p=this.parseNormalIndex(l,t),this.addNormal(h,u,p)}else this.addFaceNormal(h,u,p);if(void 0!==o&&""!==o){const t=this.uvs.length;h=this.parseUVIndex(o,t),u=this.parseUVIndex(i,t),p=this.parseUVIndex(r,t),this.addUV(h,u,p),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(t){this.object.geometry.type="Points";const e=this.vertices.length;for(let s=0,o=t.length;s<o;s++){const o=this.parseVertexIndex(t[s],e);this.addVertexPoint(o),this.addColor(o)}},addLineGeometry:function(t,e){this.object.geometry.type="Line";const s=this.vertices.length,o=this.uvs.length;for(let e=0,o=t.length;e<o;e++)this.addVertexLine(this.parseVertexIndex(t[e],s));for(let t=0,s=e.length;t<s;t++)this.addUVLine(this.parseUVIndex(e[t],o))}};return t.startObject("",!1),t}class u extends t.Loader{constructor(t){super(t),this.materials=null}load(e,s,o,i){const r=this,n=new t.FileLoader(this.manager);n.setPath(this.path),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(e,(function(t){try{s(r.parse(t))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}}),o,i)}setMaterials(t){return this.materials=t,this}parse(r){const n=new h;-1!==r.indexOf("\r\n")&&(r=r.replace(/\r\n/g,"\n")),-1!==r.indexOf("\\\n")&&(r=r.replace(/\\\n/g,""));const a=r.split("\n");let l="",c="",u=0,p=[];const d="function"==typeof"".trimLeft;for(let t=0,r=a.length;t<r;t++)if(l=a[t],l=d?l.trimLeft():l.trim(),u=l.length,0!==u&&(c=l.charAt(0),"#"!==c))if("v"===c){const t=l.split(/\s+/);switch(t[0]){case"v":n.vertices.push(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])),t.length>=7?n.colors.push(parseFloat(t[4]),parseFloat(t[5]),parseFloat(t[6])):n.colors.push(void 0,void 0,void 0);break;case"vn":n.normals.push(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3]));break;case"vt":n.uvs.push(parseFloat(t[1]),parseFloat(t[2]))}}else if("f"===c){const t=l.substr(1).trim().split(/\s+/),e=[];for(let s=0,o=t.length;s<o;s++){const o=t[s];if(o.length>0){const t=o.split("/");e.push(t)}}const s=e[0];for(let t=1,o=e.length-1;t<o;t++){const o=e[t],i=e[t+1];n.addFace(s[0],o[0],i[0],s[1],o[1],i[1],s[2],o[2],i[2])}}else if("l"===c){const t=l.substring(1).trim().split(" ");let e=[];const s=[];if(-1===l.indexOf("/"))e=t;else for(let o=0,i=t.length;o<i;o++){const i=t[o].split("/");""!==i[0]&&e.push(i[0]),""!==i[1]&&s.push(i[1])}n.addLineGeometry(e,s)}else if("p"===c){const t=l.substr(1).trim().split(" ");n.addPointGeometry(t)}else if(null!==(p=e.exec(l))){const t=(" "+p[0].substr(1).trim()).substr(1);n.startObject(t)}else if(o.test(l))n.object.startMaterial(l.substring(7).trim(),n.materialLibraries);else if(s.test(l))n.materialLibraries.push(l.substring(7).trim());else if(i.test(l))console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');else if("s"===c){if(p=l.split(" "),p.length>1){const t=p[1].trim().toLowerCase();n.object.smooth="0"!==t&&"off"!==t}else n.object.smooth=!0;const t=n.object.currentMaterial();t&&(t.smooth=n.object.smooth)}else{if("\0"===l)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+l+'"')}n.finalize();const m=new t.Group;m.materialLibraries=[].concat(n.materialLibraries);if(!0===!(1===n.objects.length&&0===n.objects[0].geometry.vertices.length))for(let e=0,s=n.objects.length;e<s;e++){const s=n.objects[e],o=s.geometry,i=s.materials,r="Line"===o.type,a="Points"===o.type;let l=!1;if(0===o.vertices.length)continue;const c=new t.BufferGeometry;c.setAttribute("position",new t.Float32BufferAttribute(o.vertices,3)),o.normals.length>0&&c.setAttribute("normal",new t.Float32BufferAttribute(o.normals,3)),o.colors.length>0&&(l=!0,c.setAttribute("color",new t.Float32BufferAttribute(o.colors,3))),!0===o.hasUVIndices&&c.setAttribute("uv",new t.Float32BufferAttribute(o.uvs,2));const h=[];for(let e=0,s=i.length;e<s;e++){const s=i[e],o=s.name+"_"+s.smooth+"_"+l;let c=n.materials[o];if(null!==this.materials)if(c=this.materials.create(s.name),!r||!c||c instanceof t.LineBasicMaterial){if(a&&c&&!(c instanceof t.PointsMaterial)){const e=new t.PointsMaterial({size:10,sizeAttenuation:!1});t.Material.prototype.copy.call(e,c),e.color.copy(c.color),e.map=c.map,c=e}}else{const e=new t.LineBasicMaterial;t.Material.prototype.copy.call(e,c),e.color.copy(c.color),c=e}void 0===c&&(c=r?new t.LineBasicMaterial:a?new t.PointsMaterial({size:1,sizeAttenuation:!1}):new t.MeshPhongMaterial,c.name=s.name,c.flatShading=!s.smooth,c.vertexColors=l,n.materials[o]=c),h.push(c)}let u;if(h.length>1){for(let t=0,e=i.length;t<e;t++){const e=i[t];c.addGroup(e.groupStart,e.groupCount,t)}u=r?new t.LineSegments(c,h):a?new t.Points(c,h):new t.Mesh(c,h)}else u=r?new t.LineSegments(c,h[0]):a?new t.Points(c,h[0]):new t.Mesh(c,h[0]);u.name=s.name,m.add(u)}else if(n.vertices.length>0){const e=new t.PointsMaterial({size:1,sizeAttenuation:!1}),s=new t.BufferGeometry;s.setAttribute("position",new t.Float32BufferAttribute(n.vertices,3)),n.colors.length>0&&void 0!==n.colors[0]&&(s.setAttribute("color",new t.Float32BufferAttribute(n.colors,3)),e.vertexColors=!0);const o=new t.Points(s,e);m.add(o)}return m}}exports.OBJLoader=u;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e),this.littleEndian=!0}load(t,i,s,n){const r=this,o=new e.FileLoader(r.manager);o.setPath(r.path),o.setResponseType("arraybuffer"),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(e){try{i(r.parse(e,t))}catch(e){n?n(e):console.error(e),r.manager.itemError(t)}}),s,n)}parse(t,i){const s=e.LoaderUtils.decodeText(new Uint8Array(t)),n=function(e){const t={},i=e.search(/[\r\n]DATA\s(\S*)\s/i),s=/[\r\n]DATA\s(\S*)\s/i.exec(e.substr(i-1));if(t.data=s[1],t.headerLen=s[0].length+i,t.str=e.substr(0,t.headerLen),t.str=t.str.replace(/\#.*/gi,""),t.version=/VERSION (.*)/i.exec(t.str),t.fields=/FIELDS (.*)/i.exec(t.str),t.size=/SIZE (.*)/i.exec(t.str),t.type=/TYPE (.*)/i.exec(t.str),t.count=/COUNT (.*)/i.exec(t.str),t.width=/WIDTH (.*)/i.exec(t.str),t.height=/HEIGHT (.*)/i.exec(t.str),t.viewpoint=/VIEWPOINT (.*)/i.exec(t.str),t.points=/POINTS (.*)/i.exec(t.str),null!==t.version&&(t.version=parseFloat(t.version[1])),null!==t.fields&&(t.fields=t.fields[1].split(" ")),null!==t.type&&(t.type=t.type[1].split(" ")),null!==t.width&&(t.width=parseInt(t.width[1])),null!==t.height&&(t.height=parseInt(t.height[1])),null!==t.viewpoint&&(t.viewpoint=t.viewpoint[1]),null!==t.points&&(t.points=parseInt(t.points[1],10)),null===t.points&&(t.points=t.width*t.height),null!==t.size&&(t.size=t.size[1].split(" ").map((function(e){return parseInt(e,10)}))),null!==t.count)t.count=t.count[1].split(" ").map((function(e){return parseInt(e,10)}));else{t.count=[];for(let e=0,i=t.fields.length;e<i;e++)t.count.push(1)}t.offset={};let n=0;for(let e=0,i=t.fields.length;e<i;e++)"ascii"===t.data?t.offset[t.fields[e]]=e:(t.offset[t.fields[e]]=n,n+=t.size[e]*t.count[e]);return t.rowSize=n,t}(s),r=[],o=[],l=[];if("ascii"===n.data){const e=n.offset,t=s.substr(n.headerLen).split("\n");for(let i=0,s=t.length;i<s;i++){if(""===t[i])continue;const s=t[i].split(" ");if(void 0!==e.x&&(r.push(parseFloat(s[e.x])),r.push(parseFloat(s[e.y])),r.push(parseFloat(s[e.z]))),void 0!==e.rgb){const t=parseFloat(s[e.rgb]),i=t>>16&255,n=t>>8&255,r=t>>0&255;l.push(i/255,n/255,r/255)}void 0!==e.normal_x&&(o.push(parseFloat(s[e.normal_x])),o.push(parseFloat(s[e.normal_y])),o.push(parseFloat(s[e.normal_z])))}}if("binary_compressed"===n.data){const e=new Uint32Array(t.slice(n.headerLen,n.headerLen+8)),i=e[0],s=e[1],a=function(e,t){const i=e.length,s=new Uint8Array(t);let n,r,o,l=0,a=0;do{if(n=e[l++],n<32){if(n++,a+n>t)throw new Error("Output buffer is not large enough");if(l+n>i)throw new Error("Invalid compressed data");do{s[a++]=e[l++]}while(--n)}else{if(r=n>>5,o=a-((31&n)<<8)-1,l>=i)throw new Error("Invalid compressed data");if(7===r&&(r+=e[l++],l>=i))throw new Error("Invalid compressed data");if(o-=e[l++],a+r+2>t)throw new Error("Output buffer is not large enough");if(o<0)throw new Error("Invalid compressed data");if(o>=a)throw new Error("Invalid compressed data");do{s[a++]=s[o++]}while(2+--r)}}while(l<i);return s}(new Uint8Array(t,n.headerLen+8,i),s),p=new DataView(a.buffer),h=n.offset;for(let e=0;e<n.points;e++)void 0!==h.x&&(r.push(p.getFloat32(n.points*h.x+n.size[0]*e,this.littleEndian)),r.push(p.getFloat32(n.points*h.y+n.size[1]*e,this.littleEndian)),r.push(p.getFloat32(n.points*h.z+n.size[2]*e,this.littleEndian))),void 0!==h.rgb&&(l.push(p.getUint8(n.points*h.rgb+n.size[3]*e+2)/255),l.push(p.getUint8(n.points*h.rgb+n.size[3]*e+1)/255),l.push(p.getUint8(n.points*h.rgb+n.size[3]*e+0)/255)),void 0!==h.normal_x&&(o.push(p.getFloat32(n.points*h.normal_x+n.size[4]*e,this.littleEndian)),o.push(p.getFloat32(n.points*h.normal_y+n.size[5]*e,this.littleEndian)),o.push(p.getFloat32(n.points*h.normal_z+n.size[6]*e,this.littleEndian)))}if("binary"===n.data){const e=new DataView(t,n.headerLen),i=n.offset;for(let t=0,s=0;t<n.points;t++,s+=n.rowSize)void 0!==i.x&&(r.push(e.getFloat32(s+i.x,this.littleEndian)),r.push(e.getFloat32(s+i.y,this.littleEndian)),r.push(e.getFloat32(s+i.z,this.littleEndian))),void 0!==i.rgb&&(l.push(e.getUint8(s+i.rgb+2)/255),l.push(e.getUint8(s+i.rgb+1)/255),l.push(e.getUint8(s+i.rgb+0)/255)),void 0!==i.normal_x&&(o.push(e.getFloat32(s+i.normal_x,this.littleEndian)),o.push(e.getFloat32(s+i.normal_y,this.littleEndian)),o.push(e.getFloat32(s+i.normal_z,this.littleEndian)))}const a=new e.BufferGeometry;r.length>0&&a.setAttribute("position",new e.Float32BufferAttribute(r,3)),o.length>0&&a.setAttribute("normal",new e.Float32BufferAttribute(o,3)),l.length>0&&a.setAttribute("color",new e.Float32BufferAttribute(l,3)),a.computeBoundingSphere();const p=new e.PointsMaterial({size:.005});l.length>0?p.vertexColors=!0:p.color.setHex(16777215*Math.random());const h=new e.Points(a,p);let u=i.split("").reverse().join("");return u=/([^\/]*)/.exec(u),u=u[1].split("").reverse().join(""),h.name=u,h}}exports.PCDLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");class e extends t.Loader{constructor(t){super(t)}load(e,s,r,o){const n=this,u=new t.FileLoader(n.manager);u.setPath(n.path),u.setRequestHeader(n.requestHeader),u.setWithCredentials(n.withCredentials),u.load(e,(function(t){try{s(n.parse(t))}catch(t){o?o(t):console.error(t),n.manager.itemError(e)}}),r,o)}parse(e){function s(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function r(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}function o(t,e,s,r){const o=parseInt(p[r].substr(t,e));if(o){const t=(n=s,u=o,"s"+Math.min(n,u)+"e"+Math.max(n,u));void 0===c[t]&&(a.push([s-1,o-1,1]),c[t]=a.length-1)}var n,u}const n={h:[255,255,255],he:[217,255,255],li:[204,128,255],be:[194,255,0],b:[255,181,181],c:[144,144,144],n:[48,80,248],o:[255,13,13],f:[144,224,80],ne:[179,227,245],na:[171,92,242],mg:[138,255,0],al:[191,166,166],si:[240,200,160],p:[255,128,0],s:[255,255,48],cl:[31,240,31],ar:[128,209,227],k:[143,64,212],ca:[61,255,0],sc:[230,230,230],ti:[191,194,199],v:[166,166,171],cr:[138,153,199],mn:[156,122,199],fe:[224,102,51],co:[240,144,160],ni:[80,208,80],cu:[200,128,51],zn:[125,128,176],ga:[194,143,143],ge:[102,143,143],as:[189,128,227],se:[255,161,0],br:[166,41,41],kr:[92,184,209],rb:[112,46,176],sr:[0,255,0],y:[148,255,255],zr:[148,224,224],nb:[115,194,201],mo:[84,181,181],tc:[59,158,158],ru:[36,143,143],rh:[10,125,140],pd:[0,105,133],ag:[192,192,192],cd:[255,217,143],in:[166,117,115],sn:[102,128,128],sb:[158,99,181],te:[212,122,0],i:[148,0,148],xe:[66,158,176],cs:[87,23,143],ba:[0,201,0],la:[112,212,255],ce:[255,255,199],pr:[217,255,199],nd:[199,255,199],pm:[163,255,199],sm:[143,255,199],eu:[97,255,199],gd:[69,255,199],tb:[48,255,199],dy:[31,255,199],ho:[0,255,156],er:[0,230,117],tm:[0,212,82],yb:[0,191,56],lu:[0,171,36],hf:[77,194,255],ta:[77,166,255],w:[33,148,214],re:[38,125,171],os:[38,102,150],ir:[23,84,135],pt:[208,208,224],au:[255,209,35],hg:[184,184,208],tl:[166,84,77],pb:[87,89,97],bi:[158,79,181],po:[171,92,0],at:[117,79,69],rn:[66,130,150],fr:[66,0,102],ra:[0,125,0],ac:[112,171,250],th:[0,186,255],pa:[0,161,255],u:[0,143,255],np:[0,128,255],pu:[0,107,255],am:[84,92,242],cm:[120,92,227],bk:[138,79,227],cf:[161,54,212],es:[179,31,212],fm:[179,31,186],md:[179,13,166],no:[189,13,135],lr:[199,0,102],rf:[204,0,89],db:[209,0,79],sg:[217,0,69],bh:[224,0,56],hs:[230,0,46],mt:[235,0,38],ds:[235,0,38],rg:[235,0,38],cn:[235,0,38],uut:[235,0,38],uuq:[235,0,38],uup:[235,0,38],uuh:[235,0,38],uus:[235,0,38],uuo:[235,0,38]},u=[],a=[],c={},i={},p=e.split("\n");for(let t=0,e=p.length;t<e;t++)if("ATOM"===p[t].substr(0,4)||"HETATM"===p[t].substr(0,6)){const e=parseFloat(p[t].substr(30,7)),o=parseFloat(p[t].substr(38,7)),a=parseFloat(p[t].substr(46,7)),c=parseInt(p[t].substr(6,5))-1;let l=s(p[t].substr(76,2)).toLowerCase();""===l&&(l=s(p[t].substr(12,2)).toLowerCase());const b=[e,o,a,n[l],r(l)];u.push(b),i[c]=b}else if("CONECT"===p[t].substr(0,6)){const e=parseInt(p[t].substr(6,5));o(11,5,e,t),o(16,5,e,t),o(21,5,e,t),o(26,5,e,t)}return function(){const e={geometryAtoms:new t.BufferGeometry,geometryBonds:new t.BufferGeometry,json:{atoms:u}},s=e.geometryAtoms,r=e.geometryBonds,o=[],n=[],c=[];for(let t=0,e=u.length;t<e;t++){const e=u[t],s=e[0],r=e[1],a=e[2];o.push(s,r,a);const c=e[3][0]/255,i=e[3][1]/255,p=e[3][2]/255;n.push(c,i,p)}for(let t=0,e=a.length;t<e;t++){const e=a[t],s=e[0],r=e[1],o=i[s],n=i[r];let u=o[0],p=o[1],l=o[2];c.push(u,p,l),u=n[0],p=n[1],l=n[2],c.push(u,p,l)}return s.setAttribute("position",new t.Float32BufferAttribute(o,3)),s.setAttribute("color",new t.Float32BufferAttribute(n,3)),r.setAttribute("position",new t.Float32BufferAttribute(c,3)),e}()}}exports.PDBLoader=e;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Loader{constructor(e){super(e),this.propertyNameMapping={}}load(t,n,s,r){const i=this,o=new e.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(function(e){try{n(i.parse(e))}catch(e){r?r(e):console.error(e),i.manager.itemError(t)}}),s,r)}setPropertyNameMapping(e){this.propertyNameMapping=e}parse(t){function n(e){let t="",n=0;const s=/ply([\s\S]*)end_header\r?\n/.exec(e);null!==s&&(t=s[1],n=new Blob([s[0]]).size);const r={comments:[],elements:[],headerLength:n,objInfo:""},i=t.split("\n");let o;function a(e,t){const n={type:e[0]};return"list"===n.type?(n.name=e[3],n.countType=e[1],n.itemType=e[2]):n.name=e[1],n.name in t&&(n.name=t[n.name]),n}for(let e=0;e<i.length;e++){let t=i[e];if(t=t.trim(),""===t)continue;const n=t.split(/\s+/),s=n.shift();switch(t=n.join(" "),s){case"format":r.format=n[0],r.version=n[1];break;case"comment":r.comments.push(t);break;case"element":void 0!==o&&r.elements.push(o),o={},o.name=n[0],o.count=parseInt(n[1]),o.properties=[];break;case"property":o.properties.push(a(n,p.propertyNameMapping));break;case"obj_info":r.objInfo=t;break;default:console.log("unhandled",s,n)}}return void 0!==o&&r.elements.push(o),r}function s(e,t){switch(t){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(e);case"float":case"double":case"float32":case"float64":return parseFloat(e)}}function r(e,t){const n=t.split(/\s+/),r={};for(let t=0;t<e.length;t++)if("list"===e[t].type){const i=[],o=s(n.shift(),e[t].countType);for(let r=0;r<o;r++)i.push(s(n.shift(),e[t].itemType));r[e[t].name]=i}else r[e[t].name]=s(n.shift(),e[t].type);return r}function i(e,t){const n={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[]};let s;let i="";null!==(s=/end_header\s([\s\S]*)$/.exec(e))&&(i=s[1]);const c=i.split("\n");let u=0,l=0;for(let e=0;e<c.length;e++){let s=c[e];if(s=s.trim(),""===s)continue;l>=t.elements[u].count&&(u++,l=0);const i=r(t.elements[u].properties,s);a(n,t.elements[u].name,i),l++}return o(n)}function o(t){let n=new e.BufferGeometry;return t.indices.length>0&&n.setIndex(t.indices),n.setAttribute("position",new e.Float32BufferAttribute(t.vertices,3)),t.normals.length>0&&n.setAttribute("normal",new e.Float32BufferAttribute(t.normals,3)),t.uvs.length>0&&n.setAttribute("uv",new e.Float32BufferAttribute(t.uvs,2)),t.colors.length>0&&n.setAttribute("color",new e.Float32BufferAttribute(t.colors,3)),t.faceVertexUvs.length>0&&(n=n.toNonIndexed(),n.setAttribute("uv",new e.Float32BufferAttribute(t.faceVertexUvs,2))),n.computeBoundingSphere(),n}function a(e,t,n){if("vertex"===t)e.vertices.push(n.x,n.y,n.z),"nx"in n&&"ny"in n&&"nz"in n&&e.normals.push(n.nx,n.ny,n.nz),"s"in n&&"t"in n&&e.uvs.push(n.s,n.t),"red"in n&&"green"in n&&"blue"in n&&e.colors.push(n.red/255,n.green/255,n.blue/255);else if("face"===t){const t=n.vertex_indices||n.vertex_index,s=n.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),s&&6===s.length&&(e.faceVertexUvs.push(s[0],s[1]),e.faceVertexUvs.push(s[2],s[3]),e.faceVertexUvs.push(s[4],s[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3]))}}function c(e,t,n,s){switch(n){case"int8":case"char":return[e.getInt8(t),1];case"uint8":case"uchar":return[e.getUint8(t),1];case"int16":case"short":return[e.getInt16(t,s),2];case"uint16":case"ushort":return[e.getUint16(t,s),2];case"int32":case"int":return[e.getInt32(t,s),4];case"uint32":case"uint":return[e.getUint32(t,s),4];case"float32":case"float":return[e.getFloat32(t,s),4];case"float64":case"double":return[e.getFloat64(t,s),8]}}function u(e,t,n,s){const r={};let i,o=0;for(let a=0;a<n.length;a++)if("list"===n[a].type){const u=[];i=c(e,t+o,n[a].countType,s);const l=i[0];o+=i[1];for(let r=0;r<l;r++)i=c(e,t+o,n[a].itemType,s),u.push(i[0]),o+=i[1];r[n[a].name]=u}else i=c(e,t+o,n[a].type,s),r[n[a].name]=i[0],o+=i[1];return[r,o]}let l;const p=this;if(t instanceof ArrayBuffer){const s=e.LoaderUtils.decodeText(new Uint8Array(t)),r=n(s);l="ascii"===r.format?i(s,r):function(e,t){const n={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[]},s="binary_little_endian"===t.format,r=new DataView(e,t.headerLength);let i,c=0;for(let e=0;e<t.elements.length;e++)for(let o=0;o<t.elements[e].count;o++){i=u(r,c,t.elements[e].properties,s),c+=i[1];const o=i[0];a(n,t.elements[e].name,o)}return o(n)}(t,r)}else l=i(t,n(t));return l}}exports.PLYLoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");let t=null;function r(){if(null===t){const e=new ArrayBuffer(2),r=new Uint8Array(e),n=new Uint16Array(e);r[0]=170,r[1]=187,t=43707===n[0]}return t}const n=[null,Float32Array,null,Int8Array,Int16Array,null,Int32Array,Uint8Array,Uint16Array,null,Uint32Array],o={Uint16Array:"getUint16",Uint32Array:"getUint32",Int16Array:"getInt16",Int32Array:"getInt32",Float32Array:"getFloat32",Float64Array:"getFloat64"};function a(e,t,n,a,i){const s=t.BYTES_PER_ELEMENT;let l;if(i===r()||1===s)l=new t(e,n,a);else{const r=new DataView(e,n,a*s),u=o[t.name],c=!i;l=new t(a);for(let e=0;e<a;e++)l[e]=r[u](e*s,c)}return l}class i extends e.Loader{constructor(e){super(e)}load(t,n,o,a){const i=this,s=new e.FileLoader(i.manager);s.setPath(i.path),s.setResponseType("arraybuffer"),s.setRequestHeader(i.requestHeader),s.setWithCredentials(i.withCredentials),t=t.replace(/\*/g,r()?"be":"le"),s.load(t,(function(e){try{n(i.parse(e))}catch(e){a?a(e):console.error(e),i.manager.itemError(t)}}),o,a)}parse(t){const r=function(e){const t=new Uint8Array(e),r=t[0];let o=t[1];const i=!!(o>>7&1),s=o>>6&1,l=1==(o>>5&1),u=31&o;let c=0,d=0;if(l?(c=(t[2]<<16)+(t[3]<<8)+t[4],d=(t[5]<<16)+(t[6]<<8)+t[7]):(c=t[2]+(t[3]<<8)+(t[4]<<16),d=t[5]+(t[6]<<8)+(t[7]<<16)),0===r)throw new Error("PRWM decoder: Invalid format version: 0");if(1!==r)throw new Error("PRWM decoder: Unsupported format version: "+r);if(!i){if(0!==s)throw new Error("PRWM decoder: Indices type must be set to 0 for non-indexed geometries");if(0!==d)throw new Error("PRWM decoder: Number of indices must be set to 0 for non-indexed geometries")}let f=8;const y={};for(let r=0;r<u;r++){let r="";for(;f<t.length;){const e=t[f];if(f++,0===e)break;r+=String.fromCharCode(e)}o=t[f];const i=o>>7&1,s=1+(o>>4&3),u=n[15&o];f++,f=4*Math.ceil(f/4);const d=a(e,u,f,s*c,l);f+=u.BYTES_PER_ELEMENT*s*c,y[r]={type:i,cardinality:s,values:d}}f=4*Math.ceil(f/4);let A=null;return i&&(A=a(e,1===s?Uint32Array:Uint16Array,f,d,l)),{version:r,attributes:y,indices:A}}(t),o=Object.keys(r.attributes),i=new e.BufferGeometry;for(let t=0;t<o.length;t++){const n=r.attributes[o[t]];i.setAttribute(o[t],new e.BufferAttribute(n.values,n.cardinality,n.normalized))}return null!==r.indices&&i.setIndex(new e.BufferAttribute(r.indices,1)),i}static isBigEndianPlatform(){return r()}}exports.PRWMLoader=i;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class r extends e.CompressedTextureLoader{constructor(e){super(e)}parse(r,a){const o=new Uint32Array(r,0,13),s={buffer:r,header:o,loadMipmaps:a};return 55727696===o[0]?function(r){const a=r.header;let o,s;const n=a[12],m=a[2],p=a[6],i=a[7],u=a[10],P=a[11];switch(m){case 0:o=2,s=e.RGB_PVRTC_2BPPV1_Format;break;case 1:o=2,s=e.RGBA_PVRTC_2BPPV1_Format;break;case 2:o=4,s=e.RGB_PVRTC_4BPPV1_Format;break;case 3:o=4,s=e.RGBA_PVRTC_4BPPV1_Format;break;default:console.error("THREE.PVRLoader: Unsupported PVR format:",m)}return r.dataPtr=52+n,r.bpp=o,r.format=s,r.width=i,r.height=p,r.numSurfaces=u,r.numMipmaps=P,r.isCubemap=6===u,t(r)}(s):559044176===o[11]?function(r){const a=r.header,o=a[0],s=a[1],n=a[2],m=a[3],p=a[4],i=a[10],u=a[12],P=24,c=255&p;let d,R;const _=i>0;25===c?(R=_?e.RGBA_PVRTC_4BPPV1_Format:e.RGB_PVRTC_4BPPV1_Format,d=4):c===P?(R=_?e.RGBA_PVRTC_2BPPV1_Format:e.RGB_PVRTC_2BPPV1_Format,d=2):console.error("THREE.PVRLoader: Unknown PVR format:",c);return r.dataPtr=o,r.bpp=d,r.format=R,r.width=n,r.height=s,r.numSurfaces=u,r.numMipmaps=m+1,r.isCubemap=6===u,t(r)}(s):void console.error("THREE.PVRLoader: Unknown PVR format.")}}function t(e){const r={mipmaps:[],width:e.width,height:e.height,format:e.format,mipmapCount:e.numMipmaps,isCubemap:e.isCubemap},t=e.buffer;let a=e.dataPtr,o=0,s=0,n=0,m=0,p=0,i=0;const u=e.bpp,P=e.numSurfaces;2===u?(n=8,m=4):(n=4,m=4),s=n*m*u/8,r.mipmaps.length=e.numMipmaps*P;let c=0;for(;c<e.numMipmaps;){const u=e.width>>c,d=e.height>>c;p=u/n,i=d/m,p<2&&(p=2),i<2&&(i=2),o=p*i*s;for(let s=0;s<P;s++){const n={data:new Uint8Array(t,a,o),width:u,height:d};r.mipmaps[s*e.numMipmaps+c]=n,a+=o}c++}return r}exports.PVRLoader=r;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.DataTextureLoader{constructor(t){super(t),this.type=e.HalfFloatType}parse(t){const r=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:case 4:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},a=function(e,t,r){t=t||1024;let a=e.pos,n=-1,o=0,s="",i=String.fromCharCode.apply(null,new Uint16Array(e.subarray(a,a+128)));for(;0>(n=i.indexOf("\n"))&&o<t&&a<e.byteLength;)s+=i,o+=i.length,a+=128,i+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(a,a+128)));return-1<n&&(!1!==r&&(e.pos+=o+n+1),s+i.slice(0,n))},n=function(e,t,r,a){const n=e[t+3],o=Math.pow(2,n-128)/255;r[a+0]=e[t+0]*o,r[a+1]=e[t+1]*o,r[a+2]=e[t+2]*o,r[a+3]=1},o=function(t,r,a,n){const o=t[r+3],s=Math.pow(2,o-128)/255;a[n+0]=e.DataUtils.toHalfFloat(Math.min(t[r+0]*s,65504)),a[n+1]=e.DataUtils.toHalfFloat(Math.min(t[r+1]*s,65504)),a[n+2]=e.DataUtils.toHalfFloat(Math.min(t[r+2]*s,65504)),a[n+3]=e.DataUtils.toHalfFloat(1)},s=new Uint8Array(t);s.pos=0;const i=function(e){const t=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,n=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,o=/^\s*FORMAT=(\S+)\s*$/,s=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,i={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let l,c;if(e.pos>=e.byteLength||!(l=a(e)))return r(1,"no header found");if(!(c=l.match(/^#\?(\S+)/)))return r(3,"bad initial token");for(i.valid|=1,i.programtype=c[1],i.string+=l+"\n";l=a(e),!1!==l;)if(i.string+=l+"\n","#"!==l.charAt(0)){if((c=l.match(t))&&(i.gamma=parseFloat(c[1])),(c=l.match(n))&&(i.exposure=parseFloat(c[1])),(c=l.match(o))&&(i.valid|=2,i.format=c[1]),(c=l.match(s))&&(i.valid|=4,i.height=parseInt(c[1],10),i.width=parseInt(c[2],10)),2&i.valid&&4&i.valid)break}else i.comments+=l+"\n";return 2&i.valid?4&i.valid?i:r(3,"missing image size specifier"):r(3,"missing format specifier")}(s);if(-1!==i){const t=i.width,a=i.height,l=function(e,t,a){const n=t;if(n<8||n>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(n!==(e[2]<<8|e[3]))return r(3,"wrong scanline width");const o=new Uint8Array(4*t*a);if(!o.length)return r(4,"unable to allocate buffer space");let s=0,i=0;const l=4*n,c=new Uint8Array(4),f=new Uint8Array(l);let p=a;for(;p>0&&i<e.byteLength;){if(i+4>e.byteLength)return r(1);if(c[0]=e[i++],c[1]=e[i++],c[2]=e[i++],c[3]=e[i++],2!=c[0]||2!=c[1]||(c[2]<<8|c[3])!=n)return r(3,"bad rgbe scanline format");let t,a=0;for(;a<l&&i<e.byteLength;){t=e[i++];const n=t>128;if(n&&(t-=128),0===t||a+t>l)return r(3,"bad scanline data");if(n){const r=e[i++];for(let e=0;e<t;e++)f[a++]=r}else f.set(e.subarray(i,i+t),a),a+=t,i+=t}const d=n;for(let e=0;e<d;e++){let t=0;o[s]=f[e+t],t+=n,o[s+1]=f[e+t],t+=n,o[s+2]=f[e+t],t+=n,o[s+3]=f[e+t],s+=4}p--}return o}(s.subarray(s.pos),t,a);if(-1!==l){let r,s,c;switch(this.type){case e.FloatType:c=l.length/4;const t=new Float32Array(4*c);for(let e=0;e<c;e++)n(l,4*e,t,4*e);r=t,s=e.FloatType;break;case e.HalfFloatType:c=l.length/4;const a=new Uint16Array(4*c);for(let e=0;e<c;e++)o(l,4*e,a,4*e);r=a,s=e.HalfFloatType;break;default:console.error("THREE.RGBELoader: unsupported type: ",this.type)}return{width:t,height:a,data:r,header:i.string,gamma:i.gamma,exposure:i.exposure,type:s}}}return null}setDataType(e){return this.type=e,this}load(t,r,a,n){return super.load(t,(function(t,a){switch(t.type){case e.FloatType:case e.HalfFloatType:t.encoding=e.LinearEncoding,t.minFilter=e.LinearFilter,t.magFilter=e.LinearFilter,t.generateMipmaps=!1,t.flipY=!0}r&&r(t,a)}),a,n)}}exports.RGBELoader=t;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class r extends e.DataTextureLoader{constructor(r){super(r),this.type=e.HalfFloatType,this.maxRange=7}setDataType(e){return this.type=e,this}setMaxRange(e){return this.maxRange=e,this}loadCubemap(r,t,a,n){const i=new e.CubeTexture;let f=0;const o=this;function s(e){o.load(r[e],(function(r){i.images[e]=r,f++,6===f&&(i.needsUpdate=!0,t&&t(i))}),void 0,n)}for(let e=0;e<r.length;++e)s(e);return i.type=this.type,i.format=e.RGBAFormat,i.minFilter=e.LinearFilter,i.generateMipmaps=!1,i}parse(r){const t=i.decode(r),a=i.toRGBA8(t)[0],n=new Uint8Array(a),f=t.width*t.height*4,o=this.type===e.HalfFloatType?new Uint16Array(f):new Float32Array(f);for(let r=0;r<n.length;r+=4){const t=n[r+0]/255,a=n[r+1]/255,i=n[r+2]/255,f=n[r+3]/255;this.type===e.HalfFloatType?(o[r+0]=e.DataUtils.toHalfFloat(Math.min(t*f*this.maxRange,65504)),o[r+1]=e.DataUtils.toHalfFloat(Math.min(a*f*this.maxRange,65504)),o[r+2]=e.DataUtils.toHalfFloat(Math.min(i*f*this.maxRange,65504)),o[r+3]=e.DataUtils.toHalfFloat(1)):(o[r+0]=t*f*this.maxRange,o[r+1]=a*f*this.maxRange,o[r+2]=i*f*this.maxRange,o[r+3]=1)}return{width:t.width,height:t.height,data:o,format:e.RGBAFormat,type:this.type,flipY:!0}}}var t,a,n,i={};i.toRGBA8=function(e){var r=e.width,t=e.height;if(null==e.tabs.acTL)return[i.toRGBA8.decodeImage(e.data,r,t,e).buffer];var a=[];null==e.frames[0].data&&(e.frames[0].data=e.data);for(var n=r*t*4,f=new Uint8Array(n),o=new Uint8Array(n),s=new Uint8Array(n),l=0;l<e.frames.length;l++){var d=e.frames[l],c=d.rect.x,h=d.rect.y,u=d.rect.width,v=d.rect.height,p=i.toRGBA8.decodeImage(d.data,u,v,e);if(0!=l)for(var g=0;g<n;g++)s[g]=f[g];if(0==d.blend?i._copyTile(p,u,v,f,r,t,c,h,0):1==d.blend&&i._copyTile(p,u,v,f,r,t,c,h,1),a.push(f.buffer.slice(0)),1==d.dispose)i._copyTile(o,u,v,f,r,t,c,h,0);else if(2==d.dispose)for(g=0;g<n;g++)f[g]=s[g]}return a},i.toRGBA8.decodeImage=function(e,r,t,a){var n=r*t,f=i.decode._getBPP(a),o=Math.ceil(r*f/8),s=new Uint8Array(4*n),l=new Uint32Array(s.buffer),d=a.ctype,c=a.depth,h=i._bin.readUshort;if(6==d){var u=n<<2;if(8==c)for(var v=0;v<u;v+=4)s[v]=e[v],s[v+1]=e[v+1],s[v+2]=e[v+2],s[v+3]=e[v+3];if(16==c)for(v=0;v<u;v++)s[v]=e[v<<1]}else if(2==d){var p=a.tabs.tRNS;if(null==p){if(8==c)for(v=0;v<n;v++){var g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g]}if(16==c)for(v=0;v<n;v++){g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g]}}else{var w=p[0],y=p[1],b=p[2];if(8==c)for(v=0;v<n;v++){var m=v<<2;g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g],e[g]==w&&e[g+1]==y&&e[g+2]==b&&(s[m+3]=0)}if(16==c)for(v=0;v<n;v++){m=v<<2,g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g],h(e,g)==w&&h(e,g+2)==y&&h(e,g+4)==b&&(s[m+3]=0)}}}else if(3==d){var _=a.tabs.PLTE,H=a.tabs.tRNS,U=H?H.length:0;if(1==c)for(var A=0;A<t;A++){var R=A*o,I=A*r;for(v=0;v<r;v++){m=I+v<<2;var T=3*(x=e[R+(v>>3)]>>7-((7&v)<<0)&1);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}if(2==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>2)]>>6-((3&v)<<1)&3);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(4==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>1)]>>4-((1&v)<<2)&15);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(8==c)for(v=0;v<n;v++){var x;m=v<<2,T=3*(x=e[v]);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}else if(4==d){if(8==c)for(v=0;v<n;v++){m=v<<2;var C=e[B=v<<1];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+1]}if(16==c)for(v=0;v<n;v++){var B;m=v<<2,C=e[B=v<<2];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+2]}}else if(0==d)for(w=a.tabs.tRNS?a.tabs.tRNS:-1,A=0;A<t;A++){var M=A*o,S=A*r;if(1==c)for(var D=0;D<r;D++){var F=(C=255*(e[M+(D>>>3)]>>>7-(7&D)&1))==255*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(2==c)for(D=0;D<r;D++){F=(C=85*(e[M+(D>>>2)]>>>6-((3&D)<<1)&3))==85*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(4==c)for(D=0;D<r;D++){F=(C=17*(e[M+(D>>>1)]>>>4-((1&D)<<2)&15))==17*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(8==c)for(D=0;D<r;D++){F=(C=e[M+D])==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(16==c)for(D=0;D<r;D++){C=e[M+(D<<1)],F=h(e,M+(D<<1))==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}}return s},i.decode=function(e){for(var r,t,a,n,f=new Uint8Array(e),o=8,s=i._bin,l=s.readUshort,d=s.readUint,c={tabs:{},frames:[]},h=new Uint8Array(f.length),u=0,v=0,p=[137,80,78,71,13,10,26,10],g=0;g<8;g++)if(f[g]!=p[g])throw new Error("The input is not a PNG file!");for(;o<f.length;){var w=s.readUint(f,o);o+=4;var y=s.readASCII(f,o,4);if(o+=4,"IHDR"==y)i.decode._IHDR(f,o,c);else if("CgBI"==y)c.tabs[y]=f.slice(o,o+4);else if("IDAT"==y){for(g=0;g<w;g++)h[u+g]=f[o+g];u+=w}else if("acTL"==y)c.tabs[y]={num_frames:d(f,o),num_plays:d(f,o+4)},r=new Uint8Array(f.length);else if("fcTL"==y){var b;if(0!=v)(b=c.frames[c.frames.length-1]).data=i.decode._decompress(c,r.slice(0,v),b.rect.width,b.rect.height),v=0;var m={x:d(f,o+12),y:d(f,o+16),width:d(f,o+4),height:d(f,o+8)},_=l(f,o+22);_=l(f,o+20)/(0==_?100:_);var H={rect:m,delay:Math.round(1e3*_),dispose:f[o+24],blend:f[o+25]};c.frames.push(H)}else if("fdAT"==y){for(g=0;g<w-4;g++)r[v+g]=f[o+g+4];v+=w-4}else if("pHYs"==y)c.tabs[y]=[s.readUint(f,o),s.readUint(f,o+4),f[o+8]];else if("cHRM"==y){c.tabs[y]=[];for(g=0;g<8;g++)c.tabs[y].push(s.readUint(f,o+4*g))}else if("tEXt"==y||"zTXt"==y){null==c.tabs[y]&&(c.tabs[y]={});var U=s.nextZero(f,o);a=s.readASCII(f,o,U-o);var A=o+w-U-1;"tEXt"==y?t=s.readASCII(f,U+1,A):(n=i.decode._inflate(f.slice(U+2,U+2+A)),t=s.readUTF8(n,0,n.length)),c.tabs[y][a]=t}else if("iTXt"==y){null==c.tabs[y]&&(c.tabs[y]={});U=0;var R=o;U=s.nextZero(f,R),a=s.readASCII(f,R,U-R);var I=f[R=U+1];R+=2,U=s.nextZero(f,R),s.readASCII(f,R,U-R),R=U+1,U=s.nextZero(f,R),s.readUTF8(f,R,U-R);A=w-((R=U+1)-o);0==I?t=s.readUTF8(f,R,A):(n=i.decode._inflate(f.slice(R,R+A)),t=s.readUTF8(n,0,n.length)),c.tabs[y][a]=t}else if("PLTE"==y)c.tabs[y]=s.readBytes(f,o,w);else if("hIST"==y){var T=c.tabs.PLTE.length/3;c.tabs[y]=[];for(g=0;g<T;g++)c.tabs[y].push(l(f,o+2*g))}else if("tRNS"==y)3==c.ctype?c.tabs[y]=s.readBytes(f,o,w):0==c.ctype?c.tabs[y]=l(f,o):2==c.ctype&&(c.tabs[y]=[l(f,o),l(f,o+2),l(f,o+4)]);else if("gAMA"==y)c.tabs[y]=s.readUint(f,o)/1e5;else if("sRGB"==y)c.tabs[y]=f[o];else if("bKGD"==y)0==c.ctype||4==c.ctype?c.tabs[y]=[l(f,o)]:2==c.ctype||6==c.ctype?c.tabs[y]=[l(f,o),l(f,o+2),l(f,o+4)]:3==c.ctype&&(c.tabs[y]=f[o]);else if("IEND"==y)break;o+=w,s.readUint(f,o),o+=4}0!=v&&((b=c.frames[c.frames.length-1]).data=i.decode._decompress(c,r.slice(0,v),b.rect.width,b.rect.height));return c.data=i.decode._decompress(c,h,c.width,c.height),delete c.compress,delete c.interlace,delete c.filter,c},i.decode._decompress=function(e,r,t,a){var n=i.decode._getBPP(e),f=Math.ceil(t*n/8),o=new Uint8Array((f+1+e.interlace)*a);return r=e.tabs.CgBI?i.inflateRaw(r,o):i.decode._inflate(r,o),0==e.interlace?r=i.decode._filterZero(r,e,0,t,a):1==e.interlace&&(r=i.decode._readInterlace(r,e)),r},i.decode._inflate=function(e,r){return i.inflateRaw(new Uint8Array(e.buffer,2,e.length-6),r)},i.inflateRaw=((n={}).H={},n.H.N=function(e,r){var t,a,i=Uint8Array,f=0,o=0,s=0,l=0,d=0,c=0,h=0,u=0,v=0;if(3==e[0]&&0==e[1])return r||new i(0);var p=n.H,g=p.b,w=p.e,y=p.R,b=p.n,m=p.A,_=p.Z,H=p.m,U=null==r;for(U&&(r=new i(e.length>>>2<<5));0==f;)if(f=g(e,v,1),o=g(e,v+1,2),v+=3,0!=o){if(U&&(r=n.H.W(r,u+(1<<17))),1==o&&(t=H.J,a=H.h,c=511,h=31),2==o){s=w(e,v,5)+257,l=w(e,v+5,5)+1,d=w(e,v+10,4)+4,v+=14;for(var A=1,R=0;R<38;R+=2)H.Q[R]=0,H.Q[R+1]=0;for(R=0;R<d;R++){var I=w(e,v+3*R,3);H.Q[1+(H.X[R]<<1)]=I,I>A&&(A=I)}v+=3*d,b(H.Q,A),m(H.Q,A,H.u),t=H.w,a=H.d,v=y(H.u,(1<<A)-1,s+l,e,v,H.v);var T=p.V(H.v,0,s,H.C);c=(1<<T)-1;var x=p.V(H.v,s,l,H.D);h=(1<<x)-1,b(H.C,T),m(H.C,T,t),b(H.D,x),m(H.D,x,a)}for(;;){var C=t[_(e,v)&c];v+=15&C;var B=C>>>4;if(B>>>8==0)r[u++]=B;else{if(256==B)break;var M=u+B-254;if(B>264){var S=H.q[B-257];M=u+(S>>>3)+w(e,v,7&S),v+=7&S}var D=a[_(e,v)&h];v+=15&D;var F=D>>>4,P=H.c[F],G=(P>>>4)+g(e,v,15&P);for(v+=15&P;u<M;)r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G];u=M}}}else{0!=(7&v)&&(v+=8-(7&v));var Z=4+(v>>>3),L=e[Z-4]|e[Z-3]<<8;U&&(r=n.H.W(r,u+L)),r.set(new i(e.buffer,e.byteOffset+Z,L),u),v=Z+L<<3,u+=L}return r.length==u?r:r.slice(0,u)},n.H.W=function(e,r){var t=e.length;if(r<=t)return e;var a=new Uint8Array(t<<1);return a.set(e,0),a},n.H.R=function(e,r,t,a,i,f){for(var o=n.H.e,s=n.H.Z,l=0;l<t;){var d=e[s(a,i)&r];i+=15&d;var c=d>>>4;if(c<=15)f[l]=c,l++;else{var h=0,u=0;16==c?(u=3+o(a,i,2),i+=2,h=f[l-1]):17==c?(u=3+o(a,i,3),i+=3):18==c&&(u=11+o(a,i,7),i+=7);for(var v=l+u;l<v;)f[l]=h,l++}}return i},n.H.V=function(e,r,t,a){for(var n=0,i=0,f=a.length>>>1;i<t;){var o=e[i+r];a[i<<1]=0,a[1+(i<<1)]=o,o>n&&(n=o),i++}for(;i<f;)a[i<<1]=0,a[1+(i<<1)]=0,i++;return n},n.H.n=function(e,r){for(var t,a,i,f,o=n.H.m,s=e.length,l=o.j,d=0;d<=r;d++)l[d]=0;for(d=1;d<s;d+=2)l[e[d]]++;var c=o.K;for(t=0,l[0]=0,a=1;a<=r;a++)t=t+l[a-1]<<1,c[a]=t;for(i=0;i<s;i+=2)0!=(f=e[i+1])&&(e[i]=c[f],c[f]++)},n.H.A=function(e,r,t){for(var a=e.length,i=n.H.m.r,f=0;f<a;f+=2)if(0!=e[f+1])for(var o=f>>1,s=e[f+1],l=o<<4|s,d=r-s,c=e[f]<<d,h=c+(1<<d);c!=h;)t[i[c]>>>15-r]=l,c++},n.H.l=function(e,r){for(var t=n.H.m.r,a=15-r,i=0;i<e.length;i+=2){var f=e[i]<<r-e[i+1];e[i]=t[f]>>>a}},n.H.M=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8},n.H.I=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8,e[a+2]|=t>>>16},n.H.e=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8)>>>(7&r)&(1<<t)-1},n.H.b=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)&(1<<t)-1},n.H.Z=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)},n.H.i=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16|e[3+(r>>>3)]<<24)>>>(7&r)},n.H.m=(t=Uint16Array,a=Uint32Array,{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new a(32),J:new t(512),_:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(32768),s:new a(286),Y:new a(30),a:new a(19),t:new a(15e3),k:new t(65536),g:new t(32768)}),function(){for(var e=n.H.m,r=0;r<32768;r++){var t=r;t=(4278255360&(t=(4042322160&(t=(3435973836&(t=(2863311530&t)>>>1|(1431655765&t)<<1))>>>2|(858993459&t)<<2))>>>4|(252645135&t)<<4))>>>8|(16711935&t)<<8,e.r[r]=(t>>>16|t<<16)>>>17}function a(e,r,t){for(;0!=r--;)e.push(0,t)}for(r=0;r<32;r++)e.q[r]=e.S[r]<<3|e.T[r],e.c[r]=e.p[r]<<4|e.z[r];a(e._,144,8),a(e._,112,9),a(e._,24,7),a(e._,8,8),n.H.n(e._,9),n.H.A(e._,9,e.J),n.H.l(e._,9),a(e.$,32,5),n.H.n(e.$,5),n.H.A(e.$,5,e.h),n.H.l(e.$,5),a(e.Q,19,0),a(e.C,286,0),a(e.D,30,0),a(e.v,320,0)}(),n.H.N),i.decode._readInterlace=function(e,r){for(var t=r.width,a=r.height,n=i.decode._getBPP(r),f=n>>3,o=Math.ceil(t*n/8),s=new Uint8Array(a*o),l=0,d=[0,0,4,0,2,0,1],c=[0,4,0,2,0,1,0],h=[8,8,8,4,4,2,2],u=[8,8,4,4,2,2,1],v=0;v<7;){for(var p=h[v],g=u[v],w=0,y=0,b=d[v];b<a;)b+=p,y++;for(var m=c[v];m<t;)m+=g,w++;var _=Math.ceil(w*n/8);i.decode._filterZero(e,r,l,w,y);for(var H,U=0,A=d[v];A<a;){for(var R=c[v],I=l+U*_<<3;R<t;){if(1==n&&(H=(H=e[I>>3])>>7-(7&I)&1,s[A*o+(R>>3)]|=H<<7-((7&R)<<0)),2==n&&(H=(H=e[I>>3])>>6-(7&I)&3,s[A*o+(R>>2)]|=H<<6-((3&R)<<1)),4==n&&(H=(H=e[I>>3])>>4-(7&I)&15,s[A*o+(R>>1)]|=H<<4-((1&R)<<2)),n>=8)for(var T=A*o+R*f,x=0;x<f;x++)s[T+x]=e[(I>>3)+x];I+=n,R+=g}U++,A+=p}w*y!=0&&(l+=y*(1+_)),v+=1}return s},i.decode._getBPP=function(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth},i.decode._filterZero=function(e,r,t,a,n){var f=i.decode._getBPP(r),o=Math.ceil(a*f/8),s=i.decode._paeth;f=Math.ceil(f/8);var l,d,c=e[t],h=0;if(c>1&&(e[t]=[0,0,1][c-2]),3==c)for(h=f;h<o;h++)e[h+1]=e[h+1]+(e[h+1-f]>>>1)&255;for(var u=0;u<n;u++)if(h=0,0==(c=e[(d=(l=t+u*o)+u+1)-1]))for(;h<o;h++)e[l+h]=e[d+h];else if(1==c){for(;h<f;h++)e[l+h]=e[d+h];for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-f]}else if(2==c)for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-o];else if(3==c){for(;h<f;h++)e[l+h]=e[d+h]+(e[l+h-o]>>>1);for(;h<o;h++)e[l+h]=e[d+h]+(e[l+h-o]+e[l+h-f]>>>1)}else{for(;h<f;h++)e[l+h]=e[d+h]+s(0,e[l+h-o],0);for(;h<o;h++)e[l+h]=e[d+h]+s(e[l+h-f],e[l+h-o],e[l+h-f-o])}return e},i.decode._paeth=function(e,r,t){var a=e+r-t,n=a-e,i=a-r,f=a-t;return n*n<=i*i&&n*n<=f*f?e:i*i<=f*f?r:t},i.decode._IHDR=function(e,r,t){var a=i._bin;t.width=a.readUint(e,r),r+=4,t.height=a.readUint(e,r),r+=4,t.depth=e[r],r++,t.ctype=e[r],r++,t.compress=e[r],r++,t.filter=e[r],r++,t.interlace=e[r],r++},i._bin={nextZero:function(e,r){for(;0!=e[r];)r++;return r},readUshort:function(e,r){return e[r]<<8|e[r+1]},writeUshort:function(e,r,t){e[r]=t>>8&255,e[r+1]=255&t},readUint:function(e,r){return 16777216*e[r]+(e[r+1]<<16|e[r+2]<<8|e[r+3])},writeUint:function(e,r,t){e[r]=t>>24&255,e[r+1]=t>>16&255,e[r+2]=t>>8&255,e[r+3]=255&t},readASCII:function(e,r,t){for(var a="",n=0;n<t;n++)a+=String.fromCharCode(e[r+n]);return a},writeASCII:function(e,r,t){for(var a=0;a<t.length;a++)e[r+a]=t.charCodeAt(a)},readBytes:function(e,r,t){for(var a=[],n=0;n<t;n++)a.push(e[r+n]);return a},pad:function(e){return e.length<2?"0"+e:e},readUTF8:function(e,r,t){for(var a,n="",f=0;f<t;f++)n+="%"+i._bin.pad(e[r+f].toString(16));try{a=decodeURIComponent(n)}catch(a){return i._bin.readASCII(e,r,t)}return a}},i._copyTile=function(e,r,t,a,n,i,f,o,s){for(var l=Math.min(r,n),d=Math.min(t,i),c=0,h=0,u=0;u<d;u++)for(var v=0;v<l;v++)if(f>=0&&o>=0?(c=u*r+v<<2,h=(o+u)*n+f+v<<2):(c=(-o+u)*r-f+v<<2,h=u*n+v<<2),0==s)a[h]=e[c],a[h+1]=e[c+1],a[h+2]=e[c+2],a[h+3]=e[c+3];else if(1==s){var p=e[c+3]*(1/255),g=e[c]*p,w=e[c+1]*p,y=e[c+2]*p,b=a[h+3]*(1/255),m=a[h]*b,_=a[h+1]*b,H=a[h+2]*b,U=1-p,A=p+b*U,R=0==A?0:1/A;a[h+3]=255*A,a[h+0]=(g+m*U)*R,a[h+1]=(w+_*U)*R,a[h+2]=(y+H*U)*R}else if(2==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];p==b&&g==m&&w==_&&y==H?(a[h]=0,a[h+1]=0,a[h+2]=0,a[h+3]=0):(a[h]=g,a[h+1]=w,a[h+2]=y,a[h+3]=p)}else if(3==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];if(p==b&&g==m&&w==_&&y==H)continue;if(p<220&&b>20)return!1}return!0},exports.RGBMLoader=r;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");class e extends t.Loader{constructor(t){super(t)}load(e,r,n,o){const s=this,a=new t.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(t){try{r(s.parse(t))}catch(t){o?o(t):console.error(t),s.manager.itemError(e)}}),n,o)}parse(e){function r(t,e,r){for(let n=0,o=t.length;n<o;n++)if(t[n]!==e.getUint8(r+n,!1))return!1;return!0}const n=function(t){if("string"==typeof t){const e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=255&t.charCodeAt(r);return e.buffer||e}return t}(e);return function(t){const e=new DataView(t);if(84+50*e.getUint32(80,!0)===e.byteLength)return!0;const n=[115,111,108,105,100];for(let t=0;t<5;t++)if(r(n,e,t))return!1;return!0}(n)?function(e){const r=new DataView(e),n=r.getUint32(80,!0);let o,s,a,i,l,u,f,c,g=!1;for(let t=0;t<70;t++)1129270351==r.getUint32(t,!1)&&82==r.getUint8(t+4)&&61==r.getUint8(t+5)&&(g=!0,i=new Float32Array(3*n*3),l=r.getUint8(t+6)/255,u=r.getUint8(t+7)/255,f=r.getUint8(t+8)/255,c=r.getUint8(t+9)/255);const h=new t.BufferGeometry,d=new Float32Array(3*n*3),p=new Float32Array(3*n*3);for(let t=0;t<n;t++){const e=84+50*t,n=r.getFloat32(e,!0),c=r.getFloat32(e+4,!0),h=r.getFloat32(e+8,!0);if(g){const t=r.getUint16(e+48,!0);0==(32768&t)?(o=(31&t)/31,s=(t>>5&31)/31,a=(t>>10&31)/31):(o=l,s=u,a=f)}for(let l=1;l<=3;l++){const u=e+12*l,f=3*t*3+3*(l-1);d[f]=r.getFloat32(u,!0),d[f+1]=r.getFloat32(u+4,!0),d[f+2]=r.getFloat32(u+8,!0),p[f]=n,p[f+1]=c,p[f+2]=h,g&&(i[f]=o,i[f+1]=s,i[f+2]=a)}}return h.setAttribute("position",new t.BufferAttribute(d,3)),h.setAttribute("normal",new t.BufferAttribute(p,3)),g&&(h.setAttribute("color",new t.BufferAttribute(i,3)),h.hasColors=!0,h.alpha=c),h}(n):function(e){const r=new t.BufferGeometry,n=/solid([\s\S]*?)endsolid/g,o=/facet([\s\S]*?)endfacet/g;let s=0;const a=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,i=new RegExp("vertex"+a+a+a,"g"),l=new RegExp("normal"+a+a+a,"g"),u=[],f=[],c=new t.Vector3;let g,h=0,d=0,p=0;for(;null!==(g=n.exec(e));){d=p;const t=g[0];for(;null!==(g=o.exec(t));){let t=0,e=0;const r=g[0];for(;null!==(g=l.exec(r));)c.x=parseFloat(g[1]),c.y=parseFloat(g[2]),c.z=parseFloat(g[3]),e++;for(;null!==(g=i.exec(r));)u.push(parseFloat(g[1]),parseFloat(g[2]),parseFloat(g[3])),f.push(c.x,c.y,c.z),t++,p++;1!==e&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+s),3!==t&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+s),s++}const e=d,n=p-d;r.addGroup(e,n,h),h++}return r.setAttribute("position",new t.Float32BufferAttribute(u,3)),r.setAttribute("normal",new t.Float32BufferAttribute(f,3)),r}("string"!=typeof(o=e)?t.LoaderUtils.decodeText(new Uint8Array(o)):o);var o}}exports.STLLoader=e;