@needle-tools/three 0.146.10 → 0.153.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 (865) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.cjs +39486 -20286
  3. package/build/three.js +39471 -20270
  4. package/build/three.min.js +3 -2
  5. package/build/three.module.js +6717 -5427
  6. package/build/three.module.min.js +6 -0
  7. package/examples/jsm/animation/AnimationClipCreator.js +5 -3
  8. package/examples/jsm/cameras/CinematicCamera.js +1 -2
  9. package/examples/jsm/capabilities/WebGPU.js +17 -5
  10. package/examples/jsm/controls/ArcballControls.js +1828 -1821
  11. package/examples/jsm/controls/MapControls.js +28 -0
  12. package/examples/jsm/controls/OrbitControls.js +26 -53
  13. package/examples/jsm/controls/PointerLockControls.js +70 -65
  14. package/examples/jsm/controls/TrackballControls.js +18 -4
  15. package/examples/jsm/controls/TransformControls.js +0 -1
  16. package/examples/jsm/csm/CSM.js +11 -5
  17. package/examples/jsm/csm/CSMShader.js +7 -6
  18. package/examples/jsm/effects/AnaglyphEffect.js +6 -20
  19. package/examples/jsm/effects/AsciiEffect.js +3 -6
  20. package/examples/jsm/effects/OutlineEffect.js +1 -15
  21. package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
  22. package/examples/jsm/exporters/DRACOExporter.js +53 -11
  23. package/examples/jsm/exporters/EXRExporter.js +3 -9
  24. package/examples/jsm/exporters/GLTFExporter.js +561 -154
  25. package/examples/jsm/exporters/KTX2Exporter.js +34 -23
  26. package/examples/jsm/exporters/MMDExporter.js +1 -1
  27. package/examples/jsm/exporters/PLYExporter.js +8 -1
  28. package/examples/jsm/exporters/STLExporter.js +8 -4
  29. package/examples/jsm/exporters/USDZExporter.js +305 -792
  30. package/examples/jsm/geometries/ConvexGeometry.js +0 -6
  31. package/examples/jsm/geometries/ParametricGeometry.js +10 -0
  32. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  33. package/examples/jsm/helpers/ViewHelper.js +71 -57
  34. package/examples/jsm/interactive/HTMLMesh.js +16 -3
  35. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  36. package/examples/{js → jsm}/libs/basis/README.md +4 -4
  37. package/examples/jsm/libs/draco/draco_decoder.js +34 -0
  38. package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  39. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  40. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  41. package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  42. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  43. package/examples/jsm/libs/lil-gui.module.min.js +2 -2
  44. package/examples/jsm/libs/tween.module.js +803 -0
  45. package/examples/jsm/lights/IESSpotLight.js +25 -0
  46. package/examples/jsm/lights/LightProbeGenerator.js +11 -9
  47. package/examples/jsm/lines/LineSegments2.js +16 -10
  48. package/examples/jsm/loaders/3DMLoader.js +8 -5
  49. package/examples/jsm/loaders/3MFLoader.js +12 -11
  50. package/examples/jsm/loaders/AMFLoader.js +2 -3
  51. package/examples/jsm/loaders/BVHLoader.js +2 -2
  52. package/examples/jsm/loaders/ColladaLoader.js +15 -16
  53. package/examples/jsm/loaders/DRACOLoader.js +69 -18
  54. package/examples/jsm/loaders/EXRLoader.js +23 -24
  55. package/examples/jsm/loaders/FBXLoader.js +34 -50
  56. package/examples/jsm/loaders/GCodeLoader.js +1 -2
  57. package/examples/jsm/loaders/GLTFLoader.js +417 -895
  58. package/examples/jsm/loaders/GLTFLoaderAnimationPointer.js +684 -0
  59. package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
  60. package/examples/jsm/loaders/IESLoader.js +337 -0
  61. package/examples/jsm/loaders/KMZLoader.js +4 -4
  62. package/examples/jsm/loaders/KTX2Loader.js +145 -69
  63. package/examples/jsm/loaders/LDrawLoader.js +20 -18
  64. package/examples/jsm/loaders/LWOLoader.js +12 -29
  65. package/examples/jsm/loaders/LottieLoader.js +3 -1
  66. package/examples/jsm/loaders/MMDLoader.js +49 -18
  67. package/examples/jsm/loaders/MTLLoader.js +2 -2
  68. package/examples/jsm/loaders/MaterialXLoader.js +9 -3
  69. package/examples/jsm/loaders/NRRDLoader.js +33 -5
  70. package/examples/jsm/loaders/OBJLoader.js +1 -1
  71. package/examples/jsm/loaders/PCDLoader.js +26 -12
  72. package/examples/jsm/loaders/PDBLoader.js +7 -2
  73. package/examples/jsm/loaders/PLYLoader.js +254 -109
  74. package/examples/jsm/loaders/RGBELoader.js +3 -3
  75. package/examples/jsm/loaders/STLLoader.js +9 -5
  76. package/examples/jsm/loaders/SVGLoader.js +36 -27
  77. package/examples/jsm/loaders/TTFLoader.js +1 -8
  78. package/examples/jsm/loaders/TiltLoader.js +13 -7
  79. package/examples/jsm/loaders/USDZLoader.js +6 -6
  80. package/examples/jsm/loaders/VOXLoader.js +8 -2
  81. package/examples/jsm/loaders/VRMLLoader.js +44 -16
  82. package/examples/jsm/loaders/VTKLoader.js +19 -10
  83. package/examples/jsm/loaders/XYZLoader.js +9 -3
  84. package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
  85. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -3
  86. package/examples/jsm/math/ConvexHull.js +3 -3
  87. package/examples/jsm/math/Lut.js +5 -4
  88. package/examples/jsm/math/MeshSurfaceSampler.js +7 -9
  89. package/examples/jsm/math/Octree.js +1 -1
  90. package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
  91. package/examples/jsm/misc/GPUComputationRenderer.js +6 -5
  92. package/examples/jsm/misc/MD2Character.js +2 -2
  93. package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
  94. package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
  95. package/examples/jsm/misc/RollerCoaster.js +7 -1
  96. package/examples/jsm/misc/Volume.js +20 -5
  97. package/examples/jsm/misc/VolumeSlice.js +3 -1
  98. package/examples/jsm/modifiers/CurveModifier.js +1 -0
  99. package/examples/jsm/modifiers/TessellateModifier.js +19 -19
  100. package/examples/jsm/nodes/Nodes.js +144 -335
  101. package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
  102. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +86 -0
  103. package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
  104. package/examples/jsm/nodes/accessors/CameraNode.js +12 -2
  105. package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
  106. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +58 -0
  107. package/examples/jsm/nodes/accessors/InstanceNode.js +41 -26
  108. package/examples/jsm/nodes/accessors/MaterialNode.js +155 -38
  109. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
  110. package/examples/jsm/nodes/accessors/ModelNode.js +11 -0
  111. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +13 -14
  112. package/examples/jsm/nodes/accessors/NormalNode.js +35 -19
  113. package/examples/jsm/nodes/accessors/Object3DNode.js +32 -12
  114. package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
  115. package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
  116. package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
  117. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
  118. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -40
  119. package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
  120. package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
  121. package/examples/jsm/nodes/accessors/TextureNode.js +80 -12
  122. package/examples/jsm/nodes/accessors/UVNode.js +6 -0
  123. package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
  124. package/examples/jsm/nodes/code/CodeNode.js +75 -0
  125. package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
  126. package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
  127. package/examples/jsm/nodes/{core → code}/FunctionNode.js +8 -7
  128. package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
  129. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
  130. package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
  131. package/examples/jsm/nodes/core/AttributeNode.js +17 -9
  132. package/examples/jsm/nodes/core/BypassNode.js +9 -2
  133. package/examples/jsm/nodes/core/CacheNode.js +46 -0
  134. package/examples/jsm/nodes/core/ConstNode.js +3 -0
  135. package/examples/jsm/nodes/core/ContextNode.js +8 -1
  136. package/examples/jsm/nodes/core/InputNode.js +26 -5
  137. package/examples/jsm/nodes/core/InstanceIndexNode.js +26 -2
  138. package/examples/jsm/nodes/core/LightingModel.js +16 -0
  139. package/examples/jsm/nodes/core/Node.js +129 -35
  140. package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
  141. package/examples/jsm/nodes/core/NodeBuilder.js +271 -121
  142. package/examples/jsm/nodes/core/NodeCache.js +26 -0
  143. package/examples/jsm/nodes/core/NodeFrame.js +56 -5
  144. package/examples/jsm/nodes/core/NodeUtils.js +115 -28
  145. package/examples/jsm/nodes/core/PropertyNode.js +19 -2
  146. package/examples/jsm/nodes/core/StackNode.js +99 -0
  147. package/examples/jsm/nodes/core/TempNode.js +11 -3
  148. package/examples/jsm/nodes/core/UniformNode.js +16 -1
  149. package/examples/jsm/nodes/core/VarNode.js +21 -29
  150. package/examples/jsm/nodes/core/VaryingNode.js +15 -2
  151. package/examples/jsm/nodes/core/constants.js +6 -0
  152. package/examples/jsm/nodes/display/BlendModeNode.js +25 -11
  153. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +30 -14
  154. package/examples/jsm/nodes/display/ColorSpaceNode.js +39 -27
  155. package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
  156. package/examples/jsm/nodes/display/NormalMapNode.js +31 -18
  157. package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
  158. package/examples/jsm/nodes/display/ToneMappingNode.js +101 -11
  159. package/examples/jsm/nodes/display/ViewportNode.js +27 -18
  160. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +30 -0
  161. package/examples/jsm/nodes/display/ViewportTextureNode.js +67 -0
  162. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
  163. package/examples/jsm/nodes/fog/FogNode.js +12 -6
  164. package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
  165. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
  166. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -13
  167. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  168. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -6
  169. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +4 -4
  170. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +3 -3
  171. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +7 -5
  172. package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
  173. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +35 -36
  174. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +4 -3
  175. package/examples/jsm/nodes/functions/material/getRoughness.js +4 -4
  176. package/examples/jsm/nodes/geometry/RangeNode.js +50 -55
  177. package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
  178. package/examples/jsm/nodes/lighting/AONode.js +5 -3
  179. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
  180. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +114 -5
  181. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
  182. package/examples/jsm/nodes/lighting/EnvironmentNode.js +121 -35
  183. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
  184. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
  185. package/examples/jsm/nodes/lighting/LightNode.js +57 -0
  186. package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
  187. package/examples/jsm/nodes/lighting/LightingContextNode.js +30 -8
  188. package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
  189. package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
  190. package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
  191. package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
  192. package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
  193. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
  194. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -9
  195. package/examples/jsm/nodes/materials/Materials.js +11 -55
  196. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -11
  197. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +48 -0
  198. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +74 -0
  199. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
  200. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +21 -96
  201. package/examples/jsm/nodes/materials/NodeMaterial.js +284 -62
  202. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -1
  203. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -25
  204. package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
  205. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +1 -1
  206. package/examples/jsm/nodes/materialx/lib/mx_noise.js +2 -1
  207. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +2 -1
  208. package/examples/jsm/nodes/math/CondNode.js +43 -17
  209. package/examples/jsm/nodes/math/MathNode.js +178 -73
  210. package/examples/jsm/nodes/math/OperatorNode.js +52 -2
  211. package/examples/jsm/nodes/procedural/CheckerNode.js +14 -6
  212. package/examples/jsm/nodes/shadernode/ShaderNode.js +186 -63
  213. package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
  214. package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
  215. package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
  216. package/examples/jsm/nodes/utils/EquirectUVNode.js +10 -4
  217. package/examples/jsm/nodes/utils/JoinNode.js +4 -1
  218. package/examples/jsm/nodes/utils/LoopNode.js +186 -0
  219. package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
  220. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
  221. package/examples/jsm/nodes/utils/OscNode.js +21 -14
  222. package/examples/jsm/nodes/utils/PackingNode.js +55 -0
  223. package/examples/jsm/nodes/utils/RemapNode.js +13 -5
  224. package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
  225. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
  226. package/examples/jsm/nodes/utils/SplitNode.js +7 -5
  227. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
  228. package/examples/jsm/nodes/utils/TimerNode.js +16 -6
  229. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
  230. package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
  231. package/examples/jsm/objects/Lensflare.js +3 -4
  232. package/examples/jsm/objects/MarchingCubes.js +5 -1
  233. package/examples/jsm/objects/Reflector.js +7 -4
  234. package/examples/jsm/objects/Refractor.js +4 -4
  235. package/examples/jsm/objects/ShadowMesh.js +3 -3
  236. package/examples/jsm/objects/Water.js +2 -1
  237. package/examples/jsm/physics/AmmoPhysics.js +27 -28
  238. package/examples/jsm/physics/RapierPhysics.js +199 -0
  239. package/examples/jsm/postprocessing/AfterimagePass.js +3 -2
  240. package/examples/jsm/postprocessing/BloomPass.js +7 -4
  241. package/examples/jsm/postprocessing/BokehPass.js +3 -8
  242. package/examples/jsm/postprocessing/DotScreenPass.js +1 -2
  243. package/examples/jsm/postprocessing/EffectComposer.js +5 -95
  244. package/examples/jsm/postprocessing/FilmPass.js +1 -2
  245. package/examples/jsm/postprocessing/GlitchPass.js +0 -2
  246. package/examples/jsm/postprocessing/HalftonePass.js +0 -6
  247. package/examples/jsm/postprocessing/OutlinePass.js +7 -7
  248. package/examples/jsm/postprocessing/OutputPass.js +72 -0
  249. package/examples/jsm/postprocessing/Pass.js +2 -0
  250. package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
  251. package/examples/jsm/postprocessing/SAOPass.js +4 -26
  252. package/examples/jsm/postprocessing/SMAAPass.js +5 -8
  253. package/examples/jsm/postprocessing/SSAARenderPass.js +15 -6
  254. package/examples/jsm/postprocessing/SSAOPass.js +4 -14
  255. package/examples/jsm/postprocessing/SSRPass.js +3 -7
  256. package/examples/jsm/postprocessing/SavePass.js +2 -3
  257. package/examples/jsm/postprocessing/ShaderPass.js +1 -0
  258. package/examples/jsm/postprocessing/TAARenderPass.js +3 -2
  259. package/examples/jsm/postprocessing/TexturePass.js +0 -2
  260. package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -11
  261. package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
  262. package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
  263. package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +4 -4
  264. package/examples/jsm/renderers/common/Attributes.js +75 -0
  265. package/examples/jsm/renderers/common/Backend.js +160 -0
  266. package/examples/jsm/renderers/common/Background.js +133 -0
  267. package/examples/jsm/renderers/common/Binding.js +11 -0
  268. package/examples/jsm/renderers/common/Bindings.js +169 -0
  269. package/examples/jsm/renderers/common/Buffer.js +38 -0
  270. package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
  271. package/examples/jsm/renderers/common/ChainMap.js +89 -0
  272. package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
  273. package/examples/jsm/renderers/common/Constants.js +14 -0
  274. package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
  275. package/examples/jsm/renderers/common/DataMap.js +54 -0
  276. package/examples/jsm/renderers/common/Geometries.js +215 -0
  277. package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
  278. package/examples/jsm/renderers/common/Pipeline.js +13 -0
  279. package/examples/jsm/renderers/common/Pipelines.js +309 -0
  280. package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
  281. package/examples/jsm/renderers/common/RenderContext.js +37 -0
  282. package/examples/jsm/renderers/common/RenderContexts.js +38 -0
  283. package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +26 -47
  284. package/examples/jsm/renderers/common/RenderLists.js +38 -0
  285. package/examples/jsm/renderers/common/RenderObject.js +95 -0
  286. package/examples/jsm/renderers/common/RenderObjects.js +92 -0
  287. package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
  288. package/examples/jsm/renderers/common/RenderTarget.js +15 -0
  289. package/examples/jsm/renderers/common/Renderer.js +822 -0
  290. package/examples/jsm/renderers/common/SampledTexture.js +80 -0
  291. package/examples/jsm/renderers/common/Sampler.js +18 -0
  292. package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
  293. package/examples/jsm/renderers/common/Textures.js +206 -0
  294. package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
  295. package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
  296. package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
  297. package/examples/jsm/renderers/common/nodes/NodeRender.js +302 -0
  298. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
  299. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
  300. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
  301. package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
  302. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +35 -31
  303. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +765 -0
  304. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -987
  305. package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +117 -90
  306. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
  307. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
  308. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +251 -0
  309. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
  310. package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +73 -12
  311. package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +135 -285
  312. package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +5 -25
  313. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +855 -0
  314. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +88 -0
  315. package/examples/jsm/shaders/BleachBypassShader.js +2 -0
  316. package/examples/jsm/shaders/BokehShader2.js +3 -0
  317. package/examples/jsm/shaders/ColorifyShader.js +2 -0
  318. package/examples/jsm/shaders/ConvolutionShader.js +2 -0
  319. package/examples/jsm/shaders/CopyShader.js +2 -0
  320. package/examples/jsm/shaders/DotScreenShader.js +2 -0
  321. package/examples/jsm/shaders/ExposureShader.js +44 -0
  322. package/examples/jsm/shaders/FilmShader.js +2 -0
  323. package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
  324. package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
  325. package/examples/jsm/shaders/MMDToonShader.js +15 -4
  326. package/examples/jsm/shaders/OutputShader.js +61 -0
  327. package/examples/jsm/shaders/RGBShiftShader.js +4 -2
  328. package/examples/jsm/shaders/SepiaShader.js +2 -0
  329. package/examples/jsm/shaders/ToonShader.js +13 -5
  330. package/examples/jsm/shaders/VelocityShader.js +1 -1
  331. package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
  332. package/examples/jsm/shaders/VignetteShader.js +2 -0
  333. package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
  334. package/examples/jsm/utils/BufferGeometryUtils.js +54 -36
  335. package/examples/jsm/utils/LDrawUtils.js +4 -4
  336. package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
  337. package/examples/jsm/utils/SceneUtils.js +8 -4
  338. package/examples/jsm/utils/SkeletonUtils.js +27 -210
  339. package/examples/jsm/utils/TextureUtils.js +41 -40
  340. package/examples/jsm/webxr/VRButton.js +1 -2
  341. package/examples/jsm/webxr/XRButton.js +198 -0
  342. package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
  343. package/examples/jsm/webxr/XRPlanes.js +100 -0
  344. package/package.json +34 -87
  345. package/src/Three.Legacy.js +19 -110
  346. package/src/Three.js +4 -3
  347. package/src/animation/AnimationUtils.js +13 -1
  348. package/src/audio/Audio.js +7 -2
  349. package/src/audio/PositionalAudio.js +8 -0
  350. package/src/cameras/Camera.js +5 -0
  351. package/src/cameras/CubeCamera.js +76 -13
  352. package/src/cameras/OrthographicCamera.js +1 -1
  353. package/src/cameras/PerspectiveCamera.js +1 -1
  354. package/src/constants.js +22 -2
  355. package/src/core/BufferAttribute.js +150 -9
  356. package/src/core/BufferGeometry.js +4 -10
  357. package/src/core/GLBufferAttribute.js +2 -0
  358. package/src/core/InterleavedBufferAttribute.js +5 -5
  359. package/src/core/Object3D.js +37 -8
  360. package/src/extras/DataUtils.js +7 -1
  361. package/src/extras/ImageUtils.js +2 -2
  362. package/src/extras/PMREMGenerator.js +5 -5
  363. package/src/extras/core/Curve.js +1 -1
  364. package/src/extras/curves/LineCurve.js +6 -4
  365. package/src/extras/curves/LineCurve3.js +13 -0
  366. package/src/geometries/BoxGeometry.js +10 -0
  367. package/src/geometries/CircleGeometry.js +11 -1
  368. package/src/geometries/ConeGeometry.js +1 -1
  369. package/src/geometries/CylinderGeometry.js +11 -1
  370. package/src/geometries/EdgesGeometry.js +10 -0
  371. package/src/geometries/ExtrudeGeometry.js +11 -1
  372. package/src/geometries/LatheGeometry.js +10 -0
  373. package/src/geometries/PlaneGeometry.js +10 -0
  374. package/src/geometries/PolyhedronGeometry.js +11 -1
  375. package/src/geometries/RingGeometry.js +11 -1
  376. package/src/geometries/ShapeGeometry.js +11 -1
  377. package/src/geometries/SphereGeometry.js +12 -2
  378. package/src/geometries/TorusGeometry.js +11 -1
  379. package/src/geometries/TorusKnotGeometry.js +10 -0
  380. package/src/geometries/TubeGeometry.js +10 -0
  381. package/src/geometries/WireframeGeometry.js +10 -0
  382. package/src/helpers/Box3Helper.js +1 -2
  383. package/src/lights/DirectionalLight.js +1 -1
  384. package/src/lights/HemisphereLight.js +1 -1
  385. package/src/lights/SpotLight.js +1 -1
  386. package/src/loaders/AudioLoader.js +14 -8
  387. package/src/loaders/CubeTextureLoader.js +2 -0
  388. package/src/loaders/DataTextureLoader.js +5 -1
  389. package/src/loaders/MaterialLoader.js +8 -0
  390. package/src/loaders/ObjectLoader.js +10 -2
  391. package/src/materials/LineBasicMaterial.js +4 -0
  392. package/src/materials/Material.js +16 -4
  393. package/src/materials/MeshDistanceMaterial.js +0 -9
  394. package/src/materials/MeshPhysicalMaterial.js +32 -6
  395. package/src/materials/ShaderMaterial.js +6 -1
  396. package/src/math/Box2.js +3 -2
  397. package/src/math/Box3.js +49 -64
  398. package/src/math/Color.js +88 -66
  399. package/src/math/ColorManagement.js +75 -16
  400. package/src/math/Euler.js +2 -11
  401. package/src/math/Frustum.js +29 -5
  402. package/src/math/MathUtils.js +43 -1
  403. package/src/math/Matrix3.js +26 -6
  404. package/src/math/Matrix4.js +74 -19
  405. package/src/math/Plane.js +2 -2
  406. package/src/math/Quaternion.js +6 -0
  407. package/src/math/Ray.js +7 -7
  408. package/src/math/Triangle.js +37 -7
  409. package/src/math/Vector2.js +16 -0
  410. package/src/math/Vector3.js +10 -0
  411. package/src/math/interpolants/CubicInterpolant.js +1 -2
  412. package/src/objects/InstancedMesh.js +82 -1
  413. package/src/objects/Mesh.js +108 -76
  414. package/src/objects/Skeleton.js +1 -1
  415. package/src/objects/SkinnedMesh.js +123 -8
  416. package/src/objects/Sprite.js +1 -1
  417. package/src/renderers/WebGLCubeRenderTarget.js +12 -3
  418. package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
  419. package/src/renderers/WebGLRenderTarget.js +14 -2
  420. package/src/renderers/WebGLRenderer.js +1433 -1236
  421. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
  422. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
  423. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
  424. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
  425. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
  426. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
  427. package/src/renderers/shaders/ShaderChunk/common.glsl.js +32 -0
  428. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
  429. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
  430. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
  431. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
  432. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  433. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  434. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +10 -2
  435. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
  436. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +39 -13
  437. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +306 -10
  438. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -10
  439. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
  440. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
  441. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
  442. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +32 -10
  443. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
  444. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
  445. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -2
  446. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
  447. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
  448. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
  449. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
  450. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
  451. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
  452. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  453. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +5 -5
  454. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +101 -16
  455. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +113 -1
  456. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +134 -6
  457. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +116 -1
  458. package/src/renderers/shaders/ShaderChunk.js +0 -6
  459. package/src/renderers/shaders/ShaderLib/background.glsl.js +0 -8
  460. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +5 -0
  461. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -4
  462. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -3
  463. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
  464. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -3
  465. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +16 -12
  466. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -3
  467. package/src/renderers/shaders/ShaderLib/points.glsl.js +13 -0
  468. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +5 -0
  469. package/src/renderers/shaders/ShaderLib.js +18 -4
  470. package/src/renderers/shaders/UniformsLib.js +27 -15
  471. package/src/renderers/shaders/UniformsUtils.js +12 -3
  472. package/src/renderers/webgl/WebGLBackground.js +23 -12
  473. package/src/renderers/webgl/WebGLBindingStates.js +13 -5
  474. package/src/renderers/webgl/WebGLCapabilities.js +1 -2
  475. package/src/renderers/webgl/WebGLClipping.js +7 -3
  476. package/src/renderers/webgl/WebGLGeometries.js +12 -0
  477. package/src/renderers/webgl/WebGLInfo.js +0 -1
  478. package/src/renderers/webgl/WebGLLights.js +2 -2
  479. package/src/renderers/webgl/WebGLMaterials.js +123 -234
  480. package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
  481. package/src/renderers/webgl/WebGLProgram.js +130 -48
  482. package/src/renderers/webgl/WebGLPrograms.js +210 -130
  483. package/src/renderers/webgl/WebGLRenderStates.js +2 -2
  484. package/src/renderers/webgl/WebGLShadowMap.js +40 -27
  485. package/src/renderers/webgl/WebGLState.js +23 -9
  486. package/src/renderers/webgl/WebGLTextures.js +39 -19
  487. package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
  488. package/src/renderers/webgl/WebGLUtils.js +41 -29
  489. package/src/renderers/webxr/WebXRController.js +3 -0
  490. package/src/renderers/webxr/WebXRManager.js +85 -141
  491. package/src/scenes/Scene.js +4 -6
  492. package/src/textures/CompressedTexture.js +2 -2
  493. package/src/textures/CubeTexture.js +2 -2
  494. package/src/textures/DataTexture.js +2 -2
  495. package/src/textures/DepthTexture.js +22 -0
  496. package/src/textures/FramebufferTexture.js +1 -3
  497. package/src/textures/Source.js +4 -0
  498. package/src/textures/Texture.js +43 -13
  499. package/src/utils.js +13 -1
  500. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  501. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  502. package/examples/fonts/open-sans/open-sans.css +0 -9
  503. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  504. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
  505. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  506. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  507. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  508. package/examples/fonts/tabler-icons/tabler-icons.min.css +0 -4
  509. package/examples/js/animation/AnimationClipCreator.js +0 -89
  510. package/examples/js/animation/CCDIKSolver.js +0 -416
  511. package/examples/js/animation/MMDAnimationHelper.js +0 -1046
  512. package/examples/js/animation/MMDPhysics.js +0 -1174
  513. package/examples/js/cameras/CinematicCamera.js +0 -168
  514. package/examples/js/controls/ArcballControls.js +0 -2770
  515. package/examples/js/controls/DragControls.js +0 -205
  516. package/examples/js/controls/FirstPersonControls.js +0 -312
  517. package/examples/js/controls/FlyControls.js +0 -321
  518. package/examples/js/controls/OrbitControls.js +0 -1065
  519. package/examples/js/controls/PointerLockControls.js +0 -144
  520. package/examples/js/controls/TrackballControls.js +0 -729
  521. package/examples/js/controls/TransformControls.js +0 -1301
  522. package/examples/js/csm/CSM.js +0 -347
  523. package/examples/js/csm/CSMFrustum.js +0 -127
  524. package/examples/js/csm/CSMHelper.js +0 -165
  525. package/examples/js/csm/CSMShader.js +0 -253
  526. package/examples/js/curves/CurveExtras.js +0 -348
  527. package/examples/js/curves/NURBSCurve.js +0 -63
  528. package/examples/js/curves/NURBSSurface.js +0 -48
  529. package/examples/js/curves/NURBSUtils.js +0 -439
  530. package/examples/js/effects/AnaglyphEffect.js +0 -86
  531. package/examples/js/effects/AsciiEffect.js +0 -260
  532. package/examples/js/effects/OutlineEffect.js +0 -450
  533. package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
  534. package/examples/js/effects/PeppersGhostEffect.js +0 -139
  535. package/examples/js/effects/StereoEffect.js +0 -46
  536. package/examples/js/environments/DebugEnvironment.js +0 -53
  537. package/examples/js/environments/RoomEnvironment.js +0 -124
  538. package/examples/js/exporters/ColladaExporter.js +0 -487
  539. package/examples/js/exporters/DRACOExporter.js +0 -212
  540. package/examples/js/exporters/EXRExporter.js +0 -455
  541. package/examples/js/exporters/GLTFExporter.js +0 -2425
  542. package/examples/js/exporters/MMDExporter.js +0 -187
  543. package/examples/js/exporters/OBJExporter.js +0 -260
  544. package/examples/js/exporters/PLYExporter.js +0 -427
  545. package/examples/js/exporters/STLExporter.js +0 -188
  546. package/examples/js/exporters/USDZExporter.js +0 -608
  547. package/examples/js/geometries/BoxLineGeometry.js +0 -59
  548. package/examples/js/geometries/ConvexGeometry.js +0 -53
  549. package/examples/js/geometries/DecalGeometry.js +0 -324
  550. package/examples/js/geometries/LightningStrike.js +0 -861
  551. package/examples/js/geometries/ParametricGeometries.js +0 -216
  552. package/examples/js/geometries/ParametricGeometry.js +0 -121
  553. package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
  554. package/examples/js/geometries/TeapotGeometry.js +0 -335
  555. package/examples/js/geometries/TextGeometry.js +0 -53
  556. package/examples/js/helpers/LightProbeHelper.js +0 -48
  557. package/examples/js/helpers/OctreeHelper.js +0 -76
  558. package/examples/js/helpers/PositionalAudioHelper.js +0 -91
  559. package/examples/js/helpers/RectAreaLightHelper.js +0 -73
  560. package/examples/js/helpers/VertexNormalsHelper.js +0 -74
  561. package/examples/js/helpers/VertexTangentsHelper.js +0 -68
  562. package/examples/js/helpers/ViewHelper.js +0 -281
  563. package/examples/js/interactive/HTMLMesh.js +0 -497
  564. package/examples/js/interactive/InteractiveGroup.js +0 -95
  565. package/examples/js/interactive/SelectionBox.js +0 -195
  566. package/examples/js/interactive/SelectionHelper.js +0 -83
  567. package/examples/js/libs/chevrotain.min.js +0 -3
  568. package/examples/js/libs/draco/draco_decoder.js +0 -52
  569. package/examples/js/libs/draco/draco_decoder.wasm +0 -0
  570. package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
  571. package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
  572. package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
  573. package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
  574. package/examples/js/libs/fflate.min.js +0 -7
  575. package/examples/js/libs/ktx-parse.umd.js +0 -1
  576. package/examples/js/libs/meshopt_decoder.js +0 -188
  577. package/examples/js/libs/opentype.min.js +0 -1
  578. package/examples/js/libs/stats.min.js +0 -5
  579. package/examples/js/lights/LightProbeGenerator.js +0 -221
  580. package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
  581. package/examples/js/lines/Line2.js +0 -19
  582. package/examples/js/lines/LineGeometry.js +0 -69
  583. package/examples/js/lines/LineMaterial.js +0 -635
  584. package/examples/js/lines/LineSegments2.js +0 -311
  585. package/examples/js/lines/LineSegmentsGeometry.js +0 -198
  586. package/examples/js/lines/Wireframe.js +0 -47
  587. package/examples/js/lines/WireframeGeometry2.js +0 -20
  588. package/examples/js/loaders/3DMLoader.js +0 -1273
  589. package/examples/js/loaders/3MFLoader.js +0 -1306
  590. package/examples/js/loaders/AMFLoader.js +0 -504
  591. package/examples/js/loaders/BVHLoader.js +0 -395
  592. package/examples/js/loaders/BasisTextureLoader.js +0 -706
  593. package/examples/js/loaders/ColladaLoader.js +0 -3663
  594. package/examples/js/loaders/DDSLoader.js +0 -244
  595. package/examples/js/loaders/DRACOLoader.js +0 -511
  596. package/examples/js/loaders/EXRLoader.js +0 -2039
  597. package/examples/js/loaders/FBXLoader.js +0 -3680
  598. package/examples/js/loaders/FontLoader.js +0 -160
  599. package/examples/js/loaders/GCodeLoader.js +0 -255
  600. package/examples/js/loaders/GLTFLoader.js +0 -4108
  601. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
  602. package/examples/js/loaders/KMZLoader.js +0 -121
  603. package/examples/js/loaders/KTXLoader.js +0 -159
  604. package/examples/js/loaders/LDrawLoader.js +0 -2263
  605. package/examples/js/loaders/LUT3dlLoader.js +0 -135
  606. package/examples/js/loaders/LUTCubeLoader.js +0 -132
  607. package/examples/js/loaders/LWOLoader.js +0 -901
  608. package/examples/js/loaders/LogLuvLoader.js +0 -715
  609. package/examples/js/loaders/LottieLoader.js +0 -62
  610. package/examples/js/loaders/MD2Loader.js +0 -248
  611. package/examples/js/loaders/MDDLoader.js +0 -91
  612. package/examples/js/loaders/MMDLoader.js +0 -1915
  613. package/examples/js/loaders/MTLLoader.js +0 -472
  614. package/examples/js/loaders/MaterialXLoader.js +0 -392
  615. package/examples/js/loaders/NRRDLoader.js +0 -609
  616. package/examples/js/loaders/OBJLoader.js +0 -789
  617. package/examples/js/loaders/PCDLoader.js +0 -413
  618. package/examples/js/loaders/PDBLoader.js +0 -317
  619. package/examples/js/loaders/PLYLoader.js +0 -532
  620. package/examples/js/loaders/PRWMLoader.js +0 -249
  621. package/examples/js/loaders/PVRLoader.js +0 -218
  622. package/examples/js/loaders/RGBELoader.js +0 -442
  623. package/examples/js/loaders/RGBMLoader.js +0 -1354
  624. package/examples/js/loaders/STLLoader.js +0 -364
  625. package/examples/js/loaders/SVGLoader.js +0 -2783
  626. package/examples/js/loaders/TDSLoader.js +0 -992
  627. package/examples/js/loaders/TGALoader.js +0 -484
  628. package/examples/js/loaders/TIFFLoader.js +0 -30
  629. package/examples/js/loaders/TTFLoader.js +0 -203
  630. package/examples/js/loaders/TiltLoader.js +0 -459
  631. package/examples/js/loaders/VOXLoader.js +0 -240
  632. package/examples/js/loaders/VRMLLoader.js +0 -3140
  633. package/examples/js/loaders/VTKLoader.js +0 -1078
  634. package/examples/js/loaders/XYZLoader.js +0 -89
  635. package/examples/js/loaders/lwo/IFFParser.js +0 -1067
  636. package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
  637. package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
  638. package/examples/js/materials/MeshGouraudMaterial.js +0 -387
  639. package/examples/js/math/Capsule.js +0 -103
  640. package/examples/js/math/ColorConverter.js +0 -33
  641. package/examples/js/math/ConvexHull.js +0 -1154
  642. package/examples/js/math/ImprovedNoise.js +0 -66
  643. package/examples/js/math/Lut.js +0 -164
  644. package/examples/js/math/MeshSurfaceSampler.js +0 -171
  645. package/examples/js/math/OBB.js +0 -382
  646. package/examples/js/math/Octree.js +0 -410
  647. package/examples/js/math/SimplexNoise.js +0 -445
  648. package/examples/js/misc/ConvexObjectBreaker.js +0 -474
  649. package/examples/js/misc/GPUComputationRenderer.js +0 -393
  650. package/examples/js/misc/Gyroscope.js +0 -56
  651. package/examples/js/misc/MD2Character.js +0 -235
  652. package/examples/js/misc/MD2CharacterComplex.js +0 -513
  653. package/examples/js/misc/MorphAnimMesh.js +0 -63
  654. package/examples/js/misc/MorphBlendMesh.js +0 -265
  655. package/examples/js/misc/ProgressiveLightMap.js +0 -335
  656. package/examples/js/misc/RollerCoaster.js +0 -430
  657. package/examples/js/misc/TubePainter.js +0 -167
  658. package/examples/js/misc/Volume.js +0 -437
  659. package/examples/js/misc/VolumeSlice.js +0 -214
  660. package/examples/js/modifiers/CurveModifier.js +0 -309
  661. package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
  662. package/examples/js/modifiers/SimplifyModifier.js +0 -465
  663. package/examples/js/modifiers/TessellateModifier.js +0 -276
  664. package/examples/js/objects/GroundProjectedEnv.js +0 -181
  665. package/examples/js/objects/Lensflare.js +0 -356
  666. package/examples/js/objects/LightningStorm.js +0 -206
  667. package/examples/js/objects/MarchingCubes.js +0 -759
  668. package/examples/js/objects/Reflector.js +0 -216
  669. package/examples/js/objects/ReflectorForSSRPass.js +0 -315
  670. package/examples/js/objects/Refractor.js +0 -283
  671. package/examples/js/objects/ShadowMesh.js +0 -59
  672. package/examples/js/objects/Sky.js +0 -218
  673. package/examples/js/objects/Water.js +0 -292
  674. package/examples/js/objects/Water2.js +0 -307
  675. package/examples/js/physics/AmmoPhysics.js +0 -259
  676. package/examples/js/physics/OimoPhysics.js +0 -217
  677. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
  678. package/examples/js/postprocessing/AfterimagePass.js +0 -77
  679. package/examples/js/postprocessing/BloomPass.js +0 -135
  680. package/examples/js/postprocessing/BokehPass.js +0 -120
  681. package/examples/js/postprocessing/ClearPass.js +0 -39
  682. package/examples/js/postprocessing/CubeTexturePass.js +0 -60
  683. package/examples/js/postprocessing/DotScreenPass.js +0 -51
  684. package/examples/js/postprocessing/EffectComposer.js +0 -272
  685. package/examples/js/postprocessing/FilmPass.js +0 -52
  686. package/examples/js/postprocessing/GlitchPass.js +0 -104
  687. package/examples/js/postprocessing/HalftonePass.js +0 -75
  688. package/examples/js/postprocessing/LUTPass.js +0 -171
  689. package/examples/js/postprocessing/MaskPass.js +0 -95
  690. package/examples/js/postprocessing/OutlinePass.js +0 -598
  691. package/examples/js/postprocessing/Pass.js +0 -72
  692. package/examples/js/postprocessing/RenderPass.js +0 -70
  693. package/examples/js/postprocessing/SAOPass.js +0 -374
  694. package/examples/js/postprocessing/SMAAPass.js +0 -170
  695. package/examples/js/postprocessing/SSAARenderPass.js +0 -156
  696. package/examples/js/postprocessing/SSAOPass.js +0 -365
  697. package/examples/js/postprocessing/SSRPass.js +0 -567
  698. package/examples/js/postprocessing/SavePass.js +0 -59
  699. package/examples/js/postprocessing/ShaderPass.js +0 -64
  700. package/examples/js/postprocessing/TAARenderPass.js +0 -130
  701. package/examples/js/postprocessing/TexturePass.js +0 -49
  702. package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
  703. package/examples/js/renderers/CSS2DRenderer.js +0 -178
  704. package/examples/js/renderers/CSS3DRenderer.js +0 -237
  705. package/examples/js/renderers/Projector.js +0 -818
  706. package/examples/js/renderers/SVGRenderer.js +0 -491
  707. package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
  708. package/examples/js/shaders/AfterimageShader.js +0 -60
  709. package/examples/js/shaders/BasicShader.js +0 -27
  710. package/examples/js/shaders/BleachBypassShader.js +0 -62
  711. package/examples/js/shaders/BlendShader.js +0 -54
  712. package/examples/js/shaders/BokehShader.js +0 -156
  713. package/examples/js/shaders/BokehShader2.js +0 -419
  714. package/examples/js/shaders/BrightnessContrastShader.js +0 -58
  715. package/examples/js/shaders/ColorCorrectionShader.js +0 -52
  716. package/examples/js/shaders/ColorifyShader.js +0 -47
  717. package/examples/js/shaders/ConvolutionShader.js +0 -92
  718. package/examples/js/shaders/CopyShader.js +0 -45
  719. package/examples/js/shaders/DOFMipMapShader.js +0 -60
  720. package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
  721. package/examples/js/shaders/DigitalGlitch.js +0 -127
  722. package/examples/js/shaders/DotScreenShader.js +0 -72
  723. package/examples/js/shaders/FXAAShader.js +0 -284
  724. package/examples/js/shaders/FilmShader.js +0 -110
  725. package/examples/js/shaders/FocusShader.js +0 -95
  726. package/examples/js/shaders/FreiChenShader.js +0 -93
  727. package/examples/js/shaders/GammaCorrectionShader.js +0 -41
  728. package/examples/js/shaders/GodRaysShader.js +0 -284
  729. package/examples/js/shaders/HalftoneShader.js +0 -336
  730. package/examples/js/shaders/HorizontalBlurShader.js +0 -59
  731. package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
  732. package/examples/js/shaders/HueSaturationShader.js +0 -69
  733. package/examples/js/shaders/KaleidoShader.js +0 -60
  734. package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
  735. package/examples/js/shaders/LuminosityShader.js +0 -46
  736. package/examples/js/shaders/MMDToonShader.js +0 -96
  737. package/examples/js/shaders/MirrorShader.js +0 -56
  738. package/examples/js/shaders/NormalMapShader.js +0 -55
  739. package/examples/js/shaders/RGBShiftShader.js +0 -56
  740. package/examples/js/shaders/SAOShader.js +0 -209
  741. package/examples/js/shaders/SMAAShader.js +0 -454
  742. package/examples/js/shaders/SSAOShader.js +0 -295
  743. package/examples/js/shaders/SSRShader.js +0 -381
  744. package/examples/js/shaders/SepiaShader.js +0 -52
  745. package/examples/js/shaders/SobelOperatorShader.js +0 -88
  746. package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
  747. package/examples/js/shaders/TechnicolorShader.js +0 -43
  748. package/examples/js/shaders/ToneMapShader.js +0 -84
  749. package/examples/js/shaders/ToonShader.js +0 -335
  750. package/examples/js/shaders/TriangleBlurShader.js +0 -70
  751. package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
  752. package/examples/js/shaders/VelocityShader.js +0 -126
  753. package/examples/js/shaders/VerticalBlurShader.js +0 -59
  754. package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
  755. package/examples/js/shaders/VignetteShader.js +0 -53
  756. package/examples/js/shaders/VolumeShader.js +0 -296
  757. package/examples/js/shaders/WaterRefractionShader.js +0 -84
  758. package/examples/js/textures/FlakesTexture.js +0 -40
  759. package/examples/js/utils/BufferGeometryUtils.js +0 -1160
  760. package/examples/js/utils/CameraUtils.js +0 -71
  761. package/examples/js/utils/GPUStatsPanel.js +0 -125
  762. package/examples/js/utils/GeometryCompressionUtils.js +0 -549
  763. package/examples/js/utils/GeometryUtils.js +0 -168
  764. package/examples/js/utils/LDrawUtils.js +0 -179
  765. package/examples/js/utils/PackedPhongMaterial.js +0 -109
  766. package/examples/js/utils/SceneUtils.js +0 -214
  767. package/examples/js/utils/ShadowMapViewer.js +0 -183
  768. package/examples/js/utils/SkeletonUtils.js +0 -493
  769. package/examples/js/utils/UVsDebug.js +0 -143
  770. package/examples/js/utils/WorkerPool.js +0 -105
  771. package/examples/jsm/exporters/ColladaExporter.js +0 -713
  772. package/examples/jsm/geometries/LightningStrike.js +0 -1017
  773. package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
  774. package/examples/jsm/libs/OimoPhysics/index.js +0 -43
  775. package/examples/jsm/libs/flow.module.js +0 -4552
  776. package/examples/jsm/libs/tween.module.min.js +0 -3
  777. package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
  778. package/examples/jsm/loaders/IFCLoader.js +0 -2431
  779. package/examples/jsm/loaders/PRWMLoader.js +0 -299
  780. package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
  781. package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
  782. package/examples/jsm/node-editor/NodeEditor.js +0 -857
  783. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
  784. package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
  785. package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
  786. package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
  787. package/examples/jsm/node-editor/core/BaseNode.js +0 -96
  788. package/examples/jsm/node-editor/core/DataFile.js +0 -59
  789. package/examples/jsm/node-editor/core/FileEditor.js +0 -20
  790. package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
  791. package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
  792. package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
  793. package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
  794. package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
  795. package/examples/jsm/node-editor/examples/matcap.json +0 -1
  796. package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
  797. package/examples/jsm/node-editor/examples/rim.json +0 -1
  798. package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
  799. package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
  800. package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
  801. package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
  802. package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
  803. package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
  804. package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
  805. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
  806. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
  807. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
  808. package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
  809. package/examples/jsm/node-editor/math/DotEditor.js +0 -35
  810. package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
  811. package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
  812. package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
  813. package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
  814. package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
  815. package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
  816. package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
  817. package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
  818. package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
  819. package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
  820. package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
  821. package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
  822. package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
  823. package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
  824. package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
  825. package/examples/jsm/nodes/core/CodeNode.js +0 -50
  826. package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
  827. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
  828. package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
  829. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
  830. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
  831. package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
  832. package/examples/jsm/objects/LightningStorm.js +0 -245
  833. package/examples/jsm/physics/OimoPhysics.js +0 -231
  834. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -369
  835. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -187
  836. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -173
  837. package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
  838. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -255
  839. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
  840. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
  841. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +0 -82
  842. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
  843. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
  844. package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -38
  845. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -296
  846. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -66
  847. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -73
  848. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
  849. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
  850. package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -40
  851. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +0 -794
  852. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
  853. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -81
  854. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +0 -83
  855. package/examples/jsm/shaders/ToneMapShader.js +0 -73
  856. package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
  857. package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
  858. package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
  859. /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
  860. /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
  861. /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
  862. /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
  863. /package/examples/{js → jsm}/libs/draco/README.md +0 -0
  864. /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
  865. /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
