@relu-interactives/spatial-ecs 0.5.2 → 0.8.0
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/dist/{System-V_mv07le.d.cts → System-8D-XBDKZ.d.cts} +734 -8
- package/dist/{System-V_mv07le.d.ts → System-DPMAW30g.d.ts} +734 -8
- package/dist/{XRHandPose-CU3vNFuS.d.ts → XRHandPose-G0Dl-F0w.d.ts} +93 -3
- package/dist/{XRHandPose-CQTLGxFC.d.cts → XRHandPose-VQMT1WXj.d.cts} +93 -3
- package/dist/animation/index.cjs +252 -0
- package/dist/animation/index.cjs.map +1 -0
- package/dist/animation/index.d.cts +100 -0
- package/dist/animation/index.d.ts +100 -0
- package/dist/animation/index.js +4 -0
- package/dist/animation/index.js.map +1 -0
- package/dist/chunk-CKTHDXPS.js +11 -0
- package/dist/chunk-CKTHDXPS.js.map +1 -0
- package/dist/chunk-G4XJ53LS.js +1237 -0
- package/dist/chunk-G4XJ53LS.js.map +1 -0
- package/dist/chunk-GSWC6LLD.js +241 -0
- package/dist/chunk-GSWC6LLD.js.map +1 -0
- package/dist/{chunk-DF5SSRN6.js → chunk-JIJQFW6P.js} +1216 -2920
- package/dist/chunk-JIJQFW6P.js.map +1 -0
- package/dist/{chunk-BUEKOSR5.js → chunk-NNDUOQ7O.js} +188 -14
- package/dist/chunk-NNDUOQ7O.js.map +1 -0
- package/dist/chunk-OHCNPPMX.js +334 -0
- package/dist/chunk-OHCNPPMX.js.map +1 -0
- package/dist/{chunk-RXBLOO5B.js → chunk-SGF73YTF.js} +105 -715
- package/dist/chunk-SGF73YTF.js.map +1 -0
- package/dist/chunk-U727NTWQ.js +2856 -0
- package/dist/chunk-U727NTWQ.js.map +1 -0
- package/dist/{chunk-OY7ZODZP.js → chunk-XE4OXN2W.js} +3 -9
- package/dist/chunk-XE4OXN2W.js.map +1 -0
- package/dist/{chunk-OWQSESTO.js → chunk-XU2DVWCP.js} +4 -3
- package/dist/chunk-XU2DVWCP.js.map +1 -0
- package/dist/components/index.cjs +183 -10
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +5 -3
- package/dist/components/index.d.ts +5 -3
- package/dist/components/index.js +3 -2
- package/dist/docs/api/Behaviour/classes/Behaviour.md +366 -79
- package/dist/docs/api/Behaviour/index.md +7 -3
- package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +35 -0
- package/dist/docs/api/Component/classes/Component.md +14 -1
- package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
- package/dist/docs/api/components/classes/AudioComponent.md +19 -19
- package/dist/docs/api/components/classes/CameraComponent.md +14 -14
- package/dist/docs/api/components/classes/EntityType.md +4 -4
- package/dist/docs/api/components/classes/Environment.md +5 -4
- package/dist/docs/api/components/classes/ImageComponent.md +7 -7
- package/dist/docs/api/components/classes/ImageTarget.md +8 -8
- package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
- package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
- package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
- package/dist/docs/api/components/classes/LightComponent.md +6 -6
- package/dist/docs/api/components/classes/MaterialComponent.md +16 -16
- package/dist/docs/api/components/classes/MeshComponent.md +3 -3
- package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
- package/dist/docs/api/components/classes/ModelComponent.md +8 -5
- package/dist/docs/api/components/classes/Name.md +3 -3
- package/dist/docs/api/components/classes/Object3DRef.md +4 -4
- package/dist/docs/api/components/classes/ParentId.md +3 -3
- package/dist/docs/api/components/classes/PhysicsComponent.md +7 -6
- package/dist/docs/api/components/classes/Postprocessing.md +3 -3
- package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
- package/dist/docs/api/components/classes/PrefabNode.md +3 -3
- package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
- package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
- package/dist/docs/api/components/classes/Selectable.md +3 -3
- package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
- package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
- package/dist/docs/api/components/classes/TransformComponent.md +12 -12
- package/dist/docs/api/components/classes/UIButtonComponent.md +63 -0
- package/dist/docs/api/components/classes/UIPanelComponent.md +62 -0
- package/dist/docs/api/components/classes/UISliderComponent.md +59 -0
- package/dist/docs/api/components/classes/UITextComponent.md +59 -0
- package/dist/docs/api/components/classes/UIToggleComponent.md +56 -0
- package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +53 -0
- package/dist/docs/api/components/classes/VideoComponent.md +28 -28
- package/dist/docs/api/components/classes/XRAnchorComponent.md +64 -0
- package/dist/docs/api/components/classes/XREnvironmentComponent.md +64 -0
- package/dist/docs/api/components/classes/XRHandPoseComponent.md +50 -0
- package/dist/docs/api/components/classes/XRInteractableComponent.md +74 -0
- package/dist/docs/api/components/classes/XRInteractorComponent.md +57 -0
- package/dist/docs/api/components/classes/XRInteractorSideComponent.md +50 -0
- package/dist/docs/api/components/classes/XRRigComponent.md +68 -0
- package/dist/docs/api/components/functions/createAttachPoint.md +25 -0
- package/dist/docs/api/components/functions/createHandPoseEntry.md +25 -0
- package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
- package/dist/docs/api/components/functions/handPoseDefinitionFor.md +33 -0
- package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +30 -0
- package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
- package/dist/docs/api/components/functions/setModelLoadState.md +33 -0
- package/dist/docs/api/components/functions/setPhysicsLiveRef.md +3 -9
- package/dist/docs/api/components/index.md +61 -4
- package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
- package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
- package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
- package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +5 -3
- package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
- package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
- package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
- package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
- package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +40 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +22 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +9 -7
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentState.md +7 -5
- package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +16 -0
- package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
- package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
- package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
- package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
- package/dist/docs/api/components/type-aliases/LightShadowState.md +37 -0
- package/dist/docs/api/components/type-aliases/LightValueState.md +13 -11
- package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
- package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
- package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
- package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
- package/dist/docs/api/components/type-aliases/ModelLoadState.md +15 -0
- package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
- package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
- package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
- package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
- package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
- package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
- package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
- package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
- package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
- package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
- package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
- package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
- package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
- package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
- package/dist/docs/api/components/type-aliases/UIButtonOptions.md +45 -0
- package/dist/docs/api/components/type-aliases/UIPanelOptions.md +39 -0
- package/dist/docs/api/components/type-aliases/UISliderOptions.md +39 -0
- package/dist/docs/api/components/type-aliases/UITextOptions.md +41 -0
- package/dist/docs/api/components/type-aliases/UIToggleOptions.md +35 -0
- package/dist/docs/api/components/type-aliases/UiFollowMode.md +15 -0
- package/dist/docs/api/components/type-aliases/UiTextAlign.md +13 -0
- package/dist/docs/api/components/type-aliases/UiTextVAlign.md +13 -0
- package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +29 -0
- package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
- package/dist/docs/api/components/type-aliases/VrTeleportShape.md +15 -0
- package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +23 -0
- package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +23 -0
- package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +75 -0
- package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +37 -0
- package/dist/docs/api/components/type-aliases/XRRigOptions.md +51 -0
- package/dist/docs/api/components/type-aliases/XrAttachPoint.md +53 -0
- package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +19 -0
- package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +15 -0
- package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +15 -0
- package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +25 -0
- package/dist/docs/api/components/type-aliases/XrGrabGesture.md +19 -0
- package/dist/docs/api/components/type-aliases/XrGrabHands.md +20 -0
- package/dist/docs/api/components/type-aliases/XrGrabReach.md +20 -0
- package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +49 -0
- package/dist/docs/api/components/type-aliases/XrHandPreset.md +19 -0
- package/dist/docs/api/components/type-aliases/XrInteractorSide.md +15 -0
- package/dist/docs/api/components/type-aliases/XrInteractorType.md +13 -0
- package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +15 -0
- package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +24 -0
- package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +15 -0
- package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +15 -0
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
- package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +15 -0
- package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
- package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
- package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
- package/dist/docs/api/index/classes/AudioSystem.md +4 -4
- package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +19 -4
- package/dist/docs/api/index/classes/HandPoseTracker.md +114 -0
- package/dist/docs/api/index/classes/InputSystem.md +33 -33
- package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
- package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
- package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
- package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
- package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
- package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
- package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +34 -10
- package/dist/docs/api/index/classes/RenderSystem.md +13 -4
- package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +9 -5
- package/dist/docs/api/index/classes/ScriptObject.md +10 -10
- package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
- package/dist/docs/api/index/classes/TeleportAimGate.md +114 -0
- package/dist/docs/api/index/classes/ThrowVelocityTracker.md +89 -0
- package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/UIInteractionSystem.md +60 -0
- package/dist/docs/api/index/classes/UIPanelSystem.md +79 -0
- package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +49 -0
- package/dist/docs/api/index/classes/VideoSystem.md +8 -6
- package/dist/docs/api/index/classes/World.md +282 -100
- package/dist/docs/api/index/classes/XRAnchorSystem.md +90 -0
- package/dist/docs/api/index/classes/XRControllerVisualSystem.md +77 -0
- package/dist/docs/api/index/classes/XREnvironmentSystem.md +137 -0
- package/dist/docs/api/index/classes/XRHandPoseSystem.md +107 -0
- package/dist/docs/api/index/classes/XRHitTestSystem.md +93 -0
- package/dist/docs/api/index/classes/XRHoverVisualSystem.md +76 -0
- package/dist/docs/api/index/classes/XRInputSystem.md +189 -0
- package/dist/docs/api/index/classes/XRInteractionSystem.md +323 -0
- package/dist/docs/api/index/classes/XRLocomotionSystem.md +128 -0
- package/dist/docs/api/index/classes/XRSessionSystem.md +116 -0
- package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +75 -0
- package/dist/docs/api/index/functions/angularVelocityFrom.md +33 -0
- package/dist/docs/api/index/functions/applyHandMaterial.md +26 -0
- package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
- package/dist/docs/api/index/functions/arcGroundCrossing.md +30 -0
- package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
- package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/clearModelCache.md +1 -1
- package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
- package/dist/docs/api/index/functions/cloneHandPose.md +23 -0
- package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
- package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
- package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
- package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
- package/dist/docs/api/index/functions/computeFingerCurl.md +29 -0
- package/dist/docs/api/index/functions/computeHandShape.md +29 -0
- package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
- package/dist/docs/api/index/functions/computePalmPose.md +30 -0
- package/dist/docs/api/index/functions/computePalmWidth.md +25 -0
- package/dist/docs/api/index/functions/computePinch.md +29 -0
- package/dist/docs/api/index/functions/computeSpread.md +33 -0
- package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
- package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
- package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
- package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
- package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
- package/dist/docs/api/index/functions/createHandMaterial.md +30 -0
- package/dist/docs/api/index/functions/createImageComponent.md +1 -1
- package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
- package/dist/docs/api/index/functions/createImageTargetComponent.md +2 -2
- package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
- package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
- package/dist/docs/api/index/functions/createLightComponent.md +2 -2
- package/dist/docs/api/index/functions/createMaterialComponent.md +2 -2
- package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
- package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
- package/dist/docs/api/index/functions/createModelComponent.md +1 -1
- package/dist/docs/api/index/functions/createNameComponent.md +1 -1
- package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
- package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
- package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
- package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
- package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
- package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
- package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
- package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
- package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
- package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
- package/dist/docs/api/index/functions/createUIButtonComponent.md +28 -0
- package/dist/docs/api/index/functions/createUIPanelComponent.md +28 -0
- package/dist/docs/api/index/functions/createUISliderComponent.md +28 -0
- package/dist/docs/api/index/functions/createUITextComponent.md +28 -0
- package/dist/docs/api/index/functions/createUIToggleComponent.md +28 -0
- package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +28 -0
- package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRAnchorComponent.md +28 -0
- package/dist/docs/api/index/functions/createXRHandPoseComponent.md +28 -0
- package/dist/docs/api/index/functions/createXRInteractableComponent.md +28 -0
- package/dist/docs/api/index/functions/createXRInteractorComponent.md +28 -0
- package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +28 -0
- package/dist/docs/api/index/functions/createXRRigComponent.md +28 -0
- package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
- package/dist/docs/api/index/functions/encodeOverride.md +1 -1
- package/dist/docs/api/index/functions/estimateHandScale.md +28 -0
- package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
- package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
- package/dist/docs/api/index/functions/getHandPosePreset.md +31 -0
- package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
- package/dist/docs/api/index/functions/handPoseFromCurls.md +42 -0
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
- package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
- package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
- package/dist/docs/api/index/functions/loadPrefab.md +1 -1
- package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
- package/dist/docs/api/index/functions/matchHandPose.md +34 -0
- package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/parseOverride.md +1 -1
- package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
- package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
- package/dist/docs/api/index/functions/readXrCapabilities.md +30 -0
- package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
- package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
- package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
- package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
- package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
- package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
- package/dist/docs/api/index/functions/sampleTeleportArc.md +40 -0
- package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
- package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
- package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
- package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
- package/dist/docs/api/index/index.md +116 -4
- package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +20 -0
- package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
- package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +21 -0
- package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +84 -0
- package/dist/docs/api/index/interfaces/RenderBackend.md +168 -0
- package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
- package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
- package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
- package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
- package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -26
- package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +14 -2
- package/dist/docs/api/index/type-aliases/EcsRenderer.md +17 -0
- package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
- package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
- package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
- package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +32 -0
- package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +27 -0
- package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
- package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
- package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
- package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
- package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
- package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
- package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
- package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
- package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
- package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
- package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
- package/dist/docs/api/index/type-aliases/RendererKind.md +15 -0
- package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +23 -0
- package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +39 -0
- package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +25 -0
- package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +28 -0
- package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +31 -0
- package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +15 -0
- package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
- package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
- package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
- package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
- package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +3 -3
- package/dist/docs/api/index/type-aliases/UiCanvasLike.md +46 -0
- package/dist/docs/api/index/type-aliases/VelocitySample.md +23 -0
- package/dist/docs/api/index/type-aliases/XrCapabilities.md +41 -0
- package/dist/docs/api/index/type-aliases/XrFinger.md +13 -0
- package/dist/docs/api/index/type-aliases/XrFingerCurl.md +27 -0
- package/dist/docs/api/index/type-aliases/XrFingerTarget.md +31 -0
- package/dist/docs/api/index/type-aliases/XrHandJointName.md +40 -0
- package/dist/docs/api/index/type-aliases/XrHandJoints.md +18 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +15 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +23 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +47 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +21 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +13 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +27 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +25 -0
- package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +25 -0
- package/dist/docs/api/index/type-aliases/XrHandShape.md +46 -0
- package/dist/docs/api/index/type-aliases/XrHandedness.md +15 -0
- package/dist/docs/api/index/type-aliases/XrHitResult.md +25 -0
- package/dist/docs/api/index/type-aliases/XrInputKind.md +19 -0
- package/dist/docs/api/index/type-aliases/XrInputState.md +60 -0
- package/dist/docs/api/index/type-aliases/XrPalmPose.md +31 -0
- package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +2 -2
- package/dist/docs/api/index/variables/ARC_GRAVITY.md +15 -0
- package/dist/docs/api/index/variables/ARC_MAX_TIME.md +15 -0
- package/dist/docs/api/index/variables/ARC_SPEED.md +15 -0
- package/dist/docs/api/index/variables/ARC_STEPS.md +15 -0
- package/dist/docs/api/index/variables/CURLED_COS.md +13 -0
- package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +15 -0
- package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +13 -0
- package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +13 -0
- package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +13 -0
- package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +13 -0
- package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +17 -0
- package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +15 -0
- package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +19 -0
- package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +15 -0
- package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
- package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
- package/dist/docs/api/index/variables/MATCH_FALLOFF.md +15 -0
- package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +25 -0
- package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +18 -0
- package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
- package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +15 -0
- package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
- package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
- package/dist/docs/api/index/variables/PINCH_FINGERS.md +15 -0
- package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
- package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
- package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
- package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
- package/dist/docs/api/index/variables/STRAIGHT_COS.md +19 -0
- package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +15 -0
- package/dist/docs/api/index/variables/XR_FINGERS.md +13 -0
- package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +15 -0
- package/dist/docs/api/index/variables/webglBackend.md +16 -0
- package/dist/docs/api/typedoc-sidebar.json +1 -1
- package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
- package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
- package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
- package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
- package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
- package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
- package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
- package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
- package/dist/docs/api/types/type-aliases/EcsEntityKind.md +10 -2
- package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
- package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
- package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
- package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
- package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
- package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
- package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
- package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
- package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
- package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
- package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
- package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
- package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
- package/dist/docs/guide/audio-mixing-and-sound-banks.md +71 -0
- package/dist/docs/guide/authoring-a-behaviour.md +3 -3
- package/dist/docs/guide/authoring-a-script-object.md +12 -9
- package/dist/docs/guide/behaviour-data-binding/index.md +11 -11
- package/dist/docs/guide/behaviour-lifecycle.md +9 -0
- package/dist/docs/guide/bone-attachments-and-ik.md +128 -0
- package/dist/docs/guide/component-catalog.md +10 -2
- package/dist/docs/guide/components/light.md +42 -0
- package/dist/docs/guide/components/model.md +32 -3
- package/dist/docs/guide/concepts.md +2 -2
- package/dist/docs/guide/getting-started/creating-objects.md +2 -2
- package/dist/docs/guide/getting-started/editing-objects.md +2 -2
- package/dist/docs/guide/getting-started/editor/ai-agent.md +227 -0
- package/dist/docs/guide/getting-started/editor/hierarchy.md +2 -2
- package/dist/docs/guide/getting-started/editor/index.md +3 -2
- package/dist/docs/guide/getting-started/editor/inspector.md +2 -2
- package/dist/docs/guide/getting-started/editor/scene-inspector.md +3 -3
- package/dist/docs/guide/getting-started/editor/toolbar.md +11 -11
- package/dist/docs/guide/getting-started/editor/viewport.md +17 -9
- package/dist/docs/guide/getting-started/index.md +1 -1
- package/dist/docs/guide/getting-started/installation.md +1 -1
- package/dist/docs/guide/getting-started/preview-and-test.md +7 -7
- package/dist/docs/guide/getting-started/project-types/image-tracking.md +23 -11
- package/dist/docs/guide/getting-started/project-types/index.md +4 -4
- package/dist/docs/guide/getting-started/project-types/vr.md +270 -2
- package/dist/docs/guide/getting-started/projects.md +4 -5
- package/dist/docs/guide/getting-started/shortcuts.md +5 -4
- package/dist/docs/guide/multiplayer.md +92 -0
- package/dist/docs/guide/scene/environment.md +101 -4
- package/dist/docs/guide/scene/index.md +4 -4
- package/dist/docs/guide/scene/postprocessing.md +67 -5
- package/dist/docs/guide/spawning/area-light.md +2 -0
- package/dist/docs/guide/systems/environment-sync-system.md +11 -6
- package/dist/docs/guide/systems/light-sync-system.md +5 -3
- package/dist/docs/guide/systems/postprocessing-sync-system.md +16 -6
- package/dist/docs/guide/systems/render-system.md +7 -6
- package/dist/docs/guide/systems/script-behaviour-system.md +7 -5
- package/dist/docs/guide/systems/script-object-system.md +3 -1
- package/dist/docs/guide/systems/video-system.md +1 -1
- package/dist/docs/guide/webgpu-and-tsl.md +415 -0
- package/dist/docs/guide/world-api.md +52 -2
- package/dist/factories/index.cjs +770 -283
- package/dist/factories/index.cjs.map +1 -1
- package/dist/factories/index.d.cts +14 -3
- package/dist/factories/index.d.ts +14 -3
- package/dist/factories/index.js +7 -4
- package/dist/{index-D2Jt_JzH.d.ts → index-C61n65PE.d.ts} +135 -42
- package/dist/{index-DaG03vyN.d.cts → index-C70N4BYG.d.cts} +135 -42
- package/dist/{index-C3ik3sA1.d.ts → index-D9DjrUn3.d.cts} +25 -3
- package/dist/{index-Dlr-7-4m.d.cts → index-DppafVu4.d.ts} +25 -3
- package/dist/index.cjs +3642 -1263
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +113 -11
- package/dist/index.d.ts +113 -11
- package/dist/index.js +187 -12
- package/dist/index.js.map +1 -1
- package/dist/network/index.cjs +4896 -0
- package/dist/network/index.cjs.map +1 -0
- package/dist/network/index.d.cts +98 -0
- package/dist/network/index.d.ts +98 -0
- package/dist/network/index.js +493 -0
- package/dist/network/index.js.map +1 -0
- package/dist/systems/index.cjs +3958 -1762
- package/dist/systems/index.cjs.map +1 -1
- package/dist/systems/index.d.cts +4 -2
- package/dist/systems/index.d.ts +4 -2
- package/dist/systems/index.js +8 -4
- package/dist/types.d.cts +3 -1
- package/dist/types.d.ts +3 -1
- package/dist/webgpu/index.d.ts +113 -0
- package/dist/webgpu/index.js +302 -0
- package/dist/webgpu/index.js.map +1 -0
- package/dist/worldSnapshotUtils.d.cts +3 -1
- package/dist/worldSnapshotUtils.d.ts +3 -1
- package/dist/worldSnapshotUtils.js +3 -2
- package/package.json +19 -3
- package/dist/chunk-BUEKOSR5.js.map +0 -1
- package/dist/chunk-DF5SSRN6.js.map +0 -1
- package/dist/chunk-OWQSESTO.js.map +0 -1
- package/dist/chunk-OY7ZODZP.js.map +0 -1
- package/dist/chunk-RXBLOO5B.js.map +0 -1
- package/dist/chunk-WJD2VKEH.js +0 -315
- package/dist/chunk-WJD2VKEH.js.map +0 -1
|
@@ -1,490 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { readWorldRenderBackend } from './chunk-OHCNPPMX.js';
|
|
2
|
+
import { createAnimationComponent, createAudioComponent, createCameraComponent, createPhysicsComponent, createEnvironmentComponent, createEntityTypeComponent, createImageComponent, createXRRigComponent, createVRTeleportAreaComponent, createXRHandPoseComponent, createXRAnchorComponent, createBoneAttachmentComponent, createIKComponent, createNetworkIdentityComponent, createNetworkTransformComponent, createNetworkedPropsComponent, createNetworkSpawnerComponent, createUIPanelComponent, createUITextComponent, createUIButtonComponent, createUIToggleComponent, createUISliderComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createImageTargetAnchorComponent, createImageTargetComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, createInstancedMeshComponent, createBaseEntity, createTransform, createModel } from './chunk-G4XJ53LS.js';
|
|
3
|
+
import { Object3DRef, Name, InstanceSlotComponent, EntityType, Selectable, ParentId, DEFAULT_INSTANCE_TRANSFORM, VRTeleportAreaComponent, XRInteractorComponent, XRInteractorSideComponent, UIButtonComponent, XRInteractableComponent, UIPanelComponent, UISliderComponent, UITextComponent, UIToggleComponent, XRRigComponent } from './chunk-NNDUOQ7O.js';
|
|
4
|
+
import { __name } from './chunk-XE4OXN2W.js';
|
|
5
|
+
import * as THREE27 from 'three';
|
|
5
6
|
import { RectAreaLightHelper } from 'three/examples/jsm/helpers/RectAreaLightHelper.js';
|
|
6
|
-
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
7
|
-
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
8
|
-
|
|
9
|
-
// core/factories/components/AnimationFactory.ts
|
|
10
|
-
function createAnimationComponent(world, entityId, ...args) {
|
|
11
|
-
const component = new AnimationComponent(...args);
|
|
12
|
-
world.addComponent(entityId, component);
|
|
13
|
-
return component;
|
|
14
|
-
}
|
|
15
|
-
__name(createAnimationComponent, "createAnimationComponent");
|
|
16
|
-
function normalizeDistanceModel(distanceModel) {
|
|
17
|
-
const normalized = distanceModel.trim().toLowerCase();
|
|
18
|
-
if (normalized === "linear" || normalized === "exponential") {
|
|
19
|
-
return normalized;
|
|
20
|
-
}
|
|
21
|
-
return "inverse";
|
|
22
|
-
}
|
|
23
|
-
__name(normalizeDistanceModel, "normalizeDistanceModel");
|
|
24
|
-
function createConfiguredAudio(listener, options) {
|
|
25
|
-
const sound = options.positional ? new THREE30.PositionalAudio(listener) : new THREE30.Audio(listener);
|
|
26
|
-
sound.setLoop(options.loop);
|
|
27
|
-
sound.setVolume(options.volume);
|
|
28
|
-
sound.setPlaybackRate(options.pitch);
|
|
29
|
-
if (sound instanceof THREE30.PositionalAudio) {
|
|
30
|
-
sound.setRefDistance(options.refDistance);
|
|
31
|
-
sound.setDistanceModel(normalizeDistanceModel(options.distanceModel));
|
|
32
|
-
sound.setRolloffFactor(options.rolloffFactor);
|
|
33
|
-
}
|
|
34
|
-
return sound;
|
|
35
|
-
}
|
|
36
|
-
__name(createConfiguredAudio, "createConfiguredAudio");
|
|
37
|
-
function createAudioEditorHelper() {
|
|
38
|
-
if (typeof document === "undefined") {
|
|
39
|
-
const geometry = new THREE30.EdgesGeometry(
|
|
40
|
-
new THREE30.OctahedronGeometry(0.22, 0)
|
|
41
|
-
);
|
|
42
|
-
const material2 = new THREE30.LineBasicMaterial({
|
|
43
|
-
color: "#8bc8ff",
|
|
44
|
-
transparent: true,
|
|
45
|
-
opacity: 0.95,
|
|
46
|
-
depthTest: false
|
|
47
|
-
});
|
|
48
|
-
const fallback = new THREE30.LineSegments(geometry, material2);
|
|
49
|
-
fallback.renderOrder = 10;
|
|
50
|
-
fallback.userData.ecsHelper = true;
|
|
51
|
-
fallback.visible = false;
|
|
52
|
-
return fallback;
|
|
53
|
-
}
|
|
54
|
-
const size = 96;
|
|
55
|
-
const canvas = document.createElement("canvas");
|
|
56
|
-
canvas.width = size;
|
|
57
|
-
canvas.height = size;
|
|
58
|
-
const ctx = canvas.getContext("2d");
|
|
59
|
-
if (!ctx) {
|
|
60
|
-
return new THREE30.Object3D();
|
|
61
|
-
}
|
|
62
|
-
ctx.clearRect(0, 0, size, size);
|
|
63
|
-
ctx.fillStyle = "rgba(27, 35, 52, 0.9)";
|
|
64
|
-
ctx.beginPath();
|
|
65
|
-
ctx.arc(size / 2, size / 2, 36, 0, Math.PI * 2);
|
|
66
|
-
ctx.fill();
|
|
67
|
-
ctx.strokeStyle = "rgba(137, 202, 255, 0.9)";
|
|
68
|
-
ctx.lineWidth = 4;
|
|
69
|
-
ctx.beginPath();
|
|
70
|
-
ctx.arc(size / 2, size / 2, 36, 0, Math.PI * 2);
|
|
71
|
-
ctx.stroke();
|
|
72
|
-
ctx.fillStyle = "#d9ecff";
|
|
73
|
-
ctx.beginPath();
|
|
74
|
-
ctx.moveTo(33, 56);
|
|
75
|
-
ctx.lineTo(43, 56);
|
|
76
|
-
ctx.lineTo(54, 66);
|
|
77
|
-
ctx.lineTo(54, 30);
|
|
78
|
-
ctx.lineTo(43, 40);
|
|
79
|
-
ctx.lineTo(33, 40);
|
|
80
|
-
ctx.closePath();
|
|
81
|
-
ctx.fill();
|
|
82
|
-
ctx.strokeStyle = "#7fd2ff";
|
|
83
|
-
ctx.lineWidth = 4;
|
|
84
|
-
ctx.lineCap = "round";
|
|
85
|
-
ctx.beginPath();
|
|
86
|
-
ctx.arc(56, 48, 10, -0.8, 0.8);
|
|
87
|
-
ctx.stroke();
|
|
88
|
-
ctx.beginPath();
|
|
89
|
-
ctx.arc(56, 48, 16, -0.8, 0.8);
|
|
90
|
-
ctx.stroke();
|
|
91
|
-
const texture = new THREE30.CanvasTexture(canvas);
|
|
92
|
-
texture.needsUpdate = true;
|
|
93
|
-
const material = new THREE30.SpriteMaterial({
|
|
94
|
-
map: texture,
|
|
95
|
-
transparent: true,
|
|
96
|
-
depthTest: false
|
|
97
|
-
});
|
|
98
|
-
const helper = new THREE30.Sprite(material);
|
|
99
|
-
helper.scale.set(0.68, 0.68, 0.68);
|
|
100
|
-
helper.renderOrder = 10;
|
|
101
|
-
helper.userData.ecsHelper = true;
|
|
102
|
-
helper.visible = false;
|
|
103
|
-
return helper;
|
|
104
|
-
}
|
|
105
|
-
__name(createAudioEditorHelper, "createAudioEditorHelper");
|
|
106
|
-
function createAudioComponent(world, entityId, path = "", options = {}, context) {
|
|
107
|
-
const component = new AudioComponent(path, options);
|
|
108
|
-
const anchor = context?.object ?? null;
|
|
109
|
-
const listener = context?.listener ?? null;
|
|
110
|
-
if (anchor && listener) {
|
|
111
|
-
component.object = anchor;
|
|
112
|
-
const sound = createConfiguredAudio(listener, component.options);
|
|
113
|
-
if (context?.isEditor) {
|
|
114
|
-
anchor.add(createAudioEditorHelper());
|
|
115
|
-
}
|
|
116
|
-
anchor.add(sound);
|
|
117
|
-
component.audio = sound;
|
|
118
|
-
}
|
|
119
|
-
world.addComponent(entityId, component);
|
|
120
|
-
return component;
|
|
121
|
-
}
|
|
122
|
-
__name(createAudioComponent, "createAudioComponent");
|
|
123
|
-
function createCameraComponent(world, entityId, payload = {}) {
|
|
124
|
-
const object = world.getComponent(entityId, Object3DRef)?.object;
|
|
125
|
-
const objectCamera = object instanceof THREE30.Camera ? object : void 0;
|
|
126
|
-
const component = new CameraComponent({
|
|
127
|
-
...payload,
|
|
128
|
-
camera: payload.camera ?? objectCamera
|
|
129
|
-
});
|
|
130
|
-
world.addComponent(entityId, component);
|
|
131
|
-
return component;
|
|
132
|
-
}
|
|
133
|
-
__name(createCameraComponent, "createCameraComponent");
|
|
134
|
-
|
|
135
|
-
// core/factories/components/PhysicsFactory.ts
|
|
136
|
-
function deriveColliderFromGeometry(world, entityId) {
|
|
137
|
-
const meshGeometry = world.getComponent(entityId, MeshGeometryComponent);
|
|
138
|
-
if (!meshGeometry) {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
switch (meshGeometry.kind) {
|
|
142
|
-
case "plane": {
|
|
143
|
-
const params = meshGeometry.parameters;
|
|
144
|
-
return {
|
|
145
|
-
collider: {
|
|
146
|
-
shape: "cuboid",
|
|
147
|
-
size: { x: params.width, y: params.height, z: 0.05 }
|
|
148
|
-
},
|
|
149
|
-
// An (effectively) zero-thickness sheet is only physically meaningful
|
|
150
|
-
// as static geometry — planes are floors/walls, not dynamic bodies.
|
|
151
|
-
rigidbody: { type: "fixed" }
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
case "cube": {
|
|
155
|
-
const params = meshGeometry.parameters;
|
|
156
|
-
return {
|
|
157
|
-
collider: {
|
|
158
|
-
shape: "cuboid",
|
|
159
|
-
size: { x: params.width, y: params.height, z: params.depth }
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
case "sphere": {
|
|
164
|
-
const params = meshGeometry.parameters;
|
|
165
|
-
return { collider: { shape: "ball", radius: params.radius } };
|
|
166
|
-
}
|
|
167
|
-
case "capsule": {
|
|
168
|
-
const params = meshGeometry.parameters;
|
|
169
|
-
return {
|
|
170
|
-
collider: {
|
|
171
|
-
shape: "capsule",
|
|
172
|
-
radius: params.radius,
|
|
173
|
-
height: params.height
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
case "cylinder": {
|
|
178
|
-
const params = meshGeometry.parameters;
|
|
179
|
-
return {
|
|
180
|
-
collider: {
|
|
181
|
-
shape: "cylinder",
|
|
182
|
-
radius: params.radius,
|
|
183
|
-
height: params.height
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
default:
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
__name(deriveColliderFromGeometry, "deriveColliderFromGeometry");
|
|
192
|
-
function createPhysicsComponent(world, entityId, values) {
|
|
193
|
-
const initial = values ?? deriveColliderFromGeometry(world, entityId) ?? void 0;
|
|
194
|
-
const component = new PhysicsComponent(initial);
|
|
195
|
-
world.addComponent(entityId, component);
|
|
196
|
-
return component;
|
|
197
|
-
}
|
|
198
|
-
__name(createPhysicsComponent, "createPhysicsComponent");
|
|
199
|
-
|
|
200
|
-
// core/factories/components/EnvironmentFactory.ts
|
|
201
|
-
function createEnvironmentComponent(world, entityId, values) {
|
|
202
|
-
const component = new Environment(values);
|
|
203
|
-
world.addComponent(entityId, component);
|
|
204
|
-
return component;
|
|
205
|
-
}
|
|
206
|
-
__name(createEnvironmentComponent, "createEnvironmentComponent");
|
|
207
|
-
|
|
208
|
-
// core/factories/components/EntityTypeFactory.ts
|
|
209
|
-
function createEntityTypeComponent(world, entityId, ...args) {
|
|
210
|
-
const component = new EntityType(...args);
|
|
211
|
-
world.addComponent(entityId, component);
|
|
212
|
-
return component;
|
|
213
|
-
}
|
|
214
|
-
__name(createEntityTypeComponent, "createEntityTypeComponent");
|
|
215
|
-
|
|
216
|
-
// core/factories/components/ImageComponentFactory.ts
|
|
217
|
-
function createImageComponent(world, entityId, ...args) {
|
|
218
|
-
const component = new ImageComponent(...args);
|
|
219
|
-
world.addComponent(entityId, component);
|
|
220
|
-
return component;
|
|
221
|
-
}
|
|
222
|
-
__name(createImageComponent, "createImageComponent");
|
|
223
|
-
|
|
224
|
-
// core/factories/components/ImageTargetAnchorFactory.ts
|
|
225
|
-
function createImageTargetAnchorComponent(world, entityId, ...args) {
|
|
226
|
-
const component = new ImageTargetAnchor(...args);
|
|
227
|
-
world.addComponent(entityId, component);
|
|
228
|
-
return component;
|
|
229
|
-
}
|
|
230
|
-
__name(createImageTargetAnchorComponent, "createImageTargetAnchorComponent");
|
|
231
|
-
|
|
232
|
-
// core/factories/components/ImageTargetFactory.ts
|
|
233
|
-
function createImageTargetComponent(world, entityId, ...args) {
|
|
234
|
-
const component = new ImageTarget(...args);
|
|
235
|
-
world.addComponent(entityId, component);
|
|
236
|
-
return component;
|
|
237
|
-
}
|
|
238
|
-
__name(createImageTargetComponent, "createImageTargetComponent");
|
|
239
|
-
|
|
240
|
-
// core/factories/components/LightFactory.ts
|
|
241
|
-
function createLightComponent(world, entityId, ...args) {
|
|
242
|
-
const component = new LightComponent(...args);
|
|
243
|
-
world.addComponent(entityId, component);
|
|
244
|
-
return component;
|
|
245
|
-
}
|
|
246
|
-
__name(createLightComponent, "createLightComponent");
|
|
247
|
-
|
|
248
|
-
// core/factories/components/MaterialFactory.ts
|
|
249
|
-
function createMaterialComponent(world, entityId, ...args) {
|
|
250
|
-
const component = new MaterialComponent(...args);
|
|
251
|
-
world.addComponent(entityId, component);
|
|
252
|
-
return component;
|
|
253
|
-
}
|
|
254
|
-
__name(createMaterialComponent, "createMaterialComponent");
|
|
255
|
-
|
|
256
|
-
// core/factories/components/MeshFactory.ts
|
|
257
|
-
function createMeshComponent(world, entityId, ...args) {
|
|
258
|
-
const component = new MeshComponent(...args);
|
|
259
|
-
world.addComponent(entityId, component);
|
|
260
|
-
return component;
|
|
261
|
-
}
|
|
262
|
-
__name(createMeshComponent, "createMeshComponent");
|
|
263
|
-
|
|
264
|
-
// core/factories/components/MeshGeometryFactory.ts
|
|
265
|
-
function createMeshGeometryComponent(world, entityId, ...args) {
|
|
266
|
-
const component = new MeshGeometryComponent(...args);
|
|
267
|
-
world.addComponent(entityId, component);
|
|
268
|
-
return component;
|
|
269
|
-
}
|
|
270
|
-
__name(createMeshGeometryComponent, "createMeshGeometryComponent");
|
|
271
|
-
|
|
272
|
-
// core/factories/components/ModelFactory.ts
|
|
273
|
-
function createModelComponent(world, entityId, ...args) {
|
|
274
|
-
const component = new ModelComponent(...args);
|
|
275
|
-
world.addComponent(entityId, component);
|
|
276
|
-
return component;
|
|
277
|
-
}
|
|
278
|
-
__name(createModelComponent, "createModelComponent");
|
|
279
|
-
|
|
280
|
-
// core/factories/components/NameFactory.ts
|
|
281
|
-
function createNameComponent(world, entityId, ...args) {
|
|
282
|
-
const component = new Name(...args);
|
|
283
|
-
world.addComponent(entityId, component);
|
|
284
|
-
return component;
|
|
285
|
-
}
|
|
286
|
-
__name(createNameComponent, "createNameComponent");
|
|
287
|
-
|
|
288
|
-
// core/factories/components/Object3DRefFactory.ts
|
|
289
|
-
function createObject3DRefComponent(world, entityId, ...args) {
|
|
290
|
-
const component = new Object3DRef(...args);
|
|
291
|
-
world.addComponent(entityId, component);
|
|
292
|
-
return component;
|
|
293
|
-
}
|
|
294
|
-
__name(createObject3DRefComponent, "createObject3DRefComponent");
|
|
295
|
-
|
|
296
|
-
// core/factories/components/ParentIdFactory.ts
|
|
297
|
-
function createParentIdComponent(world, entityId, ...args) {
|
|
298
|
-
const component = new ParentId(...args);
|
|
299
|
-
world.addComponent(entityId, component);
|
|
300
|
-
return component;
|
|
301
|
-
}
|
|
302
|
-
__name(createParentIdComponent, "createParentIdComponent");
|
|
303
|
-
|
|
304
|
-
// core/factories/components/PostprocessingFactory.ts
|
|
305
|
-
function createPostprocessingComponent(world, entityId, values) {
|
|
306
|
-
const component = new Postprocessing(values);
|
|
307
|
-
world.addComponent(entityId, component);
|
|
308
|
-
return component;
|
|
309
|
-
}
|
|
310
|
-
__name(createPostprocessingComponent, "createPostprocessingComponent");
|
|
311
|
-
|
|
312
|
-
// core/factories/components/ScriptComponentFactory.ts
|
|
313
|
-
function createScriptComponent(world, entityId, payload = {}) {
|
|
314
|
-
const entries = Array.isArray(payload.entries) ? payload.entries.map((entry) => ({
|
|
315
|
-
entityId,
|
|
316
|
-
className: typeof entry.className === "string" ? entry.className : "",
|
|
317
|
-
scriptUrl: typeof entry.scriptUrl === "string" ? entry.scriptUrl : "",
|
|
318
|
-
enabled: typeof entry.enabled === "boolean" ? entry.enabled : true,
|
|
319
|
-
data: entry.data && typeof entry.data === "object" && !Array.isArray(entry.data) ? entry.data : {},
|
|
320
|
-
runtimeState: entry.runtimeState,
|
|
321
|
-
runtimeMessage: typeof entry.runtimeMessage === "string" ? entry.runtimeMessage : void 0
|
|
322
|
-
})) : [];
|
|
323
|
-
const component = new ScriptComponent(entries);
|
|
324
|
-
world.addComponent(entityId, component);
|
|
325
|
-
return component;
|
|
326
|
-
}
|
|
327
|
-
__name(createScriptComponent, "createScriptComponent");
|
|
328
|
-
|
|
329
|
-
// core/factories/components/ScriptObjectComponentFactory.ts
|
|
330
|
-
function createScriptObjectComponent(world, entityId, payload = {}) {
|
|
331
|
-
const component = new ScriptObjectComponent(payload);
|
|
332
|
-
world.addComponent(entityId, component);
|
|
333
|
-
return component;
|
|
334
|
-
}
|
|
335
|
-
__name(createScriptObjectComponent, "createScriptObjectComponent");
|
|
336
|
-
|
|
337
|
-
// core/factories/components/SelectableFactory.ts
|
|
338
|
-
function createSelectableComponent(world, entityId, ...args) {
|
|
339
|
-
const component = new Selectable(...args);
|
|
340
|
-
world.addComponent(entityId, component);
|
|
341
|
-
return component;
|
|
342
|
-
}
|
|
343
|
-
__name(createSelectableComponent, "createSelectableComponent");
|
|
344
|
-
|
|
345
|
-
// core/factories/components/SelectionTransformStateFactory.ts
|
|
346
|
-
function createSelectionTransformStateComponent(world, entityId, ...args) {
|
|
347
|
-
const component = new SelectionTransformState(...args);
|
|
348
|
-
world.addComponent(entityId, component);
|
|
349
|
-
return component;
|
|
350
|
-
}
|
|
351
|
-
__name(createSelectionTransformStateComponent, "createSelectionTransformStateComponent");
|
|
352
|
-
|
|
353
|
-
// core/factories/components/SpriteFactory.ts
|
|
354
|
-
function createSpriteComponent(world, entityId, ...args) {
|
|
355
|
-
const component = new SpriteComponent(...args);
|
|
356
|
-
world.addComponent(entityId, component);
|
|
357
|
-
return component;
|
|
358
|
-
}
|
|
359
|
-
__name(createSpriteComponent, "createSpriteComponent");
|
|
360
|
-
|
|
361
|
-
// core/factories/components/TransformFactory.ts
|
|
362
|
-
function createTransformComponent(world, entityId, ...args) {
|
|
363
|
-
const component = new TransformComponent(...args);
|
|
364
|
-
world.addComponent(entityId, component);
|
|
365
|
-
return component;
|
|
366
|
-
}
|
|
367
|
-
__name(createTransformComponent, "createTransformComponent");
|
|
368
|
-
|
|
369
|
-
// core/factories/components/InstancedMeshComponentFactory.ts
|
|
370
|
-
function createInstancedMeshComponent(world, entityId, meshKind, meshParameters, options) {
|
|
371
|
-
const component = new InstancedMeshComponent(meshKind, meshParameters, options);
|
|
372
|
-
world.addComponent(entityId, component);
|
|
373
|
-
return component;
|
|
374
|
-
}
|
|
375
|
-
__name(createInstancedMeshComponent, "createInstancedMeshComponent");
|
|
376
|
-
|
|
377
|
-
// core/factories/components/InstanceSlotComponentFactory.ts
|
|
378
|
-
function createInstanceSlotComponent(world, entityId, groupEntityId, slotIndex) {
|
|
379
|
-
const component = new InstanceSlotComponent(groupEntityId, slotIndex);
|
|
380
|
-
world.addComponent(entityId, component);
|
|
381
|
-
return component;
|
|
382
|
-
}
|
|
383
|
-
__name(createInstanceSlotComponent, "createInstanceSlotComponent");
|
|
384
|
-
|
|
385
|
-
// core/factories/components/VideoFactory.ts
|
|
386
|
-
function createVideoComponent(world, entityId, ...args) {
|
|
387
|
-
const component = new VideoComponent(...args);
|
|
388
|
-
world.addComponent(entityId, component);
|
|
389
|
-
return component;
|
|
390
|
-
}
|
|
391
|
-
__name(createVideoComponent, "createVideoComponent");
|
|
392
|
-
|
|
393
|
-
// core/factories/components/XRRigFactory.ts
|
|
394
|
-
function createXRRigComponent(world, entityId, ...args) {
|
|
395
|
-
const component = new XRRigComponent(...args);
|
|
396
|
-
world.addComponent(entityId, component);
|
|
397
|
-
return component;
|
|
398
|
-
}
|
|
399
|
-
__name(createXRRigComponent, "createXRRigComponent");
|
|
400
|
-
|
|
401
|
-
// core/factories/components/VRTeleportAreaFactory.ts
|
|
402
|
-
function createVRTeleportAreaComponent(world, entityId, ...args) {
|
|
403
|
-
const component = new VRTeleportAreaComponent(...args);
|
|
404
|
-
world.addComponent(entityId, component);
|
|
405
|
-
return component;
|
|
406
|
-
}
|
|
407
|
-
__name(createVRTeleportAreaComponent, "createVRTeleportAreaComponent");
|
|
408
|
-
|
|
409
|
-
// core/factories/components/XRHandPoseFactory.ts
|
|
410
|
-
function createXRHandPoseComponent(world, entityId, ...args) {
|
|
411
|
-
const component = new XRHandPoseComponent(...args);
|
|
412
|
-
world.addComponent(entityId, component);
|
|
413
|
-
return component;
|
|
414
|
-
}
|
|
415
|
-
__name(createXRHandPoseComponent, "createXRHandPoseComponent");
|
|
416
|
-
|
|
417
|
-
// core/factories/components/XRAnchorFactory.ts
|
|
418
|
-
function createXRAnchorComponent(world, entityId, ...args) {
|
|
419
|
-
const component = new XRAnchorComponent(...args);
|
|
420
|
-
world.addComponent(entityId, component);
|
|
421
|
-
return component;
|
|
422
|
-
}
|
|
423
|
-
__name(createXRAnchorComponent, "createXRAnchorComponent");
|
|
424
|
-
|
|
425
|
-
// core/factories/components/XRInteractableFactory.ts
|
|
426
|
-
function createXRInteractableComponent(world, entityId, ...args) {
|
|
427
|
-
const component = new XRInteractableComponent(...args);
|
|
428
|
-
world.addComponent(entityId, component);
|
|
429
|
-
return component;
|
|
430
|
-
}
|
|
431
|
-
__name(createXRInteractableComponent, "createXRInteractableComponent");
|
|
432
|
-
|
|
433
|
-
// core/factories/components/XRInteractorFactory.ts
|
|
434
|
-
function createXRInteractorComponent(world, entityId, ...args) {
|
|
435
|
-
const component = new XRInteractorComponent(...args);
|
|
436
|
-
world.addComponent(entityId, component);
|
|
437
|
-
return component;
|
|
438
|
-
}
|
|
439
|
-
__name(createXRInteractorComponent, "createXRInteractorComponent");
|
|
440
|
-
|
|
441
|
-
// core/factories/components/XRInteractorSideFactory.ts
|
|
442
|
-
function createXRInteractorSideComponent(world, entityId, ...args) {
|
|
443
|
-
const component = new XRInteractorSideComponent(...args);
|
|
444
|
-
world.addComponent(entityId, component);
|
|
445
|
-
return component;
|
|
446
|
-
}
|
|
447
|
-
__name(createXRInteractorSideComponent, "createXRInteractorSideComponent");
|
|
448
|
-
|
|
449
|
-
// core/factories/components/UIButtonComponentFactory.ts
|
|
450
|
-
function createUIButtonComponent(world, entityId, ...args) {
|
|
451
|
-
const component = new UIButtonComponent(...args);
|
|
452
|
-
world.addComponent(entityId, component);
|
|
453
|
-
return component;
|
|
454
|
-
}
|
|
455
|
-
__name(createUIButtonComponent, "createUIButtonComponent");
|
|
456
|
-
|
|
457
|
-
// core/factories/components/UIPanelComponentFactory.ts
|
|
458
|
-
function createUIPanelComponent(world, entityId, ...args) {
|
|
459
|
-
const component = new UIPanelComponent(...args);
|
|
460
|
-
world.addComponent(entityId, component);
|
|
461
|
-
return component;
|
|
462
|
-
}
|
|
463
|
-
__name(createUIPanelComponent, "createUIPanelComponent");
|
|
464
|
-
|
|
465
|
-
// core/factories/components/UISliderComponentFactory.ts
|
|
466
|
-
function createUISliderComponent(world, entityId, ...args) {
|
|
467
|
-
const component = new UISliderComponent(...args);
|
|
468
|
-
world.addComponent(entityId, component);
|
|
469
|
-
return component;
|
|
470
|
-
}
|
|
471
|
-
__name(createUISliderComponent, "createUISliderComponent");
|
|
472
|
-
|
|
473
|
-
// core/factories/components/UITextComponentFactory.ts
|
|
474
|
-
function createUITextComponent(world, entityId, ...args) {
|
|
475
|
-
const component = new UITextComponent(...args);
|
|
476
|
-
world.addComponent(entityId, component);
|
|
477
|
-
return component;
|
|
478
|
-
}
|
|
479
|
-
__name(createUITextComponent, "createUITextComponent");
|
|
480
|
-
|
|
481
|
-
// core/factories/components/UIToggleComponentFactory.ts
|
|
482
|
-
function createUIToggleComponent(world, entityId, ...args) {
|
|
483
|
-
const component = new UIToggleComponent(...args);
|
|
484
|
-
world.addComponent(entityId, component);
|
|
485
|
-
return component;
|
|
486
|
-
}
|
|
487
|
-
__name(createUIToggleComponent, "createUIToggleComponent");
|
|
488
7
|
|
|
489
8
|
// core/factories/registerDefaultComponentFactories.ts
|
|
490
9
|
function registerDefaultComponentFactories(objectManagementSystem) {
|
|
@@ -499,6 +18,12 @@ function registerDefaultComponentFactories(objectManagementSystem) {
|
|
|
499
18
|
objectManagementSystem.registerComponentFactory("vrTeleportArea", createVRTeleportAreaComponent);
|
|
500
19
|
objectManagementSystem.registerComponentFactory("xrHandPose", createXRHandPoseComponent);
|
|
501
20
|
objectManagementSystem.registerComponentFactory("xrAnchor", createXRAnchorComponent);
|
|
21
|
+
objectManagementSystem.registerComponentFactory("boneAttachment", createBoneAttachmentComponent);
|
|
22
|
+
objectManagementSystem.registerComponentFactory("ik", createIKComponent);
|
|
23
|
+
objectManagementSystem.registerComponentFactory("networkIdentity", createNetworkIdentityComponent);
|
|
24
|
+
objectManagementSystem.registerComponentFactory("networkTransform", createNetworkTransformComponent);
|
|
25
|
+
objectManagementSystem.registerComponentFactory("networkedProps", createNetworkedPropsComponent);
|
|
26
|
+
objectManagementSystem.registerComponentFactory("networkSpawner", createNetworkSpawnerComponent);
|
|
502
27
|
objectManagementSystem.registerComponentFactory("uiPanel", createUIPanelComponent);
|
|
503
28
|
objectManagementSystem.registerComponentFactory("uiText", createUITextComponent);
|
|
504
29
|
objectManagementSystem.registerComponentFactory("uiButton", createUIButtonComponent);
|
|
@@ -546,30 +71,12 @@ function registerDefaultComponentFactories(objectManagementSystem) {
|
|
|
546
71
|
objectManagementSystem.registerComponentFactory("instancedMesh", createInstancedMeshComponent);
|
|
547
72
|
}
|
|
548
73
|
__name(registerDefaultComponentFactories, "registerDefaultComponentFactories");
|
|
549
|
-
|
|
550
|
-
// core/factories/objects/shared.ts
|
|
551
|
-
function createBaseEntity(world, object, options) {
|
|
552
|
-
const entityId = world.createEntity();
|
|
553
|
-
object.userData.entityId = entityId;
|
|
554
|
-
const transform = createTransform(options.transformInput);
|
|
555
|
-
applyTransform(object, transform);
|
|
556
|
-
world.addComponent(entityId, transform);
|
|
557
|
-
createObject3DRefComponent(world, entityId, object);
|
|
558
|
-
createNameComponent(world, entityId, options.label);
|
|
559
|
-
createEntityTypeComponent(world, entityId, options.entityType);
|
|
560
|
-
createParentIdComponent(world, entityId, options.parentId ?? null);
|
|
561
|
-
createSelectableComponent(world, entityId, true);
|
|
562
|
-
return entityId;
|
|
563
|
-
}
|
|
564
|
-
__name(createBaseEntity, "createBaseEntity");
|
|
565
|
-
|
|
566
|
-
// core/factories/objects/AudioFactory.ts
|
|
567
74
|
function getOrCreateListener(camera) {
|
|
568
75
|
const existing = camera.userData.ecsAudioListener;
|
|
569
|
-
if (existing instanceof
|
|
76
|
+
if (existing instanceof THREE27.AudioListener) {
|
|
570
77
|
return existing;
|
|
571
78
|
}
|
|
572
|
-
const listener = new
|
|
79
|
+
const listener = new THREE27.AudioListener();
|
|
573
80
|
camera.add(listener);
|
|
574
81
|
camera.userData.ecsAudioListener = listener;
|
|
575
82
|
return listener;
|
|
@@ -582,7 +89,7 @@ function createAudio({
|
|
|
582
89
|
payload,
|
|
583
90
|
isEditor
|
|
584
91
|
}) {
|
|
585
|
-
const anchor = new
|
|
92
|
+
const anchor = new THREE27.Object3D();
|
|
586
93
|
const entityId = createBaseEntity(world, anchor, {
|
|
587
94
|
label: payload.name ?? "Audio",
|
|
588
95
|
entityType: "audio",
|
|
@@ -604,7 +111,7 @@ function createAudio({
|
|
|
604
111
|
return entityId;
|
|
605
112
|
}
|
|
606
113
|
if (!isEditor) {
|
|
607
|
-
const loader = new
|
|
114
|
+
const loader = new THREE27.AudioLoader();
|
|
608
115
|
loader.load(
|
|
609
116
|
audio.path,
|
|
610
117
|
(buffer) => {
|
|
@@ -679,7 +186,7 @@ function applyCameraSettings(camera, options) {
|
|
|
679
186
|
const near = typeof options.near === "number" ? options.near : DEFAULT_NEAR;
|
|
680
187
|
const far = typeof options.far === "number" ? options.far : DEFAULT_FAR;
|
|
681
188
|
const projection = options.projection;
|
|
682
|
-
if (camera instanceof
|
|
189
|
+
if (camera instanceof THREE27.PerspectiveCamera) {
|
|
683
190
|
if (!projection || projection === "perspective") {
|
|
684
191
|
camera.fov = typeof options.fov === "number" ? options.fov : DEFAULT_FOV;
|
|
685
192
|
}
|
|
@@ -689,7 +196,7 @@ function applyCameraSettings(camera, options) {
|
|
|
689
196
|
camera.updateProjectionMatrix();
|
|
690
197
|
return;
|
|
691
198
|
}
|
|
692
|
-
if (camera instanceof
|
|
199
|
+
if (camera instanceof THREE27.OrthographicCamera) {
|
|
693
200
|
camera.left = typeof options.left === "number" ? options.left : -DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
694
201
|
camera.right = typeof options.right === "number" ? options.right : DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
695
202
|
camera.top = typeof options.top === "number" ? options.top : DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
@@ -710,7 +217,7 @@ function createCameraObject(options) {
|
|
|
710
217
|
const bottom = options.bottom ?? -DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
711
218
|
const left = options.left ?? -DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
712
219
|
const right = options.right ?? DEFAULT_ORTHOGRAPHIC_HALF_HEIGHT;
|
|
713
|
-
const camera = new
|
|
220
|
+
const camera = new THREE27.OrthographicCamera(
|
|
714
221
|
left,
|
|
715
222
|
right,
|
|
716
223
|
top,
|
|
@@ -722,7 +229,7 @@ function createCameraObject(options) {
|
|
|
722
229
|
camera.updateProjectionMatrix();
|
|
723
230
|
return camera;
|
|
724
231
|
}
|
|
725
|
-
return new
|
|
232
|
+
return new THREE27.PerspectiveCamera(
|
|
726
233
|
options.fov ?? DEFAULT_FOV,
|
|
727
234
|
readViewportAspect(),
|
|
728
235
|
near,
|
|
@@ -740,7 +247,7 @@ function createCamera({ world, scene, camera, payload, isEditor }) {
|
|
|
740
247
|
transformInput: payload.transform
|
|
741
248
|
});
|
|
742
249
|
const objectRef = world.getComponent(entityId, Object3DRef);
|
|
743
|
-
if (objectRef?.object instanceof
|
|
250
|
+
if (objectRef?.object instanceof THREE27.Camera) {
|
|
744
251
|
objectRef.object.userData.entityId = entityId;
|
|
745
252
|
}
|
|
746
253
|
const componentOptions = {
|
|
@@ -772,9 +279,9 @@ function createCapsule({
|
|
|
772
279
|
scene,
|
|
773
280
|
payload
|
|
774
281
|
}) {
|
|
775
|
-
const geometry = new
|
|
776
|
-
const material = new
|
|
777
|
-
const mesh = new
|
|
282
|
+
const geometry = new THREE27.CapsuleGeometry(0.5, 1, 4, 8);
|
|
283
|
+
const material = new THREE27.MeshStandardMaterial({ color: "#ffffff" });
|
|
284
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
778
285
|
const entityId = createBaseEntity(world, mesh, {
|
|
779
286
|
label: payload.name ?? "Capsule",
|
|
780
287
|
entityType: "capsule",
|
|
@@ -794,9 +301,9 @@ function createCapsule({
|
|
|
794
301
|
}
|
|
795
302
|
__name(createCapsule, "createCapsule");
|
|
796
303
|
function createCube({ world, scene, payload }) {
|
|
797
|
-
const geometry = new
|
|
798
|
-
const material = new
|
|
799
|
-
const mesh = new
|
|
304
|
+
const geometry = new THREE27.BoxGeometry(1, 1, 1);
|
|
305
|
+
const material = new THREE27.MeshStandardMaterial({ color: "#ffffff" });
|
|
306
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
800
307
|
const entityId = createBaseEntity(world, mesh, {
|
|
801
308
|
label: payload.name ?? "Cube",
|
|
802
309
|
entityType: "cube",
|
|
@@ -821,9 +328,9 @@ function createCylinder({
|
|
|
821
328
|
scene,
|
|
822
329
|
payload
|
|
823
330
|
}) {
|
|
824
|
-
const geometry = new
|
|
825
|
-
const material = new
|
|
826
|
-
const mesh = new
|
|
331
|
+
const geometry = new THREE27.CylinderGeometry(0.5, 0.5, 1, 20);
|
|
332
|
+
const material = new THREE27.MeshStandardMaterial({ color: "#ffffff" });
|
|
333
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
827
334
|
const entityId = createBaseEntity(world, mesh, {
|
|
828
335
|
label: payload.name ?? "Cylinder",
|
|
829
336
|
entityType: "cylinder",
|
|
@@ -843,7 +350,7 @@ function createCylinder({
|
|
|
843
350
|
}
|
|
844
351
|
__name(createCylinder, "createCylinder");
|
|
845
352
|
function createEmpty({ world, scene, payload, isEditor }) {
|
|
846
|
-
const object = new
|
|
353
|
+
const object = new THREE27.Group();
|
|
847
354
|
const entityId = createBaseEntity(world, object, {
|
|
848
355
|
label: payload.name ?? "Empty",
|
|
849
356
|
entityType: "empty",
|
|
@@ -854,7 +361,7 @@ function createEmpty({ world, scene, payload, isEditor }) {
|
|
|
854
361
|
}
|
|
855
362
|
__name(createEmpty, "createEmpty");
|
|
856
363
|
function createImage({ world, scene, payload }) {
|
|
857
|
-
const anchor = new
|
|
364
|
+
const anchor = new THREE27.Object3D();
|
|
858
365
|
const imagePath = payload.path ?? "";
|
|
859
366
|
const entityId = createBaseEntity(world, anchor, {
|
|
860
367
|
label: payload.name ?? "Image",
|
|
@@ -867,7 +374,7 @@ function createImage({ world, scene, payload }) {
|
|
|
867
374
|
if (!imagePath) {
|
|
868
375
|
return entityId;
|
|
869
376
|
}
|
|
870
|
-
const loader = new
|
|
377
|
+
const loader = new THREE27.TextureLoader();
|
|
871
378
|
loader.load(
|
|
872
379
|
imagePath,
|
|
873
380
|
(texture) => {
|
|
@@ -875,13 +382,13 @@ function createImage({ world, scene, payload }) {
|
|
|
875
382
|
texture.dispose();
|
|
876
383
|
return;
|
|
877
384
|
}
|
|
878
|
-
const material = new
|
|
385
|
+
const material = new THREE27.MeshBasicMaterial({
|
|
879
386
|
map: texture,
|
|
880
387
|
transparent: true,
|
|
881
|
-
side:
|
|
388
|
+
side: THREE27.DoubleSide
|
|
882
389
|
});
|
|
883
|
-
const geometry = new
|
|
884
|
-
const plane = new
|
|
390
|
+
const geometry = new THREE27.PlaneGeometry(1, 1);
|
|
391
|
+
const plane = new THREE27.Mesh(geometry, material);
|
|
885
392
|
plane.userData.entityId = entityId;
|
|
886
393
|
const textureImage = texture.image;
|
|
887
394
|
const width = textureImage?.width ?? 1;
|
|
@@ -927,7 +434,7 @@ function createImageTarget({
|
|
|
927
434
|
payload,
|
|
928
435
|
isEditor
|
|
929
436
|
}) {
|
|
930
|
-
const anchor = new
|
|
437
|
+
const anchor = new THREE27.Object3D();
|
|
931
438
|
const imagePath = payload.path ?? "";
|
|
932
439
|
const entityId = createBaseEntity(world, anchor, {
|
|
933
440
|
label: payload.name ?? "Image Target",
|
|
@@ -944,7 +451,7 @@ function createImageTarget({
|
|
|
944
451
|
if (!isEditor || !imagePath) {
|
|
945
452
|
return entityId;
|
|
946
453
|
}
|
|
947
|
-
const loader = new
|
|
454
|
+
const loader = new THREE27.TextureLoader();
|
|
948
455
|
loader.load(
|
|
949
456
|
imagePath,
|
|
950
457
|
(texture) => {
|
|
@@ -952,13 +459,13 @@ function createImageTarget({
|
|
|
952
459
|
texture.dispose();
|
|
953
460
|
return;
|
|
954
461
|
}
|
|
955
|
-
const material = new
|
|
462
|
+
const material = new THREE27.MeshBasicMaterial({
|
|
956
463
|
map: texture,
|
|
957
464
|
transparent: true,
|
|
958
|
-
side:
|
|
465
|
+
side: THREE27.DoubleSide
|
|
959
466
|
});
|
|
960
|
-
const geometry = new
|
|
961
|
-
const plane = new
|
|
467
|
+
const geometry = new THREE27.PlaneGeometry(1, 1);
|
|
468
|
+
const plane = new THREE27.Mesh(geometry, material);
|
|
962
469
|
plane.userData.entityId = entityId;
|
|
963
470
|
const textureImage = texture.image;
|
|
964
471
|
const width = textureImage?.width ?? 1;
|
|
@@ -1009,7 +516,7 @@ function createInstancedMesh({
|
|
|
1009
516
|
scene,
|
|
1010
517
|
payload
|
|
1011
518
|
}) {
|
|
1012
|
-
const anchor = new
|
|
519
|
+
const anchor = new THREE27.Object3D();
|
|
1013
520
|
const opts = payload.options ?? {};
|
|
1014
521
|
const meshKind = isInstancedMeshKind(opts.meshKind) ? opts.meshKind : "cube";
|
|
1015
522
|
const meshParameters = opts.meshParameters && typeof opts.meshParameters === "object" ? opts.meshParameters : void 0;
|
|
@@ -1080,7 +587,7 @@ function createAmbientLight({
|
|
|
1080
587
|
scene,
|
|
1081
588
|
payload
|
|
1082
589
|
}) {
|
|
1083
|
-
const light = new
|
|
590
|
+
const light = new THREE27.AmbientLight("#ffffff", 0.6);
|
|
1084
591
|
const entityId = createBaseEntity(world, light, {
|
|
1085
592
|
label: payload.name ?? "Ambient Light",
|
|
1086
593
|
entityType: "ambientLight",
|
|
@@ -1097,7 +604,8 @@ function createAreaLight({
|
|
|
1097
604
|
payload,
|
|
1098
605
|
isEditor
|
|
1099
606
|
}) {
|
|
1100
|
-
|
|
607
|
+
readWorldRenderBackend(world).prepareAreaLights?.(world);
|
|
608
|
+
const light = new THREE27.RectAreaLight("#ffffff", 5, 4, 4);
|
|
1101
609
|
light.lookAt(0, 0, 0);
|
|
1102
610
|
const entityId = createBaseEntity(world, light, {
|
|
1103
611
|
label: payload.name ?? "Area Light",
|
|
@@ -1126,7 +634,7 @@ function createDirectionalLight({
|
|
|
1126
634
|
payload,
|
|
1127
635
|
isEditor
|
|
1128
636
|
}) {
|
|
1129
|
-
const light = new
|
|
637
|
+
const light = new THREE27.DirectionalLight("#ffffff", 1.5);
|
|
1130
638
|
light.castShadow = true;
|
|
1131
639
|
const entityId = createBaseEntity(world, light, {
|
|
1132
640
|
label: payload.name ?? "Directional Light",
|
|
@@ -1137,7 +645,7 @@ function createDirectionalLight({
|
|
|
1137
645
|
});
|
|
1138
646
|
createLightComponent(world, entityId, light);
|
|
1139
647
|
if (isEditor) {
|
|
1140
|
-
const helper = new
|
|
648
|
+
const helper = new THREE27.DirectionalLightHelper(light, 1.8, "#38bdf8");
|
|
1141
649
|
helper.onBeforeRender = () => {
|
|
1142
650
|
helper.update();
|
|
1143
651
|
};
|
|
@@ -1155,7 +663,7 @@ function createPointLight({
|
|
|
1155
663
|
payload,
|
|
1156
664
|
isEditor
|
|
1157
665
|
}) {
|
|
1158
|
-
const light = new
|
|
666
|
+
const light = new THREE27.PointLight("#ffffff", 1, 10);
|
|
1159
667
|
const entityId = createBaseEntity(world, light, {
|
|
1160
668
|
label: payload.name ?? "Point Light",
|
|
1161
669
|
entityType: "pointLight",
|
|
@@ -1165,7 +673,7 @@ function createPointLight({
|
|
|
1165
673
|
});
|
|
1166
674
|
createLightComponent(world, entityId, light);
|
|
1167
675
|
if (isEditor) {
|
|
1168
|
-
const helper = new
|
|
676
|
+
const helper = new THREE27.PointLightHelper(light, 0.35, "#fbbf24");
|
|
1169
677
|
helper.onBeforeRender = () => {
|
|
1170
678
|
helper.update();
|
|
1171
679
|
};
|
|
@@ -1183,7 +691,7 @@ function createSpotLight({
|
|
|
1183
691
|
payload,
|
|
1184
692
|
isEditor
|
|
1185
693
|
}) {
|
|
1186
|
-
const light = new
|
|
694
|
+
const light = new THREE27.SpotLight("#ffffff", 1, 20, Math.PI / 6, 0.1, 1);
|
|
1187
695
|
const entityId = createBaseEntity(world, light, {
|
|
1188
696
|
label: payload.name ?? "Spot Light",
|
|
1189
697
|
entityType: "spotLight",
|
|
@@ -1193,7 +701,7 @@ function createSpotLight({
|
|
|
1193
701
|
});
|
|
1194
702
|
createLightComponent(world, entityId, light);
|
|
1195
703
|
if (isEditor) {
|
|
1196
|
-
const helper = new
|
|
704
|
+
const helper = new THREE27.SpotLightHelper(light, "#f59e0b");
|
|
1197
705
|
helper.onBeforeRender = () => {
|
|
1198
706
|
helper.update();
|
|
1199
707
|
};
|
|
@@ -1205,101 +713,13 @@ function createSpotLight({
|
|
|
1205
713
|
return entityId;
|
|
1206
714
|
}
|
|
1207
715
|
__name(createSpotLight, "createSpotLight");
|
|
1208
|
-
function getModelFileName(path) {
|
|
1209
|
-
const segments = path.split(/[\\/]/).filter(Boolean);
|
|
1210
|
-
return segments[segments.length - 1] ?? "";
|
|
1211
|
-
}
|
|
1212
|
-
__name(getModelFileName, "getModelFileName");
|
|
1213
|
-
function createModelLoader() {
|
|
1214
|
-
const loader = new GLTFLoader();
|
|
1215
|
-
try {
|
|
1216
|
-
const dracoLoader = new DRACOLoader();
|
|
1217
|
-
dracoLoader.setDecoderPath(resolveDracoDecoderPath());
|
|
1218
|
-
loader.setDRACOLoader(dracoLoader);
|
|
1219
|
-
} catch (error) {
|
|
1220
|
-
console.warn("DRACOLoader could not be configured. Loading non-Draco models only.", error);
|
|
1221
|
-
}
|
|
1222
|
-
return loader;
|
|
1223
|
-
}
|
|
1224
|
-
__name(createModelLoader, "createModelLoader");
|
|
1225
|
-
function createModel({
|
|
1226
|
-
world,
|
|
1227
|
-
scene,
|
|
1228
|
-
payload,
|
|
1229
|
-
isEditor
|
|
1230
|
-
}) {
|
|
1231
|
-
const anchor = new THREE30.Object3D();
|
|
1232
|
-
const modelPath = payload.path ?? "";
|
|
1233
|
-
const entityId = createBaseEntity(world, anchor, {
|
|
1234
|
-
label: payload.name ?? "Model",
|
|
1235
|
-
entityType: "model",
|
|
1236
|
-
transformInput: payload.transform
|
|
1237
|
-
});
|
|
1238
|
-
const model = createModelComponent(world, entityId, modelPath);
|
|
1239
|
-
const meshGeometry = createMeshGeometryComponent(world, entityId, "model", anchor, {}, {
|
|
1240
|
-
modelName: getModelFileName(modelPath),
|
|
1241
|
-
castShadow: false,
|
|
1242
|
-
receiveShadow: false
|
|
1243
|
-
});
|
|
1244
|
-
model.object = anchor;
|
|
1245
|
-
scene.add(anchor);
|
|
1246
|
-
if (!modelPath) {
|
|
1247
|
-
return entityId;
|
|
1248
|
-
}
|
|
1249
|
-
const attachLoadedModel = /* @__PURE__ */ __name((gltf, object) => {
|
|
1250
|
-
if (!world.hasEntity(entityId)) {
|
|
1251
|
-
return;
|
|
1252
|
-
}
|
|
1253
|
-
object.userData.entityId = entityId;
|
|
1254
|
-
object.traverse((child) => {
|
|
1255
|
-
child.userData.entityId = entityId;
|
|
1256
|
-
});
|
|
1257
|
-
anchor.add(object);
|
|
1258
|
-
model.object = object;
|
|
1259
|
-
meshGeometry.object = object;
|
|
1260
|
-
if (gltf.animations.length > 0) {
|
|
1261
|
-
let animation = world.getComponent(entityId, AnimationComponent);
|
|
1262
|
-
if (!animation) {
|
|
1263
|
-
animation = createAnimationComponent(world, entityId, {
|
|
1264
|
-
clips: gltf.animations,
|
|
1265
|
-
externalClipSources: [],
|
|
1266
|
-
paused: false,
|
|
1267
|
-
reverse: false,
|
|
1268
|
-
timeScale: 1,
|
|
1269
|
-
crossFadeDuration: 0
|
|
1270
|
-
});
|
|
1271
|
-
}
|
|
1272
|
-
animation.setModelClips(gltf.animations);
|
|
1273
|
-
}
|
|
1274
|
-
}, "attachLoadedModel");
|
|
1275
|
-
const onLoadError = /* @__PURE__ */ __name((error) => {
|
|
1276
|
-
console.error(`Failed to load model: ${modelPath}`, error);
|
|
1277
|
-
}, "onLoadError");
|
|
1278
|
-
if (isEditor) {
|
|
1279
|
-
createModelLoader().load(
|
|
1280
|
-
modelPath,
|
|
1281
|
-
(gltf) => attachLoadedModel(gltf, gltf.scene),
|
|
1282
|
-
void 0,
|
|
1283
|
-
onLoadError
|
|
1284
|
-
);
|
|
1285
|
-
} else {
|
|
1286
|
-
loadSharedGltf(
|
|
1287
|
-
modelPath,
|
|
1288
|
-
() => new Promise((resolve, reject) => {
|
|
1289
|
-
createModelLoader().load(modelPath, resolve, void 0, reject);
|
|
1290
|
-
})
|
|
1291
|
-
).then((gltf) => attachLoadedModel(gltf, cloneModelScene(gltf.scene))).catch(onLoadError);
|
|
1292
|
-
}
|
|
1293
|
-
return entityId;
|
|
1294
|
-
}
|
|
1295
|
-
__name(createModel, "createModel");
|
|
1296
716
|
function createPlane({ world, scene, payload }) {
|
|
1297
|
-
const geometry = new
|
|
1298
|
-
const material = new
|
|
717
|
+
const geometry = new THREE27.PlaneGeometry(100, 100);
|
|
718
|
+
const material = new THREE27.MeshStandardMaterial({
|
|
1299
719
|
color: "#ffffff",
|
|
1300
|
-
side:
|
|
720
|
+
side: THREE27.DoubleSide
|
|
1301
721
|
});
|
|
1302
|
-
const mesh = new
|
|
722
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
1303
723
|
const entityId = createBaseEntity(
|
|
1304
724
|
world,
|
|
1305
725
|
mesh,
|
|
@@ -1335,7 +755,7 @@ function createScriptObject({
|
|
|
1335
755
|
scene,
|
|
1336
756
|
payload
|
|
1337
757
|
}) {
|
|
1338
|
-
const object = new
|
|
758
|
+
const object = new THREE27.Group();
|
|
1339
759
|
const entityId = createBaseEntity(world, object, {
|
|
1340
760
|
label: payload.name ?? "Script Object",
|
|
1341
761
|
entityType: "scriptObject",
|
|
@@ -1360,15 +780,15 @@ function createTeleportArea({
|
|
|
1360
780
|
const options = payload.options ?? {};
|
|
1361
781
|
const width = typeof options.width === "number" ? options.width : 10;
|
|
1362
782
|
const depth = typeof options.depth === "number" ? options.depth : 10;
|
|
1363
|
-
const geometry = new
|
|
1364
|
-
const material = new
|
|
783
|
+
const geometry = new THREE27.PlaneGeometry(width, depth);
|
|
784
|
+
const material = new THREE27.MeshBasicMaterial({
|
|
1365
785
|
color: "#4da3ff",
|
|
1366
786
|
transparent: true,
|
|
1367
787
|
opacity: 0.18,
|
|
1368
|
-
side:
|
|
788
|
+
side: THREE27.DoubleSide,
|
|
1369
789
|
depthWrite: false
|
|
1370
790
|
});
|
|
1371
|
-
const object = new
|
|
791
|
+
const object = new THREE27.Mesh(geometry, material);
|
|
1372
792
|
const entityId = createBaseEntity(world, object, {
|
|
1373
793
|
label: payload.name ?? "Teleport Area",
|
|
1374
794
|
entityType: "teleportArea",
|
|
@@ -1396,7 +816,7 @@ function createXRInteractor({
|
|
|
1396
816
|
scene,
|
|
1397
817
|
payload
|
|
1398
818
|
}) {
|
|
1399
|
-
const root = new
|
|
819
|
+
const root = new THREE27.Group();
|
|
1400
820
|
const options = payload.options ?? {};
|
|
1401
821
|
const entityId = createBaseEntity(world, root, {
|
|
1402
822
|
label: payload.name ?? "XR Interactor",
|
|
@@ -1409,7 +829,7 @@ function createXRInteractor({
|
|
|
1409
829
|
return entityId;
|
|
1410
830
|
}
|
|
1411
831
|
for (const side of ["left", "right"]) {
|
|
1412
|
-
const slot = new
|
|
832
|
+
const slot = new THREE27.Group();
|
|
1413
833
|
const label = side === "left" ? "Left Interactor" : "Right Interactor";
|
|
1414
834
|
const slotEntityId = createBaseEntity(world, slot, {
|
|
1415
835
|
label,
|
|
@@ -1427,7 +847,7 @@ function createUIButton({
|
|
|
1427
847
|
scene,
|
|
1428
848
|
payload
|
|
1429
849
|
}) {
|
|
1430
|
-
const object = new
|
|
850
|
+
const object = new THREE27.Group();
|
|
1431
851
|
const entityId = createBaseEntity(world, object, {
|
|
1432
852
|
label: payload.name ?? "UI Button",
|
|
1433
853
|
entityType: "uiButton",
|
|
@@ -1452,7 +872,7 @@ function createUIPanel({
|
|
|
1452
872
|
scene,
|
|
1453
873
|
payload
|
|
1454
874
|
}) {
|
|
1455
|
-
const object = new
|
|
875
|
+
const object = new THREE27.Group();
|
|
1456
876
|
const entityId = createBaseEntity(world, object, {
|
|
1457
877
|
label: payload.name ?? "UI Panel",
|
|
1458
878
|
entityType: "uiPanel",
|
|
@@ -1469,7 +889,7 @@ function createUISlider({
|
|
|
1469
889
|
scene,
|
|
1470
890
|
payload
|
|
1471
891
|
}) {
|
|
1472
|
-
const object = new
|
|
892
|
+
const object = new THREE27.Group();
|
|
1473
893
|
const entityId = createBaseEntity(world, object, {
|
|
1474
894
|
label: payload.name ?? "UI Slider",
|
|
1475
895
|
entityType: "uiSlider",
|
|
@@ -1494,7 +914,7 @@ function createUIText({
|
|
|
1494
914
|
scene,
|
|
1495
915
|
payload
|
|
1496
916
|
}) {
|
|
1497
|
-
const object = new
|
|
917
|
+
const object = new THREE27.Group();
|
|
1498
918
|
const entityId = createBaseEntity(world, object, {
|
|
1499
919
|
label: payload.name ?? "UI Text",
|
|
1500
920
|
entityType: "uiText",
|
|
@@ -1511,7 +931,7 @@ function createUIToggle({
|
|
|
1511
931
|
scene,
|
|
1512
932
|
payload
|
|
1513
933
|
}) {
|
|
1514
|
-
const object = new
|
|
934
|
+
const object = new THREE27.Group();
|
|
1515
935
|
const entityId = createBaseEntity(world, object, {
|
|
1516
936
|
label: payload.name ?? "UI Toggle",
|
|
1517
937
|
entityType: "uiToggle",
|
|
@@ -1536,7 +956,7 @@ function createXRRig({
|
|
|
1536
956
|
scene,
|
|
1537
957
|
payload
|
|
1538
958
|
}) {
|
|
1539
|
-
const object = new
|
|
959
|
+
const object = new THREE27.Group();
|
|
1540
960
|
const entityId = createBaseEntity(world, object, {
|
|
1541
961
|
label: payload.name ?? "XR Rig",
|
|
1542
962
|
entityType: "xrRig",
|
|
@@ -1549,7 +969,7 @@ function createXRRig({
|
|
|
1549
969
|
}
|
|
1550
970
|
__name(createXRRig, "createXRRig");
|
|
1551
971
|
function createSprite({ world, scene, payload }) {
|
|
1552
|
-
const anchor = new
|
|
972
|
+
const anchor = new THREE27.Object3D();
|
|
1553
973
|
const imagePath = payload.path ?? "";
|
|
1554
974
|
const entityId = createBaseEntity(world, anchor, {
|
|
1555
975
|
label: payload.name ?? "Sprite",
|
|
@@ -1561,7 +981,7 @@ function createSprite({ world, scene, payload }) {
|
|
|
1561
981
|
if (!imagePath) {
|
|
1562
982
|
return entityId;
|
|
1563
983
|
}
|
|
1564
|
-
const loader = new
|
|
984
|
+
const loader = new THREE27.TextureLoader();
|
|
1565
985
|
loader.load(
|
|
1566
986
|
imagePath,
|
|
1567
987
|
(texture) => {
|
|
@@ -1569,11 +989,11 @@ function createSprite({ world, scene, payload }) {
|
|
|
1569
989
|
texture.dispose();
|
|
1570
990
|
return;
|
|
1571
991
|
}
|
|
1572
|
-
const material = new
|
|
992
|
+
const material = new THREE27.SpriteMaterial({
|
|
1573
993
|
map: texture,
|
|
1574
994
|
transparent: true
|
|
1575
995
|
});
|
|
1576
|
-
const sprite = new
|
|
996
|
+
const sprite = new THREE27.Sprite(material);
|
|
1577
997
|
sprite.userData.entityId = entityId;
|
|
1578
998
|
const textureImage = texture.image;
|
|
1579
999
|
spriteComponent.width = textureImage?.width ?? 1;
|
|
@@ -1591,9 +1011,9 @@ function createSprite({ world, scene, payload }) {
|
|
|
1591
1011
|
}
|
|
1592
1012
|
__name(createSprite, "createSprite");
|
|
1593
1013
|
function createSphere({ world, scene, payload }) {
|
|
1594
|
-
const geometry = new
|
|
1595
|
-
const material = new
|
|
1596
|
-
const mesh = new
|
|
1014
|
+
const geometry = new THREE27.SphereGeometry(0.5, 24, 24);
|
|
1015
|
+
const material = new THREE27.MeshStandardMaterial({ color: "#ffffff" });
|
|
1016
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
1597
1017
|
const entityId = createBaseEntity(world, mesh, {
|
|
1598
1018
|
label: payload.name ?? "Sphere",
|
|
1599
1019
|
entityType: "sphere",
|
|
@@ -1613,21 +1033,21 @@ function createSphere({ world, scene, payload }) {
|
|
|
1613
1033
|
__name(createSphere, "createSphere");
|
|
1614
1034
|
function getOrCreateListener2(camera) {
|
|
1615
1035
|
const existing = camera.userData.ecsAudioListener;
|
|
1616
|
-
if (existing instanceof
|
|
1036
|
+
if (existing instanceof THREE27.AudioListener) {
|
|
1617
1037
|
return existing;
|
|
1618
1038
|
}
|
|
1619
|
-
const listener = new
|
|
1039
|
+
const listener = new THREE27.AudioListener();
|
|
1620
1040
|
camera.add(listener);
|
|
1621
1041
|
camera.userData.ecsAudioListener = listener;
|
|
1622
1042
|
return listener;
|
|
1623
1043
|
}
|
|
1624
1044
|
__name(getOrCreateListener2, "getOrCreateListener");
|
|
1625
|
-
function
|
|
1045
|
+
function normalizeDistanceModel(value) {
|
|
1626
1046
|
const v = value.trim().toLowerCase();
|
|
1627
1047
|
if (v === "linear" || v === "exponential") return v;
|
|
1628
1048
|
return "inverse";
|
|
1629
1049
|
}
|
|
1630
|
-
__name(
|
|
1050
|
+
__name(normalizeDistanceModel, "normalizeDistanceModel");
|
|
1631
1051
|
function toBool(value, fallback) {
|
|
1632
1052
|
return typeof value === "boolean" ? value : fallback;
|
|
1633
1053
|
}
|
|
@@ -1665,58 +1085,23 @@ function normalizeOptions(input) {
|
|
|
1665
1085
|
};
|
|
1666
1086
|
}
|
|
1667
1087
|
__name(normalizeOptions, "normalizeOptions");
|
|
1668
|
-
function createChromaMaterial(texture, options) {
|
|
1669
|
-
return new THREE30.ShaderMaterial({
|
|
1670
|
-
uniforms: {
|
|
1671
|
-
tex: { value: texture },
|
|
1672
|
-
keyColor: { value: new THREE30.Color(options.backgroundColor) },
|
|
1673
|
-
similarity: { value: options.similarity },
|
|
1674
|
-
smoothness: { value: options.smoothness },
|
|
1675
|
-
spill: { value: options.spill }
|
|
1676
|
-
},
|
|
1677
|
-
vertexShader: `
|
|
1678
|
-
varying vec2 vUv;
|
|
1679
|
-
void main() {
|
|
1680
|
-
vUv = uv;
|
|
1681
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
1682
|
-
}
|
|
1683
|
-
`,
|
|
1684
|
-
fragmentShader: `
|
|
1685
|
-
uniform sampler2D tex;
|
|
1686
|
-
uniform vec3 keyColor;
|
|
1687
|
-
uniform float similarity;
|
|
1688
|
-
uniform float smoothness;
|
|
1689
|
-
uniform float spill;
|
|
1690
|
-
varying vec2 vUv;
|
|
1691
|
-
|
|
1692
|
-
void main() {
|
|
1693
|
-
vec4 texel = texture2D(tex, vUv);
|
|
1694
|
-
float chromaDist = distance(texel.rgb, keyColor);
|
|
1695
|
-
float alpha = smoothstep(similarity, similarity + smoothness, chromaDist);
|
|
1696
|
-
|
|
1697
|
-
float spillFactor = smoothstep(similarity, similarity + spill + smoothness, chromaDist);
|
|
1698
|
-
vec3 despilled = mix(vec3(dot(texel.rgb, vec3(0.299, 0.587, 0.114))), texel.rgb, spillFactor);
|
|
1699
|
-
|
|
1700
|
-
gl_FragColor = vec4(despilled, texel.a * alpha);
|
|
1701
|
-
}
|
|
1702
|
-
`,
|
|
1703
|
-
transparent: true,
|
|
1704
|
-
side: THREE30.DoubleSide
|
|
1705
|
-
});
|
|
1706
|
-
}
|
|
1707
|
-
__name(createChromaMaterial, "createChromaMaterial");
|
|
1708
1088
|
function createStandardMaterial(texture) {
|
|
1709
|
-
return new
|
|
1089
|
+
return new THREE27.MeshBasicMaterial({
|
|
1710
1090
|
map: texture,
|
|
1711
1091
|
transparent: true,
|
|
1712
|
-
side:
|
|
1092
|
+
side: THREE27.DoubleSide
|
|
1713
1093
|
});
|
|
1714
1094
|
}
|
|
1715
1095
|
__name(createStandardMaterial, "createStandardMaterial");
|
|
1716
|
-
function createVideoMesh(entityId, texture, options) {
|
|
1717
|
-
const geometry = new
|
|
1718
|
-
const material = options.isGreenScreen ?
|
|
1719
|
-
|
|
1096
|
+
function createVideoMesh(entityId, texture, options, backend) {
|
|
1097
|
+
const geometry = new THREE27.PlaneGeometry(1, 1);
|
|
1098
|
+
const material = options.isGreenScreen ? backend.createChromaKeyMaterial(texture, {
|
|
1099
|
+
keyColor: options.backgroundColor,
|
|
1100
|
+
similarity: options.similarity,
|
|
1101
|
+
smoothness: options.smoothness,
|
|
1102
|
+
spill: options.spill
|
|
1103
|
+
}) : createStandardMaterial(texture);
|
|
1104
|
+
const mesh = new THREE27.Mesh(geometry, material);
|
|
1720
1105
|
mesh.userData.entityId = entityId;
|
|
1721
1106
|
mesh.scale.set(options.width, options.height, 1);
|
|
1722
1107
|
return { mesh, material };
|
|
@@ -1751,7 +1136,7 @@ function createVideo({
|
|
|
1751
1136
|
payload,
|
|
1752
1137
|
isEditor
|
|
1753
1138
|
}) {
|
|
1754
|
-
const anchor = new
|
|
1139
|
+
const anchor = new THREE27.Object3D();
|
|
1755
1140
|
const path = payload.path ?? "";
|
|
1756
1141
|
const options = normalizeOptions(payload.options);
|
|
1757
1142
|
const entityId = createBaseEntity(world, anchor, {
|
|
@@ -1766,10 +1151,15 @@ function createVideo({
|
|
|
1766
1151
|
return entityId;
|
|
1767
1152
|
}
|
|
1768
1153
|
const video = createVideoElement(path, options);
|
|
1769
|
-
const texture = new
|
|
1770
|
-
texture.colorSpace =
|
|
1154
|
+
const texture = new THREE27.VideoTexture(video);
|
|
1155
|
+
texture.colorSpace = THREE27.SRGBColorSpace;
|
|
1771
1156
|
texture.needsUpdate = true;
|
|
1772
|
-
const { mesh, material } = createVideoMesh(
|
|
1157
|
+
const { mesh, material } = createVideoMesh(
|
|
1158
|
+
entityId,
|
|
1159
|
+
texture,
|
|
1160
|
+
options,
|
|
1161
|
+
readWorldRenderBackend(world)
|
|
1162
|
+
);
|
|
1773
1163
|
anchor.add(mesh);
|
|
1774
1164
|
videoComponent.videoElement = video;
|
|
1775
1165
|
videoComponent.texture = texture;
|
|
@@ -1783,10 +1173,10 @@ function createVideo({
|
|
|
1783
1173
|
});
|
|
1784
1174
|
if (!isEditor && options.positional) {
|
|
1785
1175
|
const listener = getOrCreateListener2(camera);
|
|
1786
|
-
const audioNode = new
|
|
1176
|
+
const audioNode = new THREE27.PositionalAudio(listener);
|
|
1787
1177
|
audioNode.setVolume(options.volume);
|
|
1788
1178
|
audioNode.setRefDistance(options.refDistance);
|
|
1789
|
-
audioNode.setDistanceModel(
|
|
1179
|
+
audioNode.setDistanceModel(normalizeDistanceModel(options.distanceModel));
|
|
1790
1180
|
audioNode.setRolloffFactor(options.rolloffFactor);
|
|
1791
1181
|
audioNode.setMediaElementSource(video);
|
|
1792
1182
|
video.volume = 1;
|
|
@@ -1835,6 +1225,6 @@ function registerDefaultFactories(objectManagementSystem) {
|
|
|
1835
1225
|
}
|
|
1836
1226
|
__name(registerDefaultFactories, "registerDefaultFactories");
|
|
1837
1227
|
|
|
1838
|
-
export {
|
|
1839
|
-
//# sourceMappingURL=chunk-
|
|
1840
|
-
//# sourceMappingURL=chunk-
|
|
1228
|
+
export { registerDefaultComponentFactories, registerDefaultFactories };
|
|
1229
|
+
//# sourceMappingURL=chunk-SGF73YTF.js.map
|
|
1230
|
+
//# sourceMappingURL=chunk-SGF73YTF.js.map
|