three-low-poly 0.9.12 → 0.9.13
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.
- package/dist/index.cjs.js +162 -11
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1360 -0
- package/dist/index.es.js +1332 -1009
- package/dist/index.es.js.map +1 -1
- package/dist/index.iife.js +162 -11
- package/dist/index.iife.js.map +1 -1
- package/dist/index.umd.js +162 -11
- package/dist/index.umd.js.map +1 -1
- package/package.json +15 -9
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1360 @@
|
|
|
1
|
+
import { BoxGeometry } from 'three';
|
|
2
|
+
import { BufferGeometry } from 'three';
|
|
3
|
+
import { Color } from 'three';
|
|
4
|
+
import { DataTexture } from 'three';
|
|
5
|
+
import { Group } from 'three';
|
|
6
|
+
import { InstancedMesh } from 'three';
|
|
7
|
+
import { Material } from 'three';
|
|
8
|
+
import { Mesh } from 'three';
|
|
9
|
+
import { ShaderMaterial } from 'three';
|
|
10
|
+
import { Shape } from 'three';
|
|
11
|
+
import { SphereGeometry } from 'three';
|
|
12
|
+
import { Uniform } from 'three';
|
|
13
|
+
import { Vector2 } from 'three';
|
|
14
|
+
import { Vector3 } from 'three';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Utility function to add noise-based vertex displacement to an existing Three.js material.
|
|
18
|
+
* @param {Material} material - The material to mutate, e.g., MeshStandardMaterial.
|
|
19
|
+
* @param {Object} options - Options for noise modification.
|
|
20
|
+
* @param {number} [options.time=0.0] - The time value for the noise function.
|
|
21
|
+
* @param {number} [options.intensity=1.0] - The intensity of the displacement.
|
|
22
|
+
* @param {Vector3} [options.direction=new Vector3(1, 1, 1)] - The direction of displacement.
|
|
23
|
+
* @param {number} [options.scale=10.0] - The scale of the noise effect.
|
|
24
|
+
*/
|
|
25
|
+
export declare function addNoiseDisplacement<T extends Material>(material: T, { time, intensity, direction, scale }?: NoiseDisplacementOptions): void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Utility function to add water-like vertex displacement to an existing Three.js material.
|
|
29
|
+
* @param {Material} material - The material to mutate, e.g., MeshStandardMaterial.
|
|
30
|
+
* @param {Object} options - Options for water wave modification.
|
|
31
|
+
* @param {number} [options.time=0.0] - The time value for the wave function.
|
|
32
|
+
* @param {number} [options.waveFrequency=0.2] - The frequency of the water waves.
|
|
33
|
+
* @param {number} [options.waveAmplitude=0.5] - The amplitude of the water waves.
|
|
34
|
+
*/
|
|
35
|
+
export declare function addWaterDisplacement<T extends Material>(material: T, { time, waveFrequency, waveAmplitude }?: {
|
|
36
|
+
time?: number | undefined;
|
|
37
|
+
waveFrequency?: number | undefined;
|
|
38
|
+
waveAmplitude?: number | undefined;
|
|
39
|
+
}): void;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Atmospheric scattering shader.
|
|
43
|
+
*
|
|
44
|
+
* Based on "A Practical Analytic Model for Daylight"
|
|
45
|
+
* aka The Preetham Model, the de facto standard analytic skydome model
|
|
46
|
+
* https://www.researchgate.net/publication/220720443_A_Practical_Analytic_Model_for_Daylight
|
|
47
|
+
*
|
|
48
|
+
* First implemented by Simon Wallner
|
|
49
|
+
* http://simonwallner.at/project/atmospheric-scattering/
|
|
50
|
+
*
|
|
51
|
+
* Improved by Martin Upitis
|
|
52
|
+
* http://blenderartists.org/forum/showthread.php?245954-preethams-sky-impementation-HDR
|
|
53
|
+
*
|
|
54
|
+
* Three.js integration by zz85 http://twitter.com/blurspline
|
|
55
|
+
*
|
|
56
|
+
* Example:
|
|
57
|
+
* ```
|
|
58
|
+
* const geometry = new BoxGeometry(1, 1, 1);
|
|
59
|
+
*
|
|
60
|
+
* const material = new ShaderMaterial({
|
|
61
|
+
* uniforms: atmosphericShader.uniforms,
|
|
62
|
+
* vertexShader: atmosphericShader.vertexShader,
|
|
63
|
+
* fragmentShader: atmosphericShader.fragmentShader,
|
|
64
|
+
* depthWrite: false,
|
|
65
|
+
* side: BackSide,
|
|
66
|
+
* }) as ShaderMaterial & { uniforms: AtmosphericShaderUniforms };
|
|
67
|
+
*
|
|
68
|
+
* const theta = MathUtils.degToRad(89);
|
|
69
|
+
* const phi = MathUtils.degToRad(180);
|
|
70
|
+
* const sun = new Vector3().setFromSphericalCoords(1, theta, phi);
|
|
71
|
+
*
|
|
72
|
+
* material.uniforms.sunPosition.value = sun;
|
|
73
|
+
*
|
|
74
|
+
* const mesh = new Mesh(geometry, material);
|
|
75
|
+
* mesh.scale.setScalar(450000);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare const atmosphericShader: {
|
|
79
|
+
uniforms: {
|
|
80
|
+
turbidity: {
|
|
81
|
+
value: number;
|
|
82
|
+
};
|
|
83
|
+
rayleigh: {
|
|
84
|
+
value: number;
|
|
85
|
+
};
|
|
86
|
+
mieCoefficient: {
|
|
87
|
+
value: number;
|
|
88
|
+
};
|
|
89
|
+
mieDirectionalG: {
|
|
90
|
+
value: number;
|
|
91
|
+
};
|
|
92
|
+
sunPosition: {
|
|
93
|
+
value: Vector3;
|
|
94
|
+
};
|
|
95
|
+
up: {
|
|
96
|
+
value: Vector3;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
vertexShader: string;
|
|
100
|
+
fragmentShader: string;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export declare interface AtmosphericShaderUniforms {
|
|
104
|
+
turbidity: Uniform<number>;
|
|
105
|
+
rayleigh: Uniform<number>;
|
|
106
|
+
mieCoefficient: Uniform<number>;
|
|
107
|
+
mieDirectionalG: Uniform<number>;
|
|
108
|
+
sunPosition: Uniform<Vector3>;
|
|
109
|
+
up: Uniform<Vector3>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Atmospheric scattering skybox.
|
|
114
|
+
*
|
|
115
|
+
* Elevation (theta, θ): Angle measured above or below the horizon (from the xy-plane towards the zenith or nadir).
|
|
116
|
+
* Azimuth (phi, φ): Angle measured around the horizon from a reference direction (e.g., north, east).
|
|
117
|
+
*/
|
|
118
|
+
export declare class AtmosphericSkybox extends Mesh {
|
|
119
|
+
geometry: BoxGeometry;
|
|
120
|
+
material: ShaderMaterial & {
|
|
121
|
+
uniforms: AtmosphericShaderUniforms;
|
|
122
|
+
};
|
|
123
|
+
constructor();
|
|
124
|
+
/**
|
|
125
|
+
* Set the sun position.
|
|
126
|
+
*
|
|
127
|
+
* Elevation (theta, θ)
|
|
128
|
+
* - Angle measured above or below the horizon (from the xy-plane towards the zenith or nadir).
|
|
129
|
+
* - Ranges from 0 to π/2 radians (or 0 to 90 degrees).
|
|
130
|
+
* - This is the vertical angle in the xy-plane.
|
|
131
|
+
*
|
|
132
|
+
* Azimuth (phi, φ)
|
|
133
|
+
* - Angle measured around the horizon from a reference direction (e.g., north, east).
|
|
134
|
+
* - Ranges from 0 to 2π radians (or 0 to 360 degrees).
|
|
135
|
+
* - This is the horizontal angle in the xy-plane.
|
|
136
|
+
*/
|
|
137
|
+
sunPosition(theta: number, phi: number): void;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export declare class Beaker extends Group {
|
|
141
|
+
constructor();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export declare class BeakerGeometry extends BufferGeometry {
|
|
145
|
+
constructor();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export declare class BifurcatedStaircaseGeometry extends BufferGeometry {
|
|
149
|
+
constructor(stepWidth?: number, stepHeight?: number, stepDepth?: number, numStepsCentral?: number, numStepsBranch?: number, branchAngle?: number);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export declare class Bone extends Mesh {
|
|
153
|
+
constructor();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Bone Geometry, a simple bone shape
|
|
158
|
+
* @extends BufferGeometry
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* // Create a bone
|
|
162
|
+
* const boneGeometry = new BoneGeometry();
|
|
163
|
+
* const boneMaterial = new MeshStandardMaterial({ color: 0xffffff });
|
|
164
|
+
* const bone = new Mesh(boneGeometry, boneMaterial);
|
|
165
|
+
* scene.add(bone);
|
|
166
|
+
*/
|
|
167
|
+
export declare class BoneGeometry extends BufferGeometry {
|
|
168
|
+
constructor(radiusTop?: number, radiusBottom?: number, height?: number, radialSegments?: number);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export declare class Book extends Mesh {
|
|
172
|
+
constructor({ width, height, depth, coverThickness, pageIndent, coverColor, pageColor, }?: {
|
|
173
|
+
width?: number | undefined;
|
|
174
|
+
height?: number | undefined;
|
|
175
|
+
depth?: number | undefined;
|
|
176
|
+
coverThickness?: number | undefined;
|
|
177
|
+
pageIndent?: number | undefined;
|
|
178
|
+
coverColor?: number | undefined;
|
|
179
|
+
pageColor?: number | undefined;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export declare class BookGeometry extends BufferGeometry {
|
|
184
|
+
constructor(width?: number, height?: number, depth?: number, coverThickness?: number, pageIndent?: number);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export declare class Bookshelf extends Mesh {
|
|
188
|
+
constructor({ width, //
|
|
189
|
+
height, depth, shelves, frameThickness, open, }?: {
|
|
190
|
+
width?: number | undefined;
|
|
191
|
+
height?: number | undefined;
|
|
192
|
+
depth?: number | undefined;
|
|
193
|
+
shelves?: number | undefined;
|
|
194
|
+
frameThickness?: number | undefined;
|
|
195
|
+
open?: boolean | undefined;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export declare class BookshelfGeometry extends BufferGeometry {
|
|
200
|
+
constructor({ width, //
|
|
201
|
+
height, depth, shelves, frameThickness, open, }?: {
|
|
202
|
+
width?: number | undefined;
|
|
203
|
+
height?: number | undefined;
|
|
204
|
+
depth?: number | undefined;
|
|
205
|
+
shelves?: number | undefined;
|
|
206
|
+
frameThickness?: number | undefined;
|
|
207
|
+
open?: boolean | undefined;
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export declare class Bottle extends Group {
|
|
212
|
+
constructor();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Bubbling class creates a group of small, semi-transparent bubbles that
|
|
217
|
+
* rise upwards in a loop, mimicking bubbling inside a flask.
|
|
218
|
+
*/
|
|
219
|
+
export declare class Bubbling extends Group {
|
|
220
|
+
private bubbles;
|
|
221
|
+
private bubbleCount;
|
|
222
|
+
constructor();
|
|
223
|
+
/**
|
|
224
|
+
* Updates bubble positions, moving them upward and resetting them
|
|
225
|
+
* to the bottom if they reach the top.
|
|
226
|
+
*/
|
|
227
|
+
private updateBubbles;
|
|
228
|
+
/**
|
|
229
|
+
* Animates the bubbles by updating their positions in a loop.
|
|
230
|
+
*/
|
|
231
|
+
private animateBubbles;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export declare class BunsenBurner extends Group {
|
|
235
|
+
constructor();
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export declare class Burst extends Mesh {
|
|
239
|
+
constructor(sides?: number, innerRadius?: number, outerRadius?: number, depth?: number);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export declare class BurstShape extends Shape {
|
|
243
|
+
constructor(sides?: number, innerRadius?: number, outerRadius?: number);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export declare class Candle extends Group {
|
|
247
|
+
private candle;
|
|
248
|
+
private flame;
|
|
249
|
+
private candleLight;
|
|
250
|
+
private height;
|
|
251
|
+
private radius;
|
|
252
|
+
constructor(height?: number, radius?: number);
|
|
253
|
+
animateFlicker(): void;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Calculate the height of a spherical cap.
|
|
258
|
+
* h = R * (1 - cos(thetaLength))
|
|
259
|
+
*/
|
|
260
|
+
export declare const capHeightFromRadius: (radius: number, thetaLength: number) => number;
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Calculate the width of a spherical cap.
|
|
264
|
+
* w = 2 * R * sin(thetaLength)
|
|
265
|
+
*/
|
|
266
|
+
export declare const capWidthFromRadius: (radius: number, thetaLength: number) => number;
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Convert Cartesian coordinates to spherical coordinates.
|
|
270
|
+
* @param {number} x - The x-coordinate.
|
|
271
|
+
* @param {number} y - The y-coordinate.
|
|
272
|
+
* @param {number} z - The z-coordinate.
|
|
273
|
+
* @returns {{radius: number, theta: number, phi: number}} The spherical coordinates.
|
|
274
|
+
*/
|
|
275
|
+
export declare const cartesianToSpherical: (x: number, y: number, z: number) => {
|
|
276
|
+
radius: number;
|
|
277
|
+
theta: number;
|
|
278
|
+
phi: number;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
export declare function centerGroup<T extends Group>(group: T): void;
|
|
282
|
+
|
|
283
|
+
export declare function centerGroupAtTarget<T extends Group>(group: T, target?: Vector3): void;
|
|
284
|
+
|
|
285
|
+
export declare function centerInstancedMesh<T extends InstancedMesh>(mesh: T): void;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Centers the given mesh at the origin (0, 0, 0) of the scene by adjusting its position.
|
|
289
|
+
* The mesh is moved so that its bounding box center is placed at the origin.
|
|
290
|
+
*/
|
|
291
|
+
export declare function centerMesh<T extends Mesh>(mesh: T): void;
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Centers the geometry of the given mesh at the local origin (0, 0, 0) by modifying the geometry vertices.
|
|
295
|
+
* This method moves the geometry itself so that its center is at the local origin,
|
|
296
|
+
* without affecting the position, rotation, or scale of the mesh.
|
|
297
|
+
*/
|
|
298
|
+
export declare function centerMeshGeometry<T extends Mesh>(mesh: T): void;
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Create a checkerboard texture
|
|
302
|
+
*
|
|
303
|
+
* Example:
|
|
304
|
+
* ```
|
|
305
|
+
* const material = new MeshStandardMaterial();
|
|
306
|
+
* material.map = createCheckerboardTexture(8);
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
export declare const checkerboardTexture: (size: number) => DataTexture;
|
|
310
|
+
|
|
311
|
+
export declare const circularEaseIn: (t: number) => number;
|
|
312
|
+
|
|
313
|
+
export declare const circularEaseInOut: (t: number) => number;
|
|
314
|
+
|
|
315
|
+
export declare const circularEaseOut: (t: number) => number;
|
|
316
|
+
|
|
317
|
+
export declare const concave: (t: number) => number;
|
|
318
|
+
|
|
319
|
+
export declare const convex: (t: number) => number;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Function to create cubic Bezier curve points
|
|
323
|
+
*
|
|
324
|
+
* Example:
|
|
325
|
+
* ```
|
|
326
|
+
* const points = [
|
|
327
|
+
* ...ParametricCurveUtils.createCubicCurvePoints(
|
|
328
|
+
* new THREE.Vector2(0.5, 2), // Start of the cubic curve
|
|
329
|
+
* new THREE.Vector2(1.5, 3), // First control point (outward curve)
|
|
330
|
+
* new THREE.Vector2(1.5, 4), // Second control point (outward curve)
|
|
331
|
+
* new THREE.Vector2(0.5, 5), // End of the curve
|
|
332
|
+
* 24, // Resolution of the quadratic curve
|
|
333
|
+
* ),
|
|
334
|
+
* ]
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
export declare const createCubicCurvePoints: (start: Vector2, control1: Vector2, control2: Vector2, end: Vector2, segments?: number) => Vector2[];
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Function to create damped curve points
|
|
341
|
+
*
|
|
342
|
+
* Example:
|
|
343
|
+
* ```
|
|
344
|
+
* const points = [
|
|
345
|
+
* ...ParametricCurveUtils.createDampedCurvePoints(
|
|
346
|
+
* new THREE.Vector2(0.5, 2), // Start of the damped curve
|
|
347
|
+
* new THREE.Vector2(1.5, 5), // End of the damped curve
|
|
348
|
+
* 5, // Damping factor
|
|
349
|
+
* 24, // Resolution of the damped curve
|
|
350
|
+
* ),
|
|
351
|
+
* ]
|
|
352
|
+
* ```
|
|
353
|
+
*/
|
|
354
|
+
export declare const createDampedCurvePoints: (start: Vector2, end: Vector2, damping: number, segments?: number) => Vector2[];
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Function to create exponential curve points
|
|
358
|
+
*
|
|
359
|
+
* Example:
|
|
360
|
+
* ```
|
|
361
|
+
* const points = [
|
|
362
|
+
* ...ParametricCurveUtils.createExponentialCurvePoints(
|
|
363
|
+
* new THREE.Vector2(0.5, 2), // Start of the exponential curve
|
|
364
|
+
* new THREE.Vector2(1.5, 5), // End of the exponential curve
|
|
365
|
+
* 0.5, // Base of the exponential function
|
|
366
|
+
* 2, // Exponential factor
|
|
367
|
+
* 24 // Resolution of the exponential curve
|
|
368
|
+
* ),
|
|
369
|
+
* ]
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
export declare const createExponentialCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Function to create logarithmic curve points
|
|
376
|
+
*
|
|
377
|
+
* Example:
|
|
378
|
+
* ```
|
|
379
|
+
* const points = [
|
|
380
|
+
* ...ParametricCurveUtils.createLogarithmicCurvePoints(
|
|
381
|
+
* new THREE.Vector2(0.5, 2), // Start of the logarithmic curve
|
|
382
|
+
* new THREE.Vector2(1.5, 5), // End of the logarithmic curve
|
|
383
|
+
* 0.5, // Base of the logarithmic function
|
|
384
|
+
* 10, // Logarithmic factor
|
|
385
|
+
* 24, // Resolution of the logarithmic curve
|
|
386
|
+
* ),
|
|
387
|
+
* ]
|
|
388
|
+
* ```
|
|
389
|
+
*/
|
|
390
|
+
export declare const createLogarithmicCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Function to create parabolic curve points
|
|
394
|
+
*
|
|
395
|
+
* Example:
|
|
396
|
+
* ```
|
|
397
|
+
* const points = [
|
|
398
|
+
* ...ParametricCurveUtils.createParabolicCurvePoints(
|
|
399
|
+
* new THREE.Vector2(0.5, 2), // Start point
|
|
400
|
+
* new THREE.Vector2(0.5, 5), // End point
|
|
401
|
+
* 1, // Coefficient for t^2 (controls curvature)
|
|
402
|
+
* 0, // Coefficient for t (linear component)
|
|
403
|
+
* 0, // Constant term (vertical offset)
|
|
404
|
+
* 24, // Resolution
|
|
405
|
+
* ),
|
|
406
|
+
* ]
|
|
407
|
+
* ```
|
|
408
|
+
*/
|
|
409
|
+
export declare const createParabolicCurvePoints: (start: Vector2, end: Vector2, a: number, b: number, c: number, segments?: number) => Vector2[];
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Function to create quadratic Bezier curve points
|
|
413
|
+
*
|
|
414
|
+
* Example:
|
|
415
|
+
* ```
|
|
416
|
+
* const points = [
|
|
417
|
+
* ...ParametricCurveUtils.createQuadraticCurvePoints(
|
|
418
|
+
* new THREE.Vector2(0.5, 2), // Start of the quadratic curve
|
|
419
|
+
* new THREE.Vector2(1.5, 5), // Control point (outward curve)
|
|
420
|
+
* new THREE.Vector2(0.5, 5), // End of the curve
|
|
421
|
+
* 24, // Resolution of the quadratic curve
|
|
422
|
+
* ),
|
|
423
|
+
* ]
|
|
424
|
+
* ```
|
|
425
|
+
*/
|
|
426
|
+
export declare const createQuadraticCurvePoints: (start: Vector2, control: Vector2, end: Vector2, segments?: number) => Vector2[];
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Function to create sigmoid curve points
|
|
430
|
+
*
|
|
431
|
+
* Example:
|
|
432
|
+
* ```
|
|
433
|
+
* const points = [
|
|
434
|
+
* ...ParametricCurveUtils.createSigmoidCurvePoints(
|
|
435
|
+
* new THREE.Vector2(0.5, 2), // Start of the sigmoid curve
|
|
436
|
+
* new THREE.Vector2(1.5, 5), // End of the sigmoid curve
|
|
437
|
+
* 20, // Sigmoid steepness factor
|
|
438
|
+
* 24, // Resolution of the sigmoid curve
|
|
439
|
+
* ),
|
|
440
|
+
* ]
|
|
441
|
+
*/
|
|
442
|
+
export declare const createSigmoidCurvePoints: (start: Vector2, end: Vector2, a: number, segments?: number) => Vector2[];
|
|
443
|
+
|
|
444
|
+
export declare class CrossHeadstone extends Mesh {
|
|
445
|
+
constructor({ width, height, depth, material, }?: CrossHeadstoneOptions);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
export declare class CrossHeadstoneGeometry extends BufferGeometry {
|
|
449
|
+
constructor(width?: number, height?: number, depth?: number);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
declare interface CrossHeadstoneOptions {
|
|
453
|
+
width?: number;
|
|
454
|
+
height?: number;
|
|
455
|
+
depth?: number;
|
|
456
|
+
material?: Material;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
export declare const cubicCurve: (t: number, p0: number, p1: number, p2: number, p3: number) => number;
|
|
460
|
+
|
|
461
|
+
export declare const cubicEaseIn: (t: number) => number;
|
|
462
|
+
|
|
463
|
+
export declare const cubicEaseInOut: (t: number) => number;
|
|
464
|
+
|
|
465
|
+
export declare const cubicEaseOut: (t: number) => number;
|
|
466
|
+
|
|
467
|
+
export declare const dampedCurve: (t: number, damping?: number) => number;
|
|
468
|
+
|
|
469
|
+
export declare class DaySkybox extends Mesh {
|
|
470
|
+
geometry: BoxGeometry;
|
|
471
|
+
material: ShaderMaterial & {
|
|
472
|
+
uniforms: DaySkyUniforms;
|
|
473
|
+
};
|
|
474
|
+
constructor(size?: number);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Shader for a day skybox.
|
|
479
|
+
*
|
|
480
|
+
* Example:
|
|
481
|
+
* ```
|
|
482
|
+
* this.material = new ShaderMaterial({
|
|
483
|
+
* uniforms: daySkyShader.uniforms,
|
|
484
|
+
* vertexShader: daySkyShader.vertexShader,
|
|
485
|
+
* fragmentShader: daySkyShader.fragmentShader,
|
|
486
|
+
* side: BackSide,
|
|
487
|
+
* }) as ShaderMaterial & { uniforms: DaySkyUniforms };
|
|
488
|
+
* ```
|
|
489
|
+
*/
|
|
490
|
+
export declare const daySkyShader: {
|
|
491
|
+
uniforms: {
|
|
492
|
+
topColor: {
|
|
493
|
+
value: Color;
|
|
494
|
+
};
|
|
495
|
+
bottomColor: {
|
|
496
|
+
value: Color;
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
vertexShader: string;
|
|
500
|
+
fragmentShader: string;
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
export declare interface DaySkyUniforms {
|
|
504
|
+
topColor: Uniform<Color>;
|
|
505
|
+
bottomColor: Uniform<Color>;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
export declare class Desk extends Group {
|
|
509
|
+
constructor();
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
export declare class DioramaGeometry extends BufferGeometry {
|
|
513
|
+
constructor(width?: number, height?: number, depth?: number, wallThickness?: number);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Examples
|
|
518
|
+
*
|
|
519
|
+
* Moving an Object Along a Direction
|
|
520
|
+
* ```
|
|
521
|
+
* const speed = 1; // Movement speed
|
|
522
|
+
* const direction = Direction.FORWARD; // Choose a direction
|
|
523
|
+
*
|
|
524
|
+
* object.position.add(direction.clone().multiplyScalar(speed * deltaTime));
|
|
525
|
+
* ```
|
|
526
|
+
*
|
|
527
|
+
* Snapping Positions to a Direction
|
|
528
|
+
* ```
|
|
529
|
+
* const targetPosition = new Vector3(5, 0, 3);
|
|
530
|
+
* const snapDirection = Direction.UP; // Align upwards
|
|
531
|
+
*
|
|
532
|
+
* object.position.copy(targetPosition.clone().add(snapDirection.clone().multiplyScalar(10)));
|
|
533
|
+
* ```
|
|
534
|
+
*
|
|
535
|
+
* Rotating or Orienting an Object
|
|
536
|
+
* ```
|
|
537
|
+
* const targetDirection = Direction.XY; // Diagonal upward
|
|
538
|
+
* object.lookAt(object.position.clone().add(targetDirection));
|
|
539
|
+
* ```
|
|
540
|
+
*
|
|
541
|
+
* Procedural Geometry
|
|
542
|
+
* ```
|
|
543
|
+
* const vertex = new Vector3(0, 0, 0);
|
|
544
|
+
* const direction = Direction.XZ; // Diagonal direction on XZ plane
|
|
545
|
+
*
|
|
546
|
+
* const offset = direction.clone().multiplyScalar(5);
|
|
547
|
+
* vertex.add(offset); // Move vertex in direction
|
|
548
|
+
* geometry.vertices.push(vertex);
|
|
549
|
+
* ```
|
|
550
|
+
*
|
|
551
|
+
* Animating Along a Direction
|
|
552
|
+
* ```
|
|
553
|
+
* const distance = 10; // Total distance to travel
|
|
554
|
+
* const duration = 2; // Animation duration in seconds
|
|
555
|
+
* const startPosition = object.position.clone();
|
|
556
|
+
* const targetPosition = startPosition.clone().add(Direction.BACKWARD.clone().multiplyScalar(distance));
|
|
557
|
+
*
|
|
558
|
+
* let elapsed = 0;
|
|
559
|
+
* function animate(deltaTime) {
|
|
560
|
+
* elapsed += deltaTime;
|
|
561
|
+
* const t = Math.min(elapsed / duration, 1); // Normalize time to [0, 1]
|
|
562
|
+
* object.position.lerpVectors(startPosition, targetPosition, t);
|
|
563
|
+
* }
|
|
564
|
+
* ```
|
|
565
|
+
*
|
|
566
|
+
* Shader Uniforms
|
|
567
|
+
* ```
|
|
568
|
+
* material.uniforms.uDirection.value = Direction.FORWARD; // Use as light or flow direction
|
|
569
|
+
* ```
|
|
570
|
+
*
|
|
571
|
+
* Particle Systems
|
|
572
|
+
* ```
|
|
573
|
+
* particles.forEach(particle => {
|
|
574
|
+
* particle.velocity.add(Direction.FORWARD.clone().multiplyScalar(0.1));
|
|
575
|
+
* });
|
|
576
|
+
* ```
|
|
577
|
+
*
|
|
578
|
+
* Directional Raycasting
|
|
579
|
+
* ```
|
|
580
|
+
* const rayOrigin = new Vector3(0, 0, 0);
|
|
581
|
+
* const rayDirection = Direction.FORWARD;
|
|
582
|
+
* const raycaster = new THREE.Raycaster(rayOrigin, rayDirection);
|
|
583
|
+
*
|
|
584
|
+
* // Find intersected objects
|
|
585
|
+
* const intersects = raycaster.intersectObjects(scene.children);
|
|
586
|
+
* ```
|
|
587
|
+
*
|
|
588
|
+
* Physics Forces
|
|
589
|
+
* ```
|
|
590
|
+
* const forceDirection = Direction.UP; // Push upwards
|
|
591
|
+
* const forceMagnitude = 50;
|
|
592
|
+
*
|
|
593
|
+
* rigidBody.applyForce(forceDirection.clone().multiplyScalar(forceMagnitude));
|
|
594
|
+
* ```
|
|
595
|
+
*/
|
|
596
|
+
export declare const Direction: {
|
|
597
|
+
UP: Vector3;
|
|
598
|
+
DOWN: Vector3;
|
|
599
|
+
LEFT: Vector3;
|
|
600
|
+
RIGHT: Vector3;
|
|
601
|
+
FORWARD: Vector3;
|
|
602
|
+
BACKWARD: Vector3;
|
|
603
|
+
X: Vector3;
|
|
604
|
+
Y: Vector3;
|
|
605
|
+
Z: Vector3;
|
|
606
|
+
XY: Vector3;
|
|
607
|
+
XZ: Vector3;
|
|
608
|
+
YZ: Vector3;
|
|
609
|
+
XYZ: Vector3;
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Moves vertices within a specified radius around a target position along a given direction
|
|
614
|
+
*/
|
|
615
|
+
export declare const displacementBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, direction?: Vector3, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Easing functions for interpolating values over time.
|
|
619
|
+
*/
|
|
620
|
+
export declare const Easing: {
|
|
621
|
+
SINE_EASE_IN: (t: number) => number;
|
|
622
|
+
SINE_EASE_OUT: (t: number) => number;
|
|
623
|
+
SINE_EASE_IN_OUT: (t: number) => number;
|
|
624
|
+
QUADRATIC_EASE_IN: (t: number) => number;
|
|
625
|
+
QUADRATIC_EASE_OUT: (t: number) => number;
|
|
626
|
+
QUADRATIC_EASE_IN_OUT: (t: number) => number;
|
|
627
|
+
CUBIC_EASE_IN: (t: number) => number;
|
|
628
|
+
CUBIC_EASE_OUT: (t: number) => number;
|
|
629
|
+
CUBIC_EASE_IN_OUT: (t: number) => number;
|
|
630
|
+
QUARTIC_EASE_IN: (t: number) => number;
|
|
631
|
+
QUARTIC_EASE_OUT: (t: number) => number;
|
|
632
|
+
QUARTIC_EASE_IN_OUT: (t: number) => number;
|
|
633
|
+
QUINTIC_EASE_IN: (t: number) => number;
|
|
634
|
+
QUINTIC_EASE_OUT: (t: number) => number;
|
|
635
|
+
QUINTIC_EASE_IN_OUT: (t: number) => number;
|
|
636
|
+
EXPONENTIAL_EASE_IN: (t: number) => number;
|
|
637
|
+
EXPONENTIAL_EASE_OUT: (t: number) => number;
|
|
638
|
+
EXPONENTIAL_EASE_IN_OUT: (t: number) => number;
|
|
639
|
+
CIRCULAR_EASE_IN: (t: number) => number;
|
|
640
|
+
CIRCULAR_EASE_OUT: (t: number) => number;
|
|
641
|
+
CIRCULAR_EASE_IN_OUT: (t: number) => number;
|
|
642
|
+
LINEAR: (t: number) => number;
|
|
643
|
+
SMOOTHSTEP: (t: number) => number;
|
|
644
|
+
CONCAVE: (t: number) => number;
|
|
645
|
+
CONVEX: (t: number) => number;
|
|
646
|
+
LOGARITHMIC: (t: number) => number;
|
|
647
|
+
SQUARE_ROOT: (t: number) => number;
|
|
648
|
+
INVERSE: (t: number) => number;
|
|
649
|
+
GAUSSIAN: (t: number) => number;
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
export declare class ElectricPanel extends Group {
|
|
653
|
+
constructor();
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
export declare class ErlenmeyerFlask extends Mesh {
|
|
657
|
+
constructor({ flaskRadius, //
|
|
658
|
+
neckRadius, height, neckHeight, radialSegments, }?: {
|
|
659
|
+
flaskRadius?: number | undefined;
|
|
660
|
+
neckRadius?: number | undefined;
|
|
661
|
+
height?: number | undefined;
|
|
662
|
+
neckHeight?: number | undefined;
|
|
663
|
+
radialSegments?: number | undefined;
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
export declare class ErlenmeyerFlaskGeometry extends BufferGeometry {
|
|
668
|
+
constructor({ flaskRadius, //
|
|
669
|
+
neckRadius, height, neckHeight, radialSegments, }?: {
|
|
670
|
+
flaskRadius?: number | undefined;
|
|
671
|
+
neckRadius?: number | undefined;
|
|
672
|
+
height?: number | undefined;
|
|
673
|
+
neckHeight?: number | undefined;
|
|
674
|
+
radialSegments?: number | undefined;
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export declare const exponentialCurve: (t: number, base?: number, factor?: number) => number;
|
|
679
|
+
|
|
680
|
+
export declare const exponentialEaseIn: (t: number) => number;
|
|
681
|
+
|
|
682
|
+
export declare const exponentialEaseInOut: (t: number) => number;
|
|
683
|
+
|
|
684
|
+
export declare const exponentialEaseOut: (t: number) => number;
|
|
685
|
+
|
|
686
|
+
export declare const fadeShader: {
|
|
687
|
+
uniforms: {
|
|
688
|
+
tDiffuse: {
|
|
689
|
+
value: null;
|
|
690
|
+
};
|
|
691
|
+
opacity: {
|
|
692
|
+
value: number;
|
|
693
|
+
};
|
|
694
|
+
};
|
|
695
|
+
vertexShader: string;
|
|
696
|
+
fragmentShader: string;
|
|
697
|
+
};
|
|
698
|
+
|
|
699
|
+
export declare const Falloff: {
|
|
700
|
+
LINEAR: (distance: number, radius: number) => number;
|
|
701
|
+
QUADRATIC: (distance: number, radius: number) => number;
|
|
702
|
+
SQUARE_ROOT: (distance: number, radius: number) => number;
|
|
703
|
+
LOGARITHMIC: (distance: number, radius: number) => number;
|
|
704
|
+
SINE: (distance: number, radius: number) => number;
|
|
705
|
+
EXPONENTIAL: (distance: number, radius: number) => number;
|
|
706
|
+
CUBIC: (distance: number, radius: number) => number;
|
|
707
|
+
GAUSSIAN: (distance: number, radius: number) => number;
|
|
708
|
+
INVERSE: (distance: number, radius: number) => number;
|
|
709
|
+
SMOOTHSTEP: (distance: number, radius: number) => number;
|
|
710
|
+
};
|
|
711
|
+
|
|
712
|
+
export declare class FenceColumn extends Mesh {
|
|
713
|
+
constructor({ height }?: {
|
|
714
|
+
height?: number | undefined;
|
|
715
|
+
});
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Fence Column Geometry, a stone slab fence column shape
|
|
720
|
+
*/
|
|
721
|
+
export declare class FenceColumnGeometry extends BufferGeometry {
|
|
722
|
+
constructor({ height }?: {
|
|
723
|
+
height?: number | undefined;
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
export declare class Flask extends Group {
|
|
728
|
+
constructor();
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* Flattens vertices to a given plane defined by a target height or normal direction.
|
|
733
|
+
*/
|
|
734
|
+
export declare const flattenBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, targetHeight: number, strength: number, direction?: Vector3, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
735
|
+
|
|
736
|
+
export declare const gaussian: (t: number) => number;
|
|
737
|
+
|
|
738
|
+
export declare class Gear extends Mesh {
|
|
739
|
+
constructor(sides?: number, innerRadius?: number, outerRadius?: number, holeSides?: number, holeRadius?: number, depth?: number);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
export declare class GearShape extends Shape {
|
|
743
|
+
constructor(sides?: number, innerRadius?: number, outerRadius?: number, holeSides?: number, holeRadius?: number);
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
export declare class Heart extends Mesh {
|
|
747
|
+
constructor(size?: number, width?: number, height?: number, tipDepth?: number, depth?: number);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
export declare class HeartShape extends Shape {
|
|
751
|
+
constructor(size?: number, width?: number, height?: number, tipDepth?: number);
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
export declare class Hill extends Mesh {
|
|
755
|
+
constructor({ radius, //
|
|
756
|
+
height, widthSegments, heightSegments, phiStart, phiLength, }?: {
|
|
757
|
+
radius?: number | undefined;
|
|
758
|
+
height?: number | undefined;
|
|
759
|
+
widthSegments?: number | undefined;
|
|
760
|
+
heightSegments?: number | undefined;
|
|
761
|
+
phiStart?: number | undefined;
|
|
762
|
+
phiLength?: number | undefined;
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
export declare class HillGeometry extends BufferGeometry {
|
|
767
|
+
constructor({ radius, //
|
|
768
|
+
height, widthSegments, heightSegments, phiStart, phiLength, }?: {
|
|
769
|
+
radius?: number | undefined;
|
|
770
|
+
height?: number | undefined;
|
|
771
|
+
widthSegments?: number | undefined;
|
|
772
|
+
heightSegments?: number | undefined;
|
|
773
|
+
phiStart?: number | undefined;
|
|
774
|
+
phiLength?: number | undefined;
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* Generates an array of interpolated 2D points using an easing function.
|
|
780
|
+
* @param curveFunction - The easing function to apply to the normalized value.
|
|
781
|
+
* @param startRadius - The starting radius for interpolation.
|
|
782
|
+
* @param endRadius - The ending radius for interpolation.
|
|
783
|
+
* @param startHeight - The starting height for interpolation.
|
|
784
|
+
* @param endHeight - The ending height for interpolation.
|
|
785
|
+
* @param segments - The number of segments for interpolation (default is 20).
|
|
786
|
+
* @param min - The minimum value of the normalization range (default is 0).
|
|
787
|
+
* @param max - The maximum value of the normalization range (default is 1).
|
|
788
|
+
* @returns An array of `Vector2` points representing the interpolated curve.
|
|
789
|
+
*/
|
|
790
|
+
export declare function interpolateCurve(curveFunction: (t: number) => number, startRadius: number, endRadius: number, startHeight: number, endHeight: number, segments?: number, min?: number, max?: number): Vector2[];
|
|
791
|
+
|
|
792
|
+
export declare const inverse: (t: number) => number;
|
|
793
|
+
|
|
794
|
+
export declare class Lantern extends Group {
|
|
795
|
+
constructor(height?: number, baseWidth?: number);
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
export declare class LeverPanel extends Group {
|
|
799
|
+
constructor();
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
export declare const linear: (t: number) => number;
|
|
803
|
+
|
|
804
|
+
export declare const logarithmic: (t: number) => number;
|
|
805
|
+
|
|
806
|
+
export declare const logarithmicCurve: (t: number, base?: number, factor?: number) => number;
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* Generates a random number skewed towards the maximum value.
|
|
810
|
+
*
|
|
811
|
+
* @param {number} [exponent=0.5] - Controls the skew of the distribution.
|
|
812
|
+
* A smaller value (e.g., 0.3) skews the values towards the max.
|
|
813
|
+
* A larger value (e.g., 0.8) creates a more even distribution.
|
|
814
|
+
* @param {number} [min=0] - Minimum value of the range.
|
|
815
|
+
* @param {number} [max=1] - Maximum value of the range.
|
|
816
|
+
* @returns {number} A random number between `min` and `max`, skewed towards `max`.
|
|
817
|
+
*/
|
|
818
|
+
export declare function logarithmicRandomMax(exponent?: number, min?: number, max?: number): number;
|
|
819
|
+
|
|
820
|
+
/**
|
|
821
|
+
* Generates a random number skewed towards the minimum value.
|
|
822
|
+
*
|
|
823
|
+
* @param {number} [exponent=0.5] - Controls the skew of the distribution.
|
|
824
|
+
* A smaller value (e.g., 0.3) skews the values towards the min.
|
|
825
|
+
* A larger value (e.g., 0.8) creates a more even distribution.
|
|
826
|
+
* @param {number} [min=0] - Minimum value of the range.
|
|
827
|
+
* @param {number} [max=1] - Maximum value of the range.
|
|
828
|
+
* @returns {number} A random number between `min` and `max`, skewed towards `min`.
|
|
829
|
+
*/
|
|
830
|
+
export declare function logarithmicRandomMin(exponent?: number, min?: number, max?: number): number;
|
|
831
|
+
|
|
832
|
+
export declare class LShapedStaircaseGeometry extends BufferGeometry {
|
|
833
|
+
constructor(stepWidth?: number, stepHeight?: number, stepDepth?: number, numStepsPerFlight?: number, landingDepth?: number);
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
export declare class Mausoleum extends Group {
|
|
837
|
+
constructor();
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
export declare class Microscope extends Group {
|
|
841
|
+
constructor();
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
export declare class Moon extends Group {
|
|
845
|
+
constructor();
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
export declare class MortarAndPestle extends Group {
|
|
849
|
+
constructor();
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
export declare class MortarGeometry extends BufferGeometry {
|
|
853
|
+
constructor();
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
export declare class MossyRocks extends Group {
|
|
857
|
+
constructor();
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
/**
|
|
861
|
+
* Mound-like mesh with a flat top.
|
|
862
|
+
*
|
|
863
|
+
* To create a radius based on a desired width:
|
|
864
|
+
* ```
|
|
865
|
+
* const mound = new Mound({
|
|
866
|
+
* radius: radiusFromCapWidth(5, Math.PI / 10),
|
|
867
|
+
* }
|
|
868
|
+
* ```
|
|
869
|
+
*
|
|
870
|
+
* To create a radius based on a desired height:
|
|
871
|
+
* ```
|
|
872
|
+
* const mound = new Mound({
|
|
873
|
+
* radius: radiusFromCapHeight(5, Math.PI / 10),
|
|
874
|
+
* }
|
|
875
|
+
* ```
|
|
876
|
+
*/
|
|
877
|
+
export declare class Mound extends Mesh {
|
|
878
|
+
constructor({ radius, //
|
|
879
|
+
widthSegments, heightSegments, phiStart, phiLength, thetaLength, }?: {
|
|
880
|
+
radius?: number | undefined;
|
|
881
|
+
widthSegments?: number | undefined;
|
|
882
|
+
heightSegments?: number | undefined;
|
|
883
|
+
phiStart?: number | undefined;
|
|
884
|
+
phiLength?: number | undefined;
|
|
885
|
+
thetaLength?: number | undefined;
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
/**
|
|
890
|
+
* Mound-like geometry with a flat top.
|
|
891
|
+
*
|
|
892
|
+
* To create a radius based on a desired width:
|
|
893
|
+
* ```
|
|
894
|
+
* const moundGeometry = new MoundGeometry({
|
|
895
|
+
* radius: radiusFromCapWidth(5, Math.PI / 10),
|
|
896
|
+
* }
|
|
897
|
+
* ```
|
|
898
|
+
*
|
|
899
|
+
* To create a radius based on a desired height:
|
|
900
|
+
* ```
|
|
901
|
+
* const moundGeometry = new MoundGeometry({
|
|
902
|
+
* radius: radiusFromCapHeight(5, Math.PI / 10),
|
|
903
|
+
* }
|
|
904
|
+
* ```
|
|
905
|
+
*/
|
|
906
|
+
export declare class MoundGeometry extends BufferGeometry {
|
|
907
|
+
constructor({ radius, //
|
|
908
|
+
widthSegments, heightSegments, phiStart, phiLength, thetaLength, }?: {
|
|
909
|
+
radius?: number | undefined;
|
|
910
|
+
widthSegments?: number | undefined;
|
|
911
|
+
heightSegments?: number | undefined;
|
|
912
|
+
phiStart?: number | undefined;
|
|
913
|
+
phiLength?: number | undefined;
|
|
914
|
+
thetaLength?: number | undefined;
|
|
915
|
+
});
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
export declare class NightSkybox extends Mesh {
|
|
919
|
+
geometry: SphereGeometry;
|
|
920
|
+
material: ShaderMaterial & {
|
|
921
|
+
uniforms: NightSkyUniforms;
|
|
922
|
+
};
|
|
923
|
+
constructor(size?: number);
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Shader for a night skybox.
|
|
928
|
+
*
|
|
929
|
+
* Example:
|
|
930
|
+
* ```
|
|
931
|
+
* this.material = new ShaderMaterial({
|
|
932
|
+
* vertexShader: nightSkyShader.vertexShader,
|
|
933
|
+
* fragmentShader: nightSkyShader.fragmentShader,
|
|
934
|
+
* uniforms: nightSkyShader.uniforms,
|
|
935
|
+
* side: BackSide,
|
|
936
|
+
* }) as ShaderMaterial & { uniforms: NightSkyUniforms };
|
|
937
|
+
* ```
|
|
938
|
+
*/
|
|
939
|
+
export declare const nightSkyShader: {
|
|
940
|
+
uniforms: {
|
|
941
|
+
topColor: {
|
|
942
|
+
value: Color;
|
|
943
|
+
};
|
|
944
|
+
bottomColor: {
|
|
945
|
+
value: Color;
|
|
946
|
+
};
|
|
947
|
+
offset: {
|
|
948
|
+
value: number;
|
|
949
|
+
};
|
|
950
|
+
exponent: {
|
|
951
|
+
value: number;
|
|
952
|
+
};
|
|
953
|
+
};
|
|
954
|
+
vertexShader: string;
|
|
955
|
+
fragmentShader: string;
|
|
956
|
+
};
|
|
957
|
+
|
|
958
|
+
export declare interface NightSkyUniforms {
|
|
959
|
+
topColor: Uniform<Color>;
|
|
960
|
+
bottomColor: Uniform<Color>;
|
|
961
|
+
offset: Uniform<number>;
|
|
962
|
+
exponent: Uniform<number>;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
/**
|
|
966
|
+
* Adds random noise to the vertices within the specified radius to create a more rugged or natural look.
|
|
967
|
+
*/
|
|
968
|
+
export declare const noiseBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, direction?: Vector3, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
969
|
+
|
|
970
|
+
declare interface NoiseDisplacementOptions {
|
|
971
|
+
time?: number;
|
|
972
|
+
intensity?: number;
|
|
973
|
+
direction?: Vector3;
|
|
974
|
+
scale?: number;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
export declare class ObeliskHeadstone extends Mesh {
|
|
978
|
+
constructor({ totalHeight, baseWidth }?: ObeliskHeadstoneOptions);
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
export declare class ObeliskHeadstoneGeometry extends BufferGeometry {
|
|
982
|
+
constructor(totalHeight?: number, baseWidth?: number);
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
declare interface ObeliskHeadstoneOptions {
|
|
986
|
+
baseWidth?: number;
|
|
987
|
+
totalHeight?: number;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
export declare const parabolicCurve: (t: number, a?: number, b?: number, c?: number) => number;
|
|
991
|
+
|
|
992
|
+
export declare const ParametricCurve: {
|
|
993
|
+
CUBIC: (t: number, p0: number, p1: number, p2: number, p3: number) => number;
|
|
994
|
+
DAMPED: (t: number, damping?: number) => number;
|
|
995
|
+
EXPONENTIAL: (t: number, base?: number, factor?: number) => number;
|
|
996
|
+
LOGARITHMIC: (t: number, base?: number, factor?: number) => number;
|
|
997
|
+
PARABOLIC: (t: number, a?: number, b?: number, c?: number) => number;
|
|
998
|
+
QUADRATIC: (t: number, p0: number, p1: number, p2: number) => number;
|
|
999
|
+
SIGMOID: (t: number, a?: number) => number;
|
|
1000
|
+
SINUSOIDAL: (t: number) => number;
|
|
1001
|
+
};
|
|
1002
|
+
|
|
1003
|
+
export declare const ParametricCurveUtils: {
|
|
1004
|
+
createCubicCurvePoints: (start: Vector2, control1: Vector2, control2: Vector2, end: Vector2, segments?: number) => Vector2[];
|
|
1005
|
+
createDampedCurvePoints: (start: Vector2, end: Vector2, damping: number, segments?: number) => Vector2[];
|
|
1006
|
+
createExponentialCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
1007
|
+
createLogarithmicCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
1008
|
+
createParabolicCurvePoints: (start: Vector2, end: Vector2, a: number, b: number, c: number, segments?: number) => Vector2[];
|
|
1009
|
+
createQuadraticCurvePoints: (start: Vector2, control: Vector2, end: Vector2, segments?: number) => Vector2[];
|
|
1010
|
+
createSigmoidCurvePoints: (start: Vector2, end: Vector2, a: number, segments?: number) => Vector2[];
|
|
1011
|
+
};
|
|
1012
|
+
|
|
1013
|
+
export declare const quadraticCurve: (t: number, p0: number, p1: number, p2: number) => number;
|
|
1014
|
+
|
|
1015
|
+
export declare const quadraticEaseIn: (t: number) => number;
|
|
1016
|
+
|
|
1017
|
+
export declare const quadraticEaseInOut: (t: number) => number;
|
|
1018
|
+
|
|
1019
|
+
export declare const quadraticEaseOut: (t: number) => number;
|
|
1020
|
+
|
|
1021
|
+
export declare const quarticEaseIn: (t: number) => number;
|
|
1022
|
+
|
|
1023
|
+
export declare const quarticEaseInOut: (t: number) => number;
|
|
1024
|
+
|
|
1025
|
+
export declare const quarticEaseOut: (t: number) => number;
|
|
1026
|
+
|
|
1027
|
+
export declare const quinticEaseIn: (t: number) => number;
|
|
1028
|
+
|
|
1029
|
+
export declare const quinticEaseInOut: (t: number) => number;
|
|
1030
|
+
|
|
1031
|
+
export declare const quinticEaseOut: (t: number) => number;
|
|
1032
|
+
|
|
1033
|
+
/**
|
|
1034
|
+
* Calculate the radius to achieve a spherical cap height.
|
|
1035
|
+
* R = r / (1 - cos(thetaLength))
|
|
1036
|
+
*/
|
|
1037
|
+
export declare const radiusFromCapHeight: (height: number, thetaLength: number) => number;
|
|
1038
|
+
|
|
1039
|
+
/**
|
|
1040
|
+
* Calculate the radius to achieve a spherical cap width.
|
|
1041
|
+
* R = w / (2 * sin(thetaLength))
|
|
1042
|
+
*/
|
|
1043
|
+
export declare const radiusFromCapWidth: (width: number, thetaLength: number) => number;
|
|
1044
|
+
|
|
1045
|
+
/**
|
|
1046
|
+
* Generates a random number between `min` and `max`.
|
|
1047
|
+
*/
|
|
1048
|
+
export declare function randomFloat(min?: number, max?: number): number;
|
|
1049
|
+
|
|
1050
|
+
/**
|
|
1051
|
+
* Generates a random integer between `min` and `max`.
|
|
1052
|
+
*/
|
|
1053
|
+
export declare function randomInteger(min?: number, max?: number): number;
|
|
1054
|
+
|
|
1055
|
+
export declare function randomTransformVertices<T extends BufferGeometry>(geometry: T, direction?: Vector3, minScale?: number, maxScale?: number): T;
|
|
1056
|
+
|
|
1057
|
+
export declare class Rock extends Mesh {
|
|
1058
|
+
constructor(radius?: number, widthSegments?: number, heightSegments?: number);
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
export declare class RockGeometry extends BufferGeometry {
|
|
1062
|
+
constructor(radius?: number, widthSegments?: number, heightSegments?: number);
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
export declare class Rocks extends Group {
|
|
1066
|
+
constructor();
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
export declare class RoundedHeadstone extends Mesh {
|
|
1070
|
+
constructor(width?: number, height?: number, depth?: number, radius?: number);
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
export declare class RoundedHeadstoneGeometry extends BufferGeometry {
|
|
1074
|
+
constructor(width?: number, height?: number, depth?: number, radius?: number);
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
/**
|
|
1078
|
+
* Creates a row of books with a given count.
|
|
1079
|
+
*/
|
|
1080
|
+
export declare function rowOfBooksByCount<T extends Material>({ coverMaterial, pagesMaterial, count, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Creates a row of books with a total length.
|
|
1084
|
+
*/
|
|
1085
|
+
export declare function rowOfBooksByLength<T extends Material>({ coverMaterial, pagesMaterial, length, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
1086
|
+
|
|
1087
|
+
/**
|
|
1088
|
+
* Creates a row of books from the scales array of Vector3.
|
|
1089
|
+
*/
|
|
1090
|
+
export declare function rowOfBooksByScales<T extends Material>({ coverMaterial, pagesMaterial, scales, }: RowOfBooksByScalesOptions<T>): InstancedMesh;
|
|
1091
|
+
|
|
1092
|
+
declare interface RowOfBooksByScalesOptions<T extends Material = Material> {
|
|
1093
|
+
coverMaterial: T;
|
|
1094
|
+
pagesMaterial: T;
|
|
1095
|
+
scales: Vector3[];
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
1099
|
+
coverMaterial: T;
|
|
1100
|
+
pagesMaterial: T;
|
|
1101
|
+
count?: number;
|
|
1102
|
+
length?: number;
|
|
1103
|
+
scaleXMin?: number;
|
|
1104
|
+
scaleXMax?: number;
|
|
1105
|
+
scaleYMin?: number;
|
|
1106
|
+
scaleYMax?: number;
|
|
1107
|
+
scaleZMin?: number;
|
|
1108
|
+
scaleZMax?: number;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
export declare const sigmoidCurve: (t: number, a?: number) => number;
|
|
1112
|
+
|
|
1113
|
+
export declare class SimpleLeafGeometry extends BufferGeometry {
|
|
1114
|
+
constructor(size?: number);
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
export declare const sineEaseIn: (t: number) => number;
|
|
1118
|
+
|
|
1119
|
+
export declare const sineEaseInOut: (t: number) => number;
|
|
1120
|
+
|
|
1121
|
+
export declare const sineEaseOut: (t: number) => number;
|
|
1122
|
+
|
|
1123
|
+
/**
|
|
1124
|
+
* Smooths out the vertices by averaging their positions with neighboring vertices within a given radius.
|
|
1125
|
+
*/
|
|
1126
|
+
export declare const smoothBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number) => void;
|
|
1127
|
+
|
|
1128
|
+
export declare const smoothstep: (t: number) => number;
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
* Convert spherical coordinates to Cartesian coordinates.
|
|
1132
|
+
* @param {number} radius - The radius of the sphere.
|
|
1133
|
+
* @param {number} theta - The azimuthal angle in radians (from the x-axis in the x-y plane).
|
|
1134
|
+
* @param {number} phi - The polar angle in radians (from the positive z-axis).
|
|
1135
|
+
* @returns {{x: number, y: number, z: number}} The Cartesian coordinates.
|
|
1136
|
+
*/
|
|
1137
|
+
export declare const sphericalToCartesian: (radius: number, theta: number, phi: number) => {
|
|
1138
|
+
x: number;
|
|
1139
|
+
y: number;
|
|
1140
|
+
z: number;
|
|
1141
|
+
};
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Creates spikes or depressions centered on the target position, pushing vertices away or pulling them towards the center.
|
|
1145
|
+
*/
|
|
1146
|
+
export declare const spikeBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, inward?: boolean, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
1147
|
+
|
|
1148
|
+
export declare class SpiralStaircaseGeometry extends BufferGeometry {
|
|
1149
|
+
constructor(stepWidth?: number, stepDepth?: number, stepHeight?: number, numSteps?: number, radius?: number, angleIncrement?: number);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
export declare class SpiralTube extends Group {
|
|
1153
|
+
constructor();
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
export declare class SquareHeadstone extends Mesh {
|
|
1157
|
+
constructor(width?: number, height?: number, depth?: number);
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
export declare class SquareHeadstoneGeometry extends BufferGeometry {
|
|
1161
|
+
constructor(width?: number, height?: number, depth?: number);
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
export declare const squareRoot: (t: number) => number;
|
|
1165
|
+
|
|
1166
|
+
export declare class StaircaseGeometry extends BufferGeometry {
|
|
1167
|
+
constructor(width?: number, stepHeight?: number, stepDepth?: number, numSteps?: number);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
export declare class Stand extends Mesh {
|
|
1171
|
+
constructor({ radius, //
|
|
1172
|
+
height, count, thickness, radialSegments, }?: {
|
|
1173
|
+
radius?: number | undefined;
|
|
1174
|
+
height?: number | undefined;
|
|
1175
|
+
count?: number | undefined;
|
|
1176
|
+
thickness?: number | undefined;
|
|
1177
|
+
radialSegments?: number | undefined;
|
|
1178
|
+
});
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
export declare class StandGeometry extends BufferGeometry {
|
|
1182
|
+
constructor({ radius, //
|
|
1183
|
+
height, count, thickness, radialSegments, }?: {
|
|
1184
|
+
radius?: number | undefined;
|
|
1185
|
+
height?: number | undefined;
|
|
1186
|
+
count?: number | undefined;
|
|
1187
|
+
thickness?: number | undefined;
|
|
1188
|
+
radialSegments?: number | undefined;
|
|
1189
|
+
});
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
export declare class Star extends Mesh {
|
|
1193
|
+
constructor(points?: number, innerRadius?: number, outerRadius?: number, depth?: number);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
export declare class StarShape extends Shape {
|
|
1197
|
+
constructor(points?: number, innerRadius?: number, outerRadius?: number);
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
export declare class TeslaCoil extends Group {
|
|
1201
|
+
constructor();
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
export declare class TestTube extends Group {
|
|
1205
|
+
constructor(radiusTop?: number, radiusBottom?: number, height?: number, segments?: number);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
export declare class TestTubeGeometry extends BufferGeometry {
|
|
1209
|
+
constructor(radiusTop?: number, radiusBottom?: number, height?: number, segments?: number, openEnded?: boolean);
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
export declare class TestTubeRack extends Group {
|
|
1213
|
+
constructor(count?: number, colors?: number[]);
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
/**
|
|
1217
|
+
* @example
|
|
1218
|
+
* const tree = new Tree({
|
|
1219
|
+
* trunkRadiusTop: 0.25,
|
|
1220
|
+
* trunkRadiusBottom: 0.4,
|
|
1221
|
+
* trunkHeight: 2.5,
|
|
1222
|
+
* trunkSegments: 14,
|
|
1223
|
+
* trunkColor: 0x8b4513,
|
|
1224
|
+
* leafSize: 0.8,
|
|
1225
|
+
* leafCount: 6,
|
|
1226
|
+
* leafDetail: 0,
|
|
1227
|
+
* leafSpreadRadius: 1.5,
|
|
1228
|
+
* leafColor: 0x228b22,
|
|
1229
|
+
* });
|
|
1230
|
+
*/
|
|
1231
|
+
export declare class Tree extends Mesh {
|
|
1232
|
+
constructor({ trunkRadiusTop, trunkRadiusBottom, trunkHeight, trunkSegments, trunkColor, leafSize, leafCount, leafDetail, leafSpreadRadius, leafColor, }?: {
|
|
1233
|
+
trunkRadiusTop?: number | undefined;
|
|
1234
|
+
trunkRadiusBottom?: number | undefined;
|
|
1235
|
+
trunkHeight?: number | undefined;
|
|
1236
|
+
trunkSegments?: number | undefined;
|
|
1237
|
+
trunkColor?: number | undefined;
|
|
1238
|
+
leafSize?: number | undefined;
|
|
1239
|
+
leafCount?: number | undefined;
|
|
1240
|
+
leafDetail?: number | undefined;
|
|
1241
|
+
leafSpreadRadius?: number | undefined;
|
|
1242
|
+
leafColor?: number | undefined;
|
|
1243
|
+
});
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
/**
|
|
1247
|
+
* Tree geometry, consisting of a trunk and leaves.
|
|
1248
|
+
*
|
|
1249
|
+
* Group order:
|
|
1250
|
+
* - Trunk Material
|
|
1251
|
+
* - Leaf Material
|
|
1252
|
+
*/
|
|
1253
|
+
export declare class TreeGeometry extends BufferGeometry {
|
|
1254
|
+
constructor({ trunkRadiusTop, trunkRadiusBottom, trunkHeight, trunkSegments, leafSize, leafCount, leafDetail, leafSpreadRadius, }?: {
|
|
1255
|
+
trunkRadiusTop?: number | undefined;
|
|
1256
|
+
trunkRadiusBottom?: number | undefined;
|
|
1257
|
+
trunkHeight?: number | undefined;
|
|
1258
|
+
trunkSegments?: number | undefined;
|
|
1259
|
+
leafSize?: number | undefined;
|
|
1260
|
+
leafCount?: number | undefined;
|
|
1261
|
+
leafDetail?: number | undefined;
|
|
1262
|
+
leafSpreadRadius?: number | undefined;
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
/**
|
|
1267
|
+
* Applies a twisting force to the vertices, rotating them around the direction defined by the target position.
|
|
1268
|
+
*/
|
|
1269
|
+
export declare const twistBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, direction?: Vector3, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
1270
|
+
|
|
1271
|
+
/**
|
|
1272
|
+
* Updates the time uniform of the material's shader to animate the noise effect.
|
|
1273
|
+
* @param {Material} material - The material to update.
|
|
1274
|
+
* @param {number} deltaTime - The time increment to add.
|
|
1275
|
+
*/
|
|
1276
|
+
export declare function updateNoiseDisplacementTime<T extends Material>(material: T, deltaTime: number): void;
|
|
1277
|
+
|
|
1278
|
+
/**
|
|
1279
|
+
* Updates the time uniform of the material's shader to animate the water effect.
|
|
1280
|
+
* @param {Material} material - The material to update.
|
|
1281
|
+
* @param {number} deltaTime - The time increment to add.
|
|
1282
|
+
*/
|
|
1283
|
+
export declare function updateWaterDisplacementTime<T extends Material>(material: T, deltaTime: number): void;
|
|
1284
|
+
|
|
1285
|
+
export declare class WineBottle extends Mesh {
|
|
1286
|
+
constructor();
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
export declare class WineBottleGeometry extends BufferGeometry {
|
|
1290
|
+
constructor({ radius, neckRadius, height, neckHeight, segments }?: {
|
|
1291
|
+
radius?: number | undefined;
|
|
1292
|
+
neckRadius?: number | undefined;
|
|
1293
|
+
height?: number | undefined;
|
|
1294
|
+
neckHeight?: number | undefined;
|
|
1295
|
+
segments?: number | undefined;
|
|
1296
|
+
});
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
export declare class WroughtIronBar extends Mesh {
|
|
1300
|
+
constructor({ barHeight, //
|
|
1301
|
+
barRadius, spikeHeight, spikeRadius, spikeScaleZ, radialSegments, }?: {
|
|
1302
|
+
barHeight?: number | undefined;
|
|
1303
|
+
barRadius?: number | undefined;
|
|
1304
|
+
spikeHeight?: number | undefined;
|
|
1305
|
+
spikeRadius?: number | undefined;
|
|
1306
|
+
spikeScaleZ?: number | undefined;
|
|
1307
|
+
radialSegments?: number | undefined;
|
|
1308
|
+
});
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
/**
|
|
1312
|
+
* Wrought Iron Bar Geometry, a simple wrought iron bar shape
|
|
1313
|
+
*/
|
|
1314
|
+
export declare class WroughtIronBarGeometry extends BufferGeometry {
|
|
1315
|
+
constructor({ barHeight, //
|
|
1316
|
+
barRadius, spikeHeight, spikeRadius, spikeScaleZ, radialSegments, }?: {
|
|
1317
|
+
barHeight?: number | undefined;
|
|
1318
|
+
barRadius?: number | undefined;
|
|
1319
|
+
spikeHeight?: number | undefined;
|
|
1320
|
+
spikeRadius?: number | undefined;
|
|
1321
|
+
spikeScaleZ?: number | undefined;
|
|
1322
|
+
radialSegments?: number | undefined;
|
|
1323
|
+
});
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
export declare class WroughtIronFence extends Mesh {
|
|
1327
|
+
constructor({ count, //
|
|
1328
|
+
spacing, barHeight, barRadius, spikeHeight, spikeRadius, spikeScaleZ, railHeight, railDepth, railOffset, radialSegments, }?: {
|
|
1329
|
+
count?: number | undefined;
|
|
1330
|
+
spacing?: number | undefined;
|
|
1331
|
+
barHeight?: number | undefined;
|
|
1332
|
+
barRadius?: number | undefined;
|
|
1333
|
+
spikeHeight?: number | undefined;
|
|
1334
|
+
spikeRadius?: number | undefined;
|
|
1335
|
+
spikeScaleZ?: number | undefined;
|
|
1336
|
+
railHeight?: number | undefined;
|
|
1337
|
+
railDepth?: number | undefined;
|
|
1338
|
+
railOffset?: number | undefined;
|
|
1339
|
+
radialSegments?: number | undefined;
|
|
1340
|
+
});
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
export declare class WroughtIronFenceGeometry extends BufferGeometry {
|
|
1344
|
+
constructor({ count, //
|
|
1345
|
+
spacing, barHeight, barRadius, spikeHeight, spikeRadius, spikeScaleZ, railHeight, railDepth, railOffset, radialSegments, }?: {
|
|
1346
|
+
count?: number | undefined;
|
|
1347
|
+
spacing?: number | undefined;
|
|
1348
|
+
barHeight?: number | undefined;
|
|
1349
|
+
barRadius?: number | undefined;
|
|
1350
|
+
spikeHeight?: number | undefined;
|
|
1351
|
+
spikeRadius?: number | undefined;
|
|
1352
|
+
spikeScaleZ?: number | undefined;
|
|
1353
|
+
railHeight?: number | undefined;
|
|
1354
|
+
railDepth?: number | undefined;
|
|
1355
|
+
railOffset?: number | undefined;
|
|
1356
|
+
radialSegments?: number | undefined;
|
|
1357
|
+
});
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
export { }
|