@@ -1,4 +0,0 @@
1
- /*!
2
- * Tabler Icons 1.42.0 by tabler - https://tabler.io
3
- * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
4
- */@font-face{font-family:tabler-icons;font-style:normal;font-weight:400;src:url(fonts/tabler-icons.eot);src:url(fonts/tabler-icons.eot?#iefix) format("embedded-opentype"),url(fonts/tabler-icons.woff2) format("woff2"),url(fonts/tabler-icons.woff) format("woff"),url(fonts/tabler-icons.ttf) format("truetype"),url(fonts/tabler-icons.svg#tabler-icons) format("svg")}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:tabler-icons;src:url(fonts/tabler-icons.svg#tabler-icons) format("svg")}}.ti{font-family:tabler-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-2fa:before{content:"\eca0"}.ti-3d-cube-sphere:before{content:"\ecd7"}.ti-a-b:before{content:"\ec36"}.ti-access-point:before{content:"\ed1b"}.ti-access-point-off:before{content:"\ed1a"}.ti-accessible:before{content:"\eba9"}.ti-activity:before{content:"\ed23"}.ti-ad:before{content:"\ea02"}.ti-ad-2:before{content:"\ef1f"}.ti-adjustments:before{content:"\ea03"}.ti-adjustments-alt:before{content:"\ec37"}.ti-adjustments-horizontal:before{content:"\ec38"}.ti-aerial-lift:before{content:"\edfe"}.ti-affiliate:before{content:"\edff"}.ti-alarm:before{content:"\ea04"}.ti-alert-circle:before{content:"\ea05"}.ti-alert-octagon:before{content:"\ecc6"}.ti-alert-triangle:before{content:"\ea06"}.ti-alien:before{content:"\ebde"}.ti-align-center:before{content:"\ea07"}.ti-align-justified:before{content:"\ea08"}.ti-align-left:before{content:"\ea09"}.ti-align-right:before{content:"\ea0a"}.ti-ambulance:before{content:"\ebf5"}.ti-anchor:before{content:"\eb76"}.ti-angle:before{content:"\ef20"}.ti-antenna-bars-1:before{content:"\ecc7"}.ti-antenna-bars-2:before{content:"\ecc8"}.ti-antenna-bars-3:before{content:"\ecc9"}.ti-antenna-bars-4:before{content:"\ecca"}.ti-antenna-bars-5:before{content:"\eccb"}.ti-aperture:before{content:"\eb58"}.ti-apple:before{content:"\ef21"}.ti-apps:before{content:"\ebb6"}.ti-archive:before{content:"\ea0b"}.ti-arrow-autofit-content:before{content:"\ef31"}.ti-arrow-autofit-down:before{content:"\ef32"}.ti-arrow-autofit-height:before{content:"\ef33"}.ti-arrow-autofit-left:before{content:"\ef34"}.ti-arrow-autofit-right:before{content:"\ef35"}.ti-arrow-autofit-up:before{content:"\ef36"}.ti-arrow-autofit-width:before{content:"\ef37"}.ti-arrow-back:before{content:"\ea0c"}.ti-arrow-back-up:before{content:"\eb77"}.ti-arrow-bar-down:before{content:"\ea0d"}.ti-arrow-bar-left:before{content:"\ea0e"}.ti-arrow-bar-right:before{content:"\ea0f"}.ti-arrow-bar-to-down:before{content:"\ec88"}.ti-arrow-bar-to-left:before{content:"\ec89"}.ti-arrow-bar-to-right:before{content:"\ec8a"}.ti-arrow-bar-to-up:before{content:"\ec8b"}.ti-arrow-bar-up:before{content:"\ea10"}.ti-arrow-big-down:before{content:"\edda"}.ti-arrow-big-left:before{content:"\eddb"}.ti-arrow-big-right:before{content:"\eddc"}.ti-arrow-big-top:before{content:"\eddd"}.ti-arrow-bottom-bar:before{content:"\ed98"}.ti-arrow-bottom-circle:before{content:"\ed99"}.ti-arrow-bottom-square:before{content:"\ed9a"}.ti-arrow-bottom-tail:before{content:"\ed9b"}.ti-arrow-down:before{content:"\ea16"}.ti-arrow-down-circle:before{content:"\ea11"}.ti-arrow-down-left:before{content:"\ea13"}.ti-arrow-down-left-circle:before{content:"\ea12"}.ti-arrow-down-right:before{content:"\ea15"}.ti-arrow-down-right-circle:before{content:"\ea14"}.ti-arrow-forward:before{content:"\ea17"}.ti-arrow-forward-up:before{content:"\eb78"}.ti-arrow-left:before{content:"\ea19"}.ti-arrow-left-bar:before{content:"\ed9c"}.ti-arrow-left-circle:before{content:"\ea18"}.ti-arrow-left-square:before{content:"\ed9d"}.ti-arrow-left-tail:before{content:"\ed9e"}.ti-arrow-loop-left:before{content:"\ed9f"}.ti-arrow-loop-right:before{content:"\eda0"}.ti-arrow-narrow-down:before{content:"\ea1a"}.ti-arrow-narrow-left:before{content:"\ea1b"}.ti-arrow-narrow-right:before{content:"\ea1c"}.ti-arrow-narrow-up:before{content:"\ea1d"}.ti-arrow-ramp-left:before{content:"\ed3c"}.ti-arrow-ramp-right:before{content:"\ed3d"}.ti-arrow-right:before{content:"\ea1f"}.ti-arrow-right-bar:before{content:"\eda1"}.ti-arrow-right-circle:before{content:"\ea1e"}.ti-arrow-right-square:before{content:"\eda2"}.ti-arrow-right-tail:before{content:"\eda3"}.ti-arrow-top-bar:before{content:"\eda4"}.ti-arrow-top-circle:before{content:"\eda5"}.ti-arrow-top-square:before{content:"\eda6"}.ti-arrow-top-tail:before{content:"\eda7"}.ti-arrow-up:before{content:"\ea25"}.ti-arrow-up-circle:before{content:"\ea20"}.ti-arrow-up-left:before{content:"\ea22"}.ti-arrow-up-left-circle:before{content:"\ea21"}.ti-arrow-up-right:before{content:"\ea24"}.ti-arrow-up-right-circle:before{content:"\ea23"}.ti-arrow-wave-left-down:before{content:"\eda8"}.ti-arrow-wave-left-up:before{content:"\eda9"}.ti-arrow-wave-right-down:before{content:"\edaa"}.ti-arrow-wave-right-up:before{content:"\edab"}.ti-arrows-diagonal:before{content:"\ea27"}.ti-arrows-diagonal-2:before{content:"\ea26"}.ti-arrows-diagonal-minimize:before{content:"\ef39"}.ti-arrows-diagonal-minimize-2:before{content:"\ef38"}.ti-arrows-double-ne-sw:before{content:"\edde"}.ti-arrows-double-nw-se:before{content:"\eddf"}.ti-arrows-double-se-nw:before{content:"\ede0"}.ti-arrows-double-sw-ne:before{content:"\ede1"}.ti-arrows-down:before{content:"\edad"}.ti-arrows-down-up:before{content:"\edac"}.ti-arrows-horizontal:before{content:"\eb59"}.ti-arrows-join:before{content:"\edaf"}.ti-arrows-join-2:before{content:"\edae"}.ti-arrows-left:before{content:"\edb1"}.ti-arrows-left-down:before{content:"\ee00"}.ti-arrows-left-right:before{content:"\edb0"}.ti-arrows-maximize:before{content:"\ea28"}.ti-arrows-minimize:before{content:"\ea29"}.ti-arrows-right:before{content:"\edb3"}.ti-arrows-right-down:before{content:"\ee01"}.ti-arrows-right-left:before{content:"\edb2"}.ti-arrows-sort:before{content:"\eb5a"}.ti-arrows-split:before{content:"\edb5"}.ti-arrows-split-2:before{content:"\edb4"}.ti-arrows-up:before{content:"\edb7"}.ti-arrows-up-down:before{content:"\edb6"}.ti-arrows-up-left:before{content:"\ee02"}.ti-arrows-up-right:before{content:"\ee03"}.ti-arrows-vertical:before{content:"\eb5b"}.ti-artboard:before{content:"\ea2a"}.ti-aspect-ratio:before{content:"\ed30"}.ti-at:before{content:"\ea2b"}.ti-atom:before{content:"\eb79"}.ti-atom-2:before{content:"\ebdf"}.ti-award:before{content:"\ea2c"}.ti-backhoe:before{content:"\ed86"}.ti-backspace:before{content:"\ea2d"}.ti-ball-american-football:before{content:"\ee04"}.ti-ball-basketball:before{content:"\ec28"}.ti-ball-bowling:before{content:"\ec29"}.ti-ball-football:before{content:"\ee06"}.ti-ball-football-off:before{content:"\ee05"}.ti-ball-tennis:before{content:"\ec2a"}.ti-ball-volleyball:before{content:"\ec2b"}.ti-ballon:before{content:"\ef3a"}.ti-ban:before{content:"\ea2e"}.ti-bandage:before{content:"\eb7a"}.ti-barcode:before{content:"\ebc6"}.ti-basket:before{content:"\ebe1"}.ti-battery:before{content:"\ea34"}.ti-battery-1:before{content:"\ea2f"}.ti-battery-2:before{content:"\ea30"}.ti-battery-3:before{content:"\ea31"}.ti-battery-4:before{content:"\ea32"}.ti-battery-automotive:before{content:"\ee07"}.ti-battery-charging:before{content:"\ea33"}.ti-battery-charging-2:before{content:"\ef3b"}.ti-battery-eco:before{content:"\ef3c"}.ti-battery-off:before{content:"\ed1c"}.ti-beach:before{content:"\ef3d"}.ti-bed:before{content:"\eb5c"}.ti-bell:before{content:"\ea35"}.ti-bell-minus:before{content:"\ede2"}.ti-bell-off:before{content:"\ece9"}.ti-bell-plus:before{content:"\ede3"}.ti-bell-ringing:before{content:"\ed07"}.ti-bell-ringing-2:before{content:"\ede4"}.ti-bell-x:before{content:"\ede5"}.ti-bike:before{content:"\ea36"}.ti-binary:before{content:"\ee08"}.ti-biohazard:before{content:"\ecb8"}.ti-blockquote:before{content:"\ee09"}.ti-bluetooth:before{content:"\ea37"}.ti-bluetooth-connected:before{content:"\ecea"}.ti-bluetooth-off:before{content:"\eceb"}.ti-bold:before{content:"\eb7b"}.ti-bolt:before{content:"\ea38"}.ti-bolt-off:before{content:"\ecec"}.ti-bone:before{content:"\edb8"}.ti-book:before{content:"\ea39"}.ti-bookmark:before{content:"\ea3a"}.ti-bookmark-off:before{content:"\eced"}.ti-bookmarks:before{content:"\ed08"}.ti-border-all:before{content:"\ea3b"}.ti-border-bottom:before{content:"\ea3c"}.ti-border-horizontal:before{content:"\ea3d"}.ti-border-inner:before{content:"\ea3e"}.ti-border-left:before{content:"\ea3f"}.ti-border-none:before{content:"\ea40"}.ti-border-outer:before{content:"\ea41"}.ti-border-radius:before{content:"\eb7c"}.ti-border-right:before{content:"\ea42"}.ti-border-style:before{content:"\ee0a"}.ti-border-style-2:before{content:"\ef22"}.ti-border-top:before{content:"\ea43"}.ti-border-vertical:before{content:"\ea44"}.ti-bottle:before{content:"\ef0b"}.ti-box:before{content:"\ea45"}.ti-box-margin:before{content:"\ee0b"}.ti-box-model:before{content:"\ee0c"}.ti-box-model-2:before{content:"\ef23"}.ti-box-multiple:before{content:"\ee17"}.ti-box-multiple-0:before{content:"\ee0d"}.ti-box-multiple-1:before{content:"\ee0e"}.ti-box-multiple-2:before{content:"\ee0f"}.ti-box-multiple-3:before{content:"\ee10"}.ti-box-multiple-4:before{content:"\ee11"}.ti-box-multiple-5:before{content:"\ee12"}.ti-box-multiple-6:before{content:"\ee13"}.ti-box-multiple-7:before{content:"\ee14"}.ti-box-multiple-8:before{content:"\ee15"}.ti-box-multiple-9:before{content:"\ee16"}.ti-box-padding:before{content:"\ee18"}.ti-braces:before{content:"\ebcc"}.ti-brackets:before{content:"\ebcd"}.ti-brand-airbnb:before{content:"\ed68"}.ti-brand-android:before{content:"\ec16"}.ti-brand-apple:before{content:"\ec17"}.ti-brand-apple-arcade:before{content:"\ed69"}.ti-brand-appstore:before{content:"\ed24"}.ti-brand-asana:before{content:"\edc5"}.ti-brand-behance:before{content:"\ec6e"}.ti-brand-bing:before{content:"\edc6"}.ti-brand-bitbucket:before{content:"\edc7"}.ti-brand-booking:before{content:"\edc8"}.ti-brand-bootstrap:before{content:"\ef3e"}.ti-brand-chrome:before{content:"\ec18"}.ti-brand-codepen:before{content:"\ec6f"}.ti-brand-codesandbox:before{content:"\ed6a"}.ti-brand-css3:before{content:"\ed6b"}.ti-brand-deviantart:before{content:"\ecfb"}.ti-brand-discord:before{content:"\ece3"}.ti-brand-disqus:before{content:"\edc9"}.ti-brand-docker:before{content:"\edca"}.ti-brand-dribbble:before{content:"\ec19"}.ti-brand-edge:before{content:"\ecfc"}.ti-brand-facebook:before{content:"\ec1a"}.ti-brand-figma:before{content:"\ec93"}.ti-brand-firefox:before{content:"\ecfd"}.ti-brand-flickr:before{content:"\ecfe"}.ti-brand-foursquare:before{content:"\ecff"}.ti-brand-framer:before{content:"\ec1b"}.ti-brand-github:before{content:"\ec1c"}.ti-brand-gitlab:before{content:"\ec1d"}.ti-brand-google:before{content:"\ec1f"}.ti-brand-google-analytics:before{content:"\edcb"}.ti-brand-google-drive:before{content:"\ec1e"}.ti-brand-google-play:before{content:"\ed25"}.ti-brand-gravatar:before{content:"\edcc"}.ti-brand-hipchat:before{content:"\edcd"}.ti-brand-html5:before{content:"\ed6c"}.ti-brand-instagram:before{content:"\ec20"}.ti-brand-javascript:before{content:"\ef0c"}.ti-brand-kickstarter:before{content:"\edce"}.ti-brand-kotlin:before{content:"\ed6d"}.ti-brand-linkedin:before{content:"\ec8c"}.ti-brand-medium:before{content:"\ec70"}.ti-brand-messenger:before{content:"\ec71"}.ti-brand-netflix:before{content:"\edcf"}.ti-brand-open-source:before{content:"\edd0"}.ti-brand-opera:before{content:"\ec21"}.ti-brand-pagekit:before{content:"\edd1"}.ti-brand-patreon:before{content:"\edd2"}.ti-brand-paypal:before{content:"\ec22"}.ti-brand-pinterest:before{content:"\ec8d"}.ti-brand-pocket:before{content:"\ed00"}.ti-brand-producthunt:before{content:"\edd3"}.ti-brand-python:before{content:"\ed01"}.ti-brand-reddit:before{content:"\ec8e"}.ti-brand-safari:before{content:"\ec23"}.ti-brand-sass:before{content:"\edd4"}.ti-brand-sentry:before{content:"\edd5"}.ti-brand-shazam:before{content:"\edd6"}.ti-brand-sketch:before{content:"\ec24"}.ti-brand-skype:before{content:"\ed02"}.ti-brand-slack:before{content:"\ec72"}.ti-brand-snapchat:before{content:"\ec25"}.ti-brand-soundcloud:before{content:"\ed6e"}.ti-brand-spotify:before{content:"\ed03"}.ti-brand-steam:before{content:"\ed6f"}.ti-brand-stripe:before{content:"\edd7"}.ti-brand-tabler:before{content:"\ec8f"}.ti-brand-tailwind:before{content:"\eca1"}.ti-brand-telegram:before{content:"\ec26"}.ti-brand-tidal:before{content:"\ed70"}.ti-brand-tiktok:before{content:"\ec73"}.ti-brand-tinder:before{content:"\ed71"}.ti-brand-tumblr:before{content:"\ed04"}.ti-brand-twitch:before{content:"\ed05"}.ti-brand-twitter:before{content:"\ec27"}.ti-brand-unsplash:before{content:"\edd8"}.ti-brand-vercel:before{content:"\ef24"}.ti-brand-vimeo:before{content:"\ed06"}.ti-brand-vk:before{content:"\ed72"}.ti-brand-whatsapp:before{content:"\ec74"}.ti-brand-windows:before{content:"\ecd8"}.ti-brand-yahoo:before{content:"\ed73"}.ti-brand-ycombinator:before{content:"\edd9"}.ti-brand-youtube:before{content:"\ec90"}.ti-briefcase:before{content:"\ea46"}.ti-brightness:before{content:"\eb7f"}.ti-brightness-2:before{content:"\ee19"}.ti-brightness-down:before{content:"\eb7d"}.ti-brightness-half:before{content:"\ee1a"}.ti-brightness-up:before{content:"\eb7e"}.ti-browser:before{content:"\ebb7"}.ti-brush:before{content:"\ebb8"}.ti-bucket:before{content:"\ea47"}.ti-bug:before{content:"\ea48"}.ti-building:before{content:"\ea4f"}.ti-building-arch:before{content:"\ea49"}.ti-building-bank:before{content:"\ebe2"}.ti-building-bridge:before{content:"\ea4b"}.ti-building-bridge-2:before{content:"\ea4a"}.ti-building-carousel:before{content:"\ed87"}.ti-building-castle:before{content:"\ed88"}.ti-building-church:before{content:"\ea4c"}.ti-building-community:before{content:"\ebf6"}.ti-building-cottage:before{content:"\ee1b"}.ti-building-factory:before{content:"\ee1c"}.ti-building-fortress:before{content:"\ed89"}.ti-building-hospital:before{content:"\ea4d"}.ti-building-lighthouse:before{content:"\ed8a"}.ti-building-monument:before{content:"\ed26"}.ti-building-pavilon:before{content:"\ebf7"}.ti-building-skyscraper:before{content:"\ec39"}.ti-building-store:before{content:"\ea4e"}.ti-building-warehouse:before{content:"\ebe3"}.ti-bulb:before{content:"\ea51"}.ti-bulb-off:before{content:"\ea50"}.ti-bulldozer:before{content:"\ee1d"}.ti-bus:before{content:"\ebe4"}.ti-businessplan:before{content:"\ee1e"}.ti-calculator:before{content:"\eb80"}.ti-calendar:before{content:"\ea53"}.ti-calendar-event:before{content:"\ea52"}.ti-calendar-minus:before{content:"\ebb9"}.ti-calendar-off:before{content:"\ee1f"}.ti-calendar-plus:before{content:"\ebba"}.ti-calendar-stats:before{content:"\ee20"}.ti-calendar-time:before{content:"\ee21"}.ti-camera:before{content:"\ea54"}.ti-camera-minus:before{content:"\ec3a"}.ti-camera-off:before{content:"\ecee"}.ti-camera-plus:before{content:"\ec3b"}.ti-camera-rotate:before{content:"\ee22"}.ti-camera-selfie:before{content:"\ee23"}.ti-candy:before{content:"\ef0d"}.ti-capture:before{content:"\ec3c"}.ti-car:before{content:"\ebbb"}.ti-car-crane:before{content:"\ef25"}.ti-caravan:before{content:"\ec7c"}.ti-cardboards:before{content:"\ed74"}.ti-caret-down:before{content:"\eb5d"}.ti-caret-left:before{content:"\eb5e"}.ti-caret-right:before{content:"\eb5f"}.ti-caret-up:before{content:"\eb60"}.ti-cash:before{content:"\ea55"}.ti-cash-banknote:before{content:"\ee25"}.ti-cash-banknote-off:before{content:"\ee24"}.ti-cast:before{content:"\ea56"}.ti-ce:before{content:"\ed75"}.ti-certificate:before{content:"\ed76"}.ti-charging-pile:before{content:"\ee26"}.ti-chart-arcs:before{content:"\ee28"}.ti-chart-arcs-3:before{content:"\ee27"}.ti-chart-area:before{content:"\ea58"}.ti-chart-area-line:before{content:"\ea57"}.ti-chart-arrows:before{content:"\ee2a"}.ti-chart-arrows-vertical:before{content:"\ee29"}.ti-chart-bar:before{content:"\ea59"}.ti-chart-bubble:before{content:"\ec75"}.ti-chart-candle:before{content:"\ea5a"}.ti-chart-circles:before{content:"\ee2b"}.ti-chart-donut:before{content:"\ea5b"}.ti-chart-donut-2:before{content:"\ee2c"}.ti-chart-donut-3:before{content:"\ee2d"}.ti-chart-donut-4:before{content:"\ee2e"}.ti-chart-dots:before{content:"\ee2f"}.ti-chart-infographic:before{content:"\ee30"}.ti-chart-line:before{content:"\ea5c"}.ti-chart-pie:before{content:"\ea5d"}.ti-chart-pie-2:before{content:"\ee31"}.ti-chart-pie-3:before{content:"\ee32"}.ti-chart-pie-4:before{content:"\ee33"}.ti-chart-radar:before{content:"\ed77"}.ti-check:before{content:"\ea5e"}.ti-checkbox:before{content:"\eba6"}.ti-checks:before{content:"\ebaa"}.ti-cheese:before{content:"\ef26"}.ti-chevron-down:before{content:"\ea5f"}.ti-chevron-down-left:before{content:"\ed09"}.ti-chevron-down-right:before{content:"\ed0a"}.ti-chevron-left:before{content:"\ea60"}.ti-chevron-right:before{content:"\ea61"}.ti-chevron-up:before{content:"\ea62"}.ti-chevron-up-left:before{content:"\ed0b"}.ti-chevron-up-right:before{content:"\ed0c"}.ti-chevrons-down:before{content:"\ea63"}.ti-chevrons-down-left:before{content:"\ed0d"}.ti-chevrons-down-right:before{content:"\ed0e"}.ti-chevrons-left:before{content:"\ea64"}.ti-chevrons-right:before{content:"\ea65"}.ti-chevrons-up:before{content:"\ea66"}.ti-chevrons-up-left:before{content:"\ed0f"}.ti-chevrons-up-right:before{content:"\ed10"}.ti-christmas-tree:before{content:"\ed78"}.ti-circle:before{content:"\ea6b"}.ti-circle-0:before{content:"\ee34"}.ti-circle-1:before{content:"\ee35"}.ti-circle-2:before{content:"\ee36"}.ti-circle-3:before{content:"\ee37"}.ti-circle-4:before{content:"\ee38"}.ti-circle-5:before{content:"\ee39"}.ti-circle-6:before{content:"\ee3a"}.ti-circle-7:before{content:"\ee3b"}.ti-circle-8:before{content:"\ee3c"}.ti-circle-9:before{content:"\ee3d"}.ti-circle-check:before{content:"\ea67"}.ti-circle-dashed:before{content:"\ed27"}.ti-circle-dotted:before{content:"\ed28"}.ti-circle-half:before{content:"\ee3f"}.ti-circle-half-vertical:before{content:"\ee3e"}.ti-circle-minus:before{content:"\ea68"}.ti-circle-off:before{content:"\ee40"}.ti-circle-plus:before{content:"\ea69"}.ti-circle-square:before{content:"\ece4"}.ti-circle-x:before{content:"\ea6a"}.ti-circles:before{content:"\ece5"}.ti-clear-all:before{content:"\ee41"}.ti-clear-formatting:before{content:"\ebe5"}.ti-click:before{content:"\ebbc"}.ti-clipboard:before{content:"\ea6f"}.ti-clipboard-check:before{content:"\ea6c"}.ti-clipboard-list:before{content:"\ea6d"}.ti-clipboard-x:before{content:"\ea6e"}.ti-clock:before{content:"\ea70"}.ti-cloud:before{content:"\ea76"}.ti-cloud-download:before{content:"\ea71"}.ti-cloud-fog:before{content:"\ecd9"}.ti-cloud-off:before{content:"\ed3e"}.ti-cloud-rain:before{content:"\ea72"}.ti-cloud-snow:before{content:"\ea73"}.ti-cloud-storm:before{content:"\ea74"}.ti-cloud-upload:before{content:"\ea75"}.ti-code:before{content:"\ea77"}.ti-code-minus:before{content:"\ee42"}.ti-code-plus:before{content:"\ee43"}.ti-coffee:before{content:"\ef0e"}.ti-coin:before{content:"\eb82"}.ti-color-picker:before{content:"\ebe6"}.ti-color-swatch:before{content:"\eb61"}.ti-column-insert-left:before{content:"\ee44"}.ti-column-insert-right:before{content:"\ee45"}.ti-columns:before{content:"\eb83"}.ti-comet:before{content:"\ec76"}.ti-command:before{content:"\ea78"}.ti-compass:before{content:"\ea79"}.ti-confetti:before{content:"\ee46"}.ti-container:before{content:"\ee47"}.ti-contrast:before{content:"\ec4e"}.ti-cookie:before{content:"\ef0f"}.ti-copy:before{content:"\ea7a"}.ti-copyleft:before{content:"\ec3d"}.ti-copyright:before{content:"\ea7b"}.ti-corner-down-left:before{content:"\ea7c"}.ti-corner-down-left-double:before{content:"\ee48"}.ti-corner-down-right:before{content:"\ea7d"}.ti-corner-down-right-double:before{content:"\ee49"}.ti-corner-left-down:before{content:"\ea7e"}.ti-corner-left-down-double:before{content:"\ee4a"}.ti-corner-left-up:before{content:"\ea7f"}.ti-corner-left-up-double:before{content:"\ee4b"}.ti-corner-right-down:before{content:"\ea80"}.ti-corner-right-down-double:before{content:"\ee4c"}.ti-corner-right-up:before{content:"\ea81"}.ti-corner-right-up-double:before{content:"\ee4d"}.ti-corner-up-left:before{content:"\ea82"}.ti-corner-up-left-double:before{content:"\ee4e"}.ti-corner-up-right:before{content:"\ea83"}.ti-corner-up-right-double:before{content:"\ee4f"}.ti-crane:before{content:"\ef27"}.ti-credit-card:before{content:"\ea84"}.ti-credit-card-off:before{content:"\ed11"}.ti-crop:before{content:"\ea85"}.ti-crosshair:before{content:"\ec3e"}.ti-crown:before{content:"\ed12"}.ti-crown-off:before{content:"\ee50"}.ti-cup:before{content:"\ef28"}.ti-curly-loop:before{content:"\ecda"}.ti-currency-bahraini:before{content:"\ee51"}.ti-currency-bath:before{content:"\ee52"}.ti-currency-bitcoin:before{content:"\ebab"}.ti-currency-cent:before{content:"\ee53"}.ti-currency-dinar:before{content:"\ee54"}.ti-currency-dirham:before{content:"\ee55"}.ti-currency-dollar:before{content:"\eb84"}.ti-currency-dollar-australian:before{content:"\ee56"}.ti-currency-dollar-canadian:before{content:"\ee57"}.ti-currency-dollar-singapore:before{content:"\ee58"}.ti-currency-ethereum:before{content:"\ee59"}.ti-currency-euro:before{content:"\eb85"}.ti-currency-forint:before{content:"\ee5a"}.ti-currency-frank:before{content:"\ee5b"}.ti-currency-krone-czech:before{content:"\ee5c"}.ti-currency-krone-danish:before{content:"\ee5d"}.ti-currency-krone-swedish:before{content:"\ee5e"}.ti-currency-leu:before{content:"\ee5f"}.ti-currency-lira:before{content:"\ee60"}.ti-currency-litecoin:before{content:"\ee61"}.ti-currency-naira:before{content:"\ee62"}.ti-currency-pound:before{content:"\ebac"}.ti-currency-real:before{content:"\ee63"}.ti-currency-renminbi:before{content:"\ee64"}.ti-currency-ripple:before{content:"\ee65"}.ti-currency-riyal:before{content:"\ee66"}.ti-currency-rubel:before{content:"\ee67"}.ti-currency-rupee:before{content:"\ebad"}.ti-currency-shekel:before{content:"\ee68"}.ti-currency-taka:before{content:"\ee69"}.ti-currency-tugrik:before{content:"\ee6a"}.ti-currency-won:before{content:"\ee6b"}.ti-currency-yen:before{content:"\ebae"}.ti-currency-zloty:before{content:"\ee6c"}.ti-current-location:before{content:"\ecef"}.ti-cursor-text:before{content:"\ee6d"}.ti-cut:before{content:"\ea86"}.ti-dashboard:before{content:"\ea87"}.ti-database:before{content:"\ea88"}.ti-database-export:before{content:"\ee6e"}.ti-database-import:before{content:"\ee6f"}.ti-database-off:before{content:"\ee70"}.ti-details:before{content:"\ee71"}.ti-device-analytics:before{content:"\ee72"}.ti-device-audio-tape:before{content:"\ee73"}.ti-device-cctv:before{content:"\ee74"}.ti-device-computer-camera:before{content:"\ee76"}.ti-device-computer-camera-off:before{content:"\ee75"}.ti-device-desktop:before{content:"\ea89"}.ti-device-desktop-analytics:before{content:"\ee77"}.ti-device-desktop-off:before{content:"\ee78"}.ti-device-floppy:before{content:"\eb62"}.ti-device-gamepad:before{content:"\eb63"}.ti-device-laptop:before{content:"\eb64"}.ti-device-mobile:before{content:"\ea8a"}.ti-device-mobile-message:before{content:"\ee79"}.ti-device-mobile-rotated:before{content:"\ecdb"}.ti-device-mobile-vibration:before{content:"\eb86"}.ti-device-speaker:before{content:"\ea8b"}.ti-device-tablet:before{content:"\ea8c"}.ti-device-tv:before{content:"\ea8d"}.ti-device-watch:before{content:"\ebf9"}.ti-devices:before{content:"\eb87"}.ti-devices-2:before{content:"\ed29"}.ti-devices-pc:before{content:"\ee7a"}.ti-diamond:before{content:"\eb65"}.ti-dice:before{content:"\eb66"}.ti-dimensions:before{content:"\ee7b"}.ti-direction:before{content:"\ebfb"}.ti-direction-horizontal:before{content:"\ebfa"}.ti-directions:before{content:"\ea8e"}.ti-disabled:before{content:"\ea8f"}.ti-disabled-2:before{content:"\ebaf"}.ti-disc:before{content:"\ea90"}.ti-discount:before{content:"\ebbd"}.ti-discount-2:before{content:"\ee7c"}.ti-divide:before{content:"\ed5c"}.ti-dna:before{content:"\ee7d"}.ti-dog-bowl:before{content:"\ef29"}.ti-dots:before{content:"\ea95"}.ti-dots-circle-horizontal:before{content:"\ea91"}.ti-dots-diagonal:before{content:"\ea93"}.ti-dots-diagonal-2:before{content:"\ea92"}.ti-dots-vertical:before{content:"\ea94"}.ti-download:before{content:"\ea96"}.ti-drag-drop:before{content:"\eb89"}.ti-drag-drop-2:before{content:"\eb88"}.ti-drone:before{content:"\ed79"}.ti-drone-off:before{content:"\ee7e"}.ti-droplet:before{content:"\ea97"}.ti-droplet-filled:before{content:"\ee80"}.ti-droplet-filled-2:before{content:"\ee7f"}.ti-droplet-half:before{content:"\ee82"}.ti-droplet-half-2:before{content:"\ee81"}.ti-droplet-off:before{content:"\ee83"}.ti-ear:before{content:"\ebce"}.ti-ear-off:before{content:"\ee84"}.ti-edit:before{content:"\ea98"}.ti-edit-circle:before{content:"\ee85"}.ti-egg:before{content:"\eb8a"}.ti-emphasis:before{content:"\ebcf"}.ti-equal:before{content:"\ee87"}.ti-equal-not:before{content:"\ee86"}.ti-eraser:before{content:"\eb8b"}.ti-exchange:before{content:"\ebe7"}.ti-exposure:before{content:"\eb8c"}.ti-external-link:before{content:"\ea99"}.ti-eye:before{content:"\ea9a"}.ti-eye-check:before{content:"\ee88"}.ti-eye-off:before{content:"\ecf0"}.ti-eyeglass:before{content:"\ee8a"}.ti-eyeglass-2:before{content:"\ee89"}.ti-face-id:before{content:"\ea9b"}.ti-fall:before{content:"\ecb9"}.ti-feather:before{content:"\ee8b"}.ti-fence:before{content:"\ef2a"}.ti-file:before{content:"\eaa4"}.ti-file-alert:before{content:"\ede6"}.ti-file-analytics:before{content:"\ede7"}.ti-file-certificate:before{content:"\ed4d"}.ti-file-check:before{content:"\ea9c"}.ti-file-code:before{content:"\ebd0"}.ti-file-code-2:before{content:"\ede8"}.ti-file-diff:before{content:"\ecf1"}.ti-file-dislike:before{content:"\ed2a"}.ti-file-download:before{content:"\ea9d"}.ti-file-export:before{content:"\ede9"}.ti-file-horizontal:before{content:"\ebb0"}.ti-file-import:before{content:"\edea"}.ti-file-info:before{content:"\edec"}.ti-file-invoice:before{content:"\eb67"}.ti-file-like:before{content:"\ed2b"}.ti-file-minus:before{content:"\ea9e"}.ti-file-music:before{content:"\ea9f"}.ti-file-off:before{content:"\ecf2"}.ti-file-phone:before{content:"\ecdc"}.ti-file-plus:before{content:"\eaa0"}.ti-file-report:before{content:"\eded"}.ti-file-search:before{content:"\ed5d"}.ti-file-shredder:before{content:"\eaa1"}.ti-file-symlink:before{content:"\ed53"}.ti-file-text:before{content:"\eaa2"}.ti-file-upload:before{content:"\ec91"}.ti-file-x:before{content:"\eaa3"}.ti-file-zip:before{content:"\ed4e"}.ti-files:before{content:"\edef"}.ti-files-off:before{content:"\edee"}.ti-filter:before{content:"\eaa5"}.ti-filter-off:before{content:"\ed2c"}.ti-fingerprint:before{content:"\ebd1"}.ti-firetruck:before{content:"\ebe8"}.ti-fish:before{content:"\ef2b"}.ti-flag:before{content:"\eaa6"}.ti-flag-2:before{content:"\ee8c"}.ti-flag-3:before{content:"\ee8d"}.ti-flame:before{content:"\ec2c"}.ti-flare:before{content:"\ee8e"}.ti-flask:before{content:"\ebd2"}.ti-flip-horizontal:before{content:"\eaa7"}.ti-flip-vertical:before{content:"\eaa8"}.ti-float-center:before{content:"\ebb1"}.ti-float-left:before{content:"\ebb2"}.ti-float-none:before{content:"\ed13"}.ti-float-right:before{content:"\ebb3"}.ti-focus:before{content:"\eb8d"}.ti-focus-2:before{content:"\ebd3"}.ti-fold:before{content:"\ed56"}.ti-fold-down:before{content:"\ed54"}.ti-fold-up:before{content:"\ed55"}.ti-folder:before{content:"\eaad"}.ti-folder-minus:before{content:"\eaaa"}.ti-folder-off:before{content:"\ed14"}.ti-folder-plus:before{content:"\eaab"}.ti-folder-x:before{content:"\eaac"}.ti-folders:before{content:"\eaae"}.ti-forbid:before{content:"\ebd5"}.ti-forbid-2:before{content:"\ebd4"}.ti-forklift:before{content:"\ebe9"}.ti-forms:before{content:"\ee8f"}.ti-frame:before{content:"\eaaf"}.ti-friends:before{content:"\eab0"}.ti-gas-station:before{content:"\ec7d"}.ti-gauge:before{content:"\eab1"}.ti-geometry:before{content:"\ee90"}.ti-ghost:before{content:"\eb8e"}.ti-gift:before{content:"\eb68"}.ti-git-branch:before{content:"\eab2"}.ti-git-commit:before{content:"\eab3"}.ti-git-compare:before{content:"\eab4"}.ti-git-fork:before{content:"\eb8f"}.ti-git-merge:before{content:"\eab5"}.ti-git-pull-request:before{content:"\eab6"}.ti-glass:before{content:"\eab8"}.ti-glass-full:before{content:"\eab7"}.ti-glass-off:before{content:"\ee91"}.ti-globe:before{content:"\eab9"}.ti-golf:before{content:"\ed8c"}.ti-gps:before{content:"\ed7a"}.ti-grain:before{content:"\ee92"}.ti-grid-dots:before{content:"\eaba"}.ti-grip-horizontal:before{content:"\ec00"}.ti-grip-vertical:before{content:"\ec01"}.ti-growth:before{content:"\ee93"}.ti-h-1:before{content:"\ec94"}.ti-h-2:before{content:"\ec95"}.ti-h-3:before{content:"\ec96"}.ti-h-4:before{content:"\ec97"}.ti-h-5:before{content:"\ec98"}.ti-h-6:before{content:"\ec99"}.ti-hand-finger:before{content:"\ee94"}.ti-hand-little-finger:before{content:"\ee95"}.ti-hand-middle-finger:before{content:"\ec2d"}.ti-hand-off:before{content:"\ed15"}.ti-hand-ring-finger:before{content:"\ee96"}.ti-hand-rock:before{content:"\ee97"}.ti-hand-stop:before{content:"\ec2e"}.ti-hand-three-fingers:before{content:"\ee98"}.ti-hand-two-fingers:before{content:"\ee99"}.ti-hanger:before{content:"\ee9a"}.ti-hash:before{content:"\eabc"}.ti-heading:before{content:"\ee9b"}.ti-headphones:before{content:"\eabd"}.ti-headphones-off:before{content:"\ed1d"}.ti-headset:before{content:"\eb90"}.ti-heart:before{content:"\eabe"}.ti-heart-broken:before{content:"\ecba"}.ti-helicopter:before{content:"\ed8e"}.ti-helicopter-landing:before{content:"\ed8d"}.ti-help:before{content:"\eabf"}.ti-hexagon:before{content:"\ec02"}.ti-hexagon-off:before{content:"\ee9c"}.ti-hierarchy:before{content:"\ee9e"}.ti-hierarchy-2:before{content:"\ee9d"}.ti-highlight:before{content:"\ef3f"}.ti-history:before{content:"\ebea"}.ti-home:before{content:"\eac1"}.ti-home-2:before{content:"\eac0"}.ti-ice-cream:before{content:"\eac2"}.ti-ice-cream-2:before{content:"\ee9f"}.ti-id:before{content:"\eac3"}.ti-inbox:before{content:"\eac4"}.ti-indent-decrease:before{content:"\eb91"}.ti-indent-increase:before{content:"\eb92"}.ti-infinity:before{content:"\eb69"}.ti-info-circle:before{content:"\eac5"}.ti-info-square:before{content:"\eac6"}.ti-italic:before{content:"\eb93"}.ti-jump-rope:before{content:"\ed8f"}.ti-karate:before{content:"\ed32"}.ti-key:before{content:"\eac7"}.ti-keyboard:before{content:"\ebd6"}.ti-keyboard-hide:before{content:"\ec7e"}.ti-keyboard-off:before{content:"\eea0"}.ti-keyboard-show:before{content:"\ec7f"}.ti-language:before{content:"\ebbe"}.ti-layers-difference:before{content:"\eac8"}.ti-layers-intersect:before{content:"\eac9"}.ti-layers-linked:before{content:"\eea1"}.ti-layers-subtract:before{content:"\eaca"}.ti-layers-union:before{content:"\eacb"}.ti-layout:before{content:"\eadb"}.ti-layout-2:before{content:"\eacc"}.ti-layout-align-bottom:before{content:"\eacd"}.ti-layout-align-center:before{content:"\eace"}.ti-layout-align-left:before{content:"\eacf"}.ti-layout-align-middle:before{content:"\ead0"}.ti-layout-align-right:before{content:"\ead1"}.ti-layout-align-top:before{content:"\ead2"}.ti-layout-bottombar:before{content:"\ead3"}.ti-layout-cards:before{content:"\ec13"}.ti-layout-columns:before{content:"\ead4"}.ti-layout-distribute-horizontal:before{content:"\ead5"}.ti-layout-distribute-vertical:before{content:"\ead6"}.ti-layout-grid:before{content:"\edba"}.ti-layout-grid-add:before{content:"\edb9"}.ti-layout-kanban:before{content:"\ec3f"}.ti-layout-list:before{content:"\ec14"}.ti-layout-navbar:before{content:"\ead7"}.ti-layout-rows:before{content:"\ead8"}.ti-layout-sidebar:before{content:"\eada"}.ti-layout-sidebar-right:before{content:"\ead9"}.ti-leaf:before{content:"\ed4f"}.ti-lego:before{content:"\eadc"}.ti-lemon:before{content:"\ef10"}.ti-letter-a:before{content:"\ec50"}.ti-letter-b:before{content:"\ec51"}.ti-letter-c:before{content:"\ec52"}.ti-letter-case:before{content:"\eea5"}.ti-letter-case-lower:before{content:"\eea2"}.ti-letter-case-toggle:before{content:"\eea3"}.ti-letter-case-upper:before{content:"\eea4"}.ti-letter-d:before{content:"\ec53"}.ti-letter-e:before{content:"\ec54"}.ti-letter-f:before{content:"\ec55"}.ti-letter-g:before{content:"\ec56"}.ti-letter-h:before{content:"\ec57"}.ti-letter-i:before{content:"\ec58"}.ti-letter-j:before{content:"\ec59"}.ti-letter-k:before{content:"\ec5a"}.ti-letter-l:before{content:"\ec5b"}.ti-letter-m:before{content:"\ec5c"}.ti-letter-n:before{content:"\ec5d"}.ti-letter-o:before{content:"\ec5e"}.ti-letter-p:before{content:"\ec5f"}.ti-letter-q:before{content:"\ec60"}.ti-letter-r:before{content:"\ec61"}.ti-letter-s:before{content:"\ec62"}.ti-letter-spacing:before{content:"\eea6"}.ti-letter-t:before{content:"\ec63"}.ti-letter-u:before{content:"\ec64"}.ti-letter-v:before{content:"\ec65"}.ti-letter-w:before{content:"\ec66"}.ti-letter-x:before{content:"\ec67"}.ti-letter-y:before{content:"\ec68"}.ti-letter-z:before{content:"\ec69"}.ti-letters-case:before{content:"\ec6a"}.ti-license:before{content:"\ebc0"}.ti-lifebuoy:before{content:"\eadd"}.ti-line:before{content:"\ec40"}.ti-line-dashed:before{content:"\eea7"}.ti-line-dotted:before{content:"\eea8"}.ti-line-height:before{content:"\eb94"}.ti-link:before{content:"\eade"}.ti-list:before{content:"\eb6b"}.ti-list-check:before{content:"\eb6a"}.ti-list-details:before{content:"\ef40"}.ti-list-numbers:before{content:"\ef11"}.ti-list-search:before{content:"\eea9"}.ti-live-photo:before{content:"\eadf"}.ti-live-view:before{content:"\ec6b"}.ti-loader:before{content:"\eca3"}.ti-loader-quarter:before{content:"\eca2"}.ti-location:before{content:"\eae0"}.ti-lock:before{content:"\eae2"}.ti-lock-access:before{content:"\eeaa"}.ti-lock-off:before{content:"\ed1e"}.ti-lock-open:before{content:"\eae1"}.ti-login:before{content:"\eba7"}.ti-logout:before{content:"\eba8"}.ti-macro:before{content:"\eeab"}.ti-magnet:before{content:"\eae3"}.ti-mail:before{content:"\eae5"}.ti-mail-forward:before{content:"\eeac"}.ti-mail-opened:before{content:"\eae4"}.ti-mailbox:before{content:"\eead"}.ti-man:before{content:"\eae6"}.ti-manual-gearbox:before{content:"\ed7b"}.ti-map:before{content:"\eae9"}.ti-map-2:before{content:"\eae7"}.ti-map-pin:before{content:"\eae8"}.ti-map-pin-off:before{content:"\ecf3"}.ti-map-pins:before{content:"\ed5e"}.ti-markdown:before{content:"\ec41"}.ti-marquee:before{content:"\ec77"}.ti-marquee-2:before{content:"\eeae"}.ti-mars:before{content:"\ec80"}.ti-mask:before{content:"\eeb0"}.ti-mask-off:before{content:"\eeaf"}.ti-massage:before{content:"\eeb1"}.ti-math:before{content:"\ebeb"}.ti-math-function:before{content:"\eeb2"}.ti-math-symbols:before{content:"\eeb3"}.ti-maximize:before{content:"\eaea"}.ti-meat:before{content:"\ef12"}.ti-medal:before{content:"\ec78"}.ti-medical-cross:before{content:"\ec2f"}.ti-menu:before{content:"\eaeb"}.ti-menu-2:before{content:"\ec42"}.ti-message:before{content:"\eaef"}.ti-message-2:before{content:"\eaec"}.ti-message-circle:before{content:"\eaed"}.ti-message-circle-2:before{content:"\ed3f"}.ti-message-circle-off:before{content:"\ed40"}.ti-message-dots:before{content:"\eaee"}.ti-message-off:before{content:"\ed41"}.ti-message-plus:before{content:"\ec9a"}.ti-message-report:before{content:"\ec9b"}.ti-messages:before{content:"\eb6c"}.ti-messages-off:before{content:"\ed42"}.ti-microphone:before{content:"\eaf0"}.ti-microphone-2:before{content:"\ef2c"}.ti-microphone-off:before{content:"\ed16"}.ti-milk:before{content:"\ef13"}.ti-minimize:before{content:"\eaf1"}.ti-minus:before{content:"\eaf2"}.ti-minus-vertical:before{content:"\eeb4"}.ti-mist:before{content:"\ec30"}.ti-mood-boy:before{content:"\ed2d"}.ti-mood-confuzed:before{content:"\eaf3"}.ti-mood-crazy-happy:before{content:"\ed90"}.ti-mood-cry:before{content:"\ecbb"}.ti-mood-empty:before{content:"\eeb5"}.ti-mood-happy:before{content:"\eaf4"}.ti-mood-kid:before{content:"\ec03"}.ti-mood-neutral:before{content:"\eaf5"}.ti-mood-sad:before{content:"\eaf6"}.ti-mood-smile:before{content:"\eaf7"}.ti-mood-suprised:before{content:"\ec04"}.ti-mood-tongue:before{content:"\eb95"}.ti-moon:before{content:"\eaf8"}.ti-moon-2:before{content:"\ece6"}.ti-moon-stars:before{content:"\ece7"}.ti-moped:before{content:"\ecbc"}.ti-motorbike:before{content:"\eeb6"}.ti-mouse:before{content:"\eaf9"}.ti-movie:before{content:"\eafa"}.ti-mug:before{content:"\eafb"}.ti-multiplier-0-5x:before{content:"\ef41"}.ti-multiplier-1-5x:before{content:"\ef42"}.ti-multiplier-1x:before{content:"\ef43"}.ti-multiplier-2x:before{content:"\ef44"}.ti-mushroom:before{content:"\ef14"}.ti-music:before{content:"\eafc"}.ti-new-section:before{content:"\ebc1"}.ti-news:before{content:"\eafd"}.ti-nfc:before{content:"\eeb7"}.ti-note:before{content:"\eb6d"}.ti-notebook:before{content:"\eb96"}.ti-notes:before{content:"\eb6e"}.ti-notification:before{content:"\eafe"}.ti-number-0:before{content:"\edf0"}.ti-number-1:before{content:"\edf1"}.ti-number-2:before{content:"\edf2"}.ti-number-3:before{content:"\edf3"}.ti-number-4:before{content:"\edf4"}.ti-number-5:before{content:"\edf5"}.ti-number-6:before{content:"\edf6"}.ti-number-7:before{content:"\edf7"}.ti-number-8:before{content:"\edf8"}.ti-number-9:before{content:"\edf9"}.ti-octagon:before{content:"\ecbd"}.ti-octagon-off:before{content:"\eeb8"}.ti-old:before{content:"\eeb9"}.ti-olympics:before{content:"\eeba"}.ti-omega:before{content:"\eb97"}.ti-outlet:before{content:"\ebd7"}.ti-overline:before{content:"\eebb"}.ti-package:before{content:"\eaff"}.ti-pacman:before{content:"\eebc"}.ti-page-break:before{content:"\ec81"}.ti-paint:before{content:"\eb00"}.ti-palette:before{content:"\eb01"}.ti-panorama-horizontal:before{content:"\ed33"}.ti-panorama-vertical:before{content:"\ed34"}.ti-paperclip:before{content:"\eb02"}.ti-parachute:before{content:"\ed7c"}.ti-parentheses:before{content:"\ebd8"}.ti-parking:before{content:"\eb03"}.ti-peace:before{content:"\ecbe"}.ti-pencil:before{content:"\eb04"}.ti-pennant:before{content:"\ed7d"}.ti-pepper:before{content:"\ef15"}.ti-percentage:before{content:"\ecf4"}.ti-perspective:before{content:"\eebd"}.ti-phone:before{content:"\eb09"}.ti-phone-call:before{content:"\eb05"}.ti-phone-calling:before{content:"\ec43"}.ti-phone-check:before{content:"\ec05"}.ti-phone-incoming:before{content:"\eb06"}.ti-phone-off:before{content:"\ecf5"}.ti-phone-outgoing:before{content:"\eb07"}.ti-phone-pause:before{content:"\eb08"}.ti-phone-plus:before{content:"\ec06"}.ti-phone-x:before{content:"\ec07"}.ti-photo:before{content:"\eb0a"}.ti-photo-off:before{content:"\ecf6"}.ti-physotherapist:before{content:"\eebe"}.ti-picture-in-picture:before{content:"\ed35"}.ti-picture-in-picture-off:before{content:"\ed43"}.ti-picture-in-picture-on:before{content:"\ed44"}.ti-pill:before{content:"\ec44"}.ti-pin:before{content:"\ec9c"}.ti-pinned:before{content:"\ed60"}.ti-pinned-off:before{content:"\ed5f"}.ti-pizza:before{content:"\edbb"}.ti-plane:before{content:"\eb6f"}.ti-plane-arrival:before{content:"\eb99"}.ti-plane-departure:before{content:"\eb9a"}.ti-planet:before{content:"\ec08"}.ti-plant:before{content:"\ed50"}.ti-plant-2:before{content:"\ed7e"}.ti-play-card:before{content:"\eebf"}.ti-player-pause:before{content:"\ed45"}.ti-player-play:before{content:"\ed46"}.ti-player-record:before{content:"\ed47"}.ti-player-skip-back:before{content:"\ed48"}.ti-player-skip-forward:before{content:"\ed49"}.ti-player-stop:before{content:"\ed4a"}.ti-player-track-next:before{content:"\ed4b"}.ti-player-track-prev:before{content:"\ed4c"}.ti-playlist:before{content:"\eec0"}.ti-plug:before{content:"\ebd9"}.ti-plus:before{content:"\eb0b"}.ti-point:before{content:"\eb0c"}.ti-pokeball:before{content:"\eec1"}.ti-polaroid:before{content:"\eec2"}.ti-pool:before{content:"\ed91"}.ti-power:before{content:"\eb0d"}.ti-pray:before{content:"\ecbf"}.ti-presentation:before{content:"\eb70"}.ti-presentation-analytics:before{content:"\eec3"}.ti-printer:before{content:"\eb0e"}.ti-prompt:before{content:"\eb0f"}.ti-propeller:before{content:"\eec4"}.ti-puzzle:before{content:"\eb10"}.ti-pyramid:before{content:"\eec5"}.ti-qrcode:before{content:"\eb11"}.ti-question-mark:before{content:"\ec9d"}.ti-radio:before{content:"\ef2d"}.ti-radioactive:before{content:"\ecc0"}.ti-radius-bottom-left:before{content:"\eec6"}.ti-radius-bottom-right:before{content:"\eec7"}.ti-radius-top-left:before{content:"\eec8"}.ti-radius-top-right:before{content:"\eec9"}.ti-rainbow:before{content:"\edbc"}.ti-receipt:before{content:"\edfd"}.ti-receipt-2:before{content:"\edfa"}.ti-receipt-off:before{content:"\edfb"}.ti-receipt-refund:before{content:"\edfc"}.ti-receipt-tax:before{content:"\edbd"}.ti-recharging:before{content:"\eeca"}.ti-record-mail:before{content:"\eb12"}.ti-rectangle:before{content:"\ed37"}.ti-rectangle-vertical:before{content:"\ed36"}.ti-recycle:before{content:"\eb9b"}.ti-refresh:before{content:"\eb13"}.ti-refresh-alert:before{content:"\ed57"}.ti-registered:before{content:"\eb14"}.ti-relation-many-to-many:before{content:"\ed7f"}.ti-relation-one-to-many:before{content:"\ed80"}.ti-relation-one-to-one:before{content:"\ed81"}.ti-repeat:before{content:"\eb72"}.ti-repeat-once:before{content:"\eb71"}.ti-replace:before{content:"\ebc7"}.ti-report:before{content:"\eece"}.ti-report-analytics:before{content:"\eecb"}.ti-report-medical:before{content:"\eecc"}.ti-report-money:before{content:"\eecd"}.ti-resize:before{content:"\eecf"}.ti-ripple:before{content:"\ed82"}.ti-road-sign:before{content:"\ecdd"}.ti-rocket:before{content:"\ec45"}.ti-rotate:before{content:"\eb16"}.ti-rotate-2:before{content:"\ebb4"}.ti-rotate-clockwise:before{content:"\eb15"}.ti-rotate-clockwise-2:before{content:"\ebb5"}.ti-rotate-rectangle:before{content:"\ec15"}.ti-route:before{content:"\eb17"}.ti-router:before{content:"\eb18"}.ti-row-insert-bottom:before{content:"\eed0"}.ti-row-insert-top:before{content:"\eed1"}.ti-rss:before{content:"\eb19"}.ti-ruler:before{content:"\eb1a"}.ti-ruler-2:before{content:"\eed2"}.ti-run:before{content:"\ec82"}.ti-sailboat:before{content:"\ec83"}.ti-salt:before{content:"\ef16"}.ti-satellite:before{content:"\eed3"}.ti-sausage:before{content:"\ef17"}.ti-scale:before{content:"\ebc2"}.ti-scan:before{content:"\ebc8"}.ti-school:before{content:"\ecf7"}.ti-scissors:before{content:"\eb1b"}.ti-scooter:before{content:"\ec6c"}.ti-scooter-electric:before{content:"\ecc1"}.ti-screen-share:before{content:"\ed18"}.ti-screen-share-off:before{content:"\ed17"}.ti-scuba-mask:before{content:"\eed4"}.ti-search:before{content:"\eb1c"}.ti-section:before{content:"\eed5"}.ti-seeding:before{content:"\ed51"}.ti-select:before{content:"\ec9e"}.ti-selector:before{content:"\eb1d"}.ti-send:before{content:"\eb1e"}.ti-separator:before{content:"\ebda"}.ti-separator-horizontal:before{content:"\ec79"}.ti-separator-vertical:before{content:"\ec7a"}.ti-server:before{content:"\eb1f"}.ti-servicemark:before{content:"\ec09"}.ti-settings:before{content:"\eb20"}.ti-settings-automation:before{content:"\eed6"}.ti-shadow:before{content:"\eed8"}.ti-shadow-off:before{content:"\eed7"}.ti-shape:before{content:"\eb9c"}.ti-shape-2:before{content:"\eed9"}.ti-shape-3:before{content:"\eeda"}.ti-share:before{content:"\eb21"}.ti-shield:before{content:"\eb24"}.ti-shield-check:before{content:"\eb22"}.ti-shield-lock:before{content:"\ed58"}.ti-shield-off:before{content:"\ecf8"}.ti-shield-x:before{content:"\eb23"}.ti-ship:before{content:"\ec84"}.ti-shirt:before{content:"\ec0a"}.ti-shopping-cart:before{content:"\eb25"}.ti-shopping-cart-discount:before{content:"\eedb"}.ti-shopping-cart-off:before{content:"\eedc"}.ti-shopping-cart-plus:before{content:"\eedd"}.ti-shopping-cart-x:before{content:"\eede"}.ti-shredder:before{content:"\eedf"}.ti-signature:before{content:"\eee0"}.ti-sitemap:before{content:"\eb9d"}.ti-skateboard:before{content:"\ecc2"}.ti-slice:before{content:"\ebdb"}.ti-slideshow:before{content:"\ebc9"}.ti-smart-home:before{content:"\ecde"}.ti-smoking:before{content:"\ecc4"}.ti-smoking-no:before{content:"\ecc3"}.ti-snowflake:before{content:"\ec0b"}.ti-soccer-field:before{content:"\ed92"}.ti-social:before{content:"\ebec"}.ti-sock:before{content:"\eee1"}.ti-sort-ascending:before{content:"\eb26"}.ti-sort-ascending-2:before{content:"\eee2"}.ti-sort-ascending-letters:before{content:"\ef18"}.ti-sort-ascending-numbers:before{content:"\ef19"}.ti-sort-descending:before{content:"\eb27"}.ti-sort-descending-2:before{content:"\eee3"}.ti-sort-descending-letters:before{content:"\ef1a"}.ti-sort-descending-numbers:before{content:"\ef1b"}.ti-soup:before{content:"\ef2e"}.ti-space:before{content:"\ec0c"}.ti-speakerphone:before{content:"\ed61"}.ti-speedboat:before{content:"\ed93"}.ti-sport-billard:before{content:"\eee4"}.ti-square:before{content:"\eb2c"}.ti-square-0:before{content:"\eee5"}.ti-square-1:before{content:"\eee6"}.ti-square-2:before{content:"\eee7"}.ti-square-3:before{content:"\eee8"}.ti-square-4:before{content:"\eee9"}.ti-square-5:before{content:"\eeea"}.ti-square-6:before{content:"\eeeb"}.ti-square-7:before{content:"\eeec"}.ti-square-8:before{content:"\eeed"}.ti-square-9:before{content:"\eeee"}.ti-square-check:before{content:"\eb28"}.ti-square-dot:before{content:"\ed59"}.ti-square-forbid:before{content:"\ed5b"}.ti-square-forbid-2:before{content:"\ed5a"}.ti-square-minus:before{content:"\eb29"}.ti-square-off:before{content:"\eeef"}.ti-square-plus:before{content:"\eb2a"}.ti-square-root:before{content:"\eef1"}.ti-square-root-2:before{content:"\eef0"}.ti-square-rotated:before{content:"\ecdf"}.ti-square-rotated-off:before{content:"\eef2"}.ti-square-toggle:before{content:"\eef4"}.ti-square-toggle-horizontal:before{content:"\eef3"}.ti-square-x:before{content:"\eb2b"}.ti-squares-diagonal:before{content:"\eef5"}.ti-squares-filled:before{content:"\eef6"}.ti-stack:before{content:"\eb2d"}.ti-stack-2:before{content:"\eef7"}.ti-stairs:before{content:"\eca6"}.ti-stairs-down:before{content:"\eca4"}.ti-stairs-up:before{content:"\eca5"}.ti-star:before{content:"\eb2e"}.ti-star-half:before{content:"\ed19"}.ti-star-off:before{content:"\ed62"}.ti-stars:before{content:"\ed38"}.ti-steering-wheel:before{content:"\ec7b"}.ti-step-into:before{content:"\ece0"}.ti-step-out:before{content:"\ece1"}.ti-stethoscope:before{content:"\edbe"}.ti-sticker:before{content:"\eb2f"}.ti-strikethrough:before{content:"\eb9e"}.ti-submarine:before{content:"\ed94"}.ti-subscript:before{content:"\eb9f"}.ti-subtask:before{content:"\ec9f"}.ti-sum:before{content:"\eb73"}.ti-sun:before{content:"\eb30"}.ti-sun-off:before{content:"\ed63"}.ti-sunrise:before{content:"\ef1c"}.ti-sunset:before{content:"\ec31"}.ti-superscript:before{content:"\eba0"}.ti-swimming:before{content:"\ec92"}.ti-switch:before{content:"\eb33"}.ti-switch-2:before{content:"\edbf"}.ti-switch-3:before{content:"\edc0"}.ti-switch-horizontal:before{content:"\eb31"}.ti-switch-vertical:before{content:"\eb32"}.ti-table:before{content:"\eba1"}.ti-table-export:before{content:"\eef8"}.ti-table-import:before{content:"\eef9"}.ti-table-off:before{content:"\eefa"}.ti-tag:before{content:"\eb34"}.ti-tallymark-1:before{content:"\ec46"}.ti-tallymark-2:before{content:"\ec47"}.ti-tallymark-3:before{content:"\ec48"}.ti-tallymark-4:before{content:"\ec49"}.ti-tallymarks:before{content:"\ec4a"}.ti-tank:before{content:"\ed95"}.ti-target:before{content:"\eb35"}.ti-temperature:before{content:"\eb38"}.ti-temperature-celsius:before{content:"\eb36"}.ti-temperature-fahrenheit:before{content:"\eb37"}.ti-temperature-minus:before{content:"\ebed"}.ti-temperature-plus:before{content:"\ebee"}.ti-template:before{content:"\eb39"}.ti-tent:before{content:"\eefb"}.ti-terminal:before{content:"\ebdc"}.ti-terminal-2:before{content:"\ebef"}.ti-test-pipe:before{content:"\eb3a"}.ti-text-direction-ltr:before{content:"\eefc"}.ti-text-direction-rtl:before{content:"\eefd"}.ti-text-wrap:before{content:"\ebdd"}.ti-text-wrap-disabled:before{content:"\eca7"}.ti-thumb-down:before{content:"\eb3b"}.ti-thumb-up:before{content:"\eb3c"}.ti-ticket:before{content:"\eb3d"}.ti-tilt-shift:before{content:"\eefe"}.ti-tir:before{content:"\ebf0"}.ti-toggle-left:before{content:"\eb3e"}.ti-toggle-right:before{content:"\eb3f"}.ti-tool:before{content:"\eb40"}.ti-tools:before{content:"\ebca"}.ti-tools-kitchen:before{content:"\ed64"}.ti-tools-kitchen-2:before{content:"\eeff"}.ti-tornado:before{content:"\ece2"}.ti-tournament:before{content:"\ecd0"}.ti-track:before{content:"\ef00"}.ti-tractor:before{content:"\ec0d"}.ti-trademark:before{content:"\ec0e"}.ti-traffic-cone:before{content:"\ec0f"}.ti-traffic-lights:before{content:"\ed39"}.ti-train:before{content:"\ed96"}.ti-transfer-in:before{content:"\ef2f"}.ti-transfer-out:before{content:"\ef30"}.ti-trash:before{content:"\eb41"}.ti-trash-off:before{content:"\ed65"}.ti-tree:before{content:"\ef01"}.ti-trees:before{content:"\ec10"}.ti-trending-down:before{content:"\eb42"}.ti-trending-down-2:before{content:"\edc1"}.ti-trending-down-3:before{content:"\edc2"}.ti-trending-up:before{content:"\eb43"}.ti-trending-up-2:before{content:"\edc3"}.ti-trending-up-3:before{content:"\edc4"}.ti-triangle:before{content:"\eb44"}.ti-triangle-off:before{content:"\ef02"}.ti-triangle-square-circle:before{content:"\ece8"}.ti-trident:before{content:"\ecc5"}.ti-trophy:before{content:"\eb45"}.ti-truck:before{content:"\ebc4"}.ti-truck-delivery:before{content:"\ec4b"}.ti-truck-off:before{content:"\ef03"}.ti-truck-return:before{content:"\ec4c"}.ti-typography:before{content:"\ebc5"}.ti-umbrella:before{content:"\ebf1"}.ti-underline:before{content:"\eba2"}.ti-unlink:before{content:"\eb46"}.ti-upload:before{content:"\eb47"}.ti-urgent:before{content:"\eb48"}.ti-user:before{content:"\eb4d"}.ti-user-check:before{content:"\eb49"}.ti-user-exclamation:before{content:"\ec12"}.ti-user-minus:before{content:"\eb4a"}.ti-user-off:before{content:"\ecf9"}.ti-user-plus:before{content:"\eb4b"}.ti-user-x:before{content:"\eb4c"}.ti-users:before{content:"\ebf2"}.ti-vaccine:before{content:"\ef04"}.ti-variable:before{content:"\ef05"}.ti-vector:before{content:"\eca9"}.ti-vector-beizer-2:before{content:"\ed3a"}.ti-vector-bezier:before{content:"\ef1d"}.ti-vector-triangle:before{content:"\eca8"}.ti-venus:before{content:"\ec86"}.ti-versions:before{content:"\ed52"}.ti-video:before{content:"\ed22"}.ti-video-minus:before{content:"\ed1f"}.ti-video-off:before{content:"\ed20"}.ti-video-plus:before{content:"\ed21"}.ti-view-360:before{content:"\ed84"}.ti-viewfinder:before{content:"\eb4e"}.ti-viewport-narrow:before{content:"\ebf3"}.ti-viewport-wide:before{content:"\ebf4"}.ti-virus:before{content:"\eb74"}.ti-virus-off:before{content:"\ed66"}.ti-virus-search:before{content:"\ed67"}.ti-vocabulary:before{content:"\ef1e"}.ti-volume:before{content:"\eb51"}.ti-volume-2:before{content:"\eb4f"}.ti-volume-3:before{content:"\eb50"}.ti-walk:before{content:"\ec87"}.ti-wallet:before{content:"\eb75"}.ti-wand:before{content:"\ebcb"}.ti-wave-saw-tool:before{content:"\ecd3"}.ti-wave-sine:before{content:"\ecd4"}.ti-wave-square:before{content:"\ecd5"}.ti-wifi:before{content:"\eb52"}.ti-wifi-0:before{content:"\eba3"}.ti-wifi-1:before{content:"\eba4"}.ti-wifi-2:before{content:"\eba5"}.ti-wifi-off:before{content:"\ecfa"}.ti-wind:before{content:"\ec34"}.ti-windmill:before{content:"\ed85"}.ti-window:before{content:"\ef06"}.ti-wiper:before{content:"\ecab"}.ti-wiper-wash:before{content:"\ecaa"}.ti-woman:before{content:"\eb53"}.ti-world:before{content:"\eb54"}.ti-world-latitude:before{content:"\ed2e"}.ti-world-longitude:before{content:"\ed2f"}.ti-wrecking-ball:before{content:"\ed97"}.ti-writing:before{content:"\ef08"}.ti-writing-sign:before{content:"\ef07"}.ti-x:before{content:"\eb55"}.ti-yin-yang:before{content:"\ec35"}.ti-zodiac-aquarius:before{content:"\ecac"}.ti-zodiac-aries:before{content:"\ecad"}.ti-zodiac-cancer:before{content:"\ecae"}.ti-zodiac-capricorn:before{content:"\ecaf"}.ti-zodiac-gemini:before{content:"\ecb0"}.ti-zodiac-leo:before{content:"\ecb1"}.ti-zodiac-libra:before{content:"\ecb2"}.ti-zodiac-pisces:before{content:"\ecb3"}.ti-zodiac-sagittarius:before{content:"\ecb4"}.ti-zodiac-scorpio:before{content:"\ecb5"}.ti-zodiac-taurus:before{content:"\ecb6"}.ti-zodiac-virgo:before{content:"\ecb7"}.ti-zoom-cancel:before{content:"\ec4d"}.ti-zoom-check:before{content:"\ef09"}.ti-zoom-in:before{content:"\eb56"}.ti-zoom-money:before{content:"\ef0a"}.ti-zoom-out:before{content:"\eb57"}.ti-zoom-question:before{content:"\edeb"}
@@ -1,89 +0,0 @@
1
- ( function () {
2
-
3
- class AnimationClipCreator {
4
-
5
- static CreateRotationAnimation( period, axis = 'x' ) {
6
-
7
- const times = [ 0, period ],
8
- values = [ 0, 360 ];
9
- const trackName = '.rotation[' + axis + ']';
10
- const track = new THREE.NumberKeyframeTrack( trackName, times, values );
11
- return new THREE.AnimationClip( null, period, [ track ] );
12
-
13
- }
14
- static CreateScaleAxisAnimation( period, axis = 'x' ) {
15
-
16
- const times = [ 0, period ],
17
- values = [ 0, 1 ];
18
- const trackName = '.scale[' + axis + ']';
19
- const track = new THREE.NumberKeyframeTrack( trackName, times, values );
20
- return new THREE.AnimationClip( null, period, [ track ] );
21
-
22
- }
23
- static CreateShakeAnimation( duration, shakeScale ) {
24
-
25
- const times = [],
26
- values = [],
27
- tmp = new THREE.Vector3();
28
- for ( let i = 0; i < duration * 10; i ++ ) {
29
-
30
- times.push( i / 10 );
31
- tmp.set( Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0 ).multiply( shakeScale ).toArray( values, values.length );
32
-
33
- }
34
-
35
- const trackName = '.position';
36
- const track = new THREE.VectorKeyframeTrack( trackName, times, values );
37
- return new THREE.AnimationClip( null, duration, [ track ] );
38
-
39
- }
40
- static CreatePulsationAnimation( duration, pulseScale ) {
41
-
42
- const times = [],
43
- values = [],
44
- tmp = new THREE.Vector3();
45
- for ( let i = 0; i < duration * 10; i ++ ) {
46
-
47
- times.push( i / 10 );
48
- const scaleFactor = Math.random() * pulseScale;
49
- tmp.set( scaleFactor, scaleFactor, scaleFactor ).toArray( values, values.length );
50
-
51
- }
52
-
53
- const trackName = '.scale';
54
- const track = new THREE.VectorKeyframeTrack( trackName, times, values );
55
- return new THREE.AnimationClip( null, duration, [ track ] );
56
-
57
- }
58
- static CreateVisibilityAnimation( duration ) {
59
-
60
- const times = [ 0, duration / 2, duration ],
61
- values = [ true, false, true ];
62
- const trackName = '.visible';
63
- const track = new THREE.BooleanKeyframeTrack( trackName, times, values );
64
- return new THREE.AnimationClip( null, duration, [ track ] );
65
-
66
- }
67
- static CreateMaterialColorAnimation( duration, colors ) {
68
-
69
- const times = [],
70
- values = [],
71
- timeStep = duration / colors.length;
72
- for ( let i = 0; i <= colors.length; i ++ ) {
73
-
74
- times.push( i * timeStep );
75
- values.push( colors[ i % colors.length ] );
76
-
77
- }
78
-
79
- const trackName = '.material[0].color';
80
- const track = new THREE.ColorKeyframeTrack( trackName, times, values );
81
- return new THREE.AnimationClip( null, duration, [ track ] );
82
-
83
- }
84
-
85
- }
86
-
87
- THREE.AnimationClipCreator = AnimationClipCreator;
88
-
89
- } )();
@@ -1,416 +0,0 @@
1
- ( function () {
2
-
3
- const _q = new THREE.Quaternion();
4
- const _targetPos = new THREE.Vector3();
5
- const _targetVec = new THREE.Vector3();
6
- const _effectorPos = new THREE.Vector3();
7
- const _effectorVec = new THREE.Vector3();
8
- const _linkPos = new THREE.Vector3();
9
- const _invLinkQ = new THREE.Quaternion();
10
- const _linkScale = new THREE.Vector3();
11
- const _axis = new THREE.Vector3();
12
- const _vector = new THREE.Vector3();
13
- const _matrix = new THREE.Matrix4();
14
-
15
- /**
16
- * CCD Algorithm
17
- * - https://sites.google.com/site/auraliusproject/ccd-algorithm
18
- *
19
- * // ik parameter example
20
- * //
21
- * // target, effector, index in links are bone index in skeleton.bones.
22
- * // the bones relation should be
23
- * // <-- parent child -->
24
- * // links[ n ], links[ n - 1 ], ..., links[ 0 ], effector
25
- * iks = [ {
26
- * target: 1,
27
- * effector: 2,
28
- * links: [ { index: 5, limitation: new THREE.Vector3( 1, 0, 0 ) }, { index: 4, enabled: false }, { index : 3 } ],
29
- * iteration: 10,
30
- * minAngle: 0.0,
31
- * maxAngle: 1.0,
32
- * } ];
33
- */
34
-
35
- class CCDIKSolver {
36
-
37
- /**
38
- * @param {THREE.SkinnedMesh} mesh
39
- * @param {Array<Object>} iks
40
- */
41
- constructor( mesh, iks = [] ) {
42
-
43
- this.mesh = mesh;
44
- this.iks = iks;
45
- this._valid();
46
-
47
- }
48
-
49
- /**
50
- * Update all IK bones.
51
- *
52
- * @return {CCDIKSolver}
53
- */
54
- update() {
55
-
56
- const iks = this.iks;
57
- for ( let i = 0, il = iks.length; i < il; i ++ ) {
58
-
59
- this.updateOne( iks[ i ] );
60
-
61
- }
62
-
63
- return this;
64
-
65
- }
66
-
67
- /**
68
- * Update one IK bone
69
- *
70
- * @param {Object} ik parameter
71
- * @return {CCDIKSolver}
72
- */
73
- updateOne( ik ) {
74
-
75
- const bones = this.mesh.skeleton.bones;
76
-
77
- // for reference overhead reduction in loop
78
- const math = Math;
79
- const effector = bones[ ik.effector ];
80
- const target = bones[ ik.target ];
81
-
82
- // don't use getWorldPosition() here for the performance
83
- // because it calls updateMatrixWorld( true ) inside.
84
- _targetPos.setFromMatrixPosition( target.matrixWorld );
85
- const links = ik.links;
86
- const iteration = ik.iteration !== undefined ? ik.iteration : 1;
87
- for ( let i = 0; i < iteration; i ++ ) {
88
-
89
- let rotated = false;
90
- for ( let j = 0, jl = links.length; j < jl; j ++ ) {
91
-
92
- const link = bones[ links[ j ].index ];
93
-
94
- // skip this link and following links.
95
- // this skip is used for MMD performance optimization.
96
- if ( links[ j ].enabled === false ) break;
97
- const limitation = links[ j ].limitation;
98
- const rotationMin = links[ j ].rotationMin;
99
- const rotationMax = links[ j ].rotationMax;
100
-
101
- // don't use getWorldPosition/Quaternion() here for the performance
102
- // because they call updateMatrixWorld( true ) inside.
103
- link.matrixWorld.decompose( _linkPos, _invLinkQ, _linkScale );
104
- _invLinkQ.invert();
105
- _effectorPos.setFromMatrixPosition( effector.matrixWorld );
106
-
107
- // work in link world
108
- _effectorVec.subVectors( _effectorPos, _linkPos );
109
- _effectorVec.applyQuaternion( _invLinkQ );
110
- _effectorVec.normalize();
111
- _targetVec.subVectors( _targetPos, _linkPos );
112
- _targetVec.applyQuaternion( _invLinkQ );
113
- _targetVec.normalize();
114
- let angle = _targetVec.dot( _effectorVec );
115
- if ( angle > 1.0 ) {
116
-
117
- angle = 1.0;
118
-
119
- } else if ( angle < - 1.0 ) {
120
-
121
- angle = - 1.0;
122
-
123
- }
124
-
125
- angle = math.acos( angle );
126
-
127
- // skip if changing angle is too small to prevent vibration of bone
128
- if ( angle < 1e-5 ) continue;
129
- if ( ik.minAngle !== undefined && angle < ik.minAngle ) {
130
-
131
- angle = ik.minAngle;
132
-
133
- }
134
-
135
- if ( ik.maxAngle !== undefined && angle > ik.maxAngle ) {
136
-
137
- angle = ik.maxAngle;
138
-
139
- }
140
-
141
- _axis.crossVectors( _effectorVec, _targetVec );
142
- _axis.normalize();
143
- _q.setFromAxisAngle( _axis, angle );
144
- link.quaternion.multiply( _q );
145
-
146
- // TODO: re-consider the limitation specification
147
- if ( limitation !== undefined ) {
148
-
149
- let c = link.quaternion.w;
150
- if ( c > 1.0 ) c = 1.0;
151
- const c2 = math.sqrt( 1 - c * c );
152
- link.quaternion.set( limitation.x * c2, limitation.y * c2, limitation.z * c2, c );
153
-
154
- }
155
-
156
- if ( rotationMin !== undefined ) {
157
-
158
- link.rotation.setFromVector3( _vector.setFromEuler( link.rotation ).max( rotationMin ) );
159
-
160
- }
161
-
162
- if ( rotationMax !== undefined ) {
163
-
164
- link.rotation.setFromVector3( _vector.setFromEuler( link.rotation ).min( rotationMax ) );
165
-
166
- }
167
-
168
- link.updateMatrixWorld( true );
169
- rotated = true;
170
-
171
- }
172
-
173
- if ( ! rotated ) break;
174
-
175
- }
176
-
177
- return this;
178
-
179
- }
180
-
181
- /**
182
- * Creates Helper
183
- *
184
- * @return {CCDIKHelper}
185
- */
186
- createHelper() {
187
-
188
- return new CCDIKHelper( this.mesh, this.mesh.geometry.userData.MMD.iks );
189
-
190
- }
191
-
192
- // private methods
193
-
194
- _valid() {
195
-
196
- const iks = this.iks;
197
- const bones = this.mesh.skeleton.bones;
198
- for ( let i = 0, il = iks.length; i < il; i ++ ) {
199
-
200
- const ik = iks[ i ];
201
- const effector = bones[ ik.effector ];
202
- const links = ik.links;
203
- let link0, link1;
204
- link0 = effector;
205
- for ( let j = 0, jl = links.length; j < jl; j ++ ) {
206
-
207
- link1 = bones[ links[ j ].index ];
208
- if ( link0.parent !== link1 ) {
209
-
210
- console.warn( 'THREE.CCDIKSolver: bone ' + link0.name + ' is not the child of bone ' + link1.name );
211
-
212
- }
213
-
214
- link0 = link1;
215
-
216
- }
217
-
218
- }
219
-
220
- }
221
-
222
- }
223
- function getPosition( bone, matrixWorldInv ) {
224
-
225
- return _vector.setFromMatrixPosition( bone.matrixWorld ).applyMatrix4( matrixWorldInv );
226
-
227
- }
228
-
229
- function setPositionOfBoneToAttributeArray( array, index, bone, matrixWorldInv ) {
230
-
231
- const v = getPosition( bone, matrixWorldInv );
232
- array[ index * 3 + 0 ] = v.x;
233
- array[ index * 3 + 1 ] = v.y;
234
- array[ index * 3 + 2 ] = v.z;
235
-
236
- }
237
-
238
- /**
239
- * Visualize IK bones
240
- *
241
- * @param {SkinnedMesh} mesh
242
- * @param {Array<Object>} iks
243
- */
244
- class CCDIKHelper extends THREE.Object3D {
245
-
246
- constructor( mesh, iks = [], sphereSize = 0.25 ) {
247
-
248
- super();
249
- this.root = mesh;
250
- this.iks = iks;
251
- this.matrix.copy( mesh.matrixWorld );
252
- this.matrixAutoUpdate = false;
253
- this.sphereGeometry = new THREE.SphereGeometry( sphereSize, 16, 8 );
254
- this.targetSphereMaterial = new THREE.MeshBasicMaterial( {
255
- color: new THREE.Color( 0xff8888 ),
256
- depthTest: false,
257
- depthWrite: false,
258
- transparent: true
259
- } );
260
- this.effectorSphereMaterial = new THREE.MeshBasicMaterial( {
261
- color: new THREE.Color( 0x88ff88 ),
262
- depthTest: false,
263
- depthWrite: false,
264
- transparent: true
265
- } );
266
- this.linkSphereMaterial = new THREE.MeshBasicMaterial( {
267
- color: new THREE.Color( 0x8888ff ),
268
- depthTest: false,
269
- depthWrite: false,
270
- transparent: true
271
- } );
272
- this.lineMaterial = new THREE.LineBasicMaterial( {
273
- color: new THREE.Color( 0xff0000 ),
274
- depthTest: false,
275
- depthWrite: false,
276
- transparent: true
277
- } );
278
- this._init();
279
-
280
- }
281
-
282
- /**
283
- * Updates IK bones visualization.
284
- */
285
- updateMatrixWorld( force ) {
286
-
287
- const mesh = this.root;
288
- if ( this.visible ) {
289
-
290
- let offset = 0;
291
- const iks = this.iks;
292
- const bones = mesh.skeleton.bones;
293
- _matrix.copy( mesh.matrixWorld ).invert();
294
- for ( let i = 0, il = iks.length; i < il; i ++ ) {
295
-
296
- const ik = iks[ i ];
297
- const targetBone = bones[ ik.target ];
298
- const effectorBone = bones[ ik.effector ];
299
- const targetMesh = this.children[ offset ++ ];
300
- const effectorMesh = this.children[ offset ++ ];
301
- targetMesh.position.copy( getPosition( targetBone, _matrix ) );
302
- effectorMesh.position.copy( getPosition( effectorBone, _matrix ) );
303
- for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
304
-
305
- const link = ik.links[ j ];
306
- const linkBone = bones[ link.index ];
307
- const linkMesh = this.children[ offset ++ ];
308
- linkMesh.position.copy( getPosition( linkBone, _matrix ) );
309
-
310
- }
311
-
312
- const line = this.children[ offset ++ ];
313
- const array = line.geometry.attributes.position.array;
314
- setPositionOfBoneToAttributeArray( array, 0, targetBone, _matrix );
315
- setPositionOfBoneToAttributeArray( array, 1, effectorBone, _matrix );
316
- for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
317
-
318
- const link = ik.links[ j ];
319
- const linkBone = bones[ link.index ];
320
- setPositionOfBoneToAttributeArray( array, j + 2, linkBone, _matrix );
321
-
322
- }
323
-
324
- line.geometry.attributes.position.needsUpdate = true;
325
-
326
- }
327
-
328
- }
329
-
330
- this.matrix.copy( mesh.matrixWorld );
331
- super.updateMatrixWorld( force );
332
-
333
- }
334
-
335
- /**
336
- * Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
337
- */
338
- dispose() {
339
-
340
- this.sphereGeometry.dispose();
341
- this.targetSphereMaterial.dispose();
342
- this.effectorSphereMaterial.dispose();
343
- this.linkSphereMaterial.dispose();
344
- this.lineMaterial.dispose();
345
- const children = this.children;
346
- for ( let i = 0; i < children.length; i ++ ) {
347
-
348
- const child = children[ i ];
349
- if ( child.isLine ) child.geometry.dispose();
350
-
351
- }
352
-
353
- }
354
-
355
- // private method
356
-
357
- _init() {
358
-
359
- const scope = this;
360
- const iks = this.iks;
361
- function createLineGeometry( ik ) {
362
-
363
- const geometry = new THREE.BufferGeometry();
364
- const vertices = new Float32Array( ( 2 + ik.links.length ) * 3 );
365
- geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
366
- return geometry;
367
-
368
- }
369
-
370
- function createTargetMesh() {
371
-
372
- return new THREE.Mesh( scope.sphereGeometry, scope.targetSphereMaterial );
373
-
374
- }
375
-
376
- function createEffectorMesh() {
377
-
378
- return new THREE.Mesh( scope.sphereGeometry, scope.effectorSphereMaterial );
379
-
380
- }
381
-
382
- function createLinkMesh() {
383
-
384
- return new THREE.Mesh( scope.sphereGeometry, scope.linkSphereMaterial );
385
-
386
- }
387
-
388
- function createLine( ik ) {
389
-
390
- return new THREE.Line( createLineGeometry( ik ), scope.lineMaterial );
391
-
392
- }
393
-
394
- for ( let i = 0, il = iks.length; i < il; i ++ ) {
395
-
396
- const ik = iks[ i ];
397
- this.add( createTargetMesh() );
398
- this.add( createEffectorMesh() );
399
- for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
400
-
401
- this.add( createLinkMesh() );
402
-
403
- }
404
-
405
- this.add( createLine( ik ) );
406
-
407
- }
408
-
409
- }
410
-
411
- }
412
-
413
- THREE.CCDIKHelper = CCDIKHelper;
414
- THREE.CCDIKSolver = CCDIKSolver;
415
-
416
- } )();