three-stdlib 2.22.9 → 2.22.10

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 (629) 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/TransformControls.d.ts +1 -1
  23. package/dist/controls/experimental/CameraControls.d.ts +1 -1
  24. package/dist/csm/CSM.js +4 -4
  25. package/dist/csm/CSM.mjs +4 -4
  26. package/dist/csm/CSMFrustum.js +1 -1
  27. package/dist/csm/CSMFrustum.mjs +1 -1
  28. package/dist/csm/CSMShader.js +14 -10
  29. package/dist/csm/CSMShader.mjs +14 -10
  30. package/dist/curves/CurveExtras.js +52 -62
  31. package/dist/curves/CurveExtras.mjs +53 -63
  32. package/dist/curves/NURBSUtils.d.ts +18 -20
  33. package/dist/curves/NURBSUtils.js +17 -17
  34. package/dist/curves/NURBSUtils.mjs +17 -17
  35. package/dist/deprecated/Geometry.js +26 -26
  36. package/dist/deprecated/Geometry.mjs +27 -27
  37. package/dist/effects/AnaglyphEffect.js +95 -114
  38. package/dist/effects/AnaglyphEffect.mjs +95 -114
  39. package/dist/effects/AsciiEffect.js +144 -162
  40. package/dist/effects/AsciiEffect.mjs +144 -162
  41. package/dist/effects/OutlineEffect.js +253 -276
  42. package/dist/effects/OutlineEffect.mjs +253 -276
  43. package/dist/effects/ParallaxBarrierEffect.js +61 -60
  44. package/dist/effects/ParallaxBarrierEffect.mjs +61 -60
  45. package/dist/effects/PeppersGhostEffect.js +84 -81
  46. package/dist/effects/PeppersGhostEffect.mjs +84 -81
  47. package/dist/effects/StereoEffect.js +31 -28
  48. package/dist/effects/StereoEffect.mjs +31 -28
  49. package/dist/environments/RoomEnvironment.d.ts +6 -5
  50. package/dist/exporters/GLTFExporter.d.ts +109 -441
  51. package/dist/exporters/GLTFExporter.js +912 -581
  52. package/dist/exporters/GLTFExporter.mjs +912 -581
  53. package/dist/geometries/ConvexGeometry.js +0 -3
  54. package/dist/geometries/ConvexGeometry.mjs +0 -3
  55. package/dist/geometries/LightningStrike.d.ts +3 -3
  56. package/dist/geometries/LightningStrike.js +80 -75
  57. package/dist/geometries/LightningStrike.mjs +80 -75
  58. package/dist/geometries/ParametricGeometries.js +75 -74
  59. package/dist/geometries/ParametricGeometries.mjs +75 -74
  60. package/dist/geometries/RoundedBoxGeometry.js +1 -1
  61. package/dist/geometries/RoundedBoxGeometry.mjs +1 -1
  62. package/dist/geometries/TextGeometry.d.ts +1 -1
  63. package/dist/helpers/RectAreaLightHelper.d.ts +4 -3
  64. package/dist/helpers/RectAreaLightHelper.js +2 -2
  65. package/dist/helpers/RectAreaLightHelper.mjs +2 -2
  66. package/dist/helpers/VertexNormalsHelper.d.ts +3 -0
  67. package/dist/helpers/VertexNormalsHelper.js +15 -22
  68. package/dist/helpers/VertexNormalsHelper.mjs +16 -23
  69. package/dist/helpers/VertexTangentsHelper.d.ts +3 -0
  70. package/dist/helpers/VertexTangentsHelper.js +12 -14
  71. package/dist/helpers/VertexTangentsHelper.mjs +12 -14
  72. package/dist/index.d.ts +1 -66
  73. package/dist/index.js +5 -370
  74. package/dist/index.mjs +9 -374
  75. package/dist/interactive/InteractiveGroup.js +1 -1
  76. package/dist/interactive/InteractiveGroup.mjs +1 -1
  77. package/dist/interactive/SelectionBox.js +122 -125
  78. package/dist/interactive/SelectionBox.mjs +122 -125
  79. package/dist/interactive/SelectionHelper.js +45 -48
  80. package/dist/interactive/SelectionHelper.mjs +45 -48
  81. package/dist/libs/MeshoptDecoder.d.ts +1 -1
  82. package/dist/libs/MotionControllers.d.ts +15 -14
  83. package/dist/libs/MotionControllers.js +10 -10
  84. package/dist/libs/MotionControllers.mjs +10 -10
  85. package/dist/lights/LightProbeGenerator.js +43 -43
  86. package/dist/lights/LightProbeGenerator.mjs +43 -43
  87. package/dist/lights/RectAreaLightUniformsLib.js +9 -5
  88. package/dist/lights/RectAreaLightUniformsLib.mjs +9 -5
  89. package/dist/lines/LineMaterial.js +271 -271
  90. package/dist/lines/LineMaterial.mjs +272 -272
  91. package/dist/lines/LineSegments2.js +12 -12
  92. package/dist/lines/LineSegments2.mjs +12 -12
  93. package/dist/lines/LineSegmentsGeometry.js +2 -2
  94. package/dist/lines/LineSegmentsGeometry.mjs +2 -2
  95. package/dist/lines/Wireframe.js +2 -2
  96. package/dist/lines/Wireframe.mjs +2 -2
  97. package/dist/loaders/3DMLoader.d.ts +2 -1
  98. package/dist/loaders/3MFLoader.d.ts +2 -1
  99. package/dist/loaders/AMFLoader.d.ts +2 -1
  100. package/dist/loaders/AssimpLoader.d.ts +20 -0
  101. package/dist/loaders/AssimpLoader.js +520 -482
  102. package/dist/loaders/AssimpLoader.mjs +520 -482
  103. package/dist/loaders/BVHLoader.d.ts +2 -1
  104. package/dist/loaders/BasisTextureLoader.d.ts +2 -1
  105. package/dist/loaders/BasisTextureLoader.js +23 -14
  106. package/dist/loaders/BasisTextureLoader.mjs +24 -15
  107. package/dist/loaders/ColladaLoader.d.ts +2 -1
  108. package/dist/loaders/DRACOLoader.d.ts +2 -1
  109. package/dist/loaders/FBXLoader.d.ts +2 -1
  110. package/dist/loaders/FBXLoader.js +2 -2
  111. package/dist/loaders/FBXLoader.mjs +2 -2
  112. package/dist/loaders/FontLoader.d.ts +4 -4
  113. package/dist/loaders/FontLoader.js +2 -1
  114. package/dist/loaders/FontLoader.mjs +2 -1
  115. package/dist/loaders/GCodeLoader.d.ts +2 -1
  116. package/dist/loaders/GLTFLoader.d.ts +11 -9
  117. package/dist/loaders/GLTFLoader.js +2 -2
  118. package/dist/loaders/GLTFLoader.mjs +2 -2
  119. package/dist/loaders/HDRCubeTextureLoader.d.ts +2 -1
  120. package/dist/loaders/KMZLoader.d.ts +2 -1
  121. package/dist/loaders/KTX2Loader.js +34 -15
  122. package/dist/loaders/KTX2Loader.mjs +35 -16
  123. package/dist/loaders/LDrawLoader.d.ts +2 -1
  124. package/dist/loaders/LDrawLoader.js +3 -3
  125. package/dist/loaders/LDrawLoader.mjs +3 -3
  126. package/dist/loaders/LUT3dlLoader.d.ts +3 -2
  127. package/dist/loaders/LUTCubeLoader.d.ts +3 -2
  128. package/dist/loaders/LWOLoader.d.ts +2 -1
  129. package/dist/loaders/LottieLoader.d.ts +2 -1
  130. package/dist/loaders/MD2Loader.d.ts +2 -1
  131. package/dist/loaders/MDDLoader.d.ts +2 -1
  132. package/dist/loaders/MMDLoader.d.ts +2 -1
  133. package/dist/loaders/MTLLoader.d.ts +2 -1
  134. package/dist/loaders/OBJLoader.d.ts +2 -1
  135. package/dist/loaders/OBJLoader.js +5 -5
  136. package/dist/loaders/OBJLoader.mjs +5 -5
  137. package/dist/loaders/PCDLoader.d.ts +2 -1
  138. package/dist/loaders/PDBLoader.d.ts +2 -1
  139. package/dist/loaders/PLYLoader.d.ts +2 -1
  140. package/dist/loaders/PRWMLoader.d.ts +2 -1
  141. package/dist/loaders/RGBMLoader.js +924 -918
  142. package/dist/loaders/RGBMLoader.mjs +924 -918
  143. package/dist/loaders/STLLoader.d.ts +2 -1
  144. package/dist/loaders/SVGLoader.d.ts +2 -1
  145. package/dist/loaders/TDSLoader.d.ts +2 -1
  146. package/dist/loaders/TTFLoader.d.ts +2 -1
  147. package/dist/loaders/TiltLoader.d.ts +2 -1
  148. package/dist/loaders/TiltLoader.js +3 -1
  149. package/dist/loaders/TiltLoader.mjs +3 -1
  150. package/dist/loaders/VOXLoader.d.ts +4 -2
  151. package/dist/loaders/VRMLLoader.d.ts +2 -1
  152. package/dist/loaders/VRMLoader.d.ts +20 -0
  153. package/dist/loaders/VTKLoader.d.ts +2 -1
  154. package/dist/loaders/XLoader.d.ts +20 -0
  155. package/dist/loaders/XLoader.js +1 -1
  156. package/dist/loaders/XLoader.mjs +1 -1
  157. package/dist/loaders/XYZLoader.d.ts +2 -1
  158. package/dist/loaders/lwo/IFFParser.js +104 -110
  159. package/dist/loaders/lwo/IFFParser.mjs +104 -110
  160. package/dist/loaders/lwo/LWO2Parser.js +18 -33
  161. package/dist/loaders/lwo/LWO2Parser.mjs +18 -33
  162. package/dist/loaders/lwo/LWO3Parser.js +17 -33
  163. package/dist/loaders/lwo/LWO3Parser.mjs +17 -33
  164. package/dist/math/Capsule.d.ts +1 -1
  165. package/dist/math/Capsule.js +90 -92
  166. package/dist/math/Capsule.mjs +90 -92
  167. package/dist/math/ColorConverter.js +26 -36
  168. package/dist/math/ColorConverter.mjs +26 -36
  169. package/dist/math/ConvexHull.js +16 -17
  170. package/dist/math/ConvexHull.mjs +17 -18
  171. package/dist/math/ImprovedNoise.js +41 -39
  172. package/dist/math/ImprovedNoise.mjs +41 -39
  173. package/dist/math/Lut.js +65 -63
  174. package/dist/math/Lut.mjs +66 -64
  175. package/dist/math/MeshSurfaceSampler.d.ts +3 -0
  176. package/dist/math/MeshSurfaceSampler.js +85 -89
  177. package/dist/math/MeshSurfaceSampler.mjs +85 -89
  178. package/dist/math/OBB.js +68 -88
  179. package/dist/math/OBB.mjs +68 -88
  180. package/dist/math/Octree.js +240 -245
  181. package/dist/math/Octree.mjs +240 -245
  182. package/dist/misc/ConvexObjectBreaker.js +114 -120
  183. package/dist/misc/ConvexObjectBreaker.mjs +115 -121
  184. package/dist/misc/GPUComputationRenderer.d.ts +1 -0
  185. package/dist/misc/GPUComputationRenderer.js +191 -157
  186. package/dist/misc/GPUComputationRenderer.mjs +192 -158
  187. package/dist/misc/Gyroscope.js +16 -18
  188. package/dist/misc/Gyroscope.mjs +17 -19
  189. package/dist/misc/MD2Character.js +88 -86
  190. package/dist/misc/MD2Character.mjs +89 -87
  191. package/dist/misc/MD2CharacterComplex.js +106 -105
  192. package/dist/misc/MD2CharacterComplex.mjs +107 -106
  193. package/dist/misc/MorphAnimMesh.d.ts +1 -1
  194. package/dist/misc/MorphAnimMesh.js +33 -33
  195. package/dist/misc/MorphAnimMesh.mjs +33 -33
  196. package/dist/misc/MorphBlendMesh.js +68 -68
  197. package/dist/misc/MorphBlendMesh.mjs +68 -68
  198. package/dist/misc/ProgressiveLightmap.d.ts +1 -2
  199. package/dist/misc/RollerCoaster.js +321 -314
  200. package/dist/misc/RollerCoaster.mjs +322 -315
  201. package/dist/misc/Volume.d.ts +1 -1
  202. package/dist/misc/Volume.js +169 -166
  203. package/dist/misc/Volume.mjs +170 -167
  204. package/dist/misc/VolumeSlice.js +50 -51
  205. package/dist/misc/VolumeSlice.mjs +50 -51
  206. package/dist/modifiers/CurveModifier.d.ts +2 -2
  207. package/dist/modifiers/CurveModifier.js +1 -1
  208. package/dist/modifiers/CurveModifier.mjs +1 -1
  209. package/dist/modifiers/SimplifyModifier.js +2 -1
  210. package/dist/modifiers/SimplifyModifier.mjs +2 -1
  211. package/dist/objects/Lensflare.js +32 -21
  212. package/dist/objects/Lensflare.mjs +33 -22
  213. package/dist/objects/LightningStorm.d.ts +3 -3
  214. package/dist/objects/LightningStorm.js +3 -3
  215. package/dist/objects/LightningStorm.mjs +3 -3
  216. package/dist/objects/MarchingCubes.d.ts +1 -0
  217. package/dist/objects/MarchingCubes.js +4362 -10
  218. package/dist/objects/MarchingCubes.mjs +4363 -11
  219. package/dist/objects/Reflector.d.ts +5 -2
  220. package/dist/objects/Reflector.js +39 -12
  221. package/dist/objects/Reflector.mjs +40 -13
  222. package/dist/objects/ReflectorForSSRPass.js +25 -21
  223. package/dist/objects/ReflectorForSSRPass.mjs +26 -22
  224. package/dist/objects/ReflectorRTT.d.ts +6 -0
  225. package/dist/objects/Refractor.d.ts +5 -2
  226. package/dist/objects/Refractor.js +39 -12
  227. package/dist/objects/Refractor.mjs +40 -13
  228. package/dist/objects/ShadowMesh.d.ts +6 -3
  229. package/dist/objects/ShadowMesh.js +7 -3
  230. package/dist/objects/ShadowMesh.mjs +8 -4
  231. package/dist/objects/Sky.js +181 -137
  232. package/dist/objects/Sky.mjs +182 -138
  233. package/dist/objects/Water.d.ts +3 -3
  234. package/dist/objects/Water.js +3 -2
  235. package/dist/objects/Water.mjs +3 -2
  236. package/dist/objects/Water2.d.ts +2 -2
  237. package/dist/objects/Water2.js +16 -18
  238. package/dist/objects/Water2.mjs +17 -19
  239. package/dist/postprocessing/AdaptiveToneMappingPass.d.ts +2 -2
  240. package/dist/postprocessing/AdaptiveToneMappingPass.js +105 -112
  241. package/dist/postprocessing/AdaptiveToneMappingPass.mjs +107 -114
  242. package/dist/postprocessing/BokehPass.d.ts +1 -1
  243. package/dist/postprocessing/ClearPass.d.ts +3 -3
  244. package/dist/postprocessing/CubeTexturePass.js +37 -33
  245. package/dist/postprocessing/CubeTexturePass.mjs +37 -33
  246. package/dist/postprocessing/HalftonePass.d.ts +1 -1
  247. package/dist/postprocessing/LUTPass.d.ts +3 -3
  248. package/dist/postprocessing/RenderPixelatedPass.d.ts +28 -0
  249. package/dist/postprocessing/SAOPass.d.ts +5 -6
  250. package/dist/postprocessing/SAOPass.js +151 -145
  251. package/dist/postprocessing/SAOPass.mjs +153 -147
  252. package/dist/postprocessing/SSAARenderPass.d.ts +5 -5
  253. package/dist/postprocessing/SSAARenderPass.js +78 -55
  254. package/dist/postprocessing/SSAARenderPass.mjs +80 -57
  255. package/dist/postprocessing/SSAOPass.d.ts +4 -5
  256. package/dist/postprocessing/SSAOPass.js +17 -10
  257. package/dist/postprocessing/SSAOPass.mjs +17 -10
  258. package/dist/postprocessing/SSRPass.d.ts +6 -7
  259. package/dist/postprocessing/SSRPass.js +235 -262
  260. package/dist/postprocessing/SSRPass.mjs +237 -264
  261. package/dist/postprocessing/TAARenderPass.d.ts +2 -2
  262. package/dist/postprocessing/TAARenderPass.js +106 -27
  263. package/dist/postprocessing/TAARenderPass.mjs +107 -28
  264. package/dist/postprocessing/TexturePass.d.ts +2 -2
  265. package/dist/postprocessing/TexturePass.js +24 -22
  266. package/dist/postprocessing/TexturePass.mjs +25 -23
  267. package/dist/postprocessing/UnrealBloomPass.js +175 -118
  268. package/dist/postprocessing/UnrealBloomPass.mjs +177 -120
  269. package/dist/renderers/CSS2DRenderer.d.ts +2 -1
  270. package/dist/renderers/CSS2DRenderer.js +5 -4
  271. package/dist/renderers/CSS2DRenderer.mjs +6 -5
  272. package/dist/renderers/CSS3DRenderer.d.ts +1 -1
  273. package/dist/renderers/CSS3DRenderer.js +147 -113
  274. package/dist/renderers/CSS3DRenderer.mjs +148 -114
  275. package/dist/renderers/Projector.js +377 -389
  276. package/dist/renderers/Projector.mjs +377 -389
  277. package/dist/renderers/SVGRenderer.js +280 -275
  278. package/dist/renderers/SVGRenderer.mjs +280 -275
  279. package/dist/shaders/ACESFilmicToneMappingShader.d.ts +1 -1
  280. package/dist/shaders/AfterimageShader.d.ts +1 -1
  281. package/dist/shaders/BasicShader.d.ts +1 -1
  282. package/dist/shaders/BleachBypassShader.d.ts +1 -1
  283. package/dist/shaders/BokehShader.d.ts +2 -2
  284. package/dist/shaders/BokehShader2.d.ts +2 -2
  285. package/dist/shaders/BokehShader2.js +1 -1
  286. package/dist/shaders/BokehShader2.mjs +1 -1
  287. package/dist/shaders/ColorCorrectionShader.js +3 -3
  288. package/dist/shaders/ColorCorrectionShader.mjs +3 -3
  289. package/dist/shaders/ColorifyShader.js +1 -1
  290. package/dist/shaders/ColorifyShader.mjs +1 -1
  291. package/dist/shaders/ConvolutionShader.d.ts +2 -2
  292. package/dist/shaders/ConvolutionShader.js +1 -1
  293. package/dist/shaders/ConvolutionShader.mjs +1 -1
  294. package/dist/shaders/CopyShader.d.ts +1 -1
  295. package/dist/shaders/DepthLimitedBlurShader.d.ts +2 -2
  296. package/dist/shaders/DepthLimitedBlurShader.js +2 -2
  297. package/dist/shaders/DepthLimitedBlurShader.mjs +2 -2
  298. package/dist/shaders/DotScreenShader.js +2 -2
  299. package/dist/shaders/DotScreenShader.mjs +2 -2
  300. package/dist/shaders/FXAAShader.js +1 -1
  301. package/dist/shaders/FXAAShader.mjs +1 -1
  302. package/dist/shaders/FreiChenShader.js +1 -1
  303. package/dist/shaders/FreiChenShader.mjs +1 -1
  304. package/dist/shaders/GammaCorrectionShader.d.ts +1 -1
  305. package/dist/shaders/GodRaysShader.js +4 -4
  306. package/dist/shaders/GodRaysShader.mjs +4 -4
  307. package/dist/shaders/HorizontalBlurShader.d.ts +1 -1
  308. package/dist/shaders/LuminosityHighPassShader.js +1 -1
  309. package/dist/shaders/LuminosityHighPassShader.mjs +1 -1
  310. package/dist/shaders/NormalMapShader.js +2 -2
  311. package/dist/shaders/NormalMapShader.mjs +2 -2
  312. package/dist/shaders/SAOShader.d.ts +2 -2
  313. package/dist/shaders/SAOShader.js +3 -3
  314. package/dist/shaders/SAOShader.mjs +3 -3
  315. package/dist/shaders/SMAAShader.js +3 -3
  316. package/dist/shaders/SMAAShader.mjs +3 -3
  317. package/dist/shaders/SSAOShader.js +4 -4
  318. package/dist/shaders/SSAOShader.mjs +4 -4
  319. package/dist/shaders/SSRShader.js +4 -4
  320. package/dist/shaders/SSRShader.mjs +4 -4
  321. package/dist/shaders/SobelOperatorShader.js +1 -1
  322. package/dist/shaders/SobelOperatorShader.mjs +1 -1
  323. package/dist/shaders/SubsurfaceScatteringShader.d.ts +2 -2
  324. package/dist/shaders/SubsurfaceScatteringShader.js +91 -52
  325. package/dist/shaders/SubsurfaceScatteringShader.mjs +91 -52
  326. package/dist/shaders/ToonShader.js +25 -25
  327. package/dist/shaders/ToonShader.mjs +25 -25
  328. package/dist/shaders/TriangleBlurShader.js +1 -1
  329. package/dist/shaders/TriangleBlurShader.mjs +1 -1
  330. package/dist/shaders/VerticalBlurShader.d.ts +1 -1
  331. package/dist/shaders/VolumeShader.js +2 -2
  332. package/dist/shaders/VolumeShader.mjs +2 -2
  333. package/dist/shaders/types.d.ts +2 -2
  334. package/dist/types/Loader.d.ts +4 -0
  335. package/dist/types/Loader.js +26 -0
  336. package/dist/types/Loader.mjs +9 -0
  337. package/dist/types/shared.d.ts +2 -2
  338. package/dist/types/utils.d.ts +1 -1
  339. package/dist/utils/BufferGeometryUtils.d.ts +2 -2
  340. package/dist/utils/BufferGeometryUtils.js +1 -1
  341. package/dist/utils/BufferGeometryUtils.mjs +1 -1
  342. package/dist/utils/RoughnessMipmapper.d.ts +8 -0
  343. package/dist/utils/RoughnessMipmapper.js +79 -75
  344. package/dist/utils/RoughnessMipmapper.mjs +79 -75
  345. package/dist/utils/ShadowMapViewer.js +103 -106
  346. package/dist/utils/ShadowMapViewer.mjs +103 -106
  347. package/dist/utils/SkeletonUtils.d.ts +5 -21
  348. package/dist/utils/SkeletonUtils.js +182 -263
  349. package/dist/utils/SkeletonUtils.mjs +183 -264
  350. package/dist/utils/UVsDebug.js +37 -42
  351. package/dist/utils/UVsDebug.mjs +37 -42
  352. package/dist/webxr/ARButton.d.ts +2 -1
  353. package/dist/webxr/OculusHandModel.d.ts +2 -1
  354. package/dist/webxr/OculusHandPointerModel.d.ts +2 -2
  355. package/dist/webxr/OculusHandPointerModel.js +2 -2
  356. package/dist/webxr/OculusHandPointerModel.mjs +2 -2
  357. package/dist/webxr/VRButton.d.ts +2 -1
  358. package/dist/webxr/XRHandPrimitiveModel.js +2 -2
  359. package/dist/webxr/XRHandPrimitiveModel.mjs +2 -2
  360. package/package.json +5 -6
  361. package/dist/custom.d.ts +0 -5
  362. package/dist/loaders/NodeMaterialLoader.js +0 -146
  363. package/dist/loaders/NodeMaterialLoader.mjs +0 -146
  364. package/dist/nodes/Nodes.js +0 -347
  365. package/dist/nodes/Nodes.mjs +0 -347
  366. package/dist/nodes/ShaderNode.js +0 -408
  367. package/dist/nodes/ShaderNode.mjs +0 -408
  368. package/dist/nodes/accessors/BufferNode.js +0 -14
  369. package/dist/nodes/accessors/BufferNode.mjs +0 -15
  370. package/dist/nodes/accessors/CameraNode.js +0 -43
  371. package/dist/nodes/accessors/CameraNode.mjs +0 -44
  372. package/dist/nodes/accessors/CubeTextureNode.js +0 -41
  373. package/dist/nodes/accessors/CubeTextureNode.mjs +0 -42
  374. package/dist/nodes/accessors/MaterialNode.js +0 -70
  375. package/dist/nodes/accessors/MaterialNode.mjs +0 -71
  376. package/dist/nodes/accessors/MaterialReferenceNode.js +0 -13
  377. package/dist/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  378. package/dist/nodes/accessors/ModelNode.js +0 -8
  379. package/dist/nodes/accessors/ModelNode.mjs +0 -9
  380. package/dist/nodes/accessors/ModelViewProjectionNode.js +0 -23
  381. package/dist/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  382. package/dist/nodes/accessors/NormalNode.js +0 -61
  383. package/dist/nodes/accessors/NormalNode.mjs +0 -62
  384. package/dist/nodes/accessors/Object3DNode.js +0 -75
  385. package/dist/nodes/accessors/Object3DNode.mjs +0 -76
  386. package/dist/nodes/accessors/PointUVNode.js +0 -12
  387. package/dist/nodes/accessors/PointUVNode.mjs +0 -13
  388. package/dist/nodes/accessors/PositionNode.js +0 -64
  389. package/dist/nodes/accessors/PositionNode.mjs +0 -65
  390. package/dist/nodes/accessors/ReferenceNode.js +0 -36
  391. package/dist/nodes/accessors/ReferenceNode.mjs +0 -37
  392. package/dist/nodes/accessors/ReflectNode.js +0 -42
  393. package/dist/nodes/accessors/ReflectNode.mjs +0 -43
  394. package/dist/nodes/accessors/SkinningNode.js +0 -57
  395. package/dist/nodes/accessors/SkinningNode.mjs +0 -58
  396. package/dist/nodes/accessors/TextureNode.js +0 -53
  397. package/dist/nodes/accessors/TextureNode.mjs +0 -54
  398. package/dist/nodes/accessors/UVNode.js +0 -22
  399. package/dist/nodes/accessors/UVNode.mjs +0 -23
  400. package/dist/nodes/core/ArrayUniformNode.js +0 -13
  401. package/dist/nodes/core/ArrayUniformNode.mjs +0 -14
  402. package/dist/nodes/core/AttributeNode.js +0 -29
  403. package/dist/nodes/core/AttributeNode.mjs +0 -30
  404. package/dist/nodes/core/BypassNode.js +0 -21
  405. package/dist/nodes/core/BypassNode.mjs +0 -22
  406. package/dist/nodes/core/CodeNode.js +0 -27
  407. package/dist/nodes/core/CodeNode.mjs +0 -28
  408. package/dist/nodes/core/ConstNode.js +0 -13
  409. package/dist/nodes/core/ConstNode.mjs +0 -14
  410. package/dist/nodes/core/ContextNode.js +0 -21
  411. package/dist/nodes/core/ContextNode.mjs +0 -22
  412. package/dist/nodes/core/ExpressionNode.js +0 -18
  413. package/dist/nodes/core/ExpressionNode.mjs +0 -19
  414. package/dist/nodes/core/FunctionCallNode.js +0 -36
  415. package/dist/nodes/core/FunctionCallNode.mjs +0 -37
  416. package/dist/nodes/core/FunctionNode.js +0 -55
  417. package/dist/nodes/core/FunctionNode.mjs +0 -56
  418. package/dist/nodes/core/InputNode.js +0 -37
  419. package/dist/nodes/core/InputNode.mjs +0 -38
  420. package/dist/nodes/core/Node.js +0 -138
  421. package/dist/nodes/core/Node.mjs +0 -139
  422. package/dist/nodes/core/NodeAttribute.js +0 -9
  423. package/dist/nodes/core/NodeAttribute.mjs +0 -10
  424. package/dist/nodes/core/NodeBuilder.js +0 -402
  425. package/dist/nodes/core/NodeBuilder.mjs +0 -402
  426. package/dist/nodes/core/NodeCode.js +0 -10
  427. package/dist/nodes/core/NodeCode.mjs +0 -11
  428. package/dist/nodes/core/NodeFrame.js +0 -34
  429. package/dist/nodes/core/NodeFrame.mjs +0 -35
  430. package/dist/nodes/core/NodeFunctionInput.js +0 -12
  431. package/dist/nodes/core/NodeFunctionInput.mjs +0 -13
  432. package/dist/nodes/core/NodeKeywords.js +0 -43
  433. package/dist/nodes/core/NodeKeywords.mjs +0 -44
  434. package/dist/nodes/core/NodeUniform.js +0 -17
  435. package/dist/nodes/core/NodeUniform.mjs +0 -18
  436. package/dist/nodes/core/NodeUtils.js +0 -57
  437. package/dist/nodes/core/NodeUtils.mjs +0 -57
  438. package/dist/nodes/core/NodeVar.js +0 -9
  439. package/dist/nodes/core/NodeVar.mjs +0 -10
  440. package/dist/nodes/core/NodeVary.js +0 -9
  441. package/dist/nodes/core/NodeVary.mjs +0 -10
  442. package/dist/nodes/core/PropertyNode.js +0 -20
  443. package/dist/nodes/core/PropertyNode.mjs +0 -21
  444. package/dist/nodes/core/TempNode.js +0 -24
  445. package/dist/nodes/core/TempNode.mjs +0 -25
  446. package/dist/nodes/core/UniformNode.js +0 -22
  447. package/dist/nodes/core/UniformNode.mjs +0 -23
  448. package/dist/nodes/core/VarNode.js +0 -30
  449. package/dist/nodes/core/VarNode.mjs +0 -31
  450. package/dist/nodes/core/VaryNode.js +0 -29
  451. package/dist/nodes/core/VaryNode.mjs +0 -30
  452. package/dist/nodes/core/constants.js +0 -24
  453. package/dist/nodes/core/constants.mjs +0 -24
  454. package/dist/nodes/display/ColorSpaceNode.js +0 -62
  455. package/dist/nodes/display/ColorSpaceNode.mjs +0 -62
  456. package/dist/nodes/display/NormalMapNode.js +0 -53
  457. package/dist/nodes/display/NormalMapNode.mjs +0 -54
  458. package/dist/nodes/fog/FogNode.js +0 -14
  459. package/dist/nodes/fog/FogNode.mjs +0 -15
  460. package/dist/nodes/fog/FogRangeNode.js +0 -16
  461. package/dist/nodes/fog/FogRangeNode.mjs +0 -17
  462. package/dist/nodes/functions/BSDFs.js +0 -64
  463. package/dist/nodes/functions/BSDFs.mjs +0 -64
  464. package/dist/nodes/lights/LightContextNode.js +0 -34
  465. package/dist/nodes/lights/LightContextNode.mjs +0 -35
  466. package/dist/nodes/lights/LightNode.js +0 -57
  467. package/dist/nodes/lights/LightNode.mjs +0 -58
  468. package/dist/nodes/lights/LightsNode.js +0 -58
  469. package/dist/nodes/lights/LightsNode.mjs +0 -59
  470. package/dist/nodes/loaders/NodeLoader.js +0 -195
  471. package/dist/nodes/loaders/NodeLoader.mjs +0 -196
  472. package/dist/nodes/loaders/NodeMaterialLoader.js +0 -23
  473. package/dist/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  474. package/dist/nodes/loaders/NodeObjectLoader.js +0 -39
  475. package/dist/nodes/loaders/NodeObjectLoader.mjs +0 -40
  476. package/dist/nodes/materials/LineBasicNodeMaterial.js +0 -26
  477. package/dist/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  478. package/dist/nodes/materials/Materials.js +0 -24
  479. package/dist/nodes/materials/Materials.mjs +0 -24
  480. package/dist/nodes/materials/MeshBasicNodeMaterial.js +0 -27
  481. package/dist/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  482. package/dist/nodes/materials/MeshStandardNodeMaterial.js +0 -40
  483. package/dist/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  484. package/dist/nodes/materials/NodeMaterial.js +0 -63
  485. package/dist/nodes/materials/NodeMaterial.mjs +0 -64
  486. package/dist/nodes/materials/PointsNodeMaterial.js +0 -29
  487. package/dist/nodes/materials/PointsNodeMaterial.mjs +0 -30
  488. package/dist/nodes/math/CondNode.js +0 -40
  489. package/dist/nodes/math/CondNode.mjs +0 -41
  490. package/dist/nodes/math/MathNode.js +0 -165
  491. package/dist/nodes/math/MathNode.mjs +0 -166
  492. package/dist/nodes/math/OperatorNode.js +0 -102
  493. package/dist/nodes/math/OperatorNode.mjs +0 -103
  494. package/dist/nodes/procedural/CheckerNode.js +0 -20
  495. package/dist/nodes/procedural/CheckerNode.mjs +0 -21
  496. package/dist/nodes/utils/ArrayElementNode.js +0 -18
  497. package/dist/nodes/utils/ArrayElementNode.mjs +0 -19
  498. package/dist/nodes/utils/ConvertNode.js +0 -24
  499. package/dist/nodes/utils/ConvertNode.mjs +0 -25
  500. package/dist/nodes/utils/JoinNode.js +0 -25
  501. package/dist/nodes/utils/JoinNode.mjs +0 -26
  502. package/dist/nodes/utils/MatcapUVNode.js +0 -15
  503. package/dist/nodes/utils/MatcapUVNode.mjs +0 -16
  504. package/dist/nodes/utils/OscNode.js +0 -49
  505. package/dist/nodes/utils/OscNode.mjs +0 -50
  506. package/dist/nodes/utils/SplitNode.js +0 -44
  507. package/dist/nodes/utils/SplitNode.mjs +0 -45
  508. package/dist/nodes/utils/SpriteSheetUVNode.js +0 -39
  509. package/dist/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  510. package/dist/nodes/utils/TimerNode.js +0 -43
  511. package/dist/nodes/utils/TimerNode.mjs +0 -44
  512. package/dist/offscreen/jank.js +0 -26
  513. package/dist/offscreen/jank.mjs +0 -27
  514. package/dist/offscreen/offscreen.js +0 -8
  515. package/dist/offscreen/offscreen.mjs +0 -7
  516. package/dist/offscreen/scene.js +0 -68
  517. package/dist/offscreen/scene.mjs +0 -52
  518. package/dist/renderers/nodes/accessors/CameraNode.js +0 -62
  519. package/dist/renderers/nodes/accessors/CameraNode.mjs +0 -63
  520. package/dist/renderers/nodes/accessors/ModelNode.js +0 -60
  521. package/dist/renderers/nodes/accessors/ModelNode.mjs +0 -61
  522. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.js +0 -20
  523. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  524. package/dist/renderers/nodes/accessors/NormalNode.js +0 -60
  525. package/dist/renderers/nodes/accessors/NormalNode.mjs +0 -61
  526. package/dist/renderers/nodes/accessors/PositionNode.js +0 -29
  527. package/dist/renderers/nodes/accessors/PositionNode.mjs +0 -30
  528. package/dist/renderers/nodes/accessors/UVNode.js +0 -12
  529. package/dist/renderers/nodes/accessors/UVNode.mjs +0 -13
  530. package/dist/renderers/nodes/core/AttributeNode.js +0 -34
  531. package/dist/renderers/nodes/core/AttributeNode.mjs +0 -35
  532. package/dist/renderers/nodes/core/InputNode.js +0 -30
  533. package/dist/renderers/nodes/core/InputNode.mjs +0 -31
  534. package/dist/renderers/nodes/core/Node.js +0 -33
  535. package/dist/renderers/nodes/core/Node.mjs +0 -34
  536. package/dist/renderers/nodes/core/NodeAttribute.js +0 -9
  537. package/dist/renderers/nodes/core/NodeAttribute.mjs +0 -10
  538. package/dist/renderers/nodes/core/NodeBuilder.js +0 -248
  539. package/dist/renderers/nodes/core/NodeBuilder.mjs +0 -249
  540. package/dist/renderers/nodes/core/NodeFrame.js +0 -34
  541. package/dist/renderers/nodes/core/NodeFrame.mjs +0 -35
  542. package/dist/renderers/nodes/core/NodeSlot.js +0 -9
  543. package/dist/renderers/nodes/core/NodeSlot.mjs +0 -10
  544. package/dist/renderers/nodes/core/NodeUniform.js +0 -17
  545. package/dist/renderers/nodes/core/NodeUniform.mjs +0 -18
  546. package/dist/renderers/nodes/core/NodeVary.js +0 -10
  547. package/dist/renderers/nodes/core/NodeVary.mjs +0 -11
  548. package/dist/renderers/nodes/core/VaryNode.js +0 -21
  549. package/dist/renderers/nodes/core/VaryNode.mjs +0 -22
  550. package/dist/renderers/nodes/core/constants.js +0 -22
  551. package/dist/renderers/nodes/core/constants.mjs +0 -22
  552. package/dist/renderers/nodes/inputs/ColorNode.js +0 -10
  553. package/dist/renderers/nodes/inputs/ColorNode.mjs +0 -11
  554. package/dist/renderers/nodes/inputs/FloatNode.js +0 -10
  555. package/dist/renderers/nodes/inputs/FloatNode.mjs +0 -11
  556. package/dist/renderers/nodes/inputs/Matrix3Node.js +0 -11
  557. package/dist/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  558. package/dist/renderers/nodes/inputs/Matrix4Node.js +0 -11
  559. package/dist/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  560. package/dist/renderers/nodes/inputs/TextureNode.js +0 -19
  561. package/dist/renderers/nodes/inputs/TextureNode.mjs +0 -20
  562. package/dist/renderers/nodes/inputs/Vector2Node.js +0 -10
  563. package/dist/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  564. package/dist/renderers/nodes/inputs/Vector3Node.js +0 -11
  565. package/dist/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  566. package/dist/renderers/nodes/inputs/Vector4Node.js +0 -11
  567. package/dist/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  568. package/dist/renderers/nodes/math/MathNode.js +0 -54
  569. package/dist/renderers/nodes/math/MathNode.mjs +0 -55
  570. package/dist/renderers/nodes/math/OperatorNode.js +0 -41
  571. package/dist/renderers/nodes/math/OperatorNode.mjs +0 -42
  572. package/dist/renderers/nodes/utils/SwitchNode.js +0 -19
  573. package/dist/renderers/nodes/utils/SwitchNode.mjs +0 -20
  574. package/dist/renderers/nodes/utils/TimerNode.js +0 -13
  575. package/dist/renderers/nodes/utils/TimerNode.mjs +0 -14
  576. package/dist/renderers/webgpu/WebGPU.js +0 -23
  577. package/dist/renderers/webgpu/WebGPU.mjs +0 -24
  578. package/dist/renderers/webgpu/WebGPUAttributes.js +0 -68
  579. package/dist/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  580. package/dist/renderers/webgpu/WebGPUBackground.js +0 -60
  581. package/dist/renderers/webgpu/WebGPUBackground.mjs +0 -61
  582. package/dist/renderers/webgpu/WebGPUBinding.js +0 -13
  583. package/dist/renderers/webgpu/WebGPUBinding.mjs +0 -14
  584. package/dist/renderers/webgpu/WebGPUBindings.js +0 -154
  585. package/dist/renderers/webgpu/WebGPUBindings.mjs +0 -155
  586. package/dist/renderers/webgpu/WebGPUComputePipelines.js +0 -43
  587. package/dist/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  588. package/dist/renderers/webgpu/WebGPUGeometries.js +0 -40
  589. package/dist/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  590. package/dist/renderers/webgpu/WebGPUInfo.js +0 -45
  591. package/dist/renderers/webgpu/WebGPUInfo.mjs +0 -46
  592. package/dist/renderers/webgpu/WebGPUObjects.js +0 -24
  593. package/dist/renderers/webgpu/WebGPUObjects.mjs +0 -25
  594. package/dist/renderers/webgpu/WebGPUProperties.js +0 -21
  595. package/dist/renderers/webgpu/WebGPUProperties.mjs +0 -22
  596. package/dist/renderers/webgpu/WebGPURenderLists.js +0 -118
  597. package/dist/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  598. package/dist/renderers/webgpu/WebGPURenderPipelines.js +0 -545
  599. package/dist/renderers/webgpu/WebGPURenderPipelines.mjs +0 -546
  600. package/dist/renderers/webgpu/WebGPURenderer.js +0 -596
  601. package/dist/renderers/webgpu/WebGPURenderer.mjs +0 -575
  602. package/dist/renderers/webgpu/WebGPUSampledTexture.js +0 -40
  603. package/dist/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  604. package/dist/renderers/webgpu/WebGPUSampler.js +0 -14
  605. package/dist/renderers/webgpu/WebGPUSampler.mjs +0 -15
  606. package/dist/renderers/webgpu/WebGPUStorageBuffer.js +0 -14
  607. package/dist/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  608. package/dist/renderers/webgpu/WebGPUTextureRenderer.js +0 -22
  609. package/dist/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  610. package/dist/renderers/webgpu/WebGPUTextureUtils.js +0 -97
  611. package/dist/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  612. package/dist/renderers/webgpu/WebGPUTextures.js +0 -483
  613. package/dist/renderers/webgpu/WebGPUTextures.mjs +0 -484
  614. package/dist/renderers/webgpu/WebGPUUniform.js +0 -81
  615. package/dist/renderers/webgpu/WebGPUUniform.mjs +0 -81
  616. package/dist/renderers/webgpu/WebGPUUniformsGroup.js +0 -175
  617. package/dist/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  618. package/dist/renderers/webgpu/constants.js +0 -241
  619. package/dist/renderers/webgpu/constants.mjs +0 -241
  620. package/dist/renderers/webgpu/nodes/ShaderLib.js +0 -41
  621. package/dist/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  622. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.js +0 -164
  623. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  624. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.js +0 -73
  625. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  626. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -14
  627. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  628. package/dist/renderers/webgpu/nodes/WebGPUNodes.js +0 -39
  629. 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;