three-low-poly 0.9.24 → 0.9.25
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 +51 -305
- package/dist/index.cjs +13 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1067 -186
- package/dist/index.iife.js +13 -50
- package/dist/index.iife.js.map +1 -1
- package/dist/index.mjs +3310 -3410
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BoxGeometry } from 'three';
|
|
2
2
|
import { BufferGeometry } from 'three';
|
|
3
|
-
import { Camera } from 'three';
|
|
4
3
|
import { Color } from 'three';
|
|
5
4
|
import { ColorRepresentation } from 'three';
|
|
6
5
|
import { DataTexture } from 'three';
|
|
@@ -16,11 +15,14 @@ import { MeshPhongMaterial } from 'three';
|
|
|
16
15
|
import { MeshPhysicalMaterial } from 'three';
|
|
17
16
|
import { MeshStandardMaterial } from 'three';
|
|
18
17
|
import { Object3D } from 'three';
|
|
18
|
+
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
|
19
19
|
import { ParametricGeometry } from 'three-stdlib';
|
|
20
20
|
import { PerspectiveCamera } from 'three';
|
|
21
|
+
import { Plane } from 'three';
|
|
21
22
|
import { PlaneGeometry } from 'three';
|
|
22
23
|
import { PointLight } from 'three';
|
|
23
24
|
import { Points } from 'three';
|
|
25
|
+
import { Quaternion } from 'three';
|
|
24
26
|
import { ShaderMaterial } from 'three';
|
|
25
27
|
import { Shape } from 'three';
|
|
26
28
|
import { SphereGeometry } from 'three';
|
|
@@ -166,6 +168,8 @@ export declare function alignToRow<T extends Object3D>(objects: T[], direction?:
|
|
|
166
168
|
*/
|
|
167
169
|
export declare function appendSphericalCurve(sphereRadiusX: number, sphereRadiusY: number, sphereStartY: number, holeTopRadius?: number, holeBottomRadius?: number, segments?: number): Vector2[];
|
|
168
170
|
|
|
171
|
+
export declare function applySnapshot(camera: PerspectiveCamera, controls: OrbitControls | undefined, snapshot: CameraSnapshot): void;
|
|
172
|
+
|
|
169
173
|
/**
|
|
170
174
|
* Atmospheric scattering shader.
|
|
171
175
|
*
|
|
@@ -392,10 +396,6 @@ export declare const Axis: {
|
|
|
392
396
|
XYZ: Vector3;
|
|
393
397
|
};
|
|
394
398
|
|
|
395
|
-
export declare class BifurcatedStaircaseGeometry extends BufferGeometry {
|
|
396
|
-
constructor(stepWidth?: number, stepHeight?: number, stepDepth?: number, numStepsCentral?: number, numStepsBranch?: number, branchAngle?: number);
|
|
397
|
-
}
|
|
398
|
-
|
|
399
399
|
declare interface BloomTransitionOptions extends SceneTransitionFXOptions {
|
|
400
400
|
maxBloom?: number;
|
|
401
401
|
}
|
|
@@ -504,31 +504,19 @@ export declare enum BoxSide {
|
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
/**
|
|
507
|
-
*
|
|
508
|
-
*
|
|
507
|
+
* Build merged box geometries for the outer frame and diagonal lead cames.
|
|
508
|
+
* Diagonal bars are trimmed to the rectangular opening (segment clip, not stencil).
|
|
509
509
|
*/
|
|
510
|
-
export declare
|
|
511
|
-
constructor({ width, height, depth, }?: {
|
|
512
|
-
width?: number | undefined;
|
|
513
|
-
height?: number | undefined;
|
|
514
|
-
depth?: number | undefined;
|
|
515
|
-
});
|
|
516
|
-
}
|
|
510
|
+
export declare function buildDiamondLatticeParts({ width, height, centerY, grid, leadThickness: barT, leadDepth: barD, }: DiamondLatticePartOptions): BoxGeometry[];
|
|
517
511
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
brickColors?: number[];
|
|
527
|
-
colorVariation?: boolean;
|
|
528
|
-
positionVariation?: number;
|
|
529
|
-
rotationVariation?: number;
|
|
530
|
-
material?: Material;
|
|
531
|
-
}
|
|
512
|
+
/**
|
|
513
|
+
* Build merged box geometries for the outer frame and interior mullions.
|
|
514
|
+
* Orthogonal grid — no clipping required; counts guarantee full panes.
|
|
515
|
+
*/
|
|
516
|
+
export declare function buildGregorianLatticeParts({ width, height, centerY, cellsX, cellsY, mullionThickness: barT, mullionDepth: barD, }: GregorianLatticePartOptions): BoxGeometry[];
|
|
517
|
+
|
|
518
|
+
/** Outer frame bars — shared topology across lattice window openings. */
|
|
519
|
+
export declare function buildRingLatticeFrameParts({ width, height, centerY, frameThickness: barT, frameDepth: barD, }: RingLatticeFramePartOptions): BoxGeometry[];
|
|
532
520
|
|
|
533
521
|
export declare class BunsenBurner extends Group {
|
|
534
522
|
constructor();
|
|
@@ -606,74 +594,84 @@ export declare function calculateXFromSlopeIntercept(x1: number, y1: number, x2:
|
|
|
606
594
|
*/
|
|
607
595
|
export declare function calculateYFromSlopeIntercept(x1: number, y1: number, x2: number, y2: number, x: number): number;
|
|
608
596
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
* ```
|
|
618
|
-
*/
|
|
619
|
-
export declare function cameraDollyAnimation(camera: Camera, distance: number, duration: number, onComplete?: () => void): void;
|
|
597
|
+
export declare interface CameraClip {
|
|
598
|
+
readonly label: string;
|
|
599
|
+
readonly duration: number;
|
|
600
|
+
start(runtime: ClipRuntime): void;
|
|
601
|
+
update(runtime: ClipRuntime, dt: number): ClipPhase;
|
|
602
|
+
/** Called when playback is cancelled mid-clip. */
|
|
603
|
+
cancel?(runtime: ClipRuntime): void;
|
|
604
|
+
}
|
|
620
605
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
* camera,
|
|
628
|
-
* [
|
|
629
|
-
* new THREE.Vector3(0, 5, 5),
|
|
630
|
-
* new THREE.Vector3(0, 5, -25.5),
|
|
631
|
-
* new THREE.Vector3(-20.5, 5, 0),
|
|
632
|
-
* ],
|
|
633
|
-
* 6000,
|
|
634
|
-
* () => {
|
|
635
|
-
* console.log("Flythrough animation complete");
|
|
636
|
-
* }
|
|
637
|
-
* );
|
|
638
|
-
* ```
|
|
639
|
-
*/
|
|
640
|
-
export declare function cameraFlythroughAnimation(camera: Camera, waypoints: Vector3[], duration: number, onComplete?: () => void): void;
|
|
606
|
+
declare interface CameraClipTiming {
|
|
607
|
+
/** Duration in seconds. */
|
|
608
|
+
duration: number;
|
|
609
|
+
/** Progress easing for normalized time `t` in [0, 1]. Defaults to smoothstep. */
|
|
610
|
+
ease?: EasingFunction;
|
|
611
|
+
}
|
|
641
612
|
|
|
642
613
|
/**
|
|
643
|
-
*
|
|
614
|
+
* Single director for camera showcase clips — Unity demo-scene style playback.
|
|
644
615
|
*
|
|
645
|
-
*
|
|
646
|
-
*
|
|
647
|
-
*
|
|
648
|
-
* console.log("Orbit animation complete");
|
|
649
|
-
* });
|
|
650
|
-
* ```
|
|
651
|
-
*/
|
|
652
|
-
export declare function cameraOrbitAnimation(camera: Camera, target: Vector3, radius: number, duration: number, onComplete?: () => void): void;
|
|
653
|
-
|
|
654
|
-
/**
|
|
655
|
-
* The camera swings back and forth like a pendulum.
|
|
616
|
+
* One active clip at a time, driven by {@link update} with elapsed seconds (`dt`),
|
|
617
|
+
* not nested `requestAnimationFrame` loops. Disables OrbitControls while playing;
|
|
618
|
+
* re-enables and syncs `controls.target` to the clip focus on complete.
|
|
656
619
|
*
|
|
657
|
-
*
|
|
658
|
-
* ```
|
|
659
|
-
*
|
|
660
|
-
*
|
|
661
|
-
* });
|
|
662
|
-
* ```
|
|
663
|
-
*/
|
|
664
|
-
export declare function cameraPendulumAnimation(camera: Camera, center: Vector3, radius: number, duration: number, oscillations: number, onComplete?: () => void): void;
|
|
665
|
-
|
|
666
|
-
/**
|
|
667
|
-
* The camera spirals upward, perfect for revealing a large scene or structure.
|
|
620
|
+
* @example
|
|
621
|
+
* ```ts
|
|
622
|
+
* const playback = new CameraPlayback(camera, controls);
|
|
623
|
+
* playback.setRest(); // snapshot current pose as Reset target
|
|
668
624
|
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
625
|
+
* onFrame((dt) => {
|
|
626
|
+
* playback.update(dt);
|
|
627
|
+
* controls.update();
|
|
628
|
+
* renderer.render(scene, camera);
|
|
673
629
|
* });
|
|
630
|
+
*
|
|
631
|
+
* playback.play(createOrbitClip({ target, radius: 10, duration: 8 }));
|
|
674
632
|
* ```
|
|
675
633
|
*/
|
|
676
|
-
export declare
|
|
634
|
+
export declare class CameraPlayback {
|
|
635
|
+
private readonly camera;
|
|
636
|
+
private readonly controls?;
|
|
637
|
+
private active;
|
|
638
|
+
private elapsed;
|
|
639
|
+
private readonly focus;
|
|
640
|
+
private rest;
|
|
641
|
+
constructor(camera: PerspectiveCamera, controls?: OrbitControls | undefined);
|
|
642
|
+
/** Whether a clip is actively playing. */
|
|
643
|
+
get isPlaying(): boolean;
|
|
644
|
+
/** Snapshot the current camera + controls pose as the Reset/rest pose. */
|
|
645
|
+
setRest(): void;
|
|
646
|
+
/** Replace the rest pose without stopping playback. */
|
|
647
|
+
setRestSnapshot(snapshot: CameraSnapshot): void;
|
|
648
|
+
/**
|
|
649
|
+
* Begin a clip. Cancels any active clip first.
|
|
650
|
+
* OrbitControls are disabled until the clip completes or {@link stop} is called.
|
|
651
|
+
*/
|
|
652
|
+
play(clip: CameraClip): void;
|
|
653
|
+
/** Cancel the active clip and restore the rest pose. */
|
|
654
|
+
stop(): void;
|
|
655
|
+
/** Alias for {@link stop} — return to the rest pose. */
|
|
656
|
+
reset(): void;
|
|
657
|
+
/**
|
|
658
|
+
* Advance the active clip. Call from the scene `onFrame` callback each frame.
|
|
659
|
+
* @param dt Elapsed seconds since last frame.
|
|
660
|
+
*/
|
|
661
|
+
update(dt: number): void;
|
|
662
|
+
/** Release references; call from example dispose. */
|
|
663
|
+
dispose(): void;
|
|
664
|
+
private cancelActive;
|
|
665
|
+
private runtime;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/** Rest pose captured when playback is constructed or reset. */
|
|
669
|
+
export declare interface CameraSnapshot {
|
|
670
|
+
position: Vector3;
|
|
671
|
+
quaternion: Quaternion;
|
|
672
|
+
fov: number;
|
|
673
|
+
target: Vector3;
|
|
674
|
+
}
|
|
677
675
|
|
|
678
676
|
/**
|
|
679
677
|
* CameraTransition provides smooth animated transitions between perspective and orthographic cameras.
|
|
@@ -756,31 +754,6 @@ export declare interface CameraTransitionOptions {
|
|
|
756
754
|
onComplete?: () => void;
|
|
757
755
|
}
|
|
758
756
|
|
|
759
|
-
/**
|
|
760
|
-
* Add a slight random wobble for intensity or realism (e.g., during an explosion).
|
|
761
|
-
*
|
|
762
|
-
* Example:
|
|
763
|
-
* ```
|
|
764
|
-
* cameraWobbleAnimation(camera, 0.5, 1000, () => {
|
|
765
|
-
* console.log("Wobble animation complete");
|
|
766
|
-
* });
|
|
767
|
-
* ```
|
|
768
|
-
*/
|
|
769
|
-
export declare function cameraWobbleAnimation(camera: Camera, intensity: number, duration: number, onComplete?: () => void): void;
|
|
770
|
-
|
|
771
|
-
/**
|
|
772
|
-
* The camera smoothly zooms in toward a target, focusing attention on a specific point,
|
|
773
|
-
* and resets to its original FOV after completion.
|
|
774
|
-
*
|
|
775
|
-
* Example:
|
|
776
|
-
* ```
|
|
777
|
-
* cameraZoomInAnimation(camera, new THREE.Vector3(0, 0, 0), 120, 75, 2000, () => {
|
|
778
|
-
* console.log("Zoom in animation complete");
|
|
779
|
-
* });
|
|
780
|
-
* ```
|
|
781
|
-
*/
|
|
782
|
-
export declare function cameraZoomInAnimation(camera: PerspectiveCamera, target: Vector3, startFov: number, endFov: number, duration: number, onComplete?: () => void): void;
|
|
783
|
-
|
|
784
757
|
/**
|
|
785
758
|
* Material indices
|
|
786
759
|
* 0: Stick
|
|
@@ -821,6 +794,8 @@ export declare class CandleGeometry extends BufferGeometry {
|
|
|
821
794
|
*/
|
|
822
795
|
export declare const capHeightFromRadius: (radius: number, thetaLength: number) => number;
|
|
823
796
|
|
|
797
|
+
export declare function captureSnapshot(camera: PerspectiveCamera, controls?: OrbitControls): CameraSnapshot;
|
|
798
|
+
|
|
824
799
|
/**
|
|
825
800
|
* Calculate the width of a spherical cap.
|
|
826
801
|
* w = 2 * R * sin(thetaLength)
|
|
@@ -887,6 +862,23 @@ export declare function centerObjectGeometry<T extends Object3D>(object: T, targ
|
|
|
887
862
|
*/
|
|
888
863
|
export declare const checkerboardTexture: (size: number) => DataTexture;
|
|
889
864
|
|
|
865
|
+
export declare type ClipPhase = "running" | "complete";
|
|
866
|
+
|
|
867
|
+
/** Per-frame mutable state shared with the active clip. */
|
|
868
|
+
export declare interface ClipRuntime {
|
|
869
|
+
camera: PerspectiveCamera;
|
|
870
|
+
controls: OrbitControls | null;
|
|
871
|
+
/** Seconds elapsed in the active clip. */
|
|
872
|
+
elapsed: number;
|
|
873
|
+
/** Clip duration in seconds. */
|
|
874
|
+
duration: number;
|
|
875
|
+
/** Look-at point the clip is focused on — synced to OrbitControls on complete. */
|
|
876
|
+
focus: Vector3;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
/** Clip a segment to an axis-aligned rectangle; returns endpoints inside the opening. */
|
|
880
|
+
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
|
+
|
|
890
882
|
export declare const ColorPalette: {
|
|
891
883
|
CADMIUM_RED: number;
|
|
892
884
|
CARDINAL_RED: number;
|
|
@@ -959,22 +951,6 @@ export declare const ColorPalette: {
|
|
|
959
951
|
TITANIUM_WHITE: number;
|
|
960
952
|
};
|
|
961
953
|
|
|
962
|
-
/**
|
|
963
|
-
* Creates an instanced mesh brick wall with running bond pattern.
|
|
964
|
-
*
|
|
965
|
-
* @example
|
|
966
|
-
* ```ts
|
|
967
|
-
* const wall = createBrickWall({
|
|
968
|
-
* wallWidth: 10,
|
|
969
|
-
* wallHeight: 8,
|
|
970
|
-
* brickColors: [0x8b4513, 0xa0522d, 0x6b3410],
|
|
971
|
-
* colorVariation: true
|
|
972
|
-
* });
|
|
973
|
-
* scene.add(wall);
|
|
974
|
-
* ```
|
|
975
|
-
*/
|
|
976
|
-
export declare function createBrickWall({ wallWidth, wallHeight, brickWidth, brickHeight, brickDepth, mortarGap, offsetPattern, brickColors, colorVariation, positionVariation, rotationVariation, material, }?: BrickWallOptions): InstancedMesh;
|
|
977
|
-
|
|
978
954
|
/**
|
|
979
955
|
* Function to create cubic Bezier curve points
|
|
980
956
|
*
|
|
@@ -1010,6 +986,9 @@ export declare const createCubicCurvePoints: (start: Vector2, control1: Vector2,
|
|
|
1010
986
|
*/
|
|
1011
987
|
export declare const createDampedCurvePoints: (start: Vector2, end: Vector2, damping: number, segments?: number) => Vector2[];
|
|
1012
988
|
|
|
989
|
+
/** Dolly in or out along the current view direction. */
|
|
990
|
+
export declare function createDollyClip(options: DollyClipOptions): CameraClip;
|
|
991
|
+
|
|
1013
992
|
/**
|
|
1014
993
|
* Function to create exponential curve points
|
|
1015
994
|
*
|
|
@@ -1028,6 +1007,9 @@ export declare const createDampedCurvePoints: (start: Vector2, end: Vector2, dam
|
|
|
1028
1007
|
*/
|
|
1029
1008
|
export declare const createExponentialCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
1030
1009
|
|
|
1010
|
+
/** Waypoint tour through a sequence of positions. */
|
|
1011
|
+
export declare function createFlythroughClip(options: FlythroughClipOptions): CameraClip;
|
|
1012
|
+
|
|
1031
1013
|
/**
|
|
1032
1014
|
* Hexagonal tile pattern factory with density control.
|
|
1033
1015
|
*
|
|
@@ -1084,6 +1066,15 @@ export declare function createHexagonalTilesByRadius(options: HexagonalTileRadiu
|
|
|
1084
1066
|
*/
|
|
1085
1067
|
export declare const createLogarithmicCurvePoints: (start: Vector2, end: Vector2, base: number, factor: number, segments?: number) => Vector2[];
|
|
1086
1068
|
|
|
1069
|
+
/**
|
|
1070
|
+
* Four clipping planes for a rectangular opening (shadow + mesh clip).
|
|
1071
|
+
* Fragments are discarded when `dot(normal, position) > constant`.
|
|
1072
|
+
*/
|
|
1073
|
+
export declare function createOpeningClippingPlanes(width: number, height: number, centerY?: number): Plane[];
|
|
1074
|
+
|
|
1075
|
+
/** Circle the scene — showcase reel orbit. */
|
|
1076
|
+
export declare function createOrbitClip(options: OrbitClipOptions): CameraClip;
|
|
1077
|
+
|
|
1087
1078
|
/**
|
|
1088
1079
|
* Function to create parabolic curve points
|
|
1089
1080
|
*
|
|
@@ -1103,6 +1094,12 @@ export declare const createLogarithmicCurvePoints: (start: Vector2, end: Vector2
|
|
|
1103
1094
|
*/
|
|
1104
1095
|
export declare const createParabolicCurvePoints: (start: Vector2, end: Vector2, a: number, b: number, c: number, segments?: number) => Vector2[];
|
|
1105
1096
|
|
|
1097
|
+
/**
|
|
1098
|
+
* Atmospheric focus drift — slow Ken Burns sway while locked on a subject.
|
|
1099
|
+
* Not a full orbit; subtle back-and-forth for mood and screen capture.
|
|
1100
|
+
*/
|
|
1101
|
+
export declare function createPendulumClip(options: PendulumClipOptions): CameraClip;
|
|
1102
|
+
|
|
1106
1103
|
/**
|
|
1107
1104
|
* Generates vertices for two triangles based upon a quad.
|
|
1108
1105
|
*
|
|
@@ -1173,6 +1170,17 @@ p2: [number, number, number], p3: [number, number, number], p4: [number, number,
|
|
|
1173
1170
|
*/
|
|
1174
1171
|
export declare const createQuadraticCurvePoints: (start: Vector2, control: Vector2, end: Vector2, segments?: number) => Vector2[];
|
|
1175
1172
|
|
|
1173
|
+
/**
|
|
1174
|
+
* Create a random source.
|
|
1175
|
+
*
|
|
1176
|
+
* - **No seed** — wraps `Math.random()`. Unique every runtime; default for examples.
|
|
1177
|
+
* - **With seed** — {@link mulberry32} stream. Same seed ⇒ same sequence.
|
|
1178
|
+
*/
|
|
1179
|
+
export declare function createRandom(seed?: number): RandomSource;
|
|
1180
|
+
|
|
1181
|
+
/** Hollow square profile extruded for one lattice ring (local XY, facing +Z). */
|
|
1182
|
+
export declare function createRingLatticeGeometry(outer: number, wall: number, depth: number): ExtrudeGeometry;
|
|
1183
|
+
|
|
1176
1184
|
/**
|
|
1177
1185
|
* Function to create sigmoid curve points
|
|
1178
1186
|
*
|
|
@@ -1189,6 +1197,23 @@ export declare const createQuadraticCurvePoints: (start: Vector2, control: Vecto
|
|
|
1189
1197
|
*/
|
|
1190
1198
|
export declare const createSigmoidCurvePoints: (start: Vector2, end: Vector2, a: number, segments?: number) => Vector2[];
|
|
1191
1199
|
|
|
1200
|
+
/**
|
|
1201
|
+
* Scene-transition spiral — orbit upward while looking down at the scene.
|
|
1202
|
+
* Camera rises and optionally widens its orbit; `lookAt` stays on the ground
|
|
1203
|
+
* target so the view pitches into a bird's-eye survey (not a horizontal orbit).
|
|
1204
|
+
*/
|
|
1205
|
+
export declare function createSpiralClip(options: SpiralClipOptions): CameraClip;
|
|
1206
|
+
|
|
1207
|
+
/**
|
|
1208
|
+
* Impact wobble — short head-shake / recovery shake (gameplay feedback).
|
|
1209
|
+
* Decaying sinusoidal offset, not random noise. For showcase orbit rigs use
|
|
1210
|
+
* {@link createPendulumClip} instead.
|
|
1211
|
+
*/
|
|
1212
|
+
export declare function createWobbleClip(options: WobbleClipOptions): CameraClip;
|
|
1213
|
+
|
|
1214
|
+
/** Focus punch — smooth FOV narrow toward a target. Restores FOV on cancel; keeps end FOV on complete. */
|
|
1215
|
+
export declare function createZoomClip(options: ZoomClipOptions): CameraClip;
|
|
1216
|
+
|
|
1192
1217
|
export declare const crossfadeShader: {
|
|
1193
1218
|
uniforms: {
|
|
1194
1219
|
tDiffuseA: {
|
|
@@ -1297,6 +1322,22 @@ export declare interface DaySkyUniforms {
|
|
|
1297
1322
|
bottomColor: Uniform<Color>;
|
|
1298
1323
|
}
|
|
1299
1324
|
|
|
1325
|
+
/**
|
|
1326
|
+
* Derive an independent sub-stream seed from a master seed and domain salt.
|
|
1327
|
+
*
|
|
1328
|
+
* XOR the salt before mixing so each subsystem gets its own mulberry32 stream
|
|
1329
|
+
* without sequential `seed + 1` collision risk. Use stable hex constants per
|
|
1330
|
+
* domain (`0x101` books, `0x202` fog, `0x303` windows, …).
|
|
1331
|
+
*
|
|
1332
|
+
* @example
|
|
1333
|
+
* ```ts
|
|
1334
|
+
* const master = 1337;
|
|
1335
|
+
* const bookRng = createRandom(deriveSubSeed(master, 0x101));
|
|
1336
|
+
* const fogRng = createRandom(deriveSubSeed(master, 0x202));
|
|
1337
|
+
* ```
|
|
1338
|
+
*/
|
|
1339
|
+
export declare function deriveSubSeed(masterSeed: number, salt: number): number;
|
|
1340
|
+
|
|
1300
1341
|
/**
|
|
1301
1342
|
* Material indices:
|
|
1302
1343
|
* 0. Desk surface
|
|
@@ -1315,41 +1356,117 @@ export declare class DeskGeometry extends BufferGeometry {
|
|
|
1315
1356
|
constructor();
|
|
1316
1357
|
}
|
|
1317
1358
|
|
|
1359
|
+
/** Derive uniform cell size from center-to-corner periods. Legacy — prefer grid counts. */
|
|
1360
|
+
export declare function diamondLatticeCellFromCount(width: number, height: number, cellsAcross: number): number;
|
|
1361
|
+
|
|
1362
|
+
/**
|
|
1363
|
+
* Perpendicular distance from the window center to a corner along the diamond
|
|
1364
|
+
* grid axis (45° families share this spacing when square).
|
|
1365
|
+
*/
|
|
1366
|
+
export declare function diamondLatticeCornerSpan(width: number, height: number): number;
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* Axis-aligned diamond lattice — north/south vertices share a vertical axis,
|
|
1370
|
+
* east/west share a horizontal axis (`<>` not `><`).
|
|
1371
|
+
*/
|
|
1372
|
+
export declare interface DiamondLatticeGrid {
|
|
1373
|
+
/** Horizontal half-diagonal of each quarrel (east–west point spacing). */
|
|
1374
|
+
a: number;
|
|
1375
|
+
/** Vertical half-diagonal of each quarrel (north–south point spacing). */
|
|
1376
|
+
b: number;
|
|
1377
|
+
/**
|
|
1378
|
+
* Came angle from +X; the two families run at `+angle` and `−angle`.
|
|
1379
|
+
* Equals 45° only when `a === b`.
|
|
1380
|
+
*/
|
|
1381
|
+
angle: number;
|
|
1382
|
+
/** Shared perpendicular spacing for both came families. */
|
|
1383
|
+
spacing: number;
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1318
1386
|
/**
|
|
1319
|
-
*
|
|
1387
|
+
* Build an axis-aligned diamond grid from cell counts.
|
|
1320
1388
|
*
|
|
1321
|
-
*
|
|
1322
|
-
*
|
|
1323
|
-
*
|
|
1324
|
-
* 2: Exterior walls
|
|
1389
|
+
* `cellsX` quarrels span the width (east–west); `cellsY` span the height.
|
|
1390
|
+
* Equal counts on a square opening yield square diamonds; `5×10` elongates them
|
|
1391
|
+
* vertically while keeping north/south tips on the same vertical axis.
|
|
1325
1392
|
*/
|
|
1326
|
-
export declare
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1393
|
+
export declare function diamondLatticeGridFromCells(width: number, height: number, cellsX: number, cellsY: number): DiamondLatticeGrid;
|
|
1394
|
+
|
|
1395
|
+
declare interface DiamondLatticePartOptions {
|
|
1396
|
+
width: number;
|
|
1397
|
+
height: number;
|
|
1398
|
+
/** Center Y of the opening in local space. Defaults to `0`. */
|
|
1399
|
+
centerY?: number;
|
|
1400
|
+
grid: DiamondLatticeGrid;
|
|
1401
|
+
leadThickness: number;
|
|
1402
|
+
leadDepth: number;
|
|
1336
1403
|
}
|
|
1337
1404
|
|
|
1405
|
+
/** @deprecated Use {@link diamondLatticeGridFromCells}. */
|
|
1406
|
+
export declare function diamondLatticeSpacingFromGrid(width: number, height: number, cellsX: number, cellsY: number): {
|
|
1407
|
+
plus45: number;
|
|
1408
|
+
minus45: number;
|
|
1409
|
+
};
|
|
1410
|
+
|
|
1338
1411
|
/**
|
|
1339
|
-
*
|
|
1412
|
+
* Diamond lattice window — diagonal lead cames with axis-aligned quarrels (`<>`).
|
|
1340
1413
|
*
|
|
1341
|
-
*
|
|
1342
|
-
* 0
|
|
1343
|
-
* 1: Floor
|
|
1344
|
-
* 2: Exterior walls
|
|
1414
|
+
* Local frame: centered on the opening, XY plane facing +Z. Lead and optional
|
|
1415
|
+
* glass share `z = 0`. Pair with a scene-owned backing plane behind the wall.
|
|
1345
1416
|
*/
|
|
1346
|
-
export declare class
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
});
|
|
1417
|
+
export declare class DiamondLatticeWindow extends Group {
|
|
1418
|
+
readonly lattice: Mesh<DiamondLatticeWindowGeometry, MeshStandardMaterial>;
|
|
1419
|
+
readonly glass?: Mesh<PlaneGeometry, MeshPhysicalMaterial>;
|
|
1420
|
+
readonly cellsX: number;
|
|
1421
|
+
readonly cellsY: number;
|
|
1422
|
+
readonly fittedGrid: DiamondLatticeGrid;
|
|
1423
|
+
constructor({ leadColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, ...geometryOptions }?: DiamondLatticeWindowOptions);
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
/**
|
|
1427
|
+
* Diamond lattice window — outer frame plus diagonal cames.
|
|
1428
|
+
* Quarrel tips align to the vertical and horizontal axes (`<>`).
|
|
1429
|
+
* Built in the XY plane facing +Z.
|
|
1430
|
+
*
|
|
1431
|
+
* Glass is a separate pane on {@link DiamondLatticeWindow} — this geometry is
|
|
1432
|
+
* lead and frame only (casts shadow; glass typically does not).
|
|
1433
|
+
*/
|
|
1434
|
+
export declare class DiamondLatticeWindowGeometry extends BufferGeometry {
|
|
1435
|
+
readonly cellsX: number;
|
|
1436
|
+
readonly cellsY: number;
|
|
1437
|
+
readonly fittedGrid: DiamondLatticeGrid;
|
|
1438
|
+
constructor({ width, height, leadThickness, leadDepth, cellsX, cellsY, centerY, }?: DiamondLatticeWindowGeometryOptions);
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
declare interface DiamondLatticeWindowGeometryOptions {
|
|
1442
|
+
/** Opening width (world units). */
|
|
1443
|
+
width?: number;
|
|
1444
|
+
/** Opening height (world units). */
|
|
1445
|
+
height?: number;
|
|
1446
|
+
/** Lead came thickness (cross-section). Defaults to `0.055`. */
|
|
1447
|
+
leadThickness?: number;
|
|
1448
|
+
/** Lead depth (Z extent). Defaults to `0.11`. */
|
|
1449
|
+
leadDepth?: number;
|
|
1450
|
+
/** Quarrels spanning east–west across the opening. Defaults to `10`. */
|
|
1451
|
+
cellsX?: number;
|
|
1452
|
+
/** Quarrels spanning north–south across the opening. Defaults to `10`. */
|
|
1453
|
+
cellsY?: number;
|
|
1454
|
+
/** Vertical center of the opening in local geometry space. Defaults to `0`. */
|
|
1455
|
+
centerY?: number;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
declare interface DiamondLatticeWindowOptions extends DiamondLatticeWindowGeometryOptions {
|
|
1459
|
+
/** Lead + outer frame tint. Defaults to `#0c0f14`. */
|
|
1460
|
+
leadColor?: ColorRepresentation;
|
|
1461
|
+
/**
|
|
1462
|
+
* Optional glass pane coplanar with the lattice (same Z center).
|
|
1463
|
+
* Mad-science uses an emissive sky mesh in the scene instead.
|
|
1464
|
+
*/
|
|
1465
|
+
glass?: boolean;
|
|
1466
|
+
glassColor?: ColorRepresentation;
|
|
1467
|
+
/** Glass emissive for moonlit / storm backlight. Defaults to off. */
|
|
1468
|
+
glassEmissive?: ColorRepresentation;
|
|
1469
|
+
glassEmissiveIntensity?: number;
|
|
1353
1470
|
}
|
|
1354
1471
|
|
|
1355
1472
|
/**
|
|
@@ -1432,6 +1549,12 @@ export declare const Direction: {
|
|
|
1432
1549
|
*/
|
|
1433
1550
|
export declare const displacementBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, direction?: Vector3, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
1434
1551
|
|
|
1552
|
+
export declare interface DollyClipOptions extends CameraClipTiming {
|
|
1553
|
+
/** Distance along view axis — positive pulls back, negative pushes in. */
|
|
1554
|
+
distance: number;
|
|
1555
|
+
ease?: EasingFunction;
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1435
1558
|
/**
|
|
1436
1559
|
* Easing functions for interpolating values over time.
|
|
1437
1560
|
*
|
|
@@ -1732,6 +1855,12 @@ export declare function findClosestColorChannelWise(inputColor: number, dataset:
|
|
|
1732
1855
|
*/
|
|
1733
1856
|
export declare function findClosestPoint(point: Vector3, mesh: Mesh): Vector3;
|
|
1734
1857
|
|
|
1858
|
+
/**
|
|
1859
|
+
* Snap cell size so diagonal cames align symmetrically at all four frame edges.
|
|
1860
|
+
* Legacy single-spacing helper — prefer {@link diamondLatticeGridFromCells}.
|
|
1861
|
+
*/
|
|
1862
|
+
export declare function fitDiamondLatticeCell(width: number, height: number, preferredCell: number): number;
|
|
1863
|
+
|
|
1735
1864
|
export declare class Flame extends Mesh<FlameGeometry, MeshStandardMaterial> {
|
|
1736
1865
|
constructor({ height, radius, segmentsU, segmentsV }?: {
|
|
1737
1866
|
height?: number | undefined;
|
|
@@ -1810,6 +1939,13 @@ export declare class FlorenceFlaskGeometry extends BufferGeometry {
|
|
|
1810
1939
|
constructor();
|
|
1811
1940
|
}
|
|
1812
1941
|
|
|
1942
|
+
export declare interface FlythroughClipOptions extends CameraClipTiming {
|
|
1943
|
+
waypoints: Vector3[];
|
|
1944
|
+
/** Optional look-at points per waypoint; defaults to next waypoint. */
|
|
1945
|
+
lookAt?: Vector3[];
|
|
1946
|
+
ease?: EasingFunction;
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1813
1949
|
export declare class Gear extends Mesh {
|
|
1814
1950
|
constructor({ sides, innerRadius, outerRadius, holeSides, holeRadius, depth }?: {
|
|
1815
1951
|
sides?: number | undefined;
|
|
@@ -1876,6 +2012,86 @@ export declare interface GlowHaloOptions {
|
|
|
1876
2012
|
opacity?: number;
|
|
1877
2013
|
}
|
|
1878
2014
|
|
|
2015
|
+
/** Pane dimensions derived from opening size and cell counts. */
|
|
2016
|
+
export declare interface GregorianLatticeGrid {
|
|
2017
|
+
/** Width of each rectangular pane. */
|
|
2018
|
+
paneWidth: number;
|
|
2019
|
+
/** Height of each rectangular pane. */
|
|
2020
|
+
paneHeight: number;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
/**
|
|
2024
|
+
* Derive pane size from cell counts.
|
|
2025
|
+
*
|
|
2026
|
+
* `cellsX` panes span the opening width; `cellsY` span the height. Mullions
|
|
2027
|
+
* divide the opening evenly so every segment is a full rectangle.
|
|
2028
|
+
*/
|
|
2029
|
+
export declare function gregorianLatticeGridFromCells(width: number, height: number, cellsX: number, cellsY: number): GregorianLatticeGrid;
|
|
2030
|
+
|
|
2031
|
+
declare interface GregorianLatticePartOptions {
|
|
2032
|
+
width: number;
|
|
2033
|
+
height: number;
|
|
2034
|
+
/** Center Y of the opening in local space. Defaults to `0`. */
|
|
2035
|
+
centerY?: number;
|
|
2036
|
+
cellsX: number;
|
|
2037
|
+
cellsY: number;
|
|
2038
|
+
mullionThickness: number;
|
|
2039
|
+
mullionDepth: number;
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
/**
|
|
2043
|
+
* Gregorian lattice window — rectangular pane grid with orthogonal mullions.
|
|
2044
|
+
*
|
|
2045
|
+
* Local frame: centered on the opening, XY plane facing +Z. Mullions and
|
|
2046
|
+
* optional glass share `z = 0`.
|
|
2047
|
+
*/
|
|
2048
|
+
export declare class GregorianLatticeWindow extends Group {
|
|
2049
|
+
readonly mullions: Mesh<GregorianLatticeWindowGeometry, MeshStandardMaterial>;
|
|
2050
|
+
readonly glass?: Mesh<PlaneGeometry, MeshPhysicalMaterial>;
|
|
2051
|
+
readonly cellsX: number;
|
|
2052
|
+
readonly cellsY: number;
|
|
2053
|
+
readonly fittedGrid: GregorianLatticeGrid;
|
|
2054
|
+
constructor({ mullionColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, ...geometryOptions }?: GregorianLatticeWindowOptions);
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
/**
|
|
2058
|
+
* Gregorian lattice window — outer frame plus orthogonal mullions in a rectangular grid.
|
|
2059
|
+
* Built in the XY plane facing +Z.
|
|
2060
|
+
*/
|
|
2061
|
+
export declare class GregorianLatticeWindowGeometry extends BufferGeometry {
|
|
2062
|
+
readonly cellsX: number;
|
|
2063
|
+
readonly cellsY: number;
|
|
2064
|
+
readonly fittedGrid: GregorianLatticeGrid;
|
|
2065
|
+
constructor({ width, height, mullionThickness, mullionDepth, cellsX, cellsY, centerY, }?: GregorianLatticeWindowGeometryOptions);
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
declare interface GregorianLatticeWindowGeometryOptions {
|
|
2069
|
+
/** Opening width (world units). */
|
|
2070
|
+
width?: number;
|
|
2071
|
+
/** Opening height (world units). */
|
|
2072
|
+
height?: number;
|
|
2073
|
+
/** Mullion thickness (cross-section). Defaults to `0.055`. */
|
|
2074
|
+
mullionThickness?: number;
|
|
2075
|
+
/** Mullion depth (Z extent). Defaults to `0.11`. */
|
|
2076
|
+
mullionDepth?: number;
|
|
2077
|
+
/** Rectangular panes across the opening width. Defaults to `4`. */
|
|
2078
|
+
cellsX?: number;
|
|
2079
|
+
/** Rectangular panes up the opening height. Defaults to `6`. */
|
|
2080
|
+
cellsY?: number;
|
|
2081
|
+
/** Vertical center of the opening in local geometry space. Defaults to `0`. */
|
|
2082
|
+
centerY?: number;
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
declare interface GregorianLatticeWindowOptions extends GregorianLatticeWindowGeometryOptions {
|
|
2086
|
+
/** Frame + mullion tint. Defaults to `#5c4033` (wood). */
|
|
2087
|
+
mullionColor?: ColorRepresentation;
|
|
2088
|
+
/** Optional glass pane coplanar with the mullions (same Z center). */
|
|
2089
|
+
glass?: boolean;
|
|
2090
|
+
glassColor?: ColorRepresentation;
|
|
2091
|
+
glassEmissive?: ColorRepresentation;
|
|
2092
|
+
glassEmissiveIntensity?: number;
|
|
2093
|
+
}
|
|
2094
|
+
|
|
1879
2095
|
/**
|
|
1880
2096
|
* Creeping ground mist — soft horizontal cards drifting above the floor.
|
|
1881
2097
|
* Interior patches wrap toroidally within `area`; optional perimeter patches
|
|
@@ -1906,7 +2122,7 @@ export declare interface GroundFogEffectOptions {
|
|
|
1906
2122
|
* horizons opposite the camera. Defaults to `0` (interior only).
|
|
1907
2123
|
*/
|
|
1908
2124
|
perimeterCount?: number;
|
|
1909
|
-
/** Half-extent of the inner bounded plot (fence, wall,
|
|
2125
|
+
/** Half-extent of the inner bounded plot (fence, wall, scene edge, etc.). Defaults to `12`. */
|
|
1910
2126
|
plotHalf?: number;
|
|
1911
2127
|
/** Terrain half-extent; perimeter cards spill outward toward this edge. Defaults to `16`. */
|
|
1912
2128
|
terrainHalf?: number;
|
|
@@ -1927,6 +2143,90 @@ export declare interface GroundFogEffectOptions {
|
|
|
1927
2143
|
heightAt?: (x: number, z: number) => number;
|
|
1928
2144
|
}
|
|
1929
2145
|
|
|
2146
|
+
/**
|
|
2147
|
+
* Hanging wrought-iron lantern — open cage struts around a solid emissive
|
|
2148
|
+
* inner octahedron (glass-pane lamp). Mount, cage, and lamp use separate
|
|
2149
|
+
* material groups. Pair {@link GlowHalo} and {@link FlameFlickerEffect} at
|
|
2150
|
+
* `cageCenterY` for bloom and flicker.
|
|
2151
|
+
*
|
|
2152
|
+
* Local frame: origin at the chain top (hang point).
|
|
2153
|
+
*/
|
|
2154
|
+
export declare class HangingLantern extends Mesh<HangingLanternGeometry, MeshStandardMaterial[]> {
|
|
2155
|
+
readonly drop: number;
|
|
2156
|
+
readonly cageCenterY: number;
|
|
2157
|
+
constructor({ color, mountColor, cageColor, lampColor, lampEmissiveIntensity, lampOpacity, inner, ...geometryOptions }?: HangingLanternOptions);
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
/**
|
|
2161
|
+
* Wrought-iron hanging lantern frame — chain, cap, and open octahedron cage
|
|
2162
|
+
* built from edge struts.
|
|
2163
|
+
*
|
|
2164
|
+
* Material groups: `0` mount (chain + cap), `1` cage struts, `2` inner lamp
|
|
2165
|
+
* (solid octahedron).
|
|
2166
|
+
*
|
|
2167
|
+
* Local frame: origin at the chain top (hang point). The cage top vertex
|
|
2168
|
+
* attaches at the cap center, optionally lowered by `cageGap`.
|
|
2169
|
+
*/
|
|
2170
|
+
export declare class HangingLanternGeometry extends BufferGeometry {
|
|
2171
|
+
readonly drop: number;
|
|
2172
|
+
readonly chainWidth: number;
|
|
2173
|
+
readonly capWidth: number;
|
|
2174
|
+
readonly capHeight: number;
|
|
2175
|
+
readonly capDepth: number;
|
|
2176
|
+
readonly capOffset: number;
|
|
2177
|
+
readonly cageRadius: number;
|
|
2178
|
+
readonly cageStretch: number;
|
|
2179
|
+
readonly cageGap: number;
|
|
2180
|
+
readonly cageBarWidth: number;
|
|
2181
|
+
readonly innerScale: number;
|
|
2182
|
+
readonly inner: boolean;
|
|
2183
|
+
/** Y of the cage center in local space (negative, below the hang point). */
|
|
2184
|
+
readonly cageCenterY: number;
|
|
2185
|
+
constructor({ drop, chainWidth, capWidth, capHeight, capDepth, capOffset, cageRadius, cageStretch, cageGap, cageBarWidth, innerScale, inner, }?: HangingLanternGeometryOptions);
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2188
|
+
export declare interface HangingLanternGeometryOptions {
|
|
2189
|
+
/** Chain length from the hang point. Defaults to `3`. */
|
|
2190
|
+
drop?: number;
|
|
2191
|
+
/** Chain link cross-section. Defaults to `0.05`. */
|
|
2192
|
+
chainWidth?: number;
|
|
2193
|
+
/** Cap width (X). Defaults to `0.18`. */
|
|
2194
|
+
capWidth?: number;
|
|
2195
|
+
/** Cap height (Y). Defaults to `0.16`. */
|
|
2196
|
+
capHeight?: number;
|
|
2197
|
+
/** Cap depth (Z). Defaults to `0.18`. */
|
|
2198
|
+
capDepth?: number;
|
|
2199
|
+
/** Cap center offset below the chain bottom. Defaults to `0.02`. */
|
|
2200
|
+
capOffset?: number;
|
|
2201
|
+
/** Cage vertex radius before stretch. Defaults to `0.42`. */
|
|
2202
|
+
cageRadius?: number;
|
|
2203
|
+
/** Vertical stretch on the cage. Defaults to `1.4`. */
|
|
2204
|
+
cageStretch?: number;
|
|
2205
|
+
/** Extra downward offset below the cap-center cage attach. Defaults to `0`. */
|
|
2206
|
+
cageGap?: number;
|
|
2207
|
+
/** Cage strut thickness. Defaults to `0.03`. */
|
|
2208
|
+
cageBarWidth?: number;
|
|
2209
|
+
/** Inner lamp scale relative to the cage (inset to sit inside struts). Defaults to `0.96`. */
|
|
2210
|
+
innerScale?: number;
|
|
2211
|
+
/** Include the solid inner octahedron lamp volume. Defaults to `true`. */
|
|
2212
|
+
inner?: boolean;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
export declare interface HangingLanternOptions extends HangingLanternGeometryOptions {
|
|
2216
|
+
/** Wrought-iron tint for mount and cage. Defaults to `#171a1f`. */
|
|
2217
|
+
color?: ColorRepresentation;
|
|
2218
|
+
/** Mount iron tint (chain + cap). Defaults to `color`. */
|
|
2219
|
+
mountColor?: ColorRepresentation;
|
|
2220
|
+
/** Cage strut tint. Defaults to `color`. */
|
|
2221
|
+
cageColor?: ColorRepresentation;
|
|
2222
|
+
/** Inner lamp tint (emissive octahedron). Defaults to `#ffb45a`. */
|
|
2223
|
+
lampColor?: ColorRepresentation;
|
|
2224
|
+
/** Inner lamp emissive strength. Defaults to `1.4`. */
|
|
2225
|
+
lampEmissiveIntensity?: number;
|
|
2226
|
+
/** Inner lamp opacity for a glass-pane read. Defaults to `0.88`. */
|
|
2227
|
+
lampOpacity?: number;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
1930
2230
|
export declare class Heart extends Mesh {
|
|
1931
2231
|
constructor({ size, width, height, tipDepth, depth }?: {
|
|
1932
2232
|
size?: number | undefined;
|
|
@@ -2062,8 +2362,110 @@ export declare class JarGeometry extends BufferGeometry {
|
|
|
2062
2362
|
constructor();
|
|
2063
2363
|
}
|
|
2064
2364
|
|
|
2065
|
-
|
|
2066
|
-
|
|
2365
|
+
/**
|
|
2366
|
+
* Tabletop lantern — frame around an emissive glass body. Geometry only; add
|
|
2367
|
+
* {@link GlowHalo} and {@link FlameFlickerEffect} at `lampCenterY` in the
|
|
2368
|
+
* scene.
|
|
2369
|
+
*
|
|
2370
|
+
* Local frame: sits on the Y=0 plane.
|
|
2371
|
+
*/
|
|
2372
|
+
export declare class Lantern extends Mesh<LanternGeometry, MeshStandardMaterial[]> {
|
|
2373
|
+
readonly lampCenterY: number;
|
|
2374
|
+
constructor(heightOrOptions?: number | LanternOptions, baseWidth?: number);
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2377
|
+
/**
|
|
2378
|
+
* Tabletop lantern — wood/metal base, roof, and handle framing an emissive
|
|
2379
|
+
* glass body.
|
|
2380
|
+
*
|
|
2381
|
+
* Material groups: `0` frame (base + roof + handle), `1` glass body.
|
|
2382
|
+
*
|
|
2383
|
+
* Local frame: sits on the Y=0 plane; lamp center at `lampCenterY`.
|
|
2384
|
+
*/
|
|
2385
|
+
export declare class LanternGeometry extends BufferGeometry {
|
|
2386
|
+
readonly baseWidth: number;
|
|
2387
|
+
readonly bodyHeight: number;
|
|
2388
|
+
readonly baseHeight: number;
|
|
2389
|
+
readonly innerScale: number;
|
|
2390
|
+
readonly inner: boolean;
|
|
2391
|
+
readonly lampCenterY: number;
|
|
2392
|
+
constructor({ baseWidth, bodyHeight, baseHeight, roofHeight, roofRadius, glassRadiusScale, innerScale, handleRadius, handleTubeRadius, handleLift, segments, inner, }?: LanternGeometryOptions);
|
|
2393
|
+
}
|
|
2394
|
+
|
|
2395
|
+
export declare interface LanternGeometryOptions {
|
|
2396
|
+
/** Base / foot radius. Defaults to `0.5`. */
|
|
2397
|
+
baseWidth?: number;
|
|
2398
|
+
/** Glass body height. Defaults to `1.3`. */
|
|
2399
|
+
bodyHeight?: number;
|
|
2400
|
+
/** Base height. Defaults to `0.2`. */
|
|
2401
|
+
baseHeight?: number;
|
|
2402
|
+
/** Roof cone height. Defaults to `0.5`. */
|
|
2403
|
+
roofHeight?: number;
|
|
2404
|
+
/** Roof cone radius. Defaults to `baseWidth * 1.1`. */
|
|
2405
|
+
roofRadius?: number;
|
|
2406
|
+
/** Glass radius relative to `baseWidth`. Defaults to `0.9`. */
|
|
2407
|
+
glassRadiusScale?: number;
|
|
2408
|
+
/** Glass height inset relative to `bodyHeight`. Defaults to `0.96`. */
|
|
2409
|
+
innerScale?: number;
|
|
2410
|
+
/** Carry-handle major radius. Defaults to `baseWidth * 0.8`. */
|
|
2411
|
+
handleRadius?: number;
|
|
2412
|
+
/** Carry-handle tube radius. Defaults to `0.05`. */
|
|
2413
|
+
handleTubeRadius?: number;
|
|
2414
|
+
/** Gap above the roof to the handle center. Defaults to `0.35`. */
|
|
2415
|
+
handleLift?: number;
|
|
2416
|
+
/** Radial segments on round parts. Defaults to `8`. */
|
|
2417
|
+
segments?: number;
|
|
2418
|
+
/** Include the emissive glass body. Defaults to `true`. */
|
|
2419
|
+
inner?: boolean;
|
|
2420
|
+
}
|
|
2421
|
+
|
|
2422
|
+
export declare interface LanternOptions extends LanternGeometryOptions {
|
|
2423
|
+
/** Frame tint (base, roof, handle). Defaults to `#8b4513`. */
|
|
2424
|
+
color?: ColorRepresentation;
|
|
2425
|
+
/** Glass lamp tint. Defaults to `#ffd700`. */
|
|
2426
|
+
lampColor?: ColorRepresentation;
|
|
2427
|
+
/** Glass emissive strength. Defaults to `1.2`. */
|
|
2428
|
+
lampEmissiveIntensity?: number;
|
|
2429
|
+
/** Glass opacity. Defaults to `0.75`. */
|
|
2430
|
+
lampOpacity?: number;
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
/**
|
|
2434
|
+
* Folded autumn leaf prefab — {@link LeafGeometry} with flat-shaded double-sided
|
|
2435
|
+
* material matching the graveyard blowing-leaves look.
|
|
2436
|
+
*
|
|
2437
|
+
* Local frame: tip at +Y, base at −Y, fold rises along +Z.
|
|
2438
|
+
*/
|
|
2439
|
+
export declare class Leaf extends Mesh<LeafGeometry, MeshStandardMaterial> {
|
|
2440
|
+
readonly size: number;
|
|
2441
|
+
readonly lift: number;
|
|
2442
|
+
constructor({ color, ...geometryOptions }?: LeafOptions);
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
/**
|
|
2446
|
+
* Low-poly folded leaf — a pointed ellipse with a gently raised midrib so it
|
|
2447
|
+
* catches rim light instead of reading as a flat sliver. Spine vertices sit
|
|
2448
|
+
* slightly above the mirrored rim outline, giving a soft V cross-section under
|
|
2449
|
+
* flat shading.
|
|
2450
|
+
*
|
|
2451
|
+
* Local frame: tip at +Y, base at −Y, fold rises along +Z.
|
|
2452
|
+
*/
|
|
2453
|
+
export declare class LeafGeometry extends BufferGeometry {
|
|
2454
|
+
readonly size: number;
|
|
2455
|
+
readonly lift: number;
|
|
2456
|
+
constructor({ size, lift }?: LeafGeometryOptions);
|
|
2457
|
+
}
|
|
2458
|
+
|
|
2459
|
+
export declare interface LeafGeometryOptions {
|
|
2460
|
+
/** Overall leaf scale. Defaults to `0.13`. */
|
|
2461
|
+
size?: number;
|
|
2462
|
+
/** Midrib rise above the rim as a fraction of size. Defaults to `0.22`. */
|
|
2463
|
+
lift?: number;
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2466
|
+
export declare interface LeafOptions extends LeafGeometryOptions {
|
|
2467
|
+
/** Leaf tint. Defaults to `#a8702c`. */
|
|
2468
|
+
color?: ColorRepresentation;
|
|
2067
2469
|
}
|
|
2068
2470
|
|
|
2069
2471
|
export declare class LeverPanel extends Group {
|
|
@@ -2142,7 +2544,7 @@ export declare const LineEquations: {
|
|
|
2142
2544
|
* @param {number} [max=1] - Maximum value of the range.
|
|
2143
2545
|
* @returns {number} A random number between `min` and `max`, skewed towards `max`.
|
|
2144
2546
|
*/
|
|
2145
|
-
export declare function logarithmicRandomMax(exponent?: number, min?: number, max?: number): number;
|
|
2547
|
+
export declare function logarithmicRandomMax(exponent?: number, min?: number, max?: number, source?: RandomSource): number;
|
|
2146
2548
|
|
|
2147
2549
|
/**
|
|
2148
2550
|
* Generates a random number skewed towards the minimum value.
|
|
@@ -2154,10 +2556,56 @@ export declare function logarithmicRandomMax(exponent?: number, min?: number, ma
|
|
|
2154
2556
|
* @param {number} [max=1] - Maximum value of the range.
|
|
2155
2557
|
* @returns {number} A random number between `min` and `max`, skewed towards `min`.
|
|
2156
2558
|
*/
|
|
2157
|
-
export declare function logarithmicRandomMin(exponent?: number, min?: number, max?: number): number;
|
|
2559
|
+
export declare function logarithmicRandomMin(exponent?: number, min?: number, max?: number, source?: RandomSource): number;
|
|
2560
|
+
|
|
2561
|
+
/**
|
|
2562
|
+
* L-shaped staircase prefab — two flights with a square width × width landing.
|
|
2563
|
+
*/
|
|
2564
|
+
export declare class LShapedStaircase extends Mesh<LShapedStaircaseGeometry, MeshStandardMaterial> {
|
|
2565
|
+
readonly width: number;
|
|
2566
|
+
readonly riserHeight: number;
|
|
2567
|
+
readonly treadDepth: number;
|
|
2568
|
+
readonly stepsPerFlight: number;
|
|
2569
|
+
readonly landingSize: number;
|
|
2570
|
+
readonly flightRun: number;
|
|
2571
|
+
readonly totalHeight: number;
|
|
2572
|
+
constructor({ color, ...geometryOptions }?: LShapedStaircaseOptions);
|
|
2573
|
+
}
|
|
2158
2574
|
|
|
2575
|
+
/**
|
|
2576
|
+
* L-shaped staircase with a square landing (width × width) at the 90° turn.
|
|
2577
|
+
*
|
|
2578
|
+
* Local frame:
|
|
2579
|
+
* - First flight climbs +Z, centered on X = 0.
|
|
2580
|
+
* - Landing is a width² platform starting at the last tread (no cantilever over
|
|
2581
|
+
* the lower flight) and extending forward at the turn.
|
|
2582
|
+
* - Second flight climbs −X from the left edge of the landing.
|
|
2583
|
+
*/
|
|
2159
2584
|
export declare class LShapedStaircaseGeometry extends BufferGeometry {
|
|
2160
|
-
|
|
2585
|
+
readonly width: number;
|
|
2586
|
+
readonly riserHeight: number;
|
|
2587
|
+
readonly treadDepth: number;
|
|
2588
|
+
readonly stepsPerFlight: number;
|
|
2589
|
+
readonly landingSize: number;
|
|
2590
|
+
readonly flightRun: number;
|
|
2591
|
+
readonly totalHeight: number;
|
|
2592
|
+
constructor({ width, riserHeight, treadDepth, stepsPerFlight, }?: LShapedStaircaseGeometryOptions);
|
|
2593
|
+
}
|
|
2594
|
+
|
|
2595
|
+
export declare interface LShapedStaircaseGeometryOptions {
|
|
2596
|
+
/** Stair width (tread left–right extent). Defaults to `2`. */
|
|
2597
|
+
width?: number;
|
|
2598
|
+
/** Vertical rise per step (riser). Defaults to `0.3`. */
|
|
2599
|
+
riserHeight?: number;
|
|
2600
|
+
/** Horizontal run per step (tread depth). Defaults to `0.5`. */
|
|
2601
|
+
treadDepth?: number;
|
|
2602
|
+
/** Steps in each flight (before and after the landing). Defaults to `5`. */
|
|
2603
|
+
stepsPerFlight?: number;
|
|
2604
|
+
}
|
|
2605
|
+
|
|
2606
|
+
export declare interface LShapedStaircaseOptions extends LShapedStaircaseGeometryOptions {
|
|
2607
|
+
/** Tread and riser tint. Defaults to `#8b4513`. */
|
|
2608
|
+
color?: ColorRepresentation;
|
|
2161
2609
|
}
|
|
2162
2610
|
|
|
2163
2611
|
/**
|
|
@@ -2188,24 +2636,6 @@ export declare class Microscope extends Group {
|
|
|
2188
2636
|
constructor();
|
|
2189
2637
|
}
|
|
2190
2638
|
|
|
2191
|
-
export declare class Moon extends Mesh<SphereGeometry, ShaderMaterial> {
|
|
2192
|
-
constructor();
|
|
2193
|
-
}
|
|
2194
|
-
|
|
2195
|
-
/**
|
|
2196
|
-
* Moon shader
|
|
2197
|
-
* Simple moon effect with noise
|
|
2198
|
-
*/
|
|
2199
|
-
export declare const moonShader: {
|
|
2200
|
-
uniforms: {
|
|
2201
|
-
time: {
|
|
2202
|
-
value: number;
|
|
2203
|
-
};
|
|
2204
|
-
};
|
|
2205
|
-
vertexShader: string;
|
|
2206
|
-
fragmentShader: string;
|
|
2207
|
-
};
|
|
2208
|
-
|
|
2209
2639
|
export declare class MortarAndPestle extends Group {
|
|
2210
2640
|
constructor();
|
|
2211
2641
|
}
|
|
@@ -2290,6 +2720,12 @@ export declare class MoundGeometry extends BufferGeometry {
|
|
|
2290
2720
|
});
|
|
2291
2721
|
}
|
|
2292
2722
|
|
|
2723
|
+
/**
|
|
2724
|
+
* Fast seeded PRNG — portfolio Gotham/Water parity.
|
|
2725
|
+
* Returns a closure yielding floats in [0, 1).
|
|
2726
|
+
*/
|
|
2727
|
+
export declare function mulberry32(seed: number): RandomStream;
|
|
2728
|
+
|
|
2293
2729
|
export declare class NightSkybox extends Mesh {
|
|
2294
2730
|
geometry: SphereGeometry;
|
|
2295
2731
|
material: ShaderMaterial & {
|
|
@@ -2389,6 +2825,16 @@ declare interface ObeliskHeadstoneOptions {
|
|
|
2389
2825
|
totalHeight?: number;
|
|
2390
2826
|
}
|
|
2391
2827
|
|
|
2828
|
+
export declare interface OrbitClipOptions extends CameraClipTiming {
|
|
2829
|
+
target: Vector3;
|
|
2830
|
+
/** Horizontal distance from target. Defaults to current camera distance. */
|
|
2831
|
+
radius?: number;
|
|
2832
|
+
/** Elevation above target Y in radians. Defaults to current camera elevation. */
|
|
2833
|
+
elevation?: number;
|
|
2834
|
+
/** Revolutions over the clip. Defaults to `1`. */
|
|
2835
|
+
revolutions?: number;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2392
2838
|
/**
|
|
2393
2839
|
* Prefab for a panel.
|
|
2394
2840
|
* Designed to be used as a control panel for switches, lights, levels, dials, and gauges.
|
|
@@ -2456,6 +2902,17 @@ export declare const ParametricCurveUtils: {
|
|
|
2456
2902
|
*/
|
|
2457
2903
|
export declare function parseHexCode(hex: string): [number, number, number];
|
|
2458
2904
|
|
|
2905
|
+
export declare interface PendulumClipOptions extends CameraClipTiming {
|
|
2906
|
+
target: Vector3;
|
|
2907
|
+
/** Distance from target. Defaults to current camera distance. */
|
|
2908
|
+
distance?: number;
|
|
2909
|
+
/** Peak azimuth swing in radians — keep small for Ken Burns mood (e.g. `0.12`). */
|
|
2910
|
+
azimuthAmplitude?: number;
|
|
2911
|
+
/** Slow back-and-forth cycles over the clip. Defaults to `2`. */
|
|
2912
|
+
oscillations?: number;
|
|
2913
|
+
ease?: EasingFunction;
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2459
2916
|
/**
|
|
2460
2917
|
* Soft, slow-drifting petals (or leaves) falling through a bounded volume —
|
|
2461
2918
|
* cherry-blossom float rather than stiff tumble. Each instance drifts downward
|
|
@@ -2710,18 +3167,126 @@ export declare interface RainEffectOptions {
|
|
|
2710
3167
|
intensity?: number;
|
|
2711
3168
|
}
|
|
2712
3169
|
|
|
3170
|
+
/**
|
|
3171
|
+
* Grouped exports — same function API, namespace import like {@link Easing}.
|
|
3172
|
+
*
|
|
3173
|
+
* @example
|
|
3174
|
+
* ```ts
|
|
3175
|
+
* import { Random } from "three-low-poly";
|
|
3176
|
+
* const rng = Random.create(deriveSubSeed(1337, 0x101));
|
|
3177
|
+
* ```
|
|
3178
|
+
*/
|
|
3179
|
+
export declare const Random: {
|
|
3180
|
+
readonly create: typeof createRandom;
|
|
3181
|
+
readonly mulberry32: typeof mulberry32;
|
|
3182
|
+
readonly splitmix32: typeof splitmix32;
|
|
3183
|
+
readonly deriveSubSeed: typeof deriveSubSeed;
|
|
3184
|
+
readonly range: typeof randomRange;
|
|
3185
|
+
readonly pick: typeof randomPick;
|
|
3186
|
+
};
|
|
3187
|
+
|
|
2713
3188
|
/**
|
|
2714
3189
|
* Generates a random number between `min` and `max`.
|
|
2715
3190
|
*/
|
|
2716
|
-
export declare function randomFloat(min?: number, max?: number): number;
|
|
3191
|
+
export declare function randomFloat(min?: number, max?: number, source?: RandomSource): number;
|
|
2717
3192
|
|
|
2718
3193
|
/**
|
|
2719
3194
|
* Generates a random integer between `min` and `max`.
|
|
2720
3195
|
*/
|
|
2721
|
-
export declare function randomInteger(min?: number, max?: number): number;
|
|
3196
|
+
export declare function randomInteger(min?: number, max?: number, source?: RandomSource): number;
|
|
3197
|
+
|
|
3198
|
+
/** Pick from a non-empty array using any stream — website `pick()` parity. */
|
|
3199
|
+
export declare function randomPick<T>(stream: RandomStream, arr: readonly T[]): T;
|
|
3200
|
+
|
|
3201
|
+
/** Float in [min, max) from any stream — website `range()` parity. */
|
|
3202
|
+
export declare function randomRange(stream: RandomStream, min: number, max: number): number;
|
|
3203
|
+
|
|
3204
|
+
/**
|
|
3205
|
+
* Random source — a stream plus distribution helpers.
|
|
3206
|
+
* Returned by {@link createRandom}; also accepted by {@link RandomNumberUtils}.
|
|
3207
|
+
*/
|
|
3208
|
+
export declare interface RandomSource {
|
|
3209
|
+
/** `true` when backed by {@link mulberry32}; `false` when using `Math.random()`. */
|
|
3210
|
+
readonly seeded: boolean;
|
|
3211
|
+
/** Next float in [0, 1). */
|
|
3212
|
+
next(): number;
|
|
3213
|
+
/** Float in [min, max). */
|
|
3214
|
+
float(min?: number, max?: number): number;
|
|
3215
|
+
/** Integer in [min, max] (inclusive). */
|
|
3216
|
+
int(min?: number, max?: number): number;
|
|
3217
|
+
/** Uniform element from a non-empty array. */
|
|
3218
|
+
pick<T>(arr: readonly T[]): T;
|
|
3219
|
+
/** `true` with given probability (default 0.5). */
|
|
3220
|
+
boolean(probability?: number): boolean;
|
|
3221
|
+
/**
|
|
3222
|
+
* Skew toward `max`. Lower `exponent` = stronger bias.
|
|
3223
|
+
* Mirrors {@link logarithmicRandomMax}.
|
|
3224
|
+
*/
|
|
3225
|
+
skewMax(exponent?: number, min?: number, max?: number): number;
|
|
3226
|
+
/**
|
|
3227
|
+
* Skew toward `min`. Lower `exponent` = stronger bias.
|
|
3228
|
+
* Mirrors {@link logarithmicRandomMin}.
|
|
3229
|
+
*/
|
|
3230
|
+
skewMin(exponent?: number, min?: number, max?: number): number;
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
/**
|
|
3234
|
+
* Randomness for procedural generation — unseeded by default, reproducible on demand.
|
|
3235
|
+
*
|
|
3236
|
+
* ---
|
|
3237
|
+
*
|
|
3238
|
+
* ### Layer 1 — stream primitive (portfolio parity)
|
|
3239
|
+
*
|
|
3240
|
+
* - {@link mulberry32} — fast seeded PRNG; returns a `() => number` closure yielding
|
|
3241
|
+
* floats in `[0, 1)`. Same algorithm as Gotham/Water on the portfolio site.
|
|
3242
|
+
*
|
|
3243
|
+
* ### Seed mixing
|
|
3244
|
+
*
|
|
3245
|
+
* - {@link splitmix32} — mixer only, **not** a stream. Maps one 32-bit value to another.
|
|
3246
|
+
* - {@link deriveSubSeed} — `splitmix32(masterSeed ^ salt)`. Fan one user-facing master
|
|
3247
|
+
* seed into independent sub-streams per subsystem. Use stable hex salts per domain
|
|
3248
|
+
* (`0x101` books, `0x202` fog, `0x303` windows, …) instead of `seed + n` offsets.
|
|
3249
|
+
*
|
|
3250
|
+
* ### Layer 2 — library ergonomics
|
|
3251
|
+
*
|
|
3252
|
+
* - {@link createRandom} — **no seed** → wraps `Math.random()`, unique every runtime
|
|
3253
|
+
* (showcase default). **With seed** → {@link mulberry32} stream, same seed ⇒ same sequence.
|
|
3254
|
+
* - Returns a {@link RandomSource}: `next`, `float`, `int`, `pick`, `boolean`, `skewMax`, `skewMin`.
|
|
3255
|
+
* - {@link Random} namespace — grouped exports, same API as standalone functions (like {@link Easing}).
|
|
3256
|
+
*
|
|
3257
|
+
* ### Layer 3 — {@link RandomNumberUtils}
|
|
3258
|
+
*
|
|
3259
|
+
* Existing helpers (`randomFloat`, `logarithmicRandomMax`, …) accept an optional
|
|
3260
|
+
* {@link RandomSource} as their last argument. Omit it for unseeded default behavior.
|
|
3261
|
+
*
|
|
3262
|
+
* ---
|
|
3263
|
+
*
|
|
3264
|
+
* @example Unique runtime (default)
|
|
3265
|
+
* ```ts
|
|
3266
|
+
* const rng = createRandom();
|
|
3267
|
+
* rng.float(0, 10); // different every page load
|
|
3268
|
+
* ```
|
|
3269
|
+
*
|
|
3270
|
+
* @example Reproducible layout with sub-seeds
|
|
3271
|
+
* ```ts
|
|
3272
|
+
* const master = 1337;
|
|
3273
|
+
* const books = createRandom(deriveSubSeed(master, 0x101));
|
|
3274
|
+
* const fog = createRandom(deriveSubSeed(master, 0x202));
|
|
3275
|
+
* ```
|
|
3276
|
+
*
|
|
3277
|
+
* @example Namespace import
|
|
3278
|
+
* ```ts
|
|
3279
|
+
* const rng = Random.create(deriveSubSeed(1337, 0x101));
|
|
3280
|
+
* ```
|
|
3281
|
+
*/
|
|
3282
|
+
/** Callable stream returning floats in [0, 1). */
|
|
3283
|
+
export declare type RandomStream = () => number;
|
|
2722
3284
|
|
|
2723
3285
|
export declare function randomTransformVertices<T extends BufferGeometry>(geometry: T, axis?: Vector3, minScale?: number, maxScale?: number): T;
|
|
2724
3286
|
|
|
3287
|
+
/** Resolve uniform ring spacing — `cell` wins over the `cellsX` density hint. */
|
|
3288
|
+
export declare function resolveRingLatticeCell(width: number, _height: number, cell?: number, cellsX?: number): number;
|
|
3289
|
+
|
|
2725
3290
|
export declare function rgbToHex(r: number, g: number, b: number): number;
|
|
2726
3291
|
|
|
2727
3292
|
/**
|
|
@@ -2736,6 +3301,84 @@ export declare function rgbToHex(r: number, g: number, b: number): number;
|
|
|
2736
3301
|
*/
|
|
2737
3302
|
export declare function rgbToHsl(r: number, g: number, b: number): [number, number, number];
|
|
2738
3303
|
|
|
3304
|
+
/** Ring-spacing factor — overlap tightens as this approaches 1. */
|
|
3305
|
+
export declare const RING_LATTICE_SPACING_FACTOR = 0.96;
|
|
3306
|
+
|
|
3307
|
+
declare interface RingLatticeFramePartOptions {
|
|
3308
|
+
width: number;
|
|
3309
|
+
height: number;
|
|
3310
|
+
centerY?: number;
|
|
3311
|
+
frameThickness: number;
|
|
3312
|
+
frameDepth: number;
|
|
3313
|
+
}
|
|
3314
|
+
|
|
3315
|
+
export declare interface RingLatticeGrid {
|
|
3316
|
+
/** Requested ring-center spacing before the overlap factor. */
|
|
3317
|
+
cell: number;
|
|
3318
|
+
/** Effective center spacing (`cell × 0.96`). */
|
|
3319
|
+
latticeCell: number;
|
|
3320
|
+
/** Outer half-extent of each square ring profile. */
|
|
3321
|
+
ringOuter: number;
|
|
3322
|
+
/** Ring instance count. */
|
|
3323
|
+
count: number;
|
|
3324
|
+
}
|
|
3325
|
+
|
|
3326
|
+
declare interface RingLatticeSpotOptions {
|
|
3327
|
+
width: number;
|
|
3328
|
+
height: number;
|
|
3329
|
+
centerY?: number;
|
|
3330
|
+
cell: number;
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3333
|
+
/** Ring-center positions overscanning the opening (stencil trims the excess). */
|
|
3334
|
+
export declare function ringLatticeSpots({ width, height, centerY, cell, }: RingLatticeSpotOptions): {
|
|
3335
|
+
spots: [number, number][];
|
|
3336
|
+
grid: RingLatticeGrid;
|
|
3337
|
+
};
|
|
3338
|
+
|
|
3339
|
+
/**
|
|
3340
|
+
* Ring lattice window — overlapping square rings on a uniform grid (diaper /
|
|
3341
|
+
* trellis fretwork), stencil-clipped to a rectangular opening.
|
|
3342
|
+
*/
|
|
3343
|
+
export declare class RingLatticeWindow extends Group {
|
|
3344
|
+
readonly lattice: InstancedMesh;
|
|
3345
|
+
readonly frame: Mesh;
|
|
3346
|
+
readonly glass?: Mesh<PlaneGeometry, MeshPhysicalMaterial>;
|
|
3347
|
+
readonly cell: number;
|
|
3348
|
+
readonly fittedGrid: RingLatticeGrid;
|
|
3349
|
+
private readonly clipPlanesLocal;
|
|
3350
|
+
private readonly clipPlanesWorld;
|
|
3351
|
+
constructor({ width, height, cell: cellOption, cellsX, centerY, ringThickness, ringDepth, frameThickness, frameDepth, latticeColor, glass, glassColor, glassEmissive, glassEmissiveIntensity, }?: RingLatticeWindowOptions);
|
|
3352
|
+
}
|
|
3353
|
+
|
|
3354
|
+
declare interface RingLatticeWindowOptions {
|
|
3355
|
+
/** Opening width (world units). */
|
|
3356
|
+
width?: number;
|
|
3357
|
+
/** Opening height (world units). */
|
|
3358
|
+
height?: number;
|
|
3359
|
+
/** Uniform ring-center spacing. Overrides `cellsX` when set. Defaults to `0.55`. */
|
|
3360
|
+
cell?: number;
|
|
3361
|
+
/** Density hint — `cell = width / cellsX` when `cell` is omitted. */
|
|
3362
|
+
cellsX?: number;
|
|
3363
|
+
/** Wall thickness of each square ring profile. Defaults to `0.05`. */
|
|
3364
|
+
ringThickness?: number;
|
|
3365
|
+
/** Extrusion depth of each ring. Defaults to `0.06`. */
|
|
3366
|
+
ringDepth?: number;
|
|
3367
|
+
/** Outer frame bar thickness. Defaults to `0.055`. */
|
|
3368
|
+
frameThickness?: number;
|
|
3369
|
+
/** Outer frame depth (Z). Defaults to `0.11`. */
|
|
3370
|
+
frameDepth?: number;
|
|
3371
|
+
/** Vertical center of the opening in local space. Defaults to `0`. */
|
|
3372
|
+
centerY?: number;
|
|
3373
|
+
/** Lattice + frame tint. Defaults to `#0c0f14`. */
|
|
3374
|
+
latticeColor?: ColorRepresentation;
|
|
3375
|
+
/** Optional glass pane recessed slightly on −Z. */
|
|
3376
|
+
glass?: boolean;
|
|
3377
|
+
glassColor?: ColorRepresentation;
|
|
3378
|
+
glassEmissive?: ColorRepresentation;
|
|
3379
|
+
glassEmissiveIntensity?: number;
|
|
3380
|
+
}
|
|
3381
|
+
|
|
2739
3382
|
export declare class Rock extends Mesh<RockGeometry, MeshStandardMaterial> {
|
|
2740
3383
|
constructor(radius?: number, widthSegments?: number, heightSegments?: number);
|
|
2741
3384
|
}
|
|
@@ -2763,22 +3406,24 @@ export declare class RoundedHeadstoneGeometry extends BufferGeometry {
|
|
|
2763
3406
|
/**
|
|
2764
3407
|
* Creates a row of books with a given count.
|
|
2765
3408
|
*/
|
|
2766
|
-
export declare function rowOfBooksByCount<T extends Material>({ coverMaterial, pagesMaterial, count, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
3409
|
+
export declare function rowOfBooksByCount<T extends Material>({ coverMaterial, pagesMaterial, count, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, seed, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
2767
3410
|
|
|
2768
3411
|
/**
|
|
2769
3412
|
* Creates a row of books with a total length.
|
|
2770
3413
|
*/
|
|
2771
|
-
export declare function rowOfBooksByLength<T extends Material>({ coverMaterial, pagesMaterial, length, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
3414
|
+
export declare function rowOfBooksByLength<T extends Material>({ coverMaterial, pagesMaterial, length, scaleXMin, scaleXMax, scaleYMin, scaleYMax, scaleZMin, scaleZMax, seed, }: RowOfBooksOptions<T>): InstancedMesh;
|
|
2772
3415
|
|
|
2773
3416
|
/**
|
|
2774
3417
|
* Creates a row of books from the scales array of Vector3.
|
|
2775
3418
|
*/
|
|
2776
|
-
export declare function rowOfBooksByScales<T extends Material>({ coverMaterial, pagesMaterial, scales, }: RowOfBooksByScalesOptions<T>): InstancedMesh;
|
|
3419
|
+
export declare function rowOfBooksByScales<T extends Material>({ coverMaterial, pagesMaterial, scales, source, }: RowOfBooksByScalesOptions<T>): InstancedMesh;
|
|
2777
3420
|
|
|
2778
3421
|
declare interface RowOfBooksByScalesOptions<T extends Material = Material> {
|
|
2779
3422
|
coverMaterial: T;
|
|
2780
3423
|
pagesMaterial: T;
|
|
2781
3424
|
scales: Vector3[];
|
|
3425
|
+
/** Shared stream for shelf jitter — must be the same source that built `scales`. */
|
|
3426
|
+
source: RandomSource;
|
|
2782
3427
|
}
|
|
2783
3428
|
|
|
2784
3429
|
declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
@@ -2792,6 +3437,8 @@ declare interface RowOfBooksOptions<T extends Material = Material> {
|
|
|
2792
3437
|
scaleYMax?: number;
|
|
2793
3438
|
scaleZMin?: number;
|
|
2794
3439
|
scaleZMax?: number;
|
|
3440
|
+
/** Optional seed for reproducible layout. Omit for unique runtime. */
|
|
3441
|
+
seed?: number;
|
|
2795
3442
|
}
|
|
2796
3443
|
|
|
2797
3444
|
/**
|
|
@@ -3108,14 +3755,89 @@ export declare function sphericalUVMapping(vertices: [number, number, number][])
|
|
|
3108
3755
|
*/
|
|
3109
3756
|
export declare const spikeBrush: <T extends BufferGeometry>(geometry: T, position: Vector3, radius: number, strength: number, inward?: boolean, falloffFn?: (distance: number, radius: number) => number) => void;
|
|
3110
3757
|
|
|
3758
|
+
export declare interface SpiralClipOptions extends CameraClipTiming {
|
|
3759
|
+
/** Ground point to look down at (typically scene center, `y = 0`). */
|
|
3760
|
+
target: Vector3;
|
|
3761
|
+
/** Orbit radius at the start of the clip. */
|
|
3762
|
+
radius: number;
|
|
3763
|
+
/** Optional wider radius at the end — pulls back as you rise. Defaults to `radius`. */
|
|
3764
|
+
endRadius?: number;
|
|
3765
|
+
/** Total vertical rise over the clip. */
|
|
3766
|
+
height: number;
|
|
3767
|
+
revolutions: number;
|
|
3768
|
+
ease?: EasingFunction;
|
|
3769
|
+
}
|
|
3770
|
+
|
|
3771
|
+
/**
|
|
3772
|
+
* Turret-style spiral staircase prefab — wraps {@link SpiralStaircaseGeometry}.
|
|
3773
|
+
*/
|
|
3774
|
+
export declare class SpiralStaircase extends Mesh<SpiralStaircaseGeometry, MeshStandardMaterial> {
|
|
3775
|
+
readonly innerRadius: number;
|
|
3776
|
+
readonly width: number;
|
|
3777
|
+
readonly outerRadius: number;
|
|
3778
|
+
readonly treadDepth: number;
|
|
3779
|
+
readonly riserHeight: number;
|
|
3780
|
+
readonly stepCount: number;
|
|
3781
|
+
readonly stepAngle: number;
|
|
3782
|
+
readonly totalHeight: number;
|
|
3783
|
+
readonly totalTurn: number;
|
|
3784
|
+
constructor({ color, ...geometryOptions }?: SpiralStaircaseOptions);
|
|
3785
|
+
}
|
|
3786
|
+
|
|
3787
|
+
/**
|
|
3788
|
+
* Turret-style spiral staircase — trapezoidal treads between an inner newel radius
|
|
3789
|
+
* and an outer wall radius, ascending counter-clockwise when viewed from above.
|
|
3790
|
+
*
|
|
3791
|
+
* Each step is a four-sided tread (no pinched center point). Step angle is
|
|
3792
|
+
* derived from tread depth at the mid-radius so treads meet without overlapping.
|
|
3793
|
+
*/
|
|
3111
3794
|
export declare class SpiralStaircaseGeometry extends BufferGeometry {
|
|
3112
|
-
|
|
3795
|
+
readonly innerRadius: number;
|
|
3796
|
+
readonly width: number;
|
|
3797
|
+
readonly outerRadius: number;
|
|
3798
|
+
readonly treadDepth: number;
|
|
3799
|
+
readonly riserHeight: number;
|
|
3800
|
+
readonly stepCount: number;
|
|
3801
|
+
readonly startAngle: number;
|
|
3802
|
+
readonly stepAngle: number;
|
|
3803
|
+
readonly totalHeight: number;
|
|
3804
|
+
readonly totalTurn: number;
|
|
3805
|
+
constructor({ innerRadius, width, treadDepth, riserHeight, stepCount, startAngle, stepAngle: stepAngleOption, }?: SpiralStaircaseGeometryOptions);
|
|
3806
|
+
}
|
|
3807
|
+
|
|
3808
|
+
export declare interface SpiralStaircaseGeometryOptions {
|
|
3809
|
+
/** Newel / center-hole radius (inner edge of every tread). Defaults to `0.45`. */
|
|
3810
|
+
innerRadius?: number;
|
|
3811
|
+
/** Radial tread width (outer − inner radius). Defaults to `1.95`. */
|
|
3812
|
+
width?: number;
|
|
3813
|
+
/** Arc run per step at the walking line (mid-radius). Defaults to `0.45`. */
|
|
3814
|
+
treadDepth?: number;
|
|
3815
|
+
/** Vertical rise per step (riser). Defaults to `0.2`. */
|
|
3816
|
+
riserHeight?: number;
|
|
3817
|
+
/** Number of steps. Defaults to `20`. */
|
|
3818
|
+
stepCount?: number;
|
|
3819
|
+
/** Spiral start angle in radians (+X = 0, CCW). Defaults to `0`. */
|
|
3820
|
+
startAngle?: number;
|
|
3821
|
+
/** Override step angle (radians). When omitted, derived from `treadDepth`. */
|
|
3822
|
+
stepAngle?: number;
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
export declare interface SpiralStaircaseOptions extends SpiralStaircaseGeometryOptions {
|
|
3826
|
+
/** Tread and riser tint. Defaults to `#8b4513`. */
|
|
3827
|
+
color?: ColorRepresentation;
|
|
3113
3828
|
}
|
|
3114
3829
|
|
|
3115
3830
|
export declare class SpiralTube extends Group {
|
|
3116
3831
|
constructor();
|
|
3117
3832
|
}
|
|
3118
3833
|
|
|
3834
|
+
/**
|
|
3835
|
+
* Seed mixer — maps one 32-bit value to another well-distributed value.
|
|
3836
|
+
* Use with {@link deriveSubSeed}, not as a drop-in stream replacement for
|
|
3837
|
+
* {@link mulberry32}.
|
|
3838
|
+
*/
|
|
3839
|
+
export declare function splitmix32(seed: number): number;
|
|
3840
|
+
|
|
3119
3841
|
export declare class SquareHeadstone extends Mesh<SquareHeadstoneGeometry, MeshStandardMaterial> {
|
|
3120
3842
|
constructor(width?: number, height?: number, depth?: number);
|
|
3121
3843
|
}
|
|
@@ -3124,8 +3846,53 @@ export declare class SquareHeadstoneGeometry extends BufferGeometry {
|
|
|
3124
3846
|
constructor(width?: number, height?: number, depth?: number);
|
|
3125
3847
|
}
|
|
3126
3848
|
|
|
3849
|
+
/**
|
|
3850
|
+
* Straight run staircase prefab — {@link StaircaseGeometry} with a wood-tone
|
|
3851
|
+
* default material.
|
|
3852
|
+
*
|
|
3853
|
+
* Local frame: centered on width, rises along +Y, runs along +Z.
|
|
3854
|
+
*/
|
|
3855
|
+
export declare class Staircase extends Mesh<StaircaseGeometry, MeshStandardMaterial> {
|
|
3856
|
+
readonly width: number;
|
|
3857
|
+
readonly riserHeight: number;
|
|
3858
|
+
readonly treadDepth: number;
|
|
3859
|
+
readonly stepCount: number;
|
|
3860
|
+
readonly totalHeight: number;
|
|
3861
|
+
readonly totalDepth: number;
|
|
3862
|
+
constructor({ color, ...geometryOptions }?: StaircaseOptions);
|
|
3863
|
+
}
|
|
3864
|
+
|
|
3865
|
+
/**
|
|
3866
|
+
* Straight run staircase — open risers and treads (no side stringers yet).
|
|
3867
|
+
*
|
|
3868
|
+
* Local frame: centered on width, rises along +Y, runs along +Z. Each step
|
|
3869
|
+
* emits a front riser (+Z) and a top tread (+Y). UVs are normalized per face
|
|
3870
|
+
* (0–1) so materials can tile per step.
|
|
3871
|
+
*/
|
|
3127
3872
|
export declare class StaircaseGeometry extends BufferGeometry {
|
|
3128
|
-
|
|
3873
|
+
readonly width: number;
|
|
3874
|
+
readonly riserHeight: number;
|
|
3875
|
+
readonly treadDepth: number;
|
|
3876
|
+
readonly stepCount: number;
|
|
3877
|
+
readonly totalHeight: number;
|
|
3878
|
+
readonly totalDepth: number;
|
|
3879
|
+
constructor({ width, riserHeight, treadDepth, stepCount, }?: StaircaseGeometryOptions);
|
|
3880
|
+
}
|
|
3881
|
+
|
|
3882
|
+
export declare interface StaircaseGeometryOptions {
|
|
3883
|
+
/** Stair width (tread left–right extent). Defaults to `2`. */
|
|
3884
|
+
width?: number;
|
|
3885
|
+
/** Vertical rise per step (riser). Defaults to `0.3`. */
|
|
3886
|
+
riserHeight?: number;
|
|
3887
|
+
/** Horizontal run per step (tread depth). Defaults to `0.5`. */
|
|
3888
|
+
treadDepth?: number;
|
|
3889
|
+
/** Number of steps. Defaults to `10`. */
|
|
3890
|
+
stepCount?: number;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
export declare interface StaircaseOptions extends StaircaseGeometryOptions {
|
|
3894
|
+
/** Tread and riser tint. Defaults to `#8b4513`. */
|
|
3895
|
+
color?: ColorRepresentation;
|
|
3129
3896
|
}
|
|
3130
3897
|
|
|
3131
3898
|
export declare class Stand extends Mesh<StandGeometry, MeshStandardMaterial> {
|
|
@@ -3434,6 +4201,107 @@ export declare function updateNoiseDisplacementTime<T extends Material>(material
|
|
|
3434
4201
|
*/
|
|
3435
4202
|
export declare function updateWaterDisplacementTime<T extends Material>(material: T, deltaTime: number): void;
|
|
3436
4203
|
|
|
4204
|
+
/**
|
|
4205
|
+
* Wall-mounted oil-lamp sconce — iron mount and cap/bowl frame around an
|
|
4206
|
+
* emissive glass chimney. Pair {@link GlowHalo} and {@link FlameFlickerEffect}
|
|
4207
|
+
* at `(lightCenterX, lightCenterY, lightCenterZ)` for bloom and flicker.
|
|
4208
|
+
*
|
|
4209
|
+
* Local frame: faces +X from a −X wall.
|
|
4210
|
+
*/
|
|
4211
|
+
export declare class WallSconce extends Mesh<WallSconceGeometry, MeshStandardMaterial[]> {
|
|
4212
|
+
readonly lightCenterX: number;
|
|
4213
|
+
readonly lightCenterY: number;
|
|
4214
|
+
readonly lightCenterZ: number;
|
|
4215
|
+
constructor({ color, mountColor, frameColor, lampColor, lampEmissiveIntensity, lampOpacity, inner, ...geometryOptions }?: WallSconceOptions);
|
|
4216
|
+
}
|
|
4217
|
+
|
|
4218
|
+
/**
|
|
4219
|
+
* Wall-mounted oil-lamp sconce — iron mount, cap, and bowl framing an emissive
|
|
4220
|
+
* glass chimney.
|
|
4221
|
+
*
|
|
4222
|
+
* Material groups: `0` mount (plate + bracket), `1` iron frame (cap + bowl),
|
|
4223
|
+
* `2` glass chimney.
|
|
4224
|
+
*
|
|
4225
|
+
* Local frame: faces +X from a −X wall; lamp center at
|
|
4226
|
+
* `(bodyOffsetX, chimneyCenterY, 0)`.
|
|
4227
|
+
*/
|
|
4228
|
+
export declare class WallSconceGeometry extends BufferGeometry {
|
|
4229
|
+
readonly bodyOffsetX: number;
|
|
4230
|
+
readonly chimneyCenterY: number;
|
|
4231
|
+
readonly innerScale: number;
|
|
4232
|
+
readonly inner: boolean;
|
|
4233
|
+
readonly lightCenterX: number;
|
|
4234
|
+
readonly lightCenterY: number;
|
|
4235
|
+
readonly lightCenterZ: number;
|
|
4236
|
+
constructor({ plateThickness, plateHeight, plateDepth, plateOffsetX, bracketLength, bracketHeight, bracketDepth, bracketOffsetX, bracketOffsetY, bodyOffsetX, chimneyHeight, chimneyTopRadius, chimneyBottomRadius, chimneyCenterY, capRadius, capHeight, capCenterY, bowlTopRadius, bowlBottomRadius, bowlHeight, bowlCenterY, radialSegments, innerScale, inner, }?: WallSconceGeometryOptions);
|
|
4237
|
+
}
|
|
4238
|
+
|
|
4239
|
+
export declare interface WallSconceGeometryOptions {
|
|
4240
|
+
/** Wall-plate thickness (X). Defaults to `0.05`. */
|
|
4241
|
+
plateThickness?: number;
|
|
4242
|
+
/** Wall-plate height (Y). Defaults to `0.22`. */
|
|
4243
|
+
plateHeight?: number;
|
|
4244
|
+
/** Wall-plate depth (Z). Defaults to `0.28`. */
|
|
4245
|
+
plateDepth?: number;
|
|
4246
|
+
/** Wall-plate center X (negative = into the wall). Defaults to `-0.055`. */
|
|
4247
|
+
plateOffsetX?: number;
|
|
4248
|
+
/** Bracket length into the room (X). Defaults to `0.1`. */
|
|
4249
|
+
bracketLength?: number;
|
|
4250
|
+
/** Bracket height (Y). Defaults to `0.05`. */
|
|
4251
|
+
bracketHeight?: number;
|
|
4252
|
+
/** Bracket depth (Z). Defaults to `0.07`. */
|
|
4253
|
+
bracketDepth?: number;
|
|
4254
|
+
/** Bracket center X. Defaults to `-0.005`. */
|
|
4255
|
+
bracketOffsetX?: number;
|
|
4256
|
+
/** Bracket center Y. Defaults to `0.1`. */
|
|
4257
|
+
bracketOffsetY?: number;
|
|
4258
|
+
/** Chimney / lamp body center X. Defaults to `0.06`. */
|
|
4259
|
+
bodyOffsetX?: number;
|
|
4260
|
+
/** Chimney height. Defaults to `0.3`. */
|
|
4261
|
+
chimneyHeight?: number;
|
|
4262
|
+
/** Chimney top radius. Defaults to `0.1`. */
|
|
4263
|
+
chimneyTopRadius?: number;
|
|
4264
|
+
/** Chimney bottom radius. Defaults to `0.105`. */
|
|
4265
|
+
chimneyBottomRadius?: number;
|
|
4266
|
+
/** Chimney center Y. Defaults to `-0.05`. */
|
|
4267
|
+
chimneyCenterY?: number;
|
|
4268
|
+
/** Cap radius. Defaults to `0.115`. */
|
|
4269
|
+
capRadius?: number;
|
|
4270
|
+
/** Cap height. Defaults to `0.05`. */
|
|
4271
|
+
capHeight?: number;
|
|
4272
|
+
/** Cap center Y. Defaults to `0.12`. */
|
|
4273
|
+
capCenterY?: number;
|
|
4274
|
+
/** Bowl top radius. Defaults to `0.09`. */
|
|
4275
|
+
bowlTopRadius?: number;
|
|
4276
|
+
/** Bowl bottom radius. Defaults to `0.11`. */
|
|
4277
|
+
bowlBottomRadius?: number;
|
|
4278
|
+
/** Bowl height. Defaults to `0.05`. */
|
|
4279
|
+
bowlHeight?: number;
|
|
4280
|
+
/** Bowl center Y. Defaults to `-0.22`. */
|
|
4281
|
+
bowlCenterY?: number;
|
|
4282
|
+
/** Radial segments on cylinders. Defaults to `8`. */
|
|
4283
|
+
radialSegments?: number;
|
|
4284
|
+
/** Glass chimney scale relative to the frame opening. Defaults to `0.96`. */
|
|
4285
|
+
innerScale?: number;
|
|
4286
|
+
/** Include the emissive glass chimney. Defaults to `true`. */
|
|
4287
|
+
inner?: boolean;
|
|
4288
|
+
}
|
|
4289
|
+
|
|
4290
|
+
export declare interface WallSconceOptions extends WallSconceGeometryOptions {
|
|
4291
|
+
/** Wrought-iron tint for mount and frame. Defaults to `#1c1e24`. */
|
|
4292
|
+
color?: ColorRepresentation;
|
|
4293
|
+
/** Mount iron tint (plate + bracket). Defaults to `color`. */
|
|
4294
|
+
mountColor?: ColorRepresentation;
|
|
4295
|
+
/** Frame iron tint (cap + bowl). Defaults to `color`. */
|
|
4296
|
+
frameColor?: ColorRepresentation;
|
|
4297
|
+
/** Glass chimney tint. Defaults to `#e8a058`. */
|
|
4298
|
+
lampColor?: ColorRepresentation;
|
|
4299
|
+
/** Glass emissive strength. Defaults to `1.4`. */
|
|
4300
|
+
lampEmissiveIntensity?: number;
|
|
4301
|
+
/** Glass opacity. Defaults to `0.88`. */
|
|
4302
|
+
lampOpacity?: number;
|
|
4303
|
+
}
|
|
4304
|
+
|
|
3437
4305
|
export declare class WineBottle extends Mesh<WineBottleGeometry, MeshPhysicalMaterial> {
|
|
3438
4306
|
constructor();
|
|
3439
4307
|
}
|
|
@@ -3530,6 +4398,12 @@ export declare interface WispEffectOptions {
|
|
|
3530
4398
|
lightPulseSpeed?: number;
|
|
3531
4399
|
}
|
|
3532
4400
|
|
|
4401
|
+
export declare interface WobbleClipOptions extends CameraClipTiming {
|
|
4402
|
+
/** Peak positional shake in world units. */
|
|
4403
|
+
intensity: number;
|
|
4404
|
+
ease?: EasingFunction;
|
|
4405
|
+
}
|
|
4406
|
+
|
|
3533
4407
|
export declare class WroughtIronBar extends Mesh<WroughtIronBarGeometry, MeshStandardMaterial> {
|
|
3534
4408
|
constructor({ barHeight, //
|
|
3535
4409
|
barRadius, spikeHeight, spikeRadius, spikeScaleZ, radialSegments, }?: {
|
|
@@ -3591,4 +4465,11 @@ export declare class WroughtIronFenceGeometry extends BufferGeometry {
|
|
|
3591
4465
|
});
|
|
3592
4466
|
}
|
|
3593
4467
|
|
|
4468
|
+
export declare interface ZoomClipOptions extends CameraClipTiming {
|
|
4469
|
+
target: Vector3;
|
|
4470
|
+
/** Narrower FOV at the end of the clip (e.g. `35` from `75`). */
|
|
4471
|
+
endFov: number;
|
|
4472
|
+
ease?: EasingFunction;
|
|
4473
|
+
}
|
|
4474
|
+
|
|
3594
4475
|
export { }
|