@woosh/meep-engine 3.14.4 → 3.14.6
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 +6 -0
- package/editor/Editor.d.ts +162 -0
- package/editor/Editor.d.ts.map +1 -0
- package/editor/EditorCameraNavigation.d.ts +22 -0
- package/editor/EditorCameraNavigation.d.ts.map +1 -0
- package/editor/EditorKeyMap.d.ts +28 -0
- package/editor/EditorKeyMap.d.ts.map +1 -0
- package/editor/SelectionVisualizer.d.ts +37 -0
- package/editor/SelectionVisualizer.d.ts.map +1 -0
- package/editor/actions/concrete/ActionInvalidateSampler.d.ts +18 -0
- package/editor/actions/concrete/ActionInvalidateSampler.d.ts.map +1 -0
- package/editor/actions/concrete/ActionUpdateTexture.d.ts +12 -0
- package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +1 -0
- package/editor/actions/concrete/ActionUpdateTexture.js +1 -1
- package/editor/actions/concrete/ArrayCopyAction.d.ts +20 -0
- package/editor/actions/concrete/ArrayCopyAction.d.ts.map +1 -0
- package/editor/actions/concrete/ComponentAddAction.d.ts +15 -0
- package/editor/actions/concrete/ComponentAddAction.d.ts.map +1 -0
- package/editor/actions/concrete/ComponentRemoveAction.d.ts +11 -0
- package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -0
- package/editor/actions/concrete/EntityCreateAction.d.ts +18 -0
- package/editor/actions/concrete/EntityCreateAction.d.ts.map +1 -0
- package/editor/actions/concrete/EntityRemoveAction.d.ts +11 -0
- package/editor/actions/concrete/EntityRemoveAction.d.ts.map +1 -0
- package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +47 -0
- package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts.map +1 -0
- package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +38 -0
- package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +1 -0
- package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +23 -0
- package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +1 -0
- package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +32 -0
- package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -0
- package/editor/actions/concrete/SelectionAddAction.d.ts +19 -0
- package/editor/actions/concrete/SelectionAddAction.d.ts.map +1 -0
- package/editor/actions/concrete/SelectionClearAction.d.ts +9 -0
- package/editor/actions/concrete/SelectionClearAction.d.ts.map +1 -0
- package/editor/actions/concrete/SelectionRemoveAction.d.ts +10 -0
- package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +1 -0
- package/editor/actions/concrete/TransformModifyAction.d.ts +17 -0
- package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -0
- package/editor/actions/concrete/WriteGridValueAction.d.ts +14 -0
- package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -0
- package/editor/camera/camera_framing.d.ts +33 -0
- package/editor/camera/camera_framing.d.ts.map +1 -0
- package/editor/clipboard.d.ts +19 -0
- package/editor/clipboard.d.ts.map +1 -0
- package/editor/ecs/EditorEntity.d.ts +16 -0
- package/editor/ecs/EditorEntity.d.ts.map +1 -0
- package/editor/ecs/EditorEntitySystem.d.ts +8 -0
- package/editor/ecs/EditorEntitySystem.d.ts.map +1 -0
- package/editor/ecs/component/TypeEditor.d.ts +7 -1
- package/editor/ecs/component/TypeEditor.d.ts.map +1 -1
- package/editor/ecs/component/TypeEditor.js +5 -0
- package/editor/ecs/component/editors/ColorEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ColorEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/HTMLElementEditor.d.ts +7 -0
- package/editor/ecs/component/editors/HTMLElementEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ImagePathEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ImagePathEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/LargeStringEditor.d.ts +16 -0
- package/editor/ecs/component/editors/LargeStringEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/NumericIntervalEditor.d.ts +7 -0
- package/editor/ecs/component/editors/NumericIntervalEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ObservedEnumEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ObservedEnumEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ObservedStringEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ObservedStringEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/Sampler2DEditor.d.ts +7 -0
- package/editor/ecs/component/editors/Sampler2DEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/collection/ListEditor.d.ts +8 -0
- package/editor/ecs/component/editors/collection/ListEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts +12 -0
- package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/common/EnumEditor.d.ts +8 -0
- package/editor/ecs/component/editors/common/EnumEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/common/makeV3_editor.d.ts +15 -0
- package/editor/ecs/component/editors/common/makeV3_editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/common/noEditor.d.ts +3 -0
- package/editor/ecs/component/editors/common/noEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/common/two_way_sync.d.ts +22 -0
- package/editor/ecs/component/editors/common/two_way_sync.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts +7 -0
- package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts +14 -0
- package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +20 -0
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +12 -0
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +14 -0
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +52 -0
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +47 -0
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/SGMeshEditor.d.ts +21 -0
- package/editor/ecs/component/editors/ecs/SGMeshEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/ShadedGeometryEditor.d.ts +26 -0
- package/editor/ecs/component/editors/ecs/ShadedGeometryEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +16 -0
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts +15 -0
- package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +42 -0
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/TransformEditor.d.ts +20 -0
- package/editor/ecs/component/editors/ecs/TransformEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts +8 -0
- package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts +19 -0
- package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts +27 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts +16 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts +19 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts +18 -0
- package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts +6 -0
- package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/Vector1Editor.d.ts +7 -0
- package/editor/ecs/component/editors/geom/Vector1Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/Vector2Editor.d.ts +6 -0
- package/editor/ecs/component/editors/geom/Vector2Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/Vector3Editor.d.ts +6 -0
- package/editor/ecs/component/editors/geom/Vector3Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/Vector4Editor.d.ts +6 -0
- package/editor/ecs/component/editors/geom/Vector4Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts +8 -0
- package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts +7 -0
- package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts +7 -0
- package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/primitive/NumberEditor.d.ts +8 -0
- package/editor/ecs/component/editors/primitive/NumberEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/primitive/StringEditor.d.ts +7 -0
- package/editor/ecs/component/editors/primitive/StringEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/shade/MeshletGeometryEditor.d.ts +28 -0
- package/editor/ecs/component/editors/shade/MeshletGeometryEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/shade/ShadeImageEditor.d.ts +29 -0
- package/editor/ecs/component/editors/shade/ShadeImageEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/shade/ShadeMaterialEditor.d.ts +28 -0
- package/editor/ecs/component/editors/shade/ShadeMaterialEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/shade/ShadeTextureEditor.d.ts +41 -0
- package/editor/ecs/component/editors/shade/ShadeTextureEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/shade/StandardShadeMaterialEditor.d.ts +31 -0
- package/editor/ecs/component/editors/shade/StandardShadeMaterialEditor.d.ts.map +1 -0
- package/editor/ecs/component/prototypeObjectEditor.d.ts +2 -0
- package/editor/ecs/component/prototypeObjectEditor.d.ts.map +1 -0
- package/editor/ecs/component/registerBasicTypeEditors.d.ts +11 -0
- package/editor/ecs/component/registerBasicTypeEditors.d.ts.map +1 -0
- package/editor/ecs/component/registerEngineComponentEditors.d.ts +8 -0
- package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -0
- package/editor/enableEditor.d.ts +14 -0
- package/editor/enableEditor.d.ts.map +1 -0
- package/editor/entity_world_bounds.d.ts +17 -0
- package/editor/entity_world_bounds.d.ts.map +1 -0
- package/editor/library/MeshLibrary.d.ts +13 -0
- package/editor/library/MeshLibrary.d.ts.map +1 -0
- package/editor/particles/lut_ops.d.ts +34 -0
- package/editor/particles/lut_ops.d.ts.map +1 -0
- package/editor/particles/particleEditEvents.d.ts +11 -0
- package/editor/particles/particleEditEvents.d.ts.map +1 -0
- package/editor/particles/rebuildParticleEmitter.d.ts +11 -0
- package/editor/particles/rebuildParticleEmitter.d.ts.map +1 -0
- package/editor/persistence/EditorLayoutStore.d.ts +30 -0
- package/editor/persistence/EditorLayoutStore.d.ts.map +1 -0
- package/editor/persistence/SceneMetadata.d.ts +38 -0
- package/editor/persistence/SceneMetadata.d.ts.map +1 -0
- package/editor/persistence/SceneSlotManager.d.ts +40 -0
- package/editor/persistence/SceneSlotManager.d.ts.map +1 -0
- package/editor/persistence/buildNewSceneDataset.d.ts +10 -0
- package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -0
- package/editor/persistence/files.d.ts +24 -0
- package/editor/persistence/files.d.ts.map +1 -0
- package/editor/persistence/scene_import.d.ts +45 -0
- package/editor/persistence/scene_import.d.ts.map +1 -0
- package/editor/persistence/scene_serialization.d.ts +36 -0
- package/editor/persistence/scene_serialization.d.ts.map +1 -0
- package/editor/persistence/string_buffer_codec.d.ts +20 -0
- package/editor/persistence/string_buffer_codec.d.ts.map +1 -0
- package/editor/process/DisableGameUIProcess.d.ts +8 -0
- package/editor/process/DisableGameUIProcess.d.ts.map +1 -0
- package/editor/process/EditorProcess.d.ts +19 -0
- package/editor/process/EditorProcess.d.ts.map +1 -0
- package/editor/process/GridDisplayProcess.d.ts +35 -0
- package/editor/process/GridDisplayProcess.d.ts.map +1 -0
- package/editor/process/ObstacleGridDisplayProcess.d.ts +13 -0
- package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -0
- package/editor/process/ParticleEmitterRebuildProcess.d.ts +66 -0
- package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +1 -0
- package/editor/process/ProcessEngine.d.ts +30 -0
- package/editor/process/ProcessEngine.d.ts.map +1 -0
- package/editor/process/SymbolicDisplayProcess.d.ts +23 -0
- package/editor/process/SymbolicDisplayProcess.d.ts.map +1 -0
- package/editor/process/symbolic/AudioEmitterSymbolicDisplay.d.ts +17 -0
- package/editor/process/symbolic/AudioEmitterSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/CameraSymbolicDisplay.d.ts +25 -0
- package/editor/process/symbolic/CameraSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/GridPositionSymbolicDisplay.d.ts +19 -0
- package/editor/process/symbolic/GridPositionSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/LightSymbolicDisplay.d.ts +19 -0
- package/editor/process/symbolic/LightSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts +18 -0
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/PathSymbolicDisplay.d.ts +20 -0
- package/editor/process/symbolic/PathSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.d.ts +25 -0
- package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/SymbolicDisplay.d.ts +48 -0
- package/editor/process/symbolic/SymbolicDisplay.d.ts.map +1 -0
- package/editor/process/symbolic/gizmo_draw_wire_box_oriented.d.ts +13 -0
- package/editor/process/symbolic/gizmo_draw_wire_box_oriented.d.ts.map +1 -0
- package/editor/process/symbolic/gizmo_draw_wire_circle.d.ts +18 -0
- package/editor/process/symbolic/gizmo_draw_wire_circle.d.ts.map +1 -0
- package/editor/prototypeEditorShell.d.ts +13 -0
- package/editor/prototypeEditorShell.d.ts.map +1 -0
- package/editor/selection/editor_pick.d.ts +43 -0
- package/editor/selection/editor_pick.d.ts.map +1 -0
- package/editor/selection/screen_rect_frustum.d.ts +32 -0
- package/editor/selection/screen_rect_frustum.d.ts.map +1 -0
- package/editor/templates/entity_templates.d.ts +19 -0
- package/editor/templates/entity_templates.d.ts.map +1 -0
- package/editor/tools/GridPaintTool.d.ts +18 -0
- package/editor/tools/GridPaintTool.d.ts.map +1 -0
- package/editor/tools/SelectionTool.d.ts +38 -0
- package/editor/tools/SelectionTool.d.ts.map +1 -0
- package/editor/tools/SelectionTool.js +2 -2
- package/editor/tools/TransformToolV2.d.ts +70 -0
- package/editor/tools/TransformToolV2.d.ts.map +1 -0
- package/editor/tools/engine/Tool.d.ts +88 -0
- package/editor/tools/engine/Tool.d.ts.map +1 -0
- package/editor/tools/engine/ToolEngine.d.ts +22 -0
- package/editor/tools/engine/ToolEngine.d.ts.map +1 -0
- package/editor/tools/engine/ToolState.d.ts +7 -0
- package/editor/tools/engine/ToolState.d.ts.map +1 -0
- package/editor/tools/paint/TerrainHeightPaintTool.d.ts +18 -0
- package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -0
- package/editor/tools/paint/TerrainPaintTool.d.ts +82 -0
- package/editor/tools/paint/TerrainPaintTool.d.ts.map +1 -0
- package/editor/tools/paint/TerrainTexturePaintTool.d.ts +19 -0
- package/editor/tools/paint/TerrainTexturePaintTool.d.ts.map +1 -0
- package/editor/tools/v2/BlenderCameraOrientationGizmo.d.ts +139 -0
- package/editor/tools/v2/BlenderCameraOrientationGizmo.d.ts.map +1 -0
- package/editor/tools/v2/GizmoNode.d.ts +21 -0
- package/editor/tools/v2/GizmoNode.d.ts.map +1 -0
- package/editor/tools/v2/TransformControls.d.ts +219 -0
- package/editor/tools/v2/TransformControls.d.ts.map +1 -0
- package/editor/tools/v2/TransformMode.d.ts +7 -0
- package/editor/tools/v2/TransformMode.d.ts.map +1 -0
- package/editor/tools/v2/handle/gizmo_drag_plane.d.ts +37 -0
- package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -0
- package/editor/tools/v2/handle/gizmo_draw.d.ts +14 -0
- package/editor/tools/v2/handle/gizmo_draw.d.ts.map +1 -0
- package/editor/tools/v2/handle/gizmo_handles.d.ts +160 -0
- package/editor/tools/v2/handle/gizmo_handles.d.ts.map +1 -0
- package/editor/tools/v2/handle/gizmo_ray_shapes.d.ts +103 -0
- package/editor/tools/v2/handle/gizmo_ray_shapes.d.ts.map +1 -0
- package/editor/view/GridPickCoordinateView.d.ts +22 -0
- package/editor/view/GridPickCoordinateView.d.ts.map +1 -0
- package/editor/view/ecs/ComponentControlView.d.ts +24 -0
- package/editor/view/ecs/ComponentControlView.d.ts.map +1 -0
- package/editor/view/ecs/EntityEditor.d.ts +25 -0
- package/editor/view/ecs/EntityEditor.d.ts.map +1 -0
- package/editor/view/ecs/EntityList.d.ts +22 -0
- package/editor/view/ecs/EntityList.d.ts.map +1 -0
- package/editor/view/ecs/HierarchicalEntityListView.d.ts +25 -0
- package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -0
- package/editor/view/ecs/components/DatGuiController.d.ts +2 -0
- package/editor/view/ecs/components/DatGuiController.d.ts.map +1 -0
- package/editor/view/ecs/components/color/GaugeView.d.ts +9 -5
- package/editor/view/ecs/components/color/GaugeView.d.ts.map +1 -1
- package/editor/view/ecs/components/color/GaugeView.js +4 -4
- package/editor/view/ecs/components/common/NumberController.d.ts +9 -5
- package/editor/view/ecs/components/common/NumberController.d.ts.map +1 -1
- package/editor/view/ecs/components/common/NumberController.js +4 -4
- package/editor/view/ecs/components/common/NumericIntervalController.d.ts +10 -0
- package/editor/view/ecs/components/common/NumericIntervalController.d.ts.map +1 -0
- package/editor/view/ecs/components/common/TextController.d.ts.map +1 -1
- package/editor/view/library/MeshLibraryView.d.ts +16 -0
- package/editor/view/library/MeshLibraryView.d.ts.map +1 -0
- package/editor/view/library/mesh_library_drag.d.ts +21 -0
- package/editor/view/library/mesh_library_drag.d.ts.map +1 -0
- package/editor/view/library/model_thumbnail_source.d.ts +12 -0
- package/editor/view/library/model_thumbnail_source.d.ts.map +1 -0
- package/editor/view/makeEntityDecorators.d.ts +6 -0
- package/editor/view/makeEntityDecorators.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphCamera.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphSelection.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeView.d.ts.map +1 -1
- package/editor/view/node-graph/PortView.d.ts.map +1 -1
- package/editor/view/node-graph/actions/ConnectionCreateAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/NodeParameterSetAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/NodesMoveAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/SelectionSetAction.d.ts.map +1 -1
- package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -1
- package/editor/view/particles/ColorLutGradientView.d.ts +19 -0
- package/editor/view/particles/ColorLutGradientView.d.ts.map +1 -0
- package/editor/view/particles/ScalarLutCurveView.d.ts +19 -0
- package/editor/view/particles/ScalarLutCurveView.d.ts.map +1 -0
- package/editor/view/prepareMeshLibrary.d.ts +7 -0
- package/editor/view/prepareMeshLibrary.d.ts.map +1 -0
- package/editor/view/process/ProcessView.d.ts +14 -0
- package/editor/view/process/ProcessView.d.ts.map +1 -0
- package/editor/view/shell/EditorShellView.d.ts +18 -0
- package/editor/view/shell/EditorShellView.d.ts.map +1 -0
- package/editor/view/shell/SceneTreePanelView.d.ts +17 -0
- package/editor/view/shell/SceneTreePanelView.d.ts.map +1 -0
- package/editor/view/shell/ViewportPanelView.d.ts +18 -0
- package/editor/view/shell/ViewportPanelView.d.ts.map +1 -0
- package/editor/view/tools/ToolSettingsView.d.ts +22 -0
- package/editor/view/tools/ToolSettingsView.d.ts.map +1 -0
- package/editor/view/tools/ToolView.d.ts +13 -0
- package/editor/view/tools/ToolView.d.ts.map +1 -0
- package/editor/view/v2/SplitView.d.ts +2 -0
- package/editor/view/v2/SplitView.d.ts.map +1 -0
- package/package.json +9 -11
- package/samples/engine/README.md +113 -0
- package/samples/engine/first-scene/index.html +32 -0
- package/samples/engine/first-scene/main.js +152 -0
- package/src/core/assert.d.ts +2 -2
- package/src/core/binary/BitSet.d.ts +2 -2
- package/src/core/binary/BitSet.d.ts.map +1 -1
- package/src/core/binary/BitSet.js +1 -1
- package/src/core/bvh2/bvh3/BVH.d.ts +4 -0
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +4 -0
- package/src/core/bvh2/bvh3/BvhClient.d.ts +4 -0
- package/src/core/bvh2/bvh3/BvhClient.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BvhClient.js +4 -0
- package/src/core/collection/array/array_sort_quick.d.ts +1 -1
- package/src/core/collection/list/List.d.ts +7 -3
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +6 -2
- package/src/core/collection/table/RowFirstTableSpec.d.ts.map +1 -1
- package/src/core/collection/table/RowFirstTableSpec.js +0 -4
- package/src/core/color/Color.d.ts +1 -0
- package/src/core/color/Color.d.ts.map +1 -1
- package/src/core/color/Color.js +4 -0
- package/src/core/events/signal/SignalBinding.d.ts +4 -0
- package/src/core/events/signal/SignalBinding.d.ts.map +1 -1
- package/src/core/events/signal/SignalBinding.js +4 -0
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts +5 -1
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.js +4 -0
- package/src/core/geom/3d/SurfacePoint3.d.ts +2 -2
- package/src/core/geom/3d/SurfacePoint3.d.ts.map +1 -1
- package/src/core/geom/3d/SurfacePoint3.js +1 -1
- package/src/core/geom/3d/aabb/AABB3.d.ts +63 -7
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +17 -3
- package/src/core/geom/3d/mat4/m4_rigidity_defect.d.ts +30 -0
- package/src/core/geom/3d/mat4/m4_rigidity_defect.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_rigidity_defect.js +71 -0
- package/src/core/geom/3d/plane/plane3_compute_intersection_objects.js +2 -2
- package/src/core/geom/3d/ray/Ray3.d.ts +4 -4
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +10 -3
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +9 -2
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +2 -2
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +1 -1
- package/src/core/geom/Vector1.d.ts +4 -0
- package/src/core/geom/Vector1.d.ts.map +1 -1
- package/src/core/geom/Vector1.js +4 -0
- package/src/core/geom/Vector2.d.ts +4 -0
- package/src/core/geom/Vector2.d.ts.map +1 -1
- package/src/core/geom/Vector2.js +4 -0
- package/src/core/geom/Vector3.d.ts +4 -0
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector3.js +4 -0
- package/src/core/geom/Vector4.d.ts +4 -0
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +4 -0
- package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts +6 -2
- package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts.map +1 -1
- package/src/core/geom/packing/max-rect/MaxRectanglesPacker.js +4 -0
- package/src/core/geom/packing/miniball/Subspan.d.ts +4 -4
- package/src/core/geom/packing/miniball/Subspan.d.ts.map +1 -1
- package/src/core/geom/packing/miniball/Subspan.js +2 -2
- package/src/core/math/interval/NumericInterval.d.ts +4 -0
- package/src/core/math/interval/NumericInterval.d.ts.map +1 -1
- package/src/core/math/interval/NumericInterval.js +4 -0
- package/src/core/math/random/roundFair.d.ts +2 -2
- package/src/core/math/random/roundFair.d.ts.map +1 -1
- package/src/core/math/random/roundFair.js +1 -1
- package/src/core/model/BoundedValue.d.ts +4 -0
- package/src/core/model/BoundedValue.d.ts.map +1 -1
- package/src/core/model/BoundedValue.js +4 -0
- package/src/core/model/ObservedBoolean.d.ts +4 -0
- package/src/core/model/ObservedBoolean.d.ts.map +1 -1
- package/src/core/model/ObservedBoolean.js +4 -0
- package/src/core/model/ObservedInteger.d.ts +4 -0
- package/src/core/model/ObservedInteger.d.ts.map +1 -1
- package/src/core/model/ObservedInteger.js +4 -0
- package/src/core/model/ObservedString.d.ts +4 -0
- package/src/core/model/ObservedString.d.ts.map +1 -1
- package/src/core/model/ObservedString.js +4 -0
- package/src/core/model/stat/Stat.d.ts +7 -3
- package/src/core/model/stat/Stat.d.ts.map +1 -1
- package/src/core/model/stat/Stat.js +4 -0
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +65 -0
- package/src/engine/EngineHarness.d.ts +8 -1
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +10 -14
- package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts +2 -2
- package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
- package/src/engine/animation/clip/ecd_bind_animation_curve.js +4 -4
- package/src/engine/asset/loaders/async_traverse_three_object.d.ts +2 -2
- package/src/engine/asset/loaders/async_traverse_three_object.d.ts.map +1 -1
- package/src/engine/asset/loaders/async_traverse_three_object.js +1 -1
- package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts +7 -3
- package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts.map +1 -1
- package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js +33 -3
- package/src/engine/control/first-person/DESIGN.md +20 -2
- package/src/engine/control/first-person/DESIGN_COLLISION.md +17 -0
- package/src/engine/control/first-person/collision/KinematicMover.d.ts +58 -11
- package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.js +97 -20
- package/src/engine/ecs/Entity.js +1 -1
- package/src/engine/ecs/EntityComponentDataset.d.ts +2 -2
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +1 -1
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +27 -3
- package/src/engine/ecs/animation/Animation.d.ts +17 -3
- package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
- package/src/engine/ecs/animation/Animation.js +26 -6
- package/src/engine/ecs/terrain/TerrainPreview.d.ts +4 -0
- package/src/engine/ecs/terrain/TerrainPreview.d.ts.map +1 -1
- package/src/engine/ecs/terrain/TerrainPreview.js +4 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +4 -4
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +2 -2
- package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts +3 -2
- package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.js +25 -2
- package/src/engine/ecs/transform/Transform64.d.ts +4 -4
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +2 -2
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts +26 -0
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
- package/src/engine/graphics/ecs/decal/v2/Decal.js +26 -0
- package/src/engine/graphics/ecs/light/Light.d.ts +38 -1
- package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/Light.js +51 -1
- package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts +3 -3
- package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh/copyToVector3.js +2 -2
- package/src/engine/graphics/ecs/mesh/setMesh.d.ts +2 -2
- package/src/engine/graphics/ecs/mesh/setMesh.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh/setMesh.js +1 -1
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts +2 -2
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +1 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts +3 -3
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +2 -2
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts +2 -2
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +1 -1
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts +2 -2
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +1 -1
- package/src/engine/graphics/geometry/compute_geometry_polycount.d.ts +2 -2
- package/src/engine/graphics/geometry/compute_geometry_polycount.d.ts.map +1 -1
- package/src/engine/graphics/geometry/compute_geometry_polycount.js +1 -1
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts +3 -3
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts.map +1 -1
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +2 -2
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts +4 -4
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts.map +1 -1
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +3 -3
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts +3 -3
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts.map +1 -1
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +2 -2
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts +4 -4
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts.map +1 -1
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +3 -3
- package/src/engine/graphics/geometry/scaleGeometryToBox.d.ts +2 -2
- package/src/engine/graphics/geometry/scaleGeometryToBox.d.ts.map +1 -1
- package/src/engine/graphics/geometry/scaleGeometryToBox.js +1 -1
- package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.d.ts +2 -2
- package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.d.ts.map +1 -1
- package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.js +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorDescription.d.ts +2 -2
- package/src/engine/graphics/impostors/octahedral/ImpostorDescription.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorDescription.js +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +4 -12
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +2 -2
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +5 -20
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +24 -24
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +16 -16
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +4 -4
- package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
- package/src/engine/graphics/render/layers/RenderLayer.js +2 -2
- package/src/engine/graphics/render/make_bvh_visibility_builder.js +1 -1
- package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +1 -1
- package/src/engine/graphics/render/visibility/VisibilityComputer.js +1 -1
- package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts +2 -2
- package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts.map +1 -1
- package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.js +1 -1
- package/src/engine/graphics3/DecalSystem.d.ts +8 -0
- package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DecalSystem.js +8 -0
- package/src/engine/graphics3/GraphicsEngine.d.ts +19 -8
- package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics3/GraphicsEngine.js +22 -11
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +11 -1
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts +4 -0
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadStickCalibration.js +4 -0
- package/src/engine/navigation/mesh/NavigationMesh.d.ts +90 -9
- package/src/engine/navigation/mesh/NavigationMesh.d.ts.map +1 -1
- package/src/engine/navigation/mesh/NavigationMesh.js +80 -8
- package/src/engine/network/NetworkSession.d.ts +60 -0
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +141 -1
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +56 -8
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +263 -67
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +6 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +6 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +13 -7
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +103 -138
- package/src/engine/network/replication/Replicator.d.ts +47 -6
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +362 -107
- package/src/engine/network/sim/ActionLog.d.ts +2 -0
- package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
- package/src/engine/network/sim/ActionLog.js +2 -0
- package/src/engine/network/sim/ActionRecordCursor.d.ts +82 -0
- package/src/engine/network/sim/ActionRecordCursor.d.ts.map +1 -0
- package/src/engine/network/sim/ActionRecordCursor.js +120 -0
- package/src/engine/network/sim/RewindEngine.d.ts.map +1 -1
- package/src/engine/network/sim/RewindEngine.js +13 -29
- package/src/engine/network/sim/SimActionExecutor.d.ts +2 -3
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +10 -11
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +27 -0
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +27 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/SoundEngine.d.ts +24 -0
- package/src/engine/sound/SoundEngine.d.ts.map +1 -1
- package/src/engine/sound/SoundEngine.js +29 -11
- package/src/engine/sound/simulation/configureAcousticSimulation.d.ts +12 -4
- package/src/engine/sound/simulation/configureAcousticSimulation.d.ts.map +1 -1
- package/src/engine/sound/simulation/configureAcousticSimulation.js +10 -4
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts +3 -1
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.js +27 -1
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts +34 -0
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/ProbeReverbRenderer.js +61 -2
- package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/reverbImpulseResponse.js +9 -0
- package/src/shade/playground/particle_system/README.md +14 -3
- package/src/shade/playground/particle_system/index.html +1 -0
- package/src/shade/playground/particle_system/main.js +15 -2
- package/src/shade/playground/particle_system/particle_scene.d.ts +11 -2
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +164 -46
- package/src/shade/playground/skinned_mesh_soup/README.md +39 -18
- package/src/shade/playground/skinned_mesh_soup/index.html +9 -6
- package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/main.js +16 -13
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +8 -2
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +23 -4
- package/src/shade/renderer/GraphicsContext.d.ts +1 -0
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +4 -0
- package/src/shade/renderer/Renderer.d.ts +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +1958 -1796
- package/src/shade/renderer/animation/SKINNING_FRAME_PLAN.md +357 -0
- package/src/shade/renderer/animation/skin_bind_transform.d.ts +25 -0
- package/src/shade/renderer/animation/skin_bind_transform.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_bind_transform.js +33 -0
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts +67 -0
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.js +199 -0
- package/src/shade/renderer/animation/skin_frame_defect.d.ts +34 -0
- package/src/shade/renderer/animation/skin_frame_defect.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_frame_defect.js +132 -0
- package/src/shade/renderer/animation/skin_joint_matrix.d.ts +24 -0
- package/src/shade/renderer/animation/skin_joint_matrix.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_joint_matrix.js +46 -0
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.d.ts +70 -0
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.js +216 -0
- package/src/shade/renderer/animation/skin_test_fixtures.d.ts +86 -0
- package/src/shade/renderer/animation/skin_test_fixtures.d.ts.map +1 -0
- package/src/shade/renderer/animation/skin_test_fixtures.js +250 -0
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts +18 -4
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.js +18 -4
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts +13 -0
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts.map +1 -1
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.js +13 -0
- package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.d.ts +18 -0
- package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.js +18 -0
- package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts +4 -0
- package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.js +4 -0
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts +12 -0
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.js +13 -0
- package/src/shade/renderer/light/environment/rgbe/parse_rgbe.d.ts +1 -1
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/particles/DESIGN.md +71 -20
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +29 -5
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +61 -6
- package/src/shade/renderer/particles/ParticleConstants.d.ts +31 -0
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +33 -0
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +61 -0
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -0
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +179 -0
- package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts +63 -0
- package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts.map +1 -0
- package/src/shade/renderer/particles/coherence/particle_program_buckets.js +116 -0
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +59 -0
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -0
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +344 -0
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +27 -5
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +27 -5
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts +13 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +15 -1
- package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/chunk_particle_emitter.js +3 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +43 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +44 -0
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +33 -59
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +185 -118
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +15 -10
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/compile_particle_graph.js +205 -170
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts +44 -0
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_authoring.js +108 -0
- package/src/shade/renderer/particles/graph_particles.d.ts +39 -11
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +60 -20
- package/src/shade/renderer/particles/particle_prototype.d.ts.map +1 -1
- package/src/shade/renderer/particles/particle_prototype.js +181 -180
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +8 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +8 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +22 -2
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.js +54 -3
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +4 -4
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/create_particle_effect.js +19 -19
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +32 -14
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts +2 -23
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +40 -11
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +6 -17
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +60 -9
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +1 -1
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +11 -0
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/SkinnedMesh.js +11 -0
- package/src/shade/renderer/shader/chunk/geometry/quaternion/dual/chunk_dual_quat_from_m4.d.ts +33 -3
- package/src/shade/renderer/shader/chunk/geometry/quaternion/dual/chunk_dual_quat_from_m4.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/quaternion/dual/chunk_dual_quat_from_m4.js +58 -37
- package/src/shade/wgsl/emulator/CPUBitmapData.d.ts +1 -1
- package/src/view/DOM.d.ts +69 -0
- package/src/view/DOM.d.ts.map +1 -0
- package/src/view/DOM.js +2 -1
- package/src/view/common/LocalizedLabelView.d.ts +50 -0
- package/src/view/common/LocalizedLabelView.d.ts.map +1 -0
- package/src/view/controller/controls/GuiControl.d.ts +19 -0
- package/src/view/controller/controls/GuiControl.d.ts.map +1 -0
- package/src/view/elements/FrameRateView.d.ts +45 -0
- package/src/view/elements/FrameRateView.d.ts.map +1 -0
- package/src/view/elements/FrameRateView.js +131 -0
- package/src/view/elements/SliderView.d.ts +37 -0
- package/src/view/elements/SliderView.d.ts.map +1 -0
- package/src/view/elements/SliderView.js +71 -0
- package/src/view/elements/navigation/ViewStack.d.ts +1 -1
- package/src/view/elements/navigation/ViewStack.js +1 -1
- package/src/view/elements/notify/NotificationView.d.ts +22 -0
- package/src/view/elements/notify/NotificationView.d.ts.map +1 -0
- package/src/view/tooltip/TooltipView.d.ts +5 -1
- package/src/view/tooltip/TooltipView.d.ts.map +1 -1
- package/src/view/tooltip/TooltipView.js +4 -0
- package/src/shade/renderer/particles/graph/ParticleGraph.d.ts +0 -54
- package/src/shade/renderer/particles/graph/ParticleGraph.d.ts.map +0 -1
- package/src/shade/renderer/particles/graph/ParticleGraph.js +0 -99
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export default ObservedBoolean;
|
|
2
|
+
export type BinaryBuffer = import("../binary/BinaryBuffer.js").BinaryBuffer;
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import("../binary/BinaryBuffer.js").BinaryBuffer} BinaryBuffer
|
|
5
|
+
*/
|
|
2
6
|
/**
|
|
3
7
|
* Wrapper around a boolean value that signals change via {@link onChanged} signal.
|
|
4
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";2BAKa,OAAO,2BAA2B,EAAE,YAAY;AAD7D;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH;IASI;;;;OAIG;IACH,oBAHW,OAAO,EAcjB;IAvBD;;;;OAIG;IACH,wBAAyB;IAYrB;;;;OAIG;IACH,gBAAoB;IAmBxB;;;;OAIG;IACH,WAHW,OAAO,GACL,eAAe,CAa3B;IAED;;;OAGG;IACH,gBAEC;IAED;;;OAGG;IACH,iBAEC;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;;;OAKG;IACH,kBAJoB,OAAO,QAAC,OAAO,0BAEtB,IAAI,CAWhB;IAED;;;OAGG;IACH,YAFa,OAAO,CAInB;IAED;;;OAGG;IACH,eAEC;IAED,kBAEC;IAED,yBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAeL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;IAE3C;;;OAGG;IACH,gBAFsB,MAAM,CAEM;CAxBjC;;eAIS,eAAe;cAMf,eAAe"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { assert } from "../assert.js";
|
|
2
2
|
import Signal from "../events/signal/Signal.js";
|
|
3
3
|
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import("../binary/BinaryBuffer.js").BinaryBuffer} BinaryBuffer
|
|
7
|
+
*/
|
|
4
8
|
/**
|
|
5
9
|
* Wrapper around a boolean value that signals change via {@link onChanged} signal.
|
|
6
10
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedInteger.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedInteger.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ObservedInteger.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedInteger.js"],"names":[],"mappings":";2BAMa,OAAO,2BAA2B,EAAE,YAAY;AAD7D;;GAEG;AACH;IAOI;;;;OAIG;IACH,oBAHW,MAAM,EAgBhB;IAxBD;;;OAGG;IACH,oBAFU,MAAM,CAES;IAarB;;;;OAIG;IACH,gBAAoB;IAYxB,mBAEC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACJ,IAAI,CAchB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAOhB;IAED;;;OAGG;IACH,UAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,gBAFW,eAAe,QAIzB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,WAFW,eAAe,QAIzB;IAED;;;OAGG;IACH,YAFW,MAAM,QAIhB;IAED;;OAEG;IACH,kBAEC;IAED;;OAEG;IACH,kBAEC;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED,iBAEC;IAED,yBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAatB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAYtB;IAIL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAP1C;mBA1MkB,4BAA4B"}
|
|
@@ -2,6 +2,10 @@ import { assert } from "../assert.js";
|
|
|
2
2
|
import { anyOf, isInfinite, isInteger } from "../debug/matchers/matchers.js";
|
|
3
3
|
import Signal from "../events/signal/Signal.js";
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {import("../binary/BinaryBuffer.js").BinaryBuffer} BinaryBuffer
|
|
8
|
+
*/
|
|
5
9
|
class ObservedInteger extends Number {
|
|
6
10
|
/**
|
|
7
11
|
* @readonly
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export default ObservedString;
|
|
2
|
+
export type BinaryBuffer = import("../binary/BinaryBuffer.js").BinaryBuffer;
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import("../binary/BinaryBuffer.js").BinaryBuffer} BinaryBuffer
|
|
5
|
+
*/
|
|
2
6
|
/**
|
|
3
7
|
* Observable string container.
|
|
4
8
|
* Signals change via {@link onChanged}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedString.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedString.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ObservedString.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedString.js"],"names":[],"mappings":";2BAMa,OAAO,2BAA2B,EAAE,YAAY;AAD7D;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH;IACI;;;OAGG;IACH,oBAFW,MAAM,EAmBhB;IAZG;;;;OAIG;IACH,gBAAoB;IAEpB;;;OAGG;IACH,eAA6B;IAmBjC;;;;OAIG;IACH,WAHW,MAAM,GACJ,cAAc,CAa1B;IAED;;;OAGG;IACH,YAFW,cAAc,QAIxB;IAED;;OAEG;IACH,SAFY,cAAc,CAQzB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,kBAJoB,MAAM,QAAC,MAAM,0BAEpB,IAAI,CAUhB;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAMtB;IAED;;;;OAIG;IACH,cAHW,cAAc,GACZ,OAAO,CAInB;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAGL;;;;OAIG;IACH,2BAFU,OAAO,CAEwB;IAUzC,cAtHiB,MAAM,CAsHQ;IAC/B,kBA/Ge,MAAM,KACJ,cAAc,CA8GE;CAlBhC;;kBAWS,MAAM"}
|
|
@@ -2,6 +2,10 @@ import { assert } from "../assert.js";
|
|
|
2
2
|
import Signal from "../events/signal/Signal.js";
|
|
3
3
|
import { computeStringHash } from "../primitives/strings/computeStringHash.js";
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {import("../binary/BinaryBuffer.js").BinaryBuffer} BinaryBuffer
|
|
8
|
+
*/
|
|
5
9
|
/**
|
|
6
10
|
* Observable string container.
|
|
7
11
|
* Signals change via {@link onChanged}.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export default Stat;
|
|
2
|
+
export type Signal = import("../../events/signal/Signal.js").Signal;
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import("../../events/signal/Signal.js").Signal} Signal
|
|
5
|
+
*/
|
|
2
6
|
/**
|
|
3
7
|
* Modifiable statistic.
|
|
4
8
|
* Allows non-destructive linear arithmetic.
|
|
@@ -54,12 +58,12 @@ declare class Stat extends Number {
|
|
|
54
58
|
*
|
|
55
59
|
* @returns {Signal<LinearModifier>}
|
|
56
60
|
*/
|
|
57
|
-
get onModifierAdded():
|
|
61
|
+
get onModifierAdded(): any;
|
|
58
62
|
/**
|
|
59
63
|
*
|
|
60
64
|
* @returns {Signal<LinearModifier>}
|
|
61
65
|
*/
|
|
62
|
-
get onModifierRemoved():
|
|
66
|
+
get onModifierRemoved(): any;
|
|
63
67
|
/**
|
|
64
68
|
* Remove all modifiers from the stat
|
|
65
69
|
*/
|
|
@@ -142,7 +146,7 @@ declare class Stat extends Number {
|
|
|
142
146
|
*
|
|
143
147
|
* @returns {Signal}
|
|
144
148
|
*/
|
|
145
|
-
get onChanged(): Signal;
|
|
149
|
+
get onChanged(): import("../../events/signal/Signal.js").Signal;
|
|
146
150
|
/**
|
|
147
151
|
* @readonly
|
|
148
152
|
* @type {boolean}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stat.d.ts","sourceRoot":"","sources":["../../../../../src/core/model/stat/Stat.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Stat.d.ts","sourceRoot":"","sources":["../../../../../src/core/model/stat/Stat.js"],"names":[],"mappings":";qBAYa,OAAO,+BAA+B,EAAE,MAAM;AAD3D;;GAEG;AACH;;;;;;;GAOG;AACH;IA2PI;;;;;OAKG;IACH,6BAJW,MAAM,aACN,KAAK,cAAc,CAAC,GAClB,MAAM,CAoBlB;IA3PD;;;OAGG;IACH,oBAHW,MAAM,EAuBhB;IA/CD;;;OAGG;IACH,IAFU,MAAM,CAET;IAEP;;;;;;OAMG;IACH,6BAAyB;IAEzB;;;;;OAKG;IACH,oBAFmB,MAAM,KAAG,MAAM,CAEF;IAY5B;;;OAGG;IACH,MAFU,OAAO,CAEa;IAE9B;;;OAGG;IACH,OAFU,OAAO,CAEc;IAMnC;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;OAEG;IACH,uBAEC;IAUD;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED,oBAUC;IAED;;;OAGG;IACH,gBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFY,cAAc,EAAE,CAI3B;IAED;;;OAGG;IACH,iBAFW,cAAc,QAMxB;IAED;;;;OAIG;IACH,iBAHW,cAAc,GACb,OAAO,CAIlB;IAED;;;;OAIG;IACH,oBAHW,cAAc,GACZ,OAAO,CAQnB;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CASnB;IAED;;;OAGG;IACH,YAFW,IAAI,QAOd;IAED;;;OAGG;IACH,gBAFW,IAAI,QAId;IAED;;;;OAIG;IACH,wCAHoB,MAAM,KAAE,MAAM,KACvB,MAAM,QAKhB;IAED;;OAEG;IACH,wCAFW,IAAI,QAmBd;IAED;;;MAKC;IAED,0BAIC;IAED;;;OAGG;IACH,gEAEC;IAkEL;;;OAGG;IACH,iBAFU,OAAO,CAEI;CA3CpB;;;QAOe,8CAEX;QACK,kCAEL;QAMS,kEAIT;QAMS,kEAIT;;;;oBAvUe,uBAAuB;2BAKhB,qBAAqB;iBAP/B,+BAA+B;sBAC1B,yBAAyB"}
|
|
@@ -8,6 +8,10 @@ import { max2 } from "../../math/max2.js";
|
|
|
8
8
|
import { min2 } from "../../math/min2.js";
|
|
9
9
|
import LinearModifier from "./LinearModifier.js";
|
|
10
10
|
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {import("../../events/signal/Signal.js").Signal} Signal
|
|
14
|
+
*/
|
|
11
15
|
/**
|
|
12
16
|
* Modifiable statistic.
|
|
13
17
|
* Allows non-destructive linear arithmetic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../../src/engine/Engine.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../../src/engine/Engine.js"],"names":[],"mappings":";AA6DA;IAoEI;;;;;;;;OAQG;IACH,8FANW,aAAa,EA8OvB;IA/RD;;;OAGG;IACH,UAFU,cAAc,GAAC,IAAI,CAEb;IAEhB;;;OAGG;IACH,OAFU,WAAW,GAAC,IAAI,CAEb;IAEb,qBAA4B;IAE5B;;;;;;;;;OASG;IACH,0BAFU,uBAAuB,CAEe;IAEhD;;;OAGG;IACH,kBAFU,mBAAmB,CAEO;IAEpC;;;;OAIG;IACH,iBAFU,MAAM,CAEM;IAEtB;;;;OAIG;IACH,mBAFU,kBAAkB,CAEa;IAmBrC;;;OAGG;IACH,yBAAwB;IAKxB;;;OAGG;IACH,aAFU,gBAAgB,CAEe;IAGzC,yCAAkE;IAK9D,mBAAkC;IAMtC;;;OAGG;IACH,cAFU,aAAa,MAAM,CAAC,CAK5B;IAEF,8CAiCE;IA4BF;;;OAGG;IACH,SAFU,WAAW,CAEoB;IAEzC;;;OAGG;IACH,oCAA0C;IAE1C;;;OAGG;IACH,sCAFU,2BAA2B,CAE+B;IAEpE,yBAAoC;IAGpC;;OAEG;IACH,aAAkB;IAElB;;;OAGG;IACH,SAFU,OAAO,CAEwB;IAGzC,2BAAsC;IAuCtC;;;OAGG;IACH,KAFU,SAAS,CAEO;IAE1B;;;OAGG;IACH,uBAFU,YAAY,CAEqD;IAI3E;;;;MAIC;IA6BD;;;OAGG;IACH,kBAFU,OAAO,CAEW;IAwIhC,wBAgCC;IApBG,oBAAwB;IAsB5B,2BAgCC;IAED,oBAiBC;IAED;;;OAGG;IACH,+CAUC;IAED,eA6BC;IAED;;;OAGG;IACH,sBAkEC;IAqBD;;OAEG;IACH,sBAyCC;IAED,aAEC;IAED;;OAEG;IACH,4BAOC;IAIL;;;OAGG;IACH,mBAFU,OAAO,CAEQ;;CAPxB;+BA/vB8B,+BAA+B;wBAUtC,wBAAwB;0BApBtB,0CAA0C;wCAcN,iDAAiD;oCAG3E,iCAAiC;mBAElD,wBAAwB;+BArBZ,gDAAgD;iCAO9C,+CAA+C;6BAFnD,yBAAyB;uCAIf,6DAA6D;4BASxE,0BAA0B;+BApBvB,iCAAiC;4CAapB,qDAAqD;AAgBjG;IACI,gDAA2D;IAC3D,0BAAkC;IAClC,iCAAyC;CAC5C;6BAlC4B,sCAAsC;sBA2B7C,mBAAmB;yBAJhB,yBAAyB;8BALpB,kCAAkC;2BADrC,mCAAmC;8BADhC,kCAAkC;sBAZ1C,+BAA+B;+BAKtB,qCAAqC;8BAItC,wBAAwB;4BAX1B,kCAAkC;oBAH1C,yBAAyB"}
|
package/src/engine/Engine.js
CHANGED
|
@@ -52,6 +52,13 @@ const METRIC_ID_SIMULATION = 'simulation_time';
|
|
|
52
52
|
*/
|
|
53
53
|
const CONTEXT_LOSS_SIMULATION_PAUSE_DELAY = 2;
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Anything that can hold keyboard focus on its own account. A pointerdown that lands on one of
|
|
57
|
+
* these is not a click on the game, and the game must not take focus back from it.
|
|
58
|
+
* @type {string}
|
|
59
|
+
*/
|
|
60
|
+
const FOCUSABLE_SELECTOR = 'input, textarea, select, button, a[href], [contenteditable], [tabindex]:not([tabindex="-1"])';
|
|
61
|
+
|
|
55
62
|
class Engine {
|
|
56
63
|
#last_frame_timestamp = 0;
|
|
57
64
|
|
|
@@ -330,6 +337,24 @@ class Engine {
|
|
|
330
337
|
this.devices.keyboard.start();
|
|
331
338
|
this.devices.gamepad.start();
|
|
332
339
|
|
|
340
|
+
/*
|
|
341
|
+
Only the focused element receives keyboard events. `ViewStack` sets `tabindex` on its
|
|
342
|
+
element for exactly that reason — "focus is required to handle keyboard events", in its
|
|
343
|
+
own words — and `KeyboardDevice` throws if handed an element that cannot take focus. So
|
|
344
|
+
both halves understood the requirement and neither one met it: nothing focus*ed* the
|
|
345
|
+
element, `document.activeElement` stayed `<body>`, and every key went there instead.
|
|
346
|
+
|
|
347
|
+
The failure is silent and it is indistinguishable from an application with no input code
|
|
348
|
+
at all, which is the wrong place to start debugging. Reported from a port as GAP-017,
|
|
349
|
+
found by someone trying to play the thing.
|
|
350
|
+
|
|
351
|
+
Focus is taken on link rather than here, because focusing an element that is not in the
|
|
352
|
+
document does nothing, and it is re-taken on pointerdown so that clicking a DOM overlay
|
|
353
|
+
and clicking back restores the keyboard.
|
|
354
|
+
*/
|
|
355
|
+
this.viewStack.on.linked.add(this.#focusInputElement, this);
|
|
356
|
+
this.viewStack.el.addEventListener('pointerdown', this.#focusInputElement);
|
|
357
|
+
|
|
333
358
|
//process settings
|
|
334
359
|
this.initializeSettings();
|
|
335
360
|
|
|
@@ -435,6 +460,46 @@ class Engine {
|
|
|
435
460
|
}
|
|
436
461
|
}
|
|
437
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Give focus to the element the input devices listen on.
|
|
465
|
+
*
|
|
466
|
+
* An arrow property rather than a method, because it is used both as a signal handler and as a
|
|
467
|
+
* DOM listener, and the DOM would otherwise call it with the element as `this`.
|
|
468
|
+
*
|
|
469
|
+
* @private
|
|
470
|
+
*/
|
|
471
|
+
#focusInputElement = (event) => {
|
|
472
|
+
const el = this.viewStack.el;
|
|
473
|
+
|
|
474
|
+
if (el === null || el === undefined || typeof el.focus !== "function") {
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/*
|
|
479
|
+
A pointerdown anywhere inside the stack bubbles to it, including one on a control the
|
|
480
|
+
application put there. Taking focus on the way past would make a text field in a UI
|
|
481
|
+
overlay impossible to type into -- the click focuses the input, this handler immediately
|
|
482
|
+
takes it back, and the caret never appears. So a target that can hold focus itself keeps
|
|
483
|
+
it, and the game only claims focus when the click landed on nothing that wanted it.
|
|
484
|
+
*/
|
|
485
|
+
const target = event === undefined ? null : event.target;
|
|
486
|
+
|
|
487
|
+
if (target !== null && target !== el && typeof target.closest === "function") {
|
|
488
|
+
const focusable = target.closest(FOCUSABLE_SELECTOR);
|
|
489
|
+
|
|
490
|
+
/*
|
|
491
|
+
`el` matches FOCUSABLE_SELECTOR itself -- it is the element carrying the tabindex --
|
|
492
|
+
so the nearest match being `el` means nothing between the click and the stack wanted
|
|
493
|
+
focus, and the stack should take it.
|
|
494
|
+
*/
|
|
495
|
+
if (focusable !== null && focusable !== el) {
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
el.focus();
|
|
501
|
+
};
|
|
502
|
+
|
|
438
503
|
initializeViews() {
|
|
439
504
|
|
|
440
505
|
const gameView = new EmptyView();
|
|
@@ -17,10 +17,16 @@ export class EngineHarness {
|
|
|
17
17
|
*/
|
|
18
18
|
static shadeScene(engine: Engine): Scene;
|
|
19
19
|
/**
|
|
20
|
+
* Add a frame-rate readout to the engine's view stack.
|
|
21
|
+
*
|
|
22
|
+
* Returns the view, so a settings screen can turn it off again — `cg_drawFPS`
|
|
23
|
+
* is on every graphics menu ever shipped, and this used to return nothing,
|
|
24
|
+
* leaving the panel it added unreachable (GAP-028).
|
|
20
25
|
*
|
|
21
26
|
* @param {Engine} engine
|
|
27
|
+
* @returns {FrameRateView} the view that was added
|
|
22
28
|
*/
|
|
23
|
-
static addFpsCounter(engine: Engine):
|
|
29
|
+
static addFpsCounter(engine: Engine): FrameRateView;
|
|
24
30
|
/**
|
|
25
31
|
* @param {Object} param
|
|
26
32
|
* @param {Engine} param.engine
|
|
@@ -179,6 +185,7 @@ export namespace EngineHarness {
|
|
|
179
185
|
import Engine from "./Engine.js";
|
|
180
186
|
import { EngineConfiguration } from "./EngineConfiguration.js";
|
|
181
187
|
import { Scene } from "../shade/renderer/scene/Scene.js";
|
|
188
|
+
import { FrameRateView } from "../view/elements/FrameRateView.js";
|
|
182
189
|
import Vector3 from "../core/geom/Vector3.js";
|
|
183
190
|
import Entity from "./ecs/Entity.js";
|
|
184
191
|
import { Color } from "../core/color/Color.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineHarness.d.ts","sourceRoot":"","sources":["../../../src/engine/EngineHarness.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EngineHarness.d.ts","sourceRoot":"","sources":["../../../src/engine/EngineHarness.js"],"names":[],"mappings":"AA0EA;IAmBI;;;;OAIG;IACH,8CAHmB,mBAAmB,UAAQ,MAAM,WACxC,QAAQ,MAAM,CAAC,CAM1B;IAED;;;;;;;;;OASG;IACH,0BAHW,MAAM,GACJ,KAAK,CAYjB;IAED;;;;;;;;;OASG;IACH,6BAHW,MAAM,GACJ,aAAa,CAQzB;IAkED;;;;;;;;;;;;;OAaG;IACH;QAZyB,MAAM,EAApB,MAAM;QACyB,GAAG;QAClB,MAAM,GAAtB,OAAO;QACQ,QAAQ,GAAvB,MAAM;QACS,KAAK,GAApB,MAAM;QACS,GAAG,GAAlB,MAAM;QACU,QAAQ,GAAxB,OAAO;QACQ,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACJ,MAAM,CA+DlB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH;QApB0B,MAAM,EAArB,MAAM;QACgC,KAAK,GAA3C;YAAC,CAAC,EAAC,MAAM,CAAC;YAAA,CAAC,EAAC,MAAM,CAAC;YAAA,CAAC,EAAC,MAAM,CAAA;SAAC;QACrB,SAAS;QACT,WAAW;QACF,KAAK,GAArB,MAAM;QACU,GAAG,GAAnB,MAAM;QACU,QAAQ,GAAxB,MAAM;QACwB,WAAW,GAAzC;YAAC,CAAC,EAAC,MAAM,CAAC;YAAC,CAAC,EAAC,MAAM,CAAA;SAAC;QACJ,iBAAiB,GAAjC,MAAM;QACW,WAAW,GAA5B,OAAO;QACU,aAAa,GAA9B,OAAO;QACU,YAAY,GAA7B,OAAO;QACU,aAAa,GAA9B,OAAO;QACS,iBAAiB,GAAjC,MAAM;QACU,iBAAiB,GAAjC,MAAM;QACW,gBAAgB,GAAjC,OAAO;QACU,cAAc,GAA/B,OAAO;QACS,mBAAmB,GAAnC,MAAM;QACW,OAAO,GAAxB,OAAO;sBA0EjB;IAGD;;;;;;;;;;;;OAYG;IACH;QAXyB,MAAM,EAApB,MAAM;QACyB,GAAG;QACnB,mBAAmB,GAAlC,MAAM;QACU,UAAU,GAA1B,OAAO;QACO,GAAG,GAAjB,KAAK;QACU,YAAY,GAA3B,MAAM;QACU,YAAY,GAA5B,OAAO;QACO,OAAO,GAArB,KAAK;QACU,gBAAgB,GAA/B,MAAM;QACS,iBAAiB,GAAhC,MAAM;sBAqDhB;IAED;;;;;;;OAOG;IACH;QAN0B,YAAY,GAA3B,MAAM;QACQ,MAAM,EAApB,MAAM;QACS,WAAW,GAA1B,MAAM;QACyB,GAAG;QAChC,QAAQ,MAAM,CAAC,CA6C3B;IAGD;;;;;;;;;;OAUG;IACH,sFATW,MAAM,GAOJ,OAAO,CA0DnB;IA9eD;;;OAGG;IACH,YAFU,eAAQ,IAAI,CAEb;IAGL;;;OAGG;IACH,QAFU,MAAM,CAEiC;IA0DrD;;;;;OAKG;IACH;iCAJmB,mBAAmB,UAAQ,MAAM;8BACzC,OAAO;QACL,QAAQ,MAAM,CAAC,CA0D3B;CA4WJ;;IAID;;;OAGG;IACH,uCAMC;;mBA1jBkB,aAAa;oCACI,0BAA0B;sBAOxC,kCAAkC;8BAhB1B,mCAAmC;oBAD7C,yBAAyB;mBAK1B,iBAAiB;sBATd,wBAAwB;oBAW1B,8BAA8B"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import Stats from "stats.js";
|
|
2
1
|
import { assert } from "../core/assert.js";
|
|
3
2
|
import { Color } from "../core/color/Color.js";
|
|
4
3
|
|
|
5
4
|
import { noop } from "../core/function/noop.js";
|
|
6
5
|
import Vector2 from "../core/geom/Vector2.js";
|
|
7
6
|
import Vector3 from "../core/geom/Vector3.js";
|
|
8
|
-
import
|
|
7
|
+
import { FrameRateView } from "../view/elements/FrameRateView.js";
|
|
9
8
|
import { JsonAssetLoader } from "./asset/loaders/JsonAssetLoader.js";
|
|
10
9
|
import { SerializationMetadata } from "./ecs/components/SerializationMetadata.js";
|
|
11
10
|
import Tag from "./ecs/components/Tag.js";
|
|
@@ -126,24 +125,21 @@ export class EngineHarness {
|
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
/**
|
|
128
|
+
* Add a frame-rate readout to the engine's view stack.
|
|
129
|
+
*
|
|
130
|
+
* Returns the view, so a settings screen can turn it off again — `cg_drawFPS`
|
|
131
|
+
* is on every graphics menu ever shipped, and this used to return nothing,
|
|
132
|
+
* leaving the panel it added unreachable (GAP-028).
|
|
129
133
|
*
|
|
130
134
|
* @param {Engine} engine
|
|
135
|
+
* @returns {FrameRateView} the view that was added
|
|
131
136
|
*/
|
|
132
137
|
static addFpsCounter(engine) {
|
|
133
|
-
|
|
134
|
-
`stats.js` by its own name. three shipped a copy of it as
|
|
135
|
-
`examples/jsm/libs/stats.module.js`, which is what this used to import; moh already declares
|
|
136
|
-
the package, so this is the same code under the name its author gives it (D64).
|
|
137
|
-
*/
|
|
138
|
-
const stats = new Stats();
|
|
139
|
-
|
|
140
|
-
engine.graphics.on.postRender.add(stats.update, stats);
|
|
141
|
-
|
|
142
|
-
const view = new EmptyView({
|
|
143
|
-
el: stats.domElement
|
|
144
|
-
});
|
|
138
|
+
const view = new FrameRateView({ frame_signal: engine.graphics.on.postRender });
|
|
145
139
|
|
|
146
140
|
engine.viewStack.addChild(view);
|
|
141
|
+
|
|
142
|
+
return view;
|
|
147
143
|
}
|
|
148
144
|
|
|
149
145
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Three.js clip to internal representation
|
|
3
3
|
* @param {EntityNode} node
|
|
4
|
-
* @param {
|
|
4
|
+
* @param {*} clip
|
|
5
5
|
*/
|
|
6
|
-
export function convert_three_clip(node: EntityNode, clip:
|
|
6
|
+
export function convert_three_clip(node: EntityNode, clip: any): AnimationClipBinding;
|
|
7
7
|
import { AnimationClipBinding } from "./AnimationClipBinding.js";
|
|
8
8
|
//# sourceMappingURL=ecd_bind_animation_curve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecd_bind_animation_curve.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/ecd_bind_animation_curve.js"],"names":[],"mappings":"AA6GA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"ecd_bind_animation_curve.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/ecd_bind_animation_curve.js"],"names":[],"mappings":"AA6GA;;;;GAIG;AACH,sFA8BC;qCA7IoC,2BAA2B"}
|
|
@@ -12,7 +12,7 @@ import { hemisphere_align_quaternion_values } from "./hemisphere_align_quaternio
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
*
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {*} track
|
|
16
16
|
*/
|
|
17
17
|
function track_to_interpolation(track) {
|
|
18
18
|
const name = track.createInterpolant.name;
|
|
@@ -40,7 +40,7 @@ function track_to_interpolation(track) {
|
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
*
|
|
43
|
-
* @param {
|
|
43
|
+
* @param {*} track
|
|
44
44
|
* @returns {AnimationCurve[]}
|
|
45
45
|
*/
|
|
46
46
|
function convert_three_track_to_curves(track) {
|
|
@@ -93,7 +93,7 @@ function convert_three_track_to_curves(track) {
|
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
95
|
*
|
|
96
|
-
* @param {
|
|
96
|
+
* @param {*} track
|
|
97
97
|
* @returns {AnimationTrack}
|
|
98
98
|
*/
|
|
99
99
|
function convert_three_track(track) {
|
|
@@ -110,7 +110,7 @@ function convert_three_track(track) {
|
|
|
110
110
|
/**
|
|
111
111
|
* Three.js clip to internal representation
|
|
112
112
|
* @param {EntityNode} node
|
|
113
|
-
* @param {
|
|
113
|
+
* @param {*} clip
|
|
114
114
|
*/
|
|
115
115
|
export function convert_three_clip(node, clip) {
|
|
116
116
|
const three_tracks = clip.tracks;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
*
|
|
3
|
-
* @param {
|
|
3
|
+
* @param {*} object
|
|
4
4
|
* @param {function} callback
|
|
5
5
|
* @param {*} [thisArg]
|
|
6
6
|
* @param {*} [ctx]
|
|
7
7
|
*/
|
|
8
|
-
export function async_traverse_three_object(object:
|
|
8
|
+
export function async_traverse_three_object(object: any, callback: Function, thisArg?: any, ctx?: any): Promise<void>;
|
|
9
9
|
//# sourceMappingURL=async_traverse_three_object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async_traverse_three_object.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/async_traverse_three_object.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"async_traverse_three_object.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/async_traverse_three_object.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,sHAgBC"}
|
|
@@ -20,10 +20,14 @@
|
|
|
20
20
|
*/
|
|
21
21
|
export class ThreadedImageDecoder extends Codec<DecodedImage> {
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @param {string} [worker_path]
|
|
23
|
+
* @param {Object} [options]
|
|
24
|
+
* @param {string} [options.worker_path] where the decoder bundle lives. Defaults to this
|
|
25
|
+
* package's own copy, resolved against this module rather than against the document — see
|
|
26
|
+
* {@link WORKER_BUNDLE_URL}.
|
|
25
27
|
*/
|
|
26
|
-
constructor({ worker_path }?:
|
|
28
|
+
constructor({ worker_path }?: {
|
|
29
|
+
worker_path?: string;
|
|
30
|
+
});
|
|
27
31
|
/**
|
|
28
32
|
*
|
|
29
33
|
* @type {OnDemandWorkerManager}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadedImageDecoder.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThreadedImageDecoder.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IACI;;;;;OAKG;IACH;QAJ4B,WAAW,GAA5B,MAAM;OA0BhB;IARG;;;OAGG;IACH,QAFU,qBAAqB,CAE+B;IAMlE,kCAaC;IAED,gCAEC;CACJ;sBAnGqB,yBAAyB;sCAHT,6DAA6D"}
|
|
@@ -4,6 +4,34 @@ import WorkerBuilder from "../../../../../core/process/worker/WorkerBuilder.js";
|
|
|
4
4
|
import { PNG_HEADER_BYTES } from "../../../../../format/image/png/PNG_HEADER_BYTES.js";
|
|
5
5
|
import { Codec } from "../../../codec/Codec.js";
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Where the decoder's worker bundle actually is.
|
|
9
|
+
*
|
|
10
|
+
* This used to be the bare string `'bundle-worker-image-decoder.js'`, which
|
|
11
|
+
* `WorkerBuilder` resolves against the **document** origin — so out of the box it
|
|
12
|
+
* asked for `http://your-app/bundle-worker-image-decoder.js`, a path that is the
|
|
13
|
+
* web root of no application that has ever installed this package. The bundle
|
|
14
|
+
* ships in `@woosh/meep-engine/build/`, which is where this points.
|
|
15
|
+
*
|
|
16
|
+
* Resolving against `import.meta.url` is what every modern bundler understands
|
|
17
|
+
* and what needs no configuration from a consumer. The failure it replaces was
|
|
18
|
+
* the worse kind: `ImageRGBADataLoader` wraps this codec in a
|
|
19
|
+
* `CodecWithFallback` over the main-thread decoder, so the output stayed correct
|
|
20
|
+
* and only the speed changed, with nothing reported to anyone. Reported from a
|
|
21
|
+
* port as GAP-004, where the load path decodes several thousand textures.
|
|
22
|
+
*
|
|
23
|
+
* One thing a consumer may still have to do: a blob worker inherits the page's
|
|
24
|
+
* COEP, so under `Cross-Origin-Embedder-Policy: require-corp` — which WebGPU
|
|
25
|
+
* pushes you toward — the `importScripts` of this file is blocked unless the
|
|
26
|
+
* response carries `Cross-Origin-Resource-Policy`.
|
|
27
|
+
*
|
|
28
|
+
* @type {string}
|
|
29
|
+
*/
|
|
30
|
+
const WORKER_BUNDLE_URL = new URL(
|
|
31
|
+
"../../../../../../build/bundle-worker-image-decoder.js",
|
|
32
|
+
import.meta.url
|
|
33
|
+
).href;
|
|
34
|
+
|
|
7
35
|
/**
|
|
8
36
|
* PNG, decoded off the main thread by the rollup-built worker bundle.
|
|
9
37
|
*
|
|
@@ -26,11 +54,13 @@ import { Codec } from "../../../codec/Codec.js";
|
|
|
26
54
|
*/
|
|
27
55
|
export class ThreadedImageDecoder extends Codec {
|
|
28
56
|
/**
|
|
29
|
-
*
|
|
30
|
-
* @param {string} [worker_path]
|
|
57
|
+
* @param {Object} [options]
|
|
58
|
+
* @param {string} [options.worker_path] where the decoder bundle lives. Defaults to this
|
|
59
|
+
* package's own copy, resolved against this module rather than against the document — see
|
|
60
|
+
* {@link WORKER_BUNDLE_URL}.
|
|
31
61
|
*/
|
|
32
62
|
constructor({
|
|
33
|
-
worker_path =
|
|
63
|
+
worker_path = WORKER_BUNDLE_URL
|
|
34
64
|
} = {}) {
|
|
35
65
|
|
|
36
66
|
super();
|
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
# FirstPersonPlayerController — Design
|
|
2
2
|
|
|
3
|
-
> Status:
|
|
3
|
+
> **Status: shipped.** `FirstPersonPlayerController.js`, its system, its serialization adapter and
|
|
4
|
+
> its specs all exist; this document is the design they were built from, kept as the rationale
|
|
5
|
+
> rather than as a plan. The line that used to sit here said "No implementation yet" and was still
|
|
6
|
+
> saying it above ~3,700 lines of working code.
|
|
7
|
+
>
|
|
8
|
+
> **What this controller is FOR, which is the thing to read before adopting it.** It is an
|
|
9
|
+
> opinionated, feel-first, tunable controller: §1's two goals are "feel alive" and "be
|
|
10
|
+
> configurable", and it cites Mirror's Edge Catalyst, Star Citizen stance/breathing and
|
|
11
|
+
> critically-damped spring cameras. **If you arrive with a movement model of your own — a
|
|
12
|
+
> Quake-lineage `pmove`, a physics-driven platformer, a rollback netcode design with its own step
|
|
13
|
+
> function — this is not a substrate for it and is not trying to be.** Configurability cannot
|
|
14
|
+
> express "this specific set of floating-point operations, exactly", and a fixed movement model is
|
|
15
|
+
> usually about exactly that. Bring your own controller and use {@link KinematicMover} underneath
|
|
16
|
+
> it, which is controller-agnostic and is what the collision half of this directory actually is.
|
|
17
|
+
>
|
|
18
|
+
> A port that pointed a Quake III movement model at this concluded the same thing correctly, then
|
|
19
|
+
> treated the whole directory as decided and re-implemented the mover's standoff and depenetration
|
|
20
|
+
> from the raw query layer — about six hours and two wrong fixes (GAP-009, GAP-021). Hence this
|
|
21
|
+
> paragraph, and hence the note at the top of DESIGN_COLLISION.md.
|
|
22
|
+
>
|
|
4
23
|
> Scope: one entity, one body, one camera. No skeleton, no avatar mesh, no sound, no input wiring.
|
|
5
|
-
> Companion files (planned): `FirstPersonPlayerController.js` (component), `FirstPersonPlayerControllerSystem.js` (system), serialization adapter, spec.
|
|
6
24
|
|
|
7
25
|
---
|
|
8
26
|
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Collision handling — ground-up construction plan
|
|
2
2
|
|
|
3
|
+
> **Status, because this reads as a plan and a reader has to know how much of it is real.**
|
|
4
|
+
> Steps 1–4 of §4's sequence are **shipped** in `collision/KinematicMover.js`: recover (`_recover`,
|
|
5
|
+
> `compute_penetration`), slide (`_slide`, `MAX_CLIP_PLANES` crease handling), stairs
|
|
6
|
+
> (`_tryStepUp`), and ground categorise + stick + slope clip (`_categorizeGround`). The mover's own
|
|
7
|
+
> docblock still says "Phase 1" in places; the phase numbering here is the order things were built
|
|
8
|
+
> in, not what exists. **Not shipped:** a moving-platform step — nothing carries a character on a
|
|
9
|
+
> lift, and `MoveResult` reports `groundBody`/`groundEntity` so a consumer can write the carry
|
|
10
|
+
> themselves until there is one.
|
|
11
|
+
>
|
|
12
|
+
> **This solver is controller-agnostic and the path lies about that.** `KinematicMover` imports
|
|
13
|
+
> `Vector3`, `Ray3`, `Transform`, `Collider`, `compute_penetration` and `PhysicsSurfacePoint` —
|
|
14
|
+
> nothing from the controller — and it is the right thing to use even if you have decided
|
|
15
|
+
> `FirstPersonPlayerController` is not for you. It lives here because this is where it was built,
|
|
16
|
+
> and a consumer who ruled out the controller has been given a path saying these files are not for
|
|
17
|
+
> them either. A port did exactly that and spent about six hours re-implementing the standoff
|
|
18
|
+
> (`skin`) and the depenetration pass it already has (GAP-021).
|
|
19
|
+
|
|
3
20
|
Companion to DESIGN.md (base controller) and TODO.md.
|
|
4
21
|
|
|
5
22
|
**Premise.** The control layer is excellent and stays. The collision
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kinematic character collision solver
|
|
3
|
-
* unified sweep-and-slide). See DESIGN_COLLISION.md.
|
|
2
|
+
* Kinematic character collision solver. See DESIGN_COLLISION.md.
|
|
4
3
|
*
|
|
5
|
-
* The mover is controller-agnostic
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* **The mover is controller-agnostic, and the path it lives at says otherwise.** It imports
|
|
5
|
+
* `Vector3`, `Ray3`, `Transform`, `Collider`, `compute_penetration` and `PhysicsSurfacePoint` —
|
|
6
|
+
* nothing from `FirstPersonPlayerController`. If you have your own movement model and have decided
|
|
7
|
+
* that controller is not for you, **this class still is**: it carries the standoff (`skin`), the
|
|
8
|
+
* start-solid depenetration pass, Quake's five-plane crease handling and `MIN_WALK_NORMAL`, and it
|
|
9
|
+
* is the thing to build a character on. It sits under `control/first-person/` because that is where
|
|
10
|
+
* it was built, which cost one consumer about six hours of re-implementing it from the raw query
|
|
11
|
+
* layer (GAP-021).
|
|
11
12
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* It knows about a capsule pose, a desired velocity, and the physics world. Its job is to take the
|
|
14
|
+
* velocity the control layer wants and return the position it actually reaches plus the velocity
|
|
15
|
+
* corrected for whatever it hit. It invents no motion — gravity / jump impulses live in the control
|
|
16
|
+
* layer and arrive folded into `velocity`.
|
|
17
|
+
*
|
|
18
|
+
* One move is the sequence below. Steps 1–4 are implemented here; a moving-platform step is not,
|
|
19
|
+
* which is why {@link _result} reports `groundBody` — see DESIGN_COLLISION.md's status header:
|
|
14
20
|
*
|
|
15
21
|
* 1. RECOVER — depenetration via `overlap()` + `compute_penetration`,
|
|
16
22
|
* run unconditionally so the move starts clear even from a
|
|
@@ -71,11 +77,47 @@ export class KinematicMover {
|
|
|
71
77
|
_planes: Float64Array;
|
|
72
78
|
_cand: Float64Array;
|
|
73
79
|
_support: Float64Array;
|
|
80
|
+
/**
|
|
81
|
+
* Reused result.
|
|
82
|
+
*
|
|
83
|
+
* **Four of these fields exist because dropping a value the solver already computed is what
|
|
84
|
+
* forces a consumer into a heuristic.** Reported from a port as GAP-022 and GAP-035:
|
|
85
|
+
*
|
|
86
|
+
* - `groundBody` / `groundEntity` — `_categorizeGround` knows what it landed on and used to
|
|
87
|
+
* throw it away, so a consumer was told THAT they are on a walkable surface and never WHAT
|
|
88
|
+
* they are on. Every ingredient for writing a moving platform yourself was inside that
|
|
89
|
+
* method and none of it came back out. Jolt's `CharacterVirtual` exposes `GetGroundBodyID`
|
|
90
|
+
* and Source's `CategorizePosition` records `m_hGroundEntity` for the same reason.
|
|
91
|
+
* - `stepUp` — `_tryStepUp` computed `heightGain`, committed on it, and discarded it. Q3's
|
|
92
|
+
* `EV_STEP_4..16` drives `CG_StepOffset`, which leaves the eye behind the riser and slides
|
|
93
|
+
* it up over 200 ms; it is the difference between walking up a flight of stairs and being
|
|
94
|
+
* teleported up one four times a second. Reconstructing it from the pose is not free,
|
|
95
|
+
* because the thing a step has to be told apart from is a RAMP and both are "the origin
|
|
96
|
+
* went up while grounded" — the port's stand-in was a slope-ratio guard that is wrong at
|
|
97
|
+
* the top of a ramp meeting a flat.
|
|
98
|
+
* - `landed` / `landingSpeed` — the same argument. A controller wanting Q3's fall events had
|
|
99
|
+
* to diff `grounded` across calls, which every consumer would write identically.
|
|
100
|
+
*
|
|
101
|
+
* `grounded` / `groundNormal` come from `_categorizeGround`.
|
|
102
|
+
*
|
|
103
|
+
* @type {{hit:boolean, grounded:boolean, groundNormal:Vector3, groundBody:number, groundEntity:number, stepUp:number, landed:boolean, landingSpeed:number}}
|
|
104
|
+
*/
|
|
74
105
|
_result: {
|
|
75
106
|
hit: boolean;
|
|
76
107
|
grounded: boolean;
|
|
77
108
|
groundNormal: Vector3;
|
|
109
|
+
groundBody: number;
|
|
110
|
+
groundEntity: number;
|
|
111
|
+
stepUp: number;
|
|
112
|
+
landed: boolean;
|
|
113
|
+
landingSpeed: number;
|
|
78
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* Whether the previous {@link move} ended grounded, so this one can report the transition.
|
|
117
|
+
* @private
|
|
118
|
+
* @type {boolean}
|
|
119
|
+
*/
|
|
120
|
+
private _wasGrounded;
|
|
79
121
|
physicsSystem: import("../../../physics/ecs/PhysicsSystem.js").PhysicsSystem;
|
|
80
122
|
ecd: import("../../../ecs/EntityComponentDataset.js").EntityComponentDataset;
|
|
81
123
|
skin: number;
|
|
@@ -94,7 +136,7 @@ export class KinematicMover {
|
|
|
94
136
|
* @param {number} dt
|
|
95
137
|
* @param {(entity:number, collider:Collider)=>boolean} filter excludes
|
|
96
138
|
* the player's own body in integration; accept-all in isolation
|
|
97
|
-
* @returns {{hit:boolean, grounded:boolean, groundNormal:Vector3}} reused result
|
|
139
|
+
* @returns {{hit:boolean, grounded:boolean, groundNormal:Vector3, groundBody:number, groundEntity:number, stepUp:number, landed:boolean, landingSpeed:number}} reused result — see {@link _result} for what each field is for
|
|
98
140
|
*/
|
|
99
141
|
move(position: Vector3, rotation: {
|
|
100
142
|
x: number;
|
|
@@ -105,6 +147,11 @@ export class KinematicMover {
|
|
|
105
147
|
hit: boolean;
|
|
106
148
|
grounded: boolean;
|
|
107
149
|
groundNormal: Vector3;
|
|
150
|
+
groundBody: number;
|
|
151
|
+
groundEntity: number;
|
|
152
|
+
stepUp: number;
|
|
153
|
+
landed: boolean;
|
|
154
|
+
landingSpeed: number;
|
|
108
155
|
};
|
|
109
156
|
/**
|
|
110
157
|
* Stair step-up. Called after a slide that hit something while the
|