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