three-stdlib 2.35.5 → 2.35.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +20 -17
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +20 -17
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +722 -715
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +723 -716
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +2 -1
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +3 -2
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +2 -1
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +3 -2
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +2 -1
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +3 -2
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +133 -122
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +34 -21
  68. package/exporters/DRACOExporter.js +133 -122
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +170 -167
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +170 -167
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +524 -515
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +524 -515
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +2 -1
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +3 -2
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +441 -435
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +441 -435
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +2 -1
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +3 -2
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +377 -374
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +377 -374
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +5 -4
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +6 -5
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +46 -43
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +46 -43
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1694 -1688
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1694 -1688
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +53 -50
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +53 -50
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +271 -268
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +272 -269
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +2 -1
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +3 -2
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +209 -206
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +209 -206
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +154 -146
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +154 -146
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +183 -180
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +183 -180
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +164 -161
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +164 -161
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +35 -32
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +17 -42
  258. package/objects/Sky.js +35 -32
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +2 -1
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +3 -2
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +143 -140
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +143 -140
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +267 -264
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +267 -264
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +253 -250
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +253 -250
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +379 -376
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +379 -376
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +205 -202
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +205 -202
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +71 -46
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +71 -46
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +41 -22
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +41 -22
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +20 -6
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +20 -6
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +46 -26
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +46 -26
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +33 -19
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +33 -19
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +117 -90
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +117 -90
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +333 -232
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +333 -232
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +38 -22
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +38 -22
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +35 -21
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +35 -21
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +34 -19
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +34 -19
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +43 -24
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +43 -24
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +30 -16
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +30 -16
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +38 -21
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +38 -21
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +98 -69
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +98 -69
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +70 -59
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +70 -59
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +49 -28
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +49 -28
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1098 -1089
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1098 -1089
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +57 -29
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +57 -29
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +70 -43
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +70 -43
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +74 -53
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +74 -53
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +55 -35
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +55 -35
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +33 -19
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +33 -19
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +193 -116
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +193 -116
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +270 -192
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +270 -192
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +43 -27
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +43 -27
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +47 -31
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +47 -31
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +37 -24
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +37 -24
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +43 -24
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +43 -24
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +34 -17
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +34 -17
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +39 -26
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +39 -26
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +36 -21
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +36 -21
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +147 -97
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +147 -97
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +31 -18
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +31 -18
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +33 -20
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +33 -20
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +154 -117
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +154 -117
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +358 -270
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +358 -270
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +236 -142
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +236 -142
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +36 -20
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +36 -20
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +64 -37
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +64 -37
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +29 -16
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +29 -16
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +55 -35
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +55 -35
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +275 -165
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +275 -165
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +50 -27
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +50 -27
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +32 -17
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +32 -17
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +43 -27
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +43 -27
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +43 -27
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +43 -27
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +264 -213
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +264 -213
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +63 -35
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +63 -35
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +2 -1
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +3 -2
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +3 -3
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +3 -3
  500. package/webxr/ARButton.js +3 -3
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +98 -95
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +9 -6
  509. package/webxr/VRButton.js +98 -95
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"XLoader.js","sources":["../../src/loaders/XLoader.js"],"sourcesContent":["import {\n AnimationClip,\n AnimationMixer,\n Bone,\n BufferGeometry,\n FileLoader,\n Float32BufferAttribute,\n FrontSide,\n Loader,\n LoaderUtils,\n Matrix4,\n Mesh,\n MeshPhongMaterial,\n Quaternion,\n Skeleton,\n SkinnedMesh,\n TextureLoader,\n Uint16BufferAttribute,\n Vector2,\n Vector3,\n} from 'three'\nimport { decodeText } from '../_polyfill/LoaderUtils'\n\nvar XLoader = (function () {\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function')\n }\n }\n\n var createClass = (function () {\n function defineProperties(target, props) {\n for (let i = 0; i < props.length; i++) {\n var descriptor = props[i]\n descriptor.enumerable = descriptor.enumerable || false\n descriptor.configurable = true\n if ('value' in descriptor) descriptor.writable = true\n Object.defineProperty(target, descriptor.key, descriptor)\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps)\n if (staticProps) defineProperties(Constructor, staticProps)\n return Constructor\n }\n })()\n\n var XboneInf = function XboneInf() {\n classCallCheck(this, XboneInf)\n\n this.boneName = ''\n this.BoneIndex = 0\n this.Indeces = []\n this.Weights = []\n this.initMatrix = null\n this.OffsetMatrix = null\n }\n\n var XAnimationInfo = function XAnimationInfo() {\n classCallCheck(this, XAnimationInfo)\n\n this.animeName = ''\n this.boneName = ''\n this.targetBone = null\n this.keyType = 4\n this.frameStartLv = 0\n this.keyFrames = []\n this.InverseMx = null\n }\n\n var XAnimationObj = (function () {\n function XAnimationObj(_flags) {\n classCallCheck(this, XAnimationObj)\n\n this.fps = 30\n this.name = 'xanimation'\n this.length = 0\n this.hierarchy = []\n this.putFlags = _flags\n if (this.putFlags.putPos === undefined) {\n this.putFlags.putPos = true\n }\n\n if (this.putFlags.putRot === undefined) {\n this.putFlags.putRot = true\n }\n\n if (this.putFlags.putScl === undefined) {\n this.putFlags.putScl = true\n }\n }\n\n createClass(XAnimationObj, [\n {\n key: 'make',\n value: function make(XAnimationInfoArray) {\n for (let i = 0; i < XAnimationInfoArray.length; i++) {\n this.hierarchy.push(this.makeBonekeys(XAnimationInfoArray[i]))\n }\n\n this.length = this.hierarchy[0].keys[this.hierarchy[0].keys.length - 1].time\n },\n },\n {\n key: 'clone',\n value: function clone() {\n return Object.assign({}, this)\n },\n },\n {\n key: 'makeBonekeys',\n value: function makeBonekeys(XAnimationInfo) {\n var refObj = {}\n refObj.name = XAnimationInfo.boneName\n refObj.parent = ''\n refObj.keys = this.keyFrameRefactor(XAnimationInfo)\n refObj.copy = function () {\n return Object.assign({}, this)\n }\n\n return refObj\n },\n },\n {\n key: 'keyFrameRefactor',\n value: function keyFrameRefactor(XAnimationInfo) {\n var keys = []\n for (let i = 0; i < XAnimationInfo.keyFrames.length; i++) {\n var keyframe = {}\n keyframe.time = XAnimationInfo.keyFrames[i].time * this.fps\n if (XAnimationInfo.keyFrames[i].pos && this.putFlags.putPos) {\n keyframe.pos = XAnimationInfo.keyFrames[i].pos\n }\n\n if (XAnimationInfo.keyFrames[i].rot && this.putFlags.putRot) {\n keyframe.rot = XAnimationInfo.keyFrames[i].rot\n }\n\n if (XAnimationInfo.keyFrames[i].scl && this.putFlags.putScl) {\n keyframe.scl = XAnimationInfo.keyFrames[i].scl\n }\n\n if (XAnimationInfo.keyFrames[i].matrix) {\n keyframe.matrix = XAnimationInfo.keyFrames[i].matrix\n if (this.putFlags.putPos) {\n keyframe.pos = new Vector3().setFromMatrixPosition(keyframe.matrix)\n }\n\n if (this.putFlags.putRot) {\n keyframe.rot = new Quaternion().setFromRotationMatrix(keyframe.matrix)\n }\n\n if (this.putFlags.putScl) {\n keyframe.scl = new Vector3().setFromMatrixScale(keyframe.matrix)\n }\n }\n\n keys.push(keyframe)\n }\n\n return keys\n },\n },\n ])\n return XAnimationObj\n })()\n\n var XKeyFrameInfo = function XKeyFrameInfo() {\n classCallCheck(this, XKeyFrameInfo)\n\n this.index = 0\n this.Frame = 0\n this.time = 0.0\n this.matrix = null\n }\n\n var XLoader = (function () {\n function XLoader(manager) {\n Loader.call(this, manager)\n\n classCallCheck(this, XLoader)\n\n this.debug = false\n this.texloader = new TextureLoader(this.manager)\n this.url = ''\n this._putMatLength = 0\n this._nowMat = null\n this._nowFrameName = ''\n this.frameHierarchie = []\n this.Hierarchies = {}\n this.HieStack = []\n this._currentObject = {}\n this._currentFrame = {}\n this._data = null\n this.onLoad = null\n this.IsUvYReverse = true\n this.Meshes = []\n this.animations = []\n this.animTicksPerSecond = 30\n this._currentGeo = null\n this._currentAnime = null\n this._currentAnimeFrames = null\n }\n\n createClass(XLoader, [\n {\n key: '_setArgOption',\n value: function _setArgOption(_arg) {\n var _start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0\n\n if (!_arg) {\n return\n }\n\n for (let i = _start; i < _arg.length; i++) {\n switch (i) {\n case 0:\n this.url = _arg[i]\n break\n case 1:\n this.options = _arg[i]\n break\n }\n }\n\n if (this.options === undefined) {\n this.options = {}\n }\n },\n },\n {\n key: 'load',\n value: function load(_arg, onLoad, onProgress, onError) {\n var _this = this\n\n this._setArgOption(_arg)\n var loader = new FileLoader(this.manager)\n loader.setPath(this.path)\n loader.setResponseType('arraybuffer')\n loader.setRequestHeader(this.requestHeader)\n loader.setWithCredentials(this.withCredentials)\n loader.load(\n this.url,\n function (response) {\n try {\n _this.parse(response, onLoad)\n } catch (e) {\n if (onError) {\n onError(e)\n } else {\n console.error(e)\n }\n\n _this.manager.itemError(_this.url)\n }\n },\n onProgress,\n onError,\n )\n },\n },\n {\n key: '_readLine',\n value: function _readLine(line) {\n var readed = 0\n while (true) {\n var find = -1\n find = line.indexOf('//', readed)\n if (find === -1) {\n find = line.indexOf('#', readed)\n }\n\n if (find > -1 && find < 2) {\n var foundNewLine = -1\n foundNewLine = line.indexOf('\\r\\n', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 2\n } else {\n foundNewLine = line.indexOf('\\r', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 1\n } else {\n readed = line.indexOf('\\n', readed) + 1\n }\n }\n } else {\n break\n }\n }\n\n return line.substr(readed)\n },\n },\n {\n key: '_readLine',\n value: function _readLine(line) {\n var readed = 0\n while (true) {\n var find = -1\n find = line.indexOf('//', readed)\n if (find === -1) {\n find = line.indexOf('#', readed)\n }\n\n if (find > -1 && find < 2) {\n var foundNewLine = -1\n foundNewLine = line.indexOf('\\r\\n', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 2\n } else {\n foundNewLine = line.indexOf('\\r', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 1\n } else {\n readed = line.indexOf('\\n', readed) + 1\n }\n }\n } else {\n break\n }\n }\n\n return line.substr(readed)\n },\n },\n {\n key: '_isBinary',\n value: function _isBinary(binData) {\n var reader = new DataView(binData)\n var face_size = (32 / 8) * 3 + (32 / 8) * 3 * 3 + 16 / 8\n var n_faces = reader.getUint32(80, true)\n var expect = 80 + 32 / 8 + n_faces * face_size\n if (expect === reader.byteLength) {\n return true\n }\n\n var fileLength = reader.byteLength\n for (let index = 0; index < fileLength; index++) {\n if (reader.getUint8(index, false) > 127) {\n return true\n }\n }\n\n return false\n },\n },\n {\n key: '_ensureBinary',\n value: function _ensureBinary(buf) {\n if (typeof buf === 'string') {\n var array_buffer = new Uint8Array(buf.length)\n for (let i = 0; i < buf.length; i++) {\n array_buffer[i] = buf.charCodeAt(i) & 0xff\n }\n\n return array_buffer.buffer || array_buffer\n } else {\n return buf\n }\n },\n },\n {\n key: '_ensureString',\n value: function _ensureString(buf) {\n if (typeof buf !== 'string') {\n return decodeText(new Uint8Array(buf))\n } else {\n return buf\n }\n },\n },\n {\n key: 'parse',\n value: function _parse(data, onLoad) {\n var binData = this._ensureBinary(data)\n this._data = this._ensureString(data)\n this.onLoad = onLoad\n return this._isBinary(binData) ? this._parseBinary(binData) : this._parseASCII()\n },\n },\n {\n key: '_parseBinary',\n value: function _parseBinary(data) {\n return this._parseASCII(decodeText(new Uint8Array(data)))\n },\n },\n {\n key: '_parseASCII',\n value: function _parseASCII() {\n var path\n\n if (this.resourcePath !== '') {\n path = this.resourcePath\n } else if (this.path !== '') {\n path = this.path\n } else {\n path = LoaderUtils.extractUrlBase(this.url)\n }\n\n this.texloader.setPath(path).setCrossOrigin(this.crossOrigin)\n\n var endRead = 16\n this.Hierarchies.children = []\n this._hierarchieParse(this.Hierarchies, endRead)\n this._changeRoot()\n this._currentObject = this.Hierarchies.children.shift()\n this._mainloop()\n },\n },\n {\n key: '_hierarchieParse',\n value: function _hierarchieParse(_parent, _end) {\n var endRead = _end\n while (true) {\n var find1 = this._data.indexOf('{', endRead) + 1\n var findEnd = this._data.indexOf('}', endRead)\n var findNext = this._data.indexOf('{', find1) + 1\n if (find1 > 0 && findEnd > find1) {\n var _currentObject = {}\n _currentObject.children = []\n var nameData = this._readLine(this._data.substr(endRead, find1 - endRead - 1)).trim()\n var word = nameData.split(/ /g)\n if (word.length > 0) {\n _currentObject.type = word[0]\n if (word.length >= 2) {\n _currentObject.name = word[1]\n } else {\n _currentObject.name = word[0] + this.Hierarchies.children.length\n }\n } else {\n _currentObject.name = nameData\n _currentObject.type = ''\n }\n\n if (_currentObject.type === 'Animation') {\n _currentObject.data = this._data.substr(findNext, findEnd - findNext).trim()\n var refs = this._hierarchieParse(_currentObject, findEnd + 1)\n endRead = refs.end\n _currentObject.children = refs.parent.children\n } else {\n var DataEnder = this._data.lastIndexOf(';', findNext > 0 ? Math.min(findNext, findEnd) : findEnd)\n _currentObject.data = this._data.substr(find1, DataEnder - find1).trim()\n if (findNext <= 0 || findEnd < findNext) {\n endRead = findEnd + 1\n } else {\n var nextStart = Math.max(DataEnder + 1, find1)\n var _refs = this._hierarchieParse(_currentObject, nextStart)\n endRead = _refs.end\n _currentObject.children = _refs.parent.children\n }\n }\n\n _currentObject.parent = _parent\n if (_currentObject.type != 'template') {\n _parent.children.push(_currentObject)\n }\n } else {\n endRead = find1 === -1 ? this._data.length : findEnd + 1\n break\n }\n }\n\n return {\n parent: _parent,\n end: endRead,\n }\n },\n },\n {\n key: '_mainloop',\n value: function _mainloop() {\n var _this2 = this\n\n this._mainProc()\n if (this._currentObject.parent || this._currentObject.children.length > 0 || !this._currentObject.worked) {\n setTimeout(function () {\n _this2._mainloop()\n }, 1)\n } else {\n setTimeout(function () {\n _this2.onLoad({\n models: _this2.Meshes,\n animations: _this2.animations,\n })\n }, 1)\n }\n },\n },\n {\n key: '_mainProc',\n value: function _mainProc() {\n var breakFlag = false\n while (true) {\n if (!this._currentObject.worked) {\n switch (this._currentObject.type) {\n case 'template':\n break\n case 'AnimTicksPerSecond':\n this.animTicksPerSecond = parseInt(this._currentObject.data)\n break\n case 'Frame':\n this._setFrame()\n break\n case 'FrameTransformMatrix':\n this._setFrameTransformMatrix()\n break\n case 'Mesh':\n this._changeRoot()\n this._currentGeo = {}\n this._currentGeo.name = this._currentObject.name.trim()\n this._currentGeo.parentName = this._getParentName(this._currentObject).trim()\n this._currentGeo.VertexSetedBoneCount = []\n this._currentGeo.GeometryData = {\n vertices: [],\n normals: [],\n uvs: [],\n skinIndices: [],\n skinWeights: [],\n indices: [],\n materialIndices: [],\n }\n this._currentGeo.Materials = []\n this._currentGeo.normalVectors = []\n this._currentGeo.BoneInfs = []\n this._currentGeo.baseFrame = this._currentFrame\n this._makeBoneFrom_CurrentFrame()\n this._readVertexDatas()\n breakFlag = true\n break\n case 'MeshNormals':\n this._readVertexDatas()\n break\n case 'MeshTextureCoords':\n this._setMeshTextureCoords()\n break\n case 'VertexDuplicationIndices':\n break\n case 'MeshMaterialList':\n this._setMeshMaterialList()\n break\n case 'Material':\n this._setMaterial()\n break\n case 'SkinWeights':\n this._setSkinWeights()\n break\n case 'AnimationSet':\n this._changeRoot()\n this._currentAnime = {}\n this._currentAnime.name = this._currentObject.name.trim()\n this._currentAnime.AnimeFrames = []\n break\n case 'Animation':\n if (this._currentAnimeFrames) {\n this._currentAnime.AnimeFrames.push(this._currentAnimeFrames)\n }\n\n this._currentAnimeFrames = new XAnimationInfo()\n this._currentAnimeFrames.boneName = this._currentObject.data.trim()\n break\n case 'AnimationKey':\n this._readAnimationKey()\n breakFlag = true\n break\n }\n\n this._currentObject.worked = true\n }\n\n if (this._currentObject.children.length > 0) {\n this._currentObject = this._currentObject.children.shift()\n if (this.debug) {\n console.log('processing ' + this._currentObject.name)\n }\n\n if (breakFlag) break\n } else {\n if (this._currentObject.worked) {\n if (this._currentObject.parent && !this._currentObject.parent.parent) {\n this._changeRoot()\n }\n }\n\n if (this._currentObject.parent) {\n this._currentObject = this._currentObject.parent\n } else {\n breakFlag = true\n }\n\n if (breakFlag) break\n }\n }\n\n return\n },\n },\n {\n key: '_changeRoot',\n value: function _changeRoot() {\n if (this._currentGeo != null && this._currentGeo.name) {\n this._makeOutputGeometry()\n }\n\n this._currentGeo = {}\n if (this._currentAnime != null && this._currentAnime.name) {\n if (this._currentAnimeFrames) {\n this._currentAnime.AnimeFrames.push(this._currentAnimeFrames)\n this._currentAnimeFrames = null\n }\n\n this._makeOutputAnimation()\n }\n\n this._currentAnime = {}\n },\n },\n {\n key: '_getParentName',\n value: function _getParentName(_obj) {\n if (_obj.parent) {\n if (_obj.parent.name) {\n return _obj.parent.name\n } else {\n return this._getParentName(_obj.parent)\n }\n } else {\n return ''\n }\n },\n },\n {\n key: '_setFrame',\n value: function _setFrame() {\n this._nowFrameName = this._currentObject.name.trim()\n this._currentFrame = {}\n this._currentFrame.name = this._nowFrameName\n this._currentFrame.children = []\n if (this._currentObject.parent && this._currentObject.parent.name) {\n this._currentFrame.parentName = this._currentObject.parent.name\n }\n\n this.frameHierarchie.push(this._nowFrameName)\n this.HieStack[this._nowFrameName] = this._currentFrame\n },\n },\n {\n key: '_setFrameTransformMatrix',\n value: function _setFrameTransformMatrix() {\n this._currentFrame.FrameTransformMatrix = new Matrix4()\n var data = this._currentObject.data.split(',')\n this._ParseMatrixData(this._currentFrame.FrameTransformMatrix, data)\n this._makeBoneFrom_CurrentFrame()\n },\n },\n {\n key: '_makeBoneFrom_CurrentFrame',\n value: function _makeBoneFrom_CurrentFrame() {\n if (!this._currentFrame.FrameTransformMatrix) {\n return\n }\n\n var b = new Bone()\n b.name = this._currentFrame.name\n b.applyMatrix4(this._currentFrame.FrameTransformMatrix)\n b.matrixWorld = b.matrix\n b.FrameTransformMatrix = this._currentFrame.FrameTransformMatrix\n this._currentFrame.putBone = b\n if (this._currentFrame.parentName) {\n for (let frame in this.HieStack) {\n if (this.HieStack[frame].name === this._currentFrame.parentName) {\n this.HieStack[frame].putBone.add(this._currentFrame.putBone)\n }\n }\n }\n },\n },\n {\n key: '_readVertexDatas',\n value: function _readVertexDatas() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n var maxLength = 0\n while (true) {\n var changeMode = false\n if (mode_local === 0) {\n var refO = this._readInt1(endRead)\n endRead = refO.endRead\n mode_local = 1\n maxLength = this._currentObject.data.indexOf(';;', endRead) + 1\n if (maxLength <= 0) {\n maxLength = this._currentObject.data.length\n }\n } else {\n var find = 0\n switch (mode) {\n case 0:\n find = this._currentObject.data.indexOf(',', endRead) + 1\n break\n case 1:\n find = this._currentObject.data.indexOf(';,', endRead) + 1\n break\n }\n\n if (find === 0 || find > maxLength) {\n find = maxLength\n mode_local = 0\n changeMode = true\n }\n\n switch (this._currentObject.type) {\n case 'Mesh':\n switch (mode) {\n case 0:\n this._readVertex1(this._currentObject.data.substr(endRead, find - endRead))\n break\n case 1:\n this._readFace1(this._currentObject.data.substr(endRead, find - endRead))\n break\n }\n\n break\n case 'MeshNormals':\n switch (mode) {\n case 0:\n this._readNormalVector1(this._currentObject.data.substr(endRead, find - endRead))\n break\n }\n\n break\n }\n\n endRead = find + 1\n if (changeMode) {\n mode++\n }\n }\n\n if (endRead >= this._currentObject.data.length) {\n break\n }\n }\n },\n },\n {\n key: '_readInt1',\n value: function _readInt1(start) {\n var find = this._currentObject.data.indexOf(';', start)\n return {\n refI: parseInt(this._currentObject.data.substr(start, find - start)),\n endRead: find + 1,\n }\n },\n },\n {\n key: '_readVertex1',\n value: function _readVertex1(line) {\n var data = this._readLine(line.trim())\n .substr(0, line.length - 2)\n .split(';')\n this._currentGeo.GeometryData.vertices.push(parseFloat(data[0]), parseFloat(data[1]), parseFloat(data[2]))\n this._currentGeo.GeometryData.skinIndices.push(0, 0, 0, 0)\n this._currentGeo.GeometryData.skinWeights.push(1, 0, 0, 0)\n this._currentGeo.VertexSetedBoneCount.push(0)\n },\n },\n {\n key: '_readFace1',\n value: function _readFace1(line) {\n var data = this._readLine(line.trim())\n .substr(2, line.length - 4)\n .split(',')\n this._currentGeo.GeometryData.indices.push(\n parseInt(data[0], 10),\n parseInt(data[1], 10),\n parseInt(data[2], 10),\n )\n },\n },\n {\n key: '_readNormalVector1',\n value: function _readNormalVector1(line) {\n var data = this._readLine(line.trim())\n .substr(0, line.length - 2)\n .split(';')\n this._currentGeo.GeometryData.normals.push(parseFloat(data[0]), parseFloat(data[1]), parseFloat(data[2]))\n },\n },\n {\n key: '_buildGeometry',\n value: function _buildGeometry() {\n var bufferGeometry = new BufferGeometry()\n var position = []\n var normals = []\n var uvs = []\n var skinIndices = []\n var skinWeights = []\n\n //\n\n var data = this._currentGeo.GeometryData\n\n for (let i = 0, l = data.indices.length; i < l; i++) {\n var stride2 = data.indices[i] * 2\n var stride3 = data.indices[i] * 3\n var stride4 = data.indices[i] * 4\n\n position.push(data.vertices[stride3], data.vertices[stride3 + 1], data.vertices[stride3 + 2])\n normals.push(data.normals[stride3], data.normals[stride3 + 1], data.normals[stride3 + 2])\n skinIndices.push(\n data.skinIndices[stride4],\n data.skinIndices[stride4 + 1],\n data.skinIndices[stride4 + 2],\n data.skinIndices[stride4 + 3],\n )\n skinWeights.push(\n data.skinWeights[stride4],\n data.skinWeights[stride4 + 1],\n data.skinWeights[stride4 + 2],\n data.skinWeights[stride4 + 3],\n )\n uvs.push(data.uvs[stride2], data.uvs[stride2 + 1])\n }\n\n //\n\n bufferGeometry.setAttribute('position', new Float32BufferAttribute(position, 3))\n bufferGeometry.setAttribute('normal', new Float32BufferAttribute(normals, 3))\n bufferGeometry.setAttribute('uv', new Float32BufferAttribute(uvs, 2))\n bufferGeometry.setAttribute('skinIndex', new Uint16BufferAttribute(skinIndices, 4))\n bufferGeometry.setAttribute('skinWeight', new Float32BufferAttribute(skinWeights, 4))\n\n this._computeGroups(bufferGeometry, data.materialIndices)\n\n return bufferGeometry\n },\n },\n {\n key: '_computeGroups',\n value: function _computeGroups(bufferGeometry, materialIndices) {\n var group\n var groups = []\n var materialIndex = undefined\n\n for (let i = 0; i < materialIndices.length; i++) {\n var currentMaterialIndex = materialIndices[i]\n\n if (currentMaterialIndex !== materialIndex) {\n materialIndex = currentMaterialIndex\n\n if (group !== undefined) {\n group.count = i * 3 - group.start\n groups.push(group)\n }\n\n group = {\n start: i * 3,\n materialIndex: materialIndex,\n }\n }\n }\n\n if (group !== undefined) {\n group.count = i * 3 - group.start\n groups.push(group)\n }\n\n bufferGeometry.groups = groups\n },\n },\n {\n key: '_setMeshTextureCoords',\n value: function _setMeshTextureCoords() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n while (true) {\n switch (mode) {\n case 0:\n if (mode_local === 0) {\n var refO = this._readInt1(0)\n endRead = refO.endRead\n mode_local = 1\n } else {\n var find = this._currentObject.data.indexOf(',', endRead) + 1\n if (find === 0) {\n find = this._currentObject.data.length\n mode = 2\n mode_local = 0\n }\n\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(';')\n if (this.IsUvYReverse) {\n this._currentGeo.GeometryData.uvs.push(parseFloat(data[0]), 1 - parseFloat(data[1]))\n } else {\n this._currentGeo.GeometryData.uvs.push(parseFloat(data[0]), parseFloat(data[1]))\n }\n\n endRead = find + 1\n }\n\n break\n }\n\n if (endRead >= this._currentObject.data.length) {\n break\n }\n }\n },\n },\n {\n key: '_setMeshMaterialList',\n value: function _setMeshMaterialList() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n while (true) {\n if (mode_local < 2) {\n var refO = this._readInt1(endRead)\n endRead = refO.endRead\n mode_local++\n } else {\n var find = this._currentObject.data.indexOf(';', endRead)\n if (find === -1) {\n find = this._currentObject.data.length\n mode = 3\n mode_local = 0\n }\n\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(',')\n for (let i = 0; i < data.length; i++) {\n this._currentGeo.GeometryData.materialIndices[i] = parseInt(data[i])\n }\n\n endRead = this._currentObject.data.length\n }\n\n if (endRead >= this._currentObject.data.length || mode >= 3) {\n break\n }\n }\n },\n },\n {\n key: '_setMaterial',\n value: function _setMaterial() {\n var _nowMat = new MeshPhongMaterial({\n color: Math.random() * 0xffffff,\n })\n _nowMat.side = FrontSide\n _nowMat.name = this._currentObject.name\n var endRead = 0\n var find = this._currentObject.data.indexOf(';;', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(';')\n _nowMat.color.r = parseFloat(data[0])\n _nowMat.color.g = parseFloat(data[1])\n _nowMat.color.b = parseFloat(data[2])\n endRead = find + 2\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n _nowMat.shininess = parseFloat(this._readLine(line))\n endRead = find + 1\n find = this._currentObject.data.indexOf(';;', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data2 = this._readLine(line.trim()).split(';')\n _nowMat.specular.r = parseFloat(data2[0])\n _nowMat.specular.g = parseFloat(data2[1])\n _nowMat.specular.b = parseFloat(data2[2])\n endRead = find + 2\n find = this._currentObject.data.indexOf(';;', endRead)\n if (find === -1) {\n find = this._currentObject.data.length\n }\n\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data3 = this._readLine(line.trim()).split(';')\n _nowMat.emissive.r = parseFloat(data3[0])\n _nowMat.emissive.g = parseFloat(data3[1])\n _nowMat.emissive.b = parseFloat(data3[2])\n var localObject = null\n while (true) {\n if (this._currentObject.children.length > 0) {\n localObject = this._currentObject.children.shift()\n if (this.debug) {\n console.log('processing ' + localObject.name)\n }\n\n var fileName = localObject.data.substr(1, localObject.data.length - 2)\n switch (localObject.type) {\n case 'TextureFilename':\n _nowMat.map = this.texloader.load(fileName)\n break\n case 'BumpMapFilename':\n _nowMat.bumpMap = this.texloader.load(fileName)\n _nowMat.bumpScale = 0.05\n break\n case 'NormalMapFilename':\n _nowMat.normalMap = this.texloader.load(fileName)\n _nowMat.normalScale = new Vector2(2, 2)\n break\n case 'EmissiveMapFilename':\n _nowMat.emissiveMap = this.texloader.load(fileName)\n break\n case 'LightMapFilename':\n _nowMat.lightMap = this.texloader.load(fileName)\n break\n }\n } else {\n break\n }\n }\n\n this._currentGeo.Materials.push(_nowMat)\n },\n },\n {\n key: '_setSkinWeights',\n value: function _setSkinWeights() {\n var boneInf = new XboneInf()\n var endRead = 0\n var find = this._currentObject.data.indexOf(';', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n endRead = find + 1\n boneInf.boneName = line.substr(1, line.length - 2)\n boneInf.BoneIndex = this._currentGeo.BoneInfs.length\n find = this._currentObject.data.indexOf(';', endRead)\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(',')\n for (let i = 0; i < data.length; i++) {\n boneInf.Indeces.push(parseInt(data[i]))\n }\n\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data2 = this._readLine(line.trim()).split(',')\n for (let _i = 0; _i < data2.length; _i++) {\n boneInf.Weights.push(parseFloat(data2[_i]))\n }\n\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n if (find <= 0) {\n find = this._currentObject.data.length\n }\n\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data3 = this._readLine(line.trim()).split(',')\n boneInf.OffsetMatrix = new Matrix4()\n this._ParseMatrixData(boneInf.OffsetMatrix, data3)\n this._currentGeo.BoneInfs.push(boneInf)\n },\n },\n {\n key: '_makePutBoneList',\n value: function _makePutBoneList(_RootName, _bones) {\n var putting = false\n for (let frame in this.HieStack) {\n if (this.HieStack[frame].name === _RootName || putting) {\n putting = true\n var b = new Bone()\n b.name = this.HieStack[frame].name\n b.applyMatrix4(this.HieStack[frame].FrameTransformMatrix)\n b.matrixWorld = b.matrix\n b.FrameTransformMatrix = this.HieStack[frame].FrameTransformMatrix\n b.pos = new Vector3().setFromMatrixPosition(b.FrameTransformMatrix).toArray()\n b.rotq = new Quaternion().setFromRotationMatrix(b.FrameTransformMatrix).toArray()\n b.scl = new Vector3().setFromMatrixScale(b.FrameTransformMatrix).toArray()\n if (this.HieStack[frame].parentName && this.HieStack[frame].parentName.length > 0) {\n for (let i = 0; i < _bones.length; i++) {\n if (this.HieStack[frame].parentName === _bones[i].name) {\n _bones[i].add(b)\n b.parent = i\n break\n }\n }\n }\n\n _bones.push(b)\n }\n }\n },\n },\n {\n key: '_makeOutputGeometry',\n value: function _makeOutputGeometry() {\n var mesh = null\n if (this._currentGeo.BoneInfs.length > 0) {\n var putBones = []\n this._makePutBoneList(this._currentGeo.baseFrame.parentName, putBones)\n for (let bi = 0; bi < this._currentGeo.BoneInfs.length; bi++) {\n var boneIndex = 0\n for (let bb = 0; bb < putBones.length; bb++) {\n if (putBones[bb].name === this._currentGeo.BoneInfs[bi].boneName) {\n boneIndex = bb\n putBones[bb].OffsetMatrix = new Matrix4()\n putBones[bb].OffsetMatrix.copy(this._currentGeo.BoneInfs[bi].OffsetMatrix)\n break\n }\n }\n\n for (let vi = 0; vi < this._currentGeo.BoneInfs[bi].Indeces.length; vi++) {\n var nowVertexID = this._currentGeo.BoneInfs[bi].Indeces[vi]\n var nowVal = this._currentGeo.BoneInfs[bi].Weights[vi]\n\n var stride = nowVertexID * 4\n\n switch (this._currentGeo.VertexSetedBoneCount[nowVertexID]) {\n case 0:\n this._currentGeo.GeometryData.skinIndices[stride] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride] = nowVal\n break\n case 1:\n this._currentGeo.GeometryData.skinIndices[stride + 1] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 1] = nowVal\n break\n case 2:\n this._currentGeo.GeometryData.skinIndices[stride + 2] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 2] = nowVal\n break\n case 3:\n this._currentGeo.GeometryData.skinIndices[stride + 3] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 3] = nowVal\n break\n }\n\n this._currentGeo.VertexSetedBoneCount[nowVertexID]++\n if (this._currentGeo.VertexSetedBoneCount[nowVertexID] > 4) {\n console.log('warn! over 4 bone weight! :' + nowVertexID)\n }\n }\n }\n\n for (let sk = 0; sk < this._currentGeo.Materials.length; sk++) {\n this._currentGeo.Materials[sk].skinning = true\n }\n\n var offsetList = []\n for (let _bi = 0; _bi < putBones.length; _bi++) {\n if (putBones[_bi].OffsetMatrix) {\n offsetList.push(putBones[_bi].OffsetMatrix)\n } else {\n offsetList.push(new Matrix4())\n }\n }\n\n var bufferGeometry = this._buildGeometry()\n mesh = new SkinnedMesh(\n bufferGeometry,\n this._currentGeo.Materials.length === 1 ? this._currentGeo.Materials[0] : this._currentGeo.Materials,\n )\n\n this._initSkeleton(mesh, putBones, offsetList)\n } else {\n var _bufferGeometry = this._buildGeometry()\n mesh = new Mesh(\n _bufferGeometry,\n this._currentGeo.Materials.length === 1 ? this._currentGeo.Materials[0] : this._currentGeo.Materials,\n )\n }\n\n mesh.name = this._currentGeo.name\n var worldBaseMx = new Matrix4()\n var currentMxFrame = this._currentGeo.baseFrame.putBone\n if (currentMxFrame && currentMxFrame.parent) {\n while (true) {\n currentMxFrame = currentMxFrame.parent\n if (currentMxFrame) {\n worldBaseMx.multiply(currentMxFrame.FrameTransformMatrix)\n } else {\n break\n }\n }\n\n mesh.applyMatrix4(worldBaseMx)\n }\n\n this.Meshes.push(mesh)\n },\n },\n {\n key: '_initSkeleton',\n value: function _initSkeleton(mesh, boneList, boneInverses) {\n var bones = [],\n bone,\n gbone\n var i, il\n\n for (i = 0, il = boneList.length; i < il; i++) {\n gbone = boneList[i]\n\n bone = new Bone()\n bones.push(bone)\n\n bone.name = gbone.name\n bone.position.fromArray(gbone.pos)\n bone.quaternion.fromArray(gbone.rotq)\n if (gbone.scl !== undefined) bone.scale.fromArray(gbone.scl)\n }\n\n for (i = 0, il = boneList.length; i < il; i++) {\n gbone = boneList[i]\n\n if (gbone.parent !== -1 && gbone.parent !== null && bones[gbone.parent] !== undefined) {\n bones[gbone.parent].add(bones[i])\n } else {\n mesh.add(bones[i])\n }\n }\n\n mesh.updateMatrixWorld(true)\n\n var skeleton = new Skeleton(bones, boneInverses)\n mesh.bind(skeleton, mesh.matrixWorld)\n },\n },\n {\n key: '_readAnimationKey',\n value: function _readAnimationKey() {\n var endRead = 0\n var find = this._currentObject.data.indexOf(';', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n endRead = find + 1\n var nowKeyType = parseInt(this._readLine(line))\n find = this._currentObject.data.indexOf(';', endRead)\n endRead = find + 1\n line = this._currentObject.data.substr(endRead)\n var data = this._readLine(line.trim()).split(';;,')\n for (let i = 0; i < data.length; i++) {\n var data2 = data[i].split(';')\n var keyInfo = new XKeyFrameInfo()\n keyInfo.type = nowKeyType\n keyInfo.Frame = parseInt(data2[0])\n keyInfo.index = this._currentAnimeFrames.keyFrames.length\n keyInfo.time = keyInfo.Frame\n if (nowKeyType != 4) {\n var frameFound = false\n for (let mm = 0; mm < this._currentAnimeFrames.keyFrames.length; mm++) {\n if (this._currentAnimeFrames.keyFrames[mm].Frame === keyInfo.Frame) {\n keyInfo = this._currentAnimeFrames.keyFrames[mm]\n frameFound = true\n break\n }\n }\n\n var frameValue = data2[2].split(',')\n switch (nowKeyType) {\n case 0:\n keyInfo.rot = new Quaternion(\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n parseFloat(frameValue[3]),\n parseFloat(frameValue[0]) * -1,\n )\n break\n case 1:\n keyInfo.scl = new Vector3(\n parseFloat(frameValue[0]),\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n )\n break\n case 2:\n keyInfo.pos = new Vector3(\n parseFloat(frameValue[0]),\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n )\n break\n }\n\n if (!frameFound) {\n this._currentAnimeFrames.keyFrames.push(keyInfo)\n }\n } else {\n keyInfo.matrix = new Matrix4()\n this._ParseMatrixData(keyInfo.matrix, data2[2].split(','))\n this._currentAnimeFrames.keyFrames.push(keyInfo)\n }\n }\n },\n },\n {\n key: '_makeOutputAnimation',\n value: function _makeOutputAnimation() {\n var animationObj = new XAnimationObj(this.options)\n animationObj.fps = this.animTicksPerSecond\n animationObj.name = this._currentAnime.name\n animationObj.make(this._currentAnime.AnimeFrames)\n this.animations.push(animationObj)\n },\n },\n {\n key: 'assignAnimation',\n value: function assignAnimation(_model, _animation) {\n var model = _model\n var animation = _animation\n if (!model) {\n model = this.Meshes[0]\n }\n\n if (!animation) {\n animation = this.animations[0]\n }\n\n if (!model || !animation) {\n return null\n }\n\n var put = {}\n put.fps = animation.fps\n put.name = animation.name\n put.length = animation.length\n put.hierarchy = []\n for (let b = 0; b < model.skeleton.bones.length; b++) {\n var findAnimation = false\n for (let i = 0; i < animation.hierarchy.length; i++) {\n if (model.skeleton.bones[b].name === animation.hierarchy[i].name) {\n findAnimation = true\n var c_key = animation.hierarchy[i].copy()\n c_key.parent = -1\n if (model.skeleton.bones[b].parent && model.skeleton.bones[b].parent.type === 'Bone') {\n for (let bb = 0; bb < put.hierarchy.length; bb++) {\n if (put.hierarchy[bb].name === model.skeleton.bones[b].parent.name) {\n c_key.parent = bb\n c_key.parentName = model.skeleton.bones[b].parent.name\n }\n }\n }\n\n put.hierarchy.push(c_key)\n break\n }\n }\n\n if (!findAnimation) {\n var _c_key = animation.hierarchy[0].copy()\n _c_key.name = model.skeleton.bones[b].name\n _c_key.parent = -1\n for (let k = 0; k < _c_key.keys.length; k++) {\n if (_c_key.keys[k].pos) {\n _c_key.keys[k].pos.set(0, 0, 0)\n }\n\n if (_c_key.keys[k].scl) {\n _c_key.keys[k].scl.set(1, 1, 1)\n }\n\n if (_c_key.keys[k].rot) {\n _c_key.keys[k].rot.set(0, 0, 0, 1)\n }\n }\n\n put.hierarchy.push(_c_key)\n }\n }\n\n if (!model.geometry.animations) {\n model.geometry.animations = []\n }\n\n model.geometry.animations.push(AnimationClip.parseAnimation(put, model.skeleton.bones))\n if (!model.animationMixer) {\n model.animationMixer = new AnimationMixer(model)\n }\n\n return put\n },\n },\n {\n key: '_ParseMatrixData',\n value: function _ParseMatrixData(targetMatrix, data) {\n targetMatrix.set(\n parseFloat(data[0]),\n parseFloat(data[4]),\n parseFloat(data[8]),\n parseFloat(data[12]),\n parseFloat(data[1]),\n parseFloat(data[5]),\n parseFloat(data[9]),\n parseFloat(data[13]),\n parseFloat(data[2]),\n parseFloat(data[6]),\n parseFloat(data[10]),\n parseFloat(data[14]),\n parseFloat(data[3]),\n parseFloat(data[7]),\n parseFloat(data[11]),\n parseFloat(data[15]),\n )\n },\n },\n ])\n return XLoader\n })()\n\n return XLoader\n})()\n\nexport { XLoader }\n"],"names":["i","XboneInf","XAnimationInfo","XAnimationObj","XKeyFrameInfo","XLoader"],"mappings":";;AAuBG,IAAC,UAAW,WAAY;AACzB,MAAI,iBAAiB,SAAU,UAAU,aAAa;AACpD,QAAI,EAAE,oBAAoB,cAAc;AACtC,YAAM,IAAI,UAAU,mCAAmC;AAAA,IACxD;AAAA,EACF;AAED,MAAI,cAAe,WAAY;AAC7B,aAAS,iBAAiB,QAAQ,OAAO;AACvC,eAASA,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,YAAI,aAAa,MAAMA,EAAC;AACxB,mBAAW,aAAa,WAAW,cAAc;AACjD,mBAAW,eAAe;AAC1B,YAAI,WAAW;AAAY,qBAAW,WAAW;AACjD,eAAO,eAAe,QAAQ,WAAW,KAAK,UAAU;AAAA,MACzD;AAAA,IACF;AAED,WAAO,SAAU,aAAa,YAAY,aAAa;AACrD,UAAI;AAAY,yBAAiB,YAAY,WAAW,UAAU;AAClE,UAAI;AAAa,yBAAiB,aAAa,WAAW;AAC1D,aAAO;AAAA,IACR;AAAA,EACL,EAAM;AAEJ,MAAI,WAAW,SAASC,YAAW;AACjC,mBAAe,MAAMA,SAAQ;AAE7B,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,UAAU,CAAE;AACjB,SAAK,UAAU,CAAE;AACjB,SAAK,aAAa;AAClB,SAAK,eAAe;AAAA,EACrB;AAED,MAAI,iBAAiB,SAASC,kBAAiB;AAC7C,mBAAe,MAAMA,eAAc;AAEnC,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,eAAe;AACpB,SAAK,YAAY,CAAE;AACnB,SAAK,YAAY;AAAA,EAClB;AAED,MAAI,gBAAiB,WAAY;AAC/B,aAASC,eAAc,QAAQ;AAC7B,qBAAe,MAAMA,cAAa;AAElC,WAAK,MAAM;AACX,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,YAAY,CAAE;AACnB,WAAK,WAAW;AAChB,UAAI,KAAK,SAAS,WAAW,QAAW;AACtC,aAAK,SAAS,SAAS;AAAA,MACxB;AAED,UAAI,KAAK,SAAS,WAAW,QAAW;AACtC,aAAK,SAAS,SAAS;AAAA,MACxB;AAED,UAAI,KAAK,SAAS,WAAW,QAAW;AACtC,aAAK,SAAS,SAAS;AAAA,MACxB;AAAA,IACF;AAED,gBAAYA,gBAAe;AAAA,MACzB;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,KAAK,qBAAqB;AACxC,mBAASH,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,iBAAK,UAAU,KAAK,KAAK,aAAa,oBAAoBA,EAAC,CAAC,CAAC;AAAA,UAC9D;AAED,eAAK,SAAS,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,UAAU,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE;AAAA,QACzE;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,QAAQ;AACtB,iBAAO,OAAO,OAAO,CAAE,GAAE,IAAI;AAAA,QAC9B;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,aAAaE,iBAAgB;AAC3C,cAAI,SAAS,CAAE;AACf,iBAAO,OAAOA,gBAAe;AAC7B,iBAAO,SAAS;AAChB,iBAAO,OAAO,KAAK,iBAAiBA,eAAc;AAClD,iBAAO,OAAO,WAAY;AACxB,mBAAO,OAAO,OAAO,CAAE,GAAE,IAAI;AAAA,UAC9B;AAED,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiBA,iBAAgB;AAC/C,cAAI,OAAO,CAAE;AACb,mBAASF,KAAI,GAAGA,KAAIE,gBAAe,UAAU,QAAQF,MAAK;AACxD,gBAAI,WAAW,CAAE;AACjB,qBAAS,OAAOE,gBAAe,UAAUF,EAAC,EAAE,OAAO,KAAK;AACxD,gBAAIE,gBAAe,UAAUF,EAAC,EAAE,OAAO,KAAK,SAAS,QAAQ;AAC3D,uBAAS,MAAME,gBAAe,UAAUF,EAAC,EAAE;AAAA,YAC5C;AAED,gBAAIE,gBAAe,UAAUF,EAAC,EAAE,OAAO,KAAK,SAAS,QAAQ;AAC3D,uBAAS,MAAME,gBAAe,UAAUF,EAAC,EAAE;AAAA,YAC5C;AAED,gBAAIE,gBAAe,UAAUF,EAAC,EAAE,OAAO,KAAK,SAAS,QAAQ;AAC3D,uBAAS,MAAME,gBAAe,UAAUF,EAAC,EAAE;AAAA,YAC5C;AAED,gBAAIE,gBAAe,UAAUF,EAAC,EAAE,QAAQ;AACtC,uBAAS,SAASE,gBAAe,UAAUF,EAAC,EAAE;AAC9C,kBAAI,KAAK,SAAS,QAAQ;AACxB,yBAAS,MAAM,IAAI,QAAS,EAAC,sBAAsB,SAAS,MAAM;AAAA,cACnE;AAED,kBAAI,KAAK,SAAS,QAAQ;AACxB,yBAAS,MAAM,IAAI,WAAY,EAAC,sBAAsB,SAAS,MAAM;AAAA,cACtE;AAED,kBAAI,KAAK,SAAS,QAAQ;AACxB,yBAAS,MAAM,IAAI,QAAS,EAAC,mBAAmB,SAAS,MAAM;AAAA,cAChE;AAAA,YACF;AAED,iBAAK,KAAK,QAAQ;AAAA,UACnB;AAED,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,IACP,CAAK;AACD,WAAOG;AAAA,EACX,EAAM;AAEJ,MAAI,gBAAgB,SAASC,iBAAgB;AAC3C,mBAAe,MAAMA,cAAa;AAElC,SAAK,QAAQ;AACb,SAAK,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EACf;AAED,MAAIC,WAAW,WAAY;AACzB,aAASA,SAAQ,SAAS;AACxB,aAAO,KAAK,MAAM,OAAO;AAEzB,qBAAe,MAAMA,QAAO;AAE5B,WAAK,QAAQ;AACb,WAAK,YAAY,IAAI,cAAc,KAAK,OAAO;AAC/C,WAAK,MAAM;AACX,WAAK,gBAAgB;AACrB,WAAK,UAAU;AACf,WAAK,gBAAgB;AACrB,WAAK,kBAAkB,CAAE;AACzB,WAAK,cAAc,CAAE;AACrB,WAAK,WAAW,CAAE;AAClB,WAAK,iBAAiB,CAAE;AACxB,WAAK,gBAAgB,CAAE;AACvB,WAAK,QAAQ;AACb,WAAK,SAAS;AACd,WAAK,eAAe;AACpB,WAAK,SAAS,CAAE;AAChB,WAAK,aAAa,CAAE;AACpB,WAAK,qBAAqB;AAC1B,WAAK,cAAc;AACnB,WAAK,gBAAgB;AACrB,WAAK,sBAAsB;AAAA,IAC5B;AAED,gBAAYA,UAAS;AAAA,MACnB;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc,MAAM;AAClC,cAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAEjF,cAAI,CAAC,MAAM;AACT;AAAA,UACD;AAED,mBAASL,KAAI,QAAQA,KAAI,KAAK,QAAQA,MAAK;AACzC,oBAAQA,IAAC;AAAA,cACP,KAAK;AACH,qBAAK,MAAM,KAAKA,EAAC;AACjB;AAAA,cACF,KAAK;AACH,qBAAK,UAAU,KAAKA,EAAC;AACrB;AAAA,YACH;AAAA,UACF;AAED,cAAI,KAAK,YAAY,QAAW;AAC9B,iBAAK,UAAU,CAAE;AAAA,UAClB;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,KAAK,MAAM,QAAQ,YAAY,SAAS;AACtD,cAAI,QAAQ;AAEZ,eAAK,cAAc,IAAI;AACvB,cAAI,SAAS,IAAI,WAAW,KAAK,OAAO;AACxC,iBAAO,QAAQ,KAAK,IAAI;AACxB,iBAAO,gBAAgB,aAAa;AACpC,iBAAO,iBAAiB,KAAK,aAAa;AAC1C,iBAAO,mBAAmB,KAAK,eAAe;AAC9C,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAU,UAAU;AAClB,kBAAI;AACF,sBAAM,MAAM,UAAU,MAAM;AAAA,cAC7B,SAAQ,GAAP;AACA,oBAAI,SAAS;AACX,0BAAQ,CAAC;AAAA,gBAC3B,OAAuB;AACL,0BAAQ,MAAM,CAAC;AAAA,gBAChB;AAED,sBAAM,QAAQ,UAAU,MAAM,GAAG;AAAA,cAClC;AAAA,YACF;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,UAAU,MAAM;AAC9B,cAAI,SAAS;AACb,iBAAO,MAAM;AACX,gBAAI,OAAO;AACX,mBAAO,KAAK,QAAQ,MAAM,MAAM;AAChC,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,YAChC;AAED,gBAAI,OAAO,MAAM,OAAO,GAAG;AACzB,kBAAI,eAAe;AACnB,6BAAe,KAAK,QAAQ,QAAQ,MAAM;AAC1C,kBAAI,eAAe,GAAG;AACpB,yBAAS,eAAe;AAAA,cACxC,OAAqB;AACL,+BAAe,KAAK,QAAQ,MAAM,MAAM;AACxC,oBAAI,eAAe,GAAG;AACpB,2BAAS,eAAe;AAAA,gBAC1C,OAAuB;AACL,2BAAS,KAAK,QAAQ,MAAM,MAAM,IAAI;AAAA,gBACvC;AAAA,cACF;AAAA,YACf,OAAmB;AACL;AAAA,YACD;AAAA,UACF;AAED,iBAAO,KAAK,OAAO,MAAM;AAAA,QAC1B;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,UAAU,MAAM;AAC9B,cAAI,SAAS;AACb,iBAAO,MAAM;AACX,gBAAI,OAAO;AACX,mBAAO,KAAK,QAAQ,MAAM,MAAM;AAChC,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,YAChC;AAED,gBAAI,OAAO,MAAM,OAAO,GAAG;AACzB,kBAAI,eAAe;AACnB,6BAAe,KAAK,QAAQ,QAAQ,MAAM;AAC1C,kBAAI,eAAe,GAAG;AACpB,yBAAS,eAAe;AAAA,cACxC,OAAqB;AACL,+BAAe,KAAK,QAAQ,MAAM,MAAM;AACxC,oBAAI,eAAe,GAAG;AACpB,2BAAS,eAAe;AAAA,gBAC1C,OAAuB;AACL,2BAAS,KAAK,QAAQ,MAAM,MAAM,IAAI;AAAA,gBACvC;AAAA,cACF;AAAA,YACf,OAAmB;AACL;AAAA,YACD;AAAA,UACF;AAED,iBAAO,KAAK,OAAO,MAAM;AAAA,QAC1B;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,UAAU,SAAS;AACjC,cAAI,SAAS,IAAI,SAAS,OAAO;AACjC,cAAI,YAAa,KAAK,IAAK,IAAK,KAAK,IAAK,IAAI,IAAI,KAAK;AACvD,cAAI,UAAU,OAAO,UAAU,IAAI,IAAI;AACvC,cAAI,SAAS,KAAK,KAAK,IAAI,UAAU;AACrC,cAAI,WAAW,OAAO,YAAY;AAChC,mBAAO;AAAA,UACR;AAED,cAAI,aAAa,OAAO;AACxB,mBAAS,QAAQ,GAAG,QAAQ,YAAY,SAAS;AAC/C,gBAAI,OAAO,SAAS,OAAO,KAAK,IAAI,KAAK;AACvC,qBAAO;AAAA,YACR;AAAA,UACF;AAED,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc,KAAK;AACjC,cAAI,OAAO,QAAQ,UAAU;AAC3B,gBAAI,eAAe,IAAI,WAAW,IAAI,MAAM;AAC5C,qBAASA,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,2BAAaA,EAAC,IAAI,IAAI,WAAWA,EAAC,IAAI;AAAA,YACvC;AAED,mBAAO,aAAa,UAAU;AAAA,UAC1C,OAAiB;AACL,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc,KAAK;AACjC,cAAI,OAAO,QAAQ,UAAU;AAC3B,mBAAO,WAAW,IAAI,WAAW,GAAG,CAAC;AAAA,UACjD,OAAiB;AACL,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,OAAO,MAAM,QAAQ;AACnC,cAAI,UAAU,KAAK,cAAc,IAAI;AACrC,eAAK,QAAQ,KAAK,cAAc,IAAI;AACpC,eAAK,SAAS;AACd,iBAAO,KAAK,UAAU,OAAO,IAAI,KAAK,aAAa,OAAO,IAAI,KAAK,YAAa;AAAA,QACjF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,aAAa,MAAM;AACjC,iBAAO,KAAK,YAAY,WAAW,IAAI,WAAW,IAAI,CAAC,CAAC;AAAA,QACzD;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc;AAC5B,cAAI;AAEJ,cAAI,KAAK,iBAAiB,IAAI;AAC5B,mBAAO,KAAK;AAAA,UACxB,WAAqB,KAAK,SAAS,IAAI;AAC3B,mBAAO,KAAK;AAAA,UACxB,OAAiB;AACL,mBAAO,YAAY,eAAe,KAAK,GAAG;AAAA,UAC3C;AAED,eAAK,UAAU,QAAQ,IAAI,EAAE,eAAe,KAAK,WAAW;AAE5D,cAAI,UAAU;AACd,eAAK,YAAY,WAAW,CAAE;AAC9B,eAAK,iBAAiB,KAAK,aAAa,OAAO;AAC/C,eAAK,YAAa;AAClB,eAAK,iBAAiB,KAAK,YAAY,SAAS,MAAO;AACvD,eAAK,UAAW;AAAA,QACjB;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiB,SAAS,MAAM;AAC9C,cAAI,UAAU;AACd,iBAAO,MAAM;AACX,gBAAI,QAAQ,KAAK,MAAM,QAAQ,KAAK,OAAO,IAAI;AAC/C,gBAAI,UAAU,KAAK,MAAM,QAAQ,KAAK,OAAO;AAC7C,gBAAI,WAAW,KAAK,MAAM,QAAQ,KAAK,KAAK,IAAI;AAChD,gBAAI,QAAQ,KAAK,UAAU,OAAO;AAChC,kBAAI,iBAAiB,CAAE;AACvB,6BAAe,WAAW,CAAE;AAC5B,kBAAI,WAAW,KAAK,UAAU,KAAK,MAAM,OAAO,SAAS,QAAQ,UAAU,CAAC,CAAC,EAAE,KAAM;AACrF,kBAAI,OAAO,SAAS,MAAM,IAAI;AAC9B,kBAAI,KAAK,SAAS,GAAG;AACnB,+BAAe,OAAO,KAAK,CAAC;AAC5B,oBAAI,KAAK,UAAU,GAAG;AACpB,iCAAe,OAAO,KAAK,CAAC;AAAA,gBAC9C,OAAuB;AACL,iCAAe,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,SAAS;AAAA,gBAC3D;AAAA,cACjB,OAAqB;AACL,+BAAe,OAAO;AACtB,+BAAe,OAAO;AAAA,cACvB;AAED,kBAAI,eAAe,SAAS,aAAa;AACvC,+BAAe,OAAO,KAAK,MAAM,OAAO,UAAU,UAAU,QAAQ,EAAE,KAAM;AAC5E,oBAAI,OAAO,KAAK,iBAAiB,gBAAgB,UAAU,CAAC;AAC5D,0BAAU,KAAK;AACf,+BAAe,WAAW,KAAK,OAAO;AAAA,cACtD,OAAqB;AACL,oBAAI,YAAY,KAAK,MAAM,YAAY,KAAK,WAAW,IAAI,KAAK,IAAI,UAAU,OAAO,IAAI,OAAO;AAChG,+BAAe,OAAO,KAAK,MAAM,OAAO,OAAO,YAAY,KAAK,EAAE,KAAM;AACxE,oBAAI,YAAY,KAAK,UAAU,UAAU;AACvC,4BAAU,UAAU;AAAA,gBACtC,OAAuB;AACL,sBAAI,YAAY,KAAK,IAAI,YAAY,GAAG,KAAK;AAC7C,sBAAI,QAAQ,KAAK,iBAAiB,gBAAgB,SAAS;AAC3D,4BAAU,MAAM;AAChB,iCAAe,WAAW,MAAM,OAAO;AAAA,gBACxC;AAAA,cACF;AAED,6BAAe,SAAS;AACxB,kBAAI,eAAe,QAAQ,YAAY;AACrC,wBAAQ,SAAS,KAAK,cAAc;AAAA,cACrC;AAAA,YACf,OAAmB;AACL,wBAAU,UAAU,KAAK,KAAK,MAAM,SAAS,UAAU;AACvD;AAAA,YACD;AAAA,UACF;AAED,iBAAO;AAAA,YACL,QAAQ;AAAA,YACR,KAAK;AAAA,UACN;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,YAAY;AAC1B,cAAI,SAAS;AAEb,eAAK,UAAW;AAChB,cAAI,KAAK,eAAe,UAAU,KAAK,eAAe,SAAS,SAAS,KAAK,CAAC,KAAK,eAAe,QAAQ;AACxG,uBAAW,WAAY;AACrB,qBAAO,UAAW;AAAA,YACnB,GAAE,CAAC;AAAA,UAChB,OAAiB;AACL,uBAAW,WAAY;AACrB,qBAAO,OAAO;AAAA,gBACZ,QAAQ,OAAO;AAAA,gBACf,YAAY,OAAO;AAAA,cACnC,CAAe;AAAA,YACF,GAAE,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,YAAY;AAC1B,cAAI,YAAY;AAChB,iBAAO,MAAM;AACX,gBAAI,CAAC,KAAK,eAAe,QAAQ;AAC/B,sBAAQ,KAAK,eAAe,MAAI;AAAA,gBAC9B,KAAK;AACH;AAAA,gBACF,KAAK;AACH,uBAAK,qBAAqB,SAAS,KAAK,eAAe,IAAI;AAC3D;AAAA,gBACF,KAAK;AACH,uBAAK,UAAW;AAChB;AAAA,gBACF,KAAK;AACH,uBAAK,yBAA0B;AAC/B;AAAA,gBACF,KAAK;AACH,uBAAK,YAAa;AAClB,uBAAK,cAAc,CAAE;AACrB,uBAAK,YAAY,OAAO,KAAK,eAAe,KAAK,KAAM;AACvD,uBAAK,YAAY,aAAa,KAAK,eAAe,KAAK,cAAc,EAAE,KAAM;AAC7E,uBAAK,YAAY,uBAAuB,CAAE;AAC1C,uBAAK,YAAY,eAAe;AAAA,oBAC9B,UAAU,CAAE;AAAA,oBACZ,SAAS,CAAE;AAAA,oBACX,KAAK,CAAE;AAAA,oBACP,aAAa,CAAE;AAAA,oBACf,aAAa,CAAE;AAAA,oBACf,SAAS,CAAE;AAAA,oBACX,iBAAiB,CAAE;AAAA,kBACpB;AACD,uBAAK,YAAY,YAAY,CAAE;AAC/B,uBAAK,YAAY,gBAAgB,CAAE;AACnC,uBAAK,YAAY,WAAW,CAAE;AAC9B,uBAAK,YAAY,YAAY,KAAK;AAClC,uBAAK,2BAA4B;AACjC,uBAAK,iBAAkB;AACvB,8BAAY;AACZ;AAAA,gBACF,KAAK;AACH,uBAAK,iBAAkB;AACvB;AAAA,gBACF,KAAK;AACH,uBAAK,sBAAuB;AAC5B;AAAA,gBACF,KAAK;AACH;AAAA,gBACF,KAAK;AACH,uBAAK,qBAAsB;AAC3B;AAAA,gBACF,KAAK;AACH,uBAAK,aAAc;AACnB;AAAA,gBACF,KAAK;AACH,uBAAK,gBAAiB;AACtB;AAAA,gBACF,KAAK;AACH,uBAAK,YAAa;AAClB,uBAAK,gBAAgB,CAAE;AACvB,uBAAK,cAAc,OAAO,KAAK,eAAe,KAAK,KAAM;AACzD,uBAAK,cAAc,cAAc,CAAE;AACnC;AAAA,gBACF,KAAK;AACH,sBAAI,KAAK,qBAAqB;AAC5B,yBAAK,cAAc,YAAY,KAAK,KAAK,mBAAmB;AAAA,kBAC7D;AAED,uBAAK,sBAAsB,IAAI,eAAgB;AAC/C,uBAAK,oBAAoB,WAAW,KAAK,eAAe,KAAK,KAAM;AACnE;AAAA,gBACF,KAAK;AACH,uBAAK,kBAAmB;AACxB,8BAAY;AACZ;AAAA,cACH;AAED,mBAAK,eAAe,SAAS;AAAA,YAC9B;AAED,gBAAI,KAAK,eAAe,SAAS,SAAS,GAAG;AAC3C,mBAAK,iBAAiB,KAAK,eAAe,SAAS,MAAO;AAC1D,kBAAI,KAAK,OAAO;AACd,wBAAQ,IAAI,gBAAgB,KAAK,eAAe,IAAI;AAAA,cACrD;AAED,kBAAI;AAAW;AAAA,YAC7B,OAAmB;AACL,kBAAI,KAAK,eAAe,QAAQ;AAC9B,oBAAI,KAAK,eAAe,UAAU,CAAC,KAAK,eAAe,OAAO,QAAQ;AACpE,uBAAK,YAAa;AAAA,gBACnB;AAAA,cACF;AAED,kBAAI,KAAK,eAAe,QAAQ;AAC9B,qBAAK,iBAAiB,KAAK,eAAe;AAAA,cAC1D,OAAqB;AACL,4BAAY;AAAA,cACb;AAED,kBAAI;AAAW;AAAA,YAChB;AAAA,UACF;AAED;AAAA,QACD;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc;AAC5B,cAAI,KAAK,eAAe,QAAQ,KAAK,YAAY,MAAM;AACrD,iBAAK,oBAAqB;AAAA,UAC3B;AAED,eAAK,cAAc,CAAE;AACrB,cAAI,KAAK,iBAAiB,QAAQ,KAAK,cAAc,MAAM;AACzD,gBAAI,KAAK,qBAAqB;AAC5B,mBAAK,cAAc,YAAY,KAAK,KAAK,mBAAmB;AAC5D,mBAAK,sBAAsB;AAAA,YAC5B;AAED,iBAAK,qBAAsB;AAAA,UAC5B;AAED,eAAK,gBAAgB,CAAE;AAAA,QACxB;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,eAAe,MAAM;AACnC,cAAI,KAAK,QAAQ;AACf,gBAAI,KAAK,OAAO,MAAM;AACpB,qBAAO,KAAK,OAAO;AAAA,YACjC,OAAmB;AACL,qBAAO,KAAK,eAAe,KAAK,MAAM;AAAA,YACvC;AAAA,UACb,OAAiB;AACL,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,YAAY;AAC1B,eAAK,gBAAgB,KAAK,eAAe,KAAK,KAAM;AACpD,eAAK,gBAAgB,CAAE;AACvB,eAAK,cAAc,OAAO,KAAK;AAC/B,eAAK,cAAc,WAAW,CAAE;AAChC,cAAI,KAAK,eAAe,UAAU,KAAK,eAAe,OAAO,MAAM;AACjE,iBAAK,cAAc,aAAa,KAAK,eAAe,OAAO;AAAA,UAC5D;AAED,eAAK,gBAAgB,KAAK,KAAK,aAAa;AAC5C,eAAK,SAAS,KAAK,aAAa,IAAI,KAAK;AAAA,QAC1C;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,2BAA2B;AACzC,eAAK,cAAc,uBAAuB,IAAI,QAAS;AACvD,cAAI,OAAO,KAAK,eAAe,KAAK,MAAM,GAAG;AAC7C,eAAK,iBAAiB,KAAK,cAAc,sBAAsB,IAAI;AACnE,eAAK,2BAA4B;AAAA,QAClC;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,6BAA6B;AAC3C,cAAI,CAAC,KAAK,cAAc,sBAAsB;AAC5C;AAAA,UACD;AAED,cAAI,IAAI,IAAI,KAAM;AAClB,YAAE,OAAO,KAAK,cAAc;AAC5B,YAAE,aAAa,KAAK,cAAc,oBAAoB;AACtD,YAAE,cAAc,EAAE;AAClB,YAAE,uBAAuB,KAAK,cAAc;AAC5C,eAAK,cAAc,UAAU;AAC7B,cAAI,KAAK,cAAc,YAAY;AACjC,qBAAS,SAAS,KAAK,UAAU;AAC/B,kBAAI,KAAK,SAAS,KAAK,EAAE,SAAS,KAAK,cAAc,YAAY;AAC/D,qBAAK,SAAS,KAAK,EAAE,QAAQ,IAAI,KAAK,cAAc,OAAO;AAAA,cAC5D;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,mBAAmB;AACjC,cAAI,UAAU;AACd,cAAI,OAAO;AACX,cAAI,aAAa;AACjB,cAAI,YAAY;AAChB,iBAAO,MAAM;AACX,gBAAI,aAAa;AACjB,gBAAI,eAAe,GAAG;AACpB,kBAAI,OAAO,KAAK,UAAU,OAAO;AACjC,wBAAU,KAAK;AACf,2BAAa;AACb,0BAAY,KAAK,eAAe,KAAK,QAAQ,MAAM,OAAO,IAAI;AAC9D,kBAAI,aAAa,GAAG;AAClB,4BAAY,KAAK,eAAe,KAAK;AAAA,cACtC;AAAA,YACf,OAAmB;AACL,kBAAI,OAAO;AACX,sBAAQ,MAAI;AAAA,gBACV,KAAK;AACH,yBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO,IAAI;AACxD;AAAA,gBACF,KAAK;AACH,yBAAO,KAAK,eAAe,KAAK,QAAQ,MAAM,OAAO,IAAI;AACzD;AAAA,cACH;AAED,kBAAI,SAAS,KAAK,OAAO,WAAW;AAClC,uBAAO;AACP,6BAAa;AACb,6BAAa;AAAA,cACd;AAED,sBAAQ,KAAK,eAAe,MAAI;AAAA,gBAC9B,KAAK;AACH,0BAAQ,MAAI;AAAA,oBACV,KAAK;AACH,2BAAK,aAAa,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO,CAAC;AAC1E;AAAA,oBACF,KAAK;AACH,2BAAK,WAAW,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO,CAAC;AACxE;AAAA,kBACH;AAED;AAAA,gBACF,KAAK;AACH,0BAAQ,MAAI;AAAA,oBACV,KAAK;AACH,2BAAK,mBAAmB,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO,CAAC;AAChF;AAAA,kBACH;AAED;AAAA,cACH;AAED,wBAAU,OAAO;AACjB,kBAAI,YAAY;AACd;AAAA,cACD;AAAA,YACF;AAED,gBAAI,WAAW,KAAK,eAAe,KAAK,QAAQ;AAC9C;AAAA,YACD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,UAAU,OAAO;AAC/B,cAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,KAAK;AACtD,iBAAO;AAAA,YACL,MAAM,SAAS,KAAK,eAAe,KAAK,OAAO,OAAO,OAAO,KAAK,CAAC;AAAA,YACnE,SAAS,OAAO;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,aAAa,MAAM;AACjC,cAAI,OAAO,KAAK,UAAU,KAAK,KAAI,CAAE,EAClC,OAAO,GAAG,KAAK,SAAS,CAAC,EACzB,MAAM,GAAG;AACZ,eAAK,YAAY,aAAa,SAAS,KAAK,WAAW,KAAK,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC;AACzG,eAAK,YAAY,aAAa,YAAY,KAAK,GAAG,GAAG,GAAG,CAAC;AACzD,eAAK,YAAY,aAAa,YAAY,KAAK,GAAG,GAAG,GAAG,CAAC;AACzD,eAAK,YAAY,qBAAqB,KAAK,CAAC;AAAA,QAC7C;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,WAAW,MAAM;AAC/B,cAAI,OAAO,KAAK,UAAU,KAAK,KAAI,CAAE,EAClC,OAAO,GAAG,KAAK,SAAS,CAAC,EACzB,MAAM,GAAG;AACZ,eAAK,YAAY,aAAa,QAAQ;AAAA,YACpC,SAAS,KAAK,CAAC,GAAG,EAAE;AAAA,YACpB,SAAS,KAAK,CAAC,GAAG,EAAE;AAAA,YACpB,SAAS,KAAK,CAAC,GAAG,EAAE;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,mBAAmB,MAAM;AACvC,cAAI,OAAO,KAAK,UAAU,KAAK,KAAI,CAAE,EAClC,OAAO,GAAG,KAAK,SAAS,CAAC,EACzB,MAAM,GAAG;AACZ,eAAK,YAAY,aAAa,QAAQ,KAAK,WAAW,KAAK,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC;AAAA,QACzG;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiB;AAC/B,cAAI,iBAAiB,IAAI,eAAgB;AACzC,cAAI,WAAW,CAAE;AACjB,cAAI,UAAU,CAAE;AAChB,cAAI,MAAM,CAAE;AACZ,cAAI,cAAc,CAAE;AACpB,cAAI,cAAc,CAAE;AAIpB,cAAI,OAAO,KAAK,YAAY;AAE5B,mBAASA,KAAI,GAAG,IAAI,KAAK,QAAQ,QAAQA,KAAI,GAAGA,MAAK;AACnD,gBAAI,UAAU,KAAK,QAAQA,EAAC,IAAI;AAChC,gBAAI,UAAU,KAAK,QAAQA,EAAC,IAAI;AAChC,gBAAI,UAAU,KAAK,QAAQA,EAAC,IAAI;AAEhC,qBAAS,KAAK,KAAK,SAAS,OAAO,GAAG,KAAK,SAAS,UAAU,CAAC,GAAG,KAAK,SAAS,UAAU,CAAC,CAAC;AAC5F,oBAAQ,KAAK,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,UAAU,CAAC,GAAG,KAAK,QAAQ,UAAU,CAAC,CAAC;AACxF,wBAAY;AAAA,cACV,KAAK,YAAY,OAAO;AAAA,cACxB,KAAK,YAAY,UAAU,CAAC;AAAA,cAC5B,KAAK,YAAY,UAAU,CAAC;AAAA,cAC5B,KAAK,YAAY,UAAU,CAAC;AAAA,YAC7B;AACD,wBAAY;AAAA,cACV,KAAK,YAAY,OAAO;AAAA,cACxB,KAAK,YAAY,UAAU,CAAC;AAAA,cAC5B,KAAK,YAAY,UAAU,CAAC;AAAA,cAC5B,KAAK,YAAY,UAAU,CAAC;AAAA,YAC7B;AACD,gBAAI,KAAK,KAAK,IAAI,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC;AAAA,UAClD;AAID,yBAAe,aAAa,YAAY,IAAI,uBAAuB,UAAU,CAAC,CAAC;AAC/E,yBAAe,aAAa,UAAU,IAAI,uBAAuB,SAAS,CAAC,CAAC;AAC5E,yBAAe,aAAa,MAAM,IAAI,uBAAuB,KAAK,CAAC,CAAC;AACpE,yBAAe,aAAa,aAAa,IAAI,sBAAsB,aAAa,CAAC,CAAC;AAClF,yBAAe,aAAa,cAAc,IAAI,uBAAuB,aAAa,CAAC,CAAC;AAEpF,eAAK,eAAe,gBAAgB,KAAK,eAAe;AAExD,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,eAAe,gBAAgB,iBAAiB;AAC9D,cAAI;AACJ,cAAI,SAAS,CAAE;AACf,cAAI,gBAAgB;AAEpB,mBAASA,KAAI,GAAGA,KAAI,gBAAgB,QAAQA,MAAK;AAC/C,gBAAI,uBAAuB,gBAAgBA,EAAC;AAE5C,gBAAI,yBAAyB,eAAe;AAC1C,8BAAgB;AAEhB,kBAAI,UAAU,QAAW;AACvB,sBAAM,QAAQA,KAAI,IAAI,MAAM;AAC5B,uBAAO,KAAK,KAAK;AAAA,cAClB;AAED,sBAAQ;AAAA,gBACN,OAAOA,KAAI;AAAA,gBACX;AAAA,cACD;AAAA,YACF;AAAA,UACF;AAED,cAAI,UAAU,QAAW;AACvB,kBAAM,QAAQ,IAAI,IAAI,MAAM;AAC5B,mBAAO,KAAK,KAAK;AAAA,UAClB;AAED,yBAAe,SAAS;AAAA,QACzB;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,wBAAwB;AACtC,cAAI,UAAU;AACd,cAAI,OAAO;AACX,cAAI,aAAa;AACjB,iBAAO,MAAM;AACX,oBAAQ,MAAI;AAAA,cACV,KAAK;AACH,oBAAI,eAAe,GAAG;AACpB,sBAAI,OAAO,KAAK,UAAU,CAAC;AAC3B,4BAAU,KAAK;AACf,+BAAa;AAAA,gBAC/B,OAAuB;AACL,sBAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO,IAAI;AAC5D,sBAAI,SAAS,GAAG;AACd,2BAAO,KAAK,eAAe,KAAK;AAChC,2BAAO;AACP,iCAAa;AAAA,kBACd;AAED,sBAAI,OAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAClE,sBAAI,OAAO,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AAChD,sBAAI,KAAK,cAAc;AACrB,yBAAK,YAAY,aAAa,IAAI,KAAK,WAAW,KAAK,CAAC,CAAC,GAAG,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC;AAAA,kBACvG,OAAyB;AACL,yBAAK,YAAY,aAAa,IAAI,KAAK,WAAW,KAAK,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC;AAAA,kBAChF;AAED,4BAAU,OAAO;AAAA,gBAClB;AAED;AAAA,YACH;AAED,gBAAI,WAAW,KAAK,eAAe,KAAK,QAAQ;AAC9C;AAAA,YACD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,uBAAuB;AACrC,cAAI,UAAU;AACd,cAAI,OAAO;AACX,cAAI,aAAa;AACjB,iBAAO,MAAM;AACX,gBAAI,aAAa,GAAG;AAClB,kBAAI,OAAO,KAAK,UAAU,OAAO;AACjC,wBAAU,KAAK;AACf;AAAA,YACd,OAAmB;AACL,kBAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACxD,kBAAI,SAAS,IAAI;AACf,uBAAO,KAAK,eAAe,KAAK;AAChC,uBAAO;AACP,6BAAa;AAAA,cACd;AAED,kBAAI,OAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAClE,kBAAI,OAAO,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AAChD,uBAASA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,qBAAK,YAAY,aAAa,gBAAgBA,EAAC,IAAI,SAAS,KAAKA,EAAC,CAAC;AAAA,cACpE;AAED,wBAAU,KAAK,eAAe,KAAK;AAAA,YACpC;AAED,gBAAI,WAAW,KAAK,eAAe,KAAK,UAAU,QAAQ,GAAG;AAC3D;AAAA,YACD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,eAAe;AAC7B,cAAI,UAAU,IAAI,kBAAkB;AAAA,YAClC,OAAO,KAAK,OAAM,IAAK;AAAA,UACnC,CAAW;AACD,kBAAQ,OAAO;AACf,kBAAQ,OAAO,KAAK,eAAe;AACnC,cAAI,UAAU;AACd,cAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,MAAM,OAAO;AACzD,cAAI,OAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAClE,cAAI,OAAO,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AAChD,kBAAQ,MAAM,IAAI,WAAW,KAAK,CAAC,CAAC;AACpC,kBAAQ,MAAM,IAAI,WAAW,KAAK,CAAC,CAAC;AACpC,kBAAQ,MAAM,IAAI,WAAW,KAAK,CAAC,CAAC;AACpC,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,kBAAQ,YAAY,WAAW,KAAK,UAAU,IAAI,CAAC;AACnD,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,MAAM,OAAO;AACrD,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,cAAI,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AACjD,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,MAAM,OAAO;AACrD,cAAI,SAAS,IAAI;AACf,mBAAO,KAAK,eAAe,KAAK;AAAA,UACjC;AAED,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,cAAI,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AACjD,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,kBAAQ,SAAS,IAAI,WAAW,MAAM,CAAC,CAAC;AACxC,cAAI,cAAc;AAClB,iBAAO,MAAM;AACX,gBAAI,KAAK,eAAe,SAAS,SAAS,GAAG;AAC3C,4BAAc,KAAK,eAAe,SAAS,MAAO;AAClD,kBAAI,KAAK,OAAO;AACd,wBAAQ,IAAI,gBAAgB,YAAY,IAAI;AAAA,cAC7C;AAED,kBAAI,WAAW,YAAY,KAAK,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC;AACrE,sBAAQ,YAAY,MAAI;AAAA,gBACtB,KAAK;AACH,0BAAQ,MAAM,KAAK,UAAU,KAAK,QAAQ;AAC1C;AAAA,gBACF,KAAK;AACH,0BAAQ,UAAU,KAAK,UAAU,KAAK,QAAQ;AAC9C,0BAAQ,YAAY;AACpB;AAAA,gBACF,KAAK;AACH,0BAAQ,YAAY,KAAK,UAAU,KAAK,QAAQ;AAChD,0BAAQ,cAAc,IAAI,QAAQ,GAAG,CAAC;AACtC;AAAA,gBACF,KAAK;AACH,0BAAQ,cAAc,KAAK,UAAU,KAAK,QAAQ;AAClD;AAAA,gBACF,KAAK;AACH,0BAAQ,WAAW,KAAK,UAAU,KAAK,QAAQ;AAC/C;AAAA,cACH;AAAA,YACf,OAAmB;AACL;AAAA,YACD;AAAA,UACF;AAED,eAAK,YAAY,UAAU,KAAK,OAAO;AAAA,QACxC;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,kBAAkB;AAChC,cAAI,UAAU,IAAI,SAAU;AAC5B,cAAI,UAAU;AACd,cAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACxD,cAAI,OAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAClE,oBAAU,OAAO;AACjB,kBAAQ,WAAW,KAAK,OAAO,GAAG,KAAK,SAAS,CAAC;AACjD,kBAAQ,YAAY,KAAK,YAAY,SAAS;AAC9C,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,cAAI,OAAO,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AAChD,mBAASA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,oBAAQ,QAAQ,KAAK,SAAS,KAAKA,EAAC,CAAC,CAAC;AAAA,UACvC;AAED,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,cAAI,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AACjD,mBAAS,KAAK,GAAG,KAAK,MAAM,QAAQ,MAAM;AACxC,oBAAQ,QAAQ,KAAK,WAAW,MAAM,EAAE,CAAC,CAAC;AAAA,UAC3C;AAED,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,cAAI,QAAQ,GAAG;AACb,mBAAO,KAAK,eAAe,KAAK;AAAA,UACjC;AAED,iBAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAC9D,cAAI,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,GAAG;AACjD,kBAAQ,eAAe,IAAI,QAAS;AACpC,eAAK,iBAAiB,QAAQ,cAAc,KAAK;AACjD,eAAK,YAAY,SAAS,KAAK,OAAO;AAAA,QACvC;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiB,WAAW,QAAQ;AAClD,cAAI,UAAU;AACd,mBAAS,SAAS,KAAK,UAAU;AAC/B,gBAAI,KAAK,SAAS,KAAK,EAAE,SAAS,aAAa,SAAS;AACtD,wBAAU;AACV,kBAAI,IAAI,IAAI,KAAM;AAClB,gBAAE,OAAO,KAAK,SAAS,KAAK,EAAE;AAC9B,gBAAE,aAAa,KAAK,SAAS,KAAK,EAAE,oBAAoB;AACxD,gBAAE,cAAc,EAAE;AAClB,gBAAE,uBAAuB,KAAK,SAAS,KAAK,EAAE;AAC9C,gBAAE,MAAM,IAAI,QAAS,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,QAAS;AAC7E,gBAAE,OAAO,IAAI,WAAY,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,QAAS;AACjF,gBAAE,MAAM,IAAI,QAAS,EAAC,mBAAmB,EAAE,oBAAoB,EAAE,QAAS;AAC1E,kBAAI,KAAK,SAAS,KAAK,EAAE,cAAc,KAAK,SAAS,KAAK,EAAE,WAAW,SAAS,GAAG;AACjF,yBAASA,KAAI,GAAGA,KAAI,OAAO,QAAQA,MAAK;AACtC,sBAAI,KAAK,SAAS,KAAK,EAAE,eAAe,OAAOA,EAAC,EAAE,MAAM;AACtD,2BAAOA,EAAC,EAAE,IAAI,CAAC;AACf,sBAAE,SAASA;AACX;AAAA,kBACD;AAAA,gBACF;AAAA,cACF;AAED,qBAAO,KAAK,CAAC;AAAA,YACd;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,sBAAsB;AACpC,cAAI,OAAO;AACX,cAAI,KAAK,YAAY,SAAS,SAAS,GAAG;AACxC,gBAAI,WAAW,CAAE;AACjB,iBAAK,iBAAiB,KAAK,YAAY,UAAU,YAAY,QAAQ;AACrE,qBAAS,KAAK,GAAG,KAAK,KAAK,YAAY,SAAS,QAAQ,MAAM;AAC5D,kBAAI,YAAY;AAChB,uBAAS,KAAK,GAAG,KAAK,SAAS,QAAQ,MAAM;AAC3C,oBAAI,SAAS,EAAE,EAAE,SAAS,KAAK,YAAY,SAAS,EAAE,EAAE,UAAU;AAChE,8BAAY;AACZ,2BAAS,EAAE,EAAE,eAAe,IAAI,QAAS;AACzC,2BAAS,EAAE,EAAE,aAAa,KAAK,KAAK,YAAY,SAAS,EAAE,EAAE,YAAY;AACzE;AAAA,gBACD;AAAA,cACF;AAED,uBAAS,KAAK,GAAG,KAAK,KAAK,YAAY,SAAS,EAAE,EAAE,QAAQ,QAAQ,MAAM;AACxE,oBAAI,cAAc,KAAK,YAAY,SAAS,EAAE,EAAE,QAAQ,EAAE;AAC1D,oBAAI,SAAS,KAAK,YAAY,SAAS,EAAE,EAAE,QAAQ,EAAE;AAErD,oBAAI,SAAS,cAAc;AAE3B,wBAAQ,KAAK,YAAY,qBAAqB,WAAW,GAAC;AAAA,kBACxD,KAAK;AACH,yBAAK,YAAY,aAAa,YAAY,MAAM,IAAI;AACpD,yBAAK,YAAY,aAAa,YAAY,MAAM,IAAI;AACpD;AAAA,kBACF,KAAK;AACH,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD;AAAA,kBACF,KAAK;AACH,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD;AAAA,kBACF,KAAK;AACH,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD,yBAAK,YAAY,aAAa,YAAY,SAAS,CAAC,IAAI;AACxD;AAAA,gBACH;AAED,qBAAK,YAAY,qBAAqB,WAAW;AACjD,oBAAI,KAAK,YAAY,qBAAqB,WAAW,IAAI,GAAG;AAC1D,0BAAQ,IAAI,gCAAgC,WAAW;AAAA,gBACxD;AAAA,cACF;AAAA,YACF;AAED,qBAAS,KAAK,GAAG,KAAK,KAAK,YAAY,UAAU,QAAQ,MAAM;AAC7D,mBAAK,YAAY,UAAU,EAAE,EAAE,WAAW;AAAA,YAC3C;AAED,gBAAI,aAAa,CAAE;AACnB,qBAAS,MAAM,GAAG,MAAM,SAAS,QAAQ,OAAO;AAC9C,kBAAI,SAAS,GAAG,EAAE,cAAc;AAC9B,2BAAW,KAAK,SAAS,GAAG,EAAE,YAAY;AAAA,cAC1D,OAAqB;AACL,2BAAW,KAAK,IAAI,SAAS;AAAA,cAC9B;AAAA,YACF;AAED,gBAAI,iBAAiB,KAAK,eAAgB;AAC1C,mBAAO,IAAI;AAAA,cACT;AAAA,cACA,KAAK,YAAY,UAAU,WAAW,IAAI,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,YAAY;AAAA,YAC5F;AAED,iBAAK,cAAc,MAAM,UAAU,UAAU;AAAA,UACzD,OAAiB;AACL,gBAAI,kBAAkB,KAAK,eAAgB;AAC3C,mBAAO,IAAI;AAAA,cACT;AAAA,cACA,KAAK,YAAY,UAAU,WAAW,IAAI,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,YAAY;AAAA,YAC5F;AAAA,UACF;AAED,eAAK,OAAO,KAAK,YAAY;AAC7B,cAAI,cAAc,IAAI,QAAS;AAC/B,cAAI,iBAAiB,KAAK,YAAY,UAAU;AAChD,cAAI,kBAAkB,eAAe,QAAQ;AAC3C,mBAAO,MAAM;AACX,+BAAiB,eAAe;AAChC,kBAAI,gBAAgB;AAClB,4BAAY,SAAS,eAAe,oBAAoB;AAAA,cACxE,OAAqB;AACL;AAAA,cACD;AAAA,YACF;AAED,iBAAK,aAAa,WAAW;AAAA,UAC9B;AAED,eAAK,OAAO,KAAK,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,cAAc,MAAM,UAAU,cAAc;AAC1D,cAAI,QAAQ,CAAE,GACZ,MACA;AACF,cAAIA,IAAG;AAEP,eAAKA,KAAI,GAAG,KAAK,SAAS,QAAQA,KAAI,IAAIA,MAAK;AAC7C,oBAAQ,SAASA,EAAC;AAElB,mBAAO,IAAI,KAAM;AACjB,kBAAM,KAAK,IAAI;AAEf,iBAAK,OAAO,MAAM;AAClB,iBAAK,SAAS,UAAU,MAAM,GAAG;AACjC,iBAAK,WAAW,UAAU,MAAM,IAAI;AACpC,gBAAI,MAAM,QAAQ;AAAW,mBAAK,MAAM,UAAU,MAAM,GAAG;AAAA,UAC5D;AAED,eAAKA,KAAI,GAAG,KAAK,SAAS,QAAQA,KAAI,IAAIA,MAAK;AAC7C,oBAAQ,SAASA,EAAC;AAElB,gBAAI,MAAM,WAAW,MAAM,MAAM,WAAW,QAAQ,MAAM,MAAM,MAAM,MAAM,QAAW;AACrF,oBAAM,MAAM,MAAM,EAAE,IAAI,MAAMA,EAAC,CAAC;AAAA,YAC9C,OAAmB;AACL,mBAAK,IAAI,MAAMA,EAAC,CAAC;AAAA,YAClB;AAAA,UACF;AAED,eAAK,kBAAkB,IAAI;AAE3B,cAAI,WAAW,IAAI,SAAS,OAAO,YAAY;AAC/C,eAAK,KAAK,UAAU,KAAK,WAAW;AAAA,QACrC;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,oBAAoB;AAClC,cAAI,UAAU;AACd,cAAI,OAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACxD,cAAI,OAAO,KAAK,eAAe,KAAK,OAAO,SAAS,OAAO,OAAO;AAClE,oBAAU,OAAO;AACjB,cAAI,aAAa,SAAS,KAAK,UAAU,IAAI,CAAC;AAC9C,iBAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,OAAO;AACpD,oBAAU,OAAO;AACjB,iBAAO,KAAK,eAAe,KAAK,OAAO,OAAO;AAC9C,cAAI,OAAO,KAAK,UAAU,KAAK,MAAM,EAAE,MAAM,KAAK;AAClD,mBAASA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,gBAAI,QAAQ,KAAKA,EAAC,EAAE,MAAM,GAAG;AAC7B,gBAAI,UAAU,IAAI,cAAe;AACjC,oBAAQ,OAAO;AACf,oBAAQ,QAAQ,SAAS,MAAM,CAAC,CAAC;AACjC,oBAAQ,QAAQ,KAAK,oBAAoB,UAAU;AACnD,oBAAQ,OAAO,QAAQ;AACvB,gBAAI,cAAc,GAAG;AACnB,kBAAI,aAAa;AACjB,uBAAS,KAAK,GAAG,KAAK,KAAK,oBAAoB,UAAU,QAAQ,MAAM;AACrE,oBAAI,KAAK,oBAAoB,UAAU,EAAE,EAAE,UAAU,QAAQ,OAAO;AAClE,4BAAU,KAAK,oBAAoB,UAAU,EAAE;AAC/C,+BAAa;AACb;AAAA,gBACD;AAAA,cACF;AAED,kBAAI,aAAa,MAAM,CAAC,EAAE,MAAM,GAAG;AACnC,sBAAQ,YAAU;AAAA,gBAChB,KAAK;AACH,0BAAQ,MAAM,IAAI;AAAA,oBAChB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC,IAAI;AAAA,kBAC7B;AACD;AAAA,gBACF,KAAK;AACH,0BAAQ,MAAM,IAAI;AAAA,oBAChB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,kBACzB;AACD;AAAA,gBACF,KAAK;AACH,0BAAQ,MAAM,IAAI;AAAA,oBAChB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,oBACxB,WAAW,WAAW,CAAC,CAAC;AAAA,kBACzB;AACD;AAAA,cACH;AAED,kBAAI,CAAC,YAAY;AACf,qBAAK,oBAAoB,UAAU,KAAK,OAAO;AAAA,cAChD;AAAA,YACf,OAAmB;AACL,sBAAQ,SAAS,IAAI,QAAS;AAC9B,mBAAK,iBAAiB,QAAQ,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;AACzD,mBAAK,oBAAoB,UAAU,KAAK,OAAO;AAAA,YAChD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,uBAAuB;AACrC,cAAI,eAAe,IAAI,cAAc,KAAK,OAAO;AACjD,uBAAa,MAAM,KAAK;AACxB,uBAAa,OAAO,KAAK,cAAc;AACvC,uBAAa,KAAK,KAAK,cAAc,WAAW;AAChD,eAAK,WAAW,KAAK,YAAY;AAAA,QAClC;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,gBAAgB,QAAQ,YAAY;AAClD,cAAI,QAAQ;AACZ,cAAI,YAAY;AAChB,cAAI,CAAC,OAAO;AACV,oBAAQ,KAAK,OAAO,CAAC;AAAA,UACtB;AAED,cAAI,CAAC,WAAW;AACd,wBAAY,KAAK,WAAW,CAAC;AAAA,UAC9B;AAED,cAAI,CAAC,SAAS,CAAC,WAAW;AACxB,mBAAO;AAAA,UACR;AAED,cAAI,MAAM,CAAE;AACZ,cAAI,MAAM,UAAU;AACpB,cAAI,OAAO,UAAU;AACrB,cAAI,SAAS,UAAU;AACvB,cAAI,YAAY,CAAE;AAClB,mBAAS,IAAI,GAAG,IAAI,MAAM,SAAS,MAAM,QAAQ,KAAK;AACpD,gBAAI,gBAAgB;AACpB,qBAASA,KAAI,GAAGA,KAAI,UAAU,UAAU,QAAQA,MAAK;AACnD,kBAAI,MAAM,SAAS,MAAM,CAAC,EAAE,SAAS,UAAU,UAAUA,EAAC,EAAE,MAAM;AAChE,gCAAgB;AAChB,oBAAI,QAAQ,UAAU,UAAUA,EAAC,EAAE,KAAM;AACzC,sBAAM,SAAS;AACf,oBAAI,MAAM,SAAS,MAAM,CAAC,EAAE,UAAU,MAAM,SAAS,MAAM,CAAC,EAAE,OAAO,SAAS,QAAQ;AACpF,2BAAS,KAAK,GAAG,KAAK,IAAI,UAAU,QAAQ,MAAM;AAChD,wBAAI,IAAI,UAAU,EAAE,EAAE,SAAS,MAAM,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM;AAClE,4BAAM,SAAS;AACf,4BAAM,aAAa,MAAM,SAAS,MAAM,CAAC,EAAE,OAAO;AAAA,oBACnD;AAAA,kBACF;AAAA,gBACF;AAED,oBAAI,UAAU,KAAK,KAAK;AACxB;AAAA,cACD;AAAA,YACF;AAED,gBAAI,CAAC,eAAe;AAClB,kBAAI,SAAS,UAAU,UAAU,CAAC,EAAE,KAAM;AAC1C,qBAAO,OAAO,MAAM,SAAS,MAAM,CAAC,EAAE;AACtC,qBAAO,SAAS;AAChB,uBAAS,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,KAAK;AAC3C,oBAAI,OAAO,KAAK,CAAC,EAAE,KAAK;AACtB,yBAAO,KAAK,CAAC,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC;AAAA,gBAC/B;AAED,oBAAI,OAAO,KAAK,CAAC,EAAE,KAAK;AACtB,yBAAO,KAAK,CAAC,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC;AAAA,gBAC/B;AAED,oBAAI,OAAO,KAAK,CAAC,EAAE,KAAK;AACtB,yBAAO,KAAK,CAAC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAAA,gBAClC;AAAA,cACF;AAED,kBAAI,UAAU,KAAK,MAAM;AAAA,YAC1B;AAAA,UACF;AAED,cAAI,CAAC,MAAM,SAAS,YAAY;AAC9B,kBAAM,SAAS,aAAa,CAAE;AAAA,UAC/B;AAED,gBAAM,SAAS,WAAW,KAAK,cAAc,eAAe,KAAK,MAAM,SAAS,KAAK,CAAC;AACtF,cAAI,CAAC,MAAM,gBAAgB;AACzB,kBAAM,iBAAiB,IAAI,eAAe,KAAK;AAAA,UAChD;AAED,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD;AAAA,QACE,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiB,cAAc,MAAM;AACnD,uBAAa;AAAA,YACX,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,EAAE,CAAC;AAAA,YACnB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,EAAE,CAAC;AAAA,YACnB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,EAAE,CAAC;AAAA,YACnB,WAAW,KAAK,EAAE,CAAC;AAAA,YACnB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,CAAC,CAAC;AAAA,YAClB,WAAW,KAAK,EAAE,CAAC;AAAA,YACnB,WAAW,KAAK,EAAE,CAAC;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACP,CAAK;AACD,WAAOK;AAAA,EACX,EAAM;AAEJ,SAAOA;AACT,EAAC;"}
1
+ {"version":3,"file":"XLoader.js","sources":["../../src/loaders/XLoader.js"],"sourcesContent":["import {\n AnimationClip,\n AnimationMixer,\n Bone,\n BufferGeometry,\n FileLoader,\n Float32BufferAttribute,\n FrontSide,\n Loader,\n LoaderUtils,\n Matrix4,\n Mesh,\n MeshPhongMaterial,\n Quaternion,\n Skeleton,\n SkinnedMesh,\n TextureLoader,\n Uint16BufferAttribute,\n Vector2,\n Vector3,\n} from 'three'\nimport { decodeText } from '../_polyfill/LoaderUtils'\n\nvar XLoader = /* @__PURE__ */ (function () {\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function')\n }\n }\n\n var createClass = (function () {\n function defineProperties(target, props) {\n for (let i = 0; i < props.length; i++) {\n var descriptor = props[i]\n descriptor.enumerable = descriptor.enumerable || false\n descriptor.configurable = true\n if ('value' in descriptor) descriptor.writable = true\n Object.defineProperty(target, descriptor.key, descriptor)\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps)\n if (staticProps) defineProperties(Constructor, staticProps)\n return Constructor\n }\n })()\n\n var XboneInf = function XboneInf() {\n classCallCheck(this, XboneInf)\n\n this.boneName = ''\n this.BoneIndex = 0\n this.Indeces = []\n this.Weights = []\n this.initMatrix = null\n this.OffsetMatrix = null\n }\n\n var XAnimationInfo = function XAnimationInfo() {\n classCallCheck(this, XAnimationInfo)\n\n this.animeName = ''\n this.boneName = ''\n this.targetBone = null\n this.keyType = 4\n this.frameStartLv = 0\n this.keyFrames = []\n this.InverseMx = null\n }\n\n var XAnimationObj = (function () {\n function XAnimationObj(_flags) {\n classCallCheck(this, XAnimationObj)\n\n this.fps = 30\n this.name = 'xanimation'\n this.length = 0\n this.hierarchy = []\n this.putFlags = _flags\n if (this.putFlags.putPos === undefined) {\n this.putFlags.putPos = true\n }\n\n if (this.putFlags.putRot === undefined) {\n this.putFlags.putRot = true\n }\n\n if (this.putFlags.putScl === undefined) {\n this.putFlags.putScl = true\n }\n }\n\n createClass(XAnimationObj, [\n {\n key: 'make',\n value: function make(XAnimationInfoArray) {\n for (let i = 0; i < XAnimationInfoArray.length; i++) {\n this.hierarchy.push(this.makeBonekeys(XAnimationInfoArray[i]))\n }\n\n this.length = this.hierarchy[0].keys[this.hierarchy[0].keys.length - 1].time\n },\n },\n {\n key: 'clone',\n value: function clone() {\n return Object.assign({}, this)\n },\n },\n {\n key: 'makeBonekeys',\n value: function makeBonekeys(XAnimationInfo) {\n var refObj = {}\n refObj.name = XAnimationInfo.boneName\n refObj.parent = ''\n refObj.keys = this.keyFrameRefactor(XAnimationInfo)\n refObj.copy = function () {\n return Object.assign({}, this)\n }\n\n return refObj\n },\n },\n {\n key: 'keyFrameRefactor',\n value: function keyFrameRefactor(XAnimationInfo) {\n var keys = []\n for (let i = 0; i < XAnimationInfo.keyFrames.length; i++) {\n var keyframe = {}\n keyframe.time = XAnimationInfo.keyFrames[i].time * this.fps\n if (XAnimationInfo.keyFrames[i].pos && this.putFlags.putPos) {\n keyframe.pos = XAnimationInfo.keyFrames[i].pos\n }\n\n if (XAnimationInfo.keyFrames[i].rot && this.putFlags.putRot) {\n keyframe.rot = XAnimationInfo.keyFrames[i].rot\n }\n\n if (XAnimationInfo.keyFrames[i].scl && this.putFlags.putScl) {\n keyframe.scl = XAnimationInfo.keyFrames[i].scl\n }\n\n if (XAnimationInfo.keyFrames[i].matrix) {\n keyframe.matrix = XAnimationInfo.keyFrames[i].matrix\n if (this.putFlags.putPos) {\n keyframe.pos = new Vector3().setFromMatrixPosition(keyframe.matrix)\n }\n\n if (this.putFlags.putRot) {\n keyframe.rot = new Quaternion().setFromRotationMatrix(keyframe.matrix)\n }\n\n if (this.putFlags.putScl) {\n keyframe.scl = new Vector3().setFromMatrixScale(keyframe.matrix)\n }\n }\n\n keys.push(keyframe)\n }\n\n return keys\n },\n },\n ])\n return XAnimationObj\n })()\n\n var XKeyFrameInfo = function XKeyFrameInfo() {\n classCallCheck(this, XKeyFrameInfo)\n\n this.index = 0\n this.Frame = 0\n this.time = 0.0\n this.matrix = null\n }\n\n var XLoader = (function () {\n function XLoader(manager) {\n Loader.call(this, manager)\n\n classCallCheck(this, XLoader)\n\n this.debug = false\n this.texloader = new TextureLoader(this.manager)\n this.url = ''\n this._putMatLength = 0\n this._nowMat = null\n this._nowFrameName = ''\n this.frameHierarchie = []\n this.Hierarchies = {}\n this.HieStack = []\n this._currentObject = {}\n this._currentFrame = {}\n this._data = null\n this.onLoad = null\n this.IsUvYReverse = true\n this.Meshes = []\n this.animations = []\n this.animTicksPerSecond = 30\n this._currentGeo = null\n this._currentAnime = null\n this._currentAnimeFrames = null\n }\n\n createClass(XLoader, [\n {\n key: '_setArgOption',\n value: function _setArgOption(_arg) {\n var _start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0\n\n if (!_arg) {\n return\n }\n\n for (let i = _start; i < _arg.length; i++) {\n switch (i) {\n case 0:\n this.url = _arg[i]\n break\n case 1:\n this.options = _arg[i]\n break\n }\n }\n\n if (this.options === undefined) {\n this.options = {}\n }\n },\n },\n {\n key: 'load',\n value: function load(_arg, onLoad, onProgress, onError) {\n var _this = this\n\n this._setArgOption(_arg)\n var loader = new FileLoader(this.manager)\n loader.setPath(this.path)\n loader.setResponseType('arraybuffer')\n loader.setRequestHeader(this.requestHeader)\n loader.setWithCredentials(this.withCredentials)\n loader.load(\n this.url,\n function (response) {\n try {\n _this.parse(response, onLoad)\n } catch (e) {\n if (onError) {\n onError(e)\n } else {\n console.error(e)\n }\n\n _this.manager.itemError(_this.url)\n }\n },\n onProgress,\n onError,\n )\n },\n },\n {\n key: '_readLine',\n value: function _readLine(line) {\n var readed = 0\n while (true) {\n var find = -1\n find = line.indexOf('//', readed)\n if (find === -1) {\n find = line.indexOf('#', readed)\n }\n\n if (find > -1 && find < 2) {\n var foundNewLine = -1\n foundNewLine = line.indexOf('\\r\\n', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 2\n } else {\n foundNewLine = line.indexOf('\\r', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 1\n } else {\n readed = line.indexOf('\\n', readed) + 1\n }\n }\n } else {\n break\n }\n }\n\n return line.substr(readed)\n },\n },\n {\n key: '_readLine',\n value: function _readLine(line) {\n var readed = 0\n while (true) {\n var find = -1\n find = line.indexOf('//', readed)\n if (find === -1) {\n find = line.indexOf('#', readed)\n }\n\n if (find > -1 && find < 2) {\n var foundNewLine = -1\n foundNewLine = line.indexOf('\\r\\n', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 2\n } else {\n foundNewLine = line.indexOf('\\r', readed)\n if (foundNewLine > 0) {\n readed = foundNewLine + 1\n } else {\n readed = line.indexOf('\\n', readed) + 1\n }\n }\n } else {\n break\n }\n }\n\n return line.substr(readed)\n },\n },\n {\n key: '_isBinary',\n value: function _isBinary(binData) {\n var reader = new DataView(binData)\n var face_size = (32 / 8) * 3 + (32 / 8) * 3 * 3 + 16 / 8\n var n_faces = reader.getUint32(80, true)\n var expect = 80 + 32 / 8 + n_faces * face_size\n if (expect === reader.byteLength) {\n return true\n }\n\n var fileLength = reader.byteLength\n for (let index = 0; index < fileLength; index++) {\n if (reader.getUint8(index, false) > 127) {\n return true\n }\n }\n\n return false\n },\n },\n {\n key: '_ensureBinary',\n value: function _ensureBinary(buf) {\n if (typeof buf === 'string') {\n var array_buffer = new Uint8Array(buf.length)\n for (let i = 0; i < buf.length; i++) {\n array_buffer[i] = buf.charCodeAt(i) & 0xff\n }\n\n return array_buffer.buffer || array_buffer\n } else {\n return buf\n }\n },\n },\n {\n key: '_ensureString',\n value: function _ensureString(buf) {\n if (typeof buf !== 'string') {\n return decodeText(new Uint8Array(buf))\n } else {\n return buf\n }\n },\n },\n {\n key: 'parse',\n value: function _parse(data, onLoad) {\n var binData = this._ensureBinary(data)\n this._data = this._ensureString(data)\n this.onLoad = onLoad\n return this._isBinary(binData) ? this._parseBinary(binData) : this._parseASCII()\n },\n },\n {\n key: '_parseBinary',\n value: function _parseBinary(data) {\n return this._parseASCII(decodeText(new Uint8Array(data)))\n },\n },\n {\n key: '_parseASCII',\n value: function _parseASCII() {\n var path\n\n if (this.resourcePath !== '') {\n path = this.resourcePath\n } else if (this.path !== '') {\n path = this.path\n } else {\n path = LoaderUtils.extractUrlBase(this.url)\n }\n\n this.texloader.setPath(path).setCrossOrigin(this.crossOrigin)\n\n var endRead = 16\n this.Hierarchies.children = []\n this._hierarchieParse(this.Hierarchies, endRead)\n this._changeRoot()\n this._currentObject = this.Hierarchies.children.shift()\n this._mainloop()\n },\n },\n {\n key: '_hierarchieParse',\n value: function _hierarchieParse(_parent, _end) {\n var endRead = _end\n while (true) {\n var find1 = this._data.indexOf('{', endRead) + 1\n var findEnd = this._data.indexOf('}', endRead)\n var findNext = this._data.indexOf('{', find1) + 1\n if (find1 > 0 && findEnd > find1) {\n var _currentObject = {}\n _currentObject.children = []\n var nameData = this._readLine(this._data.substr(endRead, find1 - endRead - 1)).trim()\n var word = nameData.split(/ /g)\n if (word.length > 0) {\n _currentObject.type = word[0]\n if (word.length >= 2) {\n _currentObject.name = word[1]\n } else {\n _currentObject.name = word[0] + this.Hierarchies.children.length\n }\n } else {\n _currentObject.name = nameData\n _currentObject.type = ''\n }\n\n if (_currentObject.type === 'Animation') {\n _currentObject.data = this._data.substr(findNext, findEnd - findNext).trim()\n var refs = this._hierarchieParse(_currentObject, findEnd + 1)\n endRead = refs.end\n _currentObject.children = refs.parent.children\n } else {\n var DataEnder = this._data.lastIndexOf(';', findNext > 0 ? Math.min(findNext, findEnd) : findEnd)\n _currentObject.data = this._data.substr(find1, DataEnder - find1).trim()\n if (findNext <= 0 || findEnd < findNext) {\n endRead = findEnd + 1\n } else {\n var nextStart = Math.max(DataEnder + 1, find1)\n var _refs = this._hierarchieParse(_currentObject, nextStart)\n endRead = _refs.end\n _currentObject.children = _refs.parent.children\n }\n }\n\n _currentObject.parent = _parent\n if (_currentObject.type != 'template') {\n _parent.children.push(_currentObject)\n }\n } else {\n endRead = find1 === -1 ? this._data.length : findEnd + 1\n break\n }\n }\n\n return {\n parent: _parent,\n end: endRead,\n }\n },\n },\n {\n key: '_mainloop',\n value: function _mainloop() {\n var _this2 = this\n\n this._mainProc()\n if (this._currentObject.parent || this._currentObject.children.length > 0 || !this._currentObject.worked) {\n setTimeout(function () {\n _this2._mainloop()\n }, 1)\n } else {\n setTimeout(function () {\n _this2.onLoad({\n models: _this2.Meshes,\n animations: _this2.animations,\n })\n }, 1)\n }\n },\n },\n {\n key: '_mainProc',\n value: function _mainProc() {\n var breakFlag = false\n while (true) {\n if (!this._currentObject.worked) {\n switch (this._currentObject.type) {\n case 'template':\n break\n case 'AnimTicksPerSecond':\n this.animTicksPerSecond = parseInt(this._currentObject.data)\n break\n case 'Frame':\n this._setFrame()\n break\n case 'FrameTransformMatrix':\n this._setFrameTransformMatrix()\n break\n case 'Mesh':\n this._changeRoot()\n this._currentGeo = {}\n this._currentGeo.name = this._currentObject.name.trim()\n this._currentGeo.parentName = this._getParentName(this._currentObject).trim()\n this._currentGeo.VertexSetedBoneCount = []\n this._currentGeo.GeometryData = {\n vertices: [],\n normals: [],\n uvs: [],\n skinIndices: [],\n skinWeights: [],\n indices: [],\n materialIndices: [],\n }\n this._currentGeo.Materials = []\n this._currentGeo.normalVectors = []\n this._currentGeo.BoneInfs = []\n this._currentGeo.baseFrame = this._currentFrame\n this._makeBoneFrom_CurrentFrame()\n this._readVertexDatas()\n breakFlag = true\n break\n case 'MeshNormals':\n this._readVertexDatas()\n break\n case 'MeshTextureCoords':\n this._setMeshTextureCoords()\n break\n case 'VertexDuplicationIndices':\n break\n case 'MeshMaterialList':\n this._setMeshMaterialList()\n break\n case 'Material':\n this._setMaterial()\n break\n case 'SkinWeights':\n this._setSkinWeights()\n break\n case 'AnimationSet':\n this._changeRoot()\n this._currentAnime = {}\n this._currentAnime.name = this._currentObject.name.trim()\n this._currentAnime.AnimeFrames = []\n break\n case 'Animation':\n if (this._currentAnimeFrames) {\n this._currentAnime.AnimeFrames.push(this._currentAnimeFrames)\n }\n\n this._currentAnimeFrames = new XAnimationInfo()\n this._currentAnimeFrames.boneName = this._currentObject.data.trim()\n break\n case 'AnimationKey':\n this._readAnimationKey()\n breakFlag = true\n break\n }\n\n this._currentObject.worked = true\n }\n\n if (this._currentObject.children.length > 0) {\n this._currentObject = this._currentObject.children.shift()\n if (this.debug) {\n console.log('processing ' + this._currentObject.name)\n }\n\n if (breakFlag) break\n } else {\n if (this._currentObject.worked) {\n if (this._currentObject.parent && !this._currentObject.parent.parent) {\n this._changeRoot()\n }\n }\n\n if (this._currentObject.parent) {\n this._currentObject = this._currentObject.parent\n } else {\n breakFlag = true\n }\n\n if (breakFlag) break\n }\n }\n\n return\n },\n },\n {\n key: '_changeRoot',\n value: function _changeRoot() {\n if (this._currentGeo != null && this._currentGeo.name) {\n this._makeOutputGeometry()\n }\n\n this._currentGeo = {}\n if (this._currentAnime != null && this._currentAnime.name) {\n if (this._currentAnimeFrames) {\n this._currentAnime.AnimeFrames.push(this._currentAnimeFrames)\n this._currentAnimeFrames = null\n }\n\n this._makeOutputAnimation()\n }\n\n this._currentAnime = {}\n },\n },\n {\n key: '_getParentName',\n value: function _getParentName(_obj) {\n if (_obj.parent) {\n if (_obj.parent.name) {\n return _obj.parent.name\n } else {\n return this._getParentName(_obj.parent)\n }\n } else {\n return ''\n }\n },\n },\n {\n key: '_setFrame',\n value: function _setFrame() {\n this._nowFrameName = this._currentObject.name.trim()\n this._currentFrame = {}\n this._currentFrame.name = this._nowFrameName\n this._currentFrame.children = []\n if (this._currentObject.parent && this._currentObject.parent.name) {\n this._currentFrame.parentName = this._currentObject.parent.name\n }\n\n this.frameHierarchie.push(this._nowFrameName)\n this.HieStack[this._nowFrameName] = this._currentFrame\n },\n },\n {\n key: '_setFrameTransformMatrix',\n value: function _setFrameTransformMatrix() {\n this._currentFrame.FrameTransformMatrix = new Matrix4()\n var data = this._currentObject.data.split(',')\n this._ParseMatrixData(this._currentFrame.FrameTransformMatrix, data)\n this._makeBoneFrom_CurrentFrame()\n },\n },\n {\n key: '_makeBoneFrom_CurrentFrame',\n value: function _makeBoneFrom_CurrentFrame() {\n if (!this._currentFrame.FrameTransformMatrix) {\n return\n }\n\n var b = new Bone()\n b.name = this._currentFrame.name\n b.applyMatrix4(this._currentFrame.FrameTransformMatrix)\n b.matrixWorld = b.matrix\n b.FrameTransformMatrix = this._currentFrame.FrameTransformMatrix\n this._currentFrame.putBone = b\n if (this._currentFrame.parentName) {\n for (let frame in this.HieStack) {\n if (this.HieStack[frame].name === this._currentFrame.parentName) {\n this.HieStack[frame].putBone.add(this._currentFrame.putBone)\n }\n }\n }\n },\n },\n {\n key: '_readVertexDatas',\n value: function _readVertexDatas() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n var maxLength = 0\n while (true) {\n var changeMode = false\n if (mode_local === 0) {\n var refO = this._readInt1(endRead)\n endRead = refO.endRead\n mode_local = 1\n maxLength = this._currentObject.data.indexOf(';;', endRead) + 1\n if (maxLength <= 0) {\n maxLength = this._currentObject.data.length\n }\n } else {\n var find = 0\n switch (mode) {\n case 0:\n find = this._currentObject.data.indexOf(',', endRead) + 1\n break\n case 1:\n find = this._currentObject.data.indexOf(';,', endRead) + 1\n break\n }\n\n if (find === 0 || find > maxLength) {\n find = maxLength\n mode_local = 0\n changeMode = true\n }\n\n switch (this._currentObject.type) {\n case 'Mesh':\n switch (mode) {\n case 0:\n this._readVertex1(this._currentObject.data.substr(endRead, find - endRead))\n break\n case 1:\n this._readFace1(this._currentObject.data.substr(endRead, find - endRead))\n break\n }\n\n break\n case 'MeshNormals':\n switch (mode) {\n case 0:\n this._readNormalVector1(this._currentObject.data.substr(endRead, find - endRead))\n break\n }\n\n break\n }\n\n endRead = find + 1\n if (changeMode) {\n mode++\n }\n }\n\n if (endRead >= this._currentObject.data.length) {\n break\n }\n }\n },\n },\n {\n key: '_readInt1',\n value: function _readInt1(start) {\n var find = this._currentObject.data.indexOf(';', start)\n return {\n refI: parseInt(this._currentObject.data.substr(start, find - start)),\n endRead: find + 1,\n }\n },\n },\n {\n key: '_readVertex1',\n value: function _readVertex1(line) {\n var data = this._readLine(line.trim())\n .substr(0, line.length - 2)\n .split(';')\n this._currentGeo.GeometryData.vertices.push(parseFloat(data[0]), parseFloat(data[1]), parseFloat(data[2]))\n this._currentGeo.GeometryData.skinIndices.push(0, 0, 0, 0)\n this._currentGeo.GeometryData.skinWeights.push(1, 0, 0, 0)\n this._currentGeo.VertexSetedBoneCount.push(0)\n },\n },\n {\n key: '_readFace1',\n value: function _readFace1(line) {\n var data = this._readLine(line.trim())\n .substr(2, line.length - 4)\n .split(',')\n this._currentGeo.GeometryData.indices.push(\n parseInt(data[0], 10),\n parseInt(data[1], 10),\n parseInt(data[2], 10),\n )\n },\n },\n {\n key: '_readNormalVector1',\n value: function _readNormalVector1(line) {\n var data = this._readLine(line.trim())\n .substr(0, line.length - 2)\n .split(';')\n this._currentGeo.GeometryData.normals.push(parseFloat(data[0]), parseFloat(data[1]), parseFloat(data[2]))\n },\n },\n {\n key: '_buildGeometry',\n value: function _buildGeometry() {\n var bufferGeometry = new BufferGeometry()\n var position = []\n var normals = []\n var uvs = []\n var skinIndices = []\n var skinWeights = []\n\n //\n\n var data = this._currentGeo.GeometryData\n\n for (let i = 0, l = data.indices.length; i < l; i++) {\n var stride2 = data.indices[i] * 2\n var stride3 = data.indices[i] * 3\n var stride4 = data.indices[i] * 4\n\n position.push(data.vertices[stride3], data.vertices[stride3 + 1], data.vertices[stride3 + 2])\n normals.push(data.normals[stride3], data.normals[stride3 + 1], data.normals[stride3 + 2])\n skinIndices.push(\n data.skinIndices[stride4],\n data.skinIndices[stride4 + 1],\n data.skinIndices[stride4 + 2],\n data.skinIndices[stride4 + 3],\n )\n skinWeights.push(\n data.skinWeights[stride4],\n data.skinWeights[stride4 + 1],\n data.skinWeights[stride4 + 2],\n data.skinWeights[stride4 + 3],\n )\n uvs.push(data.uvs[stride2], data.uvs[stride2 + 1])\n }\n\n //\n\n bufferGeometry.setAttribute('position', new Float32BufferAttribute(position, 3))\n bufferGeometry.setAttribute('normal', new Float32BufferAttribute(normals, 3))\n bufferGeometry.setAttribute('uv', new Float32BufferAttribute(uvs, 2))\n bufferGeometry.setAttribute('skinIndex', new Uint16BufferAttribute(skinIndices, 4))\n bufferGeometry.setAttribute('skinWeight', new Float32BufferAttribute(skinWeights, 4))\n\n this._computeGroups(bufferGeometry, data.materialIndices)\n\n return bufferGeometry\n },\n },\n {\n key: '_computeGroups',\n value: function _computeGroups(bufferGeometry, materialIndices) {\n var group\n var groups = []\n var materialIndex = undefined\n\n for (let i = 0; i < materialIndices.length; i++) {\n var currentMaterialIndex = materialIndices[i]\n\n if (currentMaterialIndex !== materialIndex) {\n materialIndex = currentMaterialIndex\n\n if (group !== undefined) {\n group.count = i * 3 - group.start\n groups.push(group)\n }\n\n group = {\n start: i * 3,\n materialIndex: materialIndex,\n }\n }\n }\n\n if (group !== undefined) {\n group.count = i * 3 - group.start\n groups.push(group)\n }\n\n bufferGeometry.groups = groups\n },\n },\n {\n key: '_setMeshTextureCoords',\n value: function _setMeshTextureCoords() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n while (true) {\n switch (mode) {\n case 0:\n if (mode_local === 0) {\n var refO = this._readInt1(0)\n endRead = refO.endRead\n mode_local = 1\n } else {\n var find = this._currentObject.data.indexOf(',', endRead) + 1\n if (find === 0) {\n find = this._currentObject.data.length\n mode = 2\n mode_local = 0\n }\n\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(';')\n if (this.IsUvYReverse) {\n this._currentGeo.GeometryData.uvs.push(parseFloat(data[0]), 1 - parseFloat(data[1]))\n } else {\n this._currentGeo.GeometryData.uvs.push(parseFloat(data[0]), parseFloat(data[1]))\n }\n\n endRead = find + 1\n }\n\n break\n }\n\n if (endRead >= this._currentObject.data.length) {\n break\n }\n }\n },\n },\n {\n key: '_setMeshMaterialList',\n value: function _setMeshMaterialList() {\n var endRead = 0\n var mode = 0\n var mode_local = 0\n while (true) {\n if (mode_local < 2) {\n var refO = this._readInt1(endRead)\n endRead = refO.endRead\n mode_local++\n } else {\n var find = this._currentObject.data.indexOf(';', endRead)\n if (find === -1) {\n find = this._currentObject.data.length\n mode = 3\n mode_local = 0\n }\n\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(',')\n for (let i = 0; i < data.length; i++) {\n this._currentGeo.GeometryData.materialIndices[i] = parseInt(data[i])\n }\n\n endRead = this._currentObject.data.length\n }\n\n if (endRead >= this._currentObject.data.length || mode >= 3) {\n break\n }\n }\n },\n },\n {\n key: '_setMaterial',\n value: function _setMaterial() {\n var _nowMat = new MeshPhongMaterial({\n color: Math.random() * 0xffffff,\n })\n _nowMat.side = FrontSide\n _nowMat.name = this._currentObject.name\n var endRead = 0\n var find = this._currentObject.data.indexOf(';;', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(';')\n _nowMat.color.r = parseFloat(data[0])\n _nowMat.color.g = parseFloat(data[1])\n _nowMat.color.b = parseFloat(data[2])\n endRead = find + 2\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n _nowMat.shininess = parseFloat(this._readLine(line))\n endRead = find + 1\n find = this._currentObject.data.indexOf(';;', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data2 = this._readLine(line.trim()).split(';')\n _nowMat.specular.r = parseFloat(data2[0])\n _nowMat.specular.g = parseFloat(data2[1])\n _nowMat.specular.b = parseFloat(data2[2])\n endRead = find + 2\n find = this._currentObject.data.indexOf(';;', endRead)\n if (find === -1) {\n find = this._currentObject.data.length\n }\n\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data3 = this._readLine(line.trim()).split(';')\n _nowMat.emissive.r = parseFloat(data3[0])\n _nowMat.emissive.g = parseFloat(data3[1])\n _nowMat.emissive.b = parseFloat(data3[2])\n var localObject = null\n while (true) {\n if (this._currentObject.children.length > 0) {\n localObject = this._currentObject.children.shift()\n if (this.debug) {\n console.log('processing ' + localObject.name)\n }\n\n var fileName = localObject.data.substr(1, localObject.data.length - 2)\n switch (localObject.type) {\n case 'TextureFilename':\n _nowMat.map = this.texloader.load(fileName)\n break\n case 'BumpMapFilename':\n _nowMat.bumpMap = this.texloader.load(fileName)\n _nowMat.bumpScale = 0.05\n break\n case 'NormalMapFilename':\n _nowMat.normalMap = this.texloader.load(fileName)\n _nowMat.normalScale = new Vector2(2, 2)\n break\n case 'EmissiveMapFilename':\n _nowMat.emissiveMap = this.texloader.load(fileName)\n break\n case 'LightMapFilename':\n _nowMat.lightMap = this.texloader.load(fileName)\n break\n }\n } else {\n break\n }\n }\n\n this._currentGeo.Materials.push(_nowMat)\n },\n },\n {\n key: '_setSkinWeights',\n value: function _setSkinWeights() {\n var boneInf = new XboneInf()\n var endRead = 0\n var find = this._currentObject.data.indexOf(';', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n endRead = find + 1\n boneInf.boneName = line.substr(1, line.length - 2)\n boneInf.BoneIndex = this._currentGeo.BoneInfs.length\n find = this._currentObject.data.indexOf(';', endRead)\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data = this._readLine(line.trim()).split(',')\n for (let i = 0; i < data.length; i++) {\n boneInf.Indeces.push(parseInt(data[i]))\n }\n\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data2 = this._readLine(line.trim()).split(',')\n for (let _i = 0; _i < data2.length; _i++) {\n boneInf.Weights.push(parseFloat(data2[_i]))\n }\n\n endRead = find + 1\n find = this._currentObject.data.indexOf(';', endRead)\n if (find <= 0) {\n find = this._currentObject.data.length\n }\n\n line = this._currentObject.data.substr(endRead, find - endRead)\n var data3 = this._readLine(line.trim()).split(',')\n boneInf.OffsetMatrix = new Matrix4()\n this._ParseMatrixData(boneInf.OffsetMatrix, data3)\n this._currentGeo.BoneInfs.push(boneInf)\n },\n },\n {\n key: '_makePutBoneList',\n value: function _makePutBoneList(_RootName, _bones) {\n var putting = false\n for (let frame in this.HieStack) {\n if (this.HieStack[frame].name === _RootName || putting) {\n putting = true\n var b = new Bone()\n b.name = this.HieStack[frame].name\n b.applyMatrix4(this.HieStack[frame].FrameTransformMatrix)\n b.matrixWorld = b.matrix\n b.FrameTransformMatrix = this.HieStack[frame].FrameTransformMatrix\n b.pos = new Vector3().setFromMatrixPosition(b.FrameTransformMatrix).toArray()\n b.rotq = new Quaternion().setFromRotationMatrix(b.FrameTransformMatrix).toArray()\n b.scl = new Vector3().setFromMatrixScale(b.FrameTransformMatrix).toArray()\n if (this.HieStack[frame].parentName && this.HieStack[frame].parentName.length > 0) {\n for (let i = 0; i < _bones.length; i++) {\n if (this.HieStack[frame].parentName === _bones[i].name) {\n _bones[i].add(b)\n b.parent = i\n break\n }\n }\n }\n\n _bones.push(b)\n }\n }\n },\n },\n {\n key: '_makeOutputGeometry',\n value: function _makeOutputGeometry() {\n var mesh = null\n if (this._currentGeo.BoneInfs.length > 0) {\n var putBones = []\n this._makePutBoneList(this._currentGeo.baseFrame.parentName, putBones)\n for (let bi = 0; bi < this._currentGeo.BoneInfs.length; bi++) {\n var boneIndex = 0\n for (let bb = 0; bb < putBones.length; bb++) {\n if (putBones[bb].name === this._currentGeo.BoneInfs[bi].boneName) {\n boneIndex = bb\n putBones[bb].OffsetMatrix = new Matrix4()\n putBones[bb].OffsetMatrix.copy(this._currentGeo.BoneInfs[bi].OffsetMatrix)\n break\n }\n }\n\n for (let vi = 0; vi < this._currentGeo.BoneInfs[bi].Indeces.length; vi++) {\n var nowVertexID = this._currentGeo.BoneInfs[bi].Indeces[vi]\n var nowVal = this._currentGeo.BoneInfs[bi].Weights[vi]\n\n var stride = nowVertexID * 4\n\n switch (this._currentGeo.VertexSetedBoneCount[nowVertexID]) {\n case 0:\n this._currentGeo.GeometryData.skinIndices[stride] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride] = nowVal\n break\n case 1:\n this._currentGeo.GeometryData.skinIndices[stride + 1] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 1] = nowVal\n break\n case 2:\n this._currentGeo.GeometryData.skinIndices[stride + 2] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 2] = nowVal\n break\n case 3:\n this._currentGeo.GeometryData.skinIndices[stride + 3] = boneIndex\n this._currentGeo.GeometryData.skinWeights[stride + 3] = nowVal\n break\n }\n\n this._currentGeo.VertexSetedBoneCount[nowVertexID]++\n if (this._currentGeo.VertexSetedBoneCount[nowVertexID] > 4) {\n console.log('warn! over 4 bone weight! :' + nowVertexID)\n }\n }\n }\n\n for (let sk = 0; sk < this._currentGeo.Materials.length; sk++) {\n this._currentGeo.Materials[sk].skinning = true\n }\n\n var offsetList = []\n for (let _bi = 0; _bi < putBones.length; _bi++) {\n if (putBones[_bi].OffsetMatrix) {\n offsetList.push(putBones[_bi].OffsetMatrix)\n } else {\n offsetList.push(new Matrix4())\n }\n }\n\n var bufferGeometry = this._buildGeometry()\n mesh = new SkinnedMesh(\n bufferGeometry,\n this._currentGeo.Materials.length === 1 ? this._currentGeo.Materials[0] : this._currentGeo.Materials,\n )\n\n this._initSkeleton(mesh, putBones, offsetList)\n } else {\n var _bufferGeometry = this._buildGeometry()\n mesh = new Mesh(\n _bufferGeometry,\n this._currentGeo.Materials.length === 1 ? this._currentGeo.Materials[0] : this._currentGeo.Materials,\n )\n }\n\n mesh.name = this._currentGeo.name\n var worldBaseMx = new Matrix4()\n var currentMxFrame = this._currentGeo.baseFrame.putBone\n if (currentMxFrame && currentMxFrame.parent) {\n while (true) {\n currentMxFrame = currentMxFrame.parent\n if (currentMxFrame) {\n worldBaseMx.multiply(currentMxFrame.FrameTransformMatrix)\n } else {\n break\n }\n }\n\n mesh.applyMatrix4(worldBaseMx)\n }\n\n this.Meshes.push(mesh)\n },\n },\n {\n key: '_initSkeleton',\n value: function _initSkeleton(mesh, boneList, boneInverses) {\n var bones = [],\n bone,\n gbone\n var i, il\n\n for (i = 0, il = boneList.length; i < il; i++) {\n gbone = boneList[i]\n\n bone = new Bone()\n bones.push(bone)\n\n bone.name = gbone.name\n bone.position.fromArray(gbone.pos)\n bone.quaternion.fromArray(gbone.rotq)\n if (gbone.scl !== undefined) bone.scale.fromArray(gbone.scl)\n }\n\n for (i = 0, il = boneList.length; i < il; i++) {\n gbone = boneList[i]\n\n if (gbone.parent !== -1 && gbone.parent !== null && bones[gbone.parent] !== undefined) {\n bones[gbone.parent].add(bones[i])\n } else {\n mesh.add(bones[i])\n }\n }\n\n mesh.updateMatrixWorld(true)\n\n var skeleton = new Skeleton(bones, boneInverses)\n mesh.bind(skeleton, mesh.matrixWorld)\n },\n },\n {\n key: '_readAnimationKey',\n value: function _readAnimationKey() {\n var endRead = 0\n var find = this._currentObject.data.indexOf(';', endRead)\n var line = this._currentObject.data.substr(endRead, find - endRead)\n endRead = find + 1\n var nowKeyType = parseInt(this._readLine(line))\n find = this._currentObject.data.indexOf(';', endRead)\n endRead = find + 1\n line = this._currentObject.data.substr(endRead)\n var data = this._readLine(line.trim()).split(';;,')\n for (let i = 0; i < data.length; i++) {\n var data2 = data[i].split(';')\n var keyInfo = new XKeyFrameInfo()\n keyInfo.type = nowKeyType\n keyInfo.Frame = parseInt(data2[0])\n keyInfo.index = this._currentAnimeFrames.keyFrames.length\n keyInfo.time = keyInfo.Frame\n if (nowKeyType != 4) {\n var frameFound = false\n for (let mm = 0; mm < this._currentAnimeFrames.keyFrames.length; mm++) {\n if (this._currentAnimeFrames.keyFrames[mm].Frame === keyInfo.Frame) {\n keyInfo = this._currentAnimeFrames.keyFrames[mm]\n frameFound = true\n break\n }\n }\n\n var frameValue = data2[2].split(',')\n switch (nowKeyType) {\n case 0:\n keyInfo.rot = new Quaternion(\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n parseFloat(frameValue[3]),\n parseFloat(frameValue[0]) * -1,\n )\n break\n case 1:\n keyInfo.scl = new Vector3(\n parseFloat(frameValue[0]),\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n )\n break\n case 2:\n keyInfo.pos = new Vector3(\n parseFloat(frameValue[0]),\n parseFloat(frameValue[1]),\n parseFloat(frameValue[2]),\n )\n break\n }\n\n if (!frameFound) {\n this._currentAnimeFrames.keyFrames.push(keyInfo)\n }\n } else {\n keyInfo.matrix = new Matrix4()\n this._ParseMatrixData(keyInfo.matrix, data2[2].split(','))\n this._currentAnimeFrames.keyFrames.push(keyInfo)\n }\n }\n },\n },\n {\n key: '_makeOutputAnimation',\n value: function _makeOutputAnimation() {\n var animationObj = new XAnimationObj(this.options)\n animationObj.fps = this.animTicksPerSecond\n animationObj.name = this._currentAnime.name\n animationObj.make(this._currentAnime.AnimeFrames)\n this.animations.push(animationObj)\n },\n },\n {\n key: 'assignAnimation',\n value: function assignAnimation(_model, _animation) {\n var model = _model\n var animation = _animation\n if (!model) {\n model = this.Meshes[0]\n }\n\n if (!animation) {\n animation = this.animations[0]\n }\n\n if (!model || !animation) {\n return null\n }\n\n var put = {}\n put.fps = animation.fps\n put.name = animation.name\n put.length = animation.length\n put.hierarchy = []\n for (let b = 0; b < model.skeleton.bones.length; b++) {\n var findAnimation = false\n for (let i = 0; i < animation.hierarchy.length; i++) {\n if (model.skeleton.bones[b].name === animation.hierarchy[i].name) {\n findAnimation = true\n var c_key = animation.hierarchy[i].copy()\n c_key.parent = -1\n if (model.skeleton.bones[b].parent && model.skeleton.bones[b].parent.type === 'Bone') {\n for (let bb = 0; bb < put.hierarchy.length; bb++) {\n if (put.hierarchy[bb].name === model.skeleton.bones[b].parent.name) {\n c_key.parent = bb\n c_key.parentName = model.skeleton.bones[b].parent.name\n }\n }\n }\n\n put.hierarchy.push(c_key)\n break\n }\n }\n\n if (!findAnimation) {\n var _c_key = animation.hierarchy[0].copy()\n _c_key.name = model.skeleton.bones[b].name\n _c_key.parent = -1\n for (let k = 0; k < _c_key.keys.length; k++) {\n if (_c_key.keys[k].pos) {\n _c_key.keys[k].pos.set(0, 0, 0)\n }\n\n if (_c_key.keys[k].scl) {\n _c_key.keys[k].scl.set(1, 1, 1)\n }\n\n if (_c_key.keys[k].rot) {\n _c_key.keys[k].rot.set(0, 0, 0, 1)\n }\n }\n\n put.hierarchy.push(_c_key)\n }\n }\n\n if (!model.geometry.animations) {\n model.geometry.animations = []\n }\n\n model.geometry.animations.push(AnimationClip.parseAnimation(put, model.skeleton.bones))\n if (!model.animationMixer) {\n model.animationMixer = new AnimationMixer(model)\n }\n\n return put\n },\n },\n {\n key: '_ParseMatrixData',\n value: function _ParseMatrixData(targetMatrix, data) {\n targetMatrix.set(\n parseFloat(data[0]),\n parseFloat(data[4]),\n parseFloat(data[8]),\n parseFloat(data[12]),\n parseFloat(data[1]),\n parseFloat(data[5]),\n parseFloat(data[9]),\n parseFloat(data[13]),\n parseFloat(data[2]),\n parseFloat(data[6]),\n parseFloat(data[10]),\n parseFloat(data[14]),\n parseFloat(data[3]),\n parseFloat(data[7]),\n parseFloat(data[11]),\n parseFloat(data[15]),\n )\n },\n },\n ])\n return XLoader\n })()\n\n return XLoader\n})()\n\nexport { XLoader }\n"],"names":["i","XboneInf","XAnimationInfo","XAnimationObj","XKeyFrameInfo","XLoader"],"mappings":"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"}
package/math/Capsule.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- const _v1 = new THREE.Vector3();
5
- const _v2 = new THREE.Vector3();
6
- const _v3 = new THREE.Vector3();
4
+ const _v1 = /* @__PURE__ */ new THREE.Vector3();
5
+ const _v2 = /* @__PURE__ */ new THREE.Vector3();
6
+ const _v3 = /* @__PURE__ */ new THREE.Vector3();
7
7
  const EPS = 1e-10;
