@relu-interactives/spatial-ecs 0.2.2
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 +125 -0
- package/dist/System-rXAmagXA.d.cts +659 -0
- package/dist/System-rXAmagXA.d.ts +659 -0
- package/dist/Video-CDemv74U.d.cts +1261 -0
- package/dist/Video-ChKV1UI7.d.ts +1261 -0
- package/dist/assets/draco/draco_decoder.js +34 -0
- package/dist/assets/draco/draco_decoder.wasm +0 -0
- package/dist/assets/draco/draco_wasm_wrapper.js +117 -0
- package/dist/chunk-AYEF3X2P.js +223 -0
- package/dist/chunk-AYEF3X2P.js.map +1 -0
- package/dist/chunk-MAWBTMCG.js +1722 -0
- package/dist/chunk-MAWBTMCG.js.map +1 -0
- package/dist/chunk-NFDTIYR4.js +248 -0
- package/dist/chunk-NFDTIYR4.js.map +1 -0
- package/dist/chunk-OY7ZODZP.js +16 -0
- package/dist/chunk-OY7ZODZP.js.map +1 -0
- package/dist/chunk-P2YDX5DB.js +3304 -0
- package/dist/chunk-P2YDX5DB.js.map +1 -0
- package/dist/chunk-QHILSPT4.js +3 -0
- package/dist/chunk-QHILSPT4.js.map +1 -0
- package/dist/chunk-XWIEEJ7Z.js +1315 -0
- package/dist/chunk-XWIEEJ7Z.js.map +1 -0
- package/dist/components/index.cjs +1745 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/docs/api/Behaviour/classes/Behaviour.md +554 -0
- package/dist/docs/api/Behaviour/index.md +15 -0
- package/dist/docs/api/Component/classes/Component.md +57 -0
- package/dist/docs/api/Component/index.md +15 -0
- package/dist/docs/api/components/classes/AnimationComponent.md +318 -0
- package/dist/docs/api/components/classes/AudioComponent.md +114 -0
- package/dist/docs/api/components/classes/CameraComponent.md +59 -0
- package/dist/docs/api/components/classes/EntityType.md +48 -0
- package/dist/docs/api/components/classes/Environment.md +47 -0
- package/dist/docs/api/components/classes/ImageComponent.md +57 -0
- package/dist/docs/api/components/classes/ImageTarget.md +60 -0
- package/dist/docs/api/components/classes/ImageTargetAnchor.md +48 -0
- package/dist/docs/api/components/classes/LightComponent.md +70 -0
- package/dist/docs/api/components/classes/MaterialComponent.md +181 -0
- package/dist/docs/api/components/classes/MeshComponent.md +48 -0
- package/dist/docs/api/components/classes/MeshGeometryComponent.md +64 -0
- package/dist/docs/api/components/classes/ModelComponent.md +49 -0
- package/dist/docs/api/components/classes/Name.md +46 -0
- package/dist/docs/api/components/classes/Object3DRef.md +54 -0
- package/dist/docs/api/components/classes/ParentId.md +47 -0
- package/dist/docs/api/components/classes/PhysicsComponent.md +82 -0
- package/dist/docs/api/components/classes/Postprocessing.md +49 -0
- package/dist/docs/api/components/classes/ScriptComponent.md +54 -0
- package/dist/docs/api/components/classes/Selectable.md +46 -0
- package/dist/docs/api/components/classes/SelectionTransformState.md +54 -0
- package/dist/docs/api/components/classes/SpriteComponent.md +55 -0
- package/dist/docs/api/components/classes/TransformComponent.md +197 -0
- package/dist/docs/api/components/classes/VideoComponent.md +123 -0
- package/dist/docs/api/components/functions/normalizePhysicsState.md +23 -0
- package/dist/docs/api/components/index.md +94 -0
- package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +42 -0
- package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +45 -0
- package/dist/docs/api/components/type-aliases/CameraProjection.md +15 -0
- package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +15 -0
- package/dist/docs/api/components/type-aliases/ColliderShape.md +15 -0
- package/dist/docs/api/components/type-aliases/ColliderState.md +62 -0
- package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +27 -0
- package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +37 -0
- package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +34 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentState.md +29 -0
- package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +25 -0
- package/dist/docs/api/components/type-aliases/ImageTargetReference.md +33 -0
- package/dist/docs/api/components/type-aliases/LightValueState.md +41 -0
- package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +15 -0
- package/dist/docs/api/components/type-aliases/MaterialValueState.md +75 -0
- package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +13 -0
- package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +33 -0
- package/dist/docs/api/components/type-aliases/PhysicsState.md +25 -0
- package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +25 -0
- package/dist/docs/api/components/type-aliases/PostprocessingState.md +164 -0
- package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +25 -0
- package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +23 -0
- package/dist/docs/api/components/type-aliases/RigidbodyState.md +53 -0
- package/dist/docs/api/components/type-aliases/RigidbodyType.md +19 -0
- package/dist/docs/api/components/type-aliases/ScriptEntry.md +38 -0
- package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +15 -0
- package/dist/docs/api/components/type-aliases/TransformData.md +27 -0
- package/dist/docs/api/components/type-aliases/TransformModeValue.md +15 -0
- package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +15 -0
- package/dist/docs/api/components/type-aliases/Vec3.md +27 -0
- package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +13 -0
- package/dist/docs/api/index/classes/AnimationStateMachine.md +201 -0
- package/dist/docs/api/index/classes/AnimationStateManager.md +253 -0
- package/dist/docs/api/index/classes/AnimationSystem.md +68 -0
- package/dist/docs/api/index/classes/AudioSystem.md +98 -0
- package/dist/docs/api/index/classes/CameraSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +75 -0
- package/dist/docs/api/index/classes/InputSystem.md +449 -0
- package/dist/docs/api/index/classes/LightSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/MaterialSyncSystem.md +67 -0
- package/dist/docs/api/index/classes/MeshGeometrySystem.md +49 -0
- package/dist/docs/api/index/classes/ObjectManagementSystem.md +298 -0
- package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +49 -0
- package/dist/docs/api/index/classes/PhysicsSyncSystem.md +83 -0
- package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +80 -0
- package/dist/docs/api/index/classes/RenderSystem.md +64 -0
- package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +83 -0
- package/dist/docs/api/index/classes/TransformSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/VideoSystem.md +97 -0
- package/dist/docs/api/index/classes/World.md +1405 -0
- package/dist/docs/api/index/functions/createAnimationComponent.md +28 -0
- package/dist/docs/api/index/functions/createAudioComponent.md +32 -0
- package/dist/docs/api/index/functions/createCameraComponent.md +28 -0
- package/dist/docs/api/index/functions/createEntityTypeComponent.md +28 -0
- package/dist/docs/api/index/functions/createEnvironmentComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageTargetComponent.md +28 -0
- package/dist/docs/api/index/functions/createLightComponent.md +28 -0
- package/dist/docs/api/index/functions/createMaterialComponent.md +28 -0
- package/dist/docs/api/index/functions/createMeshComponent.md +28 -0
- package/dist/docs/api/index/functions/createMeshGeometryComponent.md +28 -0
- package/dist/docs/api/index/functions/createModelComponent.md +28 -0
- package/dist/docs/api/index/functions/createNameComponent.md +28 -0
- package/dist/docs/api/index/functions/createObject3DRefComponent.md +28 -0
- package/dist/docs/api/index/functions/createParentIdComponent.md +28 -0
- package/dist/docs/api/index/functions/createPhysicsComponent.md +30 -0
- package/dist/docs/api/index/functions/createPostprocessingComponent.md +28 -0
- package/dist/docs/api/index/functions/createScriptComponent.md +28 -0
- package/dist/docs/api/index/functions/createSelectableComponent.md +28 -0
- package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +28 -0
- package/dist/docs/api/index/functions/createSpriteComponent.md +28 -0
- package/dist/docs/api/index/functions/createTransformComponent.md +28 -0
- package/dist/docs/api/index/functions/createVideoComponent.md +28 -0
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +28 -0
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +28 -0
- package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +23 -0
- package/dist/docs/api/index/functions/registerDefaultFactories.md +23 -0
- package/dist/docs/api/index/index.md +249 -0
- package/dist/docs/api/index/interfaces/EcsSystem.md +50 -0
- package/dist/docs/api/index/interfaces/StateMachine.md +26 -0
- package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +25 -0
- package/dist/docs/api/index/type-aliases/ComponentFactory.md +25 -0
- package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +37 -0
- package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +26 -0
- package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +25 -0
- package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +23 -0
- package/dist/docs/api/index/type-aliases/KeyboardKey.md +13 -0
- package/dist/docs/api/index/type-aliases/MouseButton.md +13 -0
- package/dist/docs/api/index/type-aliases/SelectionContext.md +31 -0
- package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +13 -0
- package/dist/docs/api/index/variables/KeyboardKeys.md +195 -0
- package/dist/docs/api/index.md +15 -0
- package/dist/docs/api/typedoc-sidebar.json +1 -0
- package/dist/docs/api/types/index.md +34 -0
- package/dist/docs/api/types/type-aliases/AssetInput.md +23 -0
- package/dist/docs/api/types/type-aliases/CheckboxInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ColorInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ComponentInput.md +52 -0
- package/dist/docs/api/types/type-aliases/ComponentKind.md +37 -0
- package/dist/docs/api/types/type-aliases/DropdownInput.md +23 -0
- package/dist/docs/api/types/type-aliases/DropdownOption.md +23 -0
- package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +15 -0
- package/dist/docs/api/types/type-aliases/EcsEntityKind.md +35 -0
- package/dist/docs/api/types/type-aliases/EntityId.md +16 -0
- package/dist/docs/api/types/type-aliases/EntityInput.md +23 -0
- package/dist/docs/api/types/type-aliases/FloatInput.md +13 -0
- package/dist/docs/api/types/type-aliases/IntersectionResult.md +29 -0
- package/dist/docs/api/types/type-aliases/ParentLookup.md +26 -0
- package/dist/docs/api/types/type-aliases/SelectionListener.md +25 -0
- package/dist/docs/api/types/type-aliases/SliderInput.md +27 -0
- package/dist/docs/api/types/type-aliases/TextInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ToggleInput.md +13 -0
- package/dist/docs/api/types/type-aliases/Vec3.md +23 -0
- package/dist/docs/api/types/type-aliases/Vector2Input.md +23 -0
- package/dist/docs/api/types/type-aliases/Vector3Input.md +25 -0
- package/dist/docs/api/types/type-aliases/WorldEntityView.md +17 -0
- package/dist/docs/guide/accessing-components.md +399 -0
- package/dist/docs/guide/authoring-a-behaviour.md +166 -0
- package/dist/docs/guide/behaviour-lifecycle.md +43 -0
- package/dist/docs/guide/component-catalog.md +59 -0
- package/dist/docs/guide/components/_sidebar.json +78 -0
- package/dist/docs/guide/components/animation.md +171 -0
- package/dist/docs/guide/components/audio.md +181 -0
- package/dist/docs/guide/components/camera.md +179 -0
- package/dist/docs/guide/components/entity-type.md +141 -0
- package/dist/docs/guide/components/image-target-anchor.md +103 -0
- package/dist/docs/guide/components/image-target.md +122 -0
- package/dist/docs/guide/components/image.md +146 -0
- package/dist/docs/guide/components/light.md +157 -0
- package/dist/docs/guide/components/material.md +161 -0
- package/dist/docs/guide/components/mesh-geometry.md +153 -0
- package/dist/docs/guide/components/mesh.md +151 -0
- package/dist/docs/guide/components/model.md +96 -0
- package/dist/docs/guide/components/name.md +121 -0
- package/dist/docs/guide/components/object3d-ref.md +115 -0
- package/dist/docs/guide/components/parent-id.md +108 -0
- package/dist/docs/guide/components/physics.md +163 -0
- package/dist/docs/guide/components/script.md +142 -0
- package/dist/docs/guide/components/sprite.md +155 -0
- package/dist/docs/guide/components/transform.md +155 -0
- package/dist/docs/guide/components/video.md +153 -0
- package/dist/docs/guide/concepts.md +34 -0
- package/dist/docs/guide/getting-started/creating-objects.md +50 -0
- package/dist/docs/guide/getting-started/editing-objects.md +62 -0
- package/dist/docs/guide/getting-started/editor/assets-browser.md +55 -0
- package/dist/docs/guide/getting-started/editor/hierarchy.md +47 -0
- package/dist/docs/guide/getting-started/editor/index.md +16 -0
- package/dist/docs/guide/getting-started/editor/inspector.md +36 -0
- package/dist/docs/guide/getting-started/editor/modules.md +35 -0
- package/dist/docs/guide/getting-started/editor/scene-inspector.md +64 -0
- package/dist/docs/guide/getting-started/editor/toolbar.md +39 -0
- package/dist/docs/guide/getting-started/editor/viewport.md +43 -0
- package/dist/docs/guide/getting-started/first-launch.md +17 -0
- package/dist/docs/guide/getting-started/index.md +37 -0
- package/dist/docs/guide/getting-started/installation.md +59 -0
- package/dist/docs/guide/getting-started/preview-and-test.md +55 -0
- package/dist/docs/guide/getting-started/project-types/3d.md +30 -0
- package/dist/docs/guide/getting-started/project-types/ar.md +6 -0
- package/dist/docs/guide/getting-started/project-types/face-tracking.md +6 -0
- package/dist/docs/guide/getting-started/project-types/image-tracking.md +42 -0
- package/dist/docs/guide/getting-started/project-types/index.md +25 -0
- package/dist/docs/guide/getting-started/project-types/vr.md +6 -0
- package/dist/docs/guide/getting-started/projects.md +53 -0
- package/dist/docs/guide/getting-started/shortcuts.md +43 -0
- package/dist/docs/guide/inspector-data-binding.md +367 -0
- package/dist/docs/guide/reading-input.md +202 -0
- package/dist/docs/guide/scene/environment.md +101 -0
- package/dist/docs/guide/scene/index.md +36 -0
- package/dist/docs/guide/scene/postprocessing.md +108 -0
- package/dist/docs/guide/spawning/ambient-light.md +28 -0
- package/dist/docs/guide/spawning/area-light.md +32 -0
- package/dist/docs/guide/spawning/audio.md +42 -0
- package/dist/docs/guide/spawning/camera.md +50 -0
- package/dist/docs/guide/spawning/capsule.md +29 -0
- package/dist/docs/guide/spawning/cube.md +31 -0
- package/dist/docs/guide/spawning/cylinder.md +29 -0
- package/dist/docs/guide/spawning/directional-light.md +32 -0
- package/dist/docs/guide/spawning/empty.md +31 -0
- package/dist/docs/guide/spawning/image-target.md +48 -0
- package/dist/docs/guide/spawning/image.md +33 -0
- package/dist/docs/guide/spawning/index.md +79 -0
- package/dist/docs/guide/spawning/model.md +31 -0
- package/dist/docs/guide/spawning/plane.md +31 -0
- package/dist/docs/guide/spawning/point-light.md +32 -0
- package/dist/docs/guide/spawning/sphere.md +29 -0
- package/dist/docs/guide/spawning/spot-light.md +32 -0
- package/dist/docs/guide/spawning/sprite.md +31 -0
- package/dist/docs/guide/spawning/video.md +53 -0
- package/dist/docs/guide/system-overview.md +73 -0
- package/dist/docs/guide/systems/_sidebar.json +66 -0
- package/dist/docs/guide/systems/animation-system.md +32 -0
- package/dist/docs/guide/systems/audio-system.md +28 -0
- package/dist/docs/guide/systems/camera-sync-system.md +31 -0
- package/dist/docs/guide/systems/environment-sync-system.md +31 -0
- package/dist/docs/guide/systems/input-system.md +217 -0
- package/dist/docs/guide/systems/light-sync-system.md +29 -0
- package/dist/docs/guide/systems/material-sync-system.md +32 -0
- package/dist/docs/guide/systems/mesh-geometry-system.md +40 -0
- package/dist/docs/guide/systems/object-management-system.md +38 -0
- package/dist/docs/guide/systems/object-visibility-system.md +26 -0
- package/dist/docs/guide/systems/physics-sync-system.md +56 -0
- package/dist/docs/guide/systems/postprocessing-sync-system.md +43 -0
- package/dist/docs/guide/systems/render-system.md +22 -0
- package/dist/docs/guide/systems/script-behaviour-system.md +59 -0
- package/dist/docs/guide/systems/transform-sync-system.md +29 -0
- package/dist/docs/guide/systems/video-system.md +30 -0
- package/dist/docs/guide/world-api.md +405 -0
- package/dist/factories/index.cjs +3077 -0
- package/dist/factories/index.cjs.map +1 -0
- package/dist/factories/index.d.cts +69 -0
- package/dist/factories/index.d.ts +69 -0
- package/dist/factories/index.js +6 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/index-B4-YyUNR.d.cts +73 -0
- package/dist/index-BZUOKeTO.d.ts +73 -0
- package/dist/index.cjs +8584 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +283 -0
- package/dist/index.d.ts +283 -0
- package/dist/index.js +1729 -0
- package/dist/index.js.map +1 -0
- package/dist/systems/index.cjs +5119 -0
- package/dist/systems/index.cjs.map +1 -0
- package/dist/systems/index.d.cts +200 -0
- package/dist/systems/index.d.ts +200 -0
- package/dist/systems/index.js +6 -0
- package/dist/systems/index.js.map +1 -0
- package/dist/types.cjs +4 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +3 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/worldSnapshotUtils.cjs +259 -0
- package/dist/worldSnapshotUtils.cjs.map +1 -0
- package/dist/worldSnapshotUtils.d.cts +3 -0
- package/dist/worldSnapshotUtils.d.ts +3 -0
- package/dist/worldSnapshotUtils.js +4 -0
- package/dist/worldSnapshotUtils.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,1261 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { C as Component, e as EcsEntityKind, m as EcsEntityEditorKind, n as EntityId } from './System-rXAmagXA.js';
|
|
3
|
+
import * as RAPIER from '@dimforge/rapier3d-compat';
|
|
4
|
+
|
|
5
|
+
interface StateMachine {
|
|
6
|
+
name: string;
|
|
7
|
+
clip: THREE.AnimationClip;
|
|
8
|
+
clipId: string | null;
|
|
9
|
+
loop: boolean;
|
|
10
|
+
isPlaying: boolean;
|
|
11
|
+
isPaused: boolean;
|
|
12
|
+
onStart: () => void;
|
|
13
|
+
onPlaying: () => void;
|
|
14
|
+
onEnd: () => void;
|
|
15
|
+
play: () => void;
|
|
16
|
+
pause: () => void;
|
|
17
|
+
stop: () => void;
|
|
18
|
+
}
|
|
19
|
+
type AnimationStateCallbacks = {
|
|
20
|
+
onStart?: () => void;
|
|
21
|
+
onPlaying?: () => void;
|
|
22
|
+
onEnd?: () => void;
|
|
23
|
+
};
|
|
24
|
+
declare class AnimationStateMachine implements StateMachine {
|
|
25
|
+
name: string;
|
|
26
|
+
clip: THREE.AnimationClip;
|
|
27
|
+
clipId: string | null;
|
|
28
|
+
loop: boolean;
|
|
29
|
+
isPlaying: boolean;
|
|
30
|
+
isPaused: boolean;
|
|
31
|
+
private callbacks;
|
|
32
|
+
constructor(name: string, clip: THREE.AnimationClip, callbacks?: AnimationStateCallbacks, loop?: boolean, clipId?: string | null);
|
|
33
|
+
setCallbacks(callbacks: AnimationStateCallbacks): void;
|
|
34
|
+
setLoop(loop: boolean): void;
|
|
35
|
+
onStart(): void;
|
|
36
|
+
onPlaying(): void;
|
|
37
|
+
onEnd(): void;
|
|
38
|
+
play(): void;
|
|
39
|
+
pause(): void;
|
|
40
|
+
stop(): void;
|
|
41
|
+
}
|
|
42
|
+
declare class AnimationStateManager {
|
|
43
|
+
private readonly states;
|
|
44
|
+
private activeState;
|
|
45
|
+
addState(state: AnimationStateMachine): AnimationStateMachine;
|
|
46
|
+
createState(name: string, clip: THREE.AnimationClip, callbacks?: AnimationStateCallbacks, loop?: boolean, clipId?: string | null): AnimationStateMachine;
|
|
47
|
+
removeState(name: string): boolean;
|
|
48
|
+
getState(name: string): AnimationStateMachine | null;
|
|
49
|
+
hasState(name: string): boolean;
|
|
50
|
+
listStates(): AnimationStateMachine[];
|
|
51
|
+
getActiveState(): AnimationStateMachine | null;
|
|
52
|
+
switchState(name: string, autoPlay?: boolean): AnimationStateMachine | null;
|
|
53
|
+
playState(name?: string): boolean;
|
|
54
|
+
pauseState(name?: string): boolean;
|
|
55
|
+
stopState(name?: string): boolean;
|
|
56
|
+
clear(): void;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Initializer for {@link AnimationComponent}. */
|
|
60
|
+
type AnimationComponentOptions = {
|
|
61
|
+
/** Initial set of clips imported from the entity's model. */
|
|
62
|
+
clips?: THREE.AnimationClip[];
|
|
63
|
+
/** URLs (or `localasset://` paths) of clips to load asynchronously and merge into the catalog. */
|
|
64
|
+
externalClipSources?: string[];
|
|
65
|
+
/** Name of the state to activate after construction. */
|
|
66
|
+
activeState?: string | null;
|
|
67
|
+
/** Whether playback starts paused. */
|
|
68
|
+
paused?: boolean;
|
|
69
|
+
/** Play the active clip in reverse. */
|
|
70
|
+
reverse?: boolean;
|
|
71
|
+
/** Time-scale multiplier (`1` = real-time). */
|
|
72
|
+
timeScale?: number;
|
|
73
|
+
/** Default cross-fade duration in seconds when switching states. */
|
|
74
|
+
crossFadeDuration?: number;
|
|
75
|
+
/** Predefined state machine entries (`name` -> clip binding). */
|
|
76
|
+
states?: Array<{
|
|
77
|
+
/** State name (must be unique). */
|
|
78
|
+
name: string;
|
|
79
|
+
/** Clip name to play in this state. */
|
|
80
|
+
clip: string;
|
|
81
|
+
/** Optional stable clip id used to disambiguate same-named clips. */
|
|
82
|
+
clipId?: string;
|
|
83
|
+
/** Loop the clip while in this state. */
|
|
84
|
+
loop?: boolean;
|
|
85
|
+
}>;
|
|
86
|
+
};
|
|
87
|
+
/** Catalog entry describing a clip available to the entity (from a model or an external source). */
|
|
88
|
+
type AnimationClipCatalogEntry = {
|
|
89
|
+
/** Stable id used to reference the clip from state machines. */
|
|
90
|
+
id: string;
|
|
91
|
+
/** Internal clip name as stored on the `THREE.AnimationClip`. */
|
|
92
|
+
name: string;
|
|
93
|
+
/** Display label shown in the inspector. */
|
|
94
|
+
label: string;
|
|
95
|
+
/** Underlying three.js clip. */
|
|
96
|
+
clip: THREE.AnimationClip;
|
|
97
|
+
/** Where this clip came from. */
|
|
98
|
+
source: "model" | "external";
|
|
99
|
+
/** Source URL/path for `external` clips; `null` for clips imported from a model. */
|
|
100
|
+
sourceUrl: string | null;
|
|
101
|
+
};
|
|
102
|
+
type ImportedClipEntry = {
|
|
103
|
+
clip: THREE.AnimationClip;
|
|
104
|
+
sourceUrl: string | null;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Animation catalog and runtime state for an entity. Combines clips imported
|
|
108
|
+
* from a model with externally added clips, exposes a state machine for
|
|
109
|
+
* named transitions, and is queried each frame by the animation system to
|
|
110
|
+
* advance mixer time.
|
|
111
|
+
*
|
|
112
|
+
* @remarks
|
|
113
|
+
* Use the `addState` / `switchState` helpers rather than mutating the state
|
|
114
|
+
* machine directly so the animation system observes transitions.
|
|
115
|
+
*
|
|
116
|
+
* @category Components
|
|
117
|
+
*/
|
|
118
|
+
declare class AnimationComponent extends Component {
|
|
119
|
+
private modelClips;
|
|
120
|
+
private importedClips;
|
|
121
|
+
private clipById;
|
|
122
|
+
private clipEntriesById;
|
|
123
|
+
/** Combined ordered list of clips (model + external) currently loaded. */
|
|
124
|
+
clips: THREE.AnimationClip[];
|
|
125
|
+
/** Per-clip metadata used by the inspector. */
|
|
126
|
+
clipCatalog: AnimationClipCatalogEntry[];
|
|
127
|
+
/** Display names of clips available for state-machine bindings. */
|
|
128
|
+
availableClips: string[];
|
|
129
|
+
/** URLs/paths of external clip sources (saved with the project). */
|
|
130
|
+
externalClipSources: string[];
|
|
131
|
+
/** Whether playback is currently paused. */
|
|
132
|
+
paused: boolean;
|
|
133
|
+
/** Play the active clip in reverse. */
|
|
134
|
+
reverse: boolean;
|
|
135
|
+
/** Playback speed multiplier (`1` = real-time). */
|
|
136
|
+
timeScale: number;
|
|
137
|
+
/** Default cross-fade duration in seconds when switching states. */
|
|
138
|
+
crossFadeDuration: number;
|
|
139
|
+
/** All state-machine entries authored on this entity. */
|
|
140
|
+
states: AnimationStateMachine[];
|
|
141
|
+
/** State currently being played, or `null` if none. */
|
|
142
|
+
active: AnimationStateMachine | null;
|
|
143
|
+
/** Name of the {@link active} state, or `null` if none. */
|
|
144
|
+
activeStateName: string | null;
|
|
145
|
+
/** Manager that drives state transitions; mutate via {@link addState}/{@link switchState}. */
|
|
146
|
+
stateManager: AnimationStateManager;
|
|
147
|
+
constructor(options?: AnimationComponentOptions);
|
|
148
|
+
private refreshClipCatalog;
|
|
149
|
+
private refreshStateRefs;
|
|
150
|
+
private resolveClipRef;
|
|
151
|
+
setModelClips(clips: THREE.AnimationClip[]): void;
|
|
152
|
+
setImportedClips(clips: THREE.AnimationClip[] | ImportedClipEntry[]): void;
|
|
153
|
+
setExternalClipSources(sources: string[]): void;
|
|
154
|
+
addState(name: string, clipRef: string, loop?: boolean): AnimationStateMachine | null;
|
|
155
|
+
setStates(states: Array<{
|
|
156
|
+
name: string;
|
|
157
|
+
clip: string;
|
|
158
|
+
clipId?: string;
|
|
159
|
+
loop?: boolean;
|
|
160
|
+
}>): void;
|
|
161
|
+
getStateConfigs(): Array<{
|
|
162
|
+
name: string;
|
|
163
|
+
clip: string;
|
|
164
|
+
clipId: string | null;
|
|
165
|
+
loop: boolean;
|
|
166
|
+
}>;
|
|
167
|
+
setActiveState(name: string | null, autoPlay?: boolean): boolean;
|
|
168
|
+
removeState(name: string): boolean;
|
|
169
|
+
switchState(name: string, autoPlay?: boolean): boolean;
|
|
170
|
+
playState(name?: string): boolean;
|
|
171
|
+
pauseState(name?: string): boolean;
|
|
172
|
+
stopState(name?: string): boolean;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/** Runtime camera mode. `3d` is a free camera; `ar` is composited over a tracked image/face feed. */
|
|
176
|
+
type CameraRuntimeType = "3d" | "ar";
|
|
177
|
+
/** Projection model. */
|
|
178
|
+
type CameraProjection = "perspective" | "orthographic";
|
|
179
|
+
/** Optional initializer for {@link CameraComponent}. Any field omitted falls back to the defaults documented on the component. */
|
|
180
|
+
type CameraComponentOptions = {
|
|
181
|
+
/** Pre-built three.js camera. When omitted the component creates one from {@link projection}. */
|
|
182
|
+
camera?: THREE.Camera;
|
|
183
|
+
/** Runtime camera mode. */
|
|
184
|
+
type?: CameraRuntimeType;
|
|
185
|
+
/** Mark this camera as the default camera the renderer uses. */
|
|
186
|
+
isDefault?: boolean;
|
|
187
|
+
/** Projection model. */
|
|
188
|
+
projection?: CameraProjection;
|
|
189
|
+
/** Vertical field of view in **degrees** (perspective only). */
|
|
190
|
+
fov?: number;
|
|
191
|
+
/** Near clip plane in world units. */
|
|
192
|
+
near?: number;
|
|
193
|
+
/** Far clip plane in world units. */
|
|
194
|
+
far?: number;
|
|
195
|
+
/** Left edge of the orthographic frustum in world units. */
|
|
196
|
+
left?: number;
|
|
197
|
+
/** Right edge of the orthographic frustum in world units. */
|
|
198
|
+
right?: number;
|
|
199
|
+
/** Top edge of the orthographic frustum in world units. */
|
|
200
|
+
top?: number;
|
|
201
|
+
/** Bottom edge of the orthographic frustum in world units. */
|
|
202
|
+
bottom?: number;
|
|
203
|
+
/** Zoom multiplier (`1` = no zoom). */
|
|
204
|
+
zoom?: number;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Camera entity state. Supports perspective and orthographic projections, a
|
|
208
|
+
* `3d` or `ar` runtime type, and an `isDefault` flag for the camera that the
|
|
209
|
+
* preview/editor renders through. Field-of-view, near/far, ortho frustum, and
|
|
210
|
+
* zoom are persisted; the live `THREE.Camera` is recreated when the project loads.
|
|
211
|
+
*
|
|
212
|
+
* @category Components
|
|
213
|
+
*/
|
|
214
|
+
declare class CameraComponent extends Component {
|
|
215
|
+
/** Live three.js camera. Recreated when the project loads to match {@link projection}. */
|
|
216
|
+
camera: THREE.Camera;
|
|
217
|
+
/** Runtime camera mode (`3d` or `ar`). */
|
|
218
|
+
type: CameraRuntimeType;
|
|
219
|
+
/** When `true`, this is the active rendering camera. Only one camera per scene should be the default. */
|
|
220
|
+
isDefault: boolean;
|
|
221
|
+
/** Active projection model (`perspective` or `orthographic`). */
|
|
222
|
+
projection: CameraProjection;
|
|
223
|
+
/** Vertical field of view in **degrees**. Used when {@link projection} is `perspective`. */
|
|
224
|
+
fov: number;
|
|
225
|
+
/** Near clip plane in world units. */
|
|
226
|
+
near: number;
|
|
227
|
+
/** Far clip plane in world units. */
|
|
228
|
+
far: number;
|
|
229
|
+
/** Left edge of the orthographic frustum (orthographic only). */
|
|
230
|
+
left: number;
|
|
231
|
+
/** Right edge of the orthographic frustum (orthographic only). */
|
|
232
|
+
right: number;
|
|
233
|
+
/** Top edge of the orthographic frustum (orthographic only). */
|
|
234
|
+
top: number;
|
|
235
|
+
/** Bottom edge of the orthographic frustum (orthographic only). */
|
|
236
|
+
bottom: number;
|
|
237
|
+
/** Zoom multiplier applied to the projection. */
|
|
238
|
+
zoom: number;
|
|
239
|
+
constructor(payload?: CameraComponentOptions);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @internal Default options applied when no override is provided.
|
|
244
|
+
*/
|
|
245
|
+
declare const DEFAULT_AUDIO_OPTIONS: {
|
|
246
|
+
autoplay: boolean;
|
|
247
|
+
loop: boolean;
|
|
248
|
+
pitch: number;
|
|
249
|
+
volume: number;
|
|
250
|
+
positional: boolean;
|
|
251
|
+
refDistance: number;
|
|
252
|
+
distanceModel: string;
|
|
253
|
+
rolloffFactor: number;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Plays an audio clip from `path`. Supports both global stereo (`positional:
|
|
257
|
+
* false`) and 3D positional audio with the configured distance model.
|
|
258
|
+
* Runtime fields (`object`, `audio`, `isPlaying`, `isPaused`) are recreated
|
|
259
|
+
* when the project loads and are never persisted to saved snapshots.
|
|
260
|
+
*
|
|
261
|
+
* @category Components
|
|
262
|
+
*/
|
|
263
|
+
declare class AudioComponent extends Component {
|
|
264
|
+
/** Source URL or `localasset://` path of the audio file. */
|
|
265
|
+
path: string;
|
|
266
|
+
/**
|
|
267
|
+
* Playback options.
|
|
268
|
+
*
|
|
269
|
+
* | Field | Default | Description |
|
|
270
|
+
* |---|---|---|
|
|
271
|
+
* | `autoplay` | `false` | Start playback as soon as the clip is loaded. |
|
|
272
|
+
* | `loop` | `false` | Loop playback indefinitely. |
|
|
273
|
+
* | `pitch` | `1` | Playback rate multiplier (`1` = normal speed/pitch). |
|
|
274
|
+
* | `volume` | `1` | Linear gain in `[0, 1]`. |
|
|
275
|
+
* | `positional` | `false` | When `true`, audio is spatialized using the entity's transform. |
|
|
276
|
+
* | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). |
|
|
277
|
+
* | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). |
|
|
278
|
+
* | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. |
|
|
279
|
+
*/
|
|
280
|
+
options: typeof DEFAULT_AUDIO_OPTIONS;
|
|
281
|
+
/** Live three.js object hosting the audio (a parented `Audio`/`PositionalAudio`). `null` until built. */
|
|
282
|
+
object: THREE.Object3D | null;
|
|
283
|
+
/** Live three.js audio source. `null` until built. Recreated when the project loads. */
|
|
284
|
+
audio: THREE.Audio<GainNode> | THREE.PositionalAudio | null;
|
|
285
|
+
/**
|
|
286
|
+
* Whether the audio should be playing. Managed by `AudioSystem` in preview.
|
|
287
|
+
* Non-enumerable — not persisted to snapshots or save data.
|
|
288
|
+
* Set via {@link play} / {@link stop}.
|
|
289
|
+
*/
|
|
290
|
+
isPlaying: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* Whether the audio is paused mid-playback (position is preserved).
|
|
293
|
+
* Non-enumerable — not persisted to snapshots or save data.
|
|
294
|
+
* Set via {@link pause} / {@link play} / {@link stop}.
|
|
295
|
+
*/
|
|
296
|
+
isPaused: boolean;
|
|
297
|
+
constructor(path: string, options?: Partial<typeof DEFAULT_AUDIO_OPTIONS>);
|
|
298
|
+
/**
|
|
299
|
+
* Signals `AudioSystem` to start (or resume) playback.
|
|
300
|
+
* Has no direct effect in the editor — `AudioSystem` drives the actual
|
|
301
|
+
* THREE.js call in preview.
|
|
302
|
+
*/
|
|
303
|
+
play(): void;
|
|
304
|
+
/**
|
|
305
|
+
* Signals `AudioSystem` to pause playback, preserving the current position.
|
|
306
|
+
* Calling {@link play} afterwards resumes from where it paused.
|
|
307
|
+
* No-op if not currently playing.
|
|
308
|
+
*/
|
|
309
|
+
pause(): void;
|
|
310
|
+
/**
|
|
311
|
+
* Signals `AudioSystem` to stop playback and reset the playback position.
|
|
312
|
+
*/
|
|
313
|
+
stop(): void;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/** Skybox rendering modes. `none` disables skybox rendering entirely. */
|
|
317
|
+
type EnvironmentSkyboxType = "gradient" | "color" | "image" | "none";
|
|
318
|
+
/** Gradient distribution applied when {@link EnvironmentSkyboxState.type} is `"gradient"`. */
|
|
319
|
+
type EnvironmentGradientEffect = "radial" | "linear" | "angular";
|
|
320
|
+
/** Fog distance models. `none` disables fog. */
|
|
321
|
+
type EnvironmentFogType = "linear" | "exponential" | "none";
|
|
322
|
+
/** Skybox configuration. Only the fields relevant to {@link type} are read at render time. */
|
|
323
|
+
type EnvironmentSkyboxState = {
|
|
324
|
+
/** Active skybox mode. */
|
|
325
|
+
type: EnvironmentSkyboxType;
|
|
326
|
+
/** Solid color used when {@link type} is `"color"`. `#rrggbb`. */
|
|
327
|
+
color: string;
|
|
328
|
+
/** URL or `localasset://` path of the equirectangular image used when {@link type} is `"image"`. */
|
|
329
|
+
imageUrl?: string;
|
|
330
|
+
/** Gradient parameters used when {@link type} is `"gradient"`. */
|
|
331
|
+
gradient: {
|
|
332
|
+
/** Ordered list of color stops as `#rrggbb` strings. */
|
|
333
|
+
colors: string[];
|
|
334
|
+
/** Gradient distribution. */
|
|
335
|
+
effect: EnvironmentGradientEffect;
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
/** Fog configuration. Mirrors three.js `Fog` / `FogExp2`. */
|
|
339
|
+
type EnvironmentFogState = {
|
|
340
|
+
/** Active fog model. */
|
|
341
|
+
type: EnvironmentFogType;
|
|
342
|
+
/** Fog color as `#rrggbb`. */
|
|
343
|
+
color: string;
|
|
344
|
+
/** Linear-fog parameters used when {@link type} is `"linear"`. */
|
|
345
|
+
linear: {
|
|
346
|
+
/** Distance at which fog begins to take effect. */
|
|
347
|
+
near: number;
|
|
348
|
+
/** Distance at which fog reaches full opacity. */
|
|
349
|
+
far: number;
|
|
350
|
+
};
|
|
351
|
+
/** Exponential-fog parameters used when {@link type} is `"exponential"`. */
|
|
352
|
+
exponential: {
|
|
353
|
+
/** Density coefficient. Higher values produce thicker fog. */
|
|
354
|
+
density: number;
|
|
355
|
+
};
|
|
356
|
+
};
|
|
357
|
+
/** World gravity vector applied by the physics system, in world units per second squared. */
|
|
358
|
+
type EnvironmentGravityState = {
|
|
359
|
+
/** Gravity along world X. */
|
|
360
|
+
x: number;
|
|
361
|
+
/** Gravity along world Y (negative pulls objects down). */
|
|
362
|
+
y: number;
|
|
363
|
+
/** Gravity along world Z. */
|
|
364
|
+
z: number;
|
|
365
|
+
};
|
|
366
|
+
/** Aggregated authoring state owned by {@link Environment}. */
|
|
367
|
+
type EnvironmentState = {
|
|
368
|
+
/** Skybox configuration. */
|
|
369
|
+
skybox: EnvironmentSkyboxState;
|
|
370
|
+
/** Fog configuration. */
|
|
371
|
+
fog: EnvironmentFogState;
|
|
372
|
+
/** World gravity. */
|
|
373
|
+
gravity: EnvironmentGravityState;
|
|
374
|
+
/**
|
|
375
|
+
* Fixed timestep (seconds) used by the physics accumulator loop.
|
|
376
|
+
* Physics is stepped in fixed increments of this size each frame.
|
|
377
|
+
* Default is `0.02` (50 Hz).
|
|
378
|
+
*/
|
|
379
|
+
fixedTimeStep: number;
|
|
380
|
+
};
|
|
381
|
+
declare const DEFAULT_ENVIRONMENT_STATE: EnvironmentState;
|
|
382
|
+
/**
|
|
383
|
+
* Scene environment settings: skybox (gradient/color/image), fog
|
|
384
|
+
* (linear/exponential), and gravity vector for the physics world.
|
|
385
|
+
* Singleton-style — attached to one environment entity per scene.
|
|
386
|
+
*
|
|
387
|
+
* @category Components
|
|
388
|
+
*/
|
|
389
|
+
declare class Environment extends Component {
|
|
390
|
+
/** Aggregated environment authoring state (skybox, fog, gravity). Saved with the project. */
|
|
391
|
+
values: EnvironmentState;
|
|
392
|
+
constructor(values?: Partial<EnvironmentState>);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/** Aggregated post-processing effect chain authored on the scene environment. Each sub-effect has its own `enabled` flag plus per-effect parameters. */
|
|
396
|
+
type PostprocessingState = {
|
|
397
|
+
/** Master toggle. When `false` no post-processing is applied even if individual effects are enabled. */
|
|
398
|
+
postEnabled: boolean;
|
|
399
|
+
/** Depth-of-field (bokeh) effect. */
|
|
400
|
+
dof: {
|
|
401
|
+
/** Enable the effect. */
|
|
402
|
+
enabled: boolean;
|
|
403
|
+
/** Distance to the focal plane in world units. */
|
|
404
|
+
focusDistance: number;
|
|
405
|
+
/** Lens focal length controlling depth-of-field strength. */
|
|
406
|
+
focalLength: number;
|
|
407
|
+
/** Bokeh blur kernel scale. */
|
|
408
|
+
bokehScale: number;
|
|
409
|
+
};
|
|
410
|
+
/** Bloom (HDR glow) effect. */
|
|
411
|
+
bloom: {
|
|
412
|
+
/** Enable the effect. */
|
|
413
|
+
enabled: boolean;
|
|
414
|
+
/** Strength of the bloom contribution. */
|
|
415
|
+
intensity: number;
|
|
416
|
+
/** Luminance threshold above which pixels bloom. */
|
|
417
|
+
threshold: number;
|
|
418
|
+
/** Blur radius applied to the bloom buffer. */
|
|
419
|
+
radius: number;
|
|
420
|
+
};
|
|
421
|
+
/** Vignette (corner darkening) effect. */
|
|
422
|
+
vignette: {
|
|
423
|
+
/** Enable the effect. */
|
|
424
|
+
enabled: boolean;
|
|
425
|
+
/** Distance from screen center where the vignette begins. */
|
|
426
|
+
offset: number;
|
|
427
|
+
/** Maximum darkness applied at screen edges. */
|
|
428
|
+
darkness: number;
|
|
429
|
+
};
|
|
430
|
+
/** Chromatic aberration (RGB channel offset) effect. */
|
|
431
|
+
chromAberration: {
|
|
432
|
+
/** Enable the effect. */
|
|
433
|
+
enabled: boolean;
|
|
434
|
+
/** Horizontal channel offset. */
|
|
435
|
+
offsetX: number;
|
|
436
|
+
/** Vertical channel offset. */
|
|
437
|
+
offsetY: number;
|
|
438
|
+
};
|
|
439
|
+
/** Film-noise overlay. */
|
|
440
|
+
noise: {
|
|
441
|
+
/** Enable the effect. */
|
|
442
|
+
enabled: boolean;
|
|
443
|
+
/** Opacity of the noise layer in `[0, 1]`. */
|
|
444
|
+
opacity: number;
|
|
445
|
+
};
|
|
446
|
+
/** Pixelation (mosaic) effect. */
|
|
447
|
+
pixelation: {
|
|
448
|
+
/** Enable the effect. */
|
|
449
|
+
enabled: boolean;
|
|
450
|
+
/** Pixel block size in screen pixels. */
|
|
451
|
+
granularity: number;
|
|
452
|
+
};
|
|
453
|
+
/** Tone-mapping exposure control. */
|
|
454
|
+
toneMapping: {
|
|
455
|
+
/** Enable the effect. */
|
|
456
|
+
enabled: boolean;
|
|
457
|
+
/** Exposure multiplier applied before tone-mapping. */
|
|
458
|
+
exposure: number;
|
|
459
|
+
};
|
|
460
|
+
/** Hue/saturation color grading. */
|
|
461
|
+
hueSaturation: {
|
|
462
|
+
/** Enable the effect. */
|
|
463
|
+
enabled: boolean;
|
|
464
|
+
/** Hue rotation in radians. */
|
|
465
|
+
hue: number;
|
|
466
|
+
/** Saturation offset (`0` = unchanged, `>0` = more saturated). */
|
|
467
|
+
saturation: number;
|
|
468
|
+
};
|
|
469
|
+
/** Sepia color grade. */
|
|
470
|
+
sepia: {
|
|
471
|
+
/** Enable the effect. */
|
|
472
|
+
enabled: boolean;
|
|
473
|
+
/** Blend strength between original and sepia in `[0, 1]`. */
|
|
474
|
+
intensity: number;
|
|
475
|
+
};
|
|
476
|
+
/** SMAA antialiasing pass. */
|
|
477
|
+
smaa: {
|
|
478
|
+
/** Enable the effect. */
|
|
479
|
+
enabled: boolean;
|
|
480
|
+
};
|
|
481
|
+
/** Screen-space ambient occlusion. */
|
|
482
|
+
ssao: {
|
|
483
|
+
/** Enable the effect. */
|
|
484
|
+
enabled: boolean;
|
|
485
|
+
/** Strength of the AO contribution. */
|
|
486
|
+
intensity: number;
|
|
487
|
+
/** Sampling radius in world units. */
|
|
488
|
+
radius: number;
|
|
489
|
+
};
|
|
490
|
+
/** Dot-screen (halftone) effect. */
|
|
491
|
+
dotScreen: {
|
|
492
|
+
/** Enable the effect. */
|
|
493
|
+
enabled: boolean;
|
|
494
|
+
/** Pattern scale (legacy field; use {@link scale} where available). */
|
|
495
|
+
dotScreenScale: number;
|
|
496
|
+
/** Pattern rotation in radians (legacy field; use {@link angle} where available). */
|
|
497
|
+
dotScreenAngle: number;
|
|
498
|
+
/** Pattern rotation in radians. */
|
|
499
|
+
angle?: number;
|
|
500
|
+
/** Pattern scale. */
|
|
501
|
+
scale?: number;
|
|
502
|
+
/** Three.js blend function override. */
|
|
503
|
+
blendFunction?: number;
|
|
504
|
+
/** Effect opacity in `[0, 1]`. */
|
|
505
|
+
opacity?: number;
|
|
506
|
+
};
|
|
507
|
+
/** Glitch effect (digital corruption simulation). */
|
|
508
|
+
glitch: {
|
|
509
|
+
/** Enable the effect. */
|
|
510
|
+
enabled: boolean;
|
|
511
|
+
/** Three.js blend function override. */
|
|
512
|
+
blendFunction?: number;
|
|
513
|
+
/** RGB channel offset applied during a glitch burst. */
|
|
514
|
+
chromaticAberrationOffset?: {
|
|
515
|
+
x: number;
|
|
516
|
+
y: number;
|
|
517
|
+
} | [number, number];
|
|
518
|
+
/** `[min, max]` delay (seconds) between glitch bursts. */
|
|
519
|
+
delay?: [number, number];
|
|
520
|
+
/** `[min, max]` duration (seconds) of each glitch burst. */
|
|
521
|
+
duration?: [number, number];
|
|
522
|
+
/** Glitch displacement strength (scalar or per-axis). */
|
|
523
|
+
strength?: number | {
|
|
524
|
+
x: number;
|
|
525
|
+
y: number;
|
|
526
|
+
};
|
|
527
|
+
/** Size of the displacement texture sampled by the glitch shader. */
|
|
528
|
+
dtSize?: number;
|
|
529
|
+
/** Fraction of columns affected during a glitch burst. */
|
|
530
|
+
columns?: number;
|
|
531
|
+
/** Ratio between weak and strong glitch bursts. */
|
|
532
|
+
ratio?: number;
|
|
533
|
+
/** Glitch mode label (matches the postprocessing library's mode enum). */
|
|
534
|
+
mode?: string;
|
|
535
|
+
/** Force the glitch to remain active. */
|
|
536
|
+
active?: boolean;
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
declare const DEFAULT_POSTPROCESSING_STATE: PostprocessingState;
|
|
540
|
+
/**
|
|
541
|
+
* Postprocessing stack settings (depth-of-field, bloom, vignette, chromatic
|
|
542
|
+
* aberration, noise, pixelation, tone mapping, hue/saturation, sepia, SMAA,
|
|
543
|
+
* SSAO, dot-screen, glitch). The render system applies enabled effects in a
|
|
544
|
+
* `postprocessing`-library composer when `postEnabled` is `true`. Singleton-
|
|
545
|
+
* style — attached to one entity per scene.
|
|
546
|
+
*
|
|
547
|
+
* @category Components
|
|
548
|
+
*/
|
|
549
|
+
declare class Postprocessing extends Component {
|
|
550
|
+
/** Aggregated post-processing state. Saved with the project. */
|
|
551
|
+
values: PostprocessingState;
|
|
552
|
+
constructor(values?: Partial<PostprocessingState>);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
type RapierRigidBody = RAPIER.RigidBody;
|
|
556
|
+
type RapierCollider = RAPIER.Collider;
|
|
557
|
+
/**
|
|
558
|
+
* Rigidbody body type:
|
|
559
|
+
* - `dynamic`: simulated by physics; affected by forces and gravity.
|
|
560
|
+
* - `fixed`: immovable static body.
|
|
561
|
+
* - `kinematicPosition`: moved by setting next position; ignores forces.
|
|
562
|
+
* - `kinematicVelocity`: moved by setting velocity; ignores forces.
|
|
563
|
+
*/
|
|
564
|
+
type RigidbodyType = "dynamic" | "fixed" | "kinematicPosition" | "kinematicVelocity";
|
|
565
|
+
/** Authoring state for the rigidbody half of {@link PhysicsComponent}. Saved with the project. */
|
|
566
|
+
type RigidbodyState = {
|
|
567
|
+
/** When `false`, the body is removed from physics simulation but kept in state. */
|
|
568
|
+
enabled: boolean;
|
|
569
|
+
/** Body type. See {@link RigidbodyType}. */
|
|
570
|
+
type: RigidbodyType;
|
|
571
|
+
/** Mass in kilograms. Only meaningful for `dynamic` bodies. */
|
|
572
|
+
mass: number;
|
|
573
|
+
/** Damping applied to linear velocity each step (`0` = none). */
|
|
574
|
+
linearDamping: number;
|
|
575
|
+
/** Damping applied to angular velocity each step (`0` = none). */
|
|
576
|
+
angularDamping: number;
|
|
577
|
+
/** Scale factor applied to world gravity for this body (`1` = full gravity, `0` = floating). */
|
|
578
|
+
gravityScale: number;
|
|
579
|
+
/** Allow the body to sleep when at rest to save simulation cost. */
|
|
580
|
+
canSleep: boolean;
|
|
581
|
+
/** Enable continuous collision detection to prevent tunneling for fast bodies. */
|
|
582
|
+
ccdEnabled: boolean;
|
|
583
|
+
/** Master toggle: when `true`, all linear motion is locked. */
|
|
584
|
+
lockTranslations: boolean;
|
|
585
|
+
/** Lock translation along world X. */
|
|
586
|
+
lockTranslationX: boolean;
|
|
587
|
+
/** Lock translation along world Y. */
|
|
588
|
+
lockTranslationY: boolean;
|
|
589
|
+
/** Lock translation along world Z. */
|
|
590
|
+
lockTranslationZ: boolean;
|
|
591
|
+
/** Master toggle: when `true`, all rotation is locked. */
|
|
592
|
+
lockRotations: boolean;
|
|
593
|
+
/** Lock rotation around world X. */
|
|
594
|
+
lockRotationX: boolean;
|
|
595
|
+
/** Lock rotation around world Y. */
|
|
596
|
+
lockRotationY: boolean;
|
|
597
|
+
/** Lock rotation around world Z. */
|
|
598
|
+
lockRotationZ: boolean;
|
|
599
|
+
};
|
|
600
|
+
declare const DEFAULT_RIGIDBODY_STATE: RigidbodyState;
|
|
601
|
+
/** Collider primitive shape. `trimesh` derives geometry from the entity's mesh. */
|
|
602
|
+
type ColliderShape = "cuboid" | "ball" | "capsule" | "cylinder" | "trimesh";
|
|
603
|
+
/** Authoring state for the collider half of {@link PhysicsComponent}. Only the size fields relevant to {@link ColliderState.shape} are read at simulation time. */
|
|
604
|
+
type ColliderState = {
|
|
605
|
+
/** When `false`, the collider is removed from physics simulation but kept in state. */
|
|
606
|
+
enabled: boolean;
|
|
607
|
+
/** Collider primitive shape. */
|
|
608
|
+
shape: ColliderShape;
|
|
609
|
+
/** Local offset of the collider relative to the entity's transform, in world units. */
|
|
610
|
+
offsetPosition: {
|
|
611
|
+
/** Offset along local X. */
|
|
612
|
+
x: number;
|
|
613
|
+
/** Offset along local Y. */
|
|
614
|
+
y: number;
|
|
615
|
+
/** Offset along local Z. */
|
|
616
|
+
z: number;
|
|
617
|
+
};
|
|
618
|
+
/** Local rotation offset in **radians** (Euler XYZ). */
|
|
619
|
+
offsetRotation: {
|
|
620
|
+
/** Rotation around local X (radians). */
|
|
621
|
+
x: number;
|
|
622
|
+
/** Rotation around local Y (radians). */
|
|
623
|
+
y: number;
|
|
624
|
+
/** Rotation around local Z (radians). */
|
|
625
|
+
z: number;
|
|
626
|
+
};
|
|
627
|
+
/** Half-extents for `cuboid` shape, in world units. */
|
|
628
|
+
size: {
|
|
629
|
+
/** Half-extent along X. */
|
|
630
|
+
x: number;
|
|
631
|
+
/** Half-extent along Y. */
|
|
632
|
+
y: number;
|
|
633
|
+
/** Half-extent along Z. */
|
|
634
|
+
z: number;
|
|
635
|
+
};
|
|
636
|
+
/** Radius for `ball`, `capsule`, and `cylinder` shapes. */
|
|
637
|
+
radius: number;
|
|
638
|
+
/** Height for `capsule` (segment length between caps) and `cylinder`. */
|
|
639
|
+
height: number;
|
|
640
|
+
/** Bounciness in `[0, 1]`. `0` is no bounce; `1` is perfectly elastic. */
|
|
641
|
+
restitution: number;
|
|
642
|
+
/** Surface friction coefficient. `0` is frictionless. */
|
|
643
|
+
friction: number;
|
|
644
|
+
/** When `true`, the collider reports overlaps but does not generate contact responses. */
|
|
645
|
+
isSensor: boolean;
|
|
646
|
+
};
|
|
647
|
+
declare const DEFAULT_COLLIDER_STATE: ColliderState;
|
|
648
|
+
/** Combined authoring state for {@link PhysicsComponent}. Saved with the project. */
|
|
649
|
+
type PhysicsState = {
|
|
650
|
+
/** Rigid body settings. */
|
|
651
|
+
rigidbody: RigidbodyState;
|
|
652
|
+
/** Collider settings. */
|
|
653
|
+
collider: ColliderState;
|
|
654
|
+
};
|
|
655
|
+
declare const DEFAULT_PHYSICS_STATE: PhysicsState;
|
|
656
|
+
declare function normalizePhysicsState(value: {
|
|
657
|
+
rigidbody?: Partial<RigidbodyState>;
|
|
658
|
+
collider?: Partial<ColliderState>;
|
|
659
|
+
} | undefined): PhysicsState;
|
|
660
|
+
/**
|
|
661
|
+
* Unified physics component combining a Rapier rigid body and a Rapier
|
|
662
|
+
* collider into a single authoring and runtime container.
|
|
663
|
+
*
|
|
664
|
+
* Use `values.rigidbody` to configure body type, mass, damping, locks, etc.
|
|
665
|
+
* Use `values.collider` to configure collider shape, size, offset, material
|
|
666
|
+
* properties, and sensor mode.
|
|
667
|
+
*
|
|
668
|
+
* The runtime `rigidBody` and `collider` references are created by the physics
|
|
669
|
+
* system when the project loads and are `null` until physics is initialized.
|
|
670
|
+
*
|
|
671
|
+
* @category Components
|
|
672
|
+
*/
|
|
673
|
+
declare class PhysicsComponent extends Component {
|
|
674
|
+
/** Authoring state. Saved with the project. */
|
|
675
|
+
values: PhysicsState;
|
|
676
|
+
/** Live Rapier rigid body. `null` until physics is initialized. */
|
|
677
|
+
rigidBody: RapierRigidBody | null;
|
|
678
|
+
/** Live Rapier collider. `null` until physics is initialized. */
|
|
679
|
+
collider: RapierCollider | null;
|
|
680
|
+
constructor(values?: {
|
|
681
|
+
rigidbody?: Partial<RigidbodyState>;
|
|
682
|
+
collider?: Partial<ColliderState>;
|
|
683
|
+
});
|
|
684
|
+
/**
|
|
685
|
+
* Patch rigidbody and/or collider state. Each sub-object is deep-merged
|
|
686
|
+
* with the current values via the respective normalizer.
|
|
687
|
+
*/
|
|
688
|
+
setValues(patch: {
|
|
689
|
+
rigidbody?: Partial<RigidbodyState>;
|
|
690
|
+
collider?: Partial<ColliderState>;
|
|
691
|
+
}): void;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
/**
|
|
695
|
+
* Tags an entity with the kind it was created from (`cube`, `sphere`,
|
|
696
|
+
* `model`, `directionalLight`, etc.). Factories use this to drive
|
|
697
|
+
* kind-specific behavior; the editor inspector uses it to select component
|
|
698
|
+
* editors.
|
|
699
|
+
*
|
|
700
|
+
* @category Components
|
|
701
|
+
*/
|
|
702
|
+
declare class EntityType extends Component {
|
|
703
|
+
/** Kind tag identifying which factory created this entity (e.g. `cube`, `directionalLight`, `model`). */
|
|
704
|
+
value: EcsEntityKind | EcsEntityEditorKind;
|
|
705
|
+
constructor(value: EcsEntityKind | EcsEntityEditorKind);
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* Renders a 2D image as a textured quad in the scene. Width/height are in
|
|
710
|
+
* world units. Texture loading is handled by the image system, which
|
|
711
|
+
* populates {@link ImageComponent.texture} and {@link ImageComponent.object}
|
|
712
|
+
* asynchronously.
|
|
713
|
+
*
|
|
714
|
+
* @category Components
|
|
715
|
+
*/
|
|
716
|
+
declare class ImageComponent extends Component {
|
|
717
|
+
/** Source URL or `localasset://` path of the image file. */
|
|
718
|
+
path: string;
|
|
719
|
+
/** Width of the rendered quad in world units. */
|
|
720
|
+
width: number;
|
|
721
|
+
/** Height of the rendered quad in world units. */
|
|
722
|
+
height: number;
|
|
723
|
+
/** Loaded texture, populated asynchronously by the image system. `null` until loaded. */
|
|
724
|
+
texture: THREE.Texture | null;
|
|
725
|
+
/** Live three.js object representing the textured quad. `null` until built. */
|
|
726
|
+
object: THREE.Object3D | null;
|
|
727
|
+
constructor(path: string, width?: number, height?: number);
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/** Single uploaded image used as input to the image-target compiler. */
|
|
731
|
+
type ImageTargetReference = {
|
|
732
|
+
/** Stable target id assigned at compile time. Referenced by {@link ImageTargetAnchor.targetId}. */
|
|
733
|
+
id: number;
|
|
734
|
+
/** Source image URL or `localasset://` path. */
|
|
735
|
+
url: string;
|
|
736
|
+
/** Image width in pixels. */
|
|
737
|
+
width: number;
|
|
738
|
+
/** Image height in pixels. */
|
|
739
|
+
height: number;
|
|
740
|
+
/** Local directory the source image is stored in (desktop projects). */
|
|
741
|
+
storageDir?: string;
|
|
742
|
+
/** Local file name for the source image (desktop projects). */
|
|
743
|
+
fileName?: string;
|
|
744
|
+
};
|
|
745
|
+
/**
|
|
746
|
+
* Image-tracking target metadata used by AR projects. Holds the source images
|
|
747
|
+
* users uploaded plus the URL of the compiled `.mind` target file produced by
|
|
748
|
+
* the image-target compiler. Pair with {@link ImageTargetAnchor} on child
|
|
749
|
+
* entities that should appear when the target is detected.
|
|
750
|
+
*
|
|
751
|
+
* @category Components
|
|
752
|
+
*/
|
|
753
|
+
declare class ImageTarget extends Component {
|
|
754
|
+
/** Source images that were combined into the compiled `.mind` target. */
|
|
755
|
+
targets: ImageTargetReference[];
|
|
756
|
+
/** URL of the compiled `.mind` target file. Set after the image-target compiler finishes. */
|
|
757
|
+
compiledTargetUrl?: string;
|
|
758
|
+
/** Directory containing the compiled `.mind` file (desktop projects). */
|
|
759
|
+
compiledTargetDir?: string;
|
|
760
|
+
/** Optional preview texture used in the editor viewport. `null` when not assigned. */
|
|
761
|
+
texture: THREE.Texture | null;
|
|
762
|
+
/** Optional preview object placed in the editor viewport. `null` when not assigned. */
|
|
763
|
+
object: THREE.Object3D | null;
|
|
764
|
+
constructor(options?: {
|
|
765
|
+
targets?: ImageTargetReference[];
|
|
766
|
+
compiledTargetUrl?: string;
|
|
767
|
+
compiledTargetDir?: string;
|
|
768
|
+
}, texture?: THREE.Texture, object?: THREE.Object3D);
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/** Optional initializer for {@link ImageTargetAnchor}. */
|
|
772
|
+
type ImageTargetAnchorOptions = {
|
|
773
|
+
/** Id of the tracked target this anchor follows (matches `ImageTargetReference.id`). */
|
|
774
|
+
targetId?: number | null;
|
|
775
|
+
/** Optional canonical URL of the target image, used as a fallback identifier. */
|
|
776
|
+
targetUrl?: string;
|
|
777
|
+
};
|
|
778
|
+
/**
|
|
779
|
+
* Marks an entity as an anchor for an image-tracking target. The image
|
|
780
|
+
* tracking system reveals the entity when the referenced target is found and
|
|
781
|
+
* hides it when the target is lost.
|
|
782
|
+
*
|
|
783
|
+
* @category Components
|
|
784
|
+
*/
|
|
785
|
+
declare class ImageTargetAnchor extends Component {
|
|
786
|
+
/** Tracked target id this anchor follows. `null` when unbound. */
|
|
787
|
+
targetId: number | null;
|
|
788
|
+
/** Canonical target image URL, retained as a fallback identifier. */
|
|
789
|
+
targetUrl?: string;
|
|
790
|
+
constructor(options?: ImageTargetAnchorOptions);
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/** Authoring state for {@link LightComponent}. Common fields apply to every light kind; the optional fields are only meaningful for specific kinds. */
|
|
794
|
+
type LightValueState = {
|
|
795
|
+
/** Light color as `#rrggbb` hex string. */
|
|
796
|
+
color: string;
|
|
797
|
+
/** Light intensity multiplier (units depend on three.js physically-correct mode). */
|
|
798
|
+
intensity: number;
|
|
799
|
+
/** Whether the light casts shadows. */
|
|
800
|
+
castShadow: boolean;
|
|
801
|
+
/** Whether the light is frustum-culled when off-screen. */
|
|
802
|
+
frustumCulling: boolean;
|
|
803
|
+
/** Maximum range; `0` means infinite. (PointLight, SpotLight) */
|
|
804
|
+
distance?: number;
|
|
805
|
+
/** Falloff exponent for distance attenuation. (PointLight, SpotLight) */
|
|
806
|
+
decay?: number;
|
|
807
|
+
/** Cone half-angle in **radians**. (SpotLight) */
|
|
808
|
+
angle?: number;
|
|
809
|
+
/** Soft-edge factor in `[0, 1]`; `0` is a hard edge. (SpotLight) */
|
|
810
|
+
penumbra?: number;
|
|
811
|
+
/** Rectangle width in world units. (RectAreaLight) */
|
|
812
|
+
width?: number;
|
|
813
|
+
/** Rectangle height in world units. (RectAreaLight) */
|
|
814
|
+
height?: number;
|
|
815
|
+
};
|
|
816
|
+
/**
|
|
817
|
+
* Light source attached to an entity. `type` selects the underlying three.js
|
|
818
|
+
* light class (directional, point, spot, ambient, hemisphere, rect-area).
|
|
819
|
+
* `values` carries authoring state including color, intensity, and
|
|
820
|
+
* type-specific fields (distance, decay, angle, penumbra, width, height).
|
|
821
|
+
*
|
|
822
|
+
* @category Components
|
|
823
|
+
*/
|
|
824
|
+
declare class LightComponent extends Component {
|
|
825
|
+
/** Live three.js light placed in the scene. Recreated when the project loads. */
|
|
826
|
+
light: THREE.Light;
|
|
827
|
+
/** Three.js class name of the light (e.g. `"DirectionalLight"`, `"PointLight"`, `"SpotLight"`). */
|
|
828
|
+
type: string;
|
|
829
|
+
/** Serialized authoring state. Saved with the project. */
|
|
830
|
+
values: LightValueState;
|
|
831
|
+
constructor(light: THREE.Light);
|
|
832
|
+
setValues(patch: Partial<LightValueState>): void;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
/** Supported material classes. Each maps to a three.js `Mesh*Material` type. */
|
|
836
|
+
type MaterialTypeValue = "standard" | "basic" | "phong" | "physical";
|
|
837
|
+
/** Texture sampling mode. `smooth` uses linear filtering; `sharp` uses nearest filtering for pixel-art look. */
|
|
838
|
+
type TextureFilteringValue = "smooth" | "sharp";
|
|
839
|
+
/** Authoring state for a single slot in {@link MaterialComponent.values}. Mirrors the live three.js material so it can be re-applied when the project loads. */
|
|
840
|
+
type MaterialValueState = {
|
|
841
|
+
/** Underlying material class. */
|
|
842
|
+
type: MaterialTypeValue;
|
|
843
|
+
/** Base color as `#rrggbb` hex string. */
|
|
844
|
+
color: string;
|
|
845
|
+
/** PBR roughness in `[0, 1]`. */
|
|
846
|
+
roughness: number;
|
|
847
|
+
/** PBR metalness in `[0, 1]`. */
|
|
848
|
+
metalness: number;
|
|
849
|
+
/** Multiplier applied to the normal map (uniform on both axes). */
|
|
850
|
+
normalScale: number;
|
|
851
|
+
/** Surface opacity in `[0, 1]`. Combine with {@link transparent} to enable alpha. */
|
|
852
|
+
opacity: number;
|
|
853
|
+
/** Emissive color as `#rrggbb` hex string. */
|
|
854
|
+
emissive: string;
|
|
855
|
+
/** Emissive intensity multiplier. */
|
|
856
|
+
emissiveIntensity: number;
|
|
857
|
+
/** Three.js `Side` enum value (`FrontSide`, `BackSide`, or `DoubleSide`). */
|
|
858
|
+
side: number;
|
|
859
|
+
/** Three.js `Blending` enum value. */
|
|
860
|
+
blending: number;
|
|
861
|
+
/** Whether depth testing is enabled. */
|
|
862
|
+
depthTest: boolean;
|
|
863
|
+
/** Whether depth writes are enabled. */
|
|
864
|
+
depthWrite: boolean;
|
|
865
|
+
/** Render as wireframe. */
|
|
866
|
+
wireframe: boolean;
|
|
867
|
+
/** Enable transparency (must be `true` for {@link opacity} < 1 to render correctly). */
|
|
868
|
+
transparent: boolean;
|
|
869
|
+
/** Color/diffuse texture URL. */
|
|
870
|
+
textureMap?: string;
|
|
871
|
+
/** Alpha (transparency) texture URL. */
|
|
872
|
+
alphaTextureMap?: string;
|
|
873
|
+
/** Tangent-space normal map URL. */
|
|
874
|
+
normalMap?: string;
|
|
875
|
+
/** Roughness map URL (red channel). */
|
|
876
|
+
roughnessMap?: string;
|
|
877
|
+
/** Metalness map URL (red channel). */
|
|
878
|
+
metalnessMap?: string;
|
|
879
|
+
/** Ambient occlusion map URL. */
|
|
880
|
+
aoMap?: string;
|
|
881
|
+
/** Emissive color map URL. */
|
|
882
|
+
emissiveMap?: string;
|
|
883
|
+
/** Bump map URL (height-based shading approximation). */
|
|
884
|
+
bumpMap?: string;
|
|
885
|
+
/** Displacement map URL (geometric vertex offset). */
|
|
886
|
+
displacementMap?: string;
|
|
887
|
+
/** Pre-baked light map URL. */
|
|
888
|
+
lightMap?: string;
|
|
889
|
+
/** Environment reflection map URL. */
|
|
890
|
+
envMap?: string;
|
|
891
|
+
/** Texture sampling mode applied to the color map. */
|
|
892
|
+
textureFiltering: TextureFilteringValue;
|
|
893
|
+
/** Whether mipmaps are generated for texture maps. */
|
|
894
|
+
useMipmaps: boolean;
|
|
895
|
+
};
|
|
896
|
+
/**
|
|
897
|
+
* Material catalog for an entity. Tracks the live three.js materials
|
|
898
|
+
* (`materials`, `material`) plus serialized authoring state (`values[]`)
|
|
899
|
+
* mirrored from the inspector. Supports `standard`, `basic`, `phong`, and
|
|
900
|
+
* `physical` PBR types with optional texture map slots.
|
|
901
|
+
*
|
|
902
|
+
* @remarks
|
|
903
|
+
* Use `setMaterials`, `updateValue`, `setMaterialType`, `setTextureFiltering`,
|
|
904
|
+
* and `setUseMipmaps` to mutate state — these keep `values[]` and the live
|
|
905
|
+
* three.js materials in sync. Texture URLs use the `localasset://` protocol
|
|
906
|
+
* inside the editor.
|
|
907
|
+
*
|
|
908
|
+
* @category Components
|
|
909
|
+
*/
|
|
910
|
+
declare class MaterialComponent extends Component {
|
|
911
|
+
/** Live three.js materials currently bound to the entity's mesh (one per submesh). */
|
|
912
|
+
materials: THREE.Material[];
|
|
913
|
+
/** Convenience reference to `materials[0]`. `null` when no material is assigned. */
|
|
914
|
+
material: THREE.Material | null;
|
|
915
|
+
/** Serialized authoring state (one entry per material in {@link materials}). Saved with the project. */
|
|
916
|
+
values: MaterialValueState[];
|
|
917
|
+
constructor(materialOrMaterials?: THREE.Material | THREE.Material[]);
|
|
918
|
+
setMaterials(materialOrMaterials?: THREE.Material | THREE.Material[]): void;
|
|
919
|
+
updateValue(index: number, patch: Partial<MaterialValueState>): void;
|
|
920
|
+
resetValue(index: number): void;
|
|
921
|
+
setMaterialType(index: number, type: MaterialTypeValue): void;
|
|
922
|
+
setTextureFiltering(index: number, filtering: TextureFilteringValue): void;
|
|
923
|
+
setUseMipmaps(index: number, enabled: boolean): void;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Holds the live three.js `Object3D` for an entity that renders as a primitive
|
|
928
|
+
* mesh (cube, sphere, plane, capsule, cylinder). For loaded GLTF/GLB models
|
|
929
|
+
* see {@link ModelComponent}; for the editable geometry parameters see
|
|
930
|
+
* {@link MeshGeometryComponent}.
|
|
931
|
+
*
|
|
932
|
+
* @category Components
|
|
933
|
+
*/
|
|
934
|
+
declare class MeshComponent extends Component {
|
|
935
|
+
/** Underlying three.js mesh placed in the scene graph. */
|
|
936
|
+
mesh: THREE.Object3D;
|
|
937
|
+
constructor(mesh: THREE.Object3D);
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
/** Editable primitive kinds the mesh-geometry system can rebuild on the fly. `model` is a passthrough placeholder for entities that own a loaded GLTF/GLB instead. */
|
|
941
|
+
type EditableMeshObjectKind = "capsule" | "cube" | "cylinder" | "model" | "plane" | "sphere";
|
|
942
|
+
/** Box geometry parameters in world units. */
|
|
943
|
+
type CubeMeshParameters = {
|
|
944
|
+
/** Box width along X. */
|
|
945
|
+
width: number;
|
|
946
|
+
/** Box height along Y. */
|
|
947
|
+
height: number;
|
|
948
|
+
/** Box depth along Z. */
|
|
949
|
+
depth: number;
|
|
950
|
+
};
|
|
951
|
+
/** Plane geometry parameters in world units. */
|
|
952
|
+
type PlaneMeshParameters = {
|
|
953
|
+
/** Plane width along X. */
|
|
954
|
+
width: number;
|
|
955
|
+
/** Plane height along Y. */
|
|
956
|
+
height: number;
|
|
957
|
+
};
|
|
958
|
+
/** Radius-only primitive parameters (sphere). */
|
|
959
|
+
type RadiusMeshParameters = {
|
|
960
|
+
/** Sphere radius in world units. */
|
|
961
|
+
radius: number;
|
|
962
|
+
};
|
|
963
|
+
/** Radius + height primitive parameters (capsule, cylinder). */
|
|
964
|
+
type RadiusHeightMeshParameters = {
|
|
965
|
+
/** Radius of the cap/cylinder cross-section. */
|
|
966
|
+
radius: number;
|
|
967
|
+
/** Length of the straight section between caps (capsule) or full height (cylinder). */
|
|
968
|
+
height: number;
|
|
969
|
+
};
|
|
970
|
+
/** Empty parameter set for `model` entities. */
|
|
971
|
+
type ModelMeshParameters = Record<string, never>;
|
|
972
|
+
/** Map from {@link EditableMeshObjectKind} to its parameter shape. */
|
|
973
|
+
type MeshGeometryParametersByKind = {
|
|
974
|
+
capsule: RadiusHeightMeshParameters;
|
|
975
|
+
cube: CubeMeshParameters;
|
|
976
|
+
cylinder: RadiusHeightMeshParameters;
|
|
977
|
+
model: ModelMeshParameters;
|
|
978
|
+
plane: PlaneMeshParameters;
|
|
979
|
+
sphere: RadiusMeshParameters;
|
|
980
|
+
};
|
|
981
|
+
type MeshGeometryParameters = MeshGeometryParametersByKind[EditableMeshObjectKind];
|
|
982
|
+
declare const DEFAULT_MESH_GEOMETRY_PARAMETERS: MeshGeometryParametersByKind;
|
|
983
|
+
/**
|
|
984
|
+
* Editable geometry parameters for primitive meshes (cube, sphere, plane,
|
|
985
|
+
* capsule, cylinder) and the placeholder for `model` entities. Holds the
|
|
986
|
+
* authoring values plus shadow casting/receiving flags. The mesh-geometry
|
|
987
|
+
* system rebuilds the underlying `BufferGeometry` when parameters change.
|
|
988
|
+
*
|
|
989
|
+
* @category Components
|
|
990
|
+
*/
|
|
991
|
+
declare class MeshGeometryComponent extends Component {
|
|
992
|
+
/** Primitive kind (`cube`, `sphere`, `plane`, `capsule`, `cylinder`) or `model` for loaded assets. */
|
|
993
|
+
readonly kind: EditableMeshObjectKind;
|
|
994
|
+
/** Three.js geometry class name (e.g. `"BoxGeometry"`, `"SphereGeometry"`). Derived from {@link kind}. */
|
|
995
|
+
readonly geometryType: string;
|
|
996
|
+
/** Editable parameters whose shape depends on {@link kind}. The mesh-geometry system rebuilds geometry when these change. */
|
|
997
|
+
parameters: MeshGeometryParameters;
|
|
998
|
+
/** Live three.js object whose geometry is being managed. `null` until the object is built. */
|
|
999
|
+
object: THREE.Object3D | null;
|
|
1000
|
+
/** Human-readable model name shown in the inspector for `model` entities; empty for primitives. */
|
|
1001
|
+
modelName: string;
|
|
1002
|
+
/** Whether the mesh casts shadows in the renderer. */
|
|
1003
|
+
castShadow: boolean;
|
|
1004
|
+
/** Whether the mesh receives shadows in the renderer. */
|
|
1005
|
+
receiveShadow: boolean;
|
|
1006
|
+
constructor(kind: EditableMeshObjectKind, object: THREE.Object3D | null, parameters?: Partial<MeshGeometryParameters>, options?: {
|
|
1007
|
+
modelName?: string;
|
|
1008
|
+
castShadow?: boolean;
|
|
1009
|
+
receiveShadow?: boolean;
|
|
1010
|
+
});
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
/**
|
|
1014
|
+
* References a GLTF/GLB asset loaded from `path`. The model loading system
|
|
1015
|
+
* resolves the asset asynchronously and populates {@link ModelComponent.object}
|
|
1016
|
+
* once available; loading is deferred-tolerant so the entity exists before
|
|
1017
|
+
* the model finishes loading.
|
|
1018
|
+
*
|
|
1019
|
+
* @category Components
|
|
1020
|
+
*/
|
|
1021
|
+
declare class ModelComponent extends Component {
|
|
1022
|
+
/** Source URL or `localasset://` path of the GLTF/GLB asset. */
|
|
1023
|
+
path: string;
|
|
1024
|
+
/** Loaded model object, populated asynchronously by the model loader. `null` until loaded. */
|
|
1025
|
+
object: THREE.Object3D | null;
|
|
1026
|
+
constructor(path: string);
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
/**
|
|
1030
|
+
* Human-readable name for an entity. Shown in the editor hierarchy panel and
|
|
1031
|
+
* preserved across save/reload.
|
|
1032
|
+
*
|
|
1033
|
+
* @category Components
|
|
1034
|
+
*/
|
|
1035
|
+
declare class Name extends Component {
|
|
1036
|
+
/** Display name for the entity. Shown in the editor hierarchy. */
|
|
1037
|
+
value: string;
|
|
1038
|
+
constructor(value: string);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
/**
|
|
1042
|
+
* Wraps the live `THREE.Object3D` for an entity. Almost every entity that
|
|
1043
|
+
* renders to the scene carries an `Object3DRef` so transform sync, selection,
|
|
1044
|
+
* and parenting systems can manipulate the underlying object.
|
|
1045
|
+
*
|
|
1046
|
+
* @remarks
|
|
1047
|
+
* The `object` reference may be replaced when assets finish loading. Read it
|
|
1048
|
+
* fresh inside system/script hooks rather than caching it across frames.
|
|
1049
|
+
*
|
|
1050
|
+
* @category Components
|
|
1051
|
+
*/
|
|
1052
|
+
declare class Object3DRef extends Component {
|
|
1053
|
+
/** Live three.js object placed in the scene graph. May be replaced when assets finish loading. */
|
|
1054
|
+
object: THREE.Object3D;
|
|
1055
|
+
/** Whether the object is currently visible. Mirrors `object.visible` and is preserved across reloads. */
|
|
1056
|
+
visibility: boolean;
|
|
1057
|
+
constructor(object: THREE.Object3D, visibility?: boolean);
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
/**
|
|
1061
|
+
* One script attached to an entity. Multiple entries may target a single
|
|
1062
|
+
* entity (different classes from the same or different files).
|
|
1063
|
+
*/
|
|
1064
|
+
type ScriptEntry = {
|
|
1065
|
+
/** Owning entity id. */
|
|
1066
|
+
entityId: number;
|
|
1067
|
+
/** Class name exported by the script module (default export class name). */
|
|
1068
|
+
className: string;
|
|
1069
|
+
/** Compiled script URL (e.g. `localasset://.../scripts/foo.js`). */
|
|
1070
|
+
scriptUrl: string;
|
|
1071
|
+
/** When `false`, the script is skipped each frame. */
|
|
1072
|
+
enabled: boolean;
|
|
1073
|
+
/**
|
|
1074
|
+
* When `true`, the script is executed inside the editor (not just at preview/runtime).
|
|
1075
|
+
* Enables direct Three.js scene access via `this.world.getScene()` / `getCamera()` /
|
|
1076
|
+
* `getRenderer()` for logic the editor's object palette cannot produce (custom shaders,
|
|
1077
|
+
* procedural geometry, grass, etc.). Defaults to `false`.
|
|
1078
|
+
*/
|
|
1079
|
+
executeInEditor?: boolean;
|
|
1080
|
+
/** Inspector-bound payload exposed to the script as `this.data`. */
|
|
1081
|
+
data: Record<string, unknown>;
|
|
1082
|
+
/** Last load/runtime status reported by `ScriptBehaviourSystem`. */
|
|
1083
|
+
runtimeState?: "idle" | "loading" | "ready" | "error";
|
|
1084
|
+
/** Optional human-readable status message (e.g. compile/load error). */
|
|
1085
|
+
runtimeMessage?: string;
|
|
1086
|
+
};
|
|
1087
|
+
/**
|
|
1088
|
+
* Component holding the list of {@link ScriptEntry | scripts} attached to an
|
|
1089
|
+
* entity. Loaded from the saved project; the runtime-side fields
|
|
1090
|
+
* (`scriptInstance`, `scriptInstances`) are non-enumerable so they never leak
|
|
1091
|
+
* into save data or undo history.
|
|
1092
|
+
*
|
|
1093
|
+
* @remarks
|
|
1094
|
+
* Authored scripts subclass {@link Behaviour}.
|
|
1095
|
+
*
|
|
1096
|
+
* @category Components
|
|
1097
|
+
*/
|
|
1098
|
+
declare class ScriptComponent extends Component {
|
|
1099
|
+
/** Authored script entries attached to the entity. Each entry references a class by name plus its inspector field overrides. Saved with the project. */
|
|
1100
|
+
entries: ScriptEntry[];
|
|
1101
|
+
/** First live behaviour instance after compile/load. Non-enumerable, so it does not appear in save data. `null` when no script is loaded. */
|
|
1102
|
+
scriptInstance: unknown | null;
|
|
1103
|
+
/** Map of `entityId` to its compiled behaviour instance (one entry per script bound to the entity). Non-enumerable, so it does not appear in save data. */
|
|
1104
|
+
scriptInstances: Map<number, unknown>;
|
|
1105
|
+
constructor(entries?: ScriptEntry[]);
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
* Toggles whether the editor selection system can pick this entity. When
|
|
1110
|
+
* `enabled` is `false`, the entity is excluded from raycast hit tests.
|
|
1111
|
+
*
|
|
1112
|
+
* @category Components
|
|
1113
|
+
*/
|
|
1114
|
+
declare class Selectable extends Component {
|
|
1115
|
+
/** When `false`, the editor selection raycaster ignores this entity. */
|
|
1116
|
+
enabled: boolean;
|
|
1117
|
+
constructor(enabled?: boolean);
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Camera-facing 2D sprite. Unlike {@link ImageComponent}, sprites use
|
|
1122
|
+
* `THREE.Sprite` and always render as billboards.
|
|
1123
|
+
*
|
|
1124
|
+
* @category Components
|
|
1125
|
+
*/
|
|
1126
|
+
declare class SpriteComponent extends Component {
|
|
1127
|
+
/** Source URL or `localasset://` path of the sprite image. */
|
|
1128
|
+
path: string;
|
|
1129
|
+
/** Width of the sprite in world units. */
|
|
1130
|
+
width: number;
|
|
1131
|
+
/** Height of the sprite in world units. */
|
|
1132
|
+
height: number;
|
|
1133
|
+
/** Loaded texture, populated asynchronously. `null` until loaded. */
|
|
1134
|
+
texture: THREE.Texture | null;
|
|
1135
|
+
/** Live `THREE.Sprite` placed in the scene. `null` until built. */
|
|
1136
|
+
object: THREE.Sprite | null;
|
|
1137
|
+
constructor(path: string, width?: number, height?: number);
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
/** Active gizmo mode in the editor. */
|
|
1141
|
+
type TransformModeValue = "translate" | "rotate" | "scale";
|
|
1142
|
+
/** Reference frame for the active gizmo. */
|
|
1143
|
+
type TransformSpaceValue = "world" | "local";
|
|
1144
|
+
/**
|
|
1145
|
+
* Singleton-style component (attached once to a system entity) that mirrors
|
|
1146
|
+
* the editor's current transform-gizmo state into the ECS world. Persisted in
|
|
1147
|
+
* snapshots so undo/redo restores the exact gizmo configuration.
|
|
1148
|
+
*
|
|
1149
|
+
* @category Components
|
|
1150
|
+
*/
|
|
1151
|
+
declare class SelectionTransformState extends Component {
|
|
1152
|
+
/** Active gizmo mode (`translate`, `rotate`, or `scale`). */
|
|
1153
|
+
transform: TransformModeValue;
|
|
1154
|
+
/** Reference frame for the gizmo (`world` or `local`). */
|
|
1155
|
+
space: TransformSpaceValue;
|
|
1156
|
+
/** Currently selected entity id, or `null` if nothing is selected. */
|
|
1157
|
+
selectedEntityId: EntityId | null;
|
|
1158
|
+
constructor(transform?: TransformModeValue, space?: TransformSpaceValue, selectedEntityId?: EntityId | null);
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* @internal Default options applied when no override is provided.
|
|
1163
|
+
*/
|
|
1164
|
+
declare const DEFAULT_VIDEO_OPTIONS: {
|
|
1165
|
+
autoplay: boolean;
|
|
1166
|
+
loop: boolean;
|
|
1167
|
+
volume: number;
|
|
1168
|
+
width: number;
|
|
1169
|
+
height: number;
|
|
1170
|
+
isGreenScreen: boolean;
|
|
1171
|
+
backgroundColor: string;
|
|
1172
|
+
similarity: number;
|
|
1173
|
+
smoothness: number;
|
|
1174
|
+
spill: number;
|
|
1175
|
+
/** When `true`, the video's audio stream is spatialized using the entity's transform. */
|
|
1176
|
+
positional: boolean;
|
|
1177
|
+
/** Distance at which volume is unattenuated (positional only). */
|
|
1178
|
+
refDistance: number;
|
|
1179
|
+
/** WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. */
|
|
1180
|
+
distanceModel: string;
|
|
1181
|
+
/** How quickly volume falls off past `refDistance`. Positional only. */
|
|
1182
|
+
rolloffFactor: number;
|
|
1183
|
+
};
|
|
1184
|
+
/**
|
|
1185
|
+
* Plays a video file as a texture on a quad. Supports green-screen keying
|
|
1186
|
+
* (`isGreenScreen`, `backgroundColor`, `similarity`, `smoothness`, `spill`).
|
|
1187
|
+
* The video element, texture, and material are runtime-only and re-created
|
|
1188
|
+
* when the project loads.
|
|
1189
|
+
*
|
|
1190
|
+
* @category Components
|
|
1191
|
+
*/
|
|
1192
|
+
declare class VideoComponent extends Component {
|
|
1193
|
+
/** Source URL or `localasset://` path of the video file. */
|
|
1194
|
+
path: string;
|
|
1195
|
+
/**
|
|
1196
|
+
* Playback + green-screen options.
|
|
1197
|
+
*
|
|
1198
|
+
* | Field | Default | Description |
|
|
1199
|
+
* |---|---|---|
|
|
1200
|
+
* | `autoplay` | `false` | Start playback as soon as the video is ready. |
|
|
1201
|
+
* | `loop` | `true` | Loop playback indefinitely. |
|
|
1202
|
+
* | `volume` | `1` | Linear gain in `[0, 1]`. |
|
|
1203
|
+
* | `width` | `1` | Quad width in world units. |
|
|
1204
|
+
* | `height` | `1` | Quad height in world units. |
|
|
1205
|
+
* | `isGreenScreen` | `false` | Enable chroma keying using the fields below. |
|
|
1206
|
+
* | `backgroundColor` | `"#00ff00"` | Color to key out (CSS color string). |
|
|
1207
|
+
* | `similarity` | `0.4` | How close a pixel must be to the key to be removed (`0`–`1`). |
|
|
1208
|
+
* | `smoothness` | `0.08` | Soft-edge thickness around the key threshold. |
|
|
1209
|
+
* | `spill` | `0.12` | Amount of color spill suppression near edges. |
|
|
1210
|
+
* | `positional` | `false` | When `true`, the video's audio stream is spatialized using the entity's 3D position. |
|
|
1211
|
+
* | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). |
|
|
1212
|
+
* | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. |
|
|
1213
|
+
* | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. Positional only. |
|
|
1214
|
+
*/
|
|
1215
|
+
options: typeof DEFAULT_VIDEO_OPTIONS;
|
|
1216
|
+
/** Live three.js object hosting the video quad. `null` until built. */
|
|
1217
|
+
object: THREE.Object3D | null;
|
|
1218
|
+
/** Underlying HTML video element. `null` until built. */
|
|
1219
|
+
videoElement: HTMLVideoElement | null;
|
|
1220
|
+
/** Three.js texture sampling the video element. `null` until built. */
|
|
1221
|
+
texture: THREE.VideoTexture | null;
|
|
1222
|
+
/** Material rendering the video texture (with green-screen shader when enabled). `null` until built. */
|
|
1223
|
+
material: THREE.Material | null;
|
|
1224
|
+
/**
|
|
1225
|
+
* THREE.js audio node connected to this video's audio stream via
|
|
1226
|
+
* `setMediaElementSource`. Present only in preview when the camera
|
|
1227
|
+
* listener is available. `null` in editor mode.
|
|
1228
|
+
*/
|
|
1229
|
+
audioNode: THREE.Audio<GainNode> | THREE.PositionalAudio | null;
|
|
1230
|
+
/**
|
|
1231
|
+
* Whether the video should be playing. Managed by `VideoSystem` in preview.
|
|
1232
|
+
* Non-enumerable — not persisted to snapshots or save data.
|
|
1233
|
+
* Set via {@link play} / {@link stop}.
|
|
1234
|
+
*/
|
|
1235
|
+
isPlaying: boolean;
|
|
1236
|
+
/**
|
|
1237
|
+
* Whether the video is paused mid-playback (position is preserved).
|
|
1238
|
+
* Non-enumerable — not persisted to snapshots or save data.
|
|
1239
|
+
* Set via {@link pause} / {@link play} / {@link stop}.
|
|
1240
|
+
*/
|
|
1241
|
+
isPaused: boolean;
|
|
1242
|
+
constructor(path: string, options?: Partial<typeof DEFAULT_VIDEO_OPTIONS>);
|
|
1243
|
+
/**
|
|
1244
|
+
* Signals `VideoSystem` to start (or resume) playback.
|
|
1245
|
+
* Has no direct effect in the editor — `VideoSystem` drives the actual
|
|
1246
|
+
* HTML video element call in preview.
|
|
1247
|
+
*/
|
|
1248
|
+
play(): void;
|
|
1249
|
+
/**
|
|
1250
|
+
* Signals `VideoSystem` to pause playback, preserving the current position.
|
|
1251
|
+
* Calling {@link play} afterwards resumes from where it paused.
|
|
1252
|
+
* No-op if not currently playing.
|
|
1253
|
+
*/
|
|
1254
|
+
pause(): void;
|
|
1255
|
+
/**
|
|
1256
|
+
* Signals `VideoSystem` to stop playback and reset the playback position.
|
|
1257
|
+
*/
|
|
1258
|
+
stop(): void;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
export { Selectable as $, AnimationComponent as A, type MaterialTypeValue as B, CameraComponent as C, DEFAULT_COLLIDER_STATE as D, type EditableMeshObjectKind as E, type MaterialValueState as F, MeshComponent as G, MeshGeometryComponent as H, ImageComponent as I, type MeshGeometryParameters as J, type MeshGeometryParametersByKind as K, LightComponent as L, MaterialComponent as M, ModelComponent as N, Name as O, Object3DRef as P, PhysicsComponent as Q, type PhysicsState as R, type PlaneMeshParameters as S, Postprocessing as T, type PostprocessingState as U, type RadiusHeightMeshParameters as V, type RadiusMeshParameters as W, type RigidbodyState as X, type RigidbodyType as Y, ScriptComponent as Z, type ScriptEntry as _, type AnimationComponentOptions as a, SelectionTransformState as a0, SpriteComponent as a1, type TextureFilteringValue as a2, type TransformModeValue as a3, type TransformSpaceValue as a4, VideoComponent as a5, normalizePhysicsState as a6, type AnimationStateCallbacks as a7, AnimationStateMachine as a8, AnimationStateManager as a9, type StateMachine as aa, AudioComponent as b, type CameraComponentOptions as c, type CameraProjection as d, type CameraRuntimeType as e, type ColliderShape as f, type ColliderState as g, type CubeMeshParameters as h, DEFAULT_ENVIRONMENT_STATE as i, DEFAULT_MESH_GEOMETRY_PARAMETERS as j, DEFAULT_PHYSICS_STATE as k, DEFAULT_POSTPROCESSING_STATE as l, DEFAULT_RIGIDBODY_STATE as m, EntityType as n, Environment as o, type EnvironmentFogState as p, type EnvironmentFogType as q, type EnvironmentGradientEffect as r, type EnvironmentSkyboxState as s, type EnvironmentSkyboxType as t, type EnvironmentState as u, ImageTarget as v, ImageTargetAnchor as w, type ImageTargetAnchorOptions as x, type ImageTargetReference as y, type LightValueState as z };
|