three-low-poly 0.9.25 → 0.9.27
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/README.md +38 -5
- package/dist/index.cjs +17 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +949 -363
- package/dist/index.iife.js +17 -17
- package/dist/index.iife.js.map +1 -1
- package/dist/index.mjs +5194 -6591
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -11
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { ExtrudeGeometry } from 'three';
|
|
|
8
8
|
import { Group } from 'three';
|
|
9
9
|
import { InstancedMesh } from 'three';
|
|
10
10
|
import { Material } from 'three';
|
|
11
|
+
import { MaterialEventMap } from 'three';
|
|
11
12
|
import { Mesh } from 'three';
|
|
12
13
|
import { MeshBasicMaterial } from 'three';
|
|
13
14
|
import { MeshLambertMaterial } from 'three';
|
|
@@ -16,7 +17,7 @@ import { MeshPhysicalMaterial } from 'three';
|
|
|
16
17
|
import { MeshStandardMaterial } from 'three';
|
|
17
18
|
import { Object3D } from 'three';
|
|
18
19
|
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
|
19
|
-
import { ParametricGeometry } from 'three
|
|
20
|
+
import { ParametricGeometry } from 'three/addons/geometries/ParametricGeometry.js';
|
|
20
21
|
import { PerspectiveCamera } from 'three';
|
|
21
22
|
import { Plane } from 'three';
|
|
22
23
|
import { PlaneGeometry } from 'three';
|
|
@@ -25,6 +26,7 @@ import { Points } from 'three';
|
|
|
25
26
|
import { Quaternion } from 'three';
|
|
26
27
|
import { ShaderMaterial } from 'three';
|
|
27
28
|
import { Shape } from 'three';
|
|
29
|
+
import { ShapeGeometry } from 'three';
|
|
28
30
|
import { SphereGeometry } from 'three';
|
|
29
31
|
import * as THREE from 'three';
|
|
30
32
|
import { Uniform } from 'three';
|
|
@@ -68,7 +70,7 @@ import { Vector3 } from 'three';
|
|
|
68
70
|
* instancedMesh.geometry.setAttribute("instanceColor", new THREE.InstancedBufferAttribute(colors, 3));
|
|
69
71
|
* ```
|
|
70
72
|
*/
|
|
71
|
-
export declare function addInstanceColor(material: Material): Material
|
|
73
|
+
export declare function addInstanceColor(material: Material): Material< MaterialEventMap>;
|
|
72
74
|
|
|
73
75
|
/**
|
|
74
76
|
* Utility function to add noise-based vertex displacement to an existing Three.js material.
|
|
@@ -170,6 +172,122 @@ export declare function appendSphericalCurve(sphereRadiusX: number, sphereRadius
|
|
|
170
172
|
|
|
171
173
|
export declare function applySnapshot(camera: PerspectiveCamera, controls: OrbitControls | undefined, snapshot: CameraSnapshot): void;
|
|
172
174
|
|
|
175
|
+
declare interface ArchedDiamondLatticePartOptions {
|
|
176
|
+
width: number;
|
|
177
|
+
rectHeight: number;
|
|
178
|
+
archHeight?: number;
|
|
179
|
+
centerY?: number;
|
|
180
|
+
grid: DiamondLatticeGrid;
|
|
181
|
+
leadThickness: number;
|
|
182
|
+
leadDepth: number;
|
|
183
|
+
/**
|
|
184
|
+
* Shrink the opening the cames are clipped to (positioning stays on the full
|
|
185
|
+
* grid). Set to the frame thickness so came ends tuck under the frame ring
|
|
186
|
+
* instead of poking past the outer silhouette. Defaults to `0`.
|
|
187
|
+
*/
|
|
188
|
+
clipInset?: number;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Arched diamond lattice window — diagonal lead cames analytically clipped to a
|
|
193
|
+
* Tudor head opening, with an extruded frame ring. The lattice is real trimmed
|
|
194
|
+
* geometry (no stencil mask), so it casts a correct arch-shaped shadow and any
|
|
195
|
+
* collider derived from the mesh matches what's drawn.
|
|
196
|
+
*
|
|
197
|
+
* Local frame: centered on the opening, XY plane facing +Z. Lead is centered on
|
|
198
|
+
* `z = 0`; optional glass sits in the same plane (both faces).
|
|
199
|
+
*/
|
|
200
|
+
export declare class ArchedDiamondLatticeWindow extends Group {
|
|
201
|
+
readonly lattice: Mesh<ArchedDiamondLatticeWindowGeometry, MeshStandardMaterial>;
|
|
202
|
+
readonly frame: Mesh;
|
|
203
|
+
readonly glass?: Mesh<ShapeGeometry, MeshPhysicalMaterial>;
|
|
204
|
+
readonly cellsX: number;
|
|
205
|
+
readonly cellsY: number;
|
|
206
|
+
readonly fittedGrid: DiamondLatticeGrid;
|
|
207
|
+
readonly opening: ArchedOpeningMetrics;
|
|
208
|
+
constructor({ leadColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, width, rectHeight, archHeight, centerY, leadThickness, leadDepth, ...geometryOptions }?: ArchedDiamondLatticeWindowOptions);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Diamond cames analytically clipped to the arched (rect-plus-Tudor-head)
|
|
213
|
+
* opening — real trimmed geometry, no stencil, so it shadows and raycasts
|
|
214
|
+
* correctly. Frame is a separate extruded ring on {@link ArchedDiamondLatticeWindow}.
|
|
215
|
+
*/
|
|
216
|
+
export declare class ArchedDiamondLatticeWindowGeometry extends BufferGeometry {
|
|
217
|
+
readonly cellsX: number;
|
|
218
|
+
readonly cellsY: number;
|
|
219
|
+
readonly fittedGrid: DiamondLatticeGrid;
|
|
220
|
+
readonly opening: ArchedOpeningMetrics;
|
|
221
|
+
constructor({ width, rectHeight, archHeight, leadThickness, leadDepth, cellsX, cellsY, centerY, }?: ArchedDiamondLatticeWindowGeometryOptions);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
declare interface ArchedDiamondLatticeWindowGeometryOptions {
|
|
225
|
+
/** Opening width (world units). */
|
|
226
|
+
width?: number;
|
|
227
|
+
/** Height of the straight-sided lower section. */
|
|
228
|
+
rectHeight?: number;
|
|
229
|
+
/** Arch rise from the spring line to the apex. Defaults to `width / 2`. */
|
|
230
|
+
archHeight?: number;
|
|
231
|
+
/** Lead came thickness (cross-section). Defaults to `0.055`. */
|
|
232
|
+
leadThickness?: number;
|
|
233
|
+
/** Lead depth (Z extent). Defaults to `0.11`. */
|
|
234
|
+
leadDepth?: number;
|
|
235
|
+
/** Quarrels spanning east–west across the bounding opening. Defaults to `10`. */
|
|
236
|
+
cellsX?: number;
|
|
237
|
+
/** Quarrels spanning north–south across the bounding opening. Defaults to `12`. */
|
|
238
|
+
cellsY?: number;
|
|
239
|
+
/** Vertical center of the full opening. Defaults to `0`. */
|
|
240
|
+
centerY?: number;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
declare interface ArchedDiamondLatticeWindowOptions extends ArchedDiamondLatticeWindowGeometryOptions {
|
|
244
|
+
/** Lead + outer frame tint. Defaults to `#0c0f14`. */
|
|
245
|
+
leadColor?: ColorRepresentation;
|
|
246
|
+
/** Optional glass pane centered in the lead depth (`z = 0`), visible from both sides. */
|
|
247
|
+
glass?: boolean;
|
|
248
|
+
glassColor?: ColorRepresentation;
|
|
249
|
+
glassEmissive?: ColorRepresentation;
|
|
250
|
+
glassEmissiveIntensity?: number;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/** Rectangular lower section plus circular arch head. */
|
|
254
|
+
export declare interface ArchedOpeningBounds {
|
|
255
|
+
width: number;
|
|
256
|
+
/** Height of the straight-sided lower section. */
|
|
257
|
+
rectHeight: number;
|
|
258
|
+
/** Arch rise from the spring line to the apex. Defaults to `width / 2` (semicircle). */
|
|
259
|
+
archHeight?: number;
|
|
260
|
+
/** Vertical center of the full opening. Defaults to `0`. */
|
|
261
|
+
centerY?: number;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export declare interface ArchedOpeningMetrics {
|
|
265
|
+
hw: number;
|
|
266
|
+
ymin: number;
|
|
267
|
+
ymax: number;
|
|
268
|
+
rectTopY: number;
|
|
269
|
+
/** Circle center Y — lies on or below the spring line. */
|
|
270
|
+
archCy: number;
|
|
271
|
+
/** Circular arc radius derived from `width` and `archHeight`. */
|
|
272
|
+
archRadius: number;
|
|
273
|
+
archHeight: number;
|
|
274
|
+
totalHeight: number;
|
|
275
|
+
centerY: number;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Circular arc through `(-width/2, springY)` and `(width/2, springY)` with rise
|
|
280
|
+
* `archHeight`. Frame, glass, and lattice clip all use this same arc.
|
|
281
|
+
*/
|
|
282
|
+
export declare function archedOpeningMetrics({ width, rectHeight, archHeight, centerY, }: ArchedOpeningBounds): ArchedOpeningMetrics;
|
|
283
|
+
|
|
284
|
+
declare interface ArchedOutlineTarget {
|
|
285
|
+
moveTo(x: number, y: number): unknown;
|
|
286
|
+
lineTo(x: number, y: number): unknown;
|
|
287
|
+
absarc(x: number, y: number, radius: number, startAngle: number, endAngle: number, clockwise: boolean): unknown;
|
|
288
|
+
closePath(): unknown;
|
|
289
|
+
}
|
|
290
|
+
|
|
173
291
|
/**
|
|
174
292
|
* Atmospheric scattering shader.
|
|
175
293
|
*
|
|
@@ -441,57 +559,93 @@ export declare class BoneGeometry extends BufferGeometry {
|
|
|
441
559
|
}
|
|
442
560
|
|
|
443
561
|
/**
|
|
444
|
-
* Book prefab
|
|
562
|
+
* Book prefab — cover shell and page block with separate material groups.
|
|
445
563
|
*
|
|
446
|
-
*
|
|
447
|
-
* 0. cover
|
|
448
|
-
* 1. page
|
|
564
|
+
* Local frame: spine at X=0, fore-edge at +X, sits on the Y=0 plane.
|
|
449
565
|
*/
|
|
450
566
|
export declare class Book extends Mesh<BookGeometry, MeshStandardMaterial[]> {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
coverColor?: number | undefined;
|
|
458
|
-
pageColor?: number | undefined;
|
|
459
|
-
});
|
|
567
|
+
readonly width: number;
|
|
568
|
+
readonly height: number;
|
|
569
|
+
readonly depth: number;
|
|
570
|
+
readonly coverThickness: number;
|
|
571
|
+
readonly pageIndent: number;
|
|
572
|
+
constructor({ coverColor, pageColor, ...geometryOptions }?: BookOptions);
|
|
460
573
|
}
|
|
461
574
|
|
|
462
575
|
/**
|
|
463
|
-
*
|
|
576
|
+
* Closed book — cover shell (group 0) and page block (group 1).
|
|
464
577
|
*
|
|
465
|
-
*
|
|
466
|
-
* 0. cover
|
|
467
|
-
* 1. page
|
|
578
|
+
* Local frame: spine at X=0, fore-edge at +X, sits on the Y=0 plane.
|
|
468
579
|
*/
|
|
469
580
|
export declare class BookGeometry extends BufferGeometry {
|
|
470
|
-
|
|
581
|
+
readonly width: number;
|
|
582
|
+
readonly height: number;
|
|
583
|
+
readonly depth: number;
|
|
584
|
+
readonly coverThickness: number;
|
|
585
|
+
readonly pageIndent: number;
|
|
586
|
+
constructor({ width, height, depth, coverThickness, pageIndent, }?: BookGeometryOptions);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
export declare interface BookGeometryOptions {
|
|
590
|
+
/** Cover width (spine to fore-edge). Defaults to `1`. */
|
|
591
|
+
width?: number;
|
|
592
|
+
/** Cover height. Defaults to `1.5`. */
|
|
593
|
+
height?: number;
|
|
594
|
+
/** Spine depth (cover to cover). Defaults to `0.5`. */
|
|
595
|
+
depth?: number;
|
|
596
|
+
/** Cover board thickness. Defaults to `0.05`. */
|
|
597
|
+
coverThickness?: number;
|
|
598
|
+
/** Inset of the page block from the cover edges. Defaults to `0.05`. */
|
|
599
|
+
pageIndent?: number;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
export declare interface BookOptions extends BookGeometryOptions {
|
|
603
|
+
/** Cover tint. Defaults to `#8b0000`. */
|
|
604
|
+
coverColor?: ColorRepresentation;
|
|
605
|
+
/** Page block tint. Defaults to `#ffffff`. */
|
|
606
|
+
pageColor?: ColorRepresentation;
|
|
471
607
|
}
|
|
472
608
|
|
|
609
|
+
/**
|
|
610
|
+
* Bookshelf prefab — framed shelving unit.
|
|
611
|
+
*/
|
|
473
612
|
export declare class Bookshelf extends Mesh<BookshelfGeometry, MeshStandardMaterial> {
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
height?: number | undefined;
|
|
478
|
-
depth?: number | undefined;
|
|
479
|
-
shelves?: number | undefined;
|
|
480
|
-
frameThickness?: number | undefined;
|
|
481
|
-
open?: boolean | undefined;
|
|
482
|
-
});
|
|
613
|
+
readonly width: number;
|
|
614
|
+
readonly height: number;
|
|
615
|
+
constructor({ color, ...geometryOptions }?: BookshelfOptions);
|
|
483
616
|
}
|
|
484
617
|
|
|
618
|
+
/**
|
|
619
|
+
* Bookshelf frame with optional back panel and evenly spaced shelves.
|
|
620
|
+
*
|
|
621
|
+
* Local frame: sits on the Y=0 plane, centered on X/Z.
|
|
622
|
+
*/
|
|
485
623
|
export declare class BookshelfGeometry extends BufferGeometry {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
624
|
+
readonly width: number;
|
|
625
|
+
readonly height: number;
|
|
626
|
+
readonly depth: number;
|
|
627
|
+
readonly shelves: number;
|
|
628
|
+
constructor({ width, height, depth, shelves, frameThickness, open, }?: BookshelfGeometryOptions);
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
export declare interface BookshelfGeometryOptions {
|
|
632
|
+
/** Overall width. Defaults to `5`. */
|
|
633
|
+
width?: number;
|
|
634
|
+
/** Overall height. Defaults to `8`. */
|
|
635
|
+
height?: number;
|
|
636
|
+
/** Shelf depth. Defaults to `1`. */
|
|
637
|
+
depth?: number;
|
|
638
|
+
/** Number of interior shelves. Defaults to `4`. */
|
|
639
|
+
shelves?: number;
|
|
640
|
+
/** Frame board thickness. Defaults to `0.1`. */
|
|
641
|
+
frameThickness?: number;
|
|
642
|
+
/** Omit the back panel when `true`. Defaults to `false`. */
|
|
643
|
+
open?: boolean;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
export declare interface BookshelfOptions extends BookshelfGeometryOptions {
|
|
647
|
+
/** Frame tint. Defaults to `#8b4513`. */
|
|
648
|
+
color?: ColorRepresentation;
|
|
495
649
|
}
|
|
496
650
|
|
|
497
651
|
export declare enum BoxSide {
|
|
@@ -503,6 +657,22 @@ export declare enum BoxSide {
|
|
|
503
657
|
BACK = "back"
|
|
504
658
|
}
|
|
505
659
|
|
|
660
|
+
/**
|
|
661
|
+
* Diagonal cames only, each segment analytically clipped to the rect-plus-arch
|
|
662
|
+
* opening — no outer frame, no stencil. Bar ends land as real vertices on the
|
|
663
|
+
* arc, so the merged geometry casts a correct shadow and matches any collider.
|
|
664
|
+
*/
|
|
665
|
+
export declare function buildArchedDiamondLatticeCameParts({ width, rectHeight, archHeight, centerY, grid, leadThickness: barT, leadDepth: barD, clipInset, }: ArchedDiamondLatticePartOptions): BoxGeometry[];
|
|
666
|
+
|
|
667
|
+
/** Extruded frame ring following the arched opening perimeter. */
|
|
668
|
+
export declare function buildArchedDiamondLatticeFrameGeometry(metrics: ArchedOpeningMetrics, barThickness: number, barDepth: number): ExtrudeGeometry;
|
|
669
|
+
|
|
670
|
+
/** Outer frame (rect sides + circular arch head) and clipped diagonal cames. */
|
|
671
|
+
export declare function buildArchedDiamondLatticeParts(options: ArchedDiamondLatticePartOptions): BoxGeometry[];
|
|
672
|
+
|
|
673
|
+
/** Diagonal cames only — no outer frame (for stencil-masked openings). */
|
|
674
|
+
export declare function buildDiamondLatticeCameParts(options: DiamondLatticePartOptions): BoxGeometry[];
|
|
675
|
+
|
|
506
676
|
/**
|
|
507
677
|
* Build merged box geometries for the outer frame and diagonal lead cames.
|
|
508
678
|
* Diagonal bars are trimmed to the rectangular opening (segment clip, not stencil).
|
|
@@ -522,20 +692,38 @@ export declare class BunsenBurner extends Group {
|
|
|
522
692
|
constructor();
|
|
523
693
|
}
|
|
524
694
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
depth?: number | undefined;
|
|
531
|
-
});
|
|
695
|
+
/**
|
|
696
|
+
* Burst shape prefab.
|
|
697
|
+
*/
|
|
698
|
+
export declare class Burst extends Mesh<BurstGeometry, MeshStandardMaterial> {
|
|
699
|
+
constructor({ color, emissive, emissiveIntensity, ...geometryOptions }?: BurstOptions);
|
|
532
700
|
}
|
|
533
701
|
|
|
534
702
|
/**
|
|
535
|
-
*
|
|
703
|
+
* Extruded burst / starburst prism.
|
|
536
704
|
*/
|
|
537
705
|
export declare class BurstGeometry extends ExtrudeGeometry {
|
|
538
|
-
constructor(sides
|
|
706
|
+
constructor({ sides, innerRadius, outerRadius, depth, }?: BurstGeometryOptions);
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
export declare interface BurstGeometryOptions {
|
|
710
|
+
/** Number of burst rays. Defaults to `5`. */
|
|
711
|
+
sides?: number;
|
|
712
|
+
/** Inner vertex radius. Defaults to `0.5`. */
|
|
713
|
+
innerRadius?: number;
|
|
714
|
+
/** Outer vertex radius. Defaults to `1`. */
|
|
715
|
+
outerRadius?: number;
|
|
716
|
+
/** Extrusion depth. Defaults to `0.25`. */
|
|
717
|
+
depth?: number;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
export declare interface BurstOptions extends BurstGeometryOptions {
|
|
721
|
+
/** Surface tint. Defaults to `#ffff00`. */
|
|
722
|
+
color?: ColorRepresentation;
|
|
723
|
+
/** Emissive tint. Defaults to `#ffd700`. */
|
|
724
|
+
emissive?: ColorRepresentation;
|
|
725
|
+
/** Emissive strength. Defaults to `0.25`. */
|
|
726
|
+
emissiveIntensity?: number;
|
|
539
727
|
}
|
|
540
728
|
|
|
541
729
|
export declare class BurstShape extends Shape {
|
|
@@ -755,37 +943,52 @@ export declare interface CameraTransitionOptions {
|
|
|
755
943
|
}
|
|
756
944
|
|
|
757
945
|
/**
|
|
758
|
-
*
|
|
759
|
-
* 0: Stick
|
|
760
|
-
* 1: Flame
|
|
946
|
+
* Candle prefab — wax stick and emissive flame (separate material groups).
|
|
761
947
|
*/
|
|
762
948
|
export declare class Candle extends Mesh<CandleGeometry, MeshStandardMaterial[]> {
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
radiusTop?: number | undefined;
|
|
766
|
-
radiusBottom?: number | undefined;
|
|
767
|
-
height?: number | undefined;
|
|
768
|
-
flameHeight?: number | undefined;
|
|
769
|
-
flameRadius?: number | undefined;
|
|
770
|
-
segments?: number | undefined;
|
|
771
|
-
});
|
|
949
|
+
readonly height: number;
|
|
950
|
+
constructor({ stickColor, flameColor, flameEmissive, flameEmissiveIntensity, ...geometryOptions }?: CandleOptions);
|
|
772
951
|
}
|
|
773
952
|
|
|
774
953
|
/**
|
|
775
|
-
*
|
|
776
|
-
*
|
|
777
|
-
*
|
|
954
|
+
* Candle stick and flame — group 0 stick, group 1 flame.
|
|
955
|
+
*
|
|
956
|
+
* Local frame: base at Y=0.
|
|
778
957
|
*/
|
|
779
958
|
export declare class CandleGeometry extends BufferGeometry {
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
959
|
+
readonly radiusTop: number;
|
|
960
|
+
readonly radiusBottom: number;
|
|
961
|
+
readonly height: number;
|
|
962
|
+
readonly flameHeight: number;
|
|
963
|
+
readonly flameRadius: number;
|
|
964
|
+
readonly segments: number;
|
|
965
|
+
constructor({ radiusTop, radiusBottom, height, flameHeight, flameRadius, segments, }?: CandleGeometryOptions);
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
export declare interface CandleGeometryOptions {
|
|
969
|
+
/** Stick top radius. Defaults to `0.2`. */
|
|
970
|
+
radiusTop?: number;
|
|
971
|
+
/** Stick bottom radius. Defaults to `0.2`. */
|
|
972
|
+
radiusBottom?: number;
|
|
973
|
+
/** Stick height. Defaults to `1`. */
|
|
974
|
+
height?: number;
|
|
975
|
+
/** Flame tip height. Defaults to `0.25`. */
|
|
976
|
+
flameHeight?: number;
|
|
977
|
+
/** Flame base radius. Defaults to `0.05`. */
|
|
978
|
+
flameRadius?: number;
|
|
979
|
+
/** Circumference segments. Defaults to `16`. */
|
|
980
|
+
segments?: number;
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
export declare interface CandleOptions extends CandleGeometryOptions {
|
|
984
|
+
/** Wax stick tint. Defaults to `#ffffff`. */
|
|
985
|
+
stickColor?: ColorRepresentation;
|
|
986
|
+
/** Flame surface tint. Defaults to `#ffd700`. */
|
|
987
|
+
flameColor?: ColorRepresentation;
|
|
988
|
+
/** Flame emissive tint. Defaults to `#ffa500`. */
|
|
989
|
+
flameEmissive?: ColorRepresentation;
|
|
990
|
+
/** Flame emissive strength. Defaults to `0.35`. */
|
|
991
|
+
flameEmissiveIntensity?: number;
|
|
789
992
|
}
|
|
790
993
|
|
|
791
994
|
/**
|
|
@@ -879,6 +1082,12 @@ export declare interface ClipRuntime {
|
|
|
879
1082
|
/** Clip a segment to an axis-aligned rectangle; returns endpoints inside the opening. */
|
|
880
1083
|
export declare function clipSegmentToAabb(x1: number, y1: number, x2: number, y2: number, minX: number, minY: number, maxX: number, maxY: number): [number, number, number, number] | null;
|
|
881
1084
|
|
|
1085
|
+
/**
|
|
1086
|
+
* Clip a segment to a rect-plus-semicircle opening (analytic, same family as
|
|
1087
|
+
* {@link clipSegmentToAabb}).
|
|
1088
|
+
*/
|
|
1089
|
+
export declare function clipSegmentToArchedOpening(x1: number, y1: number, x2: number, y2: number, bounds: ArchedOpeningBounds): [number, number, number, number] | null;
|
|
1090
|
+
|
|
882
1091
|
export declare const ColorPalette: {
|
|
883
1092
|
CADMIUM_RED: number;
|
|
884
1093
|
CARDINAL_RED: number;
|
|
@@ -1230,20 +1439,43 @@ export declare const crossfadeShader: {
|
|
|
1230
1439
|
fragmentShader: string;
|
|
1231
1440
|
};
|
|
1232
1441
|
|
|
1442
|
+
/**
|
|
1443
|
+
* Cross headstone prefab.
|
|
1444
|
+
*/
|
|
1233
1445
|
export declare class CrossHeadstone extends Mesh<CrossHeadstoneGeometry, MeshStandardMaterial> {
|
|
1234
|
-
|
|
1446
|
+
readonly width: number;
|
|
1447
|
+
readonly height: number;
|
|
1448
|
+
constructor({ color, roughness, ...geometryOptions }?: CrossHeadstoneOptions);
|
|
1235
1449
|
}
|
|
1236
1450
|
|
|
1451
|
+
/**
|
|
1452
|
+
* Cross headstone — vertical shaft and horizontal arm.
|
|
1453
|
+
*
|
|
1454
|
+
* Local frame: base on Y=0, centered on X/Z.
|
|
1455
|
+
*/
|
|
1237
1456
|
export declare class CrossHeadstoneGeometry extends BufferGeometry {
|
|
1238
|
-
|
|
1457
|
+
readonly width: number;
|
|
1458
|
+
readonly height: number;
|
|
1459
|
+
readonly depth: number;
|
|
1460
|
+
constructor({ width, height, depth }?: CrossHeadstoneGeometryOptions);
|
|
1239
1461
|
}
|
|
1240
1462
|
|
|
1241
|
-
declare interface
|
|
1463
|
+
export declare interface CrossHeadstoneGeometryOptions {
|
|
1464
|
+
/** Overall cross width (arm span). Defaults to `0.4`. */
|
|
1242
1465
|
width?: number;
|
|
1466
|
+
/** Total height. Defaults to `1.2`. */
|
|
1243
1467
|
height?: number;
|
|
1468
|
+
/** Slab depth. Defaults to `0.2`. */
|
|
1244
1469
|
depth?: number;
|
|
1245
1470
|
}
|
|
1246
1471
|
|
|
1472
|
+
export declare interface CrossHeadstoneOptions extends CrossHeadstoneGeometryOptions {
|
|
1473
|
+
/** Stone tint. Defaults to `#777777`. */
|
|
1474
|
+
color?: ColorRepresentation;
|
|
1475
|
+
/** Surface roughness. Defaults to `0.8`. */
|
|
1476
|
+
roughness?: number;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1247
1479
|
/**
|
|
1248
1480
|
* Cubic UV Mapping
|
|
1249
1481
|
* Applies a texture by projecting UVs along each face of a cube.
|
|
@@ -1366,8 +1598,7 @@ export declare function diamondLatticeCellFromCount(width: number, height: numbe
|
|
|
1366
1598
|
export declare function diamondLatticeCornerSpan(width: number, height: number): number;
|
|
1367
1599
|
|
|
1368
1600
|
/**
|
|
1369
|
-
* Axis-aligned diamond lattice
|
|
1370
|
-
* east/west share a horizontal axis (`<>` not `><`).
|
|
1601
|
+
* Axis-aligned diamond lattice
|
|
1371
1602
|
*/
|
|
1372
1603
|
export declare interface DiamondLatticeGrid {
|
|
1373
1604
|
/** Horizontal half-diagonal of each quarrel (east–west point spacing). */
|
|
@@ -1402,17 +1633,15 @@ declare interface DiamondLatticePartOptions {
|
|
|
1402
1633
|
leadDepth: number;
|
|
1403
1634
|
}
|
|
1404
1635
|
|
|
1405
|
-
/**
|
|
1406
|
-
export declare function
|
|
1407
|
-
plus45: number;
|
|
1408
|
-
minus45: number;
|
|
1409
|
-
};
|
|
1636
|
+
/** Spring-to-apex Y shift that snaps the lattice phase to the rect/arch junction. */
|
|
1637
|
+
export declare function diamondLatticeSpringPhaseShift(ymin: number, rectTopY: number, grid: DiamondLatticeGrid): number;
|
|
1410
1638
|
|
|
1411
1639
|
/**
|
|
1412
1640
|
* Diamond lattice window — diagonal lead cames with axis-aligned quarrels (`<>`).
|
|
1413
1641
|
*
|
|
1414
|
-
* Local frame: centered on the opening, XY plane facing +Z. Lead
|
|
1415
|
-
*
|
|
1642
|
+
* Local frame: centered on the opening, XY plane facing +Z. Lead is centered on
|
|
1643
|
+
* `z = 0`; optional glass sits in the same plane (both faces). Pair with
|
|
1644
|
+
* a scene-owned backing plane behind the wall.
|
|
1416
1645
|
*/
|
|
1417
1646
|
export declare class DiamondLatticeWindow extends Group {
|
|
1418
1647
|
readonly lattice: Mesh<DiamondLatticeWindowGeometry, MeshStandardMaterial>;
|
|
@@ -1420,7 +1649,7 @@ export declare class DiamondLatticeWindow extends Group {
|
|
|
1420
1649
|
readonly cellsX: number;
|
|
1421
1650
|
readonly cellsY: number;
|
|
1422
1651
|
readonly fittedGrid: DiamondLatticeGrid;
|
|
1423
|
-
constructor({ leadColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, ...geometryOptions }?: DiamondLatticeWindowOptions);
|
|
1652
|
+
constructor({ leadColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, centerY, leadDepth, ...geometryOptions }?: DiamondLatticeWindowOptions);
|
|
1424
1653
|
}
|
|
1425
1654
|
|
|
1426
1655
|
/**
|
|
@@ -1459,7 +1688,7 @@ declare interface DiamondLatticeWindowOptions extends DiamondLatticeWindowGeomet
|
|
|
1459
1688
|
/** Lead + outer frame tint. Defaults to `#0c0f14`. */
|
|
1460
1689
|
leadColor?: ColorRepresentation;
|
|
1461
1690
|
/**
|
|
1462
|
-
* Optional glass pane
|
|
1691
|
+
* Optional glass pane centered in the lead depth (`z = 0`), visible from both sides.
|
|
1463
1692
|
* Mad-science uses an emissive sky mesh in the scene instead.
|
|
1464
1693
|
*/
|
|
1465
1694
|
glass?: boolean;
|
|
@@ -1760,26 +1989,42 @@ export declare interface EmissivePulseEffectOptions {
|
|
|
1760
1989
|
|
|
1761
1990
|
export declare type EmissivePulseMaterial = MeshStandardMaterial | MeshPhysicalMaterial | MeshLambertMaterial | MeshPhongMaterial;
|
|
1762
1991
|
|
|
1992
|
+
/**
|
|
1993
|
+
* Erlenmeyer flask prefab — translucent glass vessel.
|
|
1994
|
+
*/
|
|
1763
1995
|
export declare class ErlenmeyerFlask extends Mesh<ErlenmeyerFlaskGeometry, MeshPhysicalMaterial> {
|
|
1764
|
-
constructor({
|
|
1765
|
-
neckRadius, height, neckHeight, radialSegments, }?: {
|
|
1766
|
-
flaskRadius?: number | undefined;
|
|
1767
|
-
neckRadius?: number | undefined;
|
|
1768
|
-
height?: number | undefined;
|
|
1769
|
-
neckHeight?: number | undefined;
|
|
1770
|
-
radialSegments?: number | undefined;
|
|
1771
|
-
});
|
|
1996
|
+
constructor({ color, opacity, ...geometryOptions }?: ErlenmeyerFlaskOptions);
|
|
1772
1997
|
}
|
|
1773
1998
|
|
|
1999
|
+
/**
|
|
2000
|
+
* Erlenmeyer flask profile — conical body with straight neck and lip.
|
|
2001
|
+
*
|
|
2002
|
+
* Local frame: base at Y=0.
|
|
2003
|
+
*/
|
|
1774
2004
|
export declare class ErlenmeyerFlaskGeometry extends BufferGeometry {
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
2005
|
+
readonly flaskRadius: number;
|
|
2006
|
+
readonly height: number;
|
|
2007
|
+
constructor({ flaskRadius, neckRadius, height, neckHeight, radialSegments, }?: ErlenmeyerFlaskGeometryOptions);
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
export declare interface ErlenmeyerFlaskGeometryOptions {
|
|
2011
|
+
/** Flask body radius. Defaults to `1`. */
|
|
2012
|
+
flaskRadius?: number;
|
|
2013
|
+
/** Neck radius. Defaults to `0.3`. */
|
|
2014
|
+
neckRadius?: number;
|
|
2015
|
+
/** Body height before the neck. Defaults to `2.5`. */
|
|
2016
|
+
height?: number;
|
|
2017
|
+
/** Neck height. Defaults to `1`. */
|
|
2018
|
+
neckHeight?: number;
|
|
2019
|
+
/** Lathe segments. Defaults to `16`. */
|
|
2020
|
+
radialSegments?: number;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
export declare interface ErlenmeyerFlaskOptions extends ErlenmeyerFlaskGeometryOptions {
|
|
2024
|
+
/** Glass tint. Defaults to `#88ccff`. */
|
|
2025
|
+
color?: ColorRepresentation;
|
|
2026
|
+
/** Glass opacity. Defaults to `0.4`. */
|
|
2027
|
+
opacity?: number;
|
|
1783
2028
|
}
|
|
1784
2029
|
|
|
1785
2030
|
export declare const fadeShader: {
|
|
@@ -1861,13 +2106,17 @@ export declare function findClosestPoint(point: Vector3, mesh: Mesh): Vector3;
|
|
|
1861
2106
|
*/
|
|
1862
2107
|
export declare function fitDiamondLatticeCell(width: number, height: number, preferredCell: number): number;
|
|
1863
2108
|
|
|
2109
|
+
/**
|
|
2110
|
+
* Emissive flame prefab — parametric teardrop volume for candles and lanterns.
|
|
2111
|
+
*
|
|
2112
|
+
* Local frame: base at Y=0, tip at Y=`height`.
|
|
2113
|
+
*/
|
|
1864
2114
|
export declare class Flame extends Mesh<FlameGeometry, MeshStandardMaterial> {
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
});
|
|
2115
|
+
readonly height: number;
|
|
2116
|
+
readonly radius: number;
|
|
2117
|
+
readonly segmentsU: number;
|
|
2118
|
+
readonly segmentsV: number;
|
|
2119
|
+
constructor({ color, emissive, emissiveIntensity, ...geometryOptions }?: FlameOptions);
|
|
1871
2120
|
}
|
|
1872
2121
|
|
|
1873
2122
|
/**
|
|
@@ -1917,13 +2166,37 @@ export declare interface FlameFlickerEffectOptions {
|
|
|
1917
2166
|
haloOpacity?: number;
|
|
1918
2167
|
}
|
|
1919
2168
|
|
|
2169
|
+
/**
|
|
2170
|
+
* Teardrop flame volume — parametric surface tapering to a point at the top.
|
|
2171
|
+
*
|
|
2172
|
+
* Local frame: base at Y=0, tip at Y=`height`.
|
|
2173
|
+
*/
|
|
1920
2174
|
export declare class FlameGeometry extends ParametricGeometry {
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
2175
|
+
readonly height: number;
|
|
2176
|
+
readonly radius: number;
|
|
2177
|
+
readonly segmentsU: number;
|
|
2178
|
+
readonly segmentsV: number;
|
|
2179
|
+
constructor({ height, radius, segmentsU, segmentsV, }?: FlameGeometryOptions);
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
export declare interface FlameGeometryOptions {
|
|
2183
|
+
/** Flame tip height. Defaults to `0.25`. */
|
|
2184
|
+
height?: number;
|
|
2185
|
+
/** Base radius at the widest point. Defaults to `0.05`. */
|
|
2186
|
+
radius?: number;
|
|
2187
|
+
/** Parametric segments around the circumference. Defaults to `16`. */
|
|
2188
|
+
segmentsU?: number;
|
|
2189
|
+
/** Parametric segments along the height. Defaults to `16`. */
|
|
2190
|
+
segmentsV?: number;
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
export declare interface FlameOptions extends FlameGeometryOptions {
|
|
2194
|
+
/** Surface tint. Defaults to `#ffd700`. */
|
|
2195
|
+
color?: ColorRepresentation;
|
|
2196
|
+
/** Emissive tint. Defaults to `#ffa500`. */
|
|
2197
|
+
emissive?: ColorRepresentation;
|
|
2198
|
+
/** Emissive strength. Defaults to `0.35`. */
|
|
2199
|
+
emissiveIntensity?: number;
|
|
1927
2200
|
}
|
|
1928
2201
|
|
|
1929
2202
|
/**
|
|
@@ -1946,22 +2219,38 @@ export declare interface FlythroughClipOptions extends CameraClipTiming {
|
|
|
1946
2219
|
ease?: EasingFunction;
|
|
1947
2220
|
}
|
|
1948
2221
|
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
holeSides?: number | undefined;
|
|
1955
|
-
holeRadius?: number | undefined;
|
|
1956
|
-
depth?: number | undefined;
|
|
1957
|
-
});
|
|
2222
|
+
/**
|
|
2223
|
+
* Gear shape prefab.
|
|
2224
|
+
*/
|
|
2225
|
+
export declare class Gear extends Mesh<GearGeometry, MeshStandardMaterial> {
|
|
2226
|
+
constructor({ color, ...geometryOptions }?: GearOptions);
|
|
1958
2227
|
}
|
|
1959
2228
|
|
|
1960
2229
|
/**
|
|
1961
|
-
*
|
|
2230
|
+
* Extruded gear profile with center hole.
|
|
1962
2231
|
*/
|
|
1963
2232
|
export declare class GearGeometry extends ExtrudeGeometry {
|
|
1964
|
-
constructor(sides
|
|
2233
|
+
constructor({ sides, innerRadius, outerRadius, holeSides, holeRadius, depth, }?: GearGeometryOptions);
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
export declare interface GearGeometryOptions {
|
|
2237
|
+
/** Number of gear teeth. Defaults to `5`. */
|
|
2238
|
+
sides?: number;
|
|
2239
|
+
/** Inner tooth valley radius. Defaults to `0.5`. */
|
|
2240
|
+
innerRadius?: number;
|
|
2241
|
+
/** Outer tooth tip radius. Defaults to `1`. */
|
|
2242
|
+
outerRadius?: number;
|
|
2243
|
+
/** Center hole sides. Defaults to `5`. */
|
|
2244
|
+
holeSides?: number;
|
|
2245
|
+
/** Center hole radius. Defaults to `0.25`. */
|
|
2246
|
+
holeRadius?: number;
|
|
2247
|
+
/** Extrusion depth. Defaults to `0.25`. */
|
|
2248
|
+
depth?: number;
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
export declare interface GearOptions extends GearGeometryOptions {
|
|
2252
|
+
/** Metal tint. Defaults to `#aaaaaa`. */
|
|
2253
|
+
color?: ColorRepresentation;
|
|
1965
2254
|
}
|
|
1966
2255
|
|
|
1967
2256
|
export declare class GearShape extends Shape {
|
|
@@ -2227,32 +2516,51 @@ export declare interface HangingLanternOptions extends HangingLanternGeometryOpt
|
|
|
2227
2516
|
lampOpacity?: number;
|
|
2228
2517
|
}
|
|
2229
2518
|
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
tipDepth?: number | undefined;
|
|
2236
|
-
depth?: number | undefined;
|
|
2237
|
-
});
|
|
2519
|
+
/**
|
|
2520
|
+
* Heart shape prefab.
|
|
2521
|
+
*/
|
|
2522
|
+
export declare class Heart extends Mesh<HeartGeometry, MeshStandardMaterial> {
|
|
2523
|
+
constructor({ color, emissive, emissiveIntensity, ...geometryOptions }?: HeartOptions);
|
|
2238
2524
|
}
|
|
2239
2525
|
|
|
2240
2526
|
/**
|
|
2241
|
-
*
|
|
2527
|
+
* Extruded heart prism.
|
|
2242
2528
|
*/
|
|
2243
2529
|
export declare class HeartGeometry extends ExtrudeGeometry {
|
|
2244
|
-
constructor(size
|
|
2530
|
+
constructor({ size, width, height, tipDepth, depth, }?: HeartGeometryOptions);
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
export declare interface HeartGeometryOptions {
|
|
2534
|
+
/** Overall scale factor. Defaults to `1`. */
|
|
2535
|
+
size?: number;
|
|
2536
|
+
/** Heart width. Defaults to `2.1`. */
|
|
2537
|
+
width?: number;
|
|
2538
|
+
/** Heart height. Defaults to `1.4`. */
|
|
2539
|
+
height?: number;
|
|
2540
|
+
/** Tip depth. Defaults to `1.6`. */
|
|
2541
|
+
tipDepth?: number;
|
|
2542
|
+
/** Extrusion depth. Defaults to `0.25`. */
|
|
2543
|
+
depth?: number;
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
export declare interface HeartOptions extends HeartGeometryOptions {
|
|
2547
|
+
/** Surface tint. Defaults to `#c62828`. */
|
|
2548
|
+
color?: ColorRepresentation;
|
|
2549
|
+
/** Emissive tint. Defaults to `#c61416`. */
|
|
2550
|
+
emissive?: ColorRepresentation;
|
|
2551
|
+
/** Emissive strength. Defaults to `0.25`. */
|
|
2552
|
+
emissiveIntensity?: number;
|
|
2245
2553
|
}
|
|
2246
2554
|
|
|
2247
2555
|
export declare class HeartShape extends Shape {
|
|
2248
2556
|
constructor(size?: number, width?: number, height?: number, tipDepth?: number);
|
|
2249
2557
|
}
|
|
2250
2558
|
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
});
|
|
2559
|
+
/**
|
|
2560
|
+
* Hexagon tile prefab.
|
|
2561
|
+
*/
|
|
2562
|
+
export declare class Hexagon extends Mesh<HexagonGeometry, MeshStandardMaterial> {
|
|
2563
|
+
constructor({ color, emissive, emissiveIntensity, ...geometryOptions }?: HexagonOptions);
|
|
2256
2564
|
}
|
|
2257
2565
|
|
|
2258
2566
|
export declare interface HexagonalTileCountOptions {
|
|
@@ -2274,10 +2582,28 @@ export declare interface HexagonalTileRadiusOptions {
|
|
|
2274
2582
|
}
|
|
2275
2583
|
|
|
2276
2584
|
/**
|
|
2277
|
-
*
|
|
2585
|
+
* Extruded regular hexagon prism.
|
|
2278
2586
|
*/
|
|
2279
2587
|
export declare class HexagonGeometry extends ExtrudeGeometry {
|
|
2280
|
-
|
|
2588
|
+
readonly radius: number;
|
|
2589
|
+
readonly depth: number;
|
|
2590
|
+
constructor({ radius, depth }?: HexagonGeometryOptions);
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
export declare interface HexagonGeometryOptions {
|
|
2594
|
+
/** Hex circumradius. Defaults to `1`. */
|
|
2595
|
+
radius?: number;
|
|
2596
|
+
/** Extrusion depth. Defaults to `0.01`. */
|
|
2597
|
+
depth?: number;
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2600
|
+
export declare interface HexagonOptions extends HexagonGeometryOptions {
|
|
2601
|
+
/** Surface tint. Defaults to `#ffffff`. */
|
|
2602
|
+
color?: ColorRepresentation;
|
|
2603
|
+
/** Emissive tint. Defaults to `#ffffff`. */
|
|
2604
|
+
emissive?: ColorRepresentation;
|
|
2605
|
+
/** Emissive strength. Defaults to `0.1`. */
|
|
2606
|
+
emissiveIntensity?: number;
|
|
2281
2607
|
}
|
|
2282
2608
|
|
|
2283
2609
|
export declare class HexagonShape extends Shape {
|
|
@@ -2292,28 +2618,42 @@ export declare function hexToHsl(hex: number): [number, number, number];
|
|
|
2292
2618
|
*/
|
|
2293
2619
|
export declare function hexToRgb(hex: number): [number, number, number];
|
|
2294
2620
|
|
|
2621
|
+
/**
|
|
2622
|
+
* Hill prefab — hemispherical terrain mound.
|
|
2623
|
+
*/
|
|
2295
2624
|
export declare class Hill extends Mesh<HillGeometry, MeshStandardMaterial> {
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
height?: number | undefined;
|
|
2300
|
-
widthSegments?: number | undefined;
|
|
2301
|
-
heightSegments?: number | undefined;
|
|
2302
|
-
phiStart?: number | undefined;
|
|
2303
|
-
phiLength?: number | undefined;
|
|
2304
|
-
});
|
|
2625
|
+
readonly radius: number;
|
|
2626
|
+
readonly height: number;
|
|
2627
|
+
constructor({ color, ...geometryOptions }?: HillOptions);
|
|
2305
2628
|
}
|
|
2306
2629
|
|
|
2630
|
+
/**
|
|
2631
|
+
* Hemispherical hill — a sphere cap scaled on Y, base on the Y=0 plane.
|
|
2632
|
+
*/
|
|
2307
2633
|
export declare class HillGeometry extends BufferGeometry {
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2634
|
+
readonly radius: number;
|
|
2635
|
+
readonly height: number;
|
|
2636
|
+
constructor({ radius, height, widthSegments, heightSegments, phiStart, phiLength, }?: HillGeometryOptions);
|
|
2637
|
+
}
|
|
2638
|
+
|
|
2639
|
+
export declare interface HillGeometryOptions {
|
|
2640
|
+
/** Base sphere radius before vertical squash. Defaults to `3`. */
|
|
2641
|
+
radius?: number;
|
|
2642
|
+
/** Peak height. Defaults to `0.6`. */
|
|
2643
|
+
height?: number;
|
|
2644
|
+
/** Horizontal segments. Defaults to `64`. */
|
|
2645
|
+
widthSegments?: number;
|
|
2646
|
+
/** Vertical segments. Defaults to `16`. */
|
|
2647
|
+
heightSegments?: number;
|
|
2648
|
+
/** Azimuth start angle (radians). Defaults to `0`. */
|
|
2649
|
+
phiStart?: number;
|
|
2650
|
+
/** Azimuth sweep (radians). Defaults to `2π`. */
|
|
2651
|
+
phiLength?: number;
|
|
2652
|
+
}
|
|
2653
|
+
|
|
2654
|
+
export declare interface HillOptions extends HillGeometryOptions {
|
|
2655
|
+
/** Surface tint. Defaults to `#00ff00`. */
|
|
2656
|
+
color?: ColorRepresentation;
|
|
2317
2657
|
}
|
|
2318
2658
|
|
|
2319
2659
|
/**
|
|
@@ -2330,6 +2670,9 @@ export declare function hslToHex(h: number, s: number, l: number): [number, numb
|
|
|
2330
2670
|
|
|
2331
2671
|
export declare function hslToRgb(h: number, s: number, l: number): [number, number, number];
|
|
2332
2672
|
|
|
2673
|
+
/** Inset opening for frame ring inner edge (uniform `inset` wall thickness). */
|
|
2674
|
+
export declare function insetArchedOpeningMetrics(outer: ArchedOpeningMetrics, inset: number): ArchedOpeningMetrics;
|
|
2675
|
+
|
|
2333
2676
|
/**
|
|
2334
2677
|
* Generates an array of interpolated 2D points using an easing function.
|
|
2335
2678
|
* @param curveFunction - The easing function to apply to the normalized value.
|
|
@@ -2371,7 +2714,7 @@ export declare class JarGeometry extends BufferGeometry {
|
|
|
2371
2714
|
*/
|
|
2372
2715
|
export declare class Lantern extends Mesh<LanternGeometry, MeshStandardMaterial[]> {
|
|
2373
2716
|
readonly lampCenterY: number;
|
|
2374
|
-
constructor(
|
|
2717
|
+
constructor({ color, lampColor, lampEmissiveIntensity, lampOpacity, inner, ...geometryOptions }?: LanternOptions);
|
|
2375
2718
|
}
|
|
2376
2719
|
|
|
2377
2720
|
/**
|
|
@@ -2645,79 +2988,84 @@ export declare class MortarGeometry extends BufferGeometry {
|
|
|
2645
2988
|
}
|
|
2646
2989
|
|
|
2647
2990
|
/**
|
|
2648
|
-
*
|
|
2649
|
-
*
|
|
2650
|
-
* 1.
|
|
2991
|
+
* Mossy rock prefab — grey stone with a translucent green moss shell.
|
|
2992
|
+
*
|
|
2993
|
+
* Material groups: `0` rock, `1` moss.
|
|
2651
2994
|
*/
|
|
2652
|
-
export declare class
|
|
2653
|
-
constructor();
|
|
2995
|
+
export declare class MossyRock extends Mesh<MossyRockGeometry, MeshStandardMaterial[]> {
|
|
2996
|
+
constructor({ rockColor, mossColor, mossOpacity, ...geometryOptions }?: MossyRockOptions);
|
|
2654
2997
|
}
|
|
2655
2998
|
|
|
2656
2999
|
/**
|
|
2657
|
-
*
|
|
2658
|
-
*
|
|
2659
|
-
* 1.
|
|
3000
|
+
* Mossy rock — dodecahedron body with a smaller, flatter moss shell (group 1).
|
|
3001
|
+
*
|
|
3002
|
+
* Material groups: `0` rock, `1` moss.
|
|
3003
|
+
*
|
|
3004
|
+
* Local frame: centered on the rock body.
|
|
2660
3005
|
*/
|
|
2661
|
-
export declare class
|
|
2662
|
-
|
|
3006
|
+
export declare class MossyRockGeometry extends BufferGeometry {
|
|
3007
|
+
readonly radius: number;
|
|
3008
|
+
readonly detail: number;
|
|
3009
|
+
constructor({ radius, detail, mossScaleXZ, mossScaleY, mossOffsetY, }?: MossyRockGeometryOptions);
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
export declare interface MossyRockGeometryOptions {
|
|
3013
|
+
/** Rock dodecahedron radius. Defaults to `1`. */
|
|
3014
|
+
radius?: number;
|
|
3015
|
+
/** Dodecahedron detail level. Defaults to `0`. */
|
|
3016
|
+
detail?: number;
|
|
3017
|
+
/** Moss horizontal scale relative to the rock. Defaults to `0.9`. */
|
|
3018
|
+
mossScaleXZ?: number;
|
|
3019
|
+
/** Moss vertical scale relative to the rock. Defaults to `0.5`. */
|
|
3020
|
+
mossScaleY?: number;
|
|
3021
|
+
/** Moss center offset above the rock origin. Defaults to `0.3`. */
|
|
3022
|
+
mossOffsetY?: number;
|
|
3023
|
+
}
|
|
3024
|
+
|
|
3025
|
+
export declare interface MossyRockOptions extends MossyRockGeometryOptions {
|
|
3026
|
+
/** Rock tint. Defaults to `#808080`. */
|
|
3027
|
+
rockColor?: ColorRepresentation;
|
|
3028
|
+
/** Moss tint. Defaults to `#4b8b3b`. */
|
|
3029
|
+
mossColor?: ColorRepresentation;
|
|
3030
|
+
/** Moss opacity. Defaults to `0.8`. */
|
|
3031
|
+
mossOpacity?: number;
|
|
2663
3032
|
}
|
|
2664
3033
|
|
|
2665
3034
|
/**
|
|
2666
|
-
* Mound
|
|
2667
|
-
*
|
|
2668
|
-
* To create a radius based on a desired width:
|
|
2669
|
-
* ```
|
|
2670
|
-
* const mound = new Mound({
|
|
2671
|
-
* radius: radiusFromCapWidth(5, Math.PI / 10),
|
|
2672
|
-
* }
|
|
2673
|
-
* ```
|
|
2674
|
-
*
|
|
2675
|
-
* To create a radius based on a desired height:
|
|
2676
|
-
* ```
|
|
2677
|
-
* const mound = new Mound({
|
|
2678
|
-
* radius: radiusFromCapHeight(5, Math.PI / 10),
|
|
2679
|
-
* }
|
|
2680
|
-
* ```
|
|
3035
|
+
* Mound prefab — flat-topped terrain cap.
|
|
2681
3036
|
*/
|
|
2682
3037
|
export declare class Mound extends Mesh<MoundGeometry, MeshStandardMaterial> {
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
radius?: number | undefined;
|
|
2686
|
-
widthSegments?: number | undefined;
|
|
2687
|
-
heightSegments?: number | undefined;
|
|
2688
|
-
phiStart?: number | undefined;
|
|
2689
|
-
phiLength?: number | undefined;
|
|
2690
|
-
thetaLength?: number | undefined;
|
|
2691
|
-
});
|
|
3038
|
+
readonly radius: number;
|
|
3039
|
+
constructor({ color, radius, ...geometryOptions }?: MoundOptions);
|
|
2692
3040
|
}
|
|
2693
3041
|
|
|
2694
3042
|
/**
|
|
2695
|
-
* Mound-like geometry with a flat top.
|
|
2696
|
-
*
|
|
2697
|
-
* To create a radius based on a desired width:
|
|
2698
|
-
* ```
|
|
2699
|
-
* const moundGeometry = new MoundGeometry({
|
|
2700
|
-
* radius: radiusFromCapWidth(5, Math.PI / 10),
|
|
2701
|
-
* }
|
|
2702
|
-
* ```
|
|
2703
|
-
*
|
|
2704
|
-
* To create a radius based on a desired height:
|
|
2705
|
-
* ```
|
|
2706
|
-
* const moundGeometry = new MoundGeometry({
|
|
2707
|
-
* radius: radiusFromCapHeight(5, Math.PI / 10),
|
|
2708
|
-
* }
|
|
2709
|
-
* ```
|
|
3043
|
+
* Mound-like geometry with a flat top — sphere cap, base on Y=0.
|
|
2710
3044
|
*/
|
|
2711
3045
|
export declare class MoundGeometry extends BufferGeometry {
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
3046
|
+
readonly radius: number;
|
|
3047
|
+
readonly thetaLength: number;
|
|
3048
|
+
constructor({ radius, widthSegments, heightSegments, phiStart, phiLength, thetaLength, }?: MoundGeometryOptions);
|
|
3049
|
+
}
|
|
3050
|
+
|
|
3051
|
+
export declare interface MoundGeometryOptions {
|
|
3052
|
+
/** Sphere radius. Defaults to a cap width of `5` at `thetaLength`. */
|
|
3053
|
+
radius?: number;
|
|
3054
|
+
/** Horizontal segments. Defaults to `64`. */
|
|
3055
|
+
widthSegments?: number;
|
|
3056
|
+
/** Vertical segments. Defaults to `32`. */
|
|
3057
|
+
heightSegments?: number;
|
|
3058
|
+
/** Azimuth start angle (radians). Defaults to `0`. */
|
|
3059
|
+
phiStart?: number;
|
|
3060
|
+
/** Azimuth sweep (radians). Defaults to `2π`. */
|
|
3061
|
+
phiLength?: number;
|
|
3062
|
+
/** Polar sweep from the north pole (radians). Defaults to `π/10`. */
|
|
3063
|
+
thetaLength?: number;
|
|
3064
|
+
}
|
|
3065
|
+
|
|
3066
|
+
export declare interface MoundOptions extends MoundGeometryOptions {
|
|
3067
|
+
/** Surface tint. Defaults to `#00ff00`. */
|
|
3068
|
+
color?: ColorRepresentation;
|
|
2721
3069
|
}
|
|
2722
3070
|
|
|
2723
3071
|
/**
|
|
@@ -2812,17 +3160,37 @@ export declare function normalizeUV(uv: [number, number], minU: number, maxU: nu
|
|
|
2812
3160
|
*/
|
|
2813
3161
|
export declare function normalizeUVBatch(uvs: [number, number][], minBounds: [number, number], maxBounds: [number, number]): [number, number][];
|
|
2814
3162
|
|
|
3163
|
+
/**
|
|
3164
|
+
* Obelisk headstone prefab.
|
|
3165
|
+
*/
|
|
2815
3166
|
export declare class ObeliskHeadstone extends Mesh<ObeliskHeadstoneGeometry, MeshStandardMaterial> {
|
|
2816
|
-
|
|
3167
|
+
readonly totalHeight: number;
|
|
3168
|
+
constructor({ color, roughness, ...geometryOptions }?: ObeliskHeadstoneOptions);
|
|
2817
3169
|
}
|
|
2818
3170
|
|
|
3171
|
+
/**
|
|
3172
|
+
* Tiered obelisk headstone with pyramid cap.
|
|
3173
|
+
*
|
|
3174
|
+
* Local frame: base on Y=0, centered on X/Z.
|
|
3175
|
+
*/
|
|
2819
3176
|
export declare class ObeliskHeadstoneGeometry extends BufferGeometry {
|
|
2820
|
-
|
|
3177
|
+
readonly totalHeight: number;
|
|
3178
|
+
readonly baseWidth: number;
|
|
3179
|
+
constructor({ totalHeight, baseWidth }?: ObeliskHeadstoneGeometryOptions);
|
|
2821
3180
|
}
|
|
2822
3181
|
|
|
2823
|
-
declare interface
|
|
2824
|
-
|
|
3182
|
+
export declare interface ObeliskHeadstoneGeometryOptions {
|
|
3183
|
+
/** Total monument height. Defaults to `1.75`. */
|
|
2825
3184
|
totalHeight?: number;
|
|
3185
|
+
/** Base platform width. Defaults to `0.75`. */
|
|
3186
|
+
baseWidth?: number;
|
|
3187
|
+
}
|
|
3188
|
+
|
|
3189
|
+
export declare interface ObeliskHeadstoneOptions extends ObeliskHeadstoneGeometryOptions {
|
|
3190
|
+
/** Stone tint. Defaults to `#777777`. */
|
|
3191
|
+
color?: ColorRepresentation;
|
|
3192
|
+
/** Surface roughness. Defaults to `0.8`. */
|
|
3193
|
+
roughness?: number;
|
|
2826
3194
|
}
|
|
2827
3195
|
|
|
2828
3196
|
export declare interface OrbitClipOptions extends CameraClipTiming {
|
|
@@ -3379,20 +3747,55 @@ declare interface RingLatticeWindowOptions {
|
|
|
3379
3747
|
glassEmissiveIntensity?: number;
|
|
3380
3748
|
}
|
|
3381
3749
|
|
|
3750
|
+
/**
|
|
3751
|
+
* Single rock prefab — noisy sphere mesh.
|
|
3752
|
+
*/
|
|
3382
3753
|
export declare class Rock extends Mesh<RockGeometry, MeshStandardMaterial> {
|
|
3383
|
-
constructor(
|
|
3754
|
+
constructor({ color, ...geometryOptions }?: RockOptions);
|
|
3384
3755
|
}
|
|
3385
3756
|
|
|
3757
|
+
/**
|
|
3758
|
+
* Low-poly rock — sphere with randomized vertex offsets, then centered.
|
|
3759
|
+
*/
|
|
3386
3760
|
export declare class RockGeometry extends BufferGeometry {
|
|
3387
|
-
|
|
3761
|
+
readonly radius: number;
|
|
3762
|
+
readonly widthSegments: number;
|
|
3763
|
+
readonly heightSegments: number;
|
|
3764
|
+
constructor({ radius, widthSegments, heightSegments, }?: RockGeometryOptions);
|
|
3388
3765
|
}
|
|
3389
3766
|
|
|
3390
|
-
export declare
|
|
3391
|
-
|
|
3767
|
+
export declare interface RockGeometryOptions {
|
|
3768
|
+
/** Base sphere radius before vertex noise. Defaults to `1`. */
|
|
3769
|
+
radius?: number;
|
|
3770
|
+
/** Horizontal segments. Defaults to `4`. */
|
|
3771
|
+
widthSegments?: number;
|
|
3772
|
+
/** Vertical segments. Defaults to `4`. */
|
|
3773
|
+
heightSegments?: number;
|
|
3392
3774
|
}
|
|
3393
3775
|
|
|
3394
|
-
export declare
|
|
3395
|
-
|
|
3776
|
+
export declare interface RockOptions extends RockGeometryOptions {
|
|
3777
|
+
/** Stone tint. Defaults to `#808080`. */
|
|
3778
|
+
color?: ColorRepresentation;
|
|
3779
|
+
}
|
|
3780
|
+
|
|
3781
|
+
export declare interface RockScatterBounds {
|
|
3782
|
+
/** Scatter extent along X (centered on origin). Defaults to `4`. */
|
|
3783
|
+
width?: number;
|
|
3784
|
+
/** Scatter extent along Z (centered on origin). Defaults to `4`. */
|
|
3785
|
+
depth?: number;
|
|
3786
|
+
/** Max random Y offset above the ground plane. Defaults to `0`. */
|
|
3787
|
+
heightJitter?: number;
|
|
3788
|
+
}
|
|
3789
|
+
|
|
3790
|
+
export declare interface RockScatterPlacementOptions extends RockScatterBounds {
|
|
3791
|
+
/** Number of instances. Defaults to `5`. */
|
|
3792
|
+
count?: number;
|
|
3793
|
+
/** Min per-axis instance scale. Defaults to `0.8`. */
|
|
3794
|
+
scaleMin?: number;
|
|
3795
|
+
/** Max per-axis instance scale. Defaults to `1.2`. */
|
|
3796
|
+
scaleMax?: number;
|
|
3797
|
+
/** Optional seed for reproducible scatter. Omit for unique runtime. */
|
|
3798
|
+
seed?: number;
|
|
3396
3799
|
}
|
|
3397
3800
|
|
|
3398
3801
|
export declare class RoundedHeadstone extends Mesh<RoundedHeadstoneGeometry, MeshStandardMaterial> {
|
|
@@ -3426,7 +3829,7 @@ declare interface RowOfBooksByScalesOptions<T extends Material = Material> {
|
|
|
3426
3829
|
source: RandomSource;
|
|
3427
3830
|
}
|
|
3428
3831
|
|
|
3429
|
-
declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
3832
|
+
export declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
3430
3833
|
coverMaterial: T;
|
|
3431
3834
|
pagesMaterial: T;
|
|
3432
3835
|
count?: number;
|
|
@@ -3441,6 +3844,51 @@ declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
|
3441
3844
|
seed?: number;
|
|
3442
3845
|
}
|
|
3443
3846
|
|
|
3847
|
+
/**
|
|
3848
|
+
* Scatter instanced mossy rocks inside a horizontal bounds region.
|
|
3849
|
+
*
|
|
3850
|
+
* Uses two material groups (rock + moss) on a shared {@link InstancedMesh}.
|
|
3851
|
+
*/
|
|
3852
|
+
export declare function scatterMossyRocks({ count, width, depth, heightJitter, scaleMin, scaleMax, seed, radius, detail, mossScaleXZ, mossScaleY, mossOffsetY, rockMaterial, mossMaterial, rockColor, mossColor, mossOpacity, }?: ScatterMossyRocksOptions): InstancedMesh;
|
|
3853
|
+
|
|
3854
|
+
export declare interface ScatterMossyRocksOptions extends RockScatterPlacementOptions {
|
|
3855
|
+
/** Dodecahedron radius for each instance geometry. Defaults to `1`. */
|
|
3856
|
+
radius?: number;
|
|
3857
|
+
detail?: number;
|
|
3858
|
+
mossScaleXZ?: number;
|
|
3859
|
+
mossScaleY?: number;
|
|
3860
|
+
mossOffsetY?: number;
|
|
3861
|
+
rockMaterial?: Material;
|
|
3862
|
+
mossMaterial?: Material;
|
|
3863
|
+
/** Rock tint when `rockMaterial` is omitted. Defaults to `#808080`. */
|
|
3864
|
+
rockColor?: ColorRepresentation;
|
|
3865
|
+
/** Moss tint when `mossMaterial` is omitted. Defaults to `#4b8b3b`. */
|
|
3866
|
+
mossColor?: ColorRepresentation;
|
|
3867
|
+
/** Moss opacity when `mossMaterial` is omitted. Defaults to `0.8`. */
|
|
3868
|
+
mossOpacity?: number;
|
|
3869
|
+
}
|
|
3870
|
+
|
|
3871
|
+
/**
|
|
3872
|
+
* Scatter instanced rocks inside a horizontal bounds region.
|
|
3873
|
+
*
|
|
3874
|
+
* @example
|
|
3875
|
+
* ```ts
|
|
3876
|
+
* const rocks = scatterRocks({ count: 12, width: 8, depth: 8, seed: 1337 });
|
|
3877
|
+
* scene.add(rocks);
|
|
3878
|
+
* ```
|
|
3879
|
+
*/
|
|
3880
|
+
export declare function scatterRocks({ count, width, depth, heightJitter, scaleMin, scaleMax, seed, radius, widthSegments, heightSegments, material, color, }?: ScatterRocksOptions): InstancedMesh;
|
|
3881
|
+
|
|
3882
|
+
export declare interface ScatterRocksOptions extends RockScatterPlacementOptions {
|
|
3883
|
+
/** Base sphere radius for each instance geometry. Defaults to `1`. */
|
|
3884
|
+
radius?: number;
|
|
3885
|
+
widthSegments?: number;
|
|
3886
|
+
heightSegments?: number;
|
|
3887
|
+
material?: Material;
|
|
3888
|
+
/** Stone tint when `material` is omitted. Defaults to `#808080`. */
|
|
3889
|
+
color?: ColorRepresentation;
|
|
3890
|
+
}
|
|
3891
|
+
|
|
3444
3892
|
/**
|
|
3445
3893
|
* SceneTransition provides smooth animated transitions between Three.js scenes.
|
|
3446
3894
|
*
|
|
@@ -3846,6 +4294,49 @@ export declare class SquareHeadstoneGeometry extends BufferGeometry {
|
|
|
3846
4294
|
constructor(width?: number, height?: number, depth?: number);
|
|
3847
4295
|
}
|
|
3848
4296
|
|
|
4297
|
+
/**
|
|
4298
|
+
* Stack of books on the floor — each book lays flat on its cover; count sets stack height.
|
|
4299
|
+
* Each layer is laid flat (+90° X), then given a small in-plane spin (world Y)
|
|
4300
|
+
* around the book's geometric center — not the spine corner.
|
|
4301
|
+
*
|
|
4302
|
+
* Local frame: bottom of the stack at Y=0, centered on X/Z.
|
|
4303
|
+
*
|
|
4304
|
+
* @example
|
|
4305
|
+
* ```ts
|
|
4306
|
+
* const stack = stackOfBooks({
|
|
4307
|
+
* coverMaterial,
|
|
4308
|
+
* pagesMaterial,
|
|
4309
|
+
* count: 8,
|
|
4310
|
+
* yawMax: 0.6,
|
|
4311
|
+
* seed: 1337,
|
|
4312
|
+
* });
|
|
4313
|
+
* scene.add(stack);
|
|
4314
|
+
* ```
|
|
4315
|
+
*/
|
|
4316
|
+
export declare function stackOfBooks<T extends Material>({ coverMaterial, pagesMaterial, count, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, yawMax, offsetMax, seed, }: StackOfBooksOptions<T>): InstancedMesh;
|
|
4317
|
+
|
|
4318
|
+
export declare interface StackOfBooksOptions<T extends Material = Material> {
|
|
4319
|
+
coverMaterial: T;
|
|
4320
|
+
pagesMaterial: T;
|
|
4321
|
+
/** Number of books in the stack. Defaults to `6`. */
|
|
4322
|
+
count?: number;
|
|
4323
|
+
scaleXMin?: number;
|
|
4324
|
+
scaleXMax?: number;
|
|
4325
|
+
scaleYMin?: number;
|
|
4326
|
+
scaleYMax?: number;
|
|
4327
|
+
scaleZMin?: number;
|
|
4328
|
+
scaleZMax?: number;
|
|
4329
|
+
/**
|
|
4330
|
+
* Max in-plane spin (world Y, radians) once the book is laid flat — a lazy
|
|
4331
|
+
* turn on the floor, not a tilt. Defaults to `0.55` (~31°).
|
|
4332
|
+
*/
|
|
4333
|
+
yawMax?: number;
|
|
4334
|
+
/** Max horizontal drift per layer on X/Z. Defaults to `0.06`. */
|
|
4335
|
+
offsetMax?: number;
|
|
4336
|
+
/** Optional seed for reproducible layout. Omit for unique runtime. */
|
|
4337
|
+
seed?: number;
|
|
4338
|
+
}
|
|
4339
|
+
|
|
3849
4340
|
/**
|
|
3850
4341
|
* Straight run staircase prefab — {@link StaircaseGeometry} with a wood-tone
|
|
3851
4342
|
* default material.
|
|
@@ -3895,35 +4386,48 @@ export declare interface StaircaseOptions extends StaircaseGeometryOptions {
|
|
|
3895
4386
|
color?: ColorRepresentation;
|
|
3896
4387
|
}
|
|
3897
4388
|
|
|
4389
|
+
/**
|
|
4390
|
+
* Laboratory stand prefab — ring and legs.
|
|
4391
|
+
*/
|
|
3898
4392
|
export declare class Stand extends Mesh<StandGeometry, MeshStandardMaterial> {
|
|
3899
|
-
constructor({
|
|
3900
|
-
height, count, thickness, radialSegments, }?: {
|
|
3901
|
-
radius?: number | undefined;
|
|
3902
|
-
height?: number | undefined;
|
|
3903
|
-
count?: number | undefined;
|
|
3904
|
-
thickness?: number | undefined;
|
|
3905
|
-
radialSegments?: number | undefined;
|
|
3906
|
-
});
|
|
4393
|
+
constructor({ color, ...geometryOptions }?: StandOptions);
|
|
3907
4394
|
}
|
|
3908
4395
|
|
|
4396
|
+
/**
|
|
4397
|
+
* Tripod-style stand — torus ring with radial legs.
|
|
4398
|
+
*
|
|
4399
|
+
* Local frame: legs on Y=0.
|
|
4400
|
+
*/
|
|
3909
4401
|
export declare class StandGeometry extends BufferGeometry {
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
count?: number | undefined;
|
|
3915
|
-
thickness?: number | undefined;
|
|
3916
|
-
radialSegments?: number | undefined;
|
|
3917
|
-
});
|
|
4402
|
+
readonly radius: number;
|
|
4403
|
+
readonly height: number;
|
|
4404
|
+
readonly count: number;
|
|
4405
|
+
constructor({ radius, height, count, thickness, radialSegments, }?: StandGeometryOptions);
|
|
3918
4406
|
}
|
|
3919
4407
|
|
|
3920
|
-
export declare
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
4408
|
+
export declare interface StandGeometryOptions {
|
|
4409
|
+
/** Ring radius. Defaults to `0.3`. */
|
|
4410
|
+
radius?: number;
|
|
4411
|
+
/** Leg height. Defaults to `0.4`. */
|
|
4412
|
+
height?: number;
|
|
4413
|
+
/** Number of legs. Defaults to `3`. */
|
|
4414
|
+
count?: number;
|
|
4415
|
+
/** Ring tube thickness. Defaults to `0.03`. */
|
|
4416
|
+
thickness?: number;
|
|
4417
|
+
/** Circumference segments. Defaults to `16`. */
|
|
4418
|
+
radialSegments?: number;
|
|
4419
|
+
}
|
|
4420
|
+
|
|
4421
|
+
export declare interface StandOptions extends StandGeometryOptions {
|
|
4422
|
+
/** Metal tint. Defaults to `#888888`. */
|
|
4423
|
+
color?: ColorRepresentation;
|
|
4424
|
+
}
|
|
4425
|
+
|
|
4426
|
+
/**
|
|
4427
|
+
* Star shape prefab.
|
|
4428
|
+
*/
|
|
4429
|
+
export declare class Star extends Mesh<StarGeometry, MeshStandardMaterial> {
|
|
4430
|
+
constructor({ color, emissive, emissiveIntensity, ...geometryOptions }?: StarOptions);
|
|
3927
4431
|
}
|
|
3928
4432
|
|
|
3929
4433
|
export declare interface StarBurstShapeOptions {
|
|
@@ -4042,29 +4546,62 @@ export declare interface StarFieldEffectOptions {
|
|
|
4042
4546
|
}
|
|
4043
4547
|
|
|
4044
4548
|
/**
|
|
4045
|
-
*
|
|
4549
|
+
* Extruded star prism.
|
|
4046
4550
|
*/
|
|
4047
4551
|
export declare class StarGeometry extends ExtrudeGeometry {
|
|
4048
|
-
constructor(points
|
|
4552
|
+
constructor({ points, innerRadius, outerRadius, depth, }?: StarGeometryOptions);
|
|
4553
|
+
}
|
|
4554
|
+
|
|
4555
|
+
export declare interface StarGeometryOptions {
|
|
4556
|
+
/** Number of star points. Defaults to `5`. */
|
|
4557
|
+
points?: number;
|
|
4558
|
+
/** Inner vertex radius. Defaults to `0.5`. */
|
|
4559
|
+
innerRadius?: number;
|
|
4560
|
+
/** Outer vertex radius. Defaults to `1`. */
|
|
4561
|
+
outerRadius?: number;
|
|
4562
|
+
/** Extrusion depth. Defaults to `0.25`. */
|
|
4563
|
+
depth?: number;
|
|
4564
|
+
}
|
|
4565
|
+
|
|
4566
|
+
export declare interface StarOptions extends StarGeometryOptions {
|
|
4567
|
+
/** Surface tint. Defaults to `#ffff00`. */
|
|
4568
|
+
color?: ColorRepresentation;
|
|
4569
|
+
/** Emissive tint. Defaults to `#ffd700`. */
|
|
4570
|
+
emissive?: ColorRepresentation;
|
|
4571
|
+
/** Emissive strength. Defaults to `0.25`. */
|
|
4572
|
+
emissiveIntensity?: number;
|
|
4049
4573
|
}
|
|
4050
4574
|
|
|
4051
4575
|
export declare class StarShape extends Shape {
|
|
4052
4576
|
constructor(points?: number, innerRadius?: number, outerRadius?: number);
|
|
4053
4577
|
}
|
|
4054
4578
|
|
|
4579
|
+
/**
|
|
4580
|
+
* Stone fence post prefab.
|
|
4581
|
+
*/
|
|
4055
4582
|
export declare class StoneFencePost extends Mesh<StoneFencePostGeometry, MeshStandardMaterial> {
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
});
|
|
4583
|
+
readonly height: number;
|
|
4584
|
+
constructor({ color, ...geometryOptions }?: StoneFencePostOptions);
|
|
4059
4585
|
}
|
|
4060
4586
|
|
|
4061
4587
|
/**
|
|
4062
|
-
*
|
|
4588
|
+
* Stone fence post — wide base, column, and cap.
|
|
4589
|
+
*
|
|
4590
|
+
* Local frame: base on Y=0.
|
|
4063
4591
|
*/
|
|
4064
4592
|
export declare class StoneFencePostGeometry extends BufferGeometry {
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4593
|
+
readonly height: number;
|
|
4594
|
+
constructor({ height }?: StoneFencePostGeometryOptions);
|
|
4595
|
+
}
|
|
4596
|
+
|
|
4597
|
+
export declare interface StoneFencePostGeometryOptions {
|
|
4598
|
+
/** Main column height (excluding base and cap). Defaults to `2.25`. */
|
|
4599
|
+
height?: number;
|
|
4600
|
+
}
|
|
4601
|
+
|
|
4602
|
+
export declare interface StoneFencePostOptions extends StoneFencePostGeometryOptions {
|
|
4603
|
+
/** Stone tint. Defaults to `#8b7d7b`. */
|
|
4604
|
+
color?: ColorRepresentation;
|
|
4068
4605
|
}
|
|
4069
4606
|
|
|
4070
4607
|
/**
|
|
@@ -4094,14 +4631,15 @@ export declare class TestTubeGeometry extends BufferGeometry {
|
|
|
4094
4631
|
}
|
|
4095
4632
|
|
|
4096
4633
|
/**
|
|
4097
|
-
* Wooden rack with
|
|
4634
|
+
* Wooden rack with test tubes and emissive liquid fills.
|
|
4098
4635
|
*
|
|
4099
4636
|
* Glass shells use `DoubleSide` and `depthWrite: false`; liquid draws first
|
|
4100
4637
|
* (`renderOrder` 1), glass second (`renderOrder` 2) so fills stay visible at
|
|
4101
4638
|
* most camera angles.
|
|
4102
4639
|
*/
|
|
4103
4640
|
export declare class TestTubeRack extends Group {
|
|
4104
|
-
|
|
4641
|
+
readonly count: number;
|
|
4642
|
+
constructor({ count, colors, }?: TestTubeRackOptions);
|
|
4105
4643
|
}
|
|
4106
4644
|
|
|
4107
4645
|
export declare interface TestTubeRackOptions {
|
|
@@ -4126,60 +4664,60 @@ export declare interface TestTubeRackOptions {
|
|
|
4126
4664
|
*/
|
|
4127
4665
|
export declare const thetaLengthForRadius: (sphereRadius: number, holeRadius: number) => number;
|
|
4128
4666
|
|
|
4667
|
+
/** Trace the shared rect-plus-arch outline (glass, stencil mask, frame outer edge). */
|
|
4668
|
+
export declare function traceArchedOpeningOutline(target: ArchedOutlineTarget, metrics: ArchedOpeningMetrics, { hole }?: {
|
|
4669
|
+
hole?: boolean;
|
|
4670
|
+
}): void;
|
|
4671
|
+
|
|
4129
4672
|
/**
|
|
4130
|
-
*
|
|
4131
|
-
* 0. Trunk
|
|
4132
|
-
* 1. leafSize
|
|
4133
|
-
*
|
|
4134
|
-
* Example usage:
|
|
4135
|
-
* ```
|
|
4136
|
-
* const tree = new Tree({
|
|
4137
|
-
* trunkRadiusTop: 0.25,
|
|
4138
|
-
* trunkRadiusBottom: 0.4,
|
|
4139
|
-
* trunkHeight: 2.5,
|
|
4140
|
-
* trunkSegments: 14,
|
|
4141
|
-
* trunkColor: 0x8b4513,
|
|
4142
|
-
* leafSize: 0.8,
|
|
4143
|
-
* leafCount: 6,
|
|
4144
|
-
* leafDetail: 0,
|
|
4145
|
-
* leafSpreadRadius: 1.5,
|
|
4146
|
-
* leafColor: 0x228b22,
|
|
4147
|
-
* });
|
|
4148
|
-
* ```
|
|
4673
|
+
* Low-poly tree prefab — trunk and leaf clusters with separate material groups.
|
|
4149
4674
|
*/
|
|
4150
4675
|
export declare class Tree extends Mesh<TreeGeometry, MeshStandardMaterial[]> {
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
trunkRadiusBottom?: number | undefined;
|
|
4154
|
-
trunkHeight?: number | undefined;
|
|
4155
|
-
trunkSegments?: number | undefined;
|
|
4156
|
-
trunkColor?: number | undefined;
|
|
4157
|
-
leafSize?: number | undefined;
|
|
4158
|
-
leafCount?: number | undefined;
|
|
4159
|
-
leafDetail?: number | undefined;
|
|
4160
|
-
leafSpreadRadius?: number | undefined;
|
|
4161
|
-
leafColor?: number | undefined;
|
|
4162
|
-
});
|
|
4676
|
+
readonly trunkHeight: number;
|
|
4677
|
+
constructor({ trunkColor, leafColor, ...geometryOptions }?: TreeOptions);
|
|
4163
4678
|
}
|
|
4164
4679
|
|
|
4165
4680
|
/**
|
|
4166
|
-
*
|
|
4681
|
+
* Low-poly tree — trunk (group 0) and leaf clusters (group 1).
|
|
4167
4682
|
*
|
|
4168
|
-
*
|
|
4169
|
-
* - Trunk Material
|
|
4170
|
-
* - Leaf Material
|
|
4683
|
+
* Local frame: trunk base at Y=0. Leaf positions use `Math.random()` each build.
|
|
4171
4684
|
*/
|
|
4172
4685
|
export declare class TreeGeometry extends BufferGeometry {
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4686
|
+
readonly trunkRadiusTop: number;
|
|
4687
|
+
readonly trunkRadiusBottom: number;
|
|
4688
|
+
readonly trunkHeight: number;
|
|
4689
|
+
readonly trunkSegments: number;
|
|
4690
|
+
readonly leafSize: number;
|
|
4691
|
+
readonly leafCount: number;
|
|
4692
|
+
readonly leafDetail: number;
|
|
4693
|
+
readonly leafSpreadRadius: number;
|
|
4694
|
+
constructor({ trunkRadiusTop, trunkRadiusBottom, trunkHeight, trunkSegments, leafSize, leafCount, leafDetail, leafSpreadRadius, }?: TreeGeometryOptions);
|
|
4695
|
+
}
|
|
4696
|
+
|
|
4697
|
+
export declare interface TreeGeometryOptions {
|
|
4698
|
+
/** Trunk top radius. Defaults to `0.25`. */
|
|
4699
|
+
trunkRadiusTop?: number;
|
|
4700
|
+
/** Trunk bottom radius. Defaults to `0.4`. */
|
|
4701
|
+
trunkRadiusBottom?: number;
|
|
4702
|
+
/** Trunk height. Defaults to `2.5`. */
|
|
4703
|
+
trunkHeight?: number;
|
|
4704
|
+
/** Trunk circumference segments. Defaults to `14`. */
|
|
4705
|
+
trunkSegments?: number;
|
|
4706
|
+
/** Leaf dodecahedron radius. Defaults to `0.8`. */
|
|
4707
|
+
leafSize?: number;
|
|
4708
|
+
/** Number of leaf clusters. Defaults to `6`. */
|
|
4709
|
+
leafCount?: number;
|
|
4710
|
+
/** Leaf dodecahedron detail level. Defaults to `0`. */
|
|
4711
|
+
leafDetail?: number;
|
|
4712
|
+
/** Horizontal spread of leaf placement. Defaults to `1.5`. */
|
|
4713
|
+
leafSpreadRadius?: number;
|
|
4714
|
+
}
|
|
4715
|
+
|
|
4716
|
+
export declare interface TreeOptions extends TreeGeometryOptions {
|
|
4717
|
+
/** Trunk tint. Defaults to `#8b4513`. */
|
|
4718
|
+
trunkColor?: ColorRepresentation;
|
|
4719
|
+
/** Leaf tint. Defaults to `#228b22`. */
|
|
4720
|
+
leafColor?: ColorRepresentation;
|
|
4183
4721
|
}
|
|
4184
4722
|
|
|
4185
4723
|
/**
|
|
@@ -4302,18 +4840,40 @@ export declare interface WallSconceOptions extends WallSconceGeometryOptions {
|
|
|
4302
4840
|
lampOpacity?: number;
|
|
4303
4841
|
}
|
|
4304
4842
|
|
|
4843
|
+
/**
|
|
4844
|
+
* Wine bottle prefab — translucent green glass.
|
|
4845
|
+
*/
|
|
4305
4846
|
export declare class WineBottle extends Mesh<WineBottleGeometry, MeshPhysicalMaterial> {
|
|
4306
|
-
constructor();
|
|
4847
|
+
constructor({ color, ...geometryOptions }?: WineBottleOptions);
|
|
4307
4848
|
}
|
|
4308
4849
|
|
|
4850
|
+
/**
|
|
4851
|
+
* Wine bottle — cylindrical body, shoulder taper, and neck.
|
|
4852
|
+
*
|
|
4853
|
+
* Local frame: base at Y=0.
|
|
4854
|
+
*/
|
|
4309
4855
|
export declare class WineBottleGeometry extends BufferGeometry {
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4856
|
+
readonly radius: number;
|
|
4857
|
+
readonly height: number;
|
|
4858
|
+
constructor({ radius, neckRadius, height, neckHeight, segments, }?: WineBottleGeometryOptions);
|
|
4859
|
+
}
|
|
4860
|
+
|
|
4861
|
+
export declare interface WineBottleGeometryOptions {
|
|
4862
|
+
/** Body radius. Defaults to `0.5`. */
|
|
4863
|
+
radius?: number;
|
|
4864
|
+
/** Neck radius. Defaults to `0.2`. */
|
|
4865
|
+
neckRadius?: number;
|
|
4866
|
+
/** Total height including neck. Defaults to `3`. */
|
|
4867
|
+
height?: number;
|
|
4868
|
+
/** Neck height. Defaults to `1`. */
|
|
4869
|
+
neckHeight?: number;
|
|
4870
|
+
/** Circumference segments. Defaults to `16`. */
|
|
4871
|
+
segments?: number;
|
|
4872
|
+
}
|
|
4873
|
+
|
|
4874
|
+
export declare interface WineBottleOptions extends WineBottleGeometryOptions {
|
|
4875
|
+
/** Glass tint. Defaults to `#556b2f`. */
|
|
4876
|
+
color?: ColorRepresentation;
|
|
4317
4877
|
}
|
|
4318
4878
|
|
|
4319
4879
|
/**
|
|
@@ -4404,65 +4964,91 @@ export declare interface WobbleClipOptions extends CameraClipTiming {
|
|
|
4404
4964
|
ease?: EasingFunction;
|
|
4405
4965
|
}
|
|
4406
4966
|
|
|
4967
|
+
/**
|
|
4968
|
+
* Wrought-iron fence post prefab.
|
|
4969
|
+
*/
|
|
4407
4970
|
export declare class WroughtIronBar extends Mesh<WroughtIronBarGeometry, MeshStandardMaterial> {
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
barHeight?: number | undefined;
|
|
4411
|
-
barRadius?: number | undefined;
|
|
4412
|
-
spikeHeight?: number | undefined;
|
|
4413
|
-
spikeRadius?: number | undefined;
|
|
4414
|
-
spikeScaleZ?: number | undefined;
|
|
4415
|
-
radialSegments?: number | undefined;
|
|
4416
|
-
});
|
|
4971
|
+
readonly barHeight: number;
|
|
4972
|
+
constructor({ color, ...geometryOptions }?: WroughtIronBarOptions);
|
|
4417
4973
|
}
|
|
4418
4974
|
|
|
4419
4975
|
/**
|
|
4420
|
-
* Wrought
|
|
4976
|
+
* Wrought-iron fence post — cylinder bar with a decorative spike.
|
|
4977
|
+
*
|
|
4978
|
+
* Local frame: base at Y=0.
|
|
4421
4979
|
*/
|
|
4422
4980
|
export declare class WroughtIronBarGeometry extends BufferGeometry {
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4981
|
+
readonly barHeight: number;
|
|
4982
|
+
constructor({ barHeight, barRadius, spikeHeight, spikeRadius, spikeScaleZ, radialSegments, }?: WroughtIronBarGeometryOptions);
|
|
4983
|
+
}
|
|
4984
|
+
|
|
4985
|
+
export declare interface WroughtIronBarGeometryOptions {
|
|
4986
|
+
/** Vertical bar height. Defaults to `2`. */
|
|
4987
|
+
barHeight?: number;
|
|
4988
|
+
/** Bar cylinder radius. Defaults to `0.05`. */
|
|
4989
|
+
barRadius?: number;
|
|
4990
|
+
/** Spike cone height. Defaults to `0.3`. */
|
|
4991
|
+
spikeHeight?: number;
|
|
4992
|
+
/** Spike base radius. Defaults to `0.075`. */
|
|
4993
|
+
spikeRadius?: number;
|
|
4994
|
+
/** Spike depth scale on Z. Defaults to `1`. */
|
|
4995
|
+
spikeScaleZ?: number;
|
|
4996
|
+
/** Circumference segments. Defaults to `8`. */
|
|
4997
|
+
radialSegments?: number;
|
|
4998
|
+
}
|
|
4999
|
+
|
|
5000
|
+
export declare interface WroughtIronBarOptions extends WroughtIronBarGeometryOptions {
|
|
5001
|
+
/** Iron tint. Defaults to `#333333`. */
|
|
5002
|
+
color?: ColorRepresentation;
|
|
4432
5003
|
}
|
|
4433
5004
|
|
|
5005
|
+
/**
|
|
5006
|
+
* Wrought-iron fence run prefab.
|
|
5007
|
+
*/
|
|
4434
5008
|
export declare class WroughtIronFence extends Mesh<WroughtIronFenceGeometry, MeshStandardMaterial> {
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
count?: number | undefined;
|
|
4438
|
-
spacing?: number | undefined;
|
|
4439
|
-
barHeight?: number | undefined;
|
|
4440
|
-
barRadius?: number | undefined;
|
|
4441
|
-
spikeHeight?: number | undefined;
|
|
4442
|
-
spikeRadius?: number | undefined;
|
|
4443
|
-
spikeScaleZ?: number | undefined;
|
|
4444
|
-
railHeight?: number | undefined;
|
|
4445
|
-
railDepth?: number | undefined;
|
|
4446
|
-
railOffset?: number | undefined;
|
|
4447
|
-
radialSegments?: number | undefined;
|
|
4448
|
-
});
|
|
5009
|
+
readonly count: number;
|
|
5010
|
+
constructor({ color, ...geometryOptions }?: WroughtIronFenceOptions);
|
|
4449
5011
|
}
|
|
4450
5012
|
|
|
5013
|
+
/**
|
|
5014
|
+
* Wrought-iron fence run — repeated posts with top and bottom rails.
|
|
5015
|
+
*
|
|
5016
|
+
* Local frame: first post at the origin, extending along +X.
|
|
5017
|
+
*/
|
|
4451
5018
|
export declare class WroughtIronFenceGeometry extends BufferGeometry {
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
5019
|
+
readonly count: number;
|
|
5020
|
+
readonly spacing: number;
|
|
5021
|
+
constructor({ count, spacing, barHeight, barRadius, spikeHeight, spikeRadius, spikeScaleZ, railHeight, railDepth, railOffset, radialSegments, }?: WroughtIronFenceGeometryOptions);
|
|
5022
|
+
}
|
|
5023
|
+
|
|
5024
|
+
export declare interface WroughtIronFenceGeometryOptions {
|
|
5025
|
+
/** Number of posts. Defaults to `20`. */
|
|
5026
|
+
count?: number;
|
|
5027
|
+
/** Center-to-center post spacing. Defaults to `0.4`. */
|
|
5028
|
+
spacing?: number;
|
|
5029
|
+
/** Post bar height. Defaults to `2`. */
|
|
5030
|
+
barHeight?: number;
|
|
5031
|
+
/** Post bar radius. Defaults to `0.05`. */
|
|
5032
|
+
barRadius?: number;
|
|
5033
|
+
/** Post spike height. Defaults to `0.3`. */
|
|
5034
|
+
spikeHeight?: number;
|
|
5035
|
+
/** Post spike radius. Defaults to `0.075`. */
|
|
5036
|
+
spikeRadius?: number;
|
|
5037
|
+
/** Post spike Z scale. Defaults to `1`. */
|
|
5038
|
+
spikeScaleZ?: number;
|
|
5039
|
+
/** Horizontal rail thickness. Defaults to `0.1`. */
|
|
5040
|
+
railHeight?: number;
|
|
5041
|
+
/** Horizontal rail depth. Defaults to `0.05`. */
|
|
5042
|
+
railDepth?: number;
|
|
5043
|
+
/** Top rail offset below the spike tip. Defaults to `0`. */
|
|
5044
|
+
railOffset?: number;
|
|
5045
|
+
/** Post circumference segments. Defaults to `8`. */
|
|
5046
|
+
radialSegments?: number;
|
|
5047
|
+
}
|
|
5048
|
+
|
|
5049
|
+
export declare interface WroughtIronFenceOptions extends WroughtIronFenceGeometryOptions {
|
|
5050
|
+
/** Iron tint. Defaults to `#333333`. */
|
|
5051
|
+
color?: ColorRepresentation;
|
|
4466
5052
|
}
|
|
4467
5053
|
|
|
4468
5054
|
export declare interface ZoomClipOptions extends CameraClipTiming {
|