three-stdlib 2.15.2 → 2.16.1

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 (1218) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +275 -207
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.js +152 -82
  25. package/controls/OrbitControls.cjs.js +1 -0
  26. package/controls/OrbitControls.js +481 -232
  27. package/controls/PointerLockControls.cjs.js +1 -0
  28. package/controls/PointerLockControls.js +99 -63
  29. package/controls/TrackballControls.cjs.js +1 -0
  30. package/controls/TrackballControls.js +383 -211
  31. package/controls/TransformControls.cjs.js +1 -0
  32. package/controls/TransformControls.js +782 -575
  33. package/controls/experimental/CameraControls.cjs.js +1 -0
  34. package/controls/experimental/CameraControls.js +609 -329
  35. package/csm/CSM.cjs.js +1 -0
  36. package/csm/CSM.js +108 -47
  37. package/csm/CSMFrustum.cjs.js +1 -0
  38. package/csm/CSMFrustum.js +29 -14
  39. package/csm/CSMHelper.cjs.js +1 -0
  40. package/csm/CSMHelper.js +34 -20
  41. package/csm/CSMShader.cjs.js +1 -0
  42. package/csm/CSMShader.js +11 -7
  43. package/curves/CurveExtras.cjs.js +1 -0
  44. package/curves/CurveExtras.js +115 -73
  45. package/curves/NURBSCurve.cjs.js +1 -0
  46. package/curves/NURBSCurve.js +43 -15
  47. package/curves/NURBSSurface.cjs.js +1 -0
  48. package/curves/NURBSSurface.js +27 -11
  49. package/curves/NURBSUtils.cjs.js +1 -0
  50. package/curves/NURBSUtils.js +203 -54
  51. package/custom.d.cjs.js +1 -0
  52. package/{shaders/types.mjs → custom.d.js} +0 -0
  53. package/deprecated/Geometry.cjs.js +1 -0
  54. package/deprecated/Geometry.js +486 -191
  55. package/effects/AnaglyphEffect.cjs.js +1 -0
  56. package/effects/AnaglyphEffect.js +60 -95
  57. package/effects/AsciiEffect.cjs.js +1 -0
  58. package/effects/AsciiEffect.js +110 -80
  59. package/effects/OutlineEffect.cjs.js +1 -0
  60. package/effects/OutlineEffect.js +204 -121
  61. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  62. package/effects/ParallaxBarrierEffect.js +38 -39
  63. package/effects/PeppersGhostEffect.cjs.js +1 -0
  64. package/effects/PeppersGhostEffect.js +68 -19
  65. package/effects/StereoEffect.cjs.js +1 -0
  66. package/effects/StereoEffect.js +16 -12
  67. package/environments/RoomEnvironment.cjs.js +1 -0
  68. package/environments/RoomEnvironment.js +47 -52
  69. package/exporters/ColladaExporter.cjs.js +1 -0
  70. package/exporters/ColladaExporter.js +241 -115
  71. package/exporters/DRACOExporter.cjs.js +1 -0
  72. package/exporters/DRACOExporter.js +121 -67
  73. package/exporters/GLTFExporter.cjs.js +1 -0
  74. package/exporters/GLTFExporter.js +1014 -463
  75. package/exporters/MMDExporter.cjs.js +1 -0
  76. package/exporters/MMDExporter.js +102 -44
  77. package/exporters/OBJExporter.cjs.js +1 -0
  78. package/exporters/OBJExporter.js +140 -78
  79. package/exporters/PLYExporter.cjs.js +1 -0
  80. package/exporters/PLYExporter.js +154 -93
  81. package/exporters/STLExporter.cjs.js +1 -0
  82. package/exporters/STLExporter.js +81 -30
  83. package/exporters/USDZExporter.cjs.js +1 -0
  84. package/exporters/USDZExporter.js +144 -84
  85. package/geometries/BoxLineGeometry.cjs.js +1 -0
  86. package/geometries/BoxLineGeometry.js +14 -7
  87. package/geometries/ConvexGeometry.cjs.js +1 -0
  88. package/geometries/ConvexGeometry.js +23 -14
  89. package/geometries/DecalGeometry.cjs.js +1 -0
  90. package/geometries/DecalGeometry.js +162 -108
  91. package/geometries/LightningStrike.cjs.js +1 -0
  92. package/geometries/LightningStrike.js +294 -101
  93. package/geometries/ParametricGeometries.cjs.js +1 -0
  94. package/geometries/ParametricGeometries.js +76 -26
  95. package/geometries/ParametricGeometry.cjs.js +1 -0
  96. package/geometries/ParametricGeometry.js +48 -24
  97. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  98. package/geometries/RoundedBoxGeometry.js +64 -33
  99. package/geometries/TeapotGeometry.cjs.js +1 -0
  100. package/geometries/TeapotGeometry.js +174 -1434
  101. package/geometries/TextGeometry.cjs.js +1 -0
  102. package/geometries/TextGeometry.js +17 -9
  103. package/helpers/LightProbeHelper.cjs.js +1 -0
  104. package/helpers/LightProbeHelper.js +21 -53
  105. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  106. package/helpers/PositionalAudioHelper.js +30 -23
  107. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  108. package/helpers/RectAreaLightHelper.js +33 -17
  109. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  110. package/helpers/VertexNormalsHelper.js +41 -20
  111. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  112. package/helpers/VertexTangentsHelper.js +36 -18
  113. package/index.cjs.js +1 -0
  114. package/index.js +333 -968
  115. package/interactive/InteractiveGroup.cjs.js +1 -0
  116. package/interactive/InteractiveGroup.d.ts +5 -0
  117. package/interactive/InteractiveGroup.js +87 -0
  118. package/interactive/SelectionBox.cjs.js +1 -0
  119. package/interactive/SelectionBox.js +46 -31
  120. package/interactive/SelectionHelper.cjs.js +1 -0
  121. package/interactive/SelectionHelper.js +21 -16
  122. package/libs/MeshoptDecoder.cjs.js +1 -0
  123. package/libs/MeshoptDecoder.js +58 -147
  124. package/libs/MotionControllers.cjs.js +1 -0
  125. package/libs/MotionControllers.js +208 -66
  126. package/lights/LightProbeGenerator.cjs.js +1 -0
  127. package/lights/LightProbeGenerator.js +96 -40
  128. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  129. package/lights/RectAreaLightUniformsLib.js +9 -32842
  130. package/lines/Line2.cjs.js +1 -0
  131. package/lines/Line2.js +12 -9
  132. package/lines/LineGeometry.cjs.js +1 -0
  133. package/lines/LineGeometry.js +19 -7
  134. package/lines/LineMaterial.cjs.js +1 -0
  135. package/lines/LineMaterial.js +89 -51
  136. package/lines/LineSegments2.cjs.js +1 -0
  137. package/lines/LineSegments2.js +165 -56
  138. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  139. package/lines/LineSegmentsGeometry.js +71 -29
  140. package/lines/Wireframe.cjs.js +1 -0
  141. package/lines/Wireframe.js +29 -15
  142. package/lines/WireframeGeometry2.cjs.js +1 -0
  143. package/lines/WireframeGeometry2.js +9 -8
  144. package/loaders/3DMLoader.cjs.js +1 -0
  145. package/loaders/3DMLoader.js +469 -234
  146. package/loaders/3MFLoader.cjs.js +1 -0
  147. package/loaders/3MFLoader.js +555 -340
  148. package/loaders/AMFLoader.cjs.js +1 -0
  149. package/loaders/AMFLoader.js +219 -114
  150. package/loaders/AssimpLoader.cjs.js +1 -0
  151. package/loaders/AssimpLoader.js +725 -328
  152. package/loaders/BVHLoader.cjs.js +1 -0
  153. package/loaders/BVHLoader.js +200 -94
  154. package/loaders/BasisTextureLoader.cjs.js +1 -0
  155. package/loaders/BasisTextureLoader.js +357 -229
  156. package/loaders/ColladaLoader.cjs.js +1 -0
  157. package/loaders/ColladaLoader.js +1522 -932
  158. package/loaders/DDSLoader.cjs.js +1 -0
  159. package/loaders/DDSLoader.js +108 -42
  160. package/loaders/DRACOLoader.cjs.js +1 -0
  161. package/loaders/DRACOLoader.js +210 -103
  162. package/loaders/EXRLoader.cjs.js +1 -0
  163. package/loaders/EXRLoader.js +809 -461
  164. package/loaders/FBXLoader.cjs.js +1 -0
  165. package/loaders/FBXLoader.js +1397 -842
  166. package/loaders/FontLoader.cjs.js +1 -0
  167. package/loaders/FontLoader.js +66 -33
  168. package/loaders/GCodeLoader.cjs.js +1 -0
  169. package/loaders/GCodeLoader.js +111 -63
  170. package/loaders/GLTFLoader.cjs.js +1 -0
  171. package/loaders/GLTFLoader.js +1484 -771
  172. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  173. package/loaders/HDRCubeTextureLoader.js +50 -45
  174. package/loaders/KMZLoader.cjs.js +1 -0
  175. package/loaders/KMZLoader.js +55 -42
  176. package/loaders/KTX2Loader.cjs.js +1 -0
  177. package/loaders/KTX2Loader.js +362 -229
  178. package/loaders/KTXLoader.cjs.js +1 -0
  179. package/loaders/KTXLoader.js +99 -37
  180. package/loaders/LDrawLoader.cjs.js +1 -0
  181. package/loaders/LDrawLoader.js +746 -313
  182. package/loaders/LUT3dlLoader.cjs.js +1 -0
  183. package/loaders/LUT3dlLoader.js +62 -50
  184. package/loaders/LUTCubeLoader.cjs.js +1 -0
  185. package/loaders/LUTCubeLoader.js +56 -45
  186. package/loaders/LWOLoader.cjs.js +1 -0
  187. package/loaders/LWOLoader.js +339 -227
  188. package/loaders/LottieLoader.cjs.js +1 -0
  189. package/loaders/LottieLoader.js +38 -36
  190. package/loaders/MD2Loader.cjs.js +1 -0
  191. package/loaders/MD2Loader.js +91 -248
  192. package/loaders/MDDLoader.cjs.js +1 -0
  193. package/loaders/MDDLoader.js +45 -25
  194. package/loaders/MMDLoader.cjs.js +1 -0
  195. package/loaders/MMDLoader.js +795 -359
  196. package/loaders/MTLLoader.cjs.js +1 -0
  197. package/loaders/MTLLoader.js +201 -91
  198. package/loaders/NRRDLoader.cjs.js +1 -0
  199. package/loaders/NRRDLoader.js +263 -182
  200. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  201. package/loaders/NodeMaterialLoader.js +14 -121
  202. package/loaders/OBJLoader.cjs.js +1 -0
  203. package/loaders/OBJLoader.js +283 -161
  204. package/loaders/PCDLoader.cjs.js +1 -0
  205. package/loaders/PCDLoader.js +164 -145
  206. package/loaders/PDBLoader.cjs.js +1 -0
  207. package/loaders/PDBLoader.js +63 -45
  208. package/loaders/PLYLoader.cjs.js +1 -0
  209. package/loaders/PLYLoader.js +203 -106
  210. package/loaders/PRWMLoader.cjs.js +1 -0
  211. package/loaders/PRWMLoader.js +110 -73
  212. package/loaders/PVRLoader.cjs.js +1 -0
  213. package/loaders/PVRLoader.js +93 -32
  214. package/loaders/RGBELoader.cjs.js +1 -0
  215. package/loaders/RGBELoader.js +233 -96
  216. package/loaders/RGBMLoader.cjs.js +1 -0
  217. package/loaders/RGBMLoader.js +514 -344
  218. package/loaders/STLLoader.cjs.js +1 -0
  219. package/loaders/STLLoader.js +165 -59
  220. package/loaders/SVGLoader.cjs.js +1 -0
  221. package/loaders/SVGLoader.js +851 -481
  222. package/loaders/TDSLoader.cjs.js +1 -0
  223. package/loaders/TDSLoader.js +527 -137
  224. package/loaders/TGALoader.cjs.js +1 -0
  225. package/loaders/TGALoader.js +205 -94
  226. package/loaders/TTFLoader.cjs.js +1 -0
  227. package/loaders/TTFLoader.js +79 -58
  228. package/loaders/TiltLoader.cjs.js +1 -0
  229. package/loaders/TiltLoader.js +167 -129
  230. package/loaders/VOXLoader.cjs.js +1 -0
  231. package/loaders/VOXLoader.js +84 -320
  232. package/loaders/VRMLLoader.cjs.js +1 -0
  233. package/loaders/VRMLLoader.js +1268 -786
  234. package/loaders/VRMLoader.cjs.js +1 -0
  235. package/loaders/VRMLoader.js +31 -23
  236. package/loaders/VTKLoader.cjs.js +1 -0
  237. package/loaders/VTKLoader.js +407 -219
  238. package/loaders/XLoader.cjs.js +1 -0
  239. package/loaders/XLoader.js +1259 -1083
  240. package/loaders/XYZLoader.cjs.js +1 -0
  241. package/loaders/XYZLoader.js +34 -28
  242. package/loaders/lwo/IFFParser.cjs.js +1 -0
  243. package/loaders/lwo/IFFParser.js +492 -238
  244. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  245. package/loaders/lwo/LWO2Parser.js +279 -176
  246. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  247. package/loaders/lwo/LWO3Parser.js +247 -160
  248. package/math/Capsule.cjs.js +1 -0
  249. package/math/Capsule.js +43 -56
  250. package/math/ColorConverter.cjs.js +1 -0
  251. package/math/ColorConverter.js +32 -18
  252. package/math/ConvexHull.cjs.js +1 -0
  253. package/math/ConvexHull.js +357 -97
  254. package/math/ImprovedNoise.cjs.js +1 -0
  255. package/math/ImprovedNoise.js +32 -282
  256. package/math/Lut.cjs.js +1 -0
  257. package/math/Lut.js +35 -51
  258. package/math/MeshSurfaceSampler.cjs.js +1 -0
  259. package/math/MeshSurfaceSampler.js +68 -25
  260. package/math/OBB.cjs.js +1 -0
  261. package/math/OBB.js +152 -91
  262. package/math/Octree.cjs.js +1 -0
  263. package/math/Octree.js +139 -76
  264. package/math/SimplexNoise.cjs.js +1 -0
  265. package/math/SimplexNoise.js +238 -217
  266. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  267. package/misc/ConvexObjectBreaker.js +185 -79
  268. package/misc/GPUComputationRenderer.cjs.js +1 -0
  269. package/misc/GPUComputationRenderer.js +194 -69
  270. package/misc/Gyroscope.cjs.js +1 -0
  271. package/misc/Gyroscope.js +22 -16
  272. package/misc/MD2Character.cjs.js +1 -0
  273. package/misc/MD2Character.js +74 -52
  274. package/misc/MD2CharacterComplex.cjs.js +1 -0
  275. package/misc/MD2CharacterComplex.js +163 -112
  276. package/misc/MorphAnimMesh.cjs.js +1 -0
  277. package/misc/MorphAnimMesh.js +28 -20
  278. package/misc/MorphBlendMesh.cjs.js +1 -0
  279. package/misc/MorphBlendMesh.js +69 -45
  280. package/misc/ProgressiveLightmap.cjs.js +1 -0
  281. package/misc/ProgressiveLightmap.js +187 -70
  282. package/misc/RollerCoaster.cjs.js +1 -0
  283. package/misc/RollerCoaster.js +135 -106
  284. package/misc/TubePainter.cjs.js +1 -0
  285. package/misc/TubePainter.js +92 -74
  286. package/misc/Volume.cjs.js +1 -0
  287. package/misc/Volume.js +270 -108
  288. package/misc/VolumeSlice.cjs.js +1 -0
  289. package/misc/VolumeSlice.js +122 -34
  290. package/misc/WebGL.cjs.js +1 -0
  291. package/misc/WebGL.js +34 -37
  292. package/modifiers/CurveModifier.cjs.js +1 -0
  293. package/modifiers/CurveModifier.js +151 -46
  294. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  295. package/modifiers/EdgeSplitModifier.js +90 -46
  296. package/modifiers/SimplifyModifier.cjs.js +1 -0
  297. package/modifiers/SimplifyModifier.js +202 -77
  298. package/modifiers/TessellateModifier.cjs.js +1 -0
  299. package/modifiers/TessellateModifier.js +90 -65
  300. package/nodes/Nodes.cjs.js +1 -0
  301. package/nodes/Nodes.js +140 -274
  302. package/nodes/ShaderNode.cjs.js +1 -0
  303. package/nodes/ShaderNode.js +196 -296
  304. package/nodes/accessors/BufferNode.cjs.js +1 -0
  305. package/nodes/accessors/BufferNode.js +8 -4
  306. package/nodes/accessors/CameraNode.cjs.js +1 -0
  307. package/nodes/accessors/CameraNode.js +25 -20
  308. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  309. package/nodes/accessors/CubeTextureNode.js +26 -14
  310. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  311. package/nodes/accessors/MaterialNode.js +53 -43
  312. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  313. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  314. package/nodes/accessors/ModelNode.cjs.js +1 -0
  315. package/nodes/accessors/ModelNode.js +5 -3
  316. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  317. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  318. package/nodes/accessors/NormalNode.cjs.js +1 -0
  319. package/nodes/accessors/NormalNode.js +39 -40
  320. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  321. package/nodes/accessors/Object3DNode.js +50 -40
  322. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  323. package/nodes/accessors/PointUVNode.js +9 -5
  324. package/nodes/accessors/PositionNode.cjs.js +1 -0
  325. package/nodes/accessors/PositionNode.js +41 -42
  326. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  327. package/nodes/accessors/ReferenceNode.js +17 -10
  328. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  329. package/nodes/accessors/ReflectNode.js +26 -23
  330. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  331. package/nodes/accessors/SkinningNode.js +48 -46
  332. package/nodes/accessors/TextureNode.cjs.js +1 -0
  333. package/nodes/accessors/TextureNode.js +29 -14
  334. package/nodes/accessors/UVNode.cjs.js +1 -0
  335. package/nodes/accessors/UVNode.js +11 -5
  336. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  337. package/nodes/core/ArrayUniformNode.js +7 -3
  338. package/nodes/core/AttributeNode.cjs.js +1 -0
  339. package/nodes/core/AttributeNode.js +12 -5
  340. package/nodes/core/BypassNode.cjs.js +1 -0
  341. package/nodes/core/BypassNode.js +12 -5
  342. package/nodes/core/CodeNode.cjs.js +1 -0
  343. package/nodes/core/CodeNode.js +12 -4
  344. package/nodes/core/ConstNode.cjs.js +1 -0
  345. package/nodes/core/ConstNode.js +7 -3
  346. package/nodes/core/ContextNode.cjs.js +1 -0
  347. package/nodes/core/ContextNode.js +8 -3
  348. package/nodes/core/ExpressionNode.cjs.js +1 -0
  349. package/nodes/core/ExpressionNode.js +9 -5
  350. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  351. package/nodes/core/FunctionCallNode.js +15 -6
  352. package/nodes/core/FunctionNode.cjs.js +1 -0
  353. package/nodes/core/FunctionNode.js +25 -10
  354. package/nodes/core/InputNode.cjs.js +1 -0
  355. package/nodes/core/InputNode.js +23 -12
  356. package/nodes/core/Node.cjs.js +1 -0
  357. package/nodes/core/Node.js +75 -35
  358. package/nodes/core/NodeAttribute.cjs.js +1 -0
  359. package/nodes/core/NodeAttribute.js +4 -2
  360. package/nodes/core/NodeBuilder.cjs.js +1 -0
  361. package/nodes/core/NodeBuilder.js +224 -110
  362. package/nodes/core/NodeCode.cjs.js +1 -0
  363. package/nodes/core/NodeCode.js +7 -4
  364. package/nodes/core/NodeFrame.cjs.js +1 -0
  365. package/nodes/core/NodeFrame.js +12 -9
  366. package/nodes/core/NodeFunction.cjs.js +1 -0
  367. package/nodes/core/NodeFunction.js +17 -0
  368. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  369. package/nodes/core/NodeFunctionInput.js +5 -3
  370. package/nodes/core/NodeKeywords.cjs.js +1 -0
  371. package/nodes/core/NodeKeywords.js +16 -5
  372. package/nodes/core/NodeParser.cjs.js +1 -0
  373. package/nodes/core/NodeParser.js +8 -0
  374. package/nodes/core/NodeUniform.cjs.js +1 -0
  375. package/nodes/core/NodeUniform.js +7 -3
  376. package/nodes/core/NodeUtils.cjs.js +1 -0
  377. package/nodes/core/NodeUtils.js +43 -39
  378. package/nodes/core/NodeVar.cjs.js +1 -0
  379. package/nodes/core/NodeVar.js +4 -2
  380. package/nodes/core/NodeVary.cjs.js +1 -0
  381. package/nodes/core/NodeVary.js +4 -2
  382. package/nodes/core/PropertyNode.cjs.js +1 -0
  383. package/nodes/core/PropertyNode.js +10 -4
  384. package/nodes/core/TempNode.cjs.js +1 -0
  385. package/nodes/core/TempNode.js +11 -5
  386. package/nodes/core/UniformNode.cjs.js +1 -0
  387. package/nodes/core/UniformNode.js +10 -4
  388. package/nodes/core/VarNode.cjs.js +1 -0
  389. package/nodes/core/VarNode.js +11 -3
  390. package/nodes/core/VaryNode.cjs.js +1 -0
  391. package/nodes/core/VaryNode.js +15 -6
  392. package/nodes/core/constants.cjs.js +1 -0
  393. package/nodes/core/constants.js +7 -20
  394. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  395. package/nodes/display/ColorSpaceNode.js +38 -34
  396. package/nodes/display/NormalMapNode.cjs.js +1 -0
  397. package/nodes/display/NormalMapNode.js +53 -35
  398. package/nodes/fog/FogNode.cjs.js +1 -0
  399. package/nodes/fog/FogNode.js +9 -5
  400. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  401. package/nodes/fog/FogRangeNode.js +9 -5
  402. package/nodes/functions/BSDFs.cjs.js +1 -0
  403. package/nodes/functions/BSDFs.js +118 -61
  404. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  405. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  406. package/nodes/lights/LightContextNode.cjs.js +1 -0
  407. package/nodes/lights/LightContextNode.js +23 -14
  408. package/nodes/lights/LightNode.cjs.js +1 -0
  409. package/nodes/lights/LightNode.js +31 -27
  410. package/nodes/lights/LightsNode.cjs.js +1 -0
  411. package/nodes/lights/LightsNode.js +28 -9
  412. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  413. package/nodes/loaders/NodeLoader.js +42 -27
  414. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  415. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  416. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  417. package/nodes/loaders/NodeObjectLoader.js +19 -9
  418. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  419. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  420. package/nodes/materials/Materials.cjs.js +1 -0
  421. package/nodes/materials/Materials.js +17 -14
  422. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  423. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  424. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  425. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  426. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  427. package/nodes/materials/NodeMaterial.js +36 -20
  428. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  429. package/nodes/materials/PointsNodeMaterial.js +10 -5
  430. package/nodes/math/CondNode.cjs.js +1 -0
  431. package/nodes/math/CondNode.js +23 -11
  432. package/nodes/math/MathNode.cjs.js +1 -0
  433. package/nodes/math/MathNode.js +142 -98
  434. package/nodes/math/OperatorNode.cjs.js +1 -0
  435. package/nodes/math/OperatorNode.js +46 -24
  436. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  437. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  438. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  439. package/nodes/parsers/GLSLNodeParser.js +13 -0
  440. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  441. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  442. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  443. package/nodes/parsers/WGSLNodeParser.js +13 -0
  444. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  445. package/nodes/procedural/CheckerNode.js +19 -13
  446. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  447. package/nodes/utils/ArrayElementNode.js +8 -4
  448. package/nodes/utils/ConvertNode.cjs.js +1 -0
  449. package/nodes/utils/ConvertNode.js +8 -3
  450. package/nodes/utils/JoinNode.cjs.js +1 -0
  451. package/nodes/utils/JoinNode.js +11 -7
  452. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  453. package/nodes/utils/MatcapUVNode.js +11 -8
  454. package/nodes/utils/OscNode.cjs.js +1 -0
  455. package/nodes/utils/OscNode.js +33 -27
  456. package/nodes/utils/SplitNode.cjs.js +1 -0
  457. package/nodes/utils/SplitNode.js +20 -6
  458. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  459. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  460. package/nodes/utils/TimerNode.cjs.js +1 -0
  461. package/nodes/utils/TimerNode.js +24 -20
  462. package/objects/GroundProjectedEnv.cjs.js +1 -0
  463. package/objects/GroundProjectedEnv.js +37 -22
  464. package/objects/Lensflare.cjs.js +1 -0
  465. package/objects/Lensflare.js +156 -86
  466. package/objects/LightningStorm.cjs.js +1 -0
  467. package/objects/LightningStorm.js +102 -38
  468. package/objects/MarchingCubes.cjs.js +1 -0
  469. package/objects/MarchingCubes.js +303 -150
  470. package/objects/Reflector.cjs.js +1 -0
  471. package/objects/Reflector.js +72 -50
  472. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  473. package/objects/ReflectorForSSRPass.js +131 -80
  474. package/objects/ReflectorRTT.cjs.js +1 -0
  475. package/objects/ReflectorRTT.js +7 -6
  476. package/objects/Refractor.cjs.js +1 -0
  477. package/objects/Refractor.js +106 -64
  478. package/objects/ShadowMesh.cjs.js +1 -0
  479. package/objects/ShadowMesh.js +17 -8
  480. package/objects/Sky.cjs.js +1 -0
  481. package/objects/Sky.js +80 -119
  482. package/objects/Water.cjs.js +1 -0
  483. package/objects/Water.js +127 -83
  484. package/objects/Water2.cjs.js +1 -0
  485. package/objects/Water2.js +108 -72
  486. package/offscreen/jank.cjs.js +1 -0
  487. package/offscreen/jank.js +14 -10
  488. package/offscreen/offscreen.cjs.js +1 -0
  489. package/offscreen/offscreen.js +5 -4
  490. package/offscreen/scene.cjs.js +1 -0
  491. package/offscreen/scene.js +48 -45
  492. package/package.json +3 -3
  493. package/physics/AmmoPhysics.cjs.js +1 -0
  494. package/physics/AmmoPhysics.js +71 -30
  495. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  496. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  497. package/postprocessing/AfterimagePass.cjs.js +1 -0
  498. package/postprocessing/AfterimagePass.js +49 -28
  499. package/postprocessing/BloomPass.cjs.js +1 -0
  500. package/postprocessing/BloomPass.js +69 -43
  501. package/postprocessing/BokehPass.cjs.js +1 -0
  502. package/postprocessing/BokehPass.js +69 -39
  503. package/postprocessing/ClearPass.cjs.js +1 -0
  504. package/postprocessing/ClearPass.js +25 -10
  505. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  506. package/postprocessing/CubeTexturePass.js +27 -28
  507. package/postprocessing/DotScreenPass.cjs.js +1 -0
  508. package/postprocessing/DotScreenPass.js +32 -24
  509. package/postprocessing/EffectComposer.cjs.js +1 -0
  510. package/postprocessing/EffectComposer.js +86 -39
  511. package/postprocessing/FilmPass.cjs.js +1 -0
  512. package/postprocessing/FilmPass.js +30 -25
  513. package/postprocessing/GlitchPass.cjs.js +1 -0
  514. package/postprocessing/GlitchPass.js +61 -38
  515. package/postprocessing/HalftonePass.cjs.js +1 -0
  516. package/postprocessing/HalftonePass.js +39 -19
  517. package/postprocessing/LUTPass.cjs.js +1 -0
  518. package/postprocessing/LUTPass.js +38 -13
  519. package/postprocessing/MaskPass.cjs.js +1 -0
  520. package/postprocessing/MaskPass.js +38 -19
  521. package/postprocessing/OutlinePass.cjs.js +1 -0
  522. package/postprocessing/OutlinePass.js +277 -135
  523. package/postprocessing/Pass.cjs.js +1 -0
  524. package/postprocessing/Pass.js +44 -20
  525. package/postprocessing/RenderPass.cjs.js +1 -0
  526. package/postprocessing/RenderPass.js +36 -13
  527. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  528. package/postprocessing/RenderPixelatedPass.js +58 -44
  529. package/postprocessing/SAOPass.cjs.js +1 -0
  530. package/postprocessing/SAOPass.js +189 -154
  531. package/postprocessing/SMAAPass.cjs.js +1 -0
  532. package/postprocessing/SMAAPass.js +84 -64
  533. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  534. package/postprocessing/SSAARenderPass.js +69 -121
  535. package/postprocessing/SSAOPass.cjs.js +1 -0
  536. package/postprocessing/SSAOPass.js +172 -123
  537. package/postprocessing/SSRPass.cjs.js +1 -0
  538. package/postprocessing/SSRPass.js +280 -211
  539. package/postprocessing/SavePass.cjs.js +1 -0
  540. package/postprocessing/SavePass.js +25 -20
  541. package/postprocessing/ShaderPass.cjs.js +1 -0
  542. package/postprocessing/ShaderPass.js +30 -14
  543. package/postprocessing/TAARenderPass.cjs.js +1 -0
  544. package/postprocessing/TAARenderPass.js +61 -42
  545. package/postprocessing/TexturePass.cjs.js +1 -0
  546. package/postprocessing/TexturePass.js +22 -21
  547. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  548. package/postprocessing/UnrealBloomPass.js +213 -105
  549. package/renderers/CSS2DRenderer.cjs.js +1 -0
  550. package/renderers/CSS2DRenderer.js +56 -44
  551. package/renderers/CSS3DRenderer.cjs.js +1 -0
  552. package/renderers/CSS3DRenderer.js +86 -53
  553. package/renderers/Projector.cjs.js +1 -0
  554. package/renderers/Projector.js +274 -107
  555. package/renderers/SVGRenderer.cjs.js +1 -0
  556. package/renderers/SVGRenderer.js +182 -72
  557. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  558. package/renderers/nodes/accessors/CameraNode.js +40 -29
  559. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  560. package/renderers/nodes/accessors/ModelNode.js +37 -28
  561. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  563. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  564. package/renderers/nodes/accessors/NormalNode.js +45 -35
  565. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  566. package/renderers/nodes/accessors/PositionNode.js +19 -18
  567. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  568. package/renderers/nodes/accessors/UVNode.js +10 -5
  569. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  570. package/renderers/nodes/core/AttributeNode.js +14 -5
  571. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  572. package/renderers/nodes/core/InputNode.js +14 -4
  573. package/renderers/nodes/core/Node.cjs.js +1 -0
  574. package/renderers/nodes/core/Node.js +17 -7
  575. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  576. package/renderers/nodes/core/NodeAttribute.js +6 -3
  577. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  578. package/renderers/nodes/core/NodeBuilder.js +154 -87
  579. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  580. package/renderers/nodes/core/NodeFrame.js +12 -9
  581. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  582. package/renderers/nodes/core/NodeSlot.js +3 -2
  583. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  584. package/renderers/nodes/core/NodeUniform.js +9 -4
  585. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  586. package/renderers/nodes/core/NodeVary.js +7 -4
  587. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  588. package/renderers/nodes/core/VaryNode.js +12 -6
  589. package/renderers/nodes/core/constants.cjs.js +1 -0
  590. package/renderers/nodes/core/constants.js +13 -16
  591. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  592. package/renderers/nodes/inputs/ColorNode.js +11 -5
  593. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  594. package/renderers/nodes/inputs/FloatNode.js +11 -5
  595. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  596. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  597. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  598. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  599. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  600. package/renderers/nodes/inputs/TextureNode.js +15 -7
  601. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  602. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  603. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  604. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  605. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  606. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  607. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  608. package/renderers/nodes/math/MathNode.js +30 -20
  609. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  610. package/renderers/nodes/math/OperatorNode.js +20 -4
  611. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  612. package/renderers/nodes/utils/SwitchNode.js +9 -4
  613. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  614. package/renderers/nodes/utils/TimerNode.js +10 -5
  615. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  616. package/renderers/webgpu/WebGPU.js +16 -14
  617. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  618. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  619. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  620. package/renderers/webgpu/WebGPUBackground.js +30 -13
  621. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  622. package/renderers/webgpu/WebGPUBinding.js +7 -4
  623. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  624. package/renderers/webgpu/WebGPUBindings.js +57 -21
  625. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  626. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  627. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  628. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  629. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  630. package/renderers/webgpu/WebGPUInfo.js +8 -3
  631. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  632. package/renderers/webgpu/WebGPUObjects.js +10 -5
  633. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  634. package/renderers/webgpu/WebGPUProperties.js +11 -5
  635. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  636. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  637. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  638. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  639. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  640. package/renderers/webgpu/WebGPURenderer.js +262 -124
  641. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  642. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  643. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  644. package/renderers/webgpu/WebGPUSampler.js +12 -7
  645. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  646. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  647. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  648. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  649. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  650. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  651. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  652. package/renderers/webgpu/WebGPUTextures.js +333 -186
  653. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  654. package/renderers/webgpu/WebGPUUniform.js +51 -25
  655. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  656. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  657. package/renderers/webgpu/constants.cjs.js +1 -0
  658. package/renderers/webgpu/constants.js +181 -190
  659. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  660. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  661. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  663. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  665. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  667. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  668. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  669. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  670. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  671. package/shaders/AfterimageShader.cjs.js +1 -0
  672. package/shaders/AfterimageShader.js +18 -28
  673. package/shaders/BasicShader.cjs.js +1 -0
  674. package/shaders/BasicShader.js +7 -9
  675. package/shaders/BleachBypassShader.cjs.js +1 -0
  676. package/shaders/BleachBypassShader.js +15 -31
  677. package/shaders/BlendShader.cjs.js +1 -0
  678. package/shaders/BlendShader.js +19 -26
  679. package/shaders/BokehShader.cjs.js +1 -0
  680. package/shaders/BokehShader.js +36 -98
  681. package/shaders/BokehShader2.cjs.js +1 -0
  682. package/shaders/BokehShader2.js +90 -261
  683. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  684. package/shaders/BrightnessContrastShader.js +19 -28
  685. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  686. package/shaders/ColorCorrectionShader.js +22 -26
  687. package/shaders/ColorifyShader.cjs.js +1 -0
  688. package/shaders/ColorifyShader.js +16 -24
  689. package/shaders/ConvolutionShader.cjs.js +1 -0
  690. package/shaders/ConvolutionShader.js +36 -40
  691. package/shaders/CopyShader.cjs.js +1 -0
  692. package/shaders/CopyShader.js +13 -21
  693. package/shaders/DOFMipMapShader.cjs.js +1 -0
  694. package/shaders/DOFMipMapShader.js +21 -28
  695. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  696. package/shaders/DepthLimitedBlurShader.js +40 -85
  697. package/shaders/DigitalGlitch.cjs.js +1 -0
  698. package/shaders/DigitalGlitch.js +46 -74
  699. package/shaders/DotScreenShader.cjs.js +1 -0
  700. package/shaders/DotScreenShader.js +27 -35
  701. package/shaders/FXAAShader.cjs.js +1 -0
  702. package/shaders/FXAAShader.js +19 -1094
  703. package/shaders/FilmShader.cjs.js +1 -0
  704. package/shaders/FilmShader.js +52 -38
  705. package/shaders/FocusShader.cjs.js +1 -0
  706. package/shaders/FocusShader.js +24 -51
  707. package/shaders/FreiChenShader.cjs.js +1 -0
  708. package/shaders/FreiChenShader.js +24 -57
  709. package/shaders/FresnelShader.cjs.js +1 -0
  710. package/shaders/FresnelShader.js +22 -43
  711. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  712. package/shaders/GammaCorrectionShader.js +11 -19
  713. package/shaders/GodRaysShader.cjs.js +1 -0
  714. package/shaders/GodRaysShader.js +94 -103
  715. package/shaders/HalftoneShader.cjs.js +1 -0
  716. package/shaders/HalftoneShader.js +65 -208
  717. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  718. package/shaders/HorizontalBlurShader.js +23 -7
  719. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  720. package/shaders/HorizontalTiltShiftShader.js +21 -33
  721. package/shaders/HueSaturationShader.cjs.js +1 -0
  722. package/shaders/HueSaturationShader.js +21 -37
  723. package/shaders/KaleidoShader.cjs.js +1 -0
  724. package/shaders/KaleidoShader.js +22 -30
  725. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  726. package/shaders/LuminosityHighPassShader.js +27 -33
  727. package/shaders/LuminosityShader.cjs.js +1 -0
  728. package/shaders/LuminosityShader.js +11 -21
  729. package/shaders/MirrorShader.cjs.js +1 -0
  730. package/shaders/MirrorShader.js +16 -31
  731. package/shaders/NormalMapShader.cjs.js +1 -0
  732. package/shaders/NormalMapShader.js +23 -27
  733. package/shaders/ParallaxShader.cjs.js +1 -0
  734. package/shaders/ParallaxShader.js +48 -107
  735. package/shaders/PixelShader.cjs.js +1 -0
  736. package/shaders/PixelShader.js +16 -24
  737. package/shaders/RGBShiftShader.cjs.js +1 -0
  738. package/shaders/RGBShiftShader.js +22 -26
  739. package/shaders/SAOShader.cjs.js +1 -0
  740. package/shaders/SAOShader.js +48 -132
  741. package/shaders/SMAAShader.cjs.js +1 -0
  742. package/shaders/SMAAShader.js +135 -256
  743. package/shaders/SSAOShader.cjs.js +1 -0
  744. package/shaders/SSAOShader.js +81 -153
  745. package/shaders/SSRShader.cjs.js +1 -0
  746. package/shaders/SSRShader.js +87 -32
  747. package/shaders/SepiaShader.cjs.js +1 -0
  748. package/shaders/SepiaShader.js +15 -25
  749. package/shaders/SobelOperatorShader.cjs.js +1 -0
  750. package/shaders/SobelOperatorShader.js +29 -40
  751. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  752. package/shaders/SubsurfaceScatteringShader.js +39 -53
  753. package/shaders/TechnicolorShader.cjs.js +1 -0
  754. package/shaders/TechnicolorShader.js +13 -20
  755. package/shaders/ToneMapShader.cjs.js +1 -0
  756. package/shaders/ToneMapShader.js +28 -44
  757. package/shaders/ToonShader.cjs.js +1 -0
  758. package/shaders/ToonShader.js +96 -172
  759. package/shaders/TriangleBlurShader.cjs.js +1 -0
  760. package/shaders/TriangleBlurShader.js +23 -32
  761. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  762. package/shaders/UnpackDepthRGBAShader.js +14 -22
  763. package/shaders/VerticalBlurShader.cjs.js +1 -0
  764. package/shaders/VerticalBlurShader.js +23 -7
  765. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  766. package/shaders/VerticalTiltShiftShader.js +21 -33
  767. package/shaders/VignetteShader.cjs.js +1 -0
  768. package/shaders/VignetteShader.js +28 -24
  769. package/shaders/VolumeShader.cjs.js +1 -0
  770. package/shaders/VolumeShader.js +77 -174
  771. package/shaders/WaterRefractionShader.cjs.js +1 -0
  772. package/shaders/WaterRefractionShader.js +6 -38
  773. package/shaders/types.cjs.js +1 -0
  774. package/shaders/types.js +1 -1
  775. package/textures/FlakesTexture.cjs.js +1 -0
  776. package/textures/FlakesTexture.js +10 -8
  777. package/types/helpers.cjs.js +1 -0
  778. package/types/helpers.js +2 -3
  779. package/types/shared.cjs.js +1 -0
  780. package/types/shared.js +1 -0
  781. package/types/utils.cjs.js +1 -0
  782. package/types/utils.js +1 -0
  783. package/utils/BufferGeometryUtils.cjs.js +1 -0
  784. package/utils/BufferGeometryUtils.js +325 -251
  785. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  786. package/utils/GeometryCompressionUtils.js +239 -241
  787. package/utils/GeometryUtils.cjs.js +1 -0
  788. package/utils/GeometryUtils.js +94 -41
  789. package/utils/LDrawUtils.cjs.js +1 -0
  790. package/utils/LDrawUtils.d.ts +5 -0
  791. package/utils/LDrawUtils.js +144 -0
  792. package/utils/RoughnessMipmapper.cjs.js +1 -0
  793. package/utils/RoughnessMipmapper.js +82 -38
  794. package/utils/SceneUtils.cjs.js +1 -0
  795. package/utils/SceneUtils.js +20 -15
  796. package/utils/ShadowMapViewer.cjs.js +1 -0
  797. package/utils/ShadowMapViewer.js +95 -49
  798. package/utils/SkeletonUtils.cjs.js +1 -0
  799. package/utils/SkeletonUtils.js +165 -74
  800. package/utils/UVsDebug.cjs.js +1 -0
  801. package/utils/UVsDebug.js +62 -32
  802. package/utils/WorkerPool.cjs.js +1 -0
  803. package/utils/WorkerPool.js +33 -13
  804. package/webxr/ARButton.cjs.js +1 -0
  805. package/webxr/ARButton.js +98 -72
  806. package/webxr/OculusHandModel.cjs.js +1 -0
  807. package/webxr/OculusHandModel.js +37 -18
  808. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  809. package/webxr/OculusHandPointerModel.js +80 -58
  810. package/webxr/Text2D.cjs.js +1 -0
  811. package/webxr/Text2D.js +19 -37
  812. package/webxr/VRButton.cjs.js +1 -0
  813. package/webxr/VRButton.js +90 -59
  814. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  815. package/webxr/XRControllerModelFactory.js +116 -58
  816. package/webxr/XREstimatedLight.cjs.js +1 -0
  817. package/webxr/XREstimatedLight.js +66 -39
  818. package/webxr/XRHandMeshModel.cjs.js +1 -0
  819. package/webxr/XRHandMeshModel.js +29 -40
  820. package/webxr/XRHandModelFactory.cjs.js +1 -0
  821. package/webxr/XRHandModelFactory.js +31 -28
  822. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  823. package/webxr/XRHandPrimitiveModel.js +27 -41
  824. package/animation/AnimationClipCreator.mjs +0 -57
  825. package/animation/CCDIKSolver.mjs +0 -234
  826. package/animation/MMDAnimationHelper.mjs +0 -514
  827. package/animation/MMDPhysics.mjs +0 -769
  828. package/cameras/CinematicCamera.mjs +0 -129
  829. package/controls/ArcballControls.mjs +0 -1737
  830. package/controls/DeviceOrientationControls.mjs +0 -74
  831. package/controls/DragControls.mjs +0 -172
  832. package/controls/FirstPersonControls.mjs +0 -220
  833. package/controls/FlyControls.mjs +0 -239
  834. package/controls/OrbitControls.mjs +0 -731
  835. package/controls/PointerLockControls.mjs +0 -88
  836. package/controls/TrackballControls.mjs +0 -481
  837. package/controls/TransformControls.mjs +0 -1068
  838. package/controls/experimental/CameraControls.mjs +0 -673
  839. package/csm/CSM.mjs +0 -244
  840. package/csm/CSMFrustum.mjs +0 -75
  841. package/csm/CSMHelper.mjs +0 -114
  842. package/csm/CSMShader.mjs +0 -251
  843. package/curves/CurveExtras.mjs +0 -224
  844. package/curves/NURBSCurve.mjs +0 -35
  845. package/curves/NURBSSurface.mjs +0 -28
  846. package/curves/NURBSUtils.mjs +0 -226
  847. package/deprecated/Geometry.mjs +0 -966
  848. package/effects/AnaglyphEffect.mjs +0 -120
  849. package/effects/AsciiEffect.mjs +0 -173
  850. package/effects/OutlineEffect.mjs +0 -295
  851. package/effects/ParallaxBarrierEffect.mjs +0 -64
  852. package/effects/PeppersGhostEffect.mjs +0 -85
  853. package/effects/StereoEffect.mjs +0 -32
  854. package/environments/RoomEnvironment.mjs +0 -78
  855. package/exporters/ColladaExporter.mjs +0 -299
  856. package/exporters/DRACOExporter.mjs +0 -132
  857. package/exporters/GLTFExporter.mjs +0 -1381
  858. package/exporters/MMDExporter.mjs +0 -102
  859. package/exporters/OBJExporter.mjs +0 -166
  860. package/exporters/PLYExporter.mjs +0 -278
  861. package/exporters/STLExporter.mjs +0 -129
  862. package/exporters/USDZExporter.mjs +0 -328
  863. package/geometries/BoxLineGeometry.mjs +0 -45
  864. package/geometries/ConvexGeometry.mjs +0 -29
  865. package/geometries/DecalGeometry.mjs +0 -184
  866. package/geometries/LightningStrike.mjs +0 -547
  867. package/geometries/ParametricGeometries.mjs +0 -129
  868. package/geometries/ParametricGeometry.mjs +0 -63
  869. package/geometries/RoundedBoxGeometry.mjs +0 -91
  870. package/geometries/TeapotGeometry.mjs +0 -1557
  871. package/geometries/TextGeometry.mjs +0 -23
  872. package/helpers/LightProbeHelper.mjs +0 -72
  873. package/helpers/PositionalAudioHelper.mjs +0 -68
  874. package/helpers/RectAreaLightHelper.mjs +0 -44
  875. package/helpers/VertexNormalsHelper.mjs +0 -54
  876. package/helpers/VertexTangentsHelper.mjs +0 -45
  877. package/index.mjs +0 -968
  878. package/interactive/SelectionBox.mjs +0 -137
  879. package/interactive/SelectionHelper.mjs +0 -54
  880. package/libs/MeshoptDecoder.mjs +0 -210
  881. package/libs/MotionControllers.mjs +0 -261
  882. package/lights/LightProbeGenerator.mjs +0 -145
  883. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  884. package/lines/Line2.mjs +0 -13
  885. package/lines/LineGeometry.mjs +0 -44
  886. package/lines/LineMaterial.mjs +0 -539
  887. package/lines/LineSegments2.mjs +0 -202
  888. package/lines/LineSegmentsGeometry.mjs +0 -124
  889. package/lines/Wireframe.mjs +0 -31
  890. package/lines/WireframeGeometry2.mjs +0 -13
  891. package/loaders/3DMLoader.mjs +0 -802
  892. package/loaders/3MFLoader.mjs +0 -837
  893. package/loaders/AMFLoader.mjs +0 -284
  894. package/loaders/AssimpLoader.mjs +0 -1396
  895. package/loaders/BVHLoader.mjs +0 -207
  896. package/loaders/BasisTextureLoader.mjs +0 -474
  897. package/loaders/ColladaLoader.mjs +0 -2403
  898. package/loaders/DDSLoader.mjs +0 -148
  899. package/loaders/DRACOLoader.mjs +0 -340
  900. package/loaders/EXRLoader.mjs +0 -1351
  901. package/loaders/FBXLoader.mjs +0 -2362
  902. package/loaders/FontLoader.mjs +0 -111
  903. package/loaders/GCodeLoader.mjs +0 -141
  904. package/loaders/GLTFLoader.mjs +0 -2316
  905. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  906. package/loaders/KMZLoader.mjs +0 -75
  907. package/loaders/KTX2Loader.mjs +0 -427
  908. package/loaders/KTXLoader.mjs +0 -87
  909. package/loaders/LDrawLoader.mjs +0 -1409
  910. package/loaders/LUT3dlLoader.mjs +0 -100
  911. package/loaders/LUTCubeLoader.mjs +0 -104
  912. package/loaders/LWOLoader.mjs +0 -625
  913. package/loaders/LottieLoader.mjs +0 -47
  914. package/loaders/MD2Loader.mjs +0 -359
  915. package/loaders/MDDLoader.mjs +0 -58
  916. package/loaders/MMDLoader.mjs +0 -998
  917. package/loaders/MTLLoader.mjs +0 -280
  918. package/loaders/NRRDLoader.mjs +0 -401
  919. package/loaders/NodeMaterialLoader.mjs +0 -146
  920. package/loaders/OBJLoader.mjs +0 -487
  921. package/loaders/PCDLoader.mjs +0 -248
  922. package/loaders/PDBLoader.mjs +0 -246
  923. package/loaders/PLYLoader.mjs +0 -317
  924. package/loaders/PRWMLoader.mjs +0 -160
  925. package/loaders/PVRLoader.mjs +0 -131
  926. package/loaders/RGBELoader.mjs +0 -244
  927. package/loaders/RGBMLoader.mjs +0 -998
  928. package/loaders/STLLoader.mjs +0 -190
  929. package/loaders/SVGLoader.mjs +0 -1709
  930. package/loaders/TDSLoader.mjs +0 -480
  931. package/loaders/TGALoader.mjs +0 -285
  932. package/loaders/TTFLoader.mjs +0 -131
  933. package/loaders/TiltLoader.mjs +0 -373
  934. package/loaders/VOXLoader.mjs +0 -431
  935. package/loaders/VRMLLoader.mjs +0 -2093
  936. package/loaders/VRMLoader.mjs +0 -38
  937. package/loaders/VTKLoader.mjs +0 -646
  938. package/loaders/XLoader.mjs +0 -1258
  939. package/loaders/XYZLoader.mjs +0 -60
  940. package/loaders/lwo/IFFParser.mjs +0 -697
  941. package/loaders/lwo/LWO2Parser.mjs +0 -327
  942. package/loaders/lwo/LWO3Parser.mjs +0 -298
  943. package/math/Capsule.mjs +0 -100
  944. package/math/ColorConverter.mjs +0 -51
  945. package/math/ConvexHull.mjs +0 -574
  946. package/math/ImprovedNoise.mjs +0 -302
  947. package/math/Lut.mjs +0 -135
  948. package/math/MeshSurfaceSampler.mjs +0 -107
  949. package/math/OBB.mjs +0 -235
  950. package/math/Octree.mjs +0 -278
  951. package/math/SimplexNoise.mjs +0 -425
  952. package/misc/ConvexObjectBreaker.mjs +0 -292
  953. package/misc/GPUComputationRenderer.mjs +0 -171
  954. package/misc/Gyroscope.mjs +0 -35
  955. package/misc/MD2Character.mjs +0 -162
  956. package/misc/MD2CharacterComplex.mjs +0 -328
  957. package/misc/MorphAnimMesh.mjs +0 -40
  958. package/misc/MorphBlendMesh.mjs +0 -179
  959. package/misc/ProgressiveLightmap.mjs +0 -166
  960. package/misc/RollerCoaster.mjs +0 -346
  961. package/misc/TubePainter.mjs +0 -123
  962. package/misc/Volume.mjs +0 -244
  963. package/misc/VolumeSlice.mjs +0 -106
  964. package/misc/WebGL.mjs +0 -74
  965. package/modifiers/CurveModifier.mjs +0 -182
  966. package/modifiers/EdgeSplitModifier.mjs +0 -162
  967. package/modifiers/SimplifyModifier.mjs +0 -282
  968. package/modifiers/TessellateModifier.mjs +0 -206
  969. package/nodes/Nodes.mjs +0 -400
  970. package/nodes/ShaderNode.mjs +0 -408
  971. package/nodes/accessors/BufferNode.mjs +0 -15
  972. package/nodes/accessors/CameraNode.mjs +0 -44
  973. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  974. package/nodes/accessors/MaterialNode.mjs +0 -71
  975. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  976. package/nodes/accessors/ModelNode.mjs +0 -9
  977. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  978. package/nodes/accessors/NormalNode.mjs +0 -62
  979. package/nodes/accessors/Object3DNode.mjs +0 -76
  980. package/nodes/accessors/PointUVNode.mjs +0 -13
  981. package/nodes/accessors/PositionNode.mjs +0 -65
  982. package/nodes/accessors/ReferenceNode.mjs +0 -37
  983. package/nodes/accessors/ReflectNode.mjs +0 -43
  984. package/nodes/accessors/SkinningNode.mjs +0 -58
  985. package/nodes/accessors/TextureNode.mjs +0 -54
  986. package/nodes/accessors/UVNode.mjs +0 -23
  987. package/nodes/core/ArrayUniformNode.mjs +0 -14
  988. package/nodes/core/AttributeNode.mjs +0 -30
  989. package/nodes/core/BypassNode.mjs +0 -22
  990. package/nodes/core/CodeNode.mjs +0 -28
  991. package/nodes/core/ConstNode.mjs +0 -14
  992. package/nodes/core/ContextNode.mjs +0 -22
  993. package/nodes/core/ExpressionNode.mjs +0 -19
  994. package/nodes/core/FunctionCallNode.mjs +0 -37
  995. package/nodes/core/FunctionNode.mjs +0 -56
  996. package/nodes/core/InputNode.mjs +0 -38
  997. package/nodes/core/Node.mjs +0 -139
  998. package/nodes/core/NodeAttribute.mjs +0 -10
  999. package/nodes/core/NodeBuilder.mjs +0 -395
  1000. package/nodes/core/NodeCode.mjs +0 -11
  1001. package/nodes/core/NodeFrame.mjs +0 -35
  1002. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1003. package/nodes/core/NodeKeywords.mjs +0 -44
  1004. package/nodes/core/NodeUniform.mjs +0 -18
  1005. package/nodes/core/NodeUtils.mjs +0 -57
  1006. package/nodes/core/NodeVar.mjs +0 -10
  1007. package/nodes/core/NodeVary.mjs +0 -10
  1008. package/nodes/core/PropertyNode.mjs +0 -21
  1009. package/nodes/core/TempNode.mjs +0 -25
  1010. package/nodes/core/UniformNode.mjs +0 -23
  1011. package/nodes/core/VarNode.mjs +0 -31
  1012. package/nodes/core/VaryNode.mjs +0 -30
  1013. package/nodes/core/constants.mjs +0 -24
  1014. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1015. package/nodes/display/NormalMapNode.mjs +0 -54
  1016. package/nodes/fog/FogNode.mjs +0 -15
  1017. package/nodes/fog/FogRangeNode.mjs +0 -17
  1018. package/nodes/functions/BSDFs.mjs +0 -64
  1019. package/nodes/lights/LightContextNode.mjs +0 -35
  1020. package/nodes/lights/LightNode.mjs +0 -58
  1021. package/nodes/lights/LightsNode.mjs +0 -59
  1022. package/nodes/loaders/NodeLoader.mjs +0 -66
  1023. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1024. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1025. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1026. package/nodes/materials/Materials.mjs +0 -28
  1027. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1028. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1029. package/nodes/materials/NodeMaterial.mjs +0 -64
  1030. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1031. package/nodes/math/CondNode.mjs +0 -38
  1032. package/nodes/math/MathNode.mjs +0 -163
  1033. package/nodes/math/OperatorNode.mjs +0 -103
  1034. package/nodes/procedural/CheckerNode.mjs +0 -21
  1035. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1036. package/nodes/utils/ConvertNode.mjs +0 -25
  1037. package/nodes/utils/JoinNode.mjs +0 -26
  1038. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1039. package/nodes/utils/OscNode.mjs +0 -50
  1040. package/nodes/utils/SplitNode.mjs +0 -45
  1041. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1042. package/nodes/utils/TimerNode.mjs +0 -44
  1043. package/objects/GroundProjectedEnv.mjs +0 -130
  1044. package/objects/Lensflare.mjs +0 -262
  1045. package/objects/LightningStorm.mjs +0 -110
  1046. package/objects/MarchingCubes.mjs +0 -457
  1047. package/objects/Reflector.mjs +0 -166
  1048. package/objects/ReflectorForSSRPass.mjs +0 -247
  1049. package/objects/ReflectorRTT.mjs +0 -10
  1050. package/objects/Refractor.mjs +0 -178
  1051. package/objects/ShadowMesh.mjs +0 -41
  1052. package/objects/Sky.mjs +0 -124
  1053. package/objects/Water.mjs +0 -235
  1054. package/objects/Water2.mjs +0 -252
  1055. package/offscreen/jank.mjs +0 -27
  1056. package/offscreen/offscreen.mjs +0 -5
  1057. package/offscreen/scene.mjs +0 -52
  1058. package/physics/AmmoPhysics.mjs +0 -165
  1059. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1060. package/postprocessing/AfterimagePass.mjs +0 -55
  1061. package/postprocessing/BloomPass.mjs +0 -90
  1062. package/postprocessing/BokehPass.mjs +0 -76
  1063. package/postprocessing/ClearPass.mjs +0 -27
  1064. package/postprocessing/CubeTexturePass.mjs +0 -49
  1065. package/postprocessing/DotScreenPass.mjs +0 -40
  1066. package/postprocessing/EffectComposer.mjs +0 -139
  1067. package/postprocessing/FilmPass.mjs +0 -42
  1068. package/postprocessing/GlitchPass.mjs +0 -75
  1069. package/postprocessing/HalftonePass.mjs +0 -44
  1070. package/postprocessing/LUTPass.mjs +0 -136
  1071. package/postprocessing/MaskPass.mjs +0 -60
  1072. package/postprocessing/OutlinePass.mjs +0 -438
  1073. package/postprocessing/Pass.mjs +0 -37
  1074. package/postprocessing/RenderPass.mjs +0 -48
  1075. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1076. package/postprocessing/SAOPass.mjs +0 -282
  1077. package/postprocessing/SMAAPass.mjs +0 -112
  1078. package/postprocessing/SSAARenderPass.mjs +0 -170
  1079. package/postprocessing/SSAOPass.mjs +0 -265
  1080. package/postprocessing/SSRPass.mjs +0 -432
  1081. package/postprocessing/SavePass.mjs +0 -37
  1082. package/postprocessing/ShaderPass.mjs +0 -39
  1083. package/postprocessing/TAARenderPass.mjs +0 -88
  1084. package/postprocessing/TexturePass.mjs +0 -39
  1085. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1086. package/renderers/CSS2DRenderer.mjs +0 -112
  1087. package/renderers/CSS3DRenderer.mjs +0 -133
  1088. package/renderers/Projector.mjs +0 -511
  1089. package/renderers/SVGRenderer.mjs +0 -306
  1090. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1091. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1092. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1093. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1094. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1095. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1096. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1097. package/renderers/nodes/core/InputNode.mjs +0 -31
  1098. package/renderers/nodes/core/Node.mjs +0 -34
  1099. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1100. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1101. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1102. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1103. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1104. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1105. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1106. package/renderers/nodes/core/constants.mjs +0 -22
  1107. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1108. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1110. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1112. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1113. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1114. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1115. package/renderers/nodes/math/MathNode.mjs +0 -55
  1116. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1117. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1118. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1119. package/renderers/webgpu/WebGPU.mjs +0 -24
  1120. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1121. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1122. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1123. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1124. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1125. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1126. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1127. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1128. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1129. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1130. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1131. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1132. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1133. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1134. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1136. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1137. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1138. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1139. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1140. package/renderers/webgpu/constants.mjs +0 -230
  1141. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1142. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1143. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1145. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1146. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1147. package/shaders/AfterimageShader.mjs +0 -32
  1148. package/shaders/BasicShader.mjs +0 -12
  1149. package/shaders/BleachBypassShader.mjs +0 -35
  1150. package/shaders/BlendShader.mjs +0 -30
  1151. package/shaders/BokehShader.mjs +0 -106
  1152. package/shaders/BokehShader2.mjs +0 -269
  1153. package/shaders/BrightnessContrastShader.mjs +0 -32
  1154. package/shaders/ColorCorrectionShader.mjs +0 -30
  1155. package/shaders/ColorifyShader.mjs +0 -28
  1156. package/shaders/ConvolutionShader.mjs +0 -55
  1157. package/shaders/CopyShader.mjs +0 -25
  1158. package/shaders/DOFMipMapShader.mjs +0 -32
  1159. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1160. package/shaders/DigitalGlitch.mjs +0 -78
  1161. package/shaders/DotScreenShader.mjs +0 -39
  1162. package/shaders/FXAAShader.mjs +0 -1098
  1163. package/shaders/FilmShader.mjs +0 -42
  1164. package/shaders/FocusShader.mjs +0 -55
  1165. package/shaders/FreiChenShader.mjs +0 -61
  1166. package/shaders/FresnelShader.mjs +0 -47
  1167. package/shaders/GammaCorrectionShader.mjs +0 -23
  1168. package/shaders/GodRaysShader.mjs +0 -146
  1169. package/shaders/HalftoneShader.mjs +0 -212
  1170. package/shaders/HorizontalBlurShader.mjs +0 -43
  1171. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1172. package/shaders/HueSaturationShader.mjs +0 -41
  1173. package/shaders/KaleidoShader.mjs +0 -34
  1174. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1175. package/shaders/LuminosityShader.mjs +0 -25
  1176. package/shaders/MirrorShader.mjs +0 -35
  1177. package/shaders/NormalMapShader.mjs +0 -31
  1178. package/shaders/ParallaxShader.mjs +0 -113
  1179. package/shaders/PixelShader.mjs +0 -28
  1180. package/shaders/RGBShiftShader.mjs +0 -30
  1181. package/shaders/SAOShader.mjs +0 -144
  1182. package/shaders/SMAAShader.mjs +0 -272
  1183. package/shaders/SSAOShader.mjs +0 -172
  1184. package/shaders/SSRShader.mjs +0 -324
  1185. package/shaders/SepiaShader.mjs +0 -29
  1186. package/shaders/SobelOperatorShader.mjs +0 -44
  1187. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1188. package/shaders/TechnicolorShader.mjs +0 -24
  1189. package/shaders/ToneMapShader.mjs +0 -48
  1190. package/shaders/ToonShader.mjs +0 -188
  1191. package/shaders/TriangleBlurShader.mjs +0 -36
  1192. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1193. package/shaders/VerticalBlurShader.mjs +0 -44
  1194. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1195. package/shaders/VignetteShader.mjs +0 -28
  1196. package/shaders/VolumeShader.mjs +0 -178
  1197. package/shaders/WaterRefractionShader.mjs +0 -57
  1198. package/textures/FlakesTexture.mjs +0 -30
  1199. package/types/helpers.mjs +0 -4
  1200. package/utils/BufferGeometryUtils.mjs +0 -570
  1201. package/utils/GeometryCompressionUtils.mjs +0 -547
  1202. package/utils/GeometryUtils.mjs +0 -108
  1203. package/utils/RoughnessMipmapper.mjs +0 -213
  1204. package/utils/SceneUtils.mjs +0 -36
  1205. package/utils/ShadowMapViewer.mjs +0 -114
  1206. package/utils/SkeletonUtils.mjs +0 -292
  1207. package/utils/UVsDebug.mjs +0 -85
  1208. package/utils/WorkerPool.mjs +0 -62
  1209. package/webxr/ARButton.mjs +0 -119
  1210. package/webxr/OculusHandModel.mjs +0 -71
  1211. package/webxr/OculusHandPointerModel.mjs +0 -207
  1212. package/webxr/Text2D.mjs +0 -31
  1213. package/webxr/VRButton.mjs +0 -105
  1214. package/webxr/XRControllerModelFactory.mjs +0 -146
  1215. package/webxr/XREstimatedLight.mjs +0 -126
  1216. package/webxr/XRHandMeshModel.mjs +0 -73
  1217. package/webxr/XRHandModelFactory.mjs +0 -61
  1218. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,86 +1,161 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- class TransformControls extends THREE.Object3D {
5
- constructor(camera, domElement) {
1
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
+ import { Object3D, Raycaster, Vector3, Quaternion, Euler, Matrix4, Color, MeshBasicMaterial, DoubleSide, LineBasicMaterial, CylinderGeometry, BoxGeometry, BufferGeometry, Float32BufferAttribute, Mesh, Line, OctahedronGeometry, PlaneGeometry, TorusGeometry, SphereGeometry } from 'three';
3
+
4
+ class TransformControls extends Object3D {
5
+ // events
6
+ constructor(camera, _domElement) {
6
7
  super();
7
- this.isTransformControls = true;
8
- this.visible = false;
9
- this.raycaster = new THREE.Raycaster();
10
- this.tempVector = new THREE.Vector3();
11
- this.tempVector2 = new THREE.Vector3();
12
- this.tempQuaternion = new THREE.Quaternion();
13
- this.unit = {
14
- X: new THREE.Vector3(1, 0, 0),
15
- Y: new THREE.Vector3(0, 1, 0),
16
- Z: new THREE.Vector3(0, 0, 1)
17
- };
18
- this.pointStart = new THREE.Vector3();
19
- this.pointEnd = new THREE.Vector3();
20
- this.offset = new THREE.Vector3();
21
- this.rotationAxis = new THREE.Vector3();
22
- this.startNorm = new THREE.Vector3();
23
- this.endNorm = new THREE.Vector3();
24
- this.rotationAngle = 0;
25
- this.cameraPosition = new THREE.Vector3();
26
- this.cameraQuaternion = new THREE.Quaternion();
27
- this.cameraScale = new THREE.Vector3();
28
- this.parentPosition = new THREE.Vector3();
29
- this.parentQuaternion = new THREE.Quaternion();
30
- this.parentQuaternionInv = new THREE.Quaternion();
31
- this.parentScale = new THREE.Vector3();
32
- this.worldPositionStart = new THREE.Vector3();
33
- this.worldQuaternionStart = new THREE.Quaternion();
34
- this.worldScaleStart = new THREE.Vector3();
35
- this.worldPosition = new THREE.Vector3();
36
- this.worldQuaternion = new THREE.Quaternion();
37
- this.worldQuaternionInv = new THREE.Quaternion();
38
- this.worldScale = new THREE.Vector3();
39
- this.eye = new THREE.Vector3();
40
- this.positionStart = new THREE.Vector3();
41
- this.quaternionStart = new THREE.Quaternion();
42
- this.scaleStart = new THREE.Vector3();
43
- this.enabled = true;
44
- this.axis = null;
45
- this.mode = "translate";
46
- this.translationSnap = null;
47
- this.rotationSnap = null;
48
- this.scaleSnap = null;
49
- this.space = "world";
50
- this.size = 1;
51
- this.dragging = false;
52
- this.showX = true;
53
- this.showY = true;
54
- this.showZ = true;
55
- this.changeEvent = { type: "change" };
56
- this.mouseDownEvent = { type: "mouseDown", mode: this.mode };
57
- this.mouseUpEvent = { type: "mouseUp", mode: this.mode };
58
- this.objectChangeEvent = { type: "objectChange" };
59
- this.intersectObjectWithRay = (object, raycaster, includeInvisible) => {
8
+
9
+ _defineProperty(this, "isTransformControls", true);
10
+
11
+ _defineProperty(this, "visible", false);
12
+
13
+ _defineProperty(this, "domElement", void 0);
14
+
15
+ _defineProperty(this, "raycaster", new Raycaster());
16
+
17
+ _defineProperty(this, "gizmo", void 0);
18
+
19
+ _defineProperty(this, "plane", void 0);
20
+
21
+ _defineProperty(this, "tempVector", new Vector3());
22
+
23
+ _defineProperty(this, "tempVector2", new Vector3());
24
+
25
+ _defineProperty(this, "tempQuaternion", new Quaternion());
26
+
27
+ _defineProperty(this, "unit", {
28
+ X: new Vector3(1, 0, 0),
29
+ Y: new Vector3(0, 1, 0),
30
+ Z: new Vector3(0, 0, 1)
31
+ });
32
+
33
+ _defineProperty(this, "pointStart", new Vector3());
34
+
35
+ _defineProperty(this, "pointEnd", new Vector3());
36
+
37
+ _defineProperty(this, "offset", new Vector3());
38
+
39
+ _defineProperty(this, "rotationAxis", new Vector3());
40
+
41
+ _defineProperty(this, "startNorm", new Vector3());
42
+
43
+ _defineProperty(this, "endNorm", new Vector3());
44
+
45
+ _defineProperty(this, "rotationAngle", 0);
46
+
47
+ _defineProperty(this, "cameraPosition", new Vector3());
48
+
49
+ _defineProperty(this, "cameraQuaternion", new Quaternion());
50
+
51
+ _defineProperty(this, "cameraScale", new Vector3());
52
+
53
+ _defineProperty(this, "parentPosition", new Vector3());
54
+
55
+ _defineProperty(this, "parentQuaternion", new Quaternion());
56
+
57
+ _defineProperty(this, "parentQuaternionInv", new Quaternion());
58
+
59
+ _defineProperty(this, "parentScale", new Vector3());
60
+
61
+ _defineProperty(this, "worldPositionStart", new Vector3());
62
+
63
+ _defineProperty(this, "worldQuaternionStart", new Quaternion());
64
+
65
+ _defineProperty(this, "worldScaleStart", new Vector3());
66
+
67
+ _defineProperty(this, "worldPosition", new Vector3());
68
+
69
+ _defineProperty(this, "worldQuaternion", new Quaternion());
70
+
71
+ _defineProperty(this, "worldQuaternionInv", new Quaternion());
72
+
73
+ _defineProperty(this, "worldScale", new Vector3());
74
+
75
+ _defineProperty(this, "eye", new Vector3());
76
+
77
+ _defineProperty(this, "positionStart", new Vector3());
78
+
79
+ _defineProperty(this, "quaternionStart", new Quaternion());
80
+
81
+ _defineProperty(this, "scaleStart", new Vector3());
82
+
83
+ _defineProperty(this, "camera", void 0);
84
+
85
+ _defineProperty(this, "object", void 0);
86
+
87
+ _defineProperty(this, "enabled", true);
88
+
89
+ _defineProperty(this, "axis", null);
90
+
91
+ _defineProperty(this, "mode", 'translate');
92
+
93
+ _defineProperty(this, "translationSnap", null);
94
+
95
+ _defineProperty(this, "rotationSnap", null);
96
+
97
+ _defineProperty(this, "scaleSnap", null);
98
+
99
+ _defineProperty(this, "space", 'world');
100
+
101
+ _defineProperty(this, "size", 1);
102
+
103
+ _defineProperty(this, "dragging", false);
104
+
105
+ _defineProperty(this, "showX", true);
106
+
107
+ _defineProperty(this, "showY", true);
108
+
109
+ _defineProperty(this, "showZ", true);
110
+
111
+ _defineProperty(this, "changeEvent", {
112
+ type: 'change'
113
+ });
114
+
115
+ _defineProperty(this, "mouseDownEvent", {
116
+ type: 'mouseDown',
117
+ mode: this.mode
118
+ });
119
+
120
+ _defineProperty(this, "mouseUpEvent", {
121
+ type: 'mouseUp',
122
+ mode: this.mode
123
+ });
124
+
125
+ _defineProperty(this, "objectChangeEvent", {
126
+ type: 'objectChange'
127
+ });
128
+
129
+ _defineProperty(this, "intersectObjectWithRay", (object, raycaster, includeInvisible) => {
60
130
  const allIntersections = raycaster.intersectObject(object, true);
131
+
61
132
  for (let i = 0; i < allIntersections.length; i++) {
62
133
  if (allIntersections[i].object.visible || includeInvisible) {
63
134
  return allIntersections[i];
64
135
  }
65
136
  }
137
+
66
138
  return false;
67
- };
68
- this.attach = (object) => {
139
+ });
140
+
141
+ _defineProperty(this, "attach", object => {
69
142
  this.object = object;
70
143
  this.visible = true;
71
144
  return this;
72
- };
73
- this.detach = () => {
74
- this.object = void 0;
145
+ });
146
+
147
+ _defineProperty(this, "detach", () => {
148
+ this.object = undefined;
75
149
  this.visible = false;
76
150
  this.axis = null;
77
151
  return this;
78
- };
79
- this.reset = () => {
80
- if (!this.enabled)
81
- return this;
152
+ });
153
+
154
+ _defineProperty(this, "reset", () => {
155
+ if (!this.enabled) return this;
156
+
82
157
  if (this.dragging) {
83
- if (this.object !== void 0) {
158
+ if (this.object !== undefined) {
84
159
  this.object.position.copy(this.positionStart);
85
160
  this.object.quaternion.copy(this.quaternionStart);
86
161
  this.object.scale.copy(this.scaleStart);
@@ -89,144 +164,168 @@ class TransformControls extends THREE.Object3D {
89
164
  this.pointStart.copy(this.pointEnd);
90
165
  }
91
166
  }
167
+
92
168
  return this;
93
- };
94
- this.updateMatrixWorld = () => {
95
- if (this.object !== void 0) {
169
+ });
170
+
171
+ _defineProperty(this, "updateMatrixWorld", () => {
172
+ if (this.object !== undefined) {
96
173
  this.object.updateMatrixWorld();
174
+
97
175
  if (this.object.parent === null) {
98
- console.error("TransformControls: The attached 3D object must be a part of the scene graph.");
176
+ console.error('TransformControls: The attached 3D object must be a part of the scene graph.');
99
177
  } else {
100
178
  this.object.parent.matrixWorld.decompose(this.parentPosition, this.parentQuaternion, this.parentScale);
101
179
  }
180
+
102
181
  this.object.matrixWorld.decompose(this.worldPosition, this.worldQuaternion, this.worldScale);
103
182
  this.parentQuaternionInv.copy(this.parentQuaternion).invert();
104
183
  this.worldQuaternionInv.copy(this.worldQuaternion).invert();
105
184
  }
185
+
106
186
  this.camera.updateMatrixWorld();
107
187
  this.camera.matrixWorld.decompose(this.cameraPosition, this.cameraQuaternion, this.cameraScale);
108
188
  this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize();
109
189
  super.updateMatrixWorld();
110
- };
111
- this.pointerHover = (pointer) => {
112
- if (this.object === void 0 || this.dragging === true)
113
- return;
190
+ });
191
+
192
+ _defineProperty(this, "pointerHover", pointer => {
193
+ if (this.object === undefined || this.dragging === true) return;
114
194
  this.raycaster.setFromCamera(pointer, this.camera);
115
195
  const intersect = this.intersectObjectWithRay(this.gizmo.picker[this.mode], this.raycaster);
196
+
116
197
  if (intersect) {
117
198
  this.axis = intersect.object.name;
118
199
  } else {
119
200
  this.axis = null;
120
201
  }
121
- };
122
- this.pointerDown = (pointer) => {
123
- if (this.object === void 0 || this.dragging === true || pointer.button !== 0)
124
- return;
202
+ });
203
+
204
+ _defineProperty(this, "pointerDown", pointer => {
205
+ if (this.object === undefined || this.dragging === true || pointer.button !== 0) return;
206
+
125
207
  if (this.axis !== null) {
126
208
  this.raycaster.setFromCamera(pointer, this.camera);
127
209
  const planeIntersect = this.intersectObjectWithRay(this.plane, this.raycaster, true);
210
+
128
211
  if (planeIntersect) {
129
212
  let space = this.space;
130
- if (this.mode === "scale") {
131
- space = "local";
132
- } else if (this.axis === "E" || this.axis === "XYZE" || this.axis === "XYZ") {
133
- space = "world";
213
+
214
+ if (this.mode === 'scale') {
215
+ space = 'local';
216
+ } else if (this.axis === 'E' || this.axis === 'XYZE' || this.axis === 'XYZ') {
217
+ space = 'world';
134
218
  }
135
- if (space === "local" && this.mode === "rotate") {
219
+
220
+ if (space === 'local' && this.mode === 'rotate') {
136
221
  const snap = this.rotationSnap;
137
- if (this.axis === "X" && snap)
138
- this.object.rotation.x = Math.round(this.object.rotation.x / snap) * snap;
139
- if (this.axis === "Y" && snap)
140
- this.object.rotation.y = Math.round(this.object.rotation.y / snap) * snap;
141
- if (this.axis === "Z" && snap)
142
- this.object.rotation.z = Math.round(this.object.rotation.z / snap) * snap;
222
+ if (this.axis === 'X' && snap) this.object.rotation.x = Math.round(this.object.rotation.x / snap) * snap;
223
+ if (this.axis === 'Y' && snap) this.object.rotation.y = Math.round(this.object.rotation.y / snap) * snap;
224
+ if (this.axis === 'Z' && snap) this.object.rotation.z = Math.round(this.object.rotation.z / snap) * snap;
143
225
  }
226
+
144
227
  this.object.updateMatrixWorld();
228
+
145
229
  if (this.object.parent) {
146
230
  this.object.parent.updateMatrixWorld();
147
231
  }
232
+
148
233
  this.positionStart.copy(this.object.position);
149
234
  this.quaternionStart.copy(this.object.quaternion);
150
235
  this.scaleStart.copy(this.object.scale);
151
236
  this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this.worldScaleStart);
152
237
  this.pointStart.copy(planeIntersect.point).sub(this.worldPositionStart);
153
238
  }
239
+
154
240
  this.dragging = true;
155
241
  this.mouseDownEvent.mode = this.mode;
156
242
  this.dispatchEvent(this.mouseDownEvent);
157
243
  }
158
- };
159
- this.pointerMove = (pointer) => {
244
+ });
245
+
246
+ _defineProperty(this, "pointerMove", pointer => {
160
247
  const axis = this.axis;
161
248
  const mode = this.mode;
162
249
  const object = this.object;
163
250
  let space = this.space;
164
- if (mode === "scale") {
165
- space = "local";
166
- } else if (axis === "E" || axis === "XYZE" || axis === "XYZ") {
167
- space = "world";
251
+
252
+ if (mode === 'scale') {
253
+ space = 'local';
254
+ } else if (axis === 'E' || axis === 'XYZE' || axis === 'XYZ') {
255
+ space = 'world';
168
256
  }
169
- if (object === void 0 || axis === null || this.dragging === false || pointer.button !== -1)
170
- return;
257
+
258
+ if (object === undefined || axis === null || this.dragging === false || pointer.button !== -1) return;
171
259
  this.raycaster.setFromCamera(pointer, this.camera);
172
260
  const planeIntersect = this.intersectObjectWithRay(this.plane, this.raycaster, true);
173
- if (!planeIntersect)
174
- return;
261
+ if (!planeIntersect) return;
175
262
  this.pointEnd.copy(planeIntersect.point).sub(this.worldPositionStart);
176
- if (mode === "translate") {
263
+
264
+ if (mode === 'translate') {
265
+ // Apply translate
177
266
  this.offset.copy(this.pointEnd).sub(this.pointStart);
178
- if (space === "local" && axis !== "XYZ") {
267
+
268
+ if (space === 'local' && axis !== 'XYZ') {
179
269
  this.offset.applyQuaternion(this.worldQuaternionInv);
180
270
  }
181
- if (axis.indexOf("X") === -1)
182
- this.offset.x = 0;
183
- if (axis.indexOf("Y") === -1)
184
- this.offset.y = 0;
185
- if (axis.indexOf("Z") === -1)
186
- this.offset.z = 0;
187
- if (space === "local" && axis !== "XYZ") {
271
+
272
+ if (axis.indexOf('X') === -1) this.offset.x = 0;
273
+ if (axis.indexOf('Y') === -1) this.offset.y = 0;
274
+ if (axis.indexOf('Z') === -1) this.offset.z = 0;
275
+
276
+ if (space === 'local' && axis !== 'XYZ') {
188
277
  this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale);
189
278
  } else {
190
279
  this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale);
191
280
  }
192
- object.position.copy(this.offset).add(this.positionStart);
281
+
282
+ object.position.copy(this.offset).add(this.positionStart); // Apply translation snap
283
+
193
284
  if (this.translationSnap) {
194
- if (space === "local") {
285
+ if (space === 'local') {
195
286
  object.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert());
196
- if (axis.search("X") !== -1) {
287
+
288
+ if (axis.search('X') !== -1) {
197
289
  object.position.x = Math.round(object.position.x / this.translationSnap) * this.translationSnap;
198
290
  }
199
- if (axis.search("Y") !== -1) {
291
+
292
+ if (axis.search('Y') !== -1) {
200
293
  object.position.y = Math.round(object.position.y / this.translationSnap) * this.translationSnap;
201
294
  }
202
- if (axis.search("Z") !== -1) {
295
+
296
+ if (axis.search('Z') !== -1) {
203
297
  object.position.z = Math.round(object.position.z / this.translationSnap) * this.translationSnap;
204
298
  }
299
+
205
300
  object.position.applyQuaternion(this.quaternionStart);
206
301
  }
207
- if (space === "world") {
302
+
303
+ if (space === 'world') {
208
304
  if (object.parent) {
209
305
  object.position.add(this.tempVector.setFromMatrixPosition(object.parent.matrixWorld));
210
306
  }
211
- if (axis.search("X") !== -1) {
307
+
308
+ if (axis.search('X') !== -1) {
212
309
  object.position.x = Math.round(object.position.x / this.translationSnap) * this.translationSnap;
213
310
  }
214
- if (axis.search("Y") !== -1) {
311
+
312
+ if (axis.search('Y') !== -1) {
215
313
  object.position.y = Math.round(object.position.y / this.translationSnap) * this.translationSnap;
216
314
  }
217
- if (axis.search("Z") !== -1) {
315
+
316
+ if (axis.search('Z') !== -1) {
218
317
  object.position.z = Math.round(object.position.z / this.translationSnap) * this.translationSnap;
219
318
  }
319
+
220
320
  if (object.parent) {
221
321
  object.position.sub(this.tempVector.setFromMatrixPosition(object.parent.matrixWorld));
222
322
  }
223
323
  }
224
324
  }
225
- } else if (mode === "scale") {
226
- if (axis.search("XYZ") !== -1) {
325
+ } else if (mode === 'scale') {
326
+ if (axis.search('XYZ') !== -1) {
227
327
  let d = this.pointEnd.length() / this.pointStart.length();
228
- if (this.pointEnd.dot(this.pointStart) < 0)
229
- d *= -1;
328
+ if (this.pointEnd.dot(this.pointStart) < 0) d *= -1;
230
329
  this.tempVector2.set(d, d, d);
231
330
  } else {
232
331
  this.tempVector.copy(this.pointStart);
@@ -234,52 +333,67 @@ class TransformControls extends THREE.Object3D {
234
333
  this.tempVector.applyQuaternion(this.worldQuaternionInv);
235
334
  this.tempVector2.applyQuaternion(this.worldQuaternionInv);
236
335
  this.tempVector2.divide(this.tempVector);
237
- if (axis.search("X") === -1) {
336
+
337
+ if (axis.search('X') === -1) {
238
338
  this.tempVector2.x = 1;
239
339
  }
240
- if (axis.search("Y") === -1) {
340
+
341
+ if (axis.search('Y') === -1) {
241
342
  this.tempVector2.y = 1;
242
343
  }
243
- if (axis.search("Z") === -1) {
344
+
345
+ if (axis.search('Z') === -1) {
244
346
  this.tempVector2.z = 1;
245
347
  }
246
- }
348
+ } // Apply scale
349
+
350
+
247
351
  object.scale.copy(this.scaleStart).multiply(this.tempVector2);
352
+
248
353
  if (this.scaleSnap && this.object) {
249
- if (axis.search("X") !== -1) {
354
+ if (axis.search('X') !== -1) {
250
355
  this.object.scale.x = Math.round(object.scale.x / this.scaleSnap) * this.scaleSnap || this.scaleSnap;
251
356
  }
252
- if (axis.search("Y") !== -1) {
357
+
358
+ if (axis.search('Y') !== -1) {
253
359
  object.scale.y = Math.round(object.scale.y / this.scaleSnap) * this.scaleSnap || this.scaleSnap;
254
360
  }
255
- if (axis.search("Z") !== -1) {
361
+
362
+ if (axis.search('Z') !== -1) {
256
363
  object.scale.z = Math.round(object.scale.z / this.scaleSnap) * this.scaleSnap || this.scaleSnap;
257
364
  }
258
365
  }
259
- } else if (mode === "rotate") {
366
+ } else if (mode === 'rotate') {
260
367
  this.offset.copy(this.pointEnd).sub(this.pointStart);
261
368
  const ROTATION_SPEED = 20 / this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));
262
- if (axis === "E") {
369
+
370
+ if (axis === 'E') {
263
371
  this.rotationAxis.copy(this.eye);
264
372
  this.rotationAngle = this.pointEnd.angleTo(this.pointStart);
265
373
  this.startNorm.copy(this.pointStart).normalize();
266
374
  this.endNorm.copy(this.pointEnd).normalize();
267
375
  this.rotationAngle *= this.endNorm.cross(this.startNorm).dot(this.eye) < 0 ? 1 : -1;
268
- } else if (axis === "XYZE") {
376
+ } else if (axis === 'XYZE') {
269
377
  this.rotationAxis.copy(this.offset).cross(this.eye).normalize();
270
378
  this.rotationAngle = this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye)) * ROTATION_SPEED;
271
- } else if (axis === "X" || axis === "Y" || axis === "Z") {
379
+ } else if (axis === 'X' || axis === 'Y' || axis === 'Z') {
272
380
  this.rotationAxis.copy(this.unit[axis]);
273
381
  this.tempVector.copy(this.unit[axis]);
274
- if (space === "local") {
382
+
383
+ if (space === 'local') {
275
384
  this.tempVector.applyQuaternion(this.worldQuaternion);
276
385
  }
386
+
277
387
  this.rotationAngle = this.offset.dot(this.tempVector.cross(this.eye).normalize()) * ROTATION_SPEED;
278
- }
388
+ } // Apply rotation snap
389
+
390
+
279
391
  if (this.rotationSnap) {
280
392
  this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap;
281
- }
282
- if (space === "local" && axis !== "E" && axis !== "XYZE") {
393
+ } // Apply rotate
394
+
395
+
396
+ if (space === 'local' && axis !== 'E' && axis !== 'XYZE') {
283
397
  object.quaternion.copy(this.quaternionStart);
284
398
  object.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize();
285
399
  } else {
@@ -288,279 +402,362 @@ class TransformControls extends THREE.Object3D {
288
402
  object.quaternion.multiply(this.quaternionStart).normalize();
289
403
  }
290
404
  }
405
+
291
406
  this.dispatchEvent(this.changeEvent);
292
407
  this.dispatchEvent(this.objectChangeEvent);
293
- };
294
- this.pointerUp = (pointer) => {
295
- if (pointer.button !== 0)
296
- return;
408
+ });
409
+
410
+ _defineProperty(this, "pointerUp", pointer => {
411
+ if (pointer.button !== 0) return;
412
+
297
413
  if (this.dragging && this.axis !== null) {
298
414
  this.mouseUpEvent.mode = this.mode;
299
415
  this.dispatchEvent(this.mouseUpEvent);
300
416
  }
417
+
301
418
  this.dragging = false;
302
419
  this.axis = null;
303
- };
304
- this.getPointer = (event) => {
305
- var _a, _b;
306
- if (this.domElement && ((_a = this.domElement.ownerDocument) == null ? void 0 : _a.pointerLockElement)) {
420
+ });
421
+
422
+ _defineProperty(this, "getPointer", event => {
423
+ var _this$domElement$owne;
424
+
425
+ if (this.domElement && (_this$domElement$owne = this.domElement.ownerDocument) !== null && _this$domElement$owne !== void 0 && _this$domElement$owne.pointerLockElement) {
307
426
  return {
308
427
  x: 0,
309
428
  y: 0,
310
429
  button: event.button
311
430
  };
312
431
  } else {
432
+ var _this$domElement;
433
+
313
434
  const pointer = event.changedTouches ? event.changedTouches[0] : event;
314
- const rect = (_b = this.domElement) == null ? void 0 : _b.getBoundingClientRect();
435
+ const rect = (_this$domElement = this.domElement) === null || _this$domElement === void 0 ? void 0 : _this$domElement.getBoundingClientRect();
315
436
  return {
316
437
  x: (pointer.clientX - rect.left) / rect.width * 2 - 1,
317
438
  y: -(pointer.clientY - rect.top) / rect.height * 2 + 1,
318
439
  button: event.button
319
440
  };
320
441
  }
321
- };
322
- this.onPointerHover = (event) => {
323
- if (!this.enabled)
324
- return;
442
+ });
443
+
444
+ _defineProperty(this, "onPointerHover", event => {
445
+ if (!this.enabled) return;
446
+
325
447
  switch (event.pointerType) {
326
- case "mouse":
327
- case "pen":
448
+ case 'mouse':
449
+ case 'pen':
328
450
  this.pointerHover(this.getPointer(event));
329
451
  break;
330
452
  }
331
- };
332
- this.onPointerDown = (event) => {
333
- if (!this.enabled || !this.domElement)
334
- return;
335
- this.domElement.style.touchAction = "none";
336
- this.domElement.ownerDocument.addEventListener("pointermove", this.onPointerMove);
453
+ });
454
+
455
+ _defineProperty(this, "onPointerDown", event => {
456
+ if (!this.enabled || !this.domElement) return;
457
+ this.domElement.style.touchAction = 'none'; // disable touch scroll
458
+
459
+ this.domElement.ownerDocument.addEventListener('pointermove', this.onPointerMove);
337
460
  this.pointerHover(this.getPointer(event));
338
461
  this.pointerDown(this.getPointer(event));
339
- };
340
- this.onPointerMove = (event) => {
341
- if (!this.enabled)
342
- return;
462
+ });
463
+
464
+ _defineProperty(this, "onPointerMove", event => {
465
+ if (!this.enabled) return;
343
466
  this.pointerMove(this.getPointer(event));
344
- };
345
- this.onPointerUp = (event) => {
346
- if (!this.enabled || !this.domElement)
347
- return;
348
- this.domElement.style.touchAction = "";
349
- this.domElement.ownerDocument.removeEventListener("pointermove", this.onPointerMove);
467
+ });
468
+
469
+ _defineProperty(this, "onPointerUp", event => {
470
+ if (!this.enabled || !this.domElement) return;
471
+ this.domElement.style.touchAction = '';
472
+ this.domElement.ownerDocument.removeEventListener('pointermove', this.onPointerMove);
350
473
  this.pointerUp(this.getPointer(event));
351
- };
352
- this.getMode = () => this.mode;
353
- this.setMode = (mode) => {
474
+ });
475
+
476
+ _defineProperty(this, "getMode", () => this.mode);
477
+
478
+ _defineProperty(this, "setMode", mode => {
354
479
  this.mode = mode;
355
- };
356
- this.setTranslationSnap = (translationSnap) => {
480
+ });
481
+
482
+ _defineProperty(this, "setTranslationSnap", translationSnap => {
357
483
  this.translationSnap = translationSnap;
358
- };
359
- this.setRotationSnap = (rotationSnap) => {
484
+ });
485
+
486
+ _defineProperty(this, "setRotationSnap", rotationSnap => {
360
487
  this.rotationSnap = rotationSnap;
361
- };
362
- this.setScaleSnap = (scaleSnap) => {
488
+ });
489
+
490
+ _defineProperty(this, "setScaleSnap", scaleSnap => {
363
491
  this.scaleSnap = scaleSnap;
364
- };
365
- this.setSize = (size) => {
492
+ });
493
+
494
+ _defineProperty(this, "setSize", size => {
366
495
  this.size = size;
367
- };
368
- this.setSpace = (space) => {
496
+ });
497
+
498
+ _defineProperty(this, "setSpace", space => {
369
499
  this.space = space;
370
- };
371
- this.update = () => {
372
- console.warn(
373
- "THREE.TransformControls: update function has no more functionality and therefore has been deprecated."
374
- );
375
- };
376
- this.connect = (domElement2) => {
377
- if (domElement2 === document) {
378
- console.error(
379
- 'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'
380
- );
500
+ });
501
+
502
+ _defineProperty(this, "update", () => {
503
+ console.warn('THREE.TransformControls: update function has no more functionality and therefore has been deprecated.');
504
+ });
505
+
506
+ _defineProperty(this, "connect", domElement => {
507
+ if (domElement === document) {
508
+ console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');
381
509
  }
382
- this.domElement = domElement2;
383
- this.domElement.addEventListener("pointerdown", this.onPointerDown);
384
- this.domElement.addEventListener("pointermove", this.onPointerHover);
385
- this.domElement.ownerDocument.addEventListener("pointerup", this.onPointerUp);
386
- };
387
- this.dispose = () => {
388
- var _a, _b, _c, _d, _e, _f;
389
- (_a = this.domElement) == null ? void 0 : _a.removeEventListener("pointerdown", this.onPointerDown);
390
- (_b = this.domElement) == null ? void 0 : _b.removeEventListener("pointermove", this.onPointerHover);
391
- (_d = (_c = this.domElement) == null ? void 0 : _c.ownerDocument) == null ? void 0 : _d.removeEventListener("pointermove", this.onPointerMove);
392
- (_f = (_e = this.domElement) == null ? void 0 : _e.ownerDocument) == null ? void 0 : _f.removeEventListener("pointerup", this.onPointerUp);
393
- this.traverse((child) => {
510
+
511
+ this.domElement = domElement;
512
+ this.domElement.addEventListener('pointerdown', this.onPointerDown);
513
+ this.domElement.addEventListener('pointermove', this.onPointerHover);
514
+ this.domElement.ownerDocument.addEventListener('pointerup', this.onPointerUp);
515
+ });
516
+
517
+ _defineProperty(this, "dispose", () => {
518
+ var _this$domElement2, _this$domElement3, _this$domElement4, _this$domElement4$own, _this$domElement5, _this$domElement5$own;
519
+
520
+ (_this$domElement2 = this.domElement) === null || _this$domElement2 === void 0 ? void 0 : _this$domElement2.removeEventListener('pointerdown', this.onPointerDown);
521
+ (_this$domElement3 = this.domElement) === null || _this$domElement3 === void 0 ? void 0 : _this$domElement3.removeEventListener('pointermove', this.onPointerHover);
522
+ (_this$domElement4 = this.domElement) === null || _this$domElement4 === void 0 ? void 0 : (_this$domElement4$own = _this$domElement4.ownerDocument) === null || _this$domElement4$own === void 0 ? void 0 : _this$domElement4$own.removeEventListener('pointermove', this.onPointerMove);
523
+ (_this$domElement5 = this.domElement) === null || _this$domElement5 === void 0 ? void 0 : (_this$domElement5$own = _this$domElement5.ownerDocument) === null || _this$domElement5$own === void 0 ? void 0 : _this$domElement5$own.removeEventListener('pointerup', this.onPointerUp);
524
+ this.traverse(child => {
394
525
  const mesh = child;
526
+
395
527
  if (mesh.geometry) {
396
528
  mesh.geometry.dispose();
397
529
  }
530
+
398
531
  if (mesh.material) {
399
532
  mesh.material.dispose();
400
533
  }
401
534
  });
402
- };
403
- this.domElement = domElement;
535
+ });
536
+
537
+ this.domElement = _domElement;
404
538
  this.camera = camera;
405
539
  this.gizmo = new TransformControlsGizmo();
406
540
  this.add(this.gizmo);
407
541
  this.plane = new TransformControlsPlane();
408
- this.add(this.plane);
542
+ this.add(this.plane); // Defined getter, setter and store for a property
543
+
409
544
  const defineProperty = (propName, defaultValue) => {
410
545
  let propValue = defaultValue;
411
546
  Object.defineProperty(this, propName, {
412
- get: function() {
413
- return propValue !== void 0 ? propValue : defaultValue;
547
+ get: function () {
548
+ return propValue !== undefined ? propValue : defaultValue;
414
549
  },
415
- set: function(value) {
550
+ set: function (value) {
416
551
  if (propValue !== value) {
417
552
  propValue = value;
418
553
  this.plane[propName] = value;
419
554
  this.gizmo[propName] = value;
420
- this.dispatchEvent({ type: propName + "-changed", value });
555
+ this.dispatchEvent({
556
+ type: propName + '-changed',
557
+ value: value
558
+ });
421
559
  this.dispatchEvent(this.changeEvent);
422
560
  }
423
561
  }
424
- });
425
- this[propName] = defaultValue;
426
- this.plane[propName] = defaultValue;
562
+ }); //@ts-ignore
563
+
564
+ this[propName] = defaultValue; // @ts-ignore
565
+
566
+ this.plane[propName] = defaultValue; // @ts-ignore
567
+
427
568
  this.gizmo[propName] = defaultValue;
428
569
  };
429
- defineProperty("camera", this.camera);
430
- defineProperty("object", this.object);
431
- defineProperty("enabled", this.enabled);
432
- defineProperty("axis", this.axis);
433
- defineProperty("mode", this.mode);
434
- defineProperty("translationSnap", this.translationSnap);
435
- defineProperty("rotationSnap", this.rotationSnap);
436
- defineProperty("scaleSnap", this.scaleSnap);
437
- defineProperty("space", this.space);
438
- defineProperty("size", this.size);
439
- defineProperty("dragging", this.dragging);
440
- defineProperty("showX", this.showX);
441
- defineProperty("showY", this.showY);
442
- defineProperty("showZ", this.showZ);
443
- defineProperty("worldPosition", this.worldPosition);
444
- defineProperty("worldPositionStart", this.worldPositionStart);
445
- defineProperty("worldQuaternion", this.worldQuaternion);
446
- defineProperty("worldQuaternionStart", this.worldQuaternionStart);
447
- defineProperty("cameraPosition", this.cameraPosition);
448
- defineProperty("cameraQuaternion", this.cameraQuaternion);
449
- defineProperty("pointStart", this.pointStart);
450
- defineProperty("pointEnd", this.pointEnd);
451
- defineProperty("rotationAxis", this.rotationAxis);
452
- defineProperty("rotationAngle", this.rotationAngle);
453
- defineProperty("eye", this.eye);
454
- if (domElement !== void 0)
455
- this.connect(domElement);
570
+
571
+ defineProperty('camera', this.camera);
572
+ defineProperty('object', this.object);
573
+ defineProperty('enabled', this.enabled);
574
+ defineProperty('axis', this.axis);
575
+ defineProperty('mode', this.mode);
576
+ defineProperty('translationSnap', this.translationSnap);
577
+ defineProperty('rotationSnap', this.rotationSnap);
578
+ defineProperty('scaleSnap', this.scaleSnap);
579
+ defineProperty('space', this.space);
580
+ defineProperty('size', this.size);
581
+ defineProperty('dragging', this.dragging);
582
+ defineProperty('showX', this.showX);
583
+ defineProperty('showY', this.showY);
584
+ defineProperty('showZ', this.showZ);
585
+ defineProperty('worldPosition', this.worldPosition);
586
+ defineProperty('worldPositionStart', this.worldPositionStart);
587
+ defineProperty('worldQuaternion', this.worldQuaternion);
588
+ defineProperty('worldQuaternionStart', this.worldQuaternionStart);
589
+ defineProperty('cameraPosition', this.cameraPosition);
590
+ defineProperty('cameraQuaternion', this.cameraQuaternion);
591
+ defineProperty('pointStart', this.pointStart);
592
+ defineProperty('pointEnd', this.pointEnd);
593
+ defineProperty('rotationAxis', this.rotationAxis);
594
+ defineProperty('rotationAngle', this.rotationAngle);
595
+ defineProperty('eye', this.eye); // connect events
596
+
597
+ if (_domElement !== undefined) this.connect(_domElement);
456
598
  }
599
+
457
600
  }
458
- class TransformControlsGizmo extends THREE.Object3D {
601
+
602
+ class TransformControlsGizmo extends Object3D {
603
+ // these are set from parent class TransformControls
459
604
  constructor() {
460
605
  super();
461
- this.isTransformControlsGizmo = true;
462
- this.type = "TransformControlsGizmo";
463
- this.tempVector = new THREE.Vector3(0, 0, 0);
464
- this.tempEuler = new THREE.Euler();
465
- this.alignVector = new THREE.Vector3(0, 1, 0);
466
- this.zeroVector = new THREE.Vector3(0, 0, 0);
467
- this.lookAtMatrix = new THREE.Matrix4();
468
- this.tempQuaternion = new THREE.Quaternion();
469
- this.tempQuaternion2 = new THREE.Quaternion();
470
- this.identityQuaternion = new THREE.Quaternion();
471
- this.unitX = new THREE.Vector3(1, 0, 0);
472
- this.unitY = new THREE.Vector3(0, 1, 0);
473
- this.unitZ = new THREE.Vector3(0, 0, 1);
474
- this.rotationAxis = new THREE.Vector3();
475
- this.cameraPosition = new THREE.Vector3();
476
- this.worldPositionStart = new THREE.Vector3();
477
- this.worldQuaternionStart = new THREE.Quaternion();
478
- this.worldPosition = new THREE.Vector3();
479
- this.worldQuaternion = new THREE.Quaternion();
480
- this.eye = new THREE.Vector3();
481
- this.camera = null;
482
- this.enabled = true;
483
- this.axis = null;
484
- this.mode = "translate";
485
- this.space = "world";
486
- this.size = 1;
487
- this.dragging = false;
488
- this.showX = true;
489
- this.showY = true;
490
- this.showZ = true;
491
- this.updateMatrixWorld = () => {
606
+
607
+ _defineProperty(this, "isTransformControlsGizmo", true);
608
+
609
+ _defineProperty(this, "type", 'TransformControlsGizmo');
610
+
611
+ _defineProperty(this, "tempVector", new Vector3(0, 0, 0));
612
+
613
+ _defineProperty(this, "tempEuler", new Euler());
614
+
615
+ _defineProperty(this, "alignVector", new Vector3(0, 1, 0));
616
+
617
+ _defineProperty(this, "zeroVector", new Vector3(0, 0, 0));
618
+
619
+ _defineProperty(this, "lookAtMatrix", new Matrix4());
620
+
621
+ _defineProperty(this, "tempQuaternion", new Quaternion());
622
+
623
+ _defineProperty(this, "tempQuaternion2", new Quaternion());
624
+
625
+ _defineProperty(this, "identityQuaternion", new Quaternion());
626
+
627
+ _defineProperty(this, "unitX", new Vector3(1, 0, 0));
628
+
629
+ _defineProperty(this, "unitY", new Vector3(0, 1, 0));
630
+
631
+ _defineProperty(this, "unitZ", new Vector3(0, 0, 1));
632
+
633
+ _defineProperty(this, "gizmo", void 0);
634
+
635
+ _defineProperty(this, "picker", void 0);
636
+
637
+ _defineProperty(this, "helper", void 0);
638
+
639
+ _defineProperty(this, "rotationAxis", new Vector3());
640
+
641
+ _defineProperty(this, "cameraPosition", new Vector3());
642
+
643
+ _defineProperty(this, "worldPositionStart", new Vector3());
644
+
645
+ _defineProperty(this, "worldQuaternionStart", new Quaternion());
646
+
647
+ _defineProperty(this, "worldPosition", new Vector3());
648
+
649
+ _defineProperty(this, "worldQuaternion", new Quaternion());
650
+
651
+ _defineProperty(this, "eye", new Vector3());
652
+
653
+ _defineProperty(this, "camera", null);
654
+
655
+ _defineProperty(this, "enabled", true);
656
+
657
+ _defineProperty(this, "axis", null);
658
+
659
+ _defineProperty(this, "mode", 'translate');
660
+
661
+ _defineProperty(this, "space", 'world');
662
+
663
+ _defineProperty(this, "size", 1);
664
+
665
+ _defineProperty(this, "dragging", false);
666
+
667
+ _defineProperty(this, "showX", true);
668
+
669
+ _defineProperty(this, "showY", true);
670
+
671
+ _defineProperty(this, "showZ", true);
672
+
673
+ _defineProperty(this, "updateMatrixWorld", () => {
492
674
  let space = this.space;
493
- if (this.mode === "scale") {
494
- space = "local";
675
+
676
+ if (this.mode === 'scale') {
677
+ space = 'local'; // scale always oriented to local rotation
495
678
  }
496
- const quaternion = space === "local" ? this.worldQuaternion : this.identityQuaternion;
497
- this.gizmo["translate"].visible = this.mode === "translate";
498
- this.gizmo["rotate"].visible = this.mode === "rotate";
499
- this.gizmo["scale"].visible = this.mode === "scale";
500
- this.helper["translate"].visible = this.mode === "translate";
501
- this.helper["rotate"].visible = this.mode === "rotate";
502
- this.helper["scale"].visible = this.mode === "scale";
679
+
680
+ const quaternion = space === 'local' ? this.worldQuaternion : this.identityQuaternion; // Show only gizmos for current transform mode
681
+
682
+ this.gizmo['translate'].visible = this.mode === 'translate';
683
+ this.gizmo['rotate'].visible = this.mode === 'rotate';
684
+ this.gizmo['scale'].visible = this.mode === 'scale';
685
+ this.helper['translate'].visible = this.mode === 'translate';
686
+ this.helper['rotate'].visible = this.mode === 'rotate';
687
+ this.helper['scale'].visible = this.mode === 'scale';
503
688
  let handles = [];
504
689
  handles = handles.concat(this.picker[this.mode].children);
505
690
  handles = handles.concat(this.gizmo[this.mode].children);
506
691
  handles = handles.concat(this.helper[this.mode].children);
692
+
507
693
  for (let i = 0; i < handles.length; i++) {
508
- const handle = handles[i];
694
+ const handle = handles[i]; // hide aligned to camera
695
+
509
696
  handle.visible = true;
510
697
  handle.rotation.set(0, 0, 0);
511
698
  handle.position.copy(this.worldPosition);
512
699
  let factor;
700
+
513
701
  if (this.camera.isOrthographicCamera) {
514
702
  factor = (this.camera.top - this.camera.bottom) / this.camera.zoom;
515
703
  } else {
516
704
  factor = this.worldPosition.distanceTo(this.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * this.camera.fov / 360) / this.camera.zoom, 7);
517
705
  }
518
- handle.scale.set(1, 1, 1).multiplyScalar(factor * this.size / 7);
519
- if (handle.tag === "helper") {
706
+
707
+ handle.scale.set(1, 1, 1).multiplyScalar(factor * this.size / 7); // TODO: simplify helpers and consider decoupling from gizmo
708
+
709
+ if (handle.tag === 'helper') {
520
710
  handle.visible = false;
521
- if (handle.name === "AXIS") {
711
+
712
+ if (handle.name === 'AXIS') {
522
713
  handle.position.copy(this.worldPositionStart);
523
714
  handle.visible = !!this.axis;
524
- if (this.axis === "X") {
715
+
716
+ if (this.axis === 'X') {
525
717
  this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, 0));
526
718
  handle.quaternion.copy(quaternion).multiply(this.tempQuaternion);
719
+
527
720
  if (Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(quaternion).dot(this.eye)) > 0.9) {
528
721
  handle.visible = false;
529
722
  }
530
723
  }
531
- if (this.axis === "Y") {
724
+
725
+ if (this.axis === 'Y') {
532
726
  this.tempQuaternion.setFromEuler(this.tempEuler.set(0, 0, Math.PI / 2));
533
727
  handle.quaternion.copy(quaternion).multiply(this.tempQuaternion);
728
+
534
729
  if (Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(quaternion).dot(this.eye)) > 0.9) {
535
730
  handle.visible = false;
536
731
  }
537
732
  }
538
- if (this.axis === "Z") {
733
+
734
+ if (this.axis === 'Z') {
539
735
  this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0));
540
736
  handle.quaternion.copy(quaternion).multiply(this.tempQuaternion);
737
+
541
738
  if (Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(quaternion).dot(this.eye)) > 0.9) {
542
739
  handle.visible = false;
543
740
  }
544
741
  }
545
- if (this.axis === "XYZE") {
742
+
743
+ if (this.axis === 'XYZE') {
546
744
  this.tempQuaternion.setFromEuler(this.tempEuler.set(0, Math.PI / 2, 0));
547
745
  this.alignVector.copy(this.rotationAxis);
548
- handle.quaternion.setFromRotationMatrix(
549
- this.lookAtMatrix.lookAt(this.zeroVector, this.alignVector, this.unitY)
550
- );
746
+ handle.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector, this.alignVector, this.unitY));
551
747
  handle.quaternion.multiply(this.tempQuaternion);
552
748
  handle.visible = this.dragging;
553
749
  }
554
- if (this.axis === "E") {
750
+
751
+ if (this.axis === 'E') {
555
752
  handle.visible = false;
556
753
  }
557
- } else if (handle.name === "START") {
754
+ } else if (handle.name === 'START') {
558
755
  handle.position.copy(this.worldPositionStart);
559
756
  handle.visible = this.dragging;
560
- } else if (handle.name === "END") {
757
+ } else if (handle.name === 'END') {
561
758
  handle.position.copy(this.worldPosition);
562
759
  handle.visible = this.dragging;
563
- } else if (handle.name === "DELTA") {
760
+ } else if (handle.name === 'DELTA') {
564
761
  handle.position.copy(this.worldPositionStart);
565
762
  handle.quaternion.copy(this.worldQuaternionStart);
566
763
  this.tempVector.set(1e-10, 1e-10, 1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1);
@@ -569,385 +766,360 @@ class TransformControlsGizmo extends THREE.Object3D {
569
766
  handle.visible = this.dragging;
570
767
  } else {
571
768
  handle.quaternion.copy(quaternion);
769
+
572
770
  if (this.dragging) {
573
771
  handle.position.copy(this.worldPositionStart);
574
772
  } else {
575
773
  handle.position.copy(this.worldPosition);
576
774
  }
775
+
577
776
  if (this.axis) {
578
777
  handle.visible = this.axis.search(handle.name) !== -1;
579
778
  }
580
- }
779
+ } // If updating helper, skip rest of the loop
780
+
781
+
581
782
  continue;
582
- }
783
+ } // Align handles to current local or world rotation
784
+
785
+
583
786
  handle.quaternion.copy(quaternion);
584
- if (this.mode === "translate" || this.mode === "scale") {
787
+
788
+ if (this.mode === 'translate' || this.mode === 'scale') {
789
+ // Hide translate and scale axis facing the camera
585
790
  const AXIS_HIDE_TRESHOLD = 0.99;
586
791
  const PLANE_HIDE_TRESHOLD = 0.2;
587
- const AXIS_FLIP_TRESHOLD = 0;
588
- if (handle.name === "X" || handle.name === "XYZX") {
792
+ const AXIS_FLIP_TRESHOLD = 0.0;
793
+
794
+ if (handle.name === 'X' || handle.name === 'XYZX') {
589
795
  if (Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(quaternion).dot(this.eye)) > AXIS_HIDE_TRESHOLD) {
590
796
  handle.scale.set(1e-10, 1e-10, 1e-10);
591
797
  handle.visible = false;
592
798
  }
593
799
  }
594
- if (handle.name === "Y" || handle.name === "XYZY") {
800
+
801
+ if (handle.name === 'Y' || handle.name === 'XYZY') {
595
802
  if (Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(quaternion).dot(this.eye)) > AXIS_HIDE_TRESHOLD) {
596
803
  handle.scale.set(1e-10, 1e-10, 1e-10);
597
804
  handle.visible = false;
598
805
  }
599
806
  }
600
- if (handle.name === "Z" || handle.name === "XYZZ") {
807
+
808
+ if (handle.name === 'Z' || handle.name === 'XYZZ') {
601
809
  if (Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(quaternion).dot(this.eye)) > AXIS_HIDE_TRESHOLD) {
602
810
  handle.scale.set(1e-10, 1e-10, 1e-10);
603
811
  handle.visible = false;
604
812
  }
605
813
  }
606
- if (handle.name === "XY") {
814
+
815
+ if (handle.name === 'XY') {
607
816
  if (Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(quaternion).dot(this.eye)) < PLANE_HIDE_TRESHOLD) {
608
817
  handle.scale.set(1e-10, 1e-10, 1e-10);
609
818
  handle.visible = false;
610
819
  }
611
820
  }
612
- if (handle.name === "YZ") {
821
+
822
+ if (handle.name === 'YZ') {
613
823
  if (Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(quaternion).dot(this.eye)) < PLANE_HIDE_TRESHOLD) {
614
824
  handle.scale.set(1e-10, 1e-10, 1e-10);
615
825
  handle.visible = false;
616
826
  }
617
827
  }
618
- if (handle.name === "XZ") {
828
+
829
+ if (handle.name === 'XZ') {
619
830
  if (Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(quaternion).dot(this.eye)) < PLANE_HIDE_TRESHOLD) {
620
831
  handle.scale.set(1e-10, 1e-10, 1e-10);
621
832
  handle.visible = false;
622
833
  }
623
- }
624
- if (handle.name.search("X") !== -1) {
834
+ } // Flip translate and scale axis ocluded behind another axis
835
+
836
+
837
+ if (handle.name.search('X') !== -1) {
625
838
  if (this.alignVector.copy(this.unitX).applyQuaternion(quaternion).dot(this.eye) < AXIS_FLIP_TRESHOLD) {
626
- if (handle.tag === "fwd") {
839
+ if (handle.tag === 'fwd') {
627
840
  handle.visible = false;
628
841
  } else {
629
842
  handle.scale.x *= -1;
630
843
  }
631
- } else if (handle.tag === "bwd") {
844
+ } else if (handle.tag === 'bwd') {
632
845
  handle.visible = false;
633
846
  }
634
847
  }
635
- if (handle.name.search("Y") !== -1) {
848
+
849
+ if (handle.name.search('Y') !== -1) {
636
850
  if (this.alignVector.copy(this.unitY).applyQuaternion(quaternion).dot(this.eye) < AXIS_FLIP_TRESHOLD) {
637
- if (handle.tag === "fwd") {
851
+ if (handle.tag === 'fwd') {
638
852
  handle.visible = false;
639
853
  } else {
640
854
  handle.scale.y *= -1;
641
855
  }
642
- } else if (handle.tag === "bwd") {
856
+ } else if (handle.tag === 'bwd') {
643
857
  handle.visible = false;
644
858
  }
645
859
  }
646
- if (handle.name.search("Z") !== -1) {
860
+
861
+ if (handle.name.search('Z') !== -1) {
647
862
  if (this.alignVector.copy(this.unitZ).applyQuaternion(quaternion).dot(this.eye) < AXIS_FLIP_TRESHOLD) {
648
- if (handle.tag === "fwd") {
863
+ if (handle.tag === 'fwd') {
649
864
  handle.visible = false;
650
865
  } else {
651
866
  handle.scale.z *= -1;
652
867
  }
653
- } else if (handle.tag === "bwd") {
868
+ } else if (handle.tag === 'bwd') {
654
869
  handle.visible = false;
655
870
  }
656
871
  }
657
- } else if (this.mode === "rotate") {
872
+ } else if (this.mode === 'rotate') {
873
+ // Align handles to current local or world rotation
658
874
  this.tempQuaternion2.copy(quaternion);
659
875
  this.alignVector.copy(this.eye).applyQuaternion(this.tempQuaternion.copy(quaternion).invert());
660
- if (handle.name.search("E") !== -1) {
876
+
877
+ if (handle.name.search('E') !== -1) {
661
878
  handle.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.eye, this.zeroVector, this.unitY));
662
879
  }
663
- if (handle.name === "X") {
880
+
881
+ if (handle.name === 'X') {
664
882
  this.tempQuaternion.setFromAxisAngle(this.unitX, Math.atan2(-this.alignVector.y, this.alignVector.z));
665
883
  this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion);
666
884
  handle.quaternion.copy(this.tempQuaternion);
667
885
  }
668
- if (handle.name === "Y") {
886
+
887
+ if (handle.name === 'Y') {
669
888
  this.tempQuaternion.setFromAxisAngle(this.unitY, Math.atan2(this.alignVector.x, this.alignVector.z));
670
889
  this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion);
671
890
  handle.quaternion.copy(this.tempQuaternion);
672
891
  }
673
- if (handle.name === "Z") {
892
+
893
+ if (handle.name === 'Z') {
674
894
  this.tempQuaternion.setFromAxisAngle(this.unitZ, Math.atan2(this.alignVector.y, this.alignVector.x));
675
895
  this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2, this.tempQuaternion);
676
896
  handle.quaternion.copy(this.tempQuaternion);
677
897
  }
678
- }
679
- handle.visible = handle.visible && (handle.name.indexOf("X") === -1 || this.showX);
680
- handle.visible = handle.visible && (handle.name.indexOf("Y") === -1 || this.showY);
681
- handle.visible = handle.visible && (handle.name.indexOf("Z") === -1 || this.showZ);
682
- handle.visible = handle.visible && (handle.name.indexOf("E") === -1 || this.showX && this.showY && this.showZ);
683
- handle.material.tempOpacity = handle.material.tempOpacity || handle.material.opacity;
684
- handle.material.tempColor = handle.material.tempColor || handle.material.color.clone();
685
- handle.material.color.copy(handle.material.tempColor);
898
+ } // Hide disabled axes
899
+
900
+
901
+ handle.visible = handle.visible && (handle.name.indexOf('X') === -1 || this.showX);
902
+ handle.visible = handle.visible && (handle.name.indexOf('Y') === -1 || this.showY);
903
+ handle.visible = handle.visible && (handle.name.indexOf('Z') === -1 || this.showZ);
904
+ handle.visible = handle.visible && (handle.name.indexOf('E') === -1 || this.showX && this.showY && this.showZ); // highlight selected axis
905
+ //@ts-ignore
906
+
907
+ handle.material.tempOpacity = handle.material.tempOpacity || handle.material.opacity; //@ts-ignore
908
+
909
+ handle.material.tempColor = handle.material.tempColor || handle.material.color.clone(); //@ts-ignore
910
+
911
+ handle.material.color.copy(handle.material.tempColor); //@ts-ignore
912
+
686
913
  handle.material.opacity = handle.material.tempOpacity;
914
+
687
915
  if (!this.enabled) {
688
- handle.material.opacity *= 0.5;
689
- handle.material.color.lerp(new THREE.Color(1, 1, 1), 0.5);
916
+ //@ts-ignore
917
+ handle.material.opacity *= 0.5; //@ts-ignore
918
+
919
+ handle.material.color.lerp(new Color(1, 1, 1), 0.5);
690
920
  } else if (this.axis) {
691
921
  if (handle.name === this.axis) {
692
- handle.material.opacity = 1;
693
- handle.material.color.lerp(new THREE.Color(1, 1, 1), 0.5);
694
- } else if (this.axis.split("").some(function(a) {
922
+ //@ts-ignore
923
+ handle.material.opacity = 1.0; //@ts-ignore
924
+
925
+ handle.material.color.lerp(new Color(1, 1, 1), 0.5);
926
+ } else if (this.axis.split('').some(function (a) {
695
927
  return handle.name === a;
696
928
  })) {
697
- handle.material.opacity = 1;
698
- handle.material.color.lerp(new THREE.Color(1, 1, 1), 0.5);
929
+ //@ts-ignore
930
+ handle.material.opacity = 1.0; //@ts-ignore
931
+
932
+ handle.material.color.lerp(new Color(1, 1, 1), 0.5);
699
933
  } else {
700
- handle.material.opacity *= 0.25;
701
- handle.material.color.lerp(new THREE.Color(1, 1, 1), 0.5);
934
+ //@ts-ignore
935
+ handle.material.opacity *= 0.25; //@ts-ignore
936
+
937
+ handle.material.color.lerp(new Color(1, 1, 1), 0.5);
702
938
  }
703
939
  }
704
940
  }
941
+
705
942
  super.updateMatrixWorld();
706
- };
707
- const gizmoMaterial = new THREE.MeshBasicMaterial({
943
+ });
944
+
945
+ const gizmoMaterial = new MeshBasicMaterial({
708
946
  depthTest: false,
709
947
  depthWrite: false,
710
948
  transparent: true,
711
- side: THREE.DoubleSide,
949
+ side: DoubleSide,
712
950
  fog: false,
713
951
  toneMapped: false
714
952
  });
715
- const gizmoLineMaterial = new THREE.LineBasicMaterial({
953
+ const gizmoLineMaterial = new LineBasicMaterial({
716
954
  depthTest: false,
717
955
  depthWrite: false,
718
956
  transparent: true,
719
957
  linewidth: 1,
720
958
  fog: false,
721
959
  toneMapped: false
722
- });
960
+ }); // Make unique material for each axis/color
961
+
723
962
  const matInvisible = gizmoMaterial.clone();
724
963
  matInvisible.opacity = 0.15;
725
964
  const matHelper = gizmoMaterial.clone();
726
965
  matHelper.opacity = 0.33;
727
966
  const matRed = gizmoMaterial.clone();
728
- matRed.color.set(16711680);
967
+ matRed.color.set(0xff0000);
729
968
  const matGreen = gizmoMaterial.clone();
730
- matGreen.color.set(65280);
969
+ matGreen.color.set(0x00ff00);
731
970
  const matBlue = gizmoMaterial.clone();
732
- matBlue.color.set(255);
971
+ matBlue.color.set(0x0000ff);
733
972
  const matWhiteTransparent = gizmoMaterial.clone();
734
973
  matWhiteTransparent.opacity = 0.25;
735
974
  const matYellowTransparent = matWhiteTransparent.clone();
736
- matYellowTransparent.color.set(16776960);
975
+ matYellowTransparent.color.set(0xffff00);
737
976
  const matCyanTransparent = matWhiteTransparent.clone();
738
- matCyanTransparent.color.set(65535);
977
+ matCyanTransparent.color.set(0x00ffff);
739
978
  const matMagentaTransparent = matWhiteTransparent.clone();
740
- matMagentaTransparent.color.set(16711935);
979
+ matMagentaTransparent.color.set(0xff00ff);
741
980
  const matYellow = gizmoMaterial.clone();
742
- matYellow.color.set(16776960);
981
+ matYellow.color.set(0xffff00);
743
982
  const matLineRed = gizmoLineMaterial.clone();
744
- matLineRed.color.set(16711680);
983
+ matLineRed.color.set(0xff0000);
745
984
  const matLineGreen = gizmoLineMaterial.clone();
746
- matLineGreen.color.set(65280);
985
+ matLineGreen.color.set(0x00ff00);
747
986
  const matLineBlue = gizmoLineMaterial.clone();
748
- matLineBlue.color.set(255);
987
+ matLineBlue.color.set(0x0000ff);
749
988
  const matLineCyan = gizmoLineMaterial.clone();
750
- matLineCyan.color.set(65535);
989
+ matLineCyan.color.set(0x00ffff);
751
990
  const matLineMagenta = gizmoLineMaterial.clone();
752
- matLineMagenta.color.set(16711935);
991
+ matLineMagenta.color.set(0xff00ff);
753
992
  const matLineYellow = gizmoLineMaterial.clone();
754
- matLineYellow.color.set(16776960);
993
+ matLineYellow.color.set(0xffff00);
755
994
  const matLineGray = gizmoLineMaterial.clone();
756
- matLineGray.color.set(7895160);
995
+ matLineGray.color.set(0x787878);
757
996
  const matLineYellowTransparent = matLineYellow.clone();
758
- matLineYellowTransparent.opacity = 0.25;
759
- const arrowGeometry = new THREE.CylinderGeometry(0, 0.05, 0.2, 12, 1, false);
760
- const scaleHandleGeometry = new THREE.BoxGeometry(0.125, 0.125, 0.125);
761
- const lineGeometry = new THREE.BufferGeometry();
762
- lineGeometry.setAttribute("position", new THREE.Float32BufferAttribute([0, 0, 0, 1, 0, 0], 3));
997
+ matLineYellowTransparent.opacity = 0.25; // reusable geometry
998
+
999
+ const arrowGeometry = new CylinderGeometry(0, 0.05, 0.2, 12, 1, false);
1000
+ const scaleHandleGeometry = new BoxGeometry(0.125, 0.125, 0.125);
1001
+ const lineGeometry = new BufferGeometry();
1002
+ lineGeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 1, 0, 0], 3));
1003
+
763
1004
  const CircleGeometry = (radius, arc) => {
764
- const geometry = new THREE.BufferGeometry();
1005
+ const geometry = new BufferGeometry();
765
1006
  const vertices = [];
1007
+
766
1008
  for (let i = 0; i <= 64 * arc; ++i) {
767
1009
  vertices.push(0, Math.cos(i / 32 * Math.PI) * radius, Math.sin(i / 32 * Math.PI) * radius);
768
1010
  }
769
- geometry.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3));
1011
+
1012
+ geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));
770
1013
  return geometry;
771
- };
1014
+ }; // Special geometry for transform helper. If scaled with position vector it spans from [0,0,0] to position
1015
+
1016
+
772
1017
  const TranslateHelperGeometry = () => {
773
- const geometry = new THREE.BufferGeometry();
774
- geometry.setAttribute("position", new THREE.Float32BufferAttribute([0, 0, 0, 1, 1, 1], 3));
1018
+ const geometry = new BufferGeometry();
1019
+ geometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 1, 1, 1], 3));
775
1020
  return geometry;
776
- };
1021
+ }; // Gizmo definitions - custom hierarchy definitions for setupGizmo() function
1022
+
1023
+
777
1024
  const gizmoTranslate = {
778
- X: [
779
- [new THREE.Mesh(arrowGeometry, matRed), [1, 0, 0], [0, 0, -Math.PI / 2], null, "fwd"],
780
- [new THREE.Mesh(arrowGeometry, matRed), [1, 0, 0], [0, 0, Math.PI / 2], null, "bwd"],
781
- [new THREE.Line(lineGeometry, matLineRed)]
782
- ],
783
- Y: [
784
- [new THREE.Mesh(arrowGeometry, matGreen), [0, 1, 0], null, null, "fwd"],
785
- [new THREE.Mesh(arrowGeometry, matGreen), [0, 1, 0], [Math.PI, 0, 0], null, "bwd"],
786
- [new THREE.Line(lineGeometry, matLineGreen), null, [0, 0, Math.PI / 2]]
787
- ],
788
- Z: [
789
- [new THREE.Mesh(arrowGeometry, matBlue), [0, 0, 1], [Math.PI / 2, 0, 0], null, "fwd"],
790
- [new THREE.Mesh(arrowGeometry, matBlue), [0, 0, 1], [-Math.PI / 2, 0, 0], null, "bwd"],
791
- [new THREE.Line(lineGeometry, matLineBlue), null, [0, -Math.PI / 2, 0]]
792
- ],
793
- XYZ: [[new THREE.Mesh(new THREE.OctahedronGeometry(0.1, 0), matWhiteTransparent.clone()), [0, 0, 0], [0, 0, 0]]],
794
- XY: [
795
- [new THREE.Mesh(new THREE.PlaneGeometry(0.295, 0.295), matYellowTransparent.clone()), [0.15, 0.15, 0]],
796
- [new THREE.Line(lineGeometry, matLineYellow), [0.18, 0.3, 0], null, [0.125, 1, 1]],
797
- [new THREE.Line(lineGeometry, matLineYellow), [0.3, 0.18, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]
798
- ],
799
- YZ: [
800
- [new THREE.Mesh(new THREE.PlaneGeometry(0.295, 0.295), matCyanTransparent.clone()), [0, 0.15, 0.15], [0, Math.PI / 2, 0]],
801
- [new THREE.Line(lineGeometry, matLineCyan), [0, 0.18, 0.3], [0, 0, Math.PI / 2], [0.125, 1, 1]],
802
- [new THREE.Line(lineGeometry, matLineCyan), [0, 0.3, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]
803
- ],
804
- XZ: [
805
- [
806
- new THREE.Mesh(new THREE.PlaneGeometry(0.295, 0.295), matMagentaTransparent.clone()),
807
- [0.15, 0, 0.15],
808
- [-Math.PI / 2, 0, 0]
809
- ],
810
- [new THREE.Line(lineGeometry, matLineMagenta), [0.18, 0, 0.3], null, [0.125, 1, 1]],
811
- [new THREE.Line(lineGeometry, matLineMagenta), [0.3, 0, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]
812
- ]
1025
+ X: [[new Mesh(arrowGeometry, matRed), [1, 0, 0], [0, 0, -Math.PI / 2], null, 'fwd'], [new Mesh(arrowGeometry, matRed), [1, 0, 0], [0, 0, Math.PI / 2], null, 'bwd'], [new Line(lineGeometry, matLineRed)]],
1026
+ Y: [[new Mesh(arrowGeometry, matGreen), [0, 1, 0], null, null, 'fwd'], [new Mesh(arrowGeometry, matGreen), [0, 1, 0], [Math.PI, 0, 0], null, 'bwd'], [new Line(lineGeometry, matLineGreen), null, [0, 0, Math.PI / 2]]],
1027
+ Z: [[new Mesh(arrowGeometry, matBlue), [0, 0, 1], [Math.PI / 2, 0, 0], null, 'fwd'], [new Mesh(arrowGeometry, matBlue), [0, 0, 1], [-Math.PI / 2, 0, 0], null, 'bwd'], [new Line(lineGeometry, matLineBlue), null, [0, -Math.PI / 2, 0]]],
1028
+ XYZ: [[new Mesh(new OctahedronGeometry(0.1, 0), matWhiteTransparent.clone()), [0, 0, 0], [0, 0, 0]]],
1029
+ XY: [[new Mesh(new PlaneGeometry(0.295, 0.295), matYellowTransparent.clone()), [0.15, 0.15, 0]], [new Line(lineGeometry, matLineYellow), [0.18, 0.3, 0], null, [0.125, 1, 1]], [new Line(lineGeometry, matLineYellow), [0.3, 0.18, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],
1030
+ YZ: [[new Mesh(new PlaneGeometry(0.295, 0.295), matCyanTransparent.clone()), [0, 0.15, 0.15], [0, Math.PI / 2, 0]], [new Line(lineGeometry, matLineCyan), [0, 0.18, 0.3], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new Line(lineGeometry, matLineCyan), [0, 0.3, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],
1031
+ XZ: [[new Mesh(new PlaneGeometry(0.295, 0.295), matMagentaTransparent.clone()), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]], [new Line(lineGeometry, matLineMagenta), [0.18, 0, 0.3], null, [0.125, 1, 1]], [new Line(lineGeometry, matLineMagenta), [0.3, 0, 0.18], [0, -Math.PI / 2, 0], [0.125, 1, 1]]]
813
1032
  };
814
1033
  const pickerTranslate = {
815
- X: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0.6, 0, 0], [0, 0, -Math.PI / 2]]],
816
- Y: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0, 0.6, 0]]],
817
- Z: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0, 0, 0.6], [Math.PI / 2, 0, 0]]],
818
- XYZ: [[new THREE.Mesh(new THREE.OctahedronGeometry(0.2, 0), matInvisible)]],
819
- XY: [[new THREE.Mesh(new THREE.PlaneGeometry(0.4, 0.4), matInvisible), [0.2, 0.2, 0]]],
820
- YZ: [[new THREE.Mesh(new THREE.PlaneGeometry(0.4, 0.4), matInvisible), [0, 0.2, 0.2], [0, Math.PI / 2, 0]]],
821
- XZ: [[new THREE.Mesh(new THREE.PlaneGeometry(0.4, 0.4), matInvisible), [0.2, 0, 0.2], [-Math.PI / 2, 0, 0]]]
1034
+ X: [[new Mesh(new CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0.6, 0, 0], [0, 0, -Math.PI / 2]]],
1035
+ Y: [[new Mesh(new CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0, 0.6, 0]]],
1036
+ Z: [[new Mesh(new CylinderGeometry(0.2, 0, 1, 4, 1, false), matInvisible), [0, 0, 0.6], [Math.PI / 2, 0, 0]]],
1037
+ XYZ: [[new Mesh(new OctahedronGeometry(0.2, 0), matInvisible)]],
1038
+ XY: [[new Mesh(new PlaneGeometry(0.4, 0.4), matInvisible), [0.2, 0.2, 0]]],
1039
+ YZ: [[new Mesh(new PlaneGeometry(0.4, 0.4), matInvisible), [0, 0.2, 0.2], [0, Math.PI / 2, 0]]],
1040
+ XZ: [[new Mesh(new PlaneGeometry(0.4, 0.4), matInvisible), [0.2, 0, 0.2], [-Math.PI / 2, 0, 0]]]
822
1041
  };
823
1042
  const helperTranslate = {
824
- START: [[new THREE.Mesh(new THREE.OctahedronGeometry(0.01, 2), matHelper), null, null, null, "helper"]],
825
- END: [[new THREE.Mesh(new THREE.OctahedronGeometry(0.01, 2), matHelper), null, null, null, "helper"]],
826
- DELTA: [[new THREE.Line(TranslateHelperGeometry(), matHelper), null, null, null, "helper"]],
827
- X: [[new THREE.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]],
828
- Y: [[new THREE.Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], "helper"]],
829
- Z: [[new THREE.Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]]
1043
+ START: [[new Mesh(new OctahedronGeometry(0.01, 2), matHelper), null, null, null, 'helper']],
1044
+ END: [[new Mesh(new OctahedronGeometry(0.01, 2), matHelper), null, null, null, 'helper']],
1045
+ DELTA: [[new Line(TranslateHelperGeometry(), matHelper), null, null, null, 'helper']],
1046
+ X: [[new Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], 'helper']],
1047
+ Y: [[new Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], 'helper']],
1048
+ Z: [[new Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], 'helper']]
830
1049
  };
831
1050
  const gizmoRotate = {
832
- X: [
833
- [new THREE.Line(CircleGeometry(1, 0.5), matLineRed)],
834
- [new THREE.Mesh(new THREE.OctahedronGeometry(0.04, 0), matRed), [0, 0, 0.99], null, [1, 3, 1]]
835
- ],
836
- Y: [
837
- [new THREE.Line(CircleGeometry(1, 0.5), matLineGreen), null, [0, 0, -Math.PI / 2]],
838
- [new THREE.Mesh(new THREE.OctahedronGeometry(0.04, 0), matGreen), [0, 0, 0.99], null, [3, 1, 1]]
839
- ],
840
- Z: [
841
- [new THREE.Line(CircleGeometry(1, 0.5), matLineBlue), null, [0, Math.PI / 2, 0]],
842
- [new THREE.Mesh(new THREE.OctahedronGeometry(0.04, 0), matBlue), [0.99, 0, 0], null, [1, 3, 1]]
843
- ],
844
- E: [
845
- [new THREE.Line(CircleGeometry(1.25, 1), matLineYellowTransparent), null, [0, Math.PI / 2, 0]],
846
- [
847
- new THREE.Mesh(new THREE.CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent),
848
- [1.17, 0, 0],
849
- [0, 0, -Math.PI / 2],
850
- [1, 1, 1e-3]
851
- ],
852
- [
853
- new THREE.Mesh(new THREE.CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent),
854
- [-1.17, 0, 0],
855
- [0, 0, Math.PI / 2],
856
- [1, 1, 1e-3]
857
- ],
858
- [
859
- new THREE.Mesh(new THREE.CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent),
860
- [0, -1.17, 0],
861
- [Math.PI, 0, 0],
862
- [1, 1, 1e-3]
863
- ],
864
- [
865
- new THREE.Mesh(new THREE.CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent),
866
- [0, 1.17, 0],
867
- [0, 0, 0],
868
- [1, 1, 1e-3]
869
- ]
870
- ],
871
- XYZE: [[new THREE.Line(CircleGeometry(1, 1), matLineGray), null, [0, Math.PI / 2, 0]]]
1051
+ X: [[new Line(CircleGeometry(1, 0.5), matLineRed)], [new Mesh(new OctahedronGeometry(0.04, 0), matRed), [0, 0, 0.99], null, [1, 3, 1]]],
1052
+ Y: [[new Line(CircleGeometry(1, 0.5), matLineGreen), null, [0, 0, -Math.PI / 2]], [new Mesh(new OctahedronGeometry(0.04, 0), matGreen), [0, 0, 0.99], null, [3, 1, 1]]],
1053
+ Z: [[new Line(CircleGeometry(1, 0.5), matLineBlue), null, [0, Math.PI / 2, 0]], [new Mesh(new OctahedronGeometry(0.04, 0), matBlue), [0.99, 0, 0], null, [1, 3, 1]]],
1054
+ E: [[new Line(CircleGeometry(1.25, 1), matLineYellowTransparent), null, [0, Math.PI / 2, 0]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent), [1.17, 0, 0], [0, 0, -Math.PI / 2], [1, 1, 0.001]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent), [-1.17, 0, 0], [0, 0, Math.PI / 2], [1, 1, 0.001]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent), [0, -1.17, 0], [Math.PI, 0, 0], [1, 1, 0.001]], [new Mesh(new CylinderGeometry(0.03, 0, 0.15, 4, 1, false), matLineYellowTransparent), [0, 1.17, 0], [0, 0, 0], [1, 1, 0.001]]],
1055
+ XYZE: [[new Line(CircleGeometry(1, 1), matLineGray), null, [0, Math.PI / 2, 0]]]
872
1056
  };
873
1057
  const helperRotate = {
874
- AXIS: [[new THREE.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]]
1058
+ AXIS: [[new Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], 'helper']]
875
1059
  };
876
1060
  const pickerRotate = {
877
- X: [[new THREE.Mesh(new THREE.TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]],
878
- Y: [[new THREE.Mesh(new THREE.TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [Math.PI / 2, 0, 0]]],
879
- Z: [[new THREE.Mesh(new THREE.TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, 0, -Math.PI / 2]]],
880
- E: [[new THREE.Mesh(new THREE.TorusGeometry(1.25, 0.1, 2, 24), matInvisible)]],
881
- XYZE: [[new THREE.Mesh(new THREE.SphereGeometry(0.7, 10, 8), matInvisible)]]
1061
+ X: [[new Mesh(new TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]],
1062
+ Y: [[new Mesh(new TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [Math.PI / 2, 0, 0]]],
1063
+ Z: [[new Mesh(new TorusGeometry(1, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, 0, -Math.PI / 2]]],
1064
+ E: [[new Mesh(new TorusGeometry(1.25, 0.1, 2, 24), matInvisible)]],
1065
+ XYZE: [[new Mesh(new SphereGeometry(0.7, 10, 8), matInvisible)]]
882
1066
  };
883
1067
  const gizmoScale = {
884
- X: [
885
- [new THREE.Mesh(scaleHandleGeometry, matRed), [0.8, 0, 0], [0, 0, -Math.PI / 2]],
886
- [new THREE.Line(lineGeometry, matLineRed), null, null, [0.8, 1, 1]]
887
- ],
888
- Y: [
889
- [new THREE.Mesh(scaleHandleGeometry, matGreen), [0, 0.8, 0]],
890
- [new THREE.Line(lineGeometry, matLineGreen), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]
891
- ],
892
- Z: [
893
- [new THREE.Mesh(scaleHandleGeometry, matBlue), [0, 0, 0.8], [Math.PI / 2, 0, 0]],
894
- [new THREE.Line(lineGeometry, matLineBlue), null, [0, -Math.PI / 2, 0], [0.8, 1, 1]]
895
- ],
896
- XY: [
897
- [new THREE.Mesh(scaleHandleGeometry, matYellowTransparent), [0.85, 0.85, 0], null, [2, 2, 0.2]],
898
- [new THREE.Line(lineGeometry, matLineYellow), [0.855, 0.98, 0], null, [0.125, 1, 1]],
899
- [new THREE.Line(lineGeometry, matLineYellow), [0.98, 0.855, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]
900
- ],
901
- YZ: [
902
- [new THREE.Mesh(scaleHandleGeometry, matCyanTransparent), [0, 0.85, 0.85], null, [0.2, 2, 2]],
903
- [new THREE.Line(lineGeometry, matLineCyan), [0, 0.855, 0.98], [0, 0, Math.PI / 2], [0.125, 1, 1]],
904
- [new THREE.Line(lineGeometry, matLineCyan), [0, 0.98, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]
905
- ],
906
- XZ: [
907
- [new THREE.Mesh(scaleHandleGeometry, matMagentaTransparent), [0.85, 0, 0.85], null, [2, 0.2, 2]],
908
- [new THREE.Line(lineGeometry, matLineMagenta), [0.855, 0, 0.98], null, [0.125, 1, 1]],
909
- [new THREE.Line(lineGeometry, matLineMagenta), [0.98, 0, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]
910
- ],
911
- XYZX: [[new THREE.Mesh(new THREE.BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [1.1, 0, 0]]],
912
- XYZY: [[new THREE.Mesh(new THREE.BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [0, 1.1, 0]]],
913
- XYZZ: [[new THREE.Mesh(new THREE.BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [0, 0, 1.1]]]
1068
+ X: [[new Mesh(scaleHandleGeometry, matRed), [0.8, 0, 0], [0, 0, -Math.PI / 2]], [new Line(lineGeometry, matLineRed), null, null, [0.8, 1, 1]]],
1069
+ Y: [[new Mesh(scaleHandleGeometry, matGreen), [0, 0.8, 0]], [new Line(lineGeometry, matLineGreen), null, [0, 0, Math.PI / 2], [0.8, 1, 1]]],
1070
+ Z: [[new Mesh(scaleHandleGeometry, matBlue), [0, 0, 0.8], [Math.PI / 2, 0, 0]], [new Line(lineGeometry, matLineBlue), null, [0, -Math.PI / 2, 0], [0.8, 1, 1]]],
1071
+ XY: [[new Mesh(scaleHandleGeometry, matYellowTransparent), [0.85, 0.85, 0], null, [2, 2, 0.2]], [new Line(lineGeometry, matLineYellow), [0.855, 0.98, 0], null, [0.125, 1, 1]], [new Line(lineGeometry, matLineYellow), [0.98, 0.855, 0], [0, 0, Math.PI / 2], [0.125, 1, 1]]],
1072
+ YZ: [[new Mesh(scaleHandleGeometry, matCyanTransparent), [0, 0.85, 0.85], null, [0.2, 2, 2]], [new Line(lineGeometry, matLineCyan), [0, 0.855, 0.98], [0, 0, Math.PI / 2], [0.125, 1, 1]], [new Line(lineGeometry, matLineCyan), [0, 0.98, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],
1073
+ XZ: [[new Mesh(scaleHandleGeometry, matMagentaTransparent), [0.85, 0, 0.85], null, [2, 0.2, 2]], [new Line(lineGeometry, matLineMagenta), [0.855, 0, 0.98], null, [0.125, 1, 1]], [new Line(lineGeometry, matLineMagenta), [0.98, 0, 0.855], [0, -Math.PI / 2, 0], [0.125, 1, 1]]],
1074
+ XYZX: [[new Mesh(new BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [1.1, 0, 0]]],
1075
+ XYZY: [[new Mesh(new BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [0, 1.1, 0]]],
1076
+ XYZZ: [[new Mesh(new BoxGeometry(0.125, 0.125, 0.125), matWhiteTransparent.clone()), [0, 0, 1.1]]]
914
1077
  };
915
1078
  const pickerScale = {
916
- X: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0.5, 0, 0], [0, 0, -Math.PI / 2]]],
917
- Y: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0, 0.5, 0]]],
918
- Z: [[new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0, 0, 0.5], [Math.PI / 2, 0, 0]]],
919
- XY: [[new THREE.Mesh(scaleHandleGeometry, matInvisible), [0.85, 0.85, 0], null, [3, 3, 0.2]]],
920
- YZ: [[new THREE.Mesh(scaleHandleGeometry, matInvisible), [0, 0.85, 0.85], null, [0.2, 3, 3]]],
921
- XZ: [[new THREE.Mesh(scaleHandleGeometry, matInvisible), [0.85, 0, 0.85], null, [3, 0.2, 3]]],
922
- XYZX: [[new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.2, 0.2), matInvisible), [1.1, 0, 0]]],
923
- XYZY: [[new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.2, 0.2), matInvisible), [0, 1.1, 0]]],
924
- XYZZ: [[new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.2, 0.2), matInvisible), [0, 0, 1.1]]]
1079
+ X: [[new Mesh(new CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0.5, 0, 0], [0, 0, -Math.PI / 2]]],
1080
+ Y: [[new Mesh(new CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0, 0.5, 0]]],
1081
+ Z: [[new Mesh(new CylinderGeometry(0.2, 0, 0.8, 4, 1, false), matInvisible), [0, 0, 0.5], [Math.PI / 2, 0, 0]]],
1082
+ XY: [[new Mesh(scaleHandleGeometry, matInvisible), [0.85, 0.85, 0], null, [3, 3, 0.2]]],
1083
+ YZ: [[new Mesh(scaleHandleGeometry, matInvisible), [0, 0.85, 0.85], null, [0.2, 3, 3]]],
1084
+ XZ: [[new Mesh(scaleHandleGeometry, matInvisible), [0.85, 0, 0.85], null, [3, 0.2, 3]]],
1085
+ XYZX: [[new Mesh(new BoxGeometry(0.2, 0.2, 0.2), matInvisible), [1.1, 0, 0]]],
1086
+ XYZY: [[new Mesh(new BoxGeometry(0.2, 0.2, 0.2), matInvisible), [0, 1.1, 0]]],
1087
+ XYZZ: [[new Mesh(new BoxGeometry(0.2, 0.2, 0.2), matInvisible), [0, 0, 1.1]]]
925
1088
  };
926
1089
  const helperScale = {
927
- X: [[new THREE.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]],
928
- Y: [[new THREE.Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], "helper"]],
929
- Z: [[new THREE.Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]]
930
- };
931
- const setupGizmo = (gizmoMap) => {
932
- const gizmo = new THREE.Object3D();
1090
+ X: [[new Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], 'helper']],
1091
+ Y: [[new Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], 'helper']],
1092
+ Z: [[new Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], 'helper']]
1093
+ }; // Creates an Object3D with gizmos described in custom hierarchy definition.
1094
+ // this is nearly impossible to Type so i'm leaving it
1095
+
1096
+ const setupGizmo = gizmoMap => {
1097
+ const gizmo = new Object3D();
1098
+
933
1099
  for (let name in gizmoMap) {
934
- for (let i = gizmoMap[name].length; i--; ) {
1100
+ for (let i = gizmoMap[name].length; i--;) {
935
1101
  const object = gizmoMap[name][i][0].clone();
936
1102
  const position = gizmoMap[name][i][1];
937
1103
  const rotation = gizmoMap[name][i][2];
938
1104
  const scale = gizmoMap[name][i][3];
939
- const tag = gizmoMap[name][i][4];
940
- object.name = name;
1105
+ const tag = gizmoMap[name][i][4]; // name and tag properties are essential for picking and updating logic.
1106
+
1107
+ object.name = name; // @ts-ignore
1108
+
941
1109
  object.tag = tag;
1110
+
942
1111
  if (position) {
943
1112
  object.position.set(position[0], position[1], position[2]);
944
1113
  }
1114
+
945
1115
  if (rotation) {
946
1116
  object.rotation.set(rotation[0], rotation[1], rotation[2]);
947
1117
  }
1118
+
948
1119
  if (scale) {
949
1120
  object.scale.set(scale[0], scale[1], scale[2]);
950
1121
  }
1122
+
951
1123
  object.updateMatrix();
952
1124
  const tempGeometry = object.geometry.clone();
953
1125
  tempGeometry.applyMatrix4(object.matrix);
@@ -959,110 +1131,145 @@ class TransformControlsGizmo extends THREE.Object3D {
959
1131
  gizmo.add(object);
960
1132
  }
961
1133
  }
1134
+
962
1135
  return gizmo;
963
1136
  };
1137
+
964
1138
  this.gizmo = {};
965
1139
  this.picker = {};
966
1140
  this.helper = {};
967
- this.add(this.gizmo["translate"] = setupGizmo(gizmoTranslate));
968
- this.add(this.gizmo["rotate"] = setupGizmo(gizmoRotate));
969
- this.add(this.gizmo["scale"] = setupGizmo(gizmoScale));
970
- this.add(this.picker["translate"] = setupGizmo(pickerTranslate));
971
- this.add(this.picker["rotate"] = setupGizmo(pickerRotate));
972
- this.add(this.picker["scale"] = setupGizmo(pickerScale));
973
- this.add(this.helper["translate"] = setupGizmo(helperTranslate));
974
- this.add(this.helper["rotate"] = setupGizmo(helperRotate));
975
- this.add(this.helper["scale"] = setupGizmo(helperScale));
976
- this.picker["translate"].visible = false;
977
- this.picker["rotate"].visible = false;
978
- this.picker["scale"].visible = false;
979
- }
1141
+ this.add(this.gizmo['translate'] = setupGizmo(gizmoTranslate));
1142
+ this.add(this.gizmo['rotate'] = setupGizmo(gizmoRotate));
1143
+ this.add(this.gizmo['scale'] = setupGizmo(gizmoScale));
1144
+ this.add(this.picker['translate'] = setupGizmo(pickerTranslate));
1145
+ this.add(this.picker['rotate'] = setupGizmo(pickerRotate));
1146
+ this.add(this.picker['scale'] = setupGizmo(pickerScale));
1147
+ this.add(this.helper['translate'] = setupGizmo(helperTranslate));
1148
+ this.add(this.helper['rotate'] = setupGizmo(helperRotate));
1149
+ this.add(this.helper['scale'] = setupGizmo(helperScale)); // Pickers should be hidden always
1150
+
1151
+ this.picker['translate'].visible = false;
1152
+ this.picker['rotate'].visible = false;
1153
+ this.picker['scale'].visible = false;
1154
+ } // updateMatrixWorld will update transformations and appearance of individual handles
1155
+
1156
+
980
1157
  }
981
- class TransformControlsPlane extends THREE.Mesh {
1158
+
1159
+ class TransformControlsPlane extends Mesh {
982
1160
  constructor() {
983
- super(
984
- new THREE.PlaneGeometry(1e5, 1e5, 2, 2),
985
- new THREE.MeshBasicMaterial({
986
- visible: false,
987
- wireframe: true,
988
- side: THREE.DoubleSide,
989
- transparent: true,
990
- opacity: 0.1,
991
- toneMapped: false
992
- })
993
- );
994
- this.isTransformControlsPlane = true;
995
- this.type = "TransformControlsPlane";
996
- this.unitX = new THREE.Vector3(1, 0, 0);
997
- this.unitY = new THREE.Vector3(0, 1, 0);
998
- this.unitZ = new THREE.Vector3(0, 0, 1);
999
- this.tempVector = new THREE.Vector3();
1000
- this.dirVector = new THREE.Vector3();
1001
- this.alignVector = new THREE.Vector3();
1002
- this.tempMatrix = new THREE.Matrix4();
1003
- this.identityQuaternion = new THREE.Quaternion();
1004
- this.cameraQuaternion = new THREE.Quaternion();
1005
- this.worldPosition = new THREE.Vector3();
1006
- this.worldQuaternion = new THREE.Quaternion();
1007
- this.eye = new THREE.Vector3();
1008
- this.axis = null;
1009
- this.mode = "translate";
1010
- this.space = "world";
1011
- this.updateMatrixWorld = () => {
1161
+ super(new PlaneGeometry(100000, 100000, 2, 2), new MeshBasicMaterial({
1162
+ visible: false,
1163
+ wireframe: true,
1164
+ side: DoubleSide,
1165
+ transparent: true,
1166
+ opacity: 0.1,
1167
+ toneMapped: false
1168
+ }));
1169
+
1170
+ _defineProperty(this, "isTransformControlsPlane", true);
1171
+
1172
+ _defineProperty(this, "type", 'TransformControlsPlane');
1173
+
1174
+ _defineProperty(this, "unitX", new Vector3(1, 0, 0));
1175
+
1176
+ _defineProperty(this, "unitY", new Vector3(0, 1, 0));
1177
+
1178
+ _defineProperty(this, "unitZ", new Vector3(0, 0, 1));
1179
+
1180
+ _defineProperty(this, "tempVector", new Vector3());
1181
+
1182
+ _defineProperty(this, "dirVector", new Vector3());
1183
+
1184
+ _defineProperty(this, "alignVector", new Vector3());
1185
+
1186
+ _defineProperty(this, "tempMatrix", new Matrix4());
1187
+
1188
+ _defineProperty(this, "identityQuaternion", new Quaternion());
1189
+
1190
+ _defineProperty(this, "cameraQuaternion", new Quaternion());
1191
+
1192
+ _defineProperty(this, "worldPosition", new Vector3());
1193
+
1194
+ _defineProperty(this, "worldQuaternion", new Quaternion());
1195
+
1196
+ _defineProperty(this, "eye", new Vector3());
1197
+
1198
+ _defineProperty(this, "axis", null);
1199
+
1200
+ _defineProperty(this, "mode", 'translate');
1201
+
1202
+ _defineProperty(this, "space", 'world');
1203
+
1204
+ _defineProperty(this, "updateMatrixWorld", () => {
1012
1205
  let space = this.space;
1013
1206
  this.position.copy(this.worldPosition);
1014
- if (this.mode === "scale")
1015
- space = "local";
1016
- this.unitX.set(1, 0, 0).applyQuaternion(space === "local" ? this.worldQuaternion : this.identityQuaternion);
1017
- this.unitY.set(0, 1, 0).applyQuaternion(space === "local" ? this.worldQuaternion : this.identityQuaternion);
1018
- this.unitZ.set(0, 0, 1).applyQuaternion(space === "local" ? this.worldQuaternion : this.identityQuaternion);
1207
+ if (this.mode === 'scale') space = 'local'; // scale always oriented to local rotation
1208
+
1209
+ this.unitX.set(1, 0, 0).applyQuaternion(space === 'local' ? this.worldQuaternion : this.identityQuaternion);
1210
+ this.unitY.set(0, 1, 0).applyQuaternion(space === 'local' ? this.worldQuaternion : this.identityQuaternion);
1211
+ this.unitZ.set(0, 0, 1).applyQuaternion(space === 'local' ? this.worldQuaternion : this.identityQuaternion); // Align the plane for current transform mode, axis and space.
1212
+
1019
1213
  this.alignVector.copy(this.unitY);
1214
+
1020
1215
  switch (this.mode) {
1021
- case "translate":
1022
- case "scale":
1216
+ case 'translate':
1217
+ case 'scale':
1023
1218
  switch (this.axis) {
1024
- case "X":
1219
+ case 'X':
1025
1220
  this.alignVector.copy(this.eye).cross(this.unitX);
1026
1221
  this.dirVector.copy(this.unitX).cross(this.alignVector);
1027
1222
  break;
1028
- case "Y":
1223
+
1224
+ case 'Y':
1029
1225
  this.alignVector.copy(this.eye).cross(this.unitY);
1030
1226
  this.dirVector.copy(this.unitY).cross(this.alignVector);
1031
1227
  break;
1032
- case "Z":
1228
+
1229
+ case 'Z':
1033
1230
  this.alignVector.copy(this.eye).cross(this.unitZ);
1034
1231
  this.dirVector.copy(this.unitZ).cross(this.alignVector);
1035
1232
  break;
1036
- case "XY":
1233
+
1234
+ case 'XY':
1037
1235
  this.dirVector.copy(this.unitZ);
1038
1236
  break;
1039
- case "YZ":
1237
+
1238
+ case 'YZ':
1040
1239
  this.dirVector.copy(this.unitX);
1041
1240
  break;
1042
- case "XZ":
1241
+
1242
+ case 'XZ':
1043
1243
  this.alignVector.copy(this.unitZ);
1044
1244
  this.dirVector.copy(this.unitY);
1045
1245
  break;
1046
- case "XYZ":
1047
- case "E":
1246
+
1247
+ case 'XYZ':
1248
+ case 'E':
1048
1249
  this.dirVector.set(0, 0, 0);
1049
1250
  break;
1050
1251
  }
1252
+
1051
1253
  break;
1052
- case "rotate":
1254
+
1255
+ case 'rotate':
1053
1256
  default:
1257
+ // special case for rotate
1054
1258
  this.dirVector.set(0, 0, 0);
1055
1259
  }
1260
+
1056
1261
  if (this.dirVector.length() === 0) {
1262
+ // If in rotate mode, make the plane parallel to camera
1057
1263
  this.quaternion.copy(this.cameraQuaternion);
1058
1264
  } else {
1059
1265
  this.tempMatrix.lookAt(this.tempVector.set(0, 0, 0), this.dirVector, this.alignVector);
1060
1266
  this.quaternion.setFromRotationMatrix(this.tempMatrix);
1061
1267
  }
1268
+
1062
1269
  super.updateMatrixWorld();
1063
- };
1270
+ });
1064
1271
  }
1272
+
1065
1273
  }
1066
- exports.TransformControls = TransformControls;
1067
- exports.TransformControlsGizmo = TransformControlsGizmo;
1068
- exports.TransformControlsPlane = TransformControlsPlane;
1274
+
1275
+ export { TransformControls, TransformControlsGizmo, TransformControlsPlane };