8
8
  class Capsule {
9
9
  constructor(start = new THREE.Vector3(0, 0, 0), end = new THREE.Vector3(0, 1, 0), radius = 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"Capsule.cjs","sources":["../../src/math/Capsule.js"],"sourcesContent":["import { Vector3 } from 'three'\n\nconst _v1 = new Vector3()\nconst _v2 = new Vector3()\nconst _v3 = new Vector3()\n\nconst EPS = 1e-10\n\nclass Capsule {\n constructor(start = new Vector3(0, 0, 0), end = new Vector3(0, 1, 0), radius = 1) {\n this.start = start\n this.end = end\n this.radius = radius\n }\n\n clone() {\n return new Capsule(this.start.clone(), this.end.clone(), this.radius)\n }\n\n set(start, end, radius) {\n this.start.copy(start)\n this.end.copy(end)\n this.radius = radius\n }\n\n copy(capsule) {\n this.start.copy(capsule.start)\n this.end.copy(capsule.end)\n this.radius = capsule.radius\n }\n\n getCenter(target) {\n return target.copy(this.end).add(this.start).multiplyScalar(0.5)\n }\n\n translate(v) {\n this.start.add(v)\n this.end.add(v)\n }\n\n checkAABBAxis(p1x, p1y, p2x, p2y, minx, maxx, miny, maxy, radius) {\n return (\n (minx - p1x < radius || minx - p2x < radius) &&\n (p1x - maxx < radius || p2x - maxx < radius) &&\n (miny - p1y < radius || miny - p2y < radius) &&\n (p1y - maxy < radius || p2y - maxy < radius)\n )\n }\n\n intersectsBox(box) {\n return (\n this.checkAABBAxis(\n this.start.x,\n this.start.y,\n this.end.x,\n this.end.y,\n box.min.x,\n box.max.x,\n box.min.y,\n box.max.y,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.x,\n this.start.z,\n this.end.x,\n this.end.z,\n box.min.x,\n box.max.x,\n box.min.z,\n box.max.z,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.y,\n this.start.z,\n this.end.y,\n this.end.z,\n box.min.y,\n box.max.y,\n box.min.z,\n box.max.z,\n this.radius,\n )\n )\n }\n\n lineLineMinimumPoints(line1, line2) {\n const r = _v1.copy(line1.end).sub(line1.start)\n const s = _v2.copy(line2.end).sub(line2.start)\n const w = _v3.copy(line2.start).sub(line1.start)\n\n const a = r.dot(s),\n b = r.dot(r),\n c = s.dot(s),\n d = s.dot(w),\n e = r.dot(w)\n\n let t1, t2\n const divisor = b * c - a * a\n\n if (Math.abs(divisor) < EPS) {\n const d1 = -d / c\n const d2 = (a - d) / c\n\n if (Math.abs(d1 - 0.5) < Math.abs(d2 - 0.5)) {\n t1 = 0\n t2 = d1\n } else {\n t1 = 1\n t2 = d2\n }\n } else {\n t1 = (d * a + e * c) / divisor\n t2 = (t1 * a - d) / c\n }\n\n t2 = Math.max(0, Math.min(1, t2))\n t1 = Math.max(0, Math.min(1, t1))\n\n const point1 = r.multiplyScalar(t1).add(line1.start)\n const point2 = s.multiplyScalar(t2).add(line2.start)\n\n return [point1, point2]\n }\n}\n\nexport { Capsule }\n"],"names":["Vector3"],"mappings":"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"}
1
+ {"version":3,"file":"Capsule.cjs","sources":["../../src/math/Capsule.js"],"sourcesContent":["import { Vector3 } from 'three'\n\nconst _v1 = /* @__PURE__ */ new Vector3()\nconst _v2 = /* @__PURE__ */ new Vector3()\nconst _v3 = /* @__PURE__ */ new Vector3()\n\nconst EPS = 1e-10\n\nclass Capsule {\n constructor(start = new Vector3(0, 0, 0), end = new Vector3(0, 1, 0), radius = 1) {\n this.start = start\n this.end = end\n this.radius = radius\n }\n\n clone() {\n return new Capsule(this.start.clone(), this.end.clone(), this.radius)\n }\n\n set(start, end, radius) {\n this.start.copy(start)\n this.end.copy(end)\n this.radius = radius\n }\n\n copy(capsule) {\n this.start.copy(capsule.start)\n this.end.copy(capsule.end)\n this.radius = capsule.radius\n }\n\n getCenter(target) {\n return target.copy(this.end).add(this.start).multiplyScalar(0.5)\n }\n\n translate(v) {\n this.start.add(v)\n this.end.add(v)\n }\n\n checkAABBAxis(p1x, p1y, p2x, p2y, minx, maxx, miny, maxy, radius) {\n return (\n (minx - p1x < radius || minx - p2x < radius) &&\n (p1x - maxx < radius || p2x - maxx < radius) &&\n (miny - p1y < radius || miny - p2y < radius) &&\n (p1y - maxy < radius || p2y - maxy < radius)\n )\n }\n\n intersectsBox(box) {\n return (\n this.checkAABBAxis(\n this.start.x,\n this.start.y,\n this.end.x,\n this.end.y,\n box.min.x,\n box.max.x,\n box.min.y,\n box.max.y,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.x,\n this.start.z,\n this.end.x,\n this.end.z,\n box.min.x,\n box.max.x,\n box.min.z,\n box.max.z,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.y,\n this.start.z,\n this.end.y,\n this.end.z,\n box.min.y,\n box.max.y,\n box.min.z,\n box.max.z,\n this.radius,\n )\n )\n }\n\n lineLineMinimumPoints(line1, line2) {\n const r = _v1.copy(line1.end).sub(line1.start)\n const s = _v2.copy(line2.end).sub(line2.start)\n const w = _v3.copy(line2.start).sub(line1.start)\n\n const a = r.dot(s),\n b = r.dot(r),\n c = s.dot(s),\n d = s.dot(w),\n e = r.dot(w)\n\n let t1, t2\n const divisor = b * c - a * a\n\n if (Math.abs(divisor) < EPS) {\n const d1 = -d / c\n const d2 = (a - d) / c\n\n if (Math.abs(d1 - 0.5) < Math.abs(d2 - 0.5)) {\n t1 = 0\n t2 = d1\n } else {\n t1 = 1\n t2 = d2\n }\n } else {\n t1 = (d * a + e * c) / divisor\n t2 = (t1 * a - d) / c\n }\n\n t2 = Math.max(0, Math.min(1, t2))\n t1 = Math.max(0, Math.min(1, t1))\n\n const point1 = r.multiplyScalar(t1).add(line1.start)\n const point2 = s.multiplyScalar(t2).add(line2.start)\n\n return [point1, point2]\n }\n}\n\nexport { Capsule }\n"],"names":["Vector3"],"mappings":"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"}
package/math/Capsule.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Vector3 } from "three";
2
- const _v1 = new Vector3();
3
- const _v2 = new Vector3();
4
- const _v3 = new Vector3();
2
+ const _v1 = /* @__PURE__ */ new Vector3();
3
+ const _v2 = /* @__PURE__ */ new Vector3();
4
+ const _v3 = /* @__PURE__ */ new Vector3();
5
5
  const EPS = 1e-10;
6
6
  class Capsule {
7
7
  constructor(start = new Vector3(0, 0, 0), end = new Vector3(0, 1, 0), radius = 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"Capsule.js","sources":["../../src/math/Capsule.js"],"sourcesContent":["import { Vector3 } from 'three'\n\nconst _v1 = new Vector3()\nconst _v2 = new Vector3()\nconst _v3 = new Vector3()\n\nconst EPS = 1e-10\n\nclass Capsule {\n constructor(start = new Vector3(0, 0, 0), end = new Vector3(0, 1, 0), radius = 1) {\n this.start = start\n this.end = end\n this.radius = radius\n }\n\n clone() {\n return new Capsule(this.start.clone(), this.end.clone(), this.radius)\n }\n\n set(start, end, radius) {\n this.start.copy(start)\n this.end.copy(end)\n this.radius = radius\n }\n\n copy(capsule) {\n this.start.copy(capsule.start)\n this.end.copy(capsule.end)\n this.radius = capsule.radius\n }\n\n getCenter(target) {\n return target.copy(this.end).add(this.start).multiplyScalar(0.5)\n }\n\n translate(v) {\n this.start.add(v)\n this.end.add(v)\n }\n\n checkAABBAxis(p1x, p1y, p2x, p2y, minx, maxx, miny, maxy, radius) {\n return (\n (minx - p1x < radius || minx - p2x < radius) &&\n (p1x - maxx < radius || p2x - maxx < radius) &&\n (miny - p1y < radius || miny - p2y < radius) &&\n (p1y - maxy < radius || p2y - maxy < radius)\n )\n }\n\n intersectsBox(box) {\n return (\n this.checkAABBAxis(\n this.start.x,\n this.start.y,\n this.end.x,\n this.end.y,\n box.min.x,\n box.max.x,\n box.min.y,\n box.max.y,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.x,\n this.start.z,\n this.end.x,\n this.end.z,\n box.min.x,\n box.max.x,\n box.min.z,\n box.max.z,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.y,\n this.start.z,\n this.end.y,\n this.end.z,\n box.min.y,\n box.max.y,\n box.min.z,\n box.max.z,\n this.radius,\n )\n )\n }\n\n lineLineMinimumPoints(line1, line2) {\n const r = _v1.copy(line1.end).sub(line1.start)\n const s = _v2.copy(line2.end).sub(line2.start)\n const w = _v3.copy(line2.start).sub(line1.start)\n\n const a = r.dot(s),\n b = r.dot(r),\n c = s.dot(s),\n d = s.dot(w),\n e = r.dot(w)\n\n let t1, t2\n const divisor = b * c - a * a\n\n if (Math.abs(divisor) < EPS) {\n const d1 = -d / c\n const d2 = (a - d) / c\n\n if (Math.abs(d1 - 0.5) < Math.abs(d2 - 0.5)) {\n t1 = 0\n t2 = d1\n } else {\n t1 = 1\n t2 = d2\n }\n } else {\n t1 = (d * a + e * c) / divisor\n t2 = (t1 * a - d) / c\n }\n\n t2 = Math.max(0, Math.min(1, t2))\n t1 = Math.max(0, Math.min(1, t1))\n\n const point1 = r.multiplyScalar(t1).add(line1.start)\n const point2 = s.multiplyScalar(t2).add(line2.start)\n\n return [point1, point2]\n }\n}\n\nexport { Capsule }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Capsule.js","sources":["../../src/math/Capsule.js"],"sourcesContent":["import { Vector3 } from 'three'\n\nconst _v1 = /* @__PURE__ */ new Vector3()\nconst _v2 = /* @__PURE__ */ new Vector3()\nconst _v3 = /* @__PURE__ */ new Vector3()\n\nconst EPS = 1e-10\n\nclass Capsule {\n constructor(start = new Vector3(0, 0, 0), end = new Vector3(0, 1, 0), radius = 1) {\n this.start = start\n this.end = end\n this.radius = radius\n }\n\n clone() {\n return new Capsule(this.start.clone(), this.end.clone(), this.radius)\n }\n\n set(start, end, radius) {\n this.start.copy(start)\n this.end.copy(end)\n this.radius = radius\n }\n\n copy(capsule) {\n this.start.copy(capsule.start)\n this.end.copy(capsule.end)\n this.radius = capsule.radius\n }\n\n getCenter(target) {\n return target.copy(this.end).add(this.start).multiplyScalar(0.5)\n }\n\n translate(v) {\n this.start.add(v)\n this.end.add(v)\n }\n\n checkAABBAxis(p1x, p1y, p2x, p2y, minx, maxx, miny, maxy, radius) {\n return (\n (minx - p1x < radius || minx - p2x < radius) &&\n (p1x - maxx < radius || p2x - maxx < radius) &&\n (miny - p1y < radius || miny - p2y < radius) &&\n (p1y - maxy < radius || p2y - maxy < radius)\n )\n }\n\n intersectsBox(box) {\n return (\n this.checkAABBAxis(\n this.start.x,\n this.start.y,\n this.end.x,\n this.end.y,\n box.min.x,\n box.max.x,\n box.min.y,\n box.max.y,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.x,\n this.start.z,\n this.end.x,\n this.end.z,\n box.min.x,\n box.max.x,\n box.min.z,\n box.max.z,\n this.radius,\n ) &&\n this.checkAABBAxis(\n this.start.y,\n this.start.z,\n this.end.y,\n this.end.z,\n box.min.y,\n box.max.y,\n box.min.z,\n box.max.z,\n this.radius,\n )\n )\n }\n\n lineLineMinimumPoints(line1, line2) {\n const r = _v1.copy(line1.end).sub(line1.start)\n const s = _v2.copy(line2.end).sub(line2.start)\n const w = _v3.copy(line2.start).sub(line1.start)\n\n const a = r.dot(s),\n b = r.dot(r),\n c = s.dot(s),\n d = s.dot(w),\n e = r.dot(w)\n\n let t1, t2\n const divisor = b * c - a * a\n\n if (Math.abs(divisor) < EPS) {\n const d1 = -d / c\n const d2 = (a - d) / c\n\n if (Math.abs(d1 - 0.5) < Math.abs(d2 - 0.5)) {\n t1 = 0\n t2 = d1\n } else {\n t1 = 1\n t2 = d2\n }\n } else {\n t1 = (d * a + e * c) / divisor\n t2 = (t1 * a - d) / c\n }\n\n t2 = Math.max(0, Math.min(1, t2))\n t1 = Math.max(0, Math.min(1, t1))\n\n const point1 = r.multiplyScalar(t1).add(line1.start)\n const point2 = s.multiplyScalar(t2).add(line2.start)\n\n return [point1, point2]\n }\n}\n\nexport { Capsule }\n"],"names":[],"mappings":"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"}
@@ -2,29 +2,29 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
4
  const _hsl = {};
5
- class ColorConverter {
6
- static setHSV(color, h, s, v) {
5
+ const ColorConverter = {
6
+ setHSV(color, h, s, v) {
7
7
  h = THREE.MathUtils.euclideanModulo(h, 1);
8
8
  s = THREE.MathUtils.clamp(s, 0, 1);
9
9
  v = THREE.MathUtils.clamp(v, 0, 1);
10
10
  return color.setHSL(h, s * v / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5);
11
- }
12
- static getHSV(color, target) {
11
+ },
12
+ getHSV(color, target) {
13
13
  color.getHSL(_hsl);
14
14
  _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l;
15
15
  target.h = _hsl.h;
16
16
  target.s = 2 * _hsl.s / (_hsl.l + _hsl.s);
17
17
  target.v = _hsl.l + _hsl.s;
18
18
  return target;
19
- }
19
+ },
20
20
  // where c, m, y, k is between 0 and 1
21
- static setCMYK(color, c, m, y, k) {
21
+ setCMYK(color, c, m, y, k) {
22
22
  const r = (1 - c) * (1 - k);
23
23
  const g = (1 - m) * (1 - k);
24
24
  const b = (1 - y) * (1 - k);
25
25
  return color.setRGB(r, g, b);
26
- }
27
- static getCMYK(color, target) {
26
+ },
27
+ getCMYK(color, target) {
28
28
  const r = color.r;
29
29
  const g = color.g;
30
30
  const b = color.b;
@@ -38,6 +38,6 @@ class ColorConverter {
38
38
  target.k = k;
39
39
  return target;
40
40
  }
41
- }
41
+ };
42
42
  exports.ColorConverter = ColorConverter;
43
43
  //# sourceMappingURL=ColorConverter.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorConverter.cjs","sources":["../../src/math/ColorConverter.js"],"sourcesContent":["import { MathUtils } from 'three'\n\nconst _hsl = {}\n\nclass ColorConverter {\n static setHSV(color, h, s, v) {\n // https://gist.github.com/xpansive/1337890#file-index-js\n\n h = MathUtils.euclideanModulo(h, 1)\n s = MathUtils.clamp(s, 0, 1)\n v = MathUtils.clamp(v, 0, 1)\n\n return color.setHSL(h, (s * v) / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5)\n }\n\n static getHSV(color, target) {\n color.getHSL(_hsl)\n\n // based on https://gist.github.com/xpansive/1337890#file-index-js\n _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l\n\n target.h = _hsl.h\n target.s = (2 * _hsl.s) / (_hsl.l + _hsl.s)\n target.v = _hsl.l + _hsl.s\n\n return target\n }\n\n // where c, m, y, k is between 0 and 1\n\n static setCMYK(color, c, m, y, k) {\n const r = (1 - c) * (1 - k)\n const g = (1 - m) * (1 - k)\n const b = (1 - y) * (1 - k)\n\n return color.setRGB(r, g, b)\n }\n\n static getCMYK(color, target) {\n const r = color.r\n const g = color.g\n const b = color.b\n\n const k = 1 - Math.max(r, g, b)\n const c = (1 - r - k) / (1 - k)\n const m = (1 - g - k) / (1 - k)\n const y = (1 - b - k) / (1 - k)\n\n target.c = c\n target.m = m\n target.y = y\n target.k = k\n\n return target\n }\n}\n\nexport { ColorConverter }\n"],"names":["MathUtils"],"mappings":";;;AAEA,MAAM,OAAO,CAAE;AAEf,MAAM,eAAe;AAAA,EACnB,OAAO,OAAO,OAAO,GAAG,GAAG,GAAG;AAG5B,QAAIA,MAAS,UAAC,gBAAgB,GAAG,CAAC;AAClC,QAAIA,MAAAA,UAAU,MAAM,GAAG,GAAG,CAAC;AAC3B,QAAIA,MAAAA,UAAU,MAAM,GAAG,GAAG,CAAC;AAE3B,WAAO,MAAM,OAAO,GAAI,IAAI,MAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA,EAC9E;AAAA,EAED,OAAO,OAAO,OAAO,QAAQ;AAC3B,UAAM,OAAO,IAAI;AAGjB,SAAK,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;AAE3C,WAAO,IAAI,KAAK;AAChB,WAAO,IAAK,IAAI,KAAK,KAAM,KAAK,IAAI,KAAK;AACzC,WAAO,IAAI,KAAK,IAAI,KAAK;AAEzB,WAAO;AAAA,EACR;AAAA;AAAA,EAID,OAAO,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG;AAChC,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AAEzB,WAAO,MAAM,OAAO,GAAG,GAAG,CAAC;AAAA,EAC5B;AAAA,EAED,OAAO,QAAQ,OAAO,QAAQ;AAC5B,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAEhB,UAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC9B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAE7B,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AAEX,WAAO;AAAA,EACR;AACH;;"}
1
+ {"version":3,"file":"ColorConverter.cjs","sources":["../../src/math/ColorConverter.js"],"sourcesContent":["import { MathUtils } from 'three'\n\nconst _hsl = {}\n\nconst ColorConverter = {\n setHSV(color, h, s, v) {\n // https://gist.github.com/xpansive/1337890#file-index-js\n\n h = MathUtils.euclideanModulo(h, 1)\n s = MathUtils.clamp(s, 0, 1)\n v = MathUtils.clamp(v, 0, 1)\n\n return color.setHSL(h, (s * v) / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5)\n },\n\n getHSV(color, target) {\n color.getHSL(_hsl)\n\n // based on https://gist.github.com/xpansive/1337890#file-index-js\n _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l\n\n target.h = _hsl.h\n target.s = (2 * _hsl.s) / (_hsl.l + _hsl.s)\n target.v = _hsl.l + _hsl.s\n\n return target\n },\n\n // where c, m, y, k is between 0 and 1\n\n setCMYK(color, c, m, y, k) {\n const r = (1 - c) * (1 - k)\n const g = (1 - m) * (1 - k)\n const b = (1 - y) * (1 - k)\n\n return color.setRGB(r, g, b)\n },\n\n getCMYK(color, target) {\n const r = color.r\n const g = color.g\n const b = color.b\n\n const k = 1 - Math.max(r, g, b)\n const c = (1 - r - k) / (1 - k)\n const m = (1 - g - k) / (1 - k)\n const y = (1 - b - k) / (1 - k)\n\n target.c = c\n target.m = m\n target.y = y\n target.k = k\n\n return target\n },\n}\n\nexport { ColorConverter }\n"],"names":["MathUtils"],"mappings":";;;AAEA,MAAM,OAAO,CAAE;AAEV,MAAC,iBAAiB;AAAA,EACrB,OAAO,OAAO,GAAG,GAAG,GAAG;AAGrB,QAAIA,MAAS,UAAC,gBAAgB,GAAG,CAAC;AAClC,QAAIA,MAAAA,UAAU,MAAM,GAAG,GAAG,CAAC;AAC3B,QAAIA,MAAAA,UAAU,MAAM,GAAG,GAAG,CAAC;AAE3B,WAAO,MAAM,OAAO,GAAI,IAAI,MAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA,EAC9E;AAAA,EAED,OAAO,OAAO,QAAQ;AACpB,UAAM,OAAO,IAAI;AAGjB,SAAK,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;AAE3C,WAAO,IAAI,KAAK;AAChB,WAAO,IAAK,IAAI,KAAK,KAAM,KAAK,IAAI,KAAK;AACzC,WAAO,IAAI,KAAK,IAAI,KAAK;AAEzB,WAAO;AAAA,EACR;AAAA;AAAA,EAID,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AAEzB,WAAO,MAAM,OAAO,GAAG,GAAG,CAAC;AAAA,EAC5B;AAAA,EAED,QAAQ,OAAO,QAAQ;AACrB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAEhB,UAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC9B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAE7B,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AAEX,WAAO;AAAA,EACR;AACH;;"}
@@ -1,28 +1,28 @@
1
1
  import { MathUtils } from "three";
2
2
  const _hsl = {};
3
- class ColorConverter {
4
- static setHSV(color, h, s, v) {
3
+ const ColorConverter = {
4
+ setHSV(color, h, s, v) {
5
5
  h = MathUtils.euclideanModulo(h, 1);
6
6
  s = MathUtils.clamp(s, 0, 1);
7
7
  v = MathUtils.clamp(v, 0, 1);
8
8
  return color.setHSL(h, s * v / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5);
9
- }
10
- static getHSV(color, target) {
9
+ },
10
+ getHSV(color, target) {
11
11
  color.getHSL(_hsl);
12
12
  _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l;
13
13
  target.h = _hsl.h;
14
14
  target.s = 2 * _hsl.s / (_hsl.l + _hsl.s);
15
15
  target.v = _hsl.l + _hsl.s;
16
16
  return target;
17
- }
17
+ },
18
18
  // where c, m, y, k is between 0 and 1
19
- static setCMYK(color, c, m, y, k) {
19
+ setCMYK(color, c, m, y, k) {
20
20
  const r = (1 - c) * (1 - k);
21
21
  const g = (1 - m) * (1 - k);
22
22
  const b = (1 - y) * (1 - k);
23
23
  return color.setRGB(r, g, b);
24
- }
25
- static getCMYK(color, target) {
24
+ },
25
+ getCMYK(color, target) {
26
26
  const r = color.r;
27
27
  const g = color.g;
28
28
  const b = color.b;
@@ -36,7 +36,7 @@ class ColorConverter {
36
36
  target.k = k;
37
37
  return target;
38
38
  }
39
- }
39
+ };
40
40
  export {
41
41
  ColorConverter
42
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColorConverter.js","sources":["../../src/math/ColorConverter.js"],"sourcesContent":["import { MathUtils } from 'three'\n\nconst _hsl = {}\n\nclass ColorConverter {\n static setHSV(color, h, s, v) {\n // https://gist.github.com/xpansive/1337890#file-index-js\n\n h = MathUtils.euclideanModulo(h, 1)\n s = MathUtils.clamp(s, 0, 1)\n v = MathUtils.clamp(v, 0, 1)\n\n return color.setHSL(h, (s * v) / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5)\n }\n\n static getHSV(color, target) {\n color.getHSL(_hsl)\n\n // based on https://gist.github.com/xpansive/1337890#file-index-js\n _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l\n\n target.h = _hsl.h\n target.s = (2 * _hsl.s) / (_hsl.l + _hsl.s)\n target.v = _hsl.l + _hsl.s\n\n return target\n }\n\n // where c, m, y, k is between 0 and 1\n\n static setCMYK(color, c, m, y, k) {\n const r = (1 - c) * (1 - k)\n const g = (1 - m) * (1 - k)\n const b = (1 - y) * (1 - k)\n\n return color.setRGB(r, g, b)\n }\n\n static getCMYK(color, target) {\n const r = color.r\n const g = color.g\n const b = color.b\n\n const k = 1 - Math.max(r, g, b)\n const c = (1 - r - k) / (1 - k)\n const m = (1 - g - k) / (1 - k)\n const y = (1 - b - k) / (1 - k)\n\n target.c = c\n target.m = m\n target.y = y\n target.k = k\n\n return target\n }\n}\n\nexport { ColorConverter }\n"],"names":[],"mappings":";AAEA,MAAM,OAAO,CAAE;AAEf,MAAM,eAAe;AAAA,EACnB,OAAO,OAAO,OAAO,GAAG,GAAG,GAAG;AAG5B,QAAI,UAAU,gBAAgB,GAAG,CAAC;AAClC,QAAI,UAAU,MAAM,GAAG,GAAG,CAAC;AAC3B,QAAI,UAAU,MAAM,GAAG,GAAG,CAAC;AAE3B,WAAO,MAAM,OAAO,GAAI,IAAI,MAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA,EAC9E;AAAA,EAED,OAAO,OAAO,OAAO,QAAQ;AAC3B,UAAM,OAAO,IAAI;AAGjB,SAAK,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;AAE3C,WAAO,IAAI,KAAK;AAChB,WAAO,IAAK,IAAI,KAAK,KAAM,KAAK,IAAI,KAAK;AACzC,WAAO,IAAI,KAAK,IAAI,KAAK;AAEzB,WAAO;AAAA,EACR;AAAA;AAAA,EAID,OAAO,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG;AAChC,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AAEzB,WAAO,MAAM,OAAO,GAAG,GAAG,CAAC;AAAA,EAC5B;AAAA,EAED,OAAO,QAAQ,OAAO,QAAQ;AAC5B,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAEhB,UAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC9B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAE7B,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AAEX,WAAO;AAAA,EACR;AACH;"}
1
+ {"version":3,"file":"ColorConverter.js","sources":["../../src/math/ColorConverter.js"],"sourcesContent":["import { MathUtils } from 'three'\n\nconst _hsl = {}\n\nconst ColorConverter = {\n setHSV(color, h, s, v) {\n // https://gist.github.com/xpansive/1337890#file-index-js\n\n h = MathUtils.euclideanModulo(h, 1)\n s = MathUtils.clamp(s, 0, 1)\n v = MathUtils.clamp(v, 0, 1)\n\n return color.setHSL(h, (s * v) / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5)\n },\n\n getHSV(color, target) {\n color.getHSL(_hsl)\n\n // based on https://gist.github.com/xpansive/1337890#file-index-js\n _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l\n\n target.h = _hsl.h\n target.s = (2 * _hsl.s) / (_hsl.l + _hsl.s)\n target.v = _hsl.l + _hsl.s\n\n return target\n },\n\n // where c, m, y, k is between 0 and 1\n\n setCMYK(color, c, m, y, k) {\n const r = (1 - c) * (1 - k)\n const g = (1 - m) * (1 - k)\n const b = (1 - y) * (1 - k)\n\n return color.setRGB(r, g, b)\n },\n\n getCMYK(color, target) {\n const r = color.r\n const g = color.g\n const b = color.b\n\n const k = 1 - Math.max(r, g, b)\n const c = (1 - r - k) / (1 - k)\n const m = (1 - g - k) / (1 - k)\n const y = (1 - b - k) / (1 - k)\n\n target.c = c\n target.m = m\n target.y = y\n target.k = k\n\n return target\n },\n}\n\nexport { ColorConverter }\n"],"names":[],"mappings":";AAEA,MAAM,OAAO,CAAE;AAEV,MAAC,iBAAiB;AAAA,EACrB,OAAO,OAAO,GAAG,GAAG,GAAG;AAGrB,QAAI,UAAU,gBAAgB,GAAG,CAAC;AAClC,QAAI,UAAU,MAAM,GAAG,GAAG,CAAC;AAC3B,QAAI,UAAU,MAAM,GAAG,GAAG,CAAC;AAE3B,WAAO,MAAM,OAAO,GAAI,IAAI,MAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA,EAC9E;AAAA,EAED,OAAO,OAAO,QAAQ;AACpB,UAAM,OAAO,IAAI;AAGjB,SAAK,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;AAE3C,WAAO,IAAI,KAAK;AAChB,WAAO,IAAK,IAAI,KAAK,KAAM,KAAK,IAAI,KAAK;AACzC,WAAO,IAAI,KAAK,IAAI,KAAK;AAEzB,WAAO;AAAA,EACR;AAAA;AAAA,EAID,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AACzB,UAAM,KAAK,IAAI,MAAM,IAAI;AAEzB,WAAO,MAAM,OAAO,GAAG,GAAG,CAAC;AAAA,EAC5B;AAAA,EAED,QAAQ,OAAO,QAAQ;AACrB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,MAAM;AAEhB,UAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC9B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAC7B,UAAM,KAAK,IAAI,IAAI,MAAM,IAAI;AAE7B,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AACX,WAAO,IAAI;AAEX,WAAO;AAAA,EACR;AACH;"}