three-stdlib 2.16.0 → 2.16.2

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 (1219) 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 +143 -64
  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.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. 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 };