three-stdlib 2.22.9 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/dist/animation/AnimationClipCreator.js +49 -50
  2. package/dist/animation/AnimationClipCreator.mjs +49 -50
  3. package/dist/animation/CCDIKSolver.d.ts +9 -4
  4. package/dist/animation/CCDIKSolver.js +193 -148
  5. package/dist/animation/CCDIKSolver.mjs +194 -149
  6. package/dist/animation/MMDAnimationHelper.js +613 -515
  7. package/dist/animation/MMDAnimationHelper.mjs +613 -515
  8. package/dist/animation/MMDPhysics.d.ts +6 -1
  9. package/dist/animation/MMDPhysics.js +728 -718
  10. package/dist/animation/MMDPhysics.mjs +729 -719
  11. package/dist/cameras/CinematicCamera.d.ts +2 -2
  12. package/dist/controls/ArcballControls.d.ts +1 -1
  13. package/dist/controls/ArcballControls.js +38 -44
  14. package/dist/controls/ArcballControls.mjs +39 -45
  15. package/dist/controls/DeviceOrientationControls.js +2 -1
  16. package/dist/controls/DeviceOrientationControls.mjs +2 -1
  17. package/dist/controls/FirstPersonControls.d.ts +1 -1
  18. package/dist/controls/FirstPersonControls.js +1 -1
  19. package/dist/controls/FirstPersonControls.mjs +1 -1
  20. package/dist/controls/PointerLockControls.js +2 -2
  21. package/dist/controls/PointerLockControls.mjs +2 -2
  22. package/dist/controls/TrackballControls.d.ts +2 -2
  23. package/dist/controls/TransformControls.d.ts +1 -1
  24. package/dist/controls/experimental/CameraControls.d.ts +1 -1
  25. package/dist/csm/CSM.js +4 -4
  26. package/dist/csm/CSM.mjs +4 -4
  27. package/dist/csm/CSMFrustum.js +1 -1
  28. package/dist/csm/CSMFrustum.mjs +1 -1
  29. package/dist/csm/CSMShader.js +14 -10
  30. package/dist/csm/CSMShader.mjs +14 -10
  31. package/dist/curves/CurveExtras.js +52 -62
  32. package/dist/curves/CurveExtras.mjs +53 -63
  33. package/dist/curves/NURBSUtils.d.ts +18 -20
  34. package/dist/curves/NURBSUtils.js +17 -17
  35. package/dist/curves/NURBSUtils.mjs +17 -17
  36. package/dist/deprecated/Geometry.js +26 -26
  37. package/dist/deprecated/Geometry.mjs +27 -27
  38. package/dist/effects/AnaglyphEffect.js +95 -114
  39. package/dist/effects/AnaglyphEffect.mjs +95 -114
  40. package/dist/effects/AsciiEffect.js +144 -162
  41. package/dist/effects/AsciiEffect.mjs +144 -162
  42. package/dist/effects/OutlineEffect.js +253 -276
  43. package/dist/effects/OutlineEffect.mjs +253 -276
  44. package/dist/effects/ParallaxBarrierEffect.js +61 -60
  45. package/dist/effects/ParallaxBarrierEffect.mjs +61 -60
  46. package/dist/effects/PeppersGhostEffect.js +84 -81
  47. package/dist/effects/PeppersGhostEffect.mjs +84 -81
  48. package/dist/effects/StereoEffect.js +31 -28
  49. package/dist/effects/StereoEffect.mjs +31 -28
  50. package/dist/environments/RoomEnvironment.d.ts +6 -5
  51. package/dist/exporters/GLTFExporter.d.ts +109 -441
  52. package/dist/exporters/GLTFExporter.js +915 -581
  53. package/dist/exporters/GLTFExporter.mjs +915 -581
  54. package/dist/geometries/ConvexGeometry.js +0 -3
  55. package/dist/geometries/ConvexGeometry.mjs +0 -3
  56. package/dist/geometries/LightningStrike.d.ts +3 -3
  57. package/dist/geometries/LightningStrike.js +80 -75
  58. package/dist/geometries/LightningStrike.mjs +80 -75
  59. package/dist/geometries/ParametricGeometries.js +75 -74
  60. package/dist/geometries/ParametricGeometries.mjs +75 -74
  61. package/dist/geometries/RoundedBoxGeometry.js +1 -1
  62. package/dist/geometries/RoundedBoxGeometry.mjs +1 -1
  63. package/dist/geometries/TextGeometry.d.ts +1 -1
  64. package/dist/helpers/RectAreaLightHelper.d.ts +4 -3
  65. package/dist/helpers/RectAreaLightHelper.js +2 -2
  66. package/dist/helpers/RectAreaLightHelper.mjs +2 -2
  67. package/dist/helpers/VertexNormalsHelper.d.ts +3 -0
  68. package/dist/helpers/VertexNormalsHelper.js +15 -22
  69. package/dist/helpers/VertexNormalsHelper.mjs +16 -23
  70. package/dist/helpers/VertexTangentsHelper.d.ts +3 -0
  71. package/dist/helpers/VertexTangentsHelper.js +12 -14
  72. package/dist/helpers/VertexTangentsHelper.mjs +12 -14
  73. package/dist/index.d.ts +1 -66
  74. package/dist/index.js +5 -370
  75. package/dist/index.mjs +9 -374
  76. package/dist/interactive/InteractiveGroup.js +1 -1
  77. package/dist/interactive/InteractiveGroup.mjs +1 -1
  78. package/dist/interactive/SelectionBox.js +122 -125
  79. package/dist/interactive/SelectionBox.mjs +122 -125
  80. package/dist/interactive/SelectionHelper.js +45 -48
  81. package/dist/interactive/SelectionHelper.mjs +45 -48
  82. package/dist/libs/MeshoptDecoder.d.ts +1 -1
  83. package/dist/libs/MotionControllers.d.ts +15 -14
  84. package/dist/libs/MotionControllers.js +10 -10
  85. package/dist/libs/MotionControllers.mjs +10 -10
  86. package/dist/lights/LightProbeGenerator.js +43 -43
  87. package/dist/lights/LightProbeGenerator.mjs +43 -43
  88. package/dist/lights/RectAreaLightUniformsLib.js +9 -5
  89. package/dist/lights/RectAreaLightUniformsLib.mjs +9 -5
  90. package/dist/lines/LineMaterial.js +271 -271
  91. package/dist/lines/LineMaterial.mjs +272 -272
  92. package/dist/lines/LineSegments2.js +12 -12
  93. package/dist/lines/LineSegments2.mjs +12 -12
  94. package/dist/lines/LineSegmentsGeometry.js +2 -2
  95. package/dist/lines/LineSegmentsGeometry.mjs +2 -2
  96. package/dist/lines/Wireframe.js +2 -2
  97. package/dist/lines/Wireframe.mjs +2 -2
  98. package/dist/loaders/3DMLoader.d.ts +2 -1
  99. package/dist/loaders/3MFLoader.d.ts +2 -1
  100. package/dist/loaders/AMFLoader.d.ts +2 -1
  101. package/dist/loaders/AssimpLoader.d.ts +20 -0
  102. package/dist/loaders/AssimpLoader.js +520 -482
  103. package/dist/loaders/AssimpLoader.mjs +520 -482
  104. package/dist/loaders/BVHLoader.d.ts +2 -1
  105. package/dist/loaders/BasisTextureLoader.d.ts +2 -1
  106. package/dist/loaders/BasisTextureLoader.js +23 -14
  107. package/dist/loaders/BasisTextureLoader.mjs +24 -15
  108. package/dist/loaders/ColladaLoader.d.ts +2 -1
  109. package/dist/loaders/DRACOLoader.d.ts +2 -1
  110. package/dist/loaders/FBXLoader.d.ts +2 -1
  111. package/dist/loaders/FBXLoader.js +2 -2
  112. package/dist/loaders/FBXLoader.mjs +2 -2
  113. package/dist/loaders/FontLoader.d.ts +4 -4
  114. package/dist/loaders/FontLoader.js +2 -1
  115. package/dist/loaders/FontLoader.mjs +2 -1
  116. package/dist/loaders/GCodeLoader.d.ts +2 -1
  117. package/dist/loaders/GLTFLoader.d.ts +11 -9
  118. package/dist/loaders/GLTFLoader.js +2 -2
  119. package/dist/loaders/GLTFLoader.mjs +2 -2
  120. package/dist/loaders/HDRCubeTextureLoader.d.ts +2 -1
  121. package/dist/loaders/KMZLoader.d.ts +2 -1
  122. package/dist/loaders/KTX2Loader.js +34 -15
  123. package/dist/loaders/KTX2Loader.mjs +35 -16
  124. package/dist/loaders/LDrawLoader.d.ts +2 -1
  125. package/dist/loaders/LDrawLoader.js +3 -3
  126. package/dist/loaders/LDrawLoader.mjs +3 -3
  127. package/dist/loaders/LUT3dlLoader.d.ts +3 -2
  128. package/dist/loaders/LUTCubeLoader.d.ts +3 -2
  129. package/dist/loaders/LWOLoader.d.ts +2 -1
  130. package/dist/loaders/LottieLoader.d.ts +2 -1
  131. package/dist/loaders/MD2Loader.d.ts +2 -1
  132. package/dist/loaders/MDDLoader.d.ts +2 -1
  133. package/dist/loaders/MMDLoader.d.ts +2 -1
  134. package/dist/loaders/MTLLoader.d.ts +2 -1
  135. package/dist/loaders/OBJLoader.d.ts +2 -1
  136. package/dist/loaders/OBJLoader.js +5 -5
  137. package/dist/loaders/OBJLoader.mjs +5 -5
  138. package/dist/loaders/PCDLoader.d.ts +2 -1
  139. package/dist/loaders/PDBLoader.d.ts +2 -1
  140. package/dist/loaders/PLYLoader.d.ts +2 -1
  141. package/dist/loaders/PRWMLoader.d.ts +2 -1
  142. package/dist/loaders/RGBMLoader.js +924 -918
  143. package/dist/loaders/RGBMLoader.mjs +924 -918
  144. package/dist/loaders/STLLoader.d.ts +2 -1
  145. package/dist/loaders/SVGLoader.d.ts +2 -1
  146. package/dist/loaders/TDSLoader.d.ts +2 -1
  147. package/dist/loaders/TTFLoader.d.ts +2 -1
  148. package/dist/loaders/TiltLoader.d.ts +2 -1
  149. package/dist/loaders/TiltLoader.js +3 -1
  150. package/dist/loaders/TiltLoader.mjs +3 -1
  151. package/dist/loaders/VOXLoader.d.ts +4 -2
  152. package/dist/loaders/VRMLLoader.d.ts +2 -1
  153. package/dist/loaders/VRMLoader.d.ts +20 -0
  154. package/dist/loaders/VTKLoader.d.ts +2 -1
  155. package/dist/loaders/XLoader.d.ts +20 -0
  156. package/dist/loaders/XLoader.js +1 -1
  157. package/dist/loaders/XLoader.mjs +1 -1
  158. package/dist/loaders/XYZLoader.d.ts +2 -1
  159. package/dist/loaders/lwo/IFFParser.js +104 -110
  160. package/dist/loaders/lwo/IFFParser.mjs +104 -110
  161. package/dist/loaders/lwo/LWO2Parser.js +18 -33
  162. package/dist/loaders/lwo/LWO2Parser.mjs +18 -33
  163. package/dist/loaders/lwo/LWO3Parser.js +17 -33
  164. package/dist/loaders/lwo/LWO3Parser.mjs +17 -33
  165. package/dist/math/Capsule.d.ts +1 -1
  166. package/dist/math/Capsule.js +90 -92
  167. package/dist/math/Capsule.mjs +90 -92
  168. package/dist/math/ColorConverter.js +26 -36
  169. package/dist/math/ColorConverter.mjs +26 -36
  170. package/dist/math/ConvexHull.js +16 -17
  171. package/dist/math/ConvexHull.mjs +17 -18
  172. package/dist/math/ImprovedNoise.js +41 -39
  173. package/dist/math/ImprovedNoise.mjs +41 -39
  174. package/dist/math/Lut.js +65 -63
  175. package/dist/math/Lut.mjs +66 -64
  176. package/dist/math/MeshSurfaceSampler.d.ts +3 -0
  177. package/dist/math/MeshSurfaceSampler.js +85 -89
  178. package/dist/math/MeshSurfaceSampler.mjs +85 -89
  179. package/dist/math/OBB.js +68 -88
  180. package/dist/math/OBB.mjs +68 -88
  181. package/dist/math/Octree.js +240 -245
  182. package/dist/math/Octree.mjs +240 -245
  183. package/dist/misc/ConvexObjectBreaker.js +114 -120
  184. package/dist/misc/ConvexObjectBreaker.mjs +115 -121
  185. package/dist/misc/GPUComputationRenderer.d.ts +1 -0
  186. package/dist/misc/GPUComputationRenderer.js +191 -157
  187. package/dist/misc/GPUComputationRenderer.mjs +192 -158
  188. package/dist/misc/Gyroscope.js +16 -18
  189. package/dist/misc/Gyroscope.mjs +17 -19
  190. package/dist/misc/MD2Character.js +88 -86
  191. package/dist/misc/MD2Character.mjs +89 -87
  192. package/dist/misc/MD2CharacterComplex.js +106 -105
  193. package/dist/misc/MD2CharacterComplex.mjs +107 -106
  194. package/dist/misc/MorphAnimMesh.d.ts +1 -1
  195. package/dist/misc/MorphAnimMesh.js +33 -33
  196. package/dist/misc/MorphAnimMesh.mjs +33 -33
  197. package/dist/misc/MorphBlendMesh.js +68 -68
  198. package/dist/misc/MorphBlendMesh.mjs +68 -68
  199. package/dist/misc/ProgressiveLightmap.d.ts +1 -2
  200. package/dist/misc/RollerCoaster.js +321 -314
  201. package/dist/misc/RollerCoaster.mjs +322 -315
  202. package/dist/misc/Volume.d.ts +1 -1
  203. package/dist/misc/Volume.js +169 -166
  204. package/dist/misc/Volume.mjs +170 -167
  205. package/dist/misc/VolumeSlice.js +50 -51
  206. package/dist/misc/VolumeSlice.mjs +50 -51
  207. package/dist/modifiers/CurveModifier.d.ts +2 -2
  208. package/dist/modifiers/CurveModifier.js +1 -1
  209. package/dist/modifiers/CurveModifier.mjs +1 -1
  210. package/dist/modifiers/SimplifyModifier.js +2 -1
  211. package/dist/modifiers/SimplifyModifier.mjs +2 -1
  212. package/dist/objects/Lensflare.js +32 -21
  213. package/dist/objects/Lensflare.mjs +33 -22
  214. package/dist/objects/LightningStorm.d.ts +3 -3
  215. package/dist/objects/LightningStorm.js +3 -3
  216. package/dist/objects/LightningStorm.mjs +3 -3
  217. package/dist/objects/MarchingCubes.d.ts +1 -0
  218. package/dist/objects/MarchingCubes.js +4362 -10
  219. package/dist/objects/MarchingCubes.mjs +4363 -11
  220. package/dist/objects/Reflector.d.ts +5 -2
  221. package/dist/objects/Reflector.js +39 -12
  222. package/dist/objects/Reflector.mjs +40 -13
  223. package/dist/objects/ReflectorForSSRPass.js +25 -21
  224. package/dist/objects/ReflectorForSSRPass.mjs +26 -22
  225. package/dist/objects/ReflectorRTT.d.ts +6 -0
  226. package/dist/objects/Refractor.d.ts +5 -2
  227. package/dist/objects/Refractor.js +39 -12
  228. package/dist/objects/Refractor.mjs +40 -13
  229. package/dist/objects/ShadowMesh.d.ts +6 -3
  230. package/dist/objects/ShadowMesh.js +7 -3
  231. package/dist/objects/ShadowMesh.mjs +8 -4
  232. package/dist/objects/Sky.js +181 -137
  233. package/dist/objects/Sky.mjs +182 -138
  234. package/dist/objects/Water.d.ts +3 -3
  235. package/dist/objects/Water.js +3 -2
  236. package/dist/objects/Water.mjs +3 -2
  237. package/dist/objects/Water2.d.ts +2 -2
  238. package/dist/objects/Water2.js +16 -18
  239. package/dist/objects/Water2.mjs +17 -19
  240. package/dist/postprocessing/AdaptiveToneMappingPass.d.ts +2 -2
  241. package/dist/postprocessing/AdaptiveToneMappingPass.js +105 -112
  242. package/dist/postprocessing/AdaptiveToneMappingPass.mjs +107 -114
  243. package/dist/postprocessing/BokehPass.d.ts +1 -1
  244. package/dist/postprocessing/ClearPass.d.ts +3 -3
  245. package/dist/postprocessing/CubeTexturePass.js +37 -33
  246. package/dist/postprocessing/CubeTexturePass.mjs +37 -33
  247. package/dist/postprocessing/HalftonePass.d.ts +1 -1
  248. package/dist/postprocessing/LUTPass.d.ts +3 -3
  249. package/dist/postprocessing/RenderPixelatedPass.d.ts +28 -0
  250. package/dist/postprocessing/SAOPass.d.ts +5 -6
  251. package/dist/postprocessing/SAOPass.js +151 -145
  252. package/dist/postprocessing/SAOPass.mjs +153 -147
  253. package/dist/postprocessing/SSAARenderPass.d.ts +5 -5
  254. package/dist/postprocessing/SSAARenderPass.js +78 -55
  255. package/dist/postprocessing/SSAARenderPass.mjs +80 -57
  256. package/dist/postprocessing/SSAOPass.d.ts +4 -5
  257. package/dist/postprocessing/SSAOPass.js +17 -10
  258. package/dist/postprocessing/SSAOPass.mjs +17 -10
  259. package/dist/postprocessing/SSRPass.d.ts +6 -7
  260. package/dist/postprocessing/SSRPass.js +235 -262
  261. package/dist/postprocessing/SSRPass.mjs +237 -264
  262. package/dist/postprocessing/TAARenderPass.d.ts +2 -2
  263. package/dist/postprocessing/TAARenderPass.js +106 -27
  264. package/dist/postprocessing/TAARenderPass.mjs +107 -28
  265. package/dist/postprocessing/TexturePass.d.ts +2 -2
  266. package/dist/postprocessing/TexturePass.js +24 -22
  267. package/dist/postprocessing/TexturePass.mjs +25 -23
  268. package/dist/postprocessing/UnrealBloomPass.js +175 -118
  269. package/dist/postprocessing/UnrealBloomPass.mjs +177 -120
  270. package/dist/renderers/CSS2DRenderer.d.ts +2 -1
  271. package/dist/renderers/CSS2DRenderer.js +5 -4
  272. package/dist/renderers/CSS2DRenderer.mjs +6 -5
  273. package/dist/renderers/CSS3DRenderer.d.ts +1 -1
  274. package/dist/renderers/CSS3DRenderer.js +147 -113
  275. package/dist/renderers/CSS3DRenderer.mjs +148 -114
  276. package/dist/renderers/Projector.js +377 -389
  277. package/dist/renderers/Projector.mjs +377 -389
  278. package/dist/renderers/SVGRenderer.js +280 -275
  279. package/dist/renderers/SVGRenderer.mjs +280 -275
  280. package/dist/shaders/ACESFilmicToneMappingShader.d.ts +1 -1
  281. package/dist/shaders/AfterimageShader.d.ts +1 -1
  282. package/dist/shaders/BasicShader.d.ts +1 -1
  283. package/dist/shaders/BleachBypassShader.d.ts +1 -1
  284. package/dist/shaders/BokehShader.d.ts +2 -2
  285. package/dist/shaders/BokehShader2.d.ts +2 -2
  286. package/dist/shaders/BokehShader2.js +1 -1
  287. package/dist/shaders/BokehShader2.mjs +1 -1
  288. package/dist/shaders/ColorCorrectionShader.js +3 -3
  289. package/dist/shaders/ColorCorrectionShader.mjs +3 -3
  290. package/dist/shaders/ColorifyShader.js +1 -1
  291. package/dist/shaders/ColorifyShader.mjs +1 -1
  292. package/dist/shaders/ConvolutionShader.d.ts +2 -2
  293. package/dist/shaders/ConvolutionShader.js +1 -1
  294. package/dist/shaders/ConvolutionShader.mjs +1 -1
  295. package/dist/shaders/CopyShader.d.ts +1 -1
  296. package/dist/shaders/DepthLimitedBlurShader.d.ts +2 -2
  297. package/dist/shaders/DepthLimitedBlurShader.js +2 -2
  298. package/dist/shaders/DepthLimitedBlurShader.mjs +2 -2
  299. package/dist/shaders/DotScreenShader.js +2 -2
  300. package/dist/shaders/DotScreenShader.mjs +2 -2
  301. package/dist/shaders/FXAAShader.js +1 -1
  302. package/dist/shaders/FXAAShader.mjs +1 -1
  303. package/dist/shaders/FreiChenShader.js +1 -1
  304. package/dist/shaders/FreiChenShader.mjs +1 -1
  305. package/dist/shaders/GammaCorrectionShader.d.ts +1 -1
  306. package/dist/shaders/GodRaysShader.js +4 -4
  307. package/dist/shaders/GodRaysShader.mjs +4 -4
  308. package/dist/shaders/HorizontalBlurShader.d.ts +1 -1
  309. package/dist/shaders/LuminosityHighPassShader.js +1 -1
  310. package/dist/shaders/LuminosityHighPassShader.mjs +1 -1
  311. package/dist/shaders/NormalMapShader.js +2 -2
  312. package/dist/shaders/NormalMapShader.mjs +2 -2
  313. package/dist/shaders/SAOShader.d.ts +2 -2
  314. package/dist/shaders/SAOShader.js +3 -3
  315. package/dist/shaders/SAOShader.mjs +3 -3
  316. package/dist/shaders/SMAAShader.js +3 -3
  317. package/dist/shaders/SMAAShader.mjs +3 -3
  318. package/dist/shaders/SSAOShader.js +4 -4
  319. package/dist/shaders/SSAOShader.mjs +4 -4
  320. package/dist/shaders/SSRShader.js +4 -4
  321. package/dist/shaders/SSRShader.mjs +4 -4
  322. package/dist/shaders/SobelOperatorShader.js +1 -1
  323. package/dist/shaders/SobelOperatorShader.mjs +1 -1
  324. package/dist/shaders/SubsurfaceScatteringShader.d.ts +2 -2
  325. package/dist/shaders/SubsurfaceScatteringShader.js +91 -52
  326. package/dist/shaders/SubsurfaceScatteringShader.mjs +91 -52
  327. package/dist/shaders/ToonShader.js +25 -25
  328. package/dist/shaders/ToonShader.mjs +25 -25
  329. package/dist/shaders/TriangleBlurShader.js +1 -1
  330. package/dist/shaders/TriangleBlurShader.mjs +1 -1
  331. package/dist/shaders/VerticalBlurShader.d.ts +1 -1
  332. package/dist/shaders/VolumeShader.js +2 -2
  333. package/dist/shaders/VolumeShader.mjs +2 -2
  334. package/dist/shaders/types.d.ts +2 -2
  335. package/dist/types/Loader.d.ts +4 -0
  336. package/dist/types/Loader.js +26 -0
  337. package/dist/types/Loader.mjs +9 -0
  338. package/dist/types/shared.d.ts +2 -2
  339. package/dist/types/utils.d.ts +1 -1
  340. package/dist/utils/BufferGeometryUtils.d.ts +2 -2
  341. package/dist/utils/BufferGeometryUtils.js +1 -1
  342. package/dist/utils/BufferGeometryUtils.mjs +1 -1
  343. package/dist/utils/RoughnessMipmapper.d.ts +8 -0
  344. package/dist/utils/RoughnessMipmapper.js +79 -75
  345. package/dist/utils/RoughnessMipmapper.mjs +79 -75
  346. package/dist/utils/ShadowMapViewer.js +103 -106
  347. package/dist/utils/ShadowMapViewer.mjs +103 -106
  348. package/dist/utils/SkeletonUtils.d.ts +5 -21
  349. package/dist/utils/SkeletonUtils.js +182 -263
  350. package/dist/utils/SkeletonUtils.mjs +183 -264
  351. package/dist/utils/UVsDebug.js +37 -42
  352. package/dist/utils/UVsDebug.mjs +37 -42
  353. package/dist/webxr/ARButton.d.ts +2 -1
  354. package/dist/webxr/OculusHandModel.d.ts +2 -1
  355. package/dist/webxr/OculusHandPointerModel.d.ts +2 -2
  356. package/dist/webxr/OculusHandPointerModel.js +2 -2
  357. package/dist/webxr/OculusHandPointerModel.mjs +2 -2
  358. package/dist/webxr/VRButton.d.ts +2 -1
  359. package/dist/webxr/XRHandPrimitiveModel.js +2 -2
  360. package/dist/webxr/XRHandPrimitiveModel.mjs +2 -2
  361. package/package.json +5 -6
  362. package/dist/custom.d.ts +0 -5
  363. package/dist/loaders/NodeMaterialLoader.js +0 -146
  364. package/dist/loaders/NodeMaterialLoader.mjs +0 -146
  365. package/dist/nodes/Nodes.js +0 -347
  366. package/dist/nodes/Nodes.mjs +0 -347
  367. package/dist/nodes/ShaderNode.js +0 -408
  368. package/dist/nodes/ShaderNode.mjs +0 -408
  369. package/dist/nodes/accessors/BufferNode.js +0 -14
  370. package/dist/nodes/accessors/BufferNode.mjs +0 -15
  371. package/dist/nodes/accessors/CameraNode.js +0 -43
  372. package/dist/nodes/accessors/CameraNode.mjs +0 -44
  373. package/dist/nodes/accessors/CubeTextureNode.js +0 -41
  374. package/dist/nodes/accessors/CubeTextureNode.mjs +0 -42
  375. package/dist/nodes/accessors/MaterialNode.js +0 -70
  376. package/dist/nodes/accessors/MaterialNode.mjs +0 -71
  377. package/dist/nodes/accessors/MaterialReferenceNode.js +0 -13
  378. package/dist/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  379. package/dist/nodes/accessors/ModelNode.js +0 -8
  380. package/dist/nodes/accessors/ModelNode.mjs +0 -9
  381. package/dist/nodes/accessors/ModelViewProjectionNode.js +0 -23
  382. package/dist/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  383. package/dist/nodes/accessors/NormalNode.js +0 -61
  384. package/dist/nodes/accessors/NormalNode.mjs +0 -62
  385. package/dist/nodes/accessors/Object3DNode.js +0 -75
  386. package/dist/nodes/accessors/Object3DNode.mjs +0 -76
  387. package/dist/nodes/accessors/PointUVNode.js +0 -12
  388. package/dist/nodes/accessors/PointUVNode.mjs +0 -13
  389. package/dist/nodes/accessors/PositionNode.js +0 -64
  390. package/dist/nodes/accessors/PositionNode.mjs +0 -65
  391. package/dist/nodes/accessors/ReferenceNode.js +0 -36
  392. package/dist/nodes/accessors/ReferenceNode.mjs +0 -37
  393. package/dist/nodes/accessors/ReflectNode.js +0 -42
  394. package/dist/nodes/accessors/ReflectNode.mjs +0 -43
  395. package/dist/nodes/accessors/SkinningNode.js +0 -57
  396. package/dist/nodes/accessors/SkinningNode.mjs +0 -58
  397. package/dist/nodes/accessors/TextureNode.js +0 -53
  398. package/dist/nodes/accessors/TextureNode.mjs +0 -54
  399. package/dist/nodes/accessors/UVNode.js +0 -22
  400. package/dist/nodes/accessors/UVNode.mjs +0 -23
  401. package/dist/nodes/core/ArrayUniformNode.js +0 -13
  402. package/dist/nodes/core/ArrayUniformNode.mjs +0 -14
  403. package/dist/nodes/core/AttributeNode.js +0 -29
  404. package/dist/nodes/core/AttributeNode.mjs +0 -30
  405. package/dist/nodes/core/BypassNode.js +0 -21
  406. package/dist/nodes/core/BypassNode.mjs +0 -22
  407. package/dist/nodes/core/CodeNode.js +0 -27
  408. package/dist/nodes/core/CodeNode.mjs +0 -28
  409. package/dist/nodes/core/ConstNode.js +0 -13
  410. package/dist/nodes/core/ConstNode.mjs +0 -14
  411. package/dist/nodes/core/ContextNode.js +0 -21
  412. package/dist/nodes/core/ContextNode.mjs +0 -22
  413. package/dist/nodes/core/ExpressionNode.js +0 -18
  414. package/dist/nodes/core/ExpressionNode.mjs +0 -19
  415. package/dist/nodes/core/FunctionCallNode.js +0 -36
  416. package/dist/nodes/core/FunctionCallNode.mjs +0 -37
  417. package/dist/nodes/core/FunctionNode.js +0 -55
  418. package/dist/nodes/core/FunctionNode.mjs +0 -56
  419. package/dist/nodes/core/InputNode.js +0 -37
  420. package/dist/nodes/core/InputNode.mjs +0 -38
  421. package/dist/nodes/core/Node.js +0 -138
  422. package/dist/nodes/core/Node.mjs +0 -139
  423. package/dist/nodes/core/NodeAttribute.js +0 -9
  424. package/dist/nodes/core/NodeAttribute.mjs +0 -10
  425. package/dist/nodes/core/NodeBuilder.js +0 -402
  426. package/dist/nodes/core/NodeBuilder.mjs +0 -402
  427. package/dist/nodes/core/NodeCode.js +0 -10
  428. package/dist/nodes/core/NodeCode.mjs +0 -11
  429. package/dist/nodes/core/NodeFrame.js +0 -34
  430. package/dist/nodes/core/NodeFrame.mjs +0 -35
  431. package/dist/nodes/core/NodeFunctionInput.js +0 -12
  432. package/dist/nodes/core/NodeFunctionInput.mjs +0 -13
  433. package/dist/nodes/core/NodeKeywords.js +0 -43
  434. package/dist/nodes/core/NodeKeywords.mjs +0 -44
  435. package/dist/nodes/core/NodeUniform.js +0 -17
  436. package/dist/nodes/core/NodeUniform.mjs +0 -18
  437. package/dist/nodes/core/NodeUtils.js +0 -57
  438. package/dist/nodes/core/NodeUtils.mjs +0 -57
  439. package/dist/nodes/core/NodeVar.js +0 -9
  440. package/dist/nodes/core/NodeVar.mjs +0 -10
  441. package/dist/nodes/core/NodeVary.js +0 -9
  442. package/dist/nodes/core/NodeVary.mjs +0 -10
  443. package/dist/nodes/core/PropertyNode.js +0 -20
  444. package/dist/nodes/core/PropertyNode.mjs +0 -21
  445. package/dist/nodes/core/TempNode.js +0 -24
  446. package/dist/nodes/core/TempNode.mjs +0 -25
  447. package/dist/nodes/core/UniformNode.js +0 -22
  448. package/dist/nodes/core/UniformNode.mjs +0 -23
  449. package/dist/nodes/core/VarNode.js +0 -30
  450. package/dist/nodes/core/VarNode.mjs +0 -31
  451. package/dist/nodes/core/VaryNode.js +0 -29
  452. package/dist/nodes/core/VaryNode.mjs +0 -30
  453. package/dist/nodes/core/constants.js +0 -24
  454. package/dist/nodes/core/constants.mjs +0 -24
  455. package/dist/nodes/display/ColorSpaceNode.js +0 -62
  456. package/dist/nodes/display/ColorSpaceNode.mjs +0 -62
  457. package/dist/nodes/display/NormalMapNode.js +0 -53
  458. package/dist/nodes/display/NormalMapNode.mjs +0 -54
  459. package/dist/nodes/fog/FogNode.js +0 -14
  460. package/dist/nodes/fog/FogNode.mjs +0 -15
  461. package/dist/nodes/fog/FogRangeNode.js +0 -16
  462. package/dist/nodes/fog/FogRangeNode.mjs +0 -17
  463. package/dist/nodes/functions/BSDFs.js +0 -64
  464. package/dist/nodes/functions/BSDFs.mjs +0 -64
  465. package/dist/nodes/lights/LightContextNode.js +0 -34
  466. package/dist/nodes/lights/LightContextNode.mjs +0 -35
  467. package/dist/nodes/lights/LightNode.js +0 -57
  468. package/dist/nodes/lights/LightNode.mjs +0 -58
  469. package/dist/nodes/lights/LightsNode.js +0 -58
  470. package/dist/nodes/lights/LightsNode.mjs +0 -59
  471. package/dist/nodes/loaders/NodeLoader.js +0 -195
  472. package/dist/nodes/loaders/NodeLoader.mjs +0 -196
  473. package/dist/nodes/loaders/NodeMaterialLoader.js +0 -23
  474. package/dist/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  475. package/dist/nodes/loaders/NodeObjectLoader.js +0 -39
  476. package/dist/nodes/loaders/NodeObjectLoader.mjs +0 -40
  477. package/dist/nodes/materials/LineBasicNodeMaterial.js +0 -26
  478. package/dist/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  479. package/dist/nodes/materials/Materials.js +0 -24
  480. package/dist/nodes/materials/Materials.mjs +0 -24
  481. package/dist/nodes/materials/MeshBasicNodeMaterial.js +0 -27
  482. package/dist/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  483. package/dist/nodes/materials/MeshStandardNodeMaterial.js +0 -40
  484. package/dist/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  485. package/dist/nodes/materials/NodeMaterial.js +0 -63
  486. package/dist/nodes/materials/NodeMaterial.mjs +0 -64
  487. package/dist/nodes/materials/PointsNodeMaterial.js +0 -29
  488. package/dist/nodes/materials/PointsNodeMaterial.mjs +0 -30
  489. package/dist/nodes/math/CondNode.js +0 -40
  490. package/dist/nodes/math/CondNode.mjs +0 -41
  491. package/dist/nodes/math/MathNode.js +0 -165
  492. package/dist/nodes/math/MathNode.mjs +0 -166
  493. package/dist/nodes/math/OperatorNode.js +0 -102
  494. package/dist/nodes/math/OperatorNode.mjs +0 -103
  495. package/dist/nodes/procedural/CheckerNode.js +0 -20
  496. package/dist/nodes/procedural/CheckerNode.mjs +0 -21
  497. package/dist/nodes/utils/ArrayElementNode.js +0 -18
  498. package/dist/nodes/utils/ArrayElementNode.mjs +0 -19
  499. package/dist/nodes/utils/ConvertNode.js +0 -24
  500. package/dist/nodes/utils/ConvertNode.mjs +0 -25
  501. package/dist/nodes/utils/JoinNode.js +0 -25
  502. package/dist/nodes/utils/JoinNode.mjs +0 -26
  503. package/dist/nodes/utils/MatcapUVNode.js +0 -15
  504. package/dist/nodes/utils/MatcapUVNode.mjs +0 -16
  505. package/dist/nodes/utils/OscNode.js +0 -49
  506. package/dist/nodes/utils/OscNode.mjs +0 -50
  507. package/dist/nodes/utils/SplitNode.js +0 -44
  508. package/dist/nodes/utils/SplitNode.mjs +0 -45
  509. package/dist/nodes/utils/SpriteSheetUVNode.js +0 -39
  510. package/dist/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  511. package/dist/nodes/utils/TimerNode.js +0 -43
  512. package/dist/nodes/utils/TimerNode.mjs +0 -44
  513. package/dist/offscreen/jank.js +0 -26
  514. package/dist/offscreen/jank.mjs +0 -27
  515. package/dist/offscreen/offscreen.js +0 -8
  516. package/dist/offscreen/offscreen.mjs +0 -7
  517. package/dist/offscreen/scene.js +0 -68
  518. package/dist/offscreen/scene.mjs +0 -52
  519. package/dist/renderers/nodes/accessors/CameraNode.js +0 -62
  520. package/dist/renderers/nodes/accessors/CameraNode.mjs +0 -63
  521. package/dist/renderers/nodes/accessors/ModelNode.js +0 -60
  522. package/dist/renderers/nodes/accessors/ModelNode.mjs +0 -61
  523. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.js +0 -20
  524. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  525. package/dist/renderers/nodes/accessors/NormalNode.js +0 -60
  526. package/dist/renderers/nodes/accessors/NormalNode.mjs +0 -61
  527. package/dist/renderers/nodes/accessors/PositionNode.js +0 -29
  528. package/dist/renderers/nodes/accessors/PositionNode.mjs +0 -30
  529. package/dist/renderers/nodes/accessors/UVNode.js +0 -12
  530. package/dist/renderers/nodes/accessors/UVNode.mjs +0 -13
  531. package/dist/renderers/nodes/core/AttributeNode.js +0 -34
  532. package/dist/renderers/nodes/core/AttributeNode.mjs +0 -35
  533. package/dist/renderers/nodes/core/InputNode.js +0 -30
  534. package/dist/renderers/nodes/core/InputNode.mjs +0 -31
  535. package/dist/renderers/nodes/core/Node.js +0 -33
  536. package/dist/renderers/nodes/core/Node.mjs +0 -34
  537. package/dist/renderers/nodes/core/NodeAttribute.js +0 -9
  538. package/dist/renderers/nodes/core/NodeAttribute.mjs +0 -10
  539. package/dist/renderers/nodes/core/NodeBuilder.js +0 -248
  540. package/dist/renderers/nodes/core/NodeBuilder.mjs +0 -249
  541. package/dist/renderers/nodes/core/NodeFrame.js +0 -34
  542. package/dist/renderers/nodes/core/NodeFrame.mjs +0 -35
  543. package/dist/renderers/nodes/core/NodeSlot.js +0 -9
  544. package/dist/renderers/nodes/core/NodeSlot.mjs +0 -10
  545. package/dist/renderers/nodes/core/NodeUniform.js +0 -17
  546. package/dist/renderers/nodes/core/NodeUniform.mjs +0 -18
  547. package/dist/renderers/nodes/core/NodeVary.js +0 -10
  548. package/dist/renderers/nodes/core/NodeVary.mjs +0 -11
  549. package/dist/renderers/nodes/core/VaryNode.js +0 -21
  550. package/dist/renderers/nodes/core/VaryNode.mjs +0 -22
  551. package/dist/renderers/nodes/core/constants.js +0 -22
  552. package/dist/renderers/nodes/core/constants.mjs +0 -22
  553. package/dist/renderers/nodes/inputs/ColorNode.js +0 -10
  554. package/dist/renderers/nodes/inputs/ColorNode.mjs +0 -11
  555. package/dist/renderers/nodes/inputs/FloatNode.js +0 -10
  556. package/dist/renderers/nodes/inputs/FloatNode.mjs +0 -11
  557. package/dist/renderers/nodes/inputs/Matrix3Node.js +0 -11
  558. package/dist/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  559. package/dist/renderers/nodes/inputs/Matrix4Node.js +0 -11
  560. package/dist/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  561. package/dist/renderers/nodes/inputs/TextureNode.js +0 -19
  562. package/dist/renderers/nodes/inputs/TextureNode.mjs +0 -20
  563. package/dist/renderers/nodes/inputs/Vector2Node.js +0 -10
  564. package/dist/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  565. package/dist/renderers/nodes/inputs/Vector3Node.js +0 -11
  566. package/dist/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  567. package/dist/renderers/nodes/inputs/Vector4Node.js +0 -11
  568. package/dist/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  569. package/dist/renderers/nodes/math/MathNode.js +0 -54
  570. package/dist/renderers/nodes/math/MathNode.mjs +0 -55
  571. package/dist/renderers/nodes/math/OperatorNode.js +0 -41
  572. package/dist/renderers/nodes/math/OperatorNode.mjs +0 -42
  573. package/dist/renderers/nodes/utils/SwitchNode.js +0 -19
  574. package/dist/renderers/nodes/utils/SwitchNode.mjs +0 -20
  575. package/dist/renderers/nodes/utils/TimerNode.js +0 -13
  576. package/dist/renderers/nodes/utils/TimerNode.mjs +0 -14
  577. package/dist/renderers/webgpu/WebGPU.js +0 -23
  578. package/dist/renderers/webgpu/WebGPU.mjs +0 -24
  579. package/dist/renderers/webgpu/WebGPUAttributes.js +0 -68
  580. package/dist/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  581. package/dist/renderers/webgpu/WebGPUBackground.js +0 -60
  582. package/dist/renderers/webgpu/WebGPUBackground.mjs +0 -61
  583. package/dist/renderers/webgpu/WebGPUBinding.js +0 -13
  584. package/dist/renderers/webgpu/WebGPUBinding.mjs +0 -14
  585. package/dist/renderers/webgpu/WebGPUBindings.js +0 -154
  586. package/dist/renderers/webgpu/WebGPUBindings.mjs +0 -155
  587. package/dist/renderers/webgpu/WebGPUComputePipelines.js +0 -43
  588. package/dist/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  589. package/dist/renderers/webgpu/WebGPUGeometries.js +0 -40
  590. package/dist/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  591. package/dist/renderers/webgpu/WebGPUInfo.js +0 -45
  592. package/dist/renderers/webgpu/WebGPUInfo.mjs +0 -46
  593. package/dist/renderers/webgpu/WebGPUObjects.js +0 -24
  594. package/dist/renderers/webgpu/WebGPUObjects.mjs +0 -25
  595. package/dist/renderers/webgpu/WebGPUProperties.js +0 -21
  596. package/dist/renderers/webgpu/WebGPUProperties.mjs +0 -22
  597. package/dist/renderers/webgpu/WebGPURenderLists.js +0 -118
  598. package/dist/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  599. package/dist/renderers/webgpu/WebGPURenderPipelines.js +0 -545
  600. package/dist/renderers/webgpu/WebGPURenderPipelines.mjs +0 -546
  601. package/dist/renderers/webgpu/WebGPURenderer.js +0 -596
  602. package/dist/renderers/webgpu/WebGPURenderer.mjs +0 -575
  603. package/dist/renderers/webgpu/WebGPUSampledTexture.js +0 -40
  604. package/dist/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  605. package/dist/renderers/webgpu/WebGPUSampler.js +0 -14
  606. package/dist/renderers/webgpu/WebGPUSampler.mjs +0 -15
  607. package/dist/renderers/webgpu/WebGPUStorageBuffer.js +0 -14
  608. package/dist/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  609. package/dist/renderers/webgpu/WebGPUTextureRenderer.js +0 -22
  610. package/dist/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  611. package/dist/renderers/webgpu/WebGPUTextureUtils.js +0 -97
  612. package/dist/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  613. package/dist/renderers/webgpu/WebGPUTextures.js +0 -483
  614. package/dist/renderers/webgpu/WebGPUTextures.mjs +0 -484
  615. package/dist/renderers/webgpu/WebGPUUniform.js +0 -81
  616. package/dist/renderers/webgpu/WebGPUUniform.mjs +0 -81
  617. package/dist/renderers/webgpu/WebGPUUniformsGroup.js +0 -175
  618. package/dist/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  619. package/dist/renderers/webgpu/constants.js +0 -241
  620. package/dist/renderers/webgpu/constants.mjs +0 -241
  621. package/dist/renderers/webgpu/nodes/ShaderLib.js +0 -41
  622. package/dist/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  623. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.js +0 -164
  624. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  625. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.js +0 -73
  626. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  627. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -14
  628. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  629. package/dist/renderers/webgpu/nodes/WebGPUNodes.js +0 -39
  630. package/dist/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
