three-stdlib 2.14.3 → 2.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/csm/CSM.cjs.js +1 -1
  2. package/csm/CSM.js +8 -8
  3. package/csm/CSMFrustum.cjs.js +1 -0
  4. package/csm/CSMFrustum.d.ts +19 -0
  5. package/csm/{Frustum.js → CSMFrustum.js} +8 -7
  6. package/csm/CSMShader.cjs.js +1 -0
  7. package/csm/CSMShader.d.ts +4 -0
  8. package/csm/{Shader.js → CSMShader.js} +52 -36
  9. package/curves/CurveExtras.d.ts +52 -54
  10. package/geometries/ConvexGeometry.cjs.js +1 -1
  11. package/geometries/ConvexGeometry.js +1 -1
  12. package/geometries/ParametricGeometries.cjs.js +1 -1
  13. package/geometries/ParametricGeometries.js +91 -99
  14. package/geometries/ParametricGeometry.cjs.js +1 -0
  15. package/geometries/ParametricGeometry.d.ts +18 -0
  16. package/geometries/ParametricGeometry.js +87 -0
  17. package/index.cjs.js +1 -1
  18. package/index.d.ts +57 -77
  19. package/index.js +55 -52
  20. package/interactive/InteractiveGroup.cjs.js +1 -0
  21. package/interactive/InteractiveGroup.d.ts +5 -0
  22. package/interactive/InteractiveGroup.js +87 -0
  23. package/loaders/GLTFLoader.d.ts +2 -9
  24. package/loaders/LUT3dlLoader.d.ts +2 -2
  25. package/loaders/LUTCubeLoader.d.ts +2 -2
  26. package/loaders/VOXLoader.d.ts +2 -2
  27. package/math/ConvexHull.cjs.js +1 -1
  28. package/math/ConvexHull.js +639 -603
  29. package/objects/Reflector.d.ts +1 -0
  30. package/objects/ReflectorForSSRPass.d.ts +4 -4
  31. package/objects/Refractor.d.ts +1 -0
  32. package/objects/Water2.d.ts +1 -1
  33. package/package.json +2 -1
  34. package/postprocessing/LUTPass.d.ts +3 -3
  35. package/postprocessing/SSAARenderPass.d.ts +1 -1
  36. package/postprocessing/SSRPass.d.ts +3 -3
  37. package/shaders/BokehShader2.d.ts +27 -72
  38. package/shaders/BokehShader2.js +0 -1
  39. package/csm/Frustum.cjs.js +0 -1
  40. package/csm/Shader.cjs.js +0 -1
  41. package/loaders/VRMLoader.d.ts +0 -19
  42. package/nodes/Nodes.d.ts +0 -106
  43. package/nodes/accessors/CameraNode.d.ts +0 -29
  44. package/nodes/accessors/NormalNode.d.ts +0 -13
  45. package/nodes/accessors/PositionNode.d.ts +0 -15
  46. package/nodes/accessors/ReflectNode.d.ts +0 -12
  47. package/nodes/accessors/UVNode.d.ts +0 -10
  48. package/nodes/core/AttributeNode.d.ts +0 -13
  49. package/nodes/core/ConstNode.d.ts +0 -22
  50. package/nodes/core/ExpressionNode.d.ts +0 -5
  51. package/nodes/core/FunctionCallNode.d.ts +0 -17
  52. package/nodes/core/FunctionNode.d.ts +0 -28
  53. package/nodes/core/InputNode.d.ts +0 -12
  54. package/nodes/core/Node.d.ts +0 -34
  55. package/nodes/core/NodeBuilder.d.ts +0 -149
  56. package/nodes/core/NodeFrame.d.ts +0 -17
  57. package/nodes/core/NodeUniform.d.ts +0 -17
  58. package/nodes/core/NodeUtils.d.ts +0 -7
  59. package/nodes/core/TempNode.d.ts +0 -23
  60. package/nodes/core/VarNode.d.ts +0 -12
  61. package/nodes/materials/MeshStandardNodeMaterial.d.ts +0 -21
  62. package/nodes/materials/NodeMaterial.d.ts +0 -28
  63. package/nodes/math/CondNode.d.ts +0 -26
  64. package/nodes/math/MathNode.d.ts +0 -57
  65. package/nodes/math/OperatorNode.d.ts +0 -17
  66. package/nodes/procedural/CheckerNode.d.ts +0 -17
  67. package/nodes/utils/JoinNode.d.ts +0 -15
  68. package/nodes/utils/TimerNode.d.ts +0 -19
  69. package/objects/ReflectorRTT.d.ts +0 -6
  70. package/shaders/index.cjs.js +0 -1
  71. package/shaders/index.d.ts +0 -53
  72. package/shaders/index.js +0 -53
package/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- export * from './offscreen/scene';
2
- export * from './offscreen/offscreen';
3
- export * from './offscreen/jank';
4
1
  export * from './misc/MD2CharacterComplex';
5
2
  export * from './misc/ConvexObjectBreaker';
6
3
  export * from './misc/MorphBlendMesh';
@@ -13,73 +10,14 @@ export * from './misc/MD2Character';
13
10
  export * from './misc/VolumeSlice';
14
11
  export * from './misc/TubePainter';
15
12
  export * from './misc/Volume';
16
- export * from './misc/ProgressiveLightmap';
17
13
  export * from './renderers/CSS2DRenderer';
18
- export * from './renderers/nodes/core/constants';
19
- export * from './renderers/nodes/core/NodeBuilder';
20
- export * from './renderers/nodes/core/InputNode';
21
- export * from './renderers/nodes/core/NodeUniform';
22
- export * from './renderers/nodes/core/NodeVary';
23
- export * from './renderers/nodes/core/NodeFrame';
24
- export * from './renderers/nodes/core/Node';
25
- export * from './renderers/nodes/core/NodeSlot';
26
- export * from './renderers/nodes/core/NodeAttribute';
27
- export * from './renderers/nodes/core/VaryNode';
28
- export * from './renderers/nodes/core/AttributeNode';
29
- export * from './renderers/nodes/accessors/CameraNode';
30
- export * from './renderers/nodes/accessors/UVNode';
31
- export * from './renderers/nodes/accessors/ModelNode';
32
- export * from './renderers/nodes/accessors/NormalNode';
33
- export * from './renderers/nodes/accessors/PositionNode';
34
- export * from './renderers/nodes/accessors/ModelViewProjectionNode';
35
- export * from './renderers/nodes/utils/SwitchNode';
36
- export * from './renderers/nodes/utils/TimerNode';
37
- export * from './renderers/nodes/math/OperatorNode';
38
- export * from './renderers/nodes/math/MathNode';
39
- export * from './renderers/nodes/inputs/ColorNode';
40
- export * from './renderers/nodes/inputs/Vector3Node';
41
- export * from './renderers/nodes/inputs/Matrix4Node';
42
- export * from './renderers/nodes/inputs/TextureNode';
43
- export * from './renderers/nodes/inputs/FloatNode';
44
- export * from './renderers/nodes/inputs/Vector2Node';
45
- export * from './renderers/nodes/inputs/Vector4Node';
46
- export * from './renderers/nodes/inputs/Matrix3Node';
47
- export * from './renderers/webgpu/constants';
48
- export * from './renderers/webgpu/WebGPUTextures';
49
- export * from './renderers/webgpu/WebGPUInfo';
50
- export * from './renderers/webgpu/WebGPURenderLists';
51
- export * from './renderers/webgpu/WebGPUTextureRenderer';
52
- export * from './renderers/webgpu/WebGPURenderPipelines';
53
- export * from './renderers/webgpu/WebGPUGeometries';
54
- export * from './renderers/webgpu/nodes/WebGPUNodeBuilder';
55
- export * from './renderers/webgpu/nodes/WebGPUNodeUniform';
56
- export * from './renderers/webgpu/nodes/WebGPUNodeUniformsGroup';
57
- export * from './renderers/webgpu/nodes/ShaderLib';
58
- export * from './renderers/webgpu/nodes/WebGPUNodes';
59
- export * from './renderers/webgpu/WebGPUBindings';
60
- export * from './renderers/webgpu/WebGPUSampledTexture';
61
- export * from './renderers/webgpu/WebGPU';
62
- export * from './renderers/webgpu/WebGPUUniformsGroup';
63
- export * from './renderers/webgpu/WebGPURenderer';
64
- export * from './renderers/webgpu/WebGPUComputePipelines';
65
- export * from './renderers/webgpu/WebGPUUniform';
66
- export * from './renderers/webgpu/WebGPUObjects';
67
- export * from './renderers/webgpu/WebGPUSampler';
68
- export * from './renderers/webgpu/WebGPUBackground';
69
- export * from './renderers/webgpu/WebGPUBinding';
70
- export * from './renderers/webgpu/WebGPUProperties';
71
- export * from './renderers/webgpu/WebGPUAttributes';
72
- export * from './renderers/webgpu/WebGPUStorageBuffer';
73
- export * from './renderers/webgpu/WebGPUTextureUtils';
74
14
  export * from './renderers/CSS3DRenderer';
