Interface SpotLight
interface SpotLight {
angle: number;
children: SceneNode[];
diffuse: [number, number, number];
direction: ObservableVec3;
excludedMeshIds?: ReadonlySet<string>;
exponent: number;
includedOnlyMeshIds?: ReadonlySet<string>;
intensity: number;
lightType: "spot";
metadata?: LiteMetadata;
name: string;
parent: IWorldMatrixProvider | null;
position: ObservableVec3;
range: number;
rotation: EulerProxy;
rotationQuaternion: ObservableQuat;
scaling: ObservableVec3;
shadowGenerator?: ShadowGenerator;
specular: [number, number, number];
visible?: boolean;
worldMatrix: Mat4;
worldMatrixVersion: number;
}
angle: number;
children: SceneNode[];
diffuse: [number, number, number];
direction: ObservableVec3;
excludedMeshIds?: ReadonlySet<string>;
exponent: number;
includedOnlyMeshIds?: ReadonlySet<string>;
intensity: number;
lightType: "spot";
metadata?: LiteMetadata;
name: string;
parent: IWorldMatrixProvider | null;
position: ObservableVec3;
range: number;
rotation: EulerProxy;
rotationQuaternion: ObservableQuat;
scaling: ObservableVec3;
shadowGenerator?: ShadowGenerator;
specular: [number, number, number];
visible?: boolean;
worldMatrix: Mat4;
worldMatrixVersion: number;
}
Hierarchy (View Summary)
- LightBase
- SpotLight
Properties
angle
angle: number
Full cone angle in radians.
children
diffuse
diffuse: [number, number, number]
Readonlydirection
Optionalexcluded Mesh Ids
excludedMeshIds?: ReadonlySet<string>
Mesh IDs excluded from this light. If set, these meshes are NOT lit by this light.
exponent
exponent: number
Falloff exponent — higher = sharper spotlight.
Optionalincluded Only Mesh Ids
includedOnlyMeshIds?: ReadonlySet<string>
If non-empty, ONLY these mesh IDs are lit by this light. Takes priority over excludedMeshIds.
intensity
intensity: number
Readonlylight Type
lightType: "spot"
Optionalmetadata
User metadata. glTF loads populate metadata.gltf.extras when source extras exist.
name
name: string
parent
Readonlyposition
range
range: number
Readonlyrotation
rotation: EulerProxy
Euler XYZ bidirectional proxy — reads decompose current quat; writes update quat atomically.
Readonlyrotation Quaternion
Quaternion rotation — source of truth for the local matrix.
Readonlyscaling
Optionalshadow Generator
Shadow generator attached to this light. Set this to make the light cast shadows.
specular
specular: [number, number, number]
Optionalvisible
visible?: boolean
Self-visibility. Undefined/true = visible; false skips render + camera AABB.
Cascade is materialized at write-time by setSubtreeVisible.
Readonlyworld Matrix
Readonlyworld Matrix Version
worldMatrixVersion: number
Shared base for all light types. Provides pipeline integration callbacks so render pipelines are light-agnostic.