@woosh/meep-engine 2.138.17 → 2.138.19
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 +2 -2
- package/build/bundle-worker-image-decoder.js +1 -1
- package/editor/actions/concrete/ActionUpdateTexture.d.ts +12 -0
- package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +1 -0
- package/editor/actions/concrete/ArrayCopyAction.d.ts +20 -0
- package/editor/actions/concrete/ArrayCopyAction.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/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 +19 -0
- package/editor/actions/concrete/PatchTerrainHeightAction.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/WriteGridValueAction.d.ts +15 -0
- package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -0
- package/editor/ecs/component/FieldDescriptor.d.ts +27 -0
- package/editor/ecs/component/FieldDescriptor.d.ts.map +1 -0
- package/editor/ecs/component/FieldValueAdapter.d.ts +7 -0
- package/editor/ecs/component/FieldValueAdapter.d.ts.map +1 -0
- package/editor/ecs/component/createFieldEditor.d.ts +9 -0
- package/editor/ecs/component/createFieldEditor.d.ts.map +1 -0
- package/editor/ecs/component/createObjectEditor.d.ts +14 -0
- package/editor/ecs/component/createObjectEditor.d.ts.map +1 -0
- package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -1
- package/editor/ecs/component/findNearestRegisteredType.d.ts +8 -0
- package/editor/ecs/component/findNearestRegisteredType.d.ts.map +1 -0
- package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -1
- package/editor/process/symbolic/makeGridPositionSymbolDisplay.d.ts.map +1 -1
- package/editor/tools/GridPaintTool.d.ts +17 -0
- package/editor/tools/GridPaintTool.d.ts.map +1 -0
- package/editor/tools/SelectionTool.d.ts +27 -0
- package/editor/tools/SelectionTool.d.ts.map +1 -0
- package/editor/tools/TopDownCameraControlTool.d.ts +13 -0
- package/editor/tools/TopDownCameraControlTool.d.ts.map +1 -0
- package/editor/view/ecs/ComponentControlFactory.d.ts.map +1 -0
- package/editor/view/ecs/ComponentControlView.d.ts.map +1 -1
- package/editor/view/ecs/EntityEditor.d.ts.map +1 -0
- package/editor/view/ecs/EntityList.d.ts.map +1 -0
- package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphEditorView.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/package.json +1 -1
- package/src/core/binary/BinaryBuffer.d.ts +1 -1
- package/src/core/binary/BinaryBuffer.js +1 -1
- package/src/core/binary/BitSet.d.ts +1 -1
- package/src/core/binary/BitSet.js +1 -1
- package/src/core/cache/Cache.js +1 -1
- package/src/core/cache/LoadingCache.js +1 -1
- package/src/core/collection/list/List.js +1 -1
- package/src/core/collection/map/HashMap.js +1 -1
- package/src/core/collection/table/RowFirstTable.d.ts +1 -1
- package/src/core/collection/table/RowFirstTable.js +1 -1
- package/src/core/collection/table/RowFirstTableSpec.d.ts +1 -1
- package/src/core/collection/table/RowFirstTableSpec.js +1 -1
- package/src/core/color/oklab/compute_max_saturation.d.ts +1 -1
- package/src/core/color/oklab/compute_max_saturation.js +1 -1
- package/src/core/color/oklab/find_cusp.d.ts +1 -1
- package/src/core/color/oklab/find_cusp.js +1 -1
- package/src/core/color/oklab/find_gamut_intersection.d.ts +1 -1
- package/src/core/color/oklab/find_gamut_intersection.js +1 -1
- package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts +1 -1
- package/src/core/color/oklab/okhsv_to_linear_srgb.js +1 -1
- package/src/core/color/oklab/oklab_to_linear_srgb.d.ts +1 -1
- package/src/core/color/oklab/oklab_to_linear_srgb.js +1 -1
- package/src/core/color/oklab/oklab_to_xyz.d.ts +1 -1
- package/src/core/color/oklab/oklab_to_xyz.js +1 -1
- package/src/core/color/oklab/xyz_to_oklab.d.ts +1 -1
- package/src/core/color/oklab/xyz_to_oklab.js +1 -1
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts +1 -1
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +1 -1
- package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.js +57 -65
- package/src/core/geom/3d/octahedra/octahedral_uv_wrap.d.ts +1 -1
- package/src/core/geom/3d/octahedra/octahedral_uv_wrap.js +1 -1
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +1 -1
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +1 -1
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +1 -1
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +74 -3
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +37 -0
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/CapsuleShape3D.js +210 -0
- package/src/core/geom/3d/shape/PointShape3D.d.ts +5 -0
- package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PointShape3D.js +52 -14
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +75 -12
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +12 -3
- package/src/core/geom/3d/shape/UnionShape3D.d.ts +47 -5
- package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts +12 -5
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts +17 -5
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/json/shape_to_type.d.ts.map +1 -1
- package/src/core/geom/3d/shape/json/shape_to_type.js +4 -1
- package/src/core/geom/3d/shape/json/type_adapters.d.ts +17 -2
- package/src/core/geom/3d/shape/json/type_adapters.d.ts.map +1 -1
- package/src/core/geom/3d/shape/json/type_adapters.js +18 -2
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts.map +1 -1
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +51 -48
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.d.ts +1 -1
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +1 -1
- package/src/core/geom/ConicRay.d.ts +1 -1
- package/src/core/geom/ConicRay.js +1 -1
- package/src/core/geom/Quaternion.d.ts +2 -2
- package/src/core/geom/Quaternion.js +2 -2
- package/src/core/geom/Vector1.d.ts +1 -1
- package/src/core/geom/Vector1.js +1 -1
- package/src/core/geom/Vector2.d.ts +1 -1
- package/src/core/geom/Vector2.js +1 -1
- package/src/core/geom/Vector3.d.ts +1 -1
- package/src/core/geom/Vector3.js +1 -1
- package/src/core/geom/packing/miniball/Miniball.d.ts +1 -1
- package/src/core/geom/packing/miniball/Miniball.js +1 -1
- package/src/core/geom/vec3/serialization/v3_binary_equality_decode.d.ts +1 -1
- package/src/core/geom/vec3/serialization/v3_binary_equality_decode.js +1 -1
- package/src/core/geom/vec3/serialization/v3_binary_equality_encode.d.ts +1 -1
- package/src/core/geom/vec3/serialization/v3_binary_equality_encode.js +1 -1
- package/src/core/math/spline/spline3_hermite.d.ts +1 -1
- package/src/core/math/spline/spline3_hermite.js +1 -1
- package/src/core/math/spline/spline3_hermite_bounds.d.ts +1 -1
- package/src/core/math/spline/spline3_hermite_bounds.js +1 -1
- package/src/core/math/spline/spline3_hermite_bounds_t.d.ts +1 -1
- package/src/core/math/spline/spline3_hermite_bounds_t.js +1 -1
- package/src/core/math/spline/spline3_hermite_to_monomial.d.ts +1 -1
- package/src/core/math/spline/spline3_hermite_to_monomial.js +1 -1
- package/src/core/model/ObservedBoolean.d.ts +1 -1
- package/src/core/model/ObservedBoolean.js +1 -1
- package/src/core/model/ObservedString.d.ts +1 -1
- package/src/core/model/ObservedString.js +1 -1
- package/src/core/process/undo/Action.js +1 -1
- package/src/core/process/undo/ActionProcessor.js +1 -1
- package/src/engine/animation/curve/AnimationCurve.d.ts +1 -1
- package/src/engine/animation/curve/AnimationCurve.js +1 -1
- package/src/engine/animation/curve/Keyframe.d.ts +1 -1
- package/src/engine/animation/curve/Keyframe.js +1 -1
- package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts +1 -1
- package/src/engine/animation/curve/animation_curve_compute_aabb.js +1 -1
- package/src/engine/animation/curve/animation_curve_optimize.d.ts +1 -1
- package/src/engine/animation/curve/animation_curve_optimize.js +2 -2
- package/src/engine/asset/loaders/image/jpeg/JpegImage.js +1 -1
- package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
- package/src/engine/asset/loaders/image/png/PNGReader.js +27 -7
- package/src/engine/asset/loaders/image/png/crc32.d.ts +1 -1
- package/src/engine/asset/loaders/image/png/crc32.js +1 -1
- package/src/engine/control/first-person/DESIGN.md +616 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +229 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -0
- package/src/engine/control/first-person/FirstPersonPlayerController.js +176 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +251 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +205 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +151 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +799 -0
- package/src/engine/control/first-person/math/computeJumpFromApex.d.ts +23 -0
- package/src/engine/control/first-person/math/computeJumpFromApex.d.ts.map +1 -0
- package/src/engine/control/first-person/math/computeJumpFromApex.js +23 -0
- package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts +23 -0
- package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts.map +1 -0
- package/src/engine/control/first-person/math/criticallyDampedSpring.js +34 -0
- package/src/engine/control/first-person/math/dampedSpringStep.d.ts +23 -0
- package/src/engine/control/first-person/math/dampedSpringStep.d.ts.map +1 -0
- package/src/engine/control/first-person/math/dampedSpringStep.js +72 -0
- package/src/engine/control/first-person/math/stepTowards.d.ts +12 -0
- package/src/engine/control/first-person/math/stepTowards.d.ts.map +1 -0
- package/src/engine/control/first-person/math/stepTowards.js +20 -0
- package/src/engine/control/first-person/pose/FirstPersonPose.d.ts +69 -0
- package/src/engine/control/first-person/pose/FirstPersonPose.d.ts.map +1 -0
- package/src/engine/control/first-person/pose/FirstPersonPose.js +91 -0
- package/src/engine/control/first-person/prototype_first_person_controller.d.ts +2 -0
- package/src/engine/control/first-person/prototype_first_person_controller.d.ts.map +1 -0
- package/src/engine/control/first-person/prototype_first_person_controller.js +314 -0
- package/src/engine/ecs/Entity.js +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +1 -1
- package/src/engine/ecs/EntityManager.d.ts +1 -1
- package/src/engine/ecs/EntityManager.js +1 -1
- package/src/engine/ecs/EntityObserver.js +1 -1
- package/src/engine/ecs/EntityReference.d.ts +1 -1
- package/src/engine/ecs/EntityReference.js +1 -1
- package/src/engine/ecs/System.js +1 -1
- package/src/engine/ecs/attachment/AttachmentSystem.d.ts +2 -2
- package/src/engine/ecs/attachment/AttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/grid/HeightMap2AOMap.d.ts.map +1 -1
- package/src/engine/ecs/grid/HeightMap2AOMap.js +3 -2
- package/src/engine/ecs/guid/UUID.d.ts +1 -1
- package/src/engine/ecs/guid/UUID.js +1 -1
- package/src/engine/ecs/name/Name.d.ts +1 -1
- package/src/engine/ecs/name/Name.js +1 -1
- package/src/engine/ecs/parent/ParentEntity.js +1 -1
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts +1 -1
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
- package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts +1 -1
- package/src/engine/ecs/storage/BinaryBufferSerializer.js +1 -1
- package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +1 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +1 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +1 -1
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts +1 -1
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +1 -1
- package/src/engine/ecs/transform/Transform.d.ts +1 -1
- package/src/engine/ecs/transform/Transform.js +1 -1
- package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +10 -1
- package/src/engine/graphics/impostors/voxel/README.md +149 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts +91 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.js +376 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts +128 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.js +141 -0
- package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts +38 -0
- package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.js +338 -0
- package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts +43 -0
- package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.js +192 -0
- package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts +2 -0
- package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.js +343 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts +13 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.js +99 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts +19 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.js +231 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts +5 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.js +70 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts +13 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.js +127 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts +5 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.js +68 -0
- package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts +27 -0
- package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts.map +1 -0
- package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.js +96 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +113 -29
- package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +1 -1
- package/src/engine/graphics/shaders/AmbientOcclusionShader.d.ts.map +1 -1
- package/src/engine/graphics/shaders/AmbientOcclusionShader.js +20 -5
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +1 -1
- package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.js +1 -1
- package/src/engine/graphics/util/build_max_height_pyramid.d.ts +21 -14
- package/src/engine/graphics/util/build_max_height_pyramid.d.ts.map +1 -1
- package/src/engine/graphics/util/build_max_height_pyramid.js +107 -70
- package/src/engine/input/devices/InputDeviceSwitch.js +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +1 -1
- package/src/engine/input/devices/PointerDevice.js +1 -1
- package/src/engine/intelligence/behavior/Behavior.js +1 -1
- package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/SelectorBehavior.js +1 -1
- package/src/engine/intelligence/behavior/behavior_to_dot.d.ts +1 -1
- package/src/engine/intelligence/behavior/behavior_to_dot.js +1 -1
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +1 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +1 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +1 -1
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +1 -1
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +1 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.js +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +1 -1
- package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/DieBehavior.js +1 -1
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +1 -1
- package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/KillBehavior.js +1 -1
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +1 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +1 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +1 -1
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +1 -1
- package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/util/BranchBehavior.js +1 -1
- package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/util/DelayBehavior.js +1 -1
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +1 -1
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +1 -1
- package/src/engine/intelligence/blackboard/Blackboard.js +1 -1
- package/src/engine/intelligence/mcts/MonteCarlo.d.ts +1 -1
- package/src/engine/intelligence/mcts/MonteCarlo.js +1 -1
- package/src/engine/intelligence/mcts/MoveEdge.d.ts +1 -1
- package/src/engine/intelligence/mcts/MoveEdge.js +1 -1
- package/src/engine/intelligence/mcts/StateNode.d.ts +1 -1
- package/src/engine/intelligence/mcts/StateNode.js +1 -1
- package/src/engine/intelligence/resource/ActionSequence.d.ts +1 -1
- package/src/engine/intelligence/resource/ActionSequence.js +1 -1
- package/src/engine/intelligence/resource/Resource.d.ts +1 -1
- package/src/engine/intelligence/resource/Resource.js +1 -1
- package/src/engine/intelligence/resource/ResourceAllocation.d.ts +1 -1
- package/src/engine/intelligence/resource/ResourceAllocation.js +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationBid.js +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationSolver.js +1 -1
- package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts +1 -1
- package/src/engine/intelligence/resource/StrategicResourceAllocator.js +1 -1
- package/src/engine/intelligence/resource/TacticalModule.d.ts +1 -1
- package/src/engine/intelligence/resource/TacticalModule.js +1 -1
- package/src/engine/network/NetworkSession.d.ts +1 -1
- package/src/engine/network/NetworkSession.js +1 -1
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +1 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.js +1 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.js +1 -1
- package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts +1 -1
- package/src/engine/network/adapters/Vector3InterpolationAdapter.js +1 -1
- package/src/engine/network/core/quantize/quantize_float.d.ts +1 -1
- package/src/engine/network/core/quantize/quantize_float.js +1 -1
- package/src/engine/network/core/quantize/quantize_position.d.ts +1 -1
- package/src/engine/network/core/quantize/quantize_position.js +1 -1
- package/src/engine/network/core/sequence/ack_bitfield.d.ts +1 -1
- package/src/engine/network/core/sequence/ack_bitfield.js +1 -1
- package/src/engine/network/core/sequence/seq16.d.ts +1 -1
- package/src/engine/network/core/sequence/seq16.js +1 -1
- package/src/engine/network/core/sequence/seq32.d.ts +1 -1
- package/src/engine/network/core/sequence/seq32.js +1 -1
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
- package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
- package/src/engine/network/diagnostics/ReplayLog.d.ts +1 -1
- package/src/engine/network/diagnostics/ReplayLog.js +1 -1
- package/src/engine/network/diagnostics/SyncTest.d.ts +1 -1
- package/src/engine/network/diagnostics/SyncTest.js +1 -1
- package/src/engine/network/ecs/NetworkSystem.d.ts +1 -1
- package/src/engine/network/ecs/NetworkSystem.js +1 -1
- package/src/engine/network/ecs/components/NetworkIdentity.d.ts +1 -1
- package/src/engine/network/ecs/components/NetworkIdentity.js +1 -1
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts +1 -1
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.js +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +1 -1
- package/src/engine/network/replication/Replicator.d.ts +1 -1
- package/src/engine/network/replication/Replicator.js +1 -1
- package/src/engine/network/replication/ScopeFilter.d.ts +2 -2
- package/src/engine/network/replication/ScopeFilter.js +2 -2
- package/src/engine/network/sim/ActionLog.d.ts +1 -1
- package/src/engine/network/sim/ActionLog.js +1 -1
- package/src/engine/network/sim/BinaryInterpolationAdapter.d.ts +1 -1
- package/src/engine/network/sim/BinaryInterpolationAdapter.js +1 -1
- package/src/engine/network/sim/InterpolationLog.d.ts +1 -1
- package/src/engine/network/sim/InterpolationLog.js +1 -1
- package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts +1 -1
- package/src/engine/network/sim/ReplicatedComponentRegistry.js +1 -1
- package/src/engine/network/sim/RewindEngine.d.ts +1 -1
- package/src/engine/network/sim/RewindEngine.js +1 -1
- package/src/engine/network/sim/SimAction.d.ts +1 -1
- package/src/engine/network/sim/SimAction.js +1 -1
- package/src/engine/network/sim/SimActionExecutor.d.ts +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +1 -1
- package/src/engine/network/sim/SimActionRegistry.d.ts +1 -1
- package/src/engine/network/sim/SimActionRegistry.js +1 -1
- package/src/engine/network/sim/SmoothingState.js +1 -1
- package/src/engine/network/sim/Snapshotter.d.ts +1 -1
- package/src/engine/network/sim/Snapshotter.js +1 -1
- package/src/engine/network/sim/SpeculationLog.d.ts +1 -1
- package/src/engine/network/sim/SpeculationLog.js +1 -1
- package/src/engine/network/state/Baseline.d.ts +1 -1
- package/src/engine/network/state/Baseline.js +1 -1
- package/src/engine/network/state/ChangedEntitySet.d.ts +1 -1
- package/src/engine/network/state/ChangedEntitySet.js +1 -1
- package/src/engine/network/state/InputRing.d.ts +1 -1
- package/src/engine/network/state/InputRing.js +1 -1
- package/src/engine/network/state/MutationLedger.d.ts +1 -1
- package/src/engine/network/state/MutationLedger.js +1 -1
- package/src/engine/network/state/PriorityAccumulator.d.ts +1 -1
- package/src/engine/network/state/PriorityAccumulator.js +1 -1
- package/src/engine/network/state/ReplicationSlotTable.d.ts +1 -1
- package/src/engine/network/state/ReplicationSlotTable.js +1 -1
- package/src/engine/network/time/AdaptiveRenderDelay.d.ts +1 -1
- package/src/engine/network/time/AdaptiveRenderDelay.js +1 -1
- package/src/engine/network/time/JitterBuffer.d.ts +1 -1
- package/src/engine/network/time/JitterBuffer.js +1 -1
- package/src/engine/network/time/TimeDilation.d.ts +1 -1
- package/src/engine/network/time/TimeDilation.js +1 -1
- package/src/engine/network/time/TimeSync.d.ts +1 -1
- package/src/engine/network/time/TimeSync.js +1 -1
- package/src/engine/network/transport/Channel.d.ts.map +1 -1
- package/src/engine/network/transport/Channel.js +3 -6
- package/src/engine/network/transport/LoopbackTransport.d.ts +1 -1
- package/src/engine/network/transport/LoopbackTransport.js +1 -1
- package/src/engine/network/transport/ReliableCommandPipeline.d.ts +1 -1
- package/src/engine/network/transport/ReliableCommandPipeline.js +1 -1
- package/src/engine/network/transport/Transport.d.ts +1 -1
- package/src/engine/network/transport/Transport.js +1 -1
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts +1 -1
- package/src/engine/network/transport/adapters/NodeUDPTransport.js +2 -2
- package/src/engine/network/transport/adapters/SimulatedTransport.d.ts +1 -1
- package/src/engine/network/transport/adapters/SimulatedTransport.js +1 -1
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts +1 -1
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +1 -1
- package/src/engine/network/transport/adapters/WebSocketTransport.d.ts +1 -1
- package/src/engine/network/transport/adapters/WebSocketTransport.js +1 -1
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts +1 -1
- package/src/engine/network/transport/adapters/WebTransportTransport.js +1 -1
- package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +1 -1
- package/src/engine/network/transport/fragments/FragmentAssembler.js +1 -1
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts +1 -1
- package/src/engine/network/transport/fragments/FragmentRetention.js +1 -1
- package/src/engine/network/transport/fragments/packet_size.d.ts +1 -1
- package/src/engine/network/transport/fragments/packet_size.js +1 -1
- package/src/engine/simulation/Ticker.d.ts +1 -1
- package/src/engine/simulation/Ticker.js +1 -1
- package/src/engine/sound/SoundEngine.js +1 -1
- package/src/engine/ui/DraggableAspect.d.ts +1 -1
- package/src/engine/ui/DraggableAspect.js +1 -1
- package/src/view/View.js +1 -1
|
@@ -1,65 +1,57 @@
|
|
|
1
|
-
import { clamp } from "../../../math/clamp.js";
|
|
2
|
-
import { min2 } from "../../../math/min2.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @param {number
|
|
9
|
-
* @param {number}
|
|
10
|
-
* @param {number}
|
|
11
|
-
* @param {number}
|
|
12
|
-
* @param {number}
|
|
13
|
-
* @param {number}
|
|
14
|
-
* @param {number}
|
|
15
|
-
* @param {number}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
result[
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
} else {
|
|
59
|
-
result[2] = z1;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
result[0] = clamp(r_x, x0, x1);
|
|
63
|
-
result[1] = clamp(r_y, y0, y1);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
1
|
+
import { clamp } from "../../../math/clamp.js";
|
|
2
|
+
import { min2 } from "../../../math/min2.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param {number[]|ArrayLike<number>} result
|
|
7
|
+
* @param {number} x0
|
|
8
|
+
* @param {number} y0
|
|
9
|
+
* @param {number} z0
|
|
10
|
+
* @param {number} x1
|
|
11
|
+
* @param {number} y1
|
|
12
|
+
* @param {number} z1
|
|
13
|
+
* @param {number} r_x
|
|
14
|
+
* @param {number} r_y
|
|
15
|
+
* @param {number} r_z
|
|
16
|
+
*/
|
|
17
|
+
export function aabb3_nearest_point_on_surface(result, x0, y0, z0, x1, y1, z1, r_x, r_y, r_z) {
|
|
18
|
+
// clamp the reference to the box; for exterior points this is already the nearest surface point
|
|
19
|
+
const cx = clamp(r_x, x0, x1);
|
|
20
|
+
const cy = clamp(r_y, y0, y1);
|
|
21
|
+
const cz = clamp(r_z, z0, z1);
|
|
22
|
+
|
|
23
|
+
const inside = (cx === r_x) && (cy === r_y) && (cz === r_z);
|
|
24
|
+
|
|
25
|
+
if (!inside) {
|
|
26
|
+
result[0] = cx;
|
|
27
|
+
result[1] = cy;
|
|
28
|
+
result[2] = cz;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// interior point: snap to the nearest face
|
|
33
|
+
const dx0 = r_x - x0;
|
|
34
|
+
const dx1 = x1 - r_x;
|
|
35
|
+
const dy0 = r_y - y0;
|
|
36
|
+
const dy1 = y1 - r_y;
|
|
37
|
+
const dz0 = r_z - z0;
|
|
38
|
+
const dz1 = z1 - r_z;
|
|
39
|
+
|
|
40
|
+
const dx = min2(dx0, dx1);
|
|
41
|
+
const dy = min2(dy0, dy1);
|
|
42
|
+
const dz = min2(dz0, dz1);
|
|
43
|
+
|
|
44
|
+
if (dx <= dy && dx <= dz) {
|
|
45
|
+
result[0] = (dx0 <= dx1) ? x0 : x1;
|
|
46
|
+
result[1] = r_y;
|
|
47
|
+
result[2] = r_z;
|
|
48
|
+
} else if (dy <= dz) {
|
|
49
|
+
result[0] = r_x;
|
|
50
|
+
result[1] = (dy0 <= dy1) ? y0 : y1;
|
|
51
|
+
result[2] = r_z;
|
|
52
|
+
} else {
|
|
53
|
+
result[0] = r_x;
|
|
54
|
+
result[1] = r_y;
|
|
55
|
+
result[2] = (dz0 <= dz1) ? z0 : z1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* @param {number} in_offset - Index to start reading from
|
|
25
25
|
*
|
|
26
26
|
* @author Alex Goldring
|
|
27
|
-
* @copyright Company Named Limited (c)
|
|
27
|
+
* @copyright Company Named Limited (c) 2026
|
|
28
28
|
*/
|
|
29
29
|
export function octahedral_uv_wrap(out_uv: number[], out_offset: number, in_uv: number[], in_offset: number): void;
|
|
30
30
|
//# sourceMappingURL=octahedral_uv_wrap.d.ts.map
|
|
@@ -31,7 +31,7 @@ function reduce_even_wrap(x) {
|
|
|
31
31
|
* @param {number} in_offset - Index to start reading from
|
|
32
32
|
*
|
|
33
33
|
* @author Alex Goldring
|
|
34
|
-
* @copyright Company Named Limited (c)
|
|
34
|
+
* @copyright Company Named Limited (c) 2026
|
|
35
35
|
*/
|
|
36
36
|
export function octahedral_uv_wrap(
|
|
37
37
|
out_uv, out_offset,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Based on GDC talk from Bungie on destiny, compressing quaternions for animation
|
|
3
3
|
*
|
|
4
4
|
* @author Alex Goldring
|
|
5
|
-
* @copyright Company Named Limited (c)
|
|
5
|
+
* @copyright Company Named Limited (c) 2026
|
|
6
6
|
*
|
|
7
7
|
* @param {number[]} output
|
|
8
8
|
* @param {number} output_offset
|
|
@@ -4,7 +4,7 @@ const K = Math.SQRT1_2 / 511;
|
|
|
4
4
|
* Based on GDC talk from Bungie on destiny, compressing quaternions for animation
|
|
5
5
|
*
|
|
6
6
|
* @author Alex Goldring
|
|
7
|
-
* @copyright Company Named Limited (c)
|
|
7
|
+
* @copyright Company Named Limited (c) 2026
|
|
8
8
|
*
|
|
9
9
|
* @param {number[]} output
|
|
10
10
|
* @param {number} output_offset
|
|
@@ -5,7 +5,7 @@ import { v4_length } from "../../vec4/v4_length.js";
|
|
|
5
5
|
* Based on GDC talk from Bungie on destiny, compressing quaternions for animation
|
|
6
6
|
*
|
|
7
7
|
* @author Alex Goldring
|
|
8
|
-
* @copyright Company Named Limited (c)
|
|
8
|
+
* @copyright Company Named Limited (c) 2026
|
|
9
9
|
*
|
|
10
10
|
* @param {number} x
|
|
11
11
|
* @param {number} y
|
|
@@ -1,3 +1,74 @@
|
|
|
1
|
-
export class AbstractShape3D {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export class AbstractShape3D {
|
|
2
|
+
/**
|
|
3
|
+
* Signed distance to boundary of the shape from the given point
|
|
4
|
+
* @param {number[]} point
|
|
5
|
+
* @returns {number}
|
|
6
|
+
*/
|
|
7
|
+
signed_distance_at_point(point: number[]): number;
|
|
8
|
+
/**
|
|
9
|
+
* Samples both distances as well as the gradient
|
|
10
|
+
* @param {number[]} result resulting gradient is written here
|
|
11
|
+
* @param {number[]} point sampling point
|
|
12
|
+
* @returns {number}
|
|
13
|
+
*/
|
|
14
|
+
signed_distance_gradient_at_point(result: number[], point: number[]): number;
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param {number[]} result where the resulting point is stored
|
|
18
|
+
* @param {number[]} reference reference point from which to go
|
|
19
|
+
* @returns {void}
|
|
20
|
+
*/
|
|
21
|
+
nearest_point_on_surface(result: number[], reference: number[]): void;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param {number[]} result
|
|
25
|
+
* @param {number} result_offset
|
|
26
|
+
* @param {function} random
|
|
27
|
+
* @returns {void}
|
|
28
|
+
*/
|
|
29
|
+
sample_random_point_in_volume(result: number[], result_offset: number, random: Function): void;
|
|
30
|
+
/**
|
|
31
|
+
* Whether or not given point is inside the shape
|
|
32
|
+
* @param {number[]} point
|
|
33
|
+
* @returns {boolean}
|
|
34
|
+
*/
|
|
35
|
+
contains_point(point: number[]): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Total volume of the shape
|
|
38
|
+
* @returns {number}
|
|
39
|
+
*/
|
|
40
|
+
get volume(): number;
|
|
41
|
+
/**
|
|
42
|
+
* @returns {number}
|
|
43
|
+
*/
|
|
44
|
+
get surface_area(): number;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @param {number[]|ArrayLike<number>|Float32Array|Float64Array} result format: x0,y0,z0,x1,y1,z1
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
compute_bounding_box(result: number[] | ArrayLike<number> | Float32Array | Float64Array): void;
|
|
51
|
+
/**
|
|
52
|
+
* Support function, given a direction vector, return point on the shape that's furthest in that direction
|
|
53
|
+
* Assumes direction is a unit vector
|
|
54
|
+
* @param {number[]|Float32Array} result
|
|
55
|
+
* @param {number} result_offset
|
|
56
|
+
* @param {number} direction_x
|
|
57
|
+
* @param {number} direction_y
|
|
58
|
+
* @param {number} direction_z
|
|
59
|
+
* @returns {void}
|
|
60
|
+
*/
|
|
61
|
+
support(result: number[] | Float32Array, result_offset: number, direction_x: number, direction_y: number, direction_z: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* @template {AbstractShape3D} T
|
|
64
|
+
* @param {T} other
|
|
65
|
+
* @returns {boolean}
|
|
66
|
+
*/
|
|
67
|
+
equals<T extends AbstractShape3D>(other: T): boolean;
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
* @returns {number}
|
|
71
|
+
*/
|
|
72
|
+
hash(): number;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=AbstractShape3D.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A capsule aligned with the Y axis. Composed of a cylindrical section of
|
|
3
|
+
* length {@link height} and two hemispherical caps of radius {@link radius}.
|
|
4
|
+
* Total extent along Y is `height + 2 * radius`.
|
|
5
|
+
*/
|
|
6
|
+
export class CapsuleShape3D extends AbstractShape3D {
|
|
7
|
+
/**
|
|
8
|
+
* @param {number} radius
|
|
9
|
+
* @param {number} height
|
|
10
|
+
* @returns {CapsuleShape3D}
|
|
11
|
+
*/
|
|
12
|
+
static from(radius: number, height: number): CapsuleShape3D;
|
|
13
|
+
/**
|
|
14
|
+
* Radius of the hemispherical caps and the cylindrical section
|
|
15
|
+
* @type {number}
|
|
16
|
+
*/
|
|
17
|
+
radius: number;
|
|
18
|
+
/**
|
|
19
|
+
* Length of the cylindrical (straight) section, NOT including the hemispheres
|
|
20
|
+
* @type {number}
|
|
21
|
+
*/
|
|
22
|
+
height: number;
|
|
23
|
+
compute_bounding_box(result: any): void;
|
|
24
|
+
signed_distance_at_point(point: any): number;
|
|
25
|
+
signed_distance_gradient_at_point(result: any, point: any): number;
|
|
26
|
+
contains_point(point: any): boolean;
|
|
27
|
+
nearest_point_on_surface(result: any, reference: any): void;
|
|
28
|
+
support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
|
|
29
|
+
sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
|
|
30
|
+
/**
|
|
31
|
+
* @param {CapsuleShape3D} other
|
|
32
|
+
* @returns {boolean}
|
|
33
|
+
*/
|
|
34
|
+
equals(other: CapsuleShape3D): boolean;
|
|
35
|
+
}
|
|
36
|
+
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
37
|
+
//# sourceMappingURL=CapsuleShape3D.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH;IAiBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,cAAc,CAa1B;IA7BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAED;IAqCnB,wCAUC;IAED,6CAaC;IAED,mEAEC;IAED,oCAcC;IAED,4DA+BC;IAED,qGAUC;IAED,kFA+BC;IAED;;;OAGG;IACH,cAHW,cAAc,GACZ,OAAO,CAMnB;CAQJ;gCA1M+B,sBAAsB"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
import { clamp } from "../../../math/clamp.js";
|
|
3
|
+
import { sign_not_zero } from "../../../math/sign_not_zero.js";
|
|
4
|
+
import { computeHashFloat } from "../../../primitives/numbers/computeHashFloat.js";
|
|
5
|
+
import { randomPointInCircle } from "../../random/randomPointInCircle.js";
|
|
6
|
+
import { randomPointInSphere } from "../../random/randomPointInSphere.js";
|
|
7
|
+
import { v3_length } from "../../vec3/v3_length.js";
|
|
8
|
+
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
9
|
+
import { compute_signed_distance_gradient_by_sampling } from "./util/compute_signed_distance_gradient_by_sampling.js";
|
|
10
|
+
|
|
11
|
+
const scratch_v3 = [0, 0, 0];
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A capsule aligned with the Y axis. Composed of a cylindrical section of
|
|
15
|
+
* length {@link height} and two hemispherical caps of radius {@link radius}.
|
|
16
|
+
* Total extent along Y is `height + 2 * radius`.
|
|
17
|
+
*/
|
|
18
|
+
export class CapsuleShape3D extends AbstractShape3D {
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Radius of the hemispherical caps and the cylindrical section
|
|
24
|
+
* @type {number}
|
|
25
|
+
*/
|
|
26
|
+
this.radius = 0.5;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Length of the cylindrical (straight) section, NOT including the hemispheres
|
|
30
|
+
* @type {number}
|
|
31
|
+
*/
|
|
32
|
+
this.height = 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param {number} radius
|
|
37
|
+
* @param {number} height
|
|
38
|
+
* @returns {CapsuleShape3D}
|
|
39
|
+
*/
|
|
40
|
+
static from(radius, height) {
|
|
41
|
+
assert.isNumber(radius, 'radius');
|
|
42
|
+
assert.isNumber(height, 'height');
|
|
43
|
+
assert.greaterThanOrEqual(radius, 0, 'radius');
|
|
44
|
+
assert.greaterThanOrEqual(height, 0, 'height');
|
|
45
|
+
|
|
46
|
+
const r = new CapsuleShape3D();
|
|
47
|
+
r.radius = radius;
|
|
48
|
+
r.height = height;
|
|
49
|
+
|
|
50
|
+
return r;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
get volume() {
|
|
54
|
+
const r = this.radius;
|
|
55
|
+
const h = this.height;
|
|
56
|
+
|
|
57
|
+
// cylindrical core + full sphere (two hemispheres)
|
|
58
|
+
return Math.PI * r * r * h + (4 / 3) * Math.PI * r * r * r;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
get surface_area() {
|
|
62
|
+
const r = this.radius;
|
|
63
|
+
const h = this.height;
|
|
64
|
+
|
|
65
|
+
// side of the cylinder + full sphere surface (two hemispheres)
|
|
66
|
+
return 2 * Math.PI * r * h + 4 * Math.PI * r * r;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
compute_bounding_box(result) {
|
|
70
|
+
const r = this.radius;
|
|
71
|
+
const half_h = this.height / 2;
|
|
72
|
+
|
|
73
|
+
result[0] = -r;
|
|
74
|
+
result[1] = -half_h - r;
|
|
75
|
+
result[2] = -r;
|
|
76
|
+
result[3] = r;
|
|
77
|
+
result[4] = half_h + r;
|
|
78
|
+
result[5] = r;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
signed_distance_at_point(point) {
|
|
82
|
+
const px = point[0];
|
|
83
|
+
const py = point[1];
|
|
84
|
+
const pz = point[2];
|
|
85
|
+
|
|
86
|
+
const half_h = this.height / 2;
|
|
87
|
+
|
|
88
|
+
// collapse Y onto the central segment
|
|
89
|
+
const y_seg = clamp(py, -half_h, half_h);
|
|
90
|
+
|
|
91
|
+
const dy = py - y_seg;
|
|
92
|
+
|
|
93
|
+
return v3_length(px, dy, pz) - this.radius;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
signed_distance_gradient_at_point(result, point) {
|
|
97
|
+
return compute_signed_distance_gradient_by_sampling(result, this, point);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
contains_point(point) {
|
|
101
|
+
const px = point[0];
|
|
102
|
+
const py = point[1];
|
|
103
|
+
const pz = point[2];
|
|
104
|
+
|
|
105
|
+
const half_h = this.height / 2;
|
|
106
|
+
|
|
107
|
+
const y_seg = clamp(py, -half_h, half_h);
|
|
108
|
+
|
|
109
|
+
const dy = py - y_seg;
|
|
110
|
+
|
|
111
|
+
const r = this.radius;
|
|
112
|
+
|
|
113
|
+
return px * px + dy * dy + pz * pz < r * r;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
nearest_point_on_surface(result, reference) {
|
|
117
|
+
const rx = reference[0];
|
|
118
|
+
const ry = reference[1];
|
|
119
|
+
const rz = reference[2];
|
|
120
|
+
|
|
121
|
+
const half_h = this.height / 2;
|
|
122
|
+
|
|
123
|
+
// closest point on the central segment
|
|
124
|
+
const y_seg = clamp(ry, -half_h, half_h);
|
|
125
|
+
|
|
126
|
+
const dx = rx;
|
|
127
|
+
const dy = ry - y_seg;
|
|
128
|
+
const dz = rz;
|
|
129
|
+
|
|
130
|
+
const dist = v3_length(dx, dy, dz);
|
|
131
|
+
|
|
132
|
+
const r = this.radius;
|
|
133
|
+
|
|
134
|
+
if (dist === 0) {
|
|
135
|
+
// reference is on the central axis, pick an arbitrary surface direction (+X)
|
|
136
|
+
result[0] = r;
|
|
137
|
+
result[1] = y_seg;
|
|
138
|
+
result[2] = 0;
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const scale = r / dist;
|
|
143
|
+
|
|
144
|
+
result[0] = dx * scale;
|
|
145
|
+
result[1] = y_seg + dy * scale;
|
|
146
|
+
result[2] = dz * scale;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
support(result, result_offset, direction_x, direction_y, direction_z) {
|
|
150
|
+
const half_h = this.height / 2;
|
|
151
|
+
const r = this.radius;
|
|
152
|
+
|
|
153
|
+
// pick the hemisphere whose center is along +direction.y
|
|
154
|
+
const cap_y = sign_not_zero(direction_y) * half_h;
|
|
155
|
+
|
|
156
|
+
result[result_offset] = direction_x * r;
|
|
157
|
+
result[result_offset + 1] = cap_y + direction_y * r;
|
|
158
|
+
result[result_offset + 2] = direction_z * r;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
sample_random_point_in_volume(result, result_offset, random) {
|
|
162
|
+
const r = this.radius;
|
|
163
|
+
const h = this.height;
|
|
164
|
+
|
|
165
|
+
const cylinder_volume = Math.PI * r * r * h;
|
|
166
|
+
const sphere_volume = (4 / 3) * Math.PI * r * r * r;
|
|
167
|
+
const total_volume = cylinder_volume + sphere_volume;
|
|
168
|
+
|
|
169
|
+
const pick = random() * total_volume;
|
|
170
|
+
|
|
171
|
+
if (pick < cylinder_volume) {
|
|
172
|
+
// sample inside the cylindrical core
|
|
173
|
+
randomPointInCircle(random, scratch_v3, 0);
|
|
174
|
+
|
|
175
|
+
const y = (random() - 0.5) * h;
|
|
176
|
+
|
|
177
|
+
result[result_offset] = scratch_v3[0] * r;
|
|
178
|
+
result[result_offset + 1] = y;
|
|
179
|
+
result[result_offset + 2] = scratch_v3[1] * r;
|
|
180
|
+
} else {
|
|
181
|
+
// sample inside a hemispherical cap
|
|
182
|
+
randomPointInSphere(random, scratch_v3, 0);
|
|
183
|
+
|
|
184
|
+
const sy = scratch_v3[1];
|
|
185
|
+
|
|
186
|
+
const cap_offset = sign_not_zero(sy) * (h / 2);
|
|
187
|
+
|
|
188
|
+
result[result_offset] = scratch_v3[0] * r;
|
|
189
|
+
result[result_offset + 1] = sy * r + cap_offset;
|
|
190
|
+
result[result_offset + 2] = scratch_v3[2] * r;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @param {CapsuleShape3D} other
|
|
196
|
+
* @returns {boolean}
|
|
197
|
+
*/
|
|
198
|
+
equals(other) {
|
|
199
|
+
return super.equals(other)
|
|
200
|
+
&& this.radius === other.radius
|
|
201
|
+
&& this.height === other.height;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
hash() {
|
|
205
|
+
const a = computeHashFloat(this.radius);
|
|
206
|
+
const b = computeHashFloat(this.height);
|
|
207
|
+
|
|
208
|
+
return ((a << 5) - a + b) | 0;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class PointShape3D extends AbstractShape3D {
|
|
5
5
|
static INSTANCE: PointShape3D;
|
|
6
|
+
compute_bounding_box(result: any): void;
|
|
7
|
+
signed_distance_at_point(point: any): number;
|
|
8
|
+
contains_point(point: any): boolean;
|
|
9
|
+
nearest_point_on_surface(result: any, reference: any): void;
|
|
10
|
+
sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
|
|
6
11
|
support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
|
|
7
12
|
}
|
|
8
13
|
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/PointShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PointShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/PointShape3D.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IA4CI,8BAAqC;IAnCrC,wCAOC;IAED,6CAEC;IAED,oCAEC;IAED,4DAIC;IAED,kFAIC;IAED,qGAIC;CAGJ;gCAlD+B,sBAAsB"}
|
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
1
|
+
import { v3_length } from "../../vec3/v3_length.js";
|
|
2
|
+
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Describes a point, shape that encloses no space
|
|
6
|
+
*/
|
|
7
|
+
export class PointShape3D extends AbstractShape3D {
|
|
8
|
+
get volume() {
|
|
9
|
+
return 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
get surface_area() {
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
compute_bounding_box(result) {
|
|
17
|
+
result[0] = 0;
|
|
18
|
+
result[1] = 0;
|
|
19
|
+
result[2] = 0;
|
|
20
|
+
result[3] = 0;
|
|
21
|
+
result[4] = 0;
|
|
22
|
+
result[5] = 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
signed_distance_at_point(point) {
|
|
26
|
+
return v3_length(point[0], point[1], point[2]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
contains_point(point) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
nearest_point_on_surface(result, reference) {
|
|
34
|
+
result[0] = 0;
|
|
35
|
+
result[1] = 0;
|
|
36
|
+
result[2] = 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
sample_random_point_in_volume(result, result_offset, random) {
|
|
40
|
+
result[result_offset] = 0;
|
|
41
|
+
result[result_offset + 1] = 0;
|
|
42
|
+
result[result_offset + 2] = 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
support(result, result_offset, direction_x, direction_y, direction_z) {
|
|
46
|
+
result[result_offset] = 0;
|
|
47
|
+
result[result_offset + 1] = 0;
|
|
48
|
+
result[result_offset + 2] = 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static INSTANCE = new PointShape3D();
|
|
52
|
+
}
|