75
15
  export * from './renderers/Projector';
76
16
  export * from './renderers/SVGRenderer';
77
- export * from './textures/FlakesTexture';
78
17
  export * from './modifiers/CurveModifier';
79
18
  export * from './modifiers/SimplifyModifier';
80
19
  export * from './modifiers/EdgeSplitModifier';
81
20
  export * from './modifiers/TessellateModifier';
82
- export * from './nodes/Nodes';
83
21
  export * from './exporters/GLTFExporter';
84
22
  export * from './exporters/USDZExporter';
85
23
  export * from './exporters/PLYExporter';
@@ -100,7 +38,6 @@ export * from './objects/Lensflare';
100
38
  export * from './objects/Water';
101
39
  export * from './objects/MarchingCubes';
102
40
  export * from './objects/LightningStorm';
103
- export * from './objects/ReflectorRTT';
104
41
  export * from './objects/ReflectorForSSRPass';
105
42
  export * from './objects/Sky';
106
43
  export * from './objects/Water2';
@@ -108,7 +45,6 @@ export * from './objects/GroundProjectedEnv';
108
45
  export * from './utils/SceneUtils';
109
46
  export * from './utils/UVsDebug';
110
47
  export * from './utils/GeometryUtils';
111
- export * from './utils/RoughnessMipmapper';
112
48
  export * from './utils/SkeletonUtils';
113
49
  export * from './utils/ShadowMapViewer';
114
50
  export * from './utils/BufferGeometryUtils';
@@ -158,7 +94,6 @@ export * from './postprocessing/TAARenderPass';
158
94
  export * from './postprocessing/ShaderPass';
159
95
  export * from './postprocessing/SSAARenderPass';
160
96
  export * from './postprocessing/RenderPass';
161
- export * from './postprocessing/RenderPixelatedPass';
162
97
  export * from './postprocessing/BloomPass';
163
98
  export * from './webxr/ARButton';
164
99
  export * from './webxr/OculusHandModel';
@@ -171,6 +106,7 @@ export * from './webxr/XRHandMeshModel';
171
106
  export * from './webxr/XRHandModelFactory';
172
107
  export * from './webxr/XRHandPrimitiveModel';
173
108
  export * from './geometries/ParametricGeometries';
109
+ export * from './geometries/ParametricGeometry';
174
110
  export * from './geometries/ConvexGeometry';
175
111
  export * from './geometries/LightningStrike';
176
112
  export * from './geometries/RoundedBoxGeometry';
@@ -179,10 +115,63 @@ export * from './geometries/DecalGeometry';
179
115
  export * from './geometries/TeapotGeometry';
180
116
  export * from './geometries/TextGeometry';
181
117
  export * from './csm/CSM';
182
- export * from './csm/Shader';
118
+ export * from './csm/CSMFrustum';
183
119
  export * from './csm/CSMHelper';
184
- export * from './csm/Frustum';
185
- export * from './shaders';
120
+ export * from './csm/CSMShader';
121
+ export * from './shaders/types';
122
+ export * from './shaders/ACESFilmicToneMappingShader';
123
+ export * from './shaders/AfterimageShader';
124
+ export * from './shaders/BasicShader';
125
+ export * from './shaders/BleachBypassShader';
126
+ export * from './shaders/BlendShader';
127
+ export * from './shaders/BokehShader';
128
+ export { BokehShader2 } from './shaders/BokehShader2';
129
+ export type { BokehShaderUniforms as BokehShader2Uniforms } from './shaders/BokehShader2';
130
+ export * from './shaders/BrightnessContrastShader';
131
+ export * from './shaders/ColorCorrectionShader';
132
+ export * from './shaders/ColorifyShader';
133
+ export * from './shaders/ConvolutionShader';
134
+ export * from './shaders/CopyShader';
135
+ export * from './shaders/DOFMipMapShader';
136
+ export * from './shaders/DepthLimitedBlurShader';
137
+ export * from './shaders/DigitalGlitch';
138
+ export * from './shaders/DotScreenShader';
139
+ export * from './shaders/FXAAShader';
140
+ export * from './shaders/FilmShader';
141
+ export * from './shaders/FocusShader';
142
+ export * from './shaders/FreiChenShader';
143
+ export * from './shaders/FresnelShader';
144
+ export * from './shaders/GammaCorrectionShader';
145
+ export * from './shaders/GodRaysShader';
146
+ export * from './shaders/HalftoneShader';
147
+ export * from './shaders/HorizontalBlurShader';
148
+ export * from './shaders/HorizontalTiltShiftShader';
149
+ export * from './shaders/HueSaturationShader';
150
+ export * from './shaders/KaleidoShader';
151
+ export * from './shaders/LuminosityHighPassShader';
152
+ export * from './shaders/LuminosityShader';
153
+ export * from './shaders/MirrorShader';
154
+ export * from './shaders/NormalMapShader';
155
+ export * from './shaders/ParallaxShader';
156
+ export * from './shaders/PixelShader';
157
+ export * from './shaders/RGBShiftShader';
158
+ export * from './shaders/SAOShader';
159
+ export * from './shaders/SMAAShader';
160
+ export * from './shaders/SSAOShader';
161
+ export * from './shaders/SSRShader';
162
+ export * from './shaders/SepiaShader';
163
+ export * from './shaders/SobelOperatorShader';
164
+ export * from './shaders/SubsurfaceScatteringShader';
165
+ export * from './shaders/TechnicolorShader';
166
+ export * from './shaders/ToneMapShader';
167
+ export * from './shaders/ToonShader';
168
+ export * from './shaders/TriangleBlurShader';
169
+ export * from './shaders/UnpackDepthRGBAShader';
170
+ export * from './shaders/VerticalBlurShader';
171
+ export * from './shaders/VerticalTiltShiftShader';
172
+ export * from './shaders/VignetteShader';
173
+ export * from './shaders/VolumeShader';
174
+ export * from './shaders/WaterRefractionShader';
186
175
  export * from './interactive/SelectionHelper';