@@ -1,57 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- const AnimationClipCreator = () => {
5
- };
6
- AnimationClipCreator.CreateRotationAnimation = (period, axis) => {
7
- const times = [0, period], values = [0, 360];
8
- axis = axis || "x";
9
- const trackName = `.rotation[${axis}]`;
10
- const track = new THREE.NumberKeyframeTrack(trackName, times, values);
11
- return new THREE.AnimationClip(null, period, [track]);
12
- };
13
- AnimationClipCreator.CreateScaleAxisAnimation = (period, axis) => {
14
- const times = [0, period], values = [0, 1];
15
- axis = axis || "x";
16
- const trackName = `.scale[${axis}]`;
17
- const track = new THREE.NumberKeyframeTrack(trackName, times, values);
18
- return new THREE.AnimationClip(null, period, [track]);
19
- };
20
- AnimationClipCreator.CreateShakeAnimation = (duration, shakeScale) => {
21
- const times = [], values = [], tmp = new THREE.Vector3();
22
- for (let i = 0; i < duration * 10; i++) {
23
- times.push(i / 10);
24
- tmp.set(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1).multiply(shakeScale).toArray(values, values.length);
4
+ class AnimationClipCreator {
5
+ static CreateRotationAnimation(period, axis = "x") {
6
+ const times = [0, period], values = [0, 360];
7
+ const trackName = ".rotation[" + axis + "]";
8
+ const track = new THREE.NumberKeyframeTrack(trackName, times, values);
9
+ return new THREE.AnimationClip(null, period, [track]);
25
10
  }
26
- const trackName = ".position";
27
- const track = new THREE.VectorKeyframeTrack(trackName, times, values);
28
- return new THREE.AnimationClip(null, duration, [track]);
29
- };
30
- AnimationClipCreator.CreatePulsationAnimation = (duration, pulseScale) => {
31
- const times = [], values = [], tmp = new THREE.Vector3();
32
- for (let i = 0; i < duration * 10; i++) {
33
- times.push(i / 10);
34
- const scaleFactor = Math.random() * pulseScale;
35
- tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length);
11
+ static CreateScaleAxisAnimation(period, axis = "x") {
12
+ const times = [0, period], values = [0, 1];
13
+ const trackName = ".scale[" + axis + "]";
14
+ const track = new THREE.NumberKeyframeTrack(trackName, times, values);
15
+ return new THREE.AnimationClip(null, period, [track]);
36
16
  }
37
- const trackName = ".scale";
38
- const track = new THREE.VectorKeyframeTrack(trackName, times, values);
39
- return new THREE.AnimationClip(null, duration, [track]);
40
- };
41
- AnimationClipCreator.CreateVisibilityAnimation = (duration) => {
42
- const times = [0, duration / 2, duration], values = [true, false, true];
43
- const trackName = ".visible";
44
- const track = new THREE.BooleanKeyframeTrack(trackName, times, values);
45
- return new THREE.AnimationClip(null, duration, [track]);
46
- };
47
- AnimationClipCreator.CreateMaterialColorAnimation = (duration, colors) => {
48
- const times = [], values = [], timeStep = duration / colors.length;
49
- for (let i = 0; i <= colors.length; i++) {
50
- times.push(i * timeStep);
51
- values.push(colors[i % colors.length]);
17
+ static CreateShakeAnimation(duration, shakeScale) {
18
+ const times = [], values = [], tmp = new THREE.Vector3();
19
+ for (let i = 0; i < duration * 10; i++) {
20
+ times.push(i / 10);
21
+ tmp.set(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1).multiply(shakeScale).toArray(values, values.length);
22
+ }
23
+ const trackName = ".position";
24
+ const track = new THREE.VectorKeyframeTrack(trackName, times, values);
25
+ return new THREE.AnimationClip(null, duration, [track]);
52
26
  }
53
- const trackName = ".material[0].color";
54
- const track = new THREE.ColorKeyframeTrack(trackName, times, values);
55
- return new THREE.AnimationClip(null, duration, [track]);
56
- };
27
+ static CreatePulsationAnimation(duration, pulseScale) {
28
+ const times = [], values = [], tmp = new THREE.Vector3();
29
+ for (let i = 0; i < duration * 10; i++) {
30
+ times.push(i / 10);
31
+ const scaleFactor = Math.random() * pulseScale;
32
+ tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length);
33
+ }
34
+ const trackName = ".scale";
35
+ const track = new THREE.VectorKeyframeTrack(trackName, times, values);
36
+ return new THREE.AnimationClip(null, duration, [track]);
37
+ }
38
+ static CreateVisibilityAnimation(duration) {
39
+ const times = [0, duration / 2, duration], values = [true, false, true];
40
+ const trackName = ".visible";
41
+ const track = new THREE.BooleanKeyframeTrack(trackName, times, values);
42
+ return new THREE.AnimationClip(null, duration, [track]);
43
+ }
44
+ static CreateMaterialColorAnimation(duration, colors) {
45
+ const times = [], values = [], timeStep = duration / colors.length;
46
+ for (let i = 0; i < colors.length; i++) {
47
+ times.push(i * timeStep);
48
+ const color = colors[i];
49
+ values.push(color.r, color.g, color.b);
50
+ }
51
+ const trackName = ".material.color";
52
+ const track = new THREE.ColorKeyframeTrack(trackName, times, values);
53
+ return new THREE.AnimationClip(null, duration, [track]);
54
+ }
55
+ }
57
56
  exports.AnimationClipCreator = AnimationClipCreator;
@@ -1,57 +1,56 @@
1
1
  import { NumberKeyframeTrack, AnimationClip, Vector3, VectorKeyframeTrack, BooleanKeyframeTrack, ColorKeyframeTrack } from "three";
2
- const AnimationClipCreator = () => {
3
- };
4
- AnimationClipCreator.CreateRotationAnimation = (period, axis) => {
5
- const times = [0, period], values = [0, 360];
6
- axis = axis || "x";
7
- const trackName = `.rotation[${axis}]`;
8
- const track = new NumberKeyframeTrack(trackName, times, values);
9
- return new AnimationClip(null, period, [track]);
10
- };
11
- AnimationClipCreator.CreateScaleAxisAnimation = (period, axis) => {
12
- const times = [0, period], values = [0, 1];
13
- axis = axis || "x";
14
- const trackName = `.scale[${axis}]`;
15
- const track = new NumberKeyframeTrack(trackName, times, values);
16
- return new AnimationClip(null, period, [track]);
17
- };
18
- AnimationClipCreator.CreateShakeAnimation = (duration, shakeScale) => {
19
- const times = [], values = [], tmp = new Vector3();
20
- for (let i = 0; i < duration * 10; i++) {
21
- times.push(i / 10);
22
- tmp.set(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1).multiply(shakeScale).toArray(values, values.length);
2
+ class AnimationClipCreator {
3
+ static CreateRotationAnimation(period, axis = "x") {
4
+ const times = [0, period], values = [0, 360];
5
+ const trackName = ".rotation[" + axis + "]";
6
+ const track = new NumberKeyframeTrack(trackName, times, values);
7
+ return new AnimationClip(null, period, [track]);
23
8
  }
24
- const trackName = ".position";
25
- const track = new VectorKeyframeTrack(trackName, times, values);
26
- return new AnimationClip(null, duration, [track]);
27
- };
28
- AnimationClipCreator.CreatePulsationAnimation = (duration, pulseScale) => {
29
- const times = [], values = [], tmp = new Vector3();
30
- for (let i = 0; i < duration * 10; i++) {
31
- times.push(i / 10);
32
- const scaleFactor = Math.random() * pulseScale;
33
- tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length);
9
+ static CreateScaleAxisAnimation(period, axis = "x") {
10
+ const times = [0, period], values = [0, 1];
11
+ const trackName = ".scale[" + axis + "]";
12
+ const track = new NumberKeyframeTrack(trackName, times, values);
13
+ return new AnimationClip(null, period, [track]);
34
14
  }
35
- const trackName = ".scale";
36
- const track = new VectorKeyframeTrack(trackName, times, values);
37
- return new AnimationClip(null, duration, [track]);
38
- };
39
- AnimationClipCreator.CreateVisibilityAnimation = (duration) => {
40
- const times = [0, duration / 2, duration], values = [true, false, true];
41
- const trackName = ".visible";
42
- const track = new BooleanKeyframeTrack(trackName, times, values);
43
- return new AnimationClip(null, duration, [track]);
44
- };
45
- AnimationClipCreator.CreateMaterialColorAnimation = (duration, colors) => {
46
- const times = [], values = [], timeStep = duration / colors.length;
47
- for (let i = 0; i <= colors.length; i++) {
48
- times.push(i * timeStep);
49
- values.push(colors[i % colors.length]);
15
+ static CreateShakeAnimation(duration, shakeScale) {
16
+ const times = [], values = [], tmp = new Vector3();
17
+ for (let i = 0; i < duration * 10; i++) {
18
+ times.push(i / 10);
19
+ tmp.set(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1).multiply(shakeScale).toArray(values, values.length);
20
+ }
21
+ const trackName = ".position";
22
+ const track = new VectorKeyframeTrack(trackName, times, values);
23
+ return new AnimationClip(null, duration, [track]);
50
24
  }
51
- const trackName = ".material[0].color";
52
- const track = new ColorKeyframeTrack(trackName, times, values);
53
- return new AnimationClip(null, duration, [track]);
54
- };
25
+ static CreatePulsationAnimation(duration, pulseScale) {
26
+ const times = [], values = [], tmp = new Vector3();
27
+ for (let i = 0; i < duration * 10; i++) {
28
+ times.push(i / 10);
29
+ const scaleFactor = Math.random() * pulseScale;
30
+ tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length);
31
+ }
32
+ const trackName = ".scale";
33
+ const track = new VectorKeyframeTrack(trackName, times, values);
34
+ return new AnimationClip(null, duration, [track]);
35
+ }
36
+ static CreateVisibilityAnimation(duration) {
37
+ const times = [0, duration / 2, duration], values = [true, false, true];
38
+ const trackName = ".visible";
39
+ const track = new BooleanKeyframeTrack(trackName, times, values);
40
+ return new AnimationClip(null, duration, [track]);
41
+ }
42
+ static CreateMaterialColorAnimation(duration, colors) {
43
+ const times = [], values = [], timeStep = duration / colors.length;
44
+ for (let i = 0; i < colors.length; i++) {
45
+ times.push(i * timeStep);
46
+ const color = colors[i];
47
+ values.push(color.r, color.g, color.b);
48
+ }
49
+ const trackName = ".material.color";
50
+ const track = new ColorKeyframeTrack(trackName, times, values);
51
+ return new AnimationClip(null, duration, [track]);
52
+ }
53
+ }
55
54
  export {
56
55
  AnimationClipCreator
57
56
  };
@@ -1,13 +1,17 @@
1
- import { Object3D, SkinnedMesh } from 'three'
1
+ import { Object3D, SkinnedMesh, Vector3 } from 'three'
2
2
 
3
3
  // tslint:disable-next-line:interface-name
4
4
  export interface IKS {
5
5
  effector: number
6
6
  iteration: number
7
- links: {
7
+ links: Array<{
8
8
  enabled: boolean
9
9
  index: number
10
- }
10
+ limitation?: Vector3
11
+ rotationMin?: Vector3
12
+ rotationMax?: Vector3
13
+ }>
14
+ minAngle: number
11
15
  maxAngle: number
12
16
  target: number
13
17
  }
@@ -21,5 +25,6 @@ export class CCDIKSolver {
21
25
  }
22
26
 
23
27
  export class CCDIKHelper extends Object3D {
24
- constructor(mesh: SkinnedMesh, iks: IKS[])
28
+ constructor(mesh: SkinnedMesh, iks?: IKS[], sphereSize?: number)
29
+ dispose(): void
25
30
  }
@@ -1,17 +1,151 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
7
- };
8
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
3
  const THREE = require("three");
4
+ const _q = /* @__PURE__ */ new THREE.Quaternion();
5
+ const _targetPos = /* @__PURE__ */ new THREE.Vector3();
6
+ const _targetVec = /* @__PURE__ */ new THREE.Vector3();
7
+ const _effectorPos = /* @__PURE__ */ new THREE.Vector3();
8
+ const _effectorVec = /* @__PURE__ */ new THREE.Vector3();
9
+ const _linkPos = /* @__PURE__ */ new THREE.Vector3();
10
+ const _invLinkQ = /* @__PURE__ */ new THREE.Quaternion();
11
+ const _linkScale = /* @__PURE__ */ new THREE.Vector3();
12
+ const _axis = /* @__PURE__ */ new THREE.Vector3();
13
+ const _vector = /* @__PURE__ */ new THREE.Vector3();
14
+ const _matrix = /* @__PURE__ */ new THREE.Matrix4();
15
+ class CCDIKSolver {
16
+ /**
17
+ * @param {THREE.SkinnedMesh} mesh
18
+ * @param {Array<Object>} iks
19
+ */
20
+ constructor(mesh, iks = []) {
21
+ this.mesh = mesh;
22
+ this.iks = iks;
23
+ this._valid();
24
+ }
25
+ /**
26
+ * Update all IK bones.
27
+ *
28
+ * @return {CCDIKSolver}
29
+ */
30
+ update() {
31
+ const iks = this.iks;
32
+ for (let i = 0, il = iks.length; i < il; i++) {
33
+ this.updateOne(iks[i]);
34
+ }
35
+ return this;
36
+ }
37
+ /**
38
+ * Update one IK bone
39
+ *
40
+ * @param {Object} ik parameter
41
+ * @return {CCDIKSolver}
42
+ */
43
+ updateOne(ik) {
44
+ const bones = this.mesh.skeleton.bones;
45
+ const math = Math;
46
+ const effector = bones[ik.effector];
47
+ const target = bones[ik.target];
48
+ _targetPos.setFromMatrixPosition(target.matrixWorld);
49
+ const links = ik.links;
50
+ const iteration = ik.iteration !== void 0 ? ik.iteration : 1;
51
+ for (let i = 0; i < iteration; i++) {
52
+ let rotated = false;
53
+ for (let j = 0, jl = links.length; j < jl; j++) {
54
+ const link = bones[links[j].index];
55
+ if (links[j].enabled === false)
56
+ break;
57
+ const limitation = links[j].limitation;
58
+ const rotationMin = links[j].rotationMin;
59
+ const rotationMax = links[j].rotationMax;
60
+ link.matrixWorld.decompose(_linkPos, _invLinkQ, _linkScale);
61
+ _invLinkQ.invert();
62
+ _effectorPos.setFromMatrixPosition(effector.matrixWorld);
63
+ _effectorVec.subVectors(_effectorPos, _linkPos);
64
+ _effectorVec.applyQuaternion(_invLinkQ);
65
+ _effectorVec.normalize();
66
+ _targetVec.subVectors(_targetPos, _linkPos);
67
+ _targetVec.applyQuaternion(_invLinkQ);
68
+ _targetVec.normalize();
69
+ let angle = _targetVec.dot(_effectorVec);
70
+ if (angle > 1) {
71
+ angle = 1;
72
+ } else if (angle < -1) {
73
+ angle = -1;
74
+ }
75
+ angle = math.acos(angle);
76
+ if (angle < 1e-5)
77
+ continue;
78
+ if (ik.minAngle !== void 0 && angle < ik.minAngle) {
79
+ angle = ik.minAngle;
80
+ }
81
+ if (ik.maxAngle !== void 0 && angle > ik.maxAngle) {
82
+ angle = ik.maxAngle;
83
+ }
84
+ _axis.crossVectors(_effectorVec, _targetVec);
85
+ _axis.normalize();
86
+ _q.setFromAxisAngle(_axis, angle);
87
+ link.quaternion.multiply(_q);
88
+ if (limitation !== void 0) {
89
+ let c = link.quaternion.w;
90
+ if (c > 1)
91
+ c = 1;
92
+ const c2 = math.sqrt(1 - c * c);
93
+ link.quaternion.set(limitation.x * c2, limitation.y * c2, limitation.z * c2, c);
94
+ }
95
+ if (rotationMin !== void 0) {
96
+ link.rotation.setFromVector3(_vector.setFromEuler(link.rotation).max(rotationMin));
97
+ }
98
+ if (rotationMax !== void 0) {
99
+ link.rotation.setFromVector3(_vector.setFromEuler(link.rotation).min(rotationMax));
100
+ }
101
+ link.updateMatrixWorld(true);
102
+ rotated = true;
103
+ }
104
+ if (!rotated)
105
+ break;
106
+ }
107
+ return this;
108
+ }
109
+ /**
110
+ * Creates Helper
111
+ *
112
+ * @return {CCDIKHelper}
113
+ */
114
+ createHelper() {
115
+ return new CCDIKHelper(this.mesh, this.iks);
116
+ }
117
+ // private methods
118
+ _valid() {
119
+ const iks = this.iks;
120
+ const bones = this.mesh.skeleton.bones;
121
+ for (let i = 0, il = iks.length; i < il; i++) {
122
+ const ik = iks[i];
123
+ const effector = bones[ik.effector];
124
+ const links = ik.links;
125
+ let link0, link1;
126
+ link0 = effector;
127
+ for (let j = 0, jl = links.length; j < jl; j++) {
128
+ link1 = bones[links[j].index];
129
+ if (link0.parent !== link1) {
130
+ console.warn("THREE.CCDIKSolver: bone " + link0.name + " is not the child of bone " + link1.name);
131
+ }
132
+ link0 = link1;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ function getPosition(bone, matrixWorldInv) {
138
+ return _vector.setFromMatrixPosition(bone.matrixWorld).applyMatrix4(matrixWorldInv);
139
+ }
140
+ function setPositionOfBoneToAttributeArray(array, index, bone, matrixWorldInv) {
141
+ const v = getPosition(bone, matrixWorldInv);
142
+ array[index * 3 + 0] = v.x;
143
+ array[index * 3 + 1] = v.y;
144
+ array[index * 3 + 2] = v.z;
145
+ }
10
146
  class CCDIKHelper extends THREE.Object3D {
11
147
  constructor(mesh, iks = [], sphereSize = 0.25) {
12
148
  super();
13
- __publicField(this, "_m", new THREE.Matrix4());
14
- __publicField(this, "_v", new THREE.Vector3());
15
149
  this.root = mesh;
16
150
  this.iks = iks;
17
151
  this.matrix.copy(mesh.matrixWorld);
@@ -41,73 +175,40 @@ class CCDIKHelper extends THREE.Object3D {
41
175
  depthWrite: false,
42
176
  transparent: true
43
177
  });
44
- function createLineGeometry(ik) {
45
- const geometry = new THREE.BufferGeometry();
46
- const vertices = new Float32Array((2 + ik.links.length) * 3);
47
- geometry.setAttribute("position", new THREE.BufferAttribute(vertices, 3));
48
- return geometry;
49
- }
50
- const scope = this;
51
- function createTargetMesh() {
52
- return new THREE.Mesh(scope.sphereGeometry, scope.targetSphereMaterial);
53
- }
54
- function createEffectorMesh() {
55
- return new THREE.Mesh(scope.sphereGeometry, scope.effectorSphereMaterial);
56
- }
57
- function createLinkMesh() {
58
- return new THREE.Mesh(scope.sphereGeometry, scope.linkSphereMaterial);
59
- }
60
- function createLine(ik) {
61
- return new THREE.Line(createLineGeometry(ik), scope.lineMaterial);
62
- }
63
- for (let i = 0, il = iks.length; i < il; i++) {
64
- const ik = iks[i];
65
- this.add(createTargetMesh());
66
- this.add(createEffectorMesh());
67
- for (let j = 0, jl = ik.links.length; j < jl; j++) {
68
- this.add(createLinkMesh());
69
- }
70
- this.add(createLine(ik));
71
- }
72
- }
73
- _getPosition(bone, matrixWorldInv) {
74
- return this._v.setFromMatrixPosition(bone.matrixWorld).applyMatrix4(matrixWorldInv);
75
- }
76
- _setPositionOfBoneToAttributeArray(array, index, bone, matrixWorldInv) {
77
- const v = this._getPosition(bone, matrixWorldInv);
78
- array[index * 3 + 0] = v.x;
79
- array[index * 3 + 1] = v.y;
80
- array[index * 3 + 2] = v.z;
178
+ this._init();
81
179
  }
180
+ /**
181
+ * Updates IK bones visualization.
182
+ */
82
183
  updateMatrixWorld(force) {
83
184
  const mesh = this.root;
84
185
  if (this.visible) {
85
186
  let offset = 0;
86
187
  const iks = this.iks;
87
188
  const bones = mesh.skeleton.bones;
88
- this._m.copy(mesh.matrixWorld).invert();
189
+ _matrix.copy(mesh.matrixWorld).invert();
89
190
  for (let i = 0, il = iks.length; i < il; i++) {
90
191
  const ik = iks[i];
91
192
  const targetBone = bones[ik.target];
92
193
  const effectorBone = bones[ik.effector];
93
194
  const targetMesh = this.children[offset++];
94
195
  const effectorMesh = this.children[offset++];
95
- targetMesh.position.copy(this._getPosition(targetBone, this._m));
96
- effectorMesh.position.copy(this._getPosition(effectorBone, this._m));
196
+ targetMesh.position.copy(getPosition(targetBone, _matrix));
197
+ effectorMesh.position.copy(getPosition(effectorBone, _matrix));
97
198
  for (let j = 0, jl = ik.links.length; j < jl; j++) {
98
199
  const link = ik.links[j];
99
200
  const linkBone = bones[link.index];
100
201
  const linkMesh = this.children[offset++];
101
- linkMesh.position.copy(this._getPosition(linkBone, this._m));
202
+ linkMesh.position.copy(getPosition(linkBone, _matrix));
102
203
  }
103
204
  const line = this.children[offset++];
104
205
  const array = line.geometry.attributes.position.array;
105
- this._setPositionOfBoneToAttributeArray(array, 0, targetBone, this._m);
106
- this._setPositionOfBoneToAttributeArray(array, 1, effectorBone, this._m);
206
+ setPositionOfBoneToAttributeArray(array, 0, targetBone, _matrix);
207
+ setPositionOfBoneToAttributeArray(array, 1, effectorBone, _matrix);
107
208
  for (let j = 0, jl = ik.links.length; j < jl; j++) {
108
209
  const link = ik.links[j];
109
210
  const linkBone = bones[link.index];
110
- this._setPositionOfBoneToAttributeArray(array, j + 2, linkBone, this._m);
211
+ setPositionOfBoneToAttributeArray(array, j + 2, linkBone, _matrix);
111
212
  }
112
213
  line.geometry.attributes.position.needsUpdate = true;
113
214
  }
@@ -115,109 +216,53 @@ class CCDIKHelper extends THREE.Object3D {
115
216
  this.matrix.copy(mesh.matrixWorld);
116
217
  super.updateMatrixWorld(force);
117
218
  }
118
- }
119
- class CCDIKSolver {
120
- constructor(mesh, iks) {
121
- __publicField(this, "q", new THREE.Quaternion());
122
- __publicField(this, "targetPos", new THREE.Vector3());
123
- __publicField(this, "targetVec", new THREE.Vector3());
124
- __publicField(this, "effectorPos", new THREE.Vector3());
125
- __publicField(this, "effectorVec", new THREE.Vector3());
126
- __publicField(this, "linkPos", new THREE.Vector3());
127
- __publicField(this, "invLinkQ", new THREE.Quaternion());
128
- __publicField(this, "linkScale", new THREE.Vector3());
129
- __publicField(this, "axis", new THREE.Vector3());
130
- __publicField(this, "vector", new THREE.Vector3());
131
- this.mesh = mesh;
132
- this.iks = iks;
133
- const bones = this.mesh.skeleton.bones;
134
- for (let i = 0, il = this.iks.length; i < il; i++) {
135
- const ik = this.iks[i];
136
- const effector = bones[ik.effector];
137
- const links = ik.links;
138
- let link0, link1;
139
- link0 = effector;
140
- for (let j = 0, jl = links.length; j < jl; j++) {
141
- link1 = bones[links[j].index];
142
- if (link0.parent !== link1) {
143
- console.warn(`THREE.CCDIKSolver: bone ${link0.name} is not the child of bone ${link1.name}`);
144
- }
145
- link0 = link1;
146
- }
219
+ /**
220
+ * Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
221
+ */
222
+ dispose() {
223
+ this.sphereGeometry.dispose();
224
+ this.targetSphereMaterial.dispose();
225
+ this.effectorSphereMaterial.dispose();
226
+ this.linkSphereMaterial.dispose();
227
+ this.lineMaterial.dispose();
228
+ const children = this.children;
229
+ for (let i = 0; i < children.length; i++) {
230
+ const child = children[i];
231
+ if (child.isLine)
232
+ child.geometry.dispose();
147
233
  }
148
234
  }
149
- update() {
150
- const bones = this.mesh.skeleton.bones;
235
+ // private method
236
+ _init() {
237
+ const scope = this;
151
238
  const iks = this.iks;
152
- const math = Math;
239
+ function createLineGeometry(ik) {
240
+ const geometry = new THREE.BufferGeometry();
241
+ const vertices = new Float32Array((2 + ik.links.length) * 3);
242
+ geometry.setAttribute("position", new THREE.BufferAttribute(vertices, 3));
243
+ return geometry;
244
+ }
245
+ function createTargetMesh() {
246
+ return new THREE.Mesh(scope.sphereGeometry, scope.targetSphereMaterial);
247
+ }
248
+ function createEffectorMesh() {
249
+ return new THREE.Mesh(scope.sphereGeometry, scope.effectorSphereMaterial);
250
+ }
251
+ function createLinkMesh() {
252
+ return new THREE.Mesh(scope.sphereGeometry, scope.linkSphereMaterial);
253
+ }
254
+ function createLine(ik) {
255
+ return new THREE.Line(createLineGeometry(ik), scope.lineMaterial);
256
+ }
153
257
  for (let i = 0, il = iks.length; i < il; i++) {
154
258
  const ik = iks[i];
155
- const effector = bones[ik.effector];
156
- const target = bones[ik.target];
157
- this.targetPos.setFromMatrixPosition(target.matrixWorld);
158
- const links = ik.links;
159
- const iteration = ik.iteration !== void 0 ? ik.iteration : 1;
160
- for (let j = 0; j < iteration; j++) {
161
- let rotated = false;
162
- for (let k = 0, kl = links.length; k < kl; k++) {
163
- const link = bones[links[k].index];
164
- if (links[k].enabled === false)
165
- break;
166
- const limitation = links[k].limitation;
167
- const rotationMin = links[k].rotationMin;
168
- const rotationMax = links[k].rotationMax;
169
- link.matrixWorld.decompose(this.linkPos, this.invLinkQ, this.linkScale);
170
- this.invLinkQ.invert();
171
- this.effectorPos.setFromMatrixPosition(effector.matrixWorld);
172
- this.effectorVec.subVectors(this.effectorPos, this.linkPos);
173
- this.effectorVec.applyQuaternion(this.invLinkQ);
174
- this.effectorVec.normalize();
175
- this.targetVec.subVectors(this.targetPos, this.linkPos);
176
- this.targetVec.applyQuaternion(this.invLinkQ);
177
- this.targetVec.normalize();
178
- let angle = this.targetVec.dot(this.effectorVec);
179
- if (angle > 1) {
180
- angle = 1;
181
- } else if (angle < -1) {
182
- angle = -1;
183
- }
184
- angle = math.acos(angle);
185
- if (angle < 1e-5)
186
- continue;
187
- if (ik.minAngle !== void 0 && angle < ik.minAngle) {
188
- angle = ik.minAngle;
189
- }
190
- if (ik.maxAngle !== void 0 && angle > ik.maxAngle) {
191
- angle = ik.maxAngle;
192
- }
193
- this.axis.crossVectors(this.effectorVec, this.targetVec);
194
- this.axis.normalize();
195
- this.q.setFromAxisAngle(this.axis, angle);
196
- link.quaternion.multiply(this.q);
197
- if (limitation !== void 0) {
198
- let c = link.quaternion.w;
199
- if (c > 1)
200
- c = 1;
201
- const c2 = math.sqrt(1 - c * c);
202
- link.quaternion.set(limitation.x * c2, limitation.y * c2, limitation.z * c2, c);
203
- }
204
- if (rotationMin !== void 0) {
205
- link.rotation.setFromVector3(this.vector.setFromEuler(link.rotation).max(rotationMin));
206
- }
207
- if (rotationMax !== void 0) {
208
- link.rotation.setFromVector3(this.vector.setFromEuler(link.rotation).min(rotationMax));
209
- }
210
- link.updateMatrixWorld(true);
211
- rotated = true;
212
- }
213
- if (!rotated)
214
- break;
259
+ this.add(createTargetMesh());
260
+ this.add(createEffectorMesh());
261
+ for (let j = 0, jl = ik.links.length; j < jl; j++) {
262
+ this.add(createLinkMesh());
215
263
  }
264
+ this.add(createLine(ik));
216
265
  }
217
- return this;
218
- }
219
- createHelper() {
220
- return new CCDIKHelper(this.mesh, this.mesh.geometry.userData.MMD.iks);
221
266
  }
222
267
  }
223
268
  exports.CCDIKHelper = CCDIKHelper;