187
176
  export * from './interactive/SelectionBox';
188
177
  export * from './physics/AmmoPhysics';
@@ -199,16 +188,13 @@ export * from './loaders/LUTCubeLoader';
199
188
  export * from './loaders/NRRDLoader';
200
189
  export * from './loaders/STLLoader';
201
190
  export * from './loaders/MTLLoader';
202
- export * from './loaders/XLoader';
203
191
  export * from './loaders/BVHLoader';
204
192
  export * from './loaders/KMZLoader';
205
- export * from './loaders/VRMLoader';
206
193
  export * from './loaders/VRMLLoader';
207
194
  export * from './loaders/KTX2Loader';
208
195
  export * from './loaders/LottieLoader';
209
196
  export * from './loaders/TTFLoader';
210
197
  export * from './loaders/RGBELoader';
211
- export * from './loaders/AssimpLoader';
212
198
  export * from './loaders/ColladaLoader';
213
199
  export * from './loaders/MDDLoader';
214
200
  export * from './loaders/EXRLoader';
@@ -223,9 +209,6 @@ export * from './loaders/BasisTextureLoader';
223
209
  export * from './loaders/TDSLoader';
224
210
  export * from './loaders/LDrawLoader';
225
211
  export * from './loaders/GLTFLoader';
226
- export * from './loaders/lwo/LWO3Parser';
227
- export * from './loaders/lwo/LWO2Parser';
228
- export * from './loaders/lwo/IFFParser';
229
212
  export * from './loaders/SVGLoader';
230
213
  export * from './loaders/3DMLoader';
231
214
  export * from './loaders/OBJLoader';
@@ -240,7 +223,6 @@ export * from './loaders/PDBLoader';
240
223
  export * from './loaders/PRWMLoader';
241
224
  export * from './loaders/RGBMLoader';
242
225
  export * from './loaders/VOXLoader';
243
- export * from './loaders/NodeMaterialLoader';
244
226
  export * from './loaders/PCDLoader';
245
227
  export * from './loaders/LWOLoader';
246
228
  export * from './loaders/PLYLoader';
@@ -263,5 +245,3 @@ export * from './curves/NURBSCurve';
263
245
  export * from './curves/NURBSSurface';
264
246
  export * from './curves/CurveExtras';
265
247
  export * from './deprecated/Geometry';
266
- export * from './libs/MeshoptDecoder';
267
- export * from './libs/MotionControllers';
package/index.js CHANGED
@@ -117,6 +117,7 @@ export { XRHandMeshModel } from './webxr/XRHandMeshModel.js';
117
117
  export { XRHandModelFactory } from './webxr/XRHandModelFactory.js';
118
118
  export { XRHandPrimitiveModel } from './webxr/XRHandPrimitiveModel.js';
119
119
  export { ParametricGeometries } from './geometries/ParametricGeometries.js';
120
+ export { ParametricGeometry } from './geometries/ParametricGeometry.js';
120
121
  export { ConvexGeometry } from './geometries/ConvexGeometry.js';
121
122
  export { LightningStrike } from './geometries/LightningStrike.js';
122
123
  export { RoundedBoxGeometry } from './geometries/RoundedBoxGeometry.js';
@@ -125,7 +126,61 @@ export { DecalGeometry, DecalVertex } from './geometries/DecalGeometry.js';
125
126
  export { TeapotGeometry } from './geometries/TeapotGeometry.js';
126
127
  export { TextGeometry as TextBufferGeometry, TextGeometry } from './geometries/TextGeometry.js';
127
128
  export { CSM } from './csm/CSM.js';
129
+ export { CSMFrustum } from './csm/CSMFrustum.js';
128
130
  export { CSMHelper } from './csm/CSMHelper.js';
131
+ export { CSMShader } from './csm/CSMShader.js';
132
+ export { ACESFilmicToneMappingShader } from './shaders/ACESFilmicToneMappingShader.js';
133
+ export { AfterimageShader } from './shaders/AfterimageShader.js';
134
+ export { BasicShader } from './shaders/BasicShader.js';
135
+ export { BleachBypassShader } from './shaders/BleachBypassShader.js';
136
+ export { BlendShader } from './shaders/BlendShader.js';
137
+ export { BokehShader } from './shaders/BokehShader.js';
138
+ export { BokehShader2 } from './shaders/BokehShader2.js';
139
+ export { BrightnessContrastShader } from './shaders/BrightnessContrastShader.js';
140
+ export { ColorCorrectionShader } from './shaders/ColorCorrectionShader.js';
141
+ export { ColorifyShader } from './shaders/ColorifyShader.js';
142
+ export { ConvolutionShader } from './shaders/ConvolutionShader.js';
143
+ export { CopyShader } from './shaders/CopyShader.js';
144
+ export { DOFMipMapShader } from './shaders/DOFMipMapShader.js';
145
+ export { BlurShaderUtils, DepthLimitedBlurShader } from './shaders/DepthLimitedBlurShader.js';
146
+ export { DigitalGlitch } from './shaders/DigitalGlitch.js';
147
+ export { DotScreenShader } from './shaders/DotScreenShader.js';
148
+ export { FXAAShader } from './shaders/FXAAShader.js';
149
+ export { FilmShader } from './shaders/FilmShader.js';
150
+ export { FocusShader } from './shaders/FocusShader.js';
151
+ export { FreiChenShader } from './shaders/FreiChenShader.js';
152
+ export { FresnelShader } from './shaders/FresnelShader.js';
153
+ export { GammaCorrectionShader } from './shaders/GammaCorrectionShader.js';
154
+ export { GodRaysCombineShader, GodRaysDepthMaskShader, GodRaysFakeSunShader, GodRaysGenerateShader } from './shaders/GodRaysShader.js';
155
+ export { HalftoneShader } from './shaders/HalftoneShader.js';
156
+ export { HorizontalBlurShader } from './shaders/HorizontalBlurShader.js';
157
+ export { HorizontalTiltShiftShader } from './shaders/HorizontalTiltShiftShader.js';
158
+ export { HueSaturationShader } from './shaders/HueSaturationShader.js';
159
+ export { KaleidoShader } from './shaders/KaleidoShader.js';
160
+ export { LuminosityHighPassShader } from './shaders/LuminosityHighPassShader.js';
161
+ export { LuminosityShader } from './shaders/LuminosityShader.js';
162
+ export { MirrorShader } from './shaders/MirrorShader.js';
163
+ export { NormalMapShader } from './shaders/NormalMapShader.js';
164
+ export { ParallaxShader } from './shaders/ParallaxShader.js';
165
+ export { PixelShader } from './shaders/PixelShader.js';
166
+ export { RGBShiftShader } from './shaders/RGBShiftShader.js';
167
+ export { SAOShader } from './shaders/SAOShader.js';
168
+ export { SMAABlendShader, SMAAEdgesShader, SMAAWeightsShader } from './shaders/SMAAShader.js';
169
+ export { SSAOBlurShader, SSAODepthShader, SSAOShader } from './shaders/SSAOShader.js';
170
+ export { SSRBlurShader, SSRDepthShader, SSRShader } from './shaders/SSRShader.js';
171
+ export { SepiaShader } from './shaders/SepiaShader.js';
172
+ export { SobelOperatorShader } from './shaders/SobelOperatorShader.js';
173
+ export { SubsurfaceScatteringShader } from './shaders/SubsurfaceScatteringShader.js';
174
+ export { TechnicolorShader } from './shaders/TechnicolorShader.js';
175
+ export { ToneMapShader } from './shaders/ToneMapShader.js';
176
+ export { ToonShader1, ToonShader2, ToonShaderDotted, ToonShaderHatching } from './shaders/ToonShader.js';
177
+ export { TriangleBlurShader } from './shaders/TriangleBlurShader.js';
178
+ export { UnpackDepthRGBAShader } from './shaders/UnpackDepthRGBAShader.js';
179
+ export { VerticalBlurShader } from './shaders/VerticalBlurShader.js';
180
+ export { VerticalTiltShiftShader } from './shaders/VerticalTiltShiftShader.js';
181
+ export { VignetteShader } from './shaders/VignetteShader.js';
182
+ export { VolumeRenderShader1 } from './shaders/VolumeShader.js';
183
+ export { WaterRefractionShader } from './shaders/WaterRefractionShader.js';
129
184
  export { SelectionHelper } from './interactive/SelectionHelper.js';
130
185
  export { SelectionBox } from './interactive/SelectionBox.js';
131
186
  export { AmmoPhysics } from './physics/AmmoPhysics.js';
@@ -276,55 +331,3 @@ export { default as NodeObjectLoader } from './nodes/loaders/NodeObjectLoader.js
276
331
  export { default as NodeMaterialLoader } from './nodes/loaders/NodeMaterialLoader.js';
277
332
  export { BRDF_GGX, BRDF_Lambert, D_GGX, F_Schlick, PhysicalLightingModel, RE_Direct_Physical, V_GGX_SmithCorrelated, getDistanceAttenuation } from './nodes/functions/BSDFs.js';
278
333
  export { EPSILON, INFINITY, ShaderNode, abs, acos, add, addTo, alphaTest, and, asin, assign, atan, attribute, bitAnd, bitOr, bitXor, bmat3, bmat4, bool, buffer, bvec2, bvec3, bvec4, cameraPosition, ceil, clamp, color, cond, cos, cross, dFdx, dFdy, degrees, diffuseColor, distance, div, dot, element, equal, exp, exp2, faceforward, float, floor, fract, greaterThan, greaterThanEqual, imat3, imat4, int, inversesqrt, invert, ivec2, ivec3, ivec4, join, label, length, lessThan, lessThanEqual, log, log2, mat3, mat4, max, metalness, min, mix, mod, mul, negate, nodeObject, normalGeometry, normalLocal, normalView, normalWorld, normalize, or, positionLocal, positionView, positionViewDirection, positionWorld, pow, pow2, pow3, pow4, radians, reflect, refract, remainder, roughness, round, sampler, saturate, shiftLeft, shiftRight, sign, sin, smoothstep, specularColor, sqrt, step, sub, tan, temp, texture, transformDirection, transformedNormalView, uint, umat3, umat4, uniform, uv, uvec2, uvec3, uvec4, vec2, vec3, vec4, viewMatrix, xor } from './nodes/ShaderNode.js';
279
- export { ACESFilmicToneMappingShader } from './shaders/ACESFilmicToneMappingShader.js';
280
- export { AfterimageShader } from './shaders/AfterimageShader.js';
281
- export { BasicShader } from './shaders/BasicShader.js';
282
- export { BleachBypassShader } from './shaders/BleachBypassShader.js';
283
- export { BlendShader } from './shaders/BlendShader.js';
284
- export { BokehShader } from './shaders/BokehShader.js';
285
- export { BokehDepthShader, BokehShader2 } from './shaders/BokehShader2.js';
286
- export { BrightnessContrastShader } from './shaders/BrightnessContrastShader.js';
287
- export { ColorCorrectionShader } from './shaders/ColorCorrectionShader.js';
288
- export { ColorifyShader } from './shaders/ColorifyShader.js';
289
- export { ConvolutionShader } from './shaders/ConvolutionShader.js';
290
- export { CopyShader } from './shaders/CopyShader.js';
291
- export { DOFMipMapShader } from './shaders/DOFMipMapShader.js';
292
- export { BlurShaderUtils, DepthLimitedBlurShader } from './shaders/DepthLimitedBlurShader.js';
293
- export { DigitalGlitch } from './shaders/DigitalGlitch.js';
294
- export { DotScreenShader } from './shaders/DotScreenShader.js';
295
- export { FXAAShader } from './shaders/FXAAShader.js';
296
- export { FilmShader } from './shaders/FilmShader.js';
297
- export { FocusShader } from './shaders/FocusShader.js';
298
- export { FreiChenShader } from './shaders/FreiChenShader.js';
299
- export { FresnelShader } from './shaders/FresnelShader.js';
300
- export { GammaCorrectionShader } from './shaders/GammaCorrectionShader.js';
301
- export { GodRaysCombineShader, GodRaysDepthMaskShader, GodRaysFakeSunShader, GodRaysGenerateShader } from './shaders/GodRaysShader.js';
302
- export { HalftoneShader } from './shaders/HalftoneShader.js';
303
- export { HorizontalBlurShader } from './shaders/HorizontalBlurShader.js';
304
- export { HorizontalTiltShiftShader } from './shaders/HorizontalTiltShiftShader.js';
305
- export { HueSaturationShader } from './shaders/HueSaturationShader.js';
306
- export { KaleidoShader } from './shaders/KaleidoShader.js';
307
- export { LuminosityHighPassShader } from './shaders/LuminosityHighPassShader.js';
308
- export { LuminosityShader } from './shaders/LuminosityShader.js';
309
- export { MirrorShader } from './shaders/MirrorShader.js';
310
- export { NormalMapShader } from './shaders/NormalMapShader.js';
311
- export { ParallaxShader } from './shaders/ParallaxShader.js';
312
- export { PixelShader } from './shaders/PixelShader.js';
313
- export { RGBShiftShader } from './shaders/RGBShiftShader.js';
314
- export { SAOShader } from './shaders/SAOShader.js';
315
- export { SMAABlendShader, SMAAEdgesShader, SMAAWeightsShader } from './shaders/SMAAShader.js';
316
- export { SSAOBlurShader, SSAODepthShader, SSAOShader } from './shaders/SSAOShader.js';
317
- export { SSRBlurShader, SSRDepthShader, SSRShader } from './shaders/SSRShader.js';
318
- export { SepiaShader } from './shaders/SepiaShader.js';
319
- export { SobelOperatorShader } from './shaders/SobelOperatorShader.js';
320
- export { SubsurfaceScatteringShader } from './shaders/SubsurfaceScatteringShader.js';
321
- export { TechnicolorShader } from './shaders/TechnicolorShader.js';
322
- export { ToneMapShader } from './shaders/ToneMapShader.js';
323
- export { ToonShader1, ToonShader2, ToonShaderDotted, ToonShaderHatching } from './shaders/ToonShader.js';
324
- export { TriangleBlurShader } from './shaders/TriangleBlurShader.js';
325
- export { UnpackDepthRGBAShader } from './shaders/UnpackDepthRGBAShader.js';
326
- export { VerticalBlurShader } from './shaders/VerticalBlurShader.js';
327
- export { VerticalTiltShiftShader } from './shaders/VerticalTiltShiftShader.js';
328
- export { VignetteShader } from './shaders/VignetteShader.js';
329
- export { VolumeRenderShader1 } from './shaders/VolumeShader.js';
330
- export { WaterRefractionShader } from './shaders/WaterRefractionShader.js';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");const t=new e.Vector2,n={type:"",data:t};class s extends e.Group{constructor(s,r){super();const o=this,i=new e.Raycaster,d=new e.Matrix4,c=s.domElement;function a(e){e.stopPropagation(),t.x=e.clientX/c.clientWidth*2-1,t.y=-e.clientY/c.clientHeight*2+1,i.setFromCamera(t,r);const s=i.intersectObjects(o.children,!1);if(s.length>0){const t=s[0],r=t.object,o=t.uv;n.type=e.type,n.data.set(o.x,1-o.y),r.dispatchEvent(n)}}c.addEventListener("pointerdown",a),c.addEventListener("pointerup",a),c.addEventListener("pointermove",a),c.addEventListener("mousedown",a),c.addEventListener("mouseup",a),c.addEventListener("mousemove",a),c.addEventListener("click",a);const l={move:"mousemove",select:"click",selectstart:"mousedown",selectend:"mouseup"};function v(e){const t=e.target;d.identity().extractRotation(t.matrixWorld),i.ray.origin.setFromMatrixPosition(t.matrixWorld),i.ray.direction.set(0,0,-1).applyMatrix4(d);const s=i.intersectObjects(o.children,!1);if(s.length>0){const t=s[0],r=t.object,o=t.uv;n.type=l[e.type],n.data.set(o.x,1-o.y),r.dispatchEvent(n)}}const p=s.xr.getController(0);p.addEventListener("move",v),p.addEventListener("select",v),p.addEventListener("selectstart",v),p.addEventListener("selectend",v);const u=s.xr.getController(1);u.addEventListener("move",v),u.addEventListener("select",v),u.addEventListener("selectstart",v),u.addEventListener("selectend",v)}}exports.InteractiveGroup=s;
@@ -0,0 +1,5 @@
1
+ import { WebGLRenderer, Camera, Group } from 'three';
2
+
3
+ export class InteractiveGroup extends Group {
4
+ constructor(renderer: WebGLRenderer, camera: Camera);
5
+ }
@@ -0,0 +1,87 @@
1
+ import { Vector2, Group, Raycaster, Matrix4 } from 'three';
2
+
3
+ const _pointer = new Vector2();
4
+
5
+ const _event = {
6
+ type: '',
7
+ data: _pointer
8
+ };
9
+
10
+ class InteractiveGroup extends Group {
11
+ constructor(renderer, camera) {
12
+ super();
13
+ const scope = this;
14
+ const raycaster = new Raycaster();
15
+ const tempMatrix = new Matrix4(); // Pointer Events
16
+
17
+ const element = renderer.domElement;
18
+
19
+ function onPointerEvent(event) {
20
+ event.stopPropagation();
21
+ _pointer.x = event.clientX / element.clientWidth * 2 - 1;
22
+ _pointer.y = -(event.clientY / element.clientHeight) * 2 + 1;
23
+ raycaster.setFromCamera(_pointer, camera);
24
+ const intersects = raycaster.intersectObjects(scope.children, false);
25
+
26
+ if (intersects.length > 0) {
27
+ const intersection = intersects[0];
28
+ const object = intersection.object;
29
+ const uv = intersection.uv;
30
+ _event.type = event.type;
31
+
32
+ _event.data.set(uv.x, 1 - uv.y);
33
+
34
+ object.dispatchEvent(_event);
35
+ }
36
+ }
37
+
38
+ element.addEventListener('pointerdown', onPointerEvent);
39
+ element.addEventListener('pointerup', onPointerEvent);
40
+ element.addEventListener('pointermove', onPointerEvent);
41
+ element.addEventListener('mousedown', onPointerEvent);
42
+ element.addEventListener('mouseup', onPointerEvent);
43
+ element.addEventListener('mousemove', onPointerEvent);
44
+ element.addEventListener('click', onPointerEvent); // WebXR Controller Events
45
+ // TODO: Dispatch pointerevents too
46
+
47
+ const events = {
48
+ move: 'mousemove',
49
+ select: 'click',
50
+ selectstart: 'mousedown',
51
+ selectend: 'mouseup'
52
+ };
53
+
54
+ function onXRControllerEvent(event) {
55
+ const controller = event.target;
56
+ tempMatrix.identity().extractRotation(controller.matrixWorld);
57
+ raycaster.ray.origin.setFromMatrixPosition(controller.matrixWorld);
58
+ raycaster.ray.direction.set(0, 0, -1).applyMatrix4(tempMatrix);
59
+ const intersections = raycaster.intersectObjects(scope.children, false);
60
+
61
+ if (intersections.length > 0) {
62
+ const intersection = intersections[0];
63
+ const object = intersection.object;
64
+ const uv = intersection.uv;
65
+ _event.type = events[event.type];
66
+
67
+ _event.data.set(uv.x, 1 - uv.y);
68
+
69
+ object.dispatchEvent(_event);
70
+ }
71
+ }
72
+
73
+ const controller1 = renderer.xr.getController(0);
74
+ controller1.addEventListener('move', onXRControllerEvent);
75
+ controller1.addEventListener('select', onXRControllerEvent);
76
+ controller1.addEventListener('selectstart', onXRControllerEvent);
77
+ controller1.addEventListener('selectend', onXRControllerEvent);
78
+ const controller2 = renderer.xr.getController(1);
79
+ controller2.addEventListener('move', onXRControllerEvent);
80
+ controller2.addEventListener('select', onXRControllerEvent);
81
+ controller2.addEventListener('selectstart', onXRControllerEvent);
82
+ controller2.addEventListener('selectend', onXRControllerEvent);
83
+ }
84
+
85
+ }
86
+
87
+ export { InteractiveGroup };
@@ -101,15 +101,8 @@ export class GLTFParser {
101
101
  loadBufferView: (bufferViewIndex: number) => Promise<ArrayBuffer>;
102
102
  loadAccessor: (accessorIndex: number) => Promise<BufferAttribute | InterleavedBufferAttribute>;
103
103
  loadTexture: (textureIndex: number) => Promise<Texture>;
104
- loadTextureImage: (
105
- textureIndex: number,
106
- /**
107
- * GLTF.Image
108
- * See: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/image.schema.json
109
- */
110
- source: { [key: string]: any },
111
- loader: Loader,
112
- ) => Promise<Texture>;
104
+ loadTextureImage: (textureIndex: number, sourceIndex: number, loader: Loader) => Promise<Texture>;
105
+ loadImageSource: (sourceIndex: number, loader: Loader) => Promise<Texture>;
113
106
  assignTexture: (
114
107
  materialParams: { [key: string]: any },
115
108
  mapName: string,
@@ -1,9 +1,9 @@
1
- import { Loader, LoadingManager, DataTexture, DataTexture3D } from 'three';
1
+ import { Loader, LoadingManager, DataTexture, Data3DTexture } from 'three';
2
2
 
3
3
  export interface LUT3dlResult {
4
4
  size: number;
5
5
  texture: DataTexture;
6
- texture3D: DataTexture3D;
6
+ texture3D: Data3DTexture;
7
7
  }
8
8
 
9
9
  export class LUT3dlLoader extends Loader {
@@ -1,4 +1,4 @@
1
- import { Loader, LoadingManager, Vector3, DataTexture, DataTexture3D } from 'three';
1
+ import { Loader, LoadingManager, Vector3, DataTexture, Data3DTexture } from 'three';
2
2
 
3
3
  export interface LUTCubeResult {
4
4
  title: string;
@@ -6,7 +6,7 @@ export interface LUTCubeResult {
6
6
  domainMin: Vector3;
7
7
  domainMax: Vector3;
8
8
  texture: DataTexture;
9
- texture3D: DataTexture3D;
9
+ texture3D: Data3DTexture;
10
10
  }
11
11
 
12
12
  export class LUTCubeLoader extends Loader {
@@ -1,4 +1,4 @@
1
- import { DataTexture3D, Mesh, Loader, LoadingManager } from 'three';
1
+ import { Data3DTexture, Mesh, Loader, LoadingManager } from 'three';
2
2
 
3
3
  export interface Chunk {
4
4
  palette: number[];
@@ -23,6 +23,6 @@ export class VOXMesh extends Mesh {
23
23
  constructor(chunk: Chunk);
24
24
  }
25
25
 
26
- export class VOXDataTexture3D extends DataTexture3D {
26
+ export class VOXData3DTexture extends Data3DTexture {
27
27
  constructor(chunk: Chunk);
28
28
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three"),e=function(){var e,n,i,r,s=new t.Vector3;function o(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new l,this.unassigned=new l,this.vertices=[]}function a(){this.normal=new t.Vector3,this.midpoint=new t.Vector3,this.area=0,this.constant=0,this.outside=null,this.mark=0,this.edge=null}function h(t,e){this.vertex=t,this.prev=null,this.next=null,this.twin=null,this.face=e}function u(t){this.point=t,this.prev=null,this.next=null,this.face=null}function l(){this.head=null,this.tail=null}return Object.assign(o.prototype,{setFromPoints:function(t){!0!==Array.isArray(t)&&console.error("THREE.ConvexHull: Points parameter is not an array."),t.length<4&&console.error("THREE.ConvexHull: The algorithm needs at least four points."),this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.vertices.push(new u(t[e]));return this.compute(),this},setFromObject:function(e){var n=[];return e.updateMatrixWorld(!0),e.traverse((function(e){var i,r,s,o=e.geometry;if(void 0!==o){if(o.isGeometry)return void console.error("THREE.ConvexHull no longer supports Geometry. Use THREE.BufferGeometry instead.");if(o.isBufferGeometry){var a=o.attributes.position;if(void 0!==a)for(i=0,r=a.count;i<r;i++)(s=new t.Vector3).fromBufferAttribute(a,i).applyMatrix4(e.matrixWorld),n.push(s)}}})),this.setFromPoints(n)},containsPoint:function(t){var e=this.faces;for(let n=0,i=e.length;n<i;n++){if(e[n].distanceToPoint(t)>this.tolerance)return!1}return!0},intersectRay:function(t,e){var n=this.faces,i=-1/0,r=1/0;for(let e=0,u=n.length;e<u;e++){var s=n[e],o=s.distanceToPoint(t.origin),a=s.normal.dot(t.direction);if(o>0&&a>=0)return null;var h=0!==a?-o/a:0;if(!(h<=0)&&(a>0?r=Math.min(h,r):i=Math.max(h,i),i>r))return null}return i!==-1/0?t.at(i,e):t.at(r,e),e},intersectsRay:function(t){return null!==this.intersectRay(t,s)},makeEmpty:function(){return this.faces=[],this.vertices=[],this},addVertexToFace:function(t,e){return t.face=e,null===e.outside?this.assigned.append(t):this.assigned.insertBefore(e.outside,t),e.outside=t,this},removeVertexFromFace:function(t,e){return t===e.outside&&(null!==t.next&&t.next.face===e?e.outside=t.next:e.outside=null),this.assigned.remove(t),this},removeAllVerticesFromFace:function(t){if(null!==t.outside){for(var e=t.outside,n=t.outside;null!==n.next&&n.next.face===t;)n=n.next;return this.assigned.removeSubList(e,n),e.prev=n.next=null,t.outside=null,e}},deleteFaceVertices:function(t,e){var n=this.removeAllVerticesFromFace(t);if(void 0!==n)if(void 0===e)this.unassigned.appendChain(n);else{var i=n;do{var r=i.next;e.distanceToPoint(i.point)>this.tolerance?this.addVertexToFace(i,e):this.unassigned.append(i),i=r}while(null!==i)}return this},resolveUnassignedPoints:function(t){if(!1===this.unassigned.isEmpty()){var e=this.unassigned.first();do{var n=e.next,i=this.tolerance,r=null;for(let n=0;n<t.length;n++){var s=t[n];if(0===s.mark){var o=s.distanceToPoint(e.point);if(o>i&&(i=o,r=s),i>1e3*this.tolerance)break}}null!==r&&this.addVertexToFace(e,r),e=n}while(null!==e)}return this},computeExtremes:function(){var e,n,i,r=new t.Vector3,s=new t.Vector3,o=[],a=[];for(e=0;e<3;e++)o[e]=a[e]=this.vertices[0];for(r.copy(this.vertices[0].point),s.copy(this.vertices[0].point),e=0,n=this.vertices.length;e<n;e++){var h=this.vertices[e],u=h.point;for(i=0;i<3;i++)u.getComponent(i)<r.getComponent(i)&&(r.setComponent(i,u.getComponent(i)),o[i]=h);for(i=0;i<3;i++)u.getComponent(i)>s.getComponent(i)&&(s.setComponent(i,u.getComponent(i)),a[i]=h)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(r.x),Math.abs(s.x))+Math.max(Math.abs(r.y),Math.abs(s.y))+Math.max(Math.abs(r.z),Math.abs(s.z))),{min:o,max:a}},computeInitialHull:function(){void 0===e&&(e=new t.Line3,n=new t.Plane,i=new t.Vector3);var r,s,o,h,u,l,c,d,p,f=this.vertices,v=this.computeExtremes(),g=v.min,m=v.max,x=0,w=0;for(l=0;l<3;l++)(p=m[l].point.getComponent(l)-g[l].point.getComponent(l))>x&&(x=p,w=l);for(s=g[w],o=m[w],x=0,e.set(s.point,o.point),l=0,c=this.vertices.length;l<c;l++)(r=f[l])!==s&&r!==o&&(e.closestPointToPoint(r.point,!0,i),(p=i.distanceToSquared(r.point))>x&&(x=p,h=r));for(x=-1,n.setFromCoplanarPoints(s.point,o.point,h.point),l=0,c=this.vertices.length;l<c;l++)(r=f[l])!==s&&r!==o&&r!==h&&(p=Math.abs(n.distanceToPoint(r.point)))>x&&(x=p,u=r);var T=[];if(n.distanceToPoint(u.point)<0)for(T.push(a.create(s,o,h),a.create(u,o,s),a.create(u,h,o),a.create(u,s,h)),l=0;l<3;l++)d=(l+1)%3,T[l+1].getEdge(2).setTwin(T[0].getEdge(d)),T[l+1].getEdge(1).setTwin(T[d+1].getEdge(0));else for(T.push(a.create(s,h,o),a.create(u,s,o),a.create(u,o,h),a.create(u,h,s)),l=0;l<3;l++)d=(l+1)%3,T[l+1].getEdge(2).setTwin(T[0].getEdge((3-l)%3)),T[l+1].getEdge(0).setTwin(T[d+1].getEdge(1));for(l=0;l<4;l++)this.faces.push(T[l]);for(l=0,c=f.length;l<c;l++)if((r=f[l])!==s&&r!==o&&r!==h&&r!==u){x=this.tolerance;var F=null;for(d=0;d<4;d++)(p=this.faces[d].distanceToPoint(r.point))>x&&(x=p,F=this.faces[d]);null!==F&&this.addVertexToFace(r,F)}return this},reindexFaces:function(){var t=[];for(let n=0;n<this.faces.length;n++){var e=this.faces[n];0===e.mark&&t.push(e)}return this.faces=t,this},nextVertexToAdd:function(){if(!1===this.assigned.isEmpty()){var t,e=0,n=this.assigned.first().face,i=n.outside;do{var r=n.distanceToPoint(i.point);r>e&&(e=r,t=i),i=i.next}while(null!==i&&i.face===n);return t}},computeHorizon:function(t,e,n,i){var r;this.deleteFaceVertices(n),n.mark=1,r=null===e?e=n.getEdge(0):e.next;do{var s=r.twin,o=s.face;0===o.mark&&(o.distanceToPoint(t)>this.tolerance?this.computeHorizon(t,s,o,i):i.push(r)),r=r.next}while(r!==e);return this},addAdjoiningFace:function(t,e){var n=a.create(t,e.tail(),e.head());return this.faces.push(n),n.getEdge(-1).setTwin(e.twin),n.getEdge(0)},addNewFaces:function(t,e){this.newFaces=[];var n=null,i=null;for(let o=0;o<e.length;o++){var r=e[o],s=this.addAdjoiningFace(t,r);null===n?n=s:s.next.setTwin(i),this.newFaces.push(s.face),i=s}return n.next.setTwin(i),this},addVertexToHull:function(t){var e=[];return this.unassigned.clear(),this.removeVertexFromFace(t,t.face),this.computeHorizon(t.point,null,t.face,e),this.addNewFaces(t,e),this.resolveUnassignedPoints(this.newFaces),this},cleanup:function(){return this.assigned.clear(),this.unassigned.clear(),this.newFaces=[],this},compute:function(){var t;for(this.computeInitialHull();void 0!==(t=this.nextVertexToAdd());)this.addVertexToHull(t);return this.reindexFaces(),this.cleanup(),this}}),Object.assign(a,{create:function(t,e,n){var i=new a,r=new h(t,i),s=new h(e,i),o=new h(n,i);return r.next=o.prev=s,s.next=r.prev=o,o.next=s.prev=r,i.edge=r,i.compute()}}),Object.assign(a.prototype,{getEdge:function(t){for(var e=this.edge;t>0;)e=e.next,t--;for(;t<0;)e=e.prev,t++;return e},compute:function(){void 0===r&&(r=new t.Triangle);var e=this.edge.tail(),n=this.edge.head(),i=this.edge.next.head();return r.set(e.point,n.point,i.point),r.getNormal(this.normal),r.getMidpoint(this.midpoint),this.area=r.getArea(),this.constant=this.normal.dot(this.midpoint),this},distanceToPoint:function(t){return this.normal.dot(t)-this.constant}}),Object.assign(h.prototype,{head:function(){return this.vertex},tail:function(){return this.prev?this.prev.vertex:null},length:function(){var t=this.head(),e=this.tail();return null!==e?e.point.distanceTo(t.point):-1},lengthSquared:function(){var t=this.head(),e=this.tail();return null!==e?e.point.distanceToSquared(t.point):-1},setTwin:function(t){return this.twin=t,t.twin=this,this}}),Object.assign(l.prototype,{first:function(){return this.head},last:function(){return this.tail},clear:function(){return this.head=this.tail=null,this},insertBefore:function(t,e){return e.prev=t.prev,e.next=t,null===e.prev?this.head=e:e.prev.next=e,t.prev=e,this},insertAfter:function(t,e){return e.prev=t,e.next=t.next,null===e.next?this.tail=e:e.next.prev=e,t.next=e,this},append:function(t){return null===this.head?this.head=t:this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t,this},appendChain:function(t){for(null===this.head?this.head=t:this.tail.next=t,t.prev=this.tail;null!==t.next;)t=t.next;return this.tail=t,this},remove:function(t){return null===t.prev?this.head=t.next:t.prev.next=t.next,null===t.next?this.tail=t.prev:t.next.prev=t.prev,this},removeSubList:function(t,e){return null===t.prev?this.head=e.next:t.prev.next=e.next,null===e.next?this.tail=t.prev:e.next.prev=t.prev,this},isEmpty:function(){return null===this.head}}),o}();exports.ConvexHull=e;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");const e=new t.Vector3,n=new t.Line3,s=new t.Plane,i=new t.Vector3,r=new t.Triangle;class o{constructor(){this.normal=new t.Vector3,this.midpoint=new t.Vector3,this.area=0,this.constant=0,this.outside=null,this.mark=0,this.edge=null}static create(t,e,n){const s=new o,i=new a(t,s),r=new a(e,s),l=new a(n,s);return i.next=l.prev=r,r.next=i.prev=l,l.next=r.prev=i,s.edge=i,s.compute()}getEdge(t){let e=this.edge;for(;t>0;)e=e.next,t--;for(;t<0;)e=e.prev,t++;return e}compute(){const t=this.edge.tail(),e=this.edge.head(),n=this.edge.next.head();return r.set(t.point,e.point,n.point),r.getNormal(this.normal),r.getMidpoint(this.midpoint),this.area=r.getArea(),this.constant=this.normal.dot(this.midpoint),this}distanceToPoint(t){return this.normal.dot(t)-this.constant}}class a{constructor(t,e){this.vertex=t,this.prev=null,this.next=null,this.twin=null,this.face=e}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){const t=this.head(),e=this.tail();return null!==e?e.point.distanceTo(t.point):-1}lengthSquared(){const t=this.head(),e=this.tail();return null!==e?e.point.distanceToSquared(t.point):-1}setTwin(t){return this.twin=t,t.twin=this,this}}class l{constructor(t){this.point=t,this.prev=null,this.next=null,this.face=null}}class h{constructor(){this.head=null,this.tail=null}first(){return this.head}last(){return this.tail}clear(){return this.head=this.tail=null,this}insertBefore(t,e){return e.prev=t.prev,e.next=t,null===e.prev?this.head=e:e.prev.next=e,t.prev=e,this}insertAfter(t,e){return e.prev=t,e.next=t.next,null===e.next?this.tail=e:e.next.prev=e,t.next=e,this}append(t){return null===this.head?this.head=t:this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t,this}appendChain(t){for(null===this.head?this.head=t:this.tail.next=t,t.prev=this.tail;null!==t.next;)t=t.next;return this.tail=t,this}remove(t){return null===t.prev?this.head=t.next:t.prev.next=t.next,null===t.next?this.tail=t.prev:t.next.prev=t.prev,this}removeSubList(t,e){return null===t.prev?this.head=e.next:t.prev.next=e.next,null===e.next?this.tail=t.prev:e.next.prev=t.prev,this}isEmpty(){return null===this.head}}exports.ConvexHull=class{constructor(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new h,this.unassigned=new h,this.vertices=[]}setFromPoints(t){if(t.length>=4){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.vertices.push(new l(t[e]));this.compute()}return this}setFromObject(e){const n=[];return e.updateMatrixWorld(!0),e.traverse((function(e){const s=e.geometry;if(void 0!==s){if(s.isGeometry)return void console.error("THREE.ConvexHull no longer supports Geometry. Use THREE.BufferGeometry instead.");if(s.isBufferGeometry){const i=s.attributes.position;if(void 0!==i)for(let s=0,r=i.count;s<r;s++){const r=new t.Vector3;r.fromBufferAttribute(i,s).applyMatrix4(e.matrixWorld),n.push(r)}}}})),this.setFromPoints(n)}containsPoint(t){const e=this.faces;for(let n=0,s=e.length;n<s;n++){if(e[n].distanceToPoint(t)>this.tolerance)return!1}return!0}intersectRay(t,e){const n=this.faces;let s=-1/0,i=1/0;for(let e=0,r=n.length;e<r;e++){const r=n[e],o=r.distanceToPoint(t.origin),a=r.normal.dot(t.direction);if(o>0&&a>=0)return null;const l=0!==a?-o/a:0;if(!(l<=0)&&(a>0?i=Math.min(l,i):s=Math.max(l,s),s>i))return null}return s!==-1/0?t.at(s,e):t.at(i,e),e}intersectsRay(t){return null!==this.intersectRay(t,e)}makeEmpty(){return this.faces=[],this.vertices=[],this}addVertexToFace(t,e){return t.face=e,null===e.outside?this.assigned.append(t):this.assigned.insertBefore(e.outside,t),e.outside=t,this}removeVertexFromFace(t,e){return t===e.outside&&(null!==t.next&&t.next.face===e?e.outside=t.next:e.outside=null),this.assigned.remove(t),this}removeAllVerticesFromFace(t){if(null!==t.outside){const e=t.outside;let n=t.outside;for(;null!==n.next&&n.next.face===t;)n=n.next;return this.assigned.removeSubList(e,n),e.prev=n.next=null,t.outside=null,e}}deleteFaceVertices(t,e){const n=this.removeAllVerticesFromFace(t);if(void 0!==n)if(void 0===e)this.unassigned.appendChain(n);else{let t=n;do{const n=t.next;e.distanceToPoint(t.point)>this.tolerance?this.addVertexToFace(t,e):this.unassigned.append(t),t=n}while(null!==t)}return this}resolveUnassignedPoints(t){if(!1===this.unassigned.isEmpty()){let e=this.unassigned.first();do{const n=e.next;let s=this.tolerance,i=null;for(let n=0;n<t.length;n++){const r=t[n];if(0===r.mark){const t=r.distanceToPoint(e.point);if(t>s&&(s=t,i=r),s>1e3*this.tolerance)break}}null!==i&&this.addVertexToFace(e,i),e=n}while(null!==e)}return this}computeExtremes(){const e=new t.Vector3,n=new t.Vector3,s=[],i=[];for(let t=0;t<3;t++)s[t]=i[t]=this.vertices[0];e.copy(this.vertices[0].point),n.copy(this.vertices[0].point);for(let t=0,r=this.vertices.length;t<r;t++){const r=this.vertices[t],o=r.point;for(let t=0;t<3;t++)o.getComponent(t)<e.getComponent(t)&&(e.setComponent(t,o.getComponent(t)),s[t]=r);for(let t=0;t<3;t++)o.getComponent(t)>n.getComponent(t)&&(n.setComponent(t,o.getComponent(t)),i[t]=r)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(e.x),Math.abs(n.x))+Math.max(Math.abs(e.y),Math.abs(n.y))+Math.max(Math.abs(e.z),Math.abs(n.z))),{min:s,max:i}}computeInitialHull(){const t=this.vertices,e=this.computeExtremes(),r=e.min,a=e.max;let l=0,h=0;for(let t=0;t<3;t++){const e=a[t].point.getComponent(t)-r[t].point.getComponent(t);e>l&&(l=e,h=t)}const c=r[h],u=a[h];let d,p;l=0,n.set(c.point,u.point);for(let e=0,s=this.vertices.length;e<s;e++){const s=t[e];if(s!==c&&s!==u){n.closestPointToPoint(s.point,!0,i);const t=i.distanceToSquared(s.point);t>l&&(l=t,d=s)}}l=-1,s.setFromCoplanarPoints(c.point,u.point,d.point);for(let e=0,n=this.vertices.length;e<n;e++){const n=t[e];if(n!==c&&n!==u&&n!==d){const t=Math.abs(s.distanceToPoint(n.point));t>l&&(l=t,p=n)}}const f=[];if(s.distanceToPoint(p.point)<0){f.push(o.create(c,u,d),o.create(p,u,c),o.create(p,d,u),o.create(p,c,d));for(let t=0;t<3;t++){const e=(t+1)%3;f[t+1].getEdge(2).setTwin(f[0].getEdge(e)),f[t+1].getEdge(1).setTwin(f[e+1].getEdge(0))}}else{f.push(o.create(c,d,u),o.create(p,c,u),o.create(p,u,d),o.create(p,d,c));for(let t=0;t<3;t++){const e=(t+1)%3;f[t+1].getEdge(2).setTwin(f[0].getEdge((3-t)%3)),f[t+1].getEdge(0).setTwin(f[e+1].getEdge(1))}}for(let t=0;t<4;t++)this.faces.push(f[t]);for(let e=0,n=t.length;e<n;e++){const n=t[e];if(n!==c&&n!==u&&n!==d&&n!==p){l=this.tolerance;let t=null;for(let e=0;e<4;e++){const s=this.faces[e].distanceToPoint(n.point);s>l&&(l=s,t=this.faces[e])}null!==t&&this.addVertexToFace(n,t)}}return this}reindexFaces(){const t=[];for(let e=0;e<this.faces.length;e++){const n=this.faces[e];0===n.mark&&t.push(n)}return this.faces=t,this}nextVertexToAdd(){if(!1===this.assigned.isEmpty()){let t,e=0;const n=this.assigned.first().face;let s=n.outside;do{const i=n.distanceToPoint(s.point);i>e&&(e=i,t=s),s=s.next}while(null!==s&&s.face===n);return t}}computeHorizon(t,e,n,s){let i;this.deleteFaceVertices(n),n.mark=1,i=null===e?e=n.getEdge(0):e.next;do{const e=i.twin,n=e.face;0===n.mark&&(n.distanceToPoint(t)>this.tolerance?this.computeHorizon(t,e,n,s):s.push(i)),i=i.next}while(i!==e);return this}addAdjoiningFace(t,e){const n=o.create(t,e.tail(),e.head());return this.faces.push(n),n.getEdge(-1).setTwin(e.twin),n.getEdge(0)}addNewFaces(t,e){this.newFaces=[];let n=null,s=null;for(let i=0;i<e.length;i++){const r=e[i],o=this.addAdjoiningFace(t,r);null===n?n=o:o.next.setTwin(s),this.newFaces.push(o.face),s=o}return n.next.setTwin(s),this}addVertexToHull(t){const e=[];return this.unassigned.clear(),this.removeVertexFromFace(t,t.face),this.computeHorizon(t.point,null,t.face,e),this.addNewFaces(t,e),this.resolveUnassignedPoints(this.newFaces),this}cleanup(){return this.assigned.clear(),this.unassigned.clear(),this.newFaces=[],this}compute(){let t;for(this.computeInitialHull();void 0!==(t=this.nextVertexToAdd());)this.addVertexToHull(t);return this.reindexFaces(),this.cleanup(),this}};