@woosh/meep-engine 2.106.0 → 2.107.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/meep.cjs +2310 -2529
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +2310 -2529
- package/editor/Editor.js +55 -60
- package/editor/SelectionVisualizer.js +111 -109
- package/editor/actions/concrete/ComponentAddAction.js +0 -3
- package/editor/actions/concrete/ComponentRemoveAction.js +0 -4
- package/editor/actions/concrete/EntityCreateAction.js +0 -3
- package/editor/actions/concrete/EntityRemoveAction.js +0 -4
- package/editor/actions/concrete/SelectionAddAction.js +0 -3
- package/editor/actions/concrete/SelectionClearAction.js +0 -3
- package/editor/actions/concrete/SelectionRemoveAction.js +0 -3
- package/editor/ecs/EditorEntity.js +8 -6
- package/editor/tools/SelectionTool.js +0 -5
- package/editor/tools/TopDownCameraControlTool.js +2 -5
- package/editor/tools/TransformTool.js +137 -136
- package/editor/tools/engine/Tool.js +1 -6
- package/editor/tools/engine/ToolEngine.js +145 -148
- package/editor/tools/v2/TransformControls.js +25 -24
- package/editor/view/EditorView.js +0 -5
- package/editor/view/ecs/ComponentControlFactory.js +37 -40
- package/editor/view/ecs/EntityEditor.js +0 -3
- package/editor/view/ecs/EntityList.js +6 -11
- package/editor/view/ecs/components/MeshController.js +4 -7
- package/editor/view/ecs/components/TransformController.js +3 -9
- package/editor/view/tools/ToolView.js +2 -8
- package/package.json +1 -1
- package/src/core/IdPool.d.ts.map +1 -1
- package/src/core/IdPool.js +0 -5
- package/src/core/UUID.d.ts.map +1 -1
- package/src/core/UUID.js +0 -4
- package/src/core/binary/BitSet.d.ts +17 -14
- package/src/core/binary/BitSet.d.ts.map +1 -1
- package/src/core/binary/BitSet.js +411 -412
- package/src/core/binary/type/Field.d.ts +0 -8
- package/src/core/binary/type/Field.d.ts.map +1 -1
- package/src/core/binary/type/Field.js +16 -19
- package/src/core/binary/type/MultiplicityType.js +0 -4
- package/src/core/binary/type/PrimitiveTypes.d.ts.map +1 -1
- package/src/core/binary/type/PrimitiveTypes.js +0 -4
- package/src/core/binary/type/Type.d.ts +0 -6
- package/src/core/binary/type/Type.d.ts.map +1 -1
- package/src/core/binary/type/Type.js +63 -64
- package/src/core/binary/type/TypeBuilder.d.ts +0 -1
- package/src/core/binary/type/TypeBuilder.d.ts.map +1 -1
- package/src/core/binary/type/TypeBuilder.js +15 -18
- package/src/core/binary/type/TypeRegistry.d.ts +6 -4
- package/src/core/binary/type/TypeRegistry.d.ts.map +1 -1
- package/src/core/binary/type/TypeRegistry.js +38 -42
- package/src/core/bvh2/visual/BVHGeometry.d.ts.map +1 -1
- package/src/core/bvh2/visual/BVHGeometry.js +0 -3
- package/src/core/codegen/LineBuilder.d.ts.map +1 -1
- package/src/core/codegen/LineBuilder.js +0 -5
- package/src/core/collection/array/array_copy.spec.d.ts +2 -0
- package/src/core/collection/array/array_copy.spec.d.ts.map +1 -0
- package/src/core/collection/array/array_copy.spec.js +19 -0
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +55 -30
- package/src/core/collection/list/List.spec.js +101 -0
- package/src/core/collection/list/ListForwarder.d.ts.map +1 -1
- package/src/core/collection/list/ListForwarder.js +49 -53
- package/src/core/collection/list/ListForwarder.spec.js +2 -0
- package/src/core/collection/list/SortedListProjection.d.ts +4 -1
- package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
- package/src/core/collection/list/SortedListProjection.js +4 -1
- package/src/core/collection/map/AbstractAsyncMap.d.ts.map +1 -1
- package/src/core/collection/map/AbstractAsyncMap.js +0 -3
- package/src/core/collection/map/AsyncMapWrapper.d.ts +6 -10
- package/src/core/collection/map/AsyncMapWrapper.d.ts.map +1 -1
- package/src/core/collection/map/AsyncMapWrapper.js +14 -9
- package/src/core/collection/map/HashMap.d.ts.map +1 -1
- package/src/core/collection/map/HashMap.js +14 -0
- package/src/core/collection/map/ObservedMap.d.ts +12 -3
- package/src/core/collection/map/ObservedMap.d.ts.map +1 -1
- package/src/core/collection/map/ObservedMap.js +14 -4
- package/src/core/collection/queue/Deque.d.ts.map +1 -1
- package/src/core/collection/queue/Deque.js +100 -95
- package/src/core/collection/set/ArraySet.d.ts.map +1 -0
- package/src/core/collection/set/{Set.js → ArraySet.js} +3 -7
- package/src/core/collection/set/set_remove.d.ts +3 -3
- package/src/core/collection/set/set_remove.d.ts.map +1 -1
- package/src/core/collection/set/set_remove.js +5 -5
- package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
- package/src/core/collection/table/RowFirstTable.js +0 -5
- package/src/core/color/oklab/find_gamut_intersection.js +1 -1
- package/src/core/color/parse_color.d.ts.map +1 -1
- package/src/core/color/parse_color.js +1 -5
- package/src/core/geom/2d/Rectangle.d.ts +54 -5
- package/src/core/geom/2d/Rectangle.d.ts.map +1 -1
- package/src/core/geom/2d/Rectangle.js +70 -7
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.js +0 -6
- package/src/core/geom/2d/circle/Circle.d.ts +1 -1
- package/src/core/geom/2d/circle/Circle.js +1 -1
- package/src/core/geom/2d/compute_triangle_area_2d.d.ts.map +1 -1
- package/src/core/geom/2d/compute_triangle_area_2d.js +7 -1
- package/src/core/geom/2d/shape/AbstractShape.d.ts +2 -0
- package/src/core/geom/2d/shape/AbstractShape.d.ts.map +1 -1
- package/src/core/geom/2d/shape/AbstractShape.js +8 -2
- package/src/core/geom/2d/shape/CircleShape.d.ts +14 -0
- package/src/core/geom/2d/shape/CircleShape.d.ts.map +1 -1
- package/src/core/geom/2d/shape/CircleShape.js +64 -22
- package/src/core/geom/2d/uv_map_circle_to_square.d.ts +8 -0
- package/src/core/geom/2d/uv_map_circle_to_square.d.ts.map +1 -0
- package/src/core/geom/2d/{UvUtils.js → uv_map_circle_to_square.js} +2 -17
- package/src/core/geom/2d/uv_map_circle_to_square.spec.d.ts +2 -0
- package/src/core/geom/2d/uv_map_circle_to_square.spec.d.ts.map +1 -0
- package/src/core/geom/2d/uv_map_circle_to_square.spec.js +28 -0
- package/src/core/geom/2d/uv_map_square_to_circle.d.ts +8 -0
- package/src/core/geom/2d/uv_map_square_to_circle.d.ts.map +1 -0
- package/src/core/geom/2d/uv_map_square_to_circle.js +14 -0
- package/src/core/geom/2d/uv_map_square_to_circle.spec.d.ts +2 -0
- package/src/core/geom/2d/uv_map_square_to_circle.spec.d.ts.map +1 -0
- package/src/core/geom/2d/uv_map_square_to_circle.spec.js +30 -0
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +0 -5
- package/src/core/geom/3d/morton/Morton.d.ts.map +1 -1
- package/src/core/geom/3d/morton/Morton.js +0 -3
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +11 -11
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +0 -5
- package/src/core/geom/Vector3.d.ts +13 -4
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector3.js +83 -36
- package/src/core/geom/Vector3.spec.js +113 -12
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +0 -4
- package/src/core/graph/Edge.d.ts.map +1 -1
- package/src/core/graph/Edge.js +0 -5
- package/src/core/graph/WeightedEdge.d.ts.map +1 -1
- package/src/core/json/JsonUtils.d.ts.map +1 -1
- package/src/core/json/JsonUtils.js +0 -4
- package/src/core/math/random/MersenneTwister.d.ts +1 -2
- package/src/core/math/random/MersenneTwister.d.ts.map +1 -1
- package/src/core/math/random/MersenneTwister.js +134 -133
- package/src/core/model/BooleanVector3.d.ts.map +1 -1
- package/src/core/model/BooleanVector3.js +108 -108
- package/src/core/model/BoundedValue.d.ts +116 -0
- package/src/core/model/BoundedValue.d.ts.map +1 -0
- package/src/core/model/BoundedValue.js +214 -217
- package/src/core/model/LinearValue.d.ts +84 -0
- package/src/core/model/LinearValue.d.ts.map +1 -0
- package/src/core/model/LinearValue.js +116 -117
- package/src/core/model/ObservedEnum.d.ts.map +1 -1
- package/src/core/model/ObservedEnum.js +82 -80
- package/src/core/model/ObservedValue.d.ts +10 -17
- package/src/core/model/ObservedValue.d.ts.map +1 -1
- package/src/core/model/ObservedValue.js +85 -88
- package/src/core/model/object/ObjectPoolFactory.d.ts +1 -9
- package/src/core/model/object/ObjectPoolFactory.d.ts.map +1 -1
- package/src/core/model/object/ObjectPoolFactory.js +73 -73
- package/src/core/model/scheme/Schema.d.ts +0 -6
- package/src/core/model/scheme/Schema.d.ts.map +1 -1
- package/src/core/model/scheme/Schema.js +50 -48
- package/src/core/model/scheme/SchemeRegistry.d.ts +6 -1
- package/src/core/model/scheme/SchemeRegistry.d.ts.map +1 -1
- package/src/core/model/scheme/SchemeRegistry.js +46 -44
- package/src/core/process/Future.d.ts +14 -9
- package/src/core/process/Future.d.ts.map +1 -1
- package/src/core/process/Future.js +96 -98
- package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
- package/src/core/process/executor/ConcurrentExecutor.js +0 -3
- package/src/core/process/task/Task.d.ts.map +1 -1
- package/src/core/process/task/Task.js +0 -5
- package/src/core/process/task/TaskGroup.d.ts.map +1 -1
- package/src/core/process/task/TaskGroup.js +178 -180
- package/src/core/process/task/TaskSignal.d.ts.map +1 -1
- package/src/core/process/task/TaskSignal.js +0 -5
- package/src/core/process/task/TaskState.d.ts.map +1 -1
- package/src/core/process/task/TaskState.js +0 -4
- package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
- package/src/core/process/worker/WorkerBuilder.js +0 -5
- package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
- package/src/core/process/worker/WorkerProxy.js +0 -5
- package/src/engine/Clock.d.ts.map +1 -1
- package/src/engine/Clock.js +0 -5
- package/src/engine/Engine.js +4 -4
- package/src/engine/EntityCreator.d.ts.map +1 -1
- package/src/engine/EntityCreator.js +7 -10
- package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
- package/src/engine/animation/AnimatedActions.js +0 -5
- package/src/engine/animation/Animations.d.ts.map +1 -1
- package/src/engine/animation/Animations.js +1 -6
- package/src/engine/animation/EntityAnimation.js +1 -4
- package/src/engine/animation/Tween.js +1 -4
- package/src/engine/animation/keyed2/AnimationTrack.d.ts +0 -6
- package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrack.js +154 -152
- package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +0 -10
- package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.js +173 -171
- package/src/engine/asset/AssetManager.d.ts.map +1 -1
- package/src/engine/asset/AssetManager.js +0 -5
- package/src/engine/asset/preloader/AssetLevel.js +0 -3
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +0 -4
- package/src/engine/ecs/System.d.ts.map +1 -1
- package/src/engine/ecs/System.js +0 -5
- package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
- package/src/engine/ecs/animation/Animation.js +1 -19
- package/src/engine/ecs/components/Motion.d.ts.map +1 -1
- package/src/engine/ecs/components/Motion.js +0 -5
- package/src/engine/ecs/components/PropertySet.d.ts +8 -1
- package/src/engine/ecs/components/PropertySet.d.ts.map +1 -1
- package/src/engine/ecs/components/PropertySet.js +87 -83
- package/src/engine/ecs/components/Script.d.ts +0 -16
- package/src/engine/ecs/components/Script.d.ts.map +1 -1
- package/src/engine/ecs/components/Script.js +14 -18
- package/src/engine/ecs/components/Tag.d.ts.map +1 -1
- package/src/engine/ecs/components/Tag.js +4 -5
- package/src/engine/ecs/components/Timer.d.ts +0 -5
- package/src/engine/ecs/components/Timer.d.ts.map +1 -1
- package/src/engine/ecs/components/Timer.js +0 -5
- package/src/engine/ecs/grid/HeightMap2NormalMap.d.ts.map +1 -1
- package/src/engine/ecs/grid/HeightMap2NormalMap.js +2 -6
- package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.d.ts.map +1 -1
- package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.js +0 -3
- package/src/engine/ecs/grid/NormalMap2AOMap.d.ts.map +1 -1
- package/src/engine/ecs/grid/NormalMap2AOMap.js +3 -8
- package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElement.js +0 -3
- package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElementSystem.js +0 -4
- package/src/engine/ecs/gui/hud/HeadsUpDisplay.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +0 -7
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +0 -5
- package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts.map +1 -1
- package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -8
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPosition.js +0 -4
- package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts +1 -2
- package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPositionSystem.js +6 -10
- package/src/engine/ecs/ik/IKProblem.d.ts +1 -2
- package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
- package/src/engine/ecs/renderable/RenderSystem.d.ts.map +1 -1
- package/src/engine/ecs/renderable/RenderSystem.js +0 -3
- package/src/engine/ecs/renderable/Renderable.d.ts.map +1 -1
- package/src/engine/ecs/renderable/Renderable.js +0 -5
- package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/AnimationSystem.js +9 -17
- package/src/engine/ecs/systems/MotionSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/MotionSystem.js +1 -6
- package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/ScriptSystem.js +1 -6
- package/src/engine/ecs/systems/TimerSystem.d.ts.map +1 -1
- package/src/engine/ecs/systems/TimerSystem.js +1 -6
- package/src/engine/ecs/team/Team.d.ts.map +1 -1
- package/src/engine/ecs/team/Team.js +0 -3
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts.map +1 -1
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +0 -5
- package/src/engine/ecs/terrain/TerrainClouds.d.ts.map +1 -1
- package/src/engine/ecs/terrain/TerrainClouds.js +0 -5
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +0 -5
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +0 -3
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +11 -14
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +0 -5
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +0 -5
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +0 -3
- package/src/engine/ecs/terrain/tiles/TileBuildWorker.js +0 -4
- package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform.js +0 -4
- package/src/engine/google/gapi.js +0 -4
- package/src/engine/graphics/FrameThrottle.d.ts +0 -4
- package/src/engine/graphics/FrameThrottle.d.ts.map +1 -1
- package/src/engine/graphics/FrameThrottle.js +0 -5
- package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics/GraphicsEngine.js +1 -6
- package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
- package/src/engine/graphics/composit/LayerCompositer.js +2 -5
- package/src/engine/graphics/ecs/animation/AnimationController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/AnimationController.js +0 -5
- package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +2 -7
- package/src/engine/graphics/ecs/animation/AnimationRule.d.ts +0 -1
- package/src/engine/graphics/ecs/animation/AnimationRule.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/AnimationRule.js +70 -66
- package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/Camera.js +0 -5
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/CameraSystem.js +0 -5
- package/src/engine/graphics/ecs/camera/FrustumProjector.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/FrustumProjector.js +0 -5
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -9
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +3 -8
- package/src/engine/graphics/ecs/highlight/Highlight.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/Highlight.js +0 -3
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +3 -8
- package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/Light.js +2 -6
- package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightSystem.js +0 -5
- package/src/engine/graphics/ecs/mesh/Mesh.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh/Mesh.js +0 -3
- package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh/MeshSystem.js +0 -5
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2D.js +0 -5
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +0 -5
- package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/Water.js +0 -5
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.js +0 -3
- package/src/engine/graphics/filter/ImageFilter.d.ts.map +1 -1
- package/src/engine/graphics/filter/ImageFilter.js +0 -5
- package/src/engine/graphics/geometry/BufferGeometryWrap.js +1 -3
- package/src/engine/graphics/geometry/buffered/ComputeNormals.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/ComputeNormals.js +0 -5
- package/src/engine/graphics/geometry/ribbon/Ribbon.d.ts.map +1 -1
- package/src/engine/graphics/geometry/ribbon/Ribbon.js +1 -4
- package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
- package/src/engine/graphics/material/SplatMaterial.js +0 -3
- package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
- package/src/engine/graphics/material/WaterMaterial.js +0 -3
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts +0 -5
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +114 -114
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +347 -348
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +1 -3
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +110 -111
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.js +70 -66
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -5
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +82 -82
- package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -7
- package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/Operation.js +16 -14
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -9
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +23 -21
- package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts +2 -10
- package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleGroup.js +463 -464
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -2
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +39 -33
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +6 -1
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/FrameBufferManager.js +166 -163
- package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
- package/src/engine/graphics/render/layers/RenderLayer.js +0 -5
- package/src/engine/graphics/shaders/AlphaBlendShader.js +1 -3
- package/src/engine/graphics/shaders/AmbientOcclusionShader.d.ts.map +1 -1
- package/src/engine/graphics/shaders/AmbientOcclusionShader.js +0 -3
- package/src/engine/graphics/shaders/ClearShader.js +1 -3
- package/src/engine/graphics/shaders/CopyShader.d.ts +0 -3
- package/src/engine/graphics/shaders/CopyShader.d.ts.map +1 -1
- package/src/engine/graphics/shaders/CopyShader.js +1 -3
- package/src/engine/graphics/shaders/NormalMapShader2.d.ts.map +1 -1
- package/src/engine/graphics/shaders/NormalMapShader2.js +0 -5
- package/src/engine/graphics/shaders/TerrainShader.js +0 -4
- package/src/engine/graphics/shaders/WaterShader.js +0 -3
- package/src/engine/graphics/shaders/lib/ShaderChunks.js +1 -3
- package/src/engine/graphics/texture/Canvas2Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/Canvas2Sampler2D.js +1 -4
- package/src/engine/graphics/texture/CheckersTexture.d.ts.map +1 -1
- package/src/engine/graphics/texture/CheckersTexture.js +0 -3
- package/src/engine/graphics/texture/CheckersTextureURI.js +1 -3
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +0 -5
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +0 -5
- package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D2Texture.js +0 -3
- package/src/engine/graphics/three/ThreeFactory.d.ts.map +1 -1
- package/src/engine/graphics/three/ThreeFactory.js +0 -5
- package/src/engine/grid/grid2transform/GridPosition2Transform.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2Transform.js +0 -4
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +4 -7
- package/src/engine/grid/obstacle/GridObstacle.d.ts.map +1 -1
- package/src/engine/grid/obstacle/GridObstacle.js +0 -5
- package/src/engine/grid/position/GridPosition.d.ts.map +1 -1
- package/src/engine/grid/position/GridPosition.js +0 -4
- package/src/engine/grid/position/GridPositionSystem.d.ts.map +1 -1
- package/src/engine/grid/position/GridPositionSystem.js +1 -4
- package/src/engine/input/devices/KeyCodes.d.ts.map +1 -1
- package/src/engine/input/devices/KeyCodes.js +3 -4
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +0 -4
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.js +0 -3
- package/src/engine/input/ecs/components/InputController.d.ts.map +1 -1
- package/src/engine/input/ecs/components/InputController.js +1 -5
- package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +5 -10
- package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
- package/src/engine/input/ecs/systems/InputControllerSystem.js +78 -78
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -6
- package/src/engine/intelligence/mcts/MonteCarlo.spec.js +78 -76
- package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
- package/src/engine/navigation/ecs/components/Path.js +0 -5
- package/src/engine/navigation/ecs/path_following/PathFollower.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -6
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +5 -12
- package/src/engine/network/DataChannel.js +284 -284
- package/src/engine/network/xhr.d.ts +0 -3
- package/src/engine/network/xhr.d.ts.map +1 -1
- package/src/engine/network/xhr.js +0 -3
- package/src/engine/notify/Notification.d.ts +1 -1
- package/src/engine/notify/Notification.d.ts.map +1 -1
- package/src/engine/notify/Notification.js +1 -6
- package/src/engine/notify/NotificationLog.d.ts.map +1 -1
- package/src/engine/notify/NotificationLog.js +0 -5
- package/src/engine/options/OptionsView.d.ts.map +1 -1
- package/src/engine/options/OptionsView.js +1 -6
- package/src/engine/physics/ammo/Body.js +0 -3
- package/src/engine/physics/ammo/PhysicsWorker.d.ts.map +1 -1
- package/src/engine/physics/ammo/PhysicsWorker.js +1 -3
- package/src/engine/physics/ammo/World.d.ts +68 -0
- package/src/engine/physics/ammo/World.d.ts.map +1 -0
- package/src/engine/physics/ammo/World.js +277 -278
- package/src/engine/physics/ammo/shapes/BoxShape.js +0 -3
- package/src/engine/physics/ammo/shapes/CapsuleShape.js +0 -3
- package/src/engine/physics/ammo/shapes/MeshShape.js +0 -3
- package/src/engine/physics/ammo/shapes/PlaneShape.js +0 -3
- package/src/engine/physics/ammo/shapes/Shape.js +1 -3
- package/src/engine/physics/ammo/shapes/SphereShape.js +0 -3
- package/src/engine/physics/cannon/CannonJSPhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/cannon/CannonJSPhysicsSystem.js +3 -6
- package/src/engine/save/GameStateLoader.d.ts.map +1 -1
- package/src/engine/save/GameStateLoader.js +1 -5
- package/src/engine/save/Storage.d.ts.map +1 -1
- package/src/engine/save/Storage.js +0 -7
- package/src/engine/scene/Scene.d.ts.map +1 -1
- package/src/engine/scene/Scene.js +2 -7
- package/src/engine/scene/SceneManager.d.ts.map +1 -1
- package/src/engine/scene/SceneManager.js +1 -4
- package/src/engine/simulation/DormandPrince.d.ts +0 -1
- package/src/engine/simulation/DormandPrince.d.ts.map +1 -1
- package/src/engine/simulation/DormandPrince.js +5 -5
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +0 -3
- package/src/engine/sound/ecs/SoundController.d.ts +0 -7
- package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundController.js +118 -119
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundControllerSystem.js +3 -8
- package/src/engine/sound/ecs/SoundListener.d.ts +0 -1
- package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListener.js +26 -29
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListenerSystem.js +0 -5
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.js +0 -5
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -7
- package/src/engine/ui/GUIEngine.d.ts.map +1 -1
- package/src/engine/ui/GUIEngine.js +0 -5
- package/src/engine/ui/tiles2d/TileGrid.d.ts.map +1 -1
- package/src/engine/ui/tiles2d/TileGrid.js +1 -4
- package/src/generation/markers/debug/visualizeMarkers.js +10 -10
- package/src/view/DOM.js +1 -3
- package/src/view/SVG.d.ts +0 -3
- package/src/view/SVG.d.ts.map +1 -1
- package/src/view/SVG.js +0 -4
- package/src/view/asset/PreloaderView.d.ts.map +1 -1
- package/src/view/asset/PreloaderView.js +0 -3
- package/src/view/common/LabelView.d.ts +1 -6
- package/src/view/common/LabelView.d.ts.map +1 -1
- package/src/view/common/LabelView.js +24 -33
- package/src/view/common/ListView.d.ts.map +1 -1
- package/src/view/common/ListView.js +0 -6
- package/src/view/common/MeshView.js +3 -6
- package/src/view/common/VirtualListView.d.ts.map +1 -1
- package/src/view/common/VirtualListView.js +0 -5
- package/src/view/common/dnd/DragAndDropContext.d.ts +1 -2
- package/src/view/common/dnd/DragAndDropContext.d.ts.map +1 -1
- package/src/view/common/dnd/DragAndDropContext.js +107 -110
- package/src/view/controller/GuiController.d.ts.map +1 -1
- package/src/view/controller/GuiController.js +1 -6
- package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -1
- package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
- package/src/view/controller/controls/GuiControl.js +2 -7
- package/src/view/controller/controls/Vector1Control.d.ts +1 -1
- package/src/view/controller/controls/Vector1Control.d.ts.map +1 -1
- package/src/view/controller/controls/Vector1Control.js +2 -7
- package/src/view/controller/controls/Vector2Control.d.ts.map +1 -1
- package/src/view/controller/controls/Vector2Control.js +0 -4
- package/src/view/controller/controls/Vector3Control.d.ts.map +1 -1
- package/src/view/controller/controls/Vector3Control.js +0 -3
- package/src/view/elements/ConfirmationDialogView.d.ts.map +1 -1
- package/src/view/elements/ConfirmationDialogView.js +1 -6
- package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
- package/src/view/elements/DropDownSelectionView.js +0 -5
- package/src/view/elements/EmptyView.d.ts.map +1 -1
- package/src/view/elements/EmptyView.js +0 -4
- package/src/view/elements/Group.d.ts.map +1 -1
- package/src/view/elements/Group.js +0 -3
- package/src/view/elements/MeshPreview.d.ts.map +1 -1
- package/src/view/elements/MeshPreview.js +5 -8
- package/src/view/elements/SimpleWindow.d.ts +1 -1
- package/src/view/elements/SimpleWindow.d.ts.map +1 -1
- package/src/view/elements/SimpleWindow.js +5 -11
- package/src/view/elements/button/ButtonView.d.ts.map +1 -1
- package/src/view/elements/button/ButtonView.js +1 -5
- package/src/view/elements/image/ImageView.d.ts.map +1 -1
- package/src/view/elements/image/ImageView.js +0 -4
- package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
- package/src/view/elements/image/SvgImageView.js +2 -7
- package/src/view/elements/label/LabeledValueView.d.ts.map +1 -1
- package/src/view/elements/label/LabeledValueView.js +3 -8
- package/src/view/elements/navigation/ViewStack.d.ts +0 -7
- package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
- package/src/view/elements/navigation/ViewStack.js +17 -19
- package/src/view/elements/notify/NotificationView.js +1 -4
- package/src/view/elements/notify/ToastLogView.d.ts.map +1 -1
- package/src/view/elements/notify/ToastLogView.js +0 -3
- package/src/view/elements/progress/SmoothProgressBar.d.ts +72 -0
- package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -0
- package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
- package/src/view/elements/radial/RadialMenu.js +1 -6
- package/src/view/elements/radial/RadialMenuElement.d.ts.map +1 -1
- package/src/view/elements/radial/RadialMenuElement.js +1 -4
- package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
- package/src/view/elements/radial/RadialProgressView.d.ts.map +1 -1
- package/src/view/elements/radial/RadialProgressView.js +4 -9
- package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
- package/src/view/elements/tiles2d/Tile.js +3 -6
- package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
- package/src/view/elements/tiles2d/TileGrid.js +0 -5
- package/src/view/minimap/Minimap.d.ts.map +1 -1
- package/src/view/minimap/Minimap.js +11 -16
- package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -2
- package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapTerrainView.d.ts +1 -1
- package/src/view/minimap/dom/MinimapTerrainView.d.ts.map +1 -1
- package/src/view/minimap/gl/MarkerGL.d.ts +2 -12
- package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
- package/src/view/minimap/gl/MarkerGL.js +60 -56
- package/src/view/minimap/gl/MinimapMarkersGL.d.ts +1 -1
- package/src/view/minimap/gl/MinimapMarkersGL.d.ts.map +1 -1
- package/src/view/minimap/gl/MinimapTerrainGL.d.ts +1 -2
- package/src/view/minimap/gl/MinimapTerrainGL.d.ts.map +1 -1
- package/src/view/renderModel.d.ts.map +1 -1
- package/src/view/renderModel.js +3 -7
- package/src/view/task/TaskProgressView.d.ts.map +1 -1
- package/src/view/task/TaskProgressView.js +0 -5
- package/src/core/collection/set/Set.d.ts.map +0 -1
- package/src/core/geom/2d/Geometry2D.d.ts +0 -31
- package/src/core/geom/2d/Geometry2D.d.ts.map +0 -1
- package/src/core/geom/2d/Geometry2D.js +0 -59
- package/src/core/geom/2d/UvUtils.d.ts +0 -15
- package/src/core/geom/2d/UvUtils.d.ts.map +0 -1
- package/src/core/geom/2d/UvUtils.spec.d.ts +0 -2
- package/src/core/geom/2d/UvUtils.spec.d.ts.map +0 -1
- package/src/core/geom/2d/UvUtils.spec.js +0 -55
- package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts +0 -9
- package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts.map +0 -1
- package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.js +0 -105
- package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts +0 -117
- package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts.map +0 -1
- package/src/engine/graphics/geometry/decimation/SimplifyModifier.js +0 -971
- package/src/engine/graphics/loader/threejs/GLTFLoader.js +0 -3179
- package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts +0 -6
- package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts.map +0 -1
- package/src/engine/graphics/loader/threejs/LegacyJSONLoader.js +0 -845
- package/src/engine/graphics/postprocess/Postprocess.js +0 -284
- package/src/engine/graphics/postprocess/threejs/Mirror.js +0 -330
- package/src/engine/graphics/postprocess/threejs/WaterShader.js +0 -306
- package/src/engine/graphics/postprocess/threejs/postprocessing/AdaptiveToneMappingPass.js +0 -338
- package/src/engine/graphics/postprocess/threejs/postprocessing/BloomPass.js +0 -132
- package/src/engine/graphics/postprocess/threejs/postprocessing/BokehPass.js +0 -115
- package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts +0 -4
- package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.js +0 -23
- package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.js +0 -60
- package/src/engine/graphics/postprocess/threejs/postprocessing/EffectComposer.js +0 -150
- package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.js +0 -61
- package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.js +0 -117
- package/src/engine/graphics/postprocess/threejs/postprocessing/RenderPass.js +0 -63
- package/src/engine/graphics/postprocess/threejs/postprocessing/SMAAPass.js +0 -187
- package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js +0 -67
- package/src/engine/graphics/postprocess/threejs/postprocessing/TexturePass.js +0 -50
- package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts +0 -42
- package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.js +0 -117
- package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts +0 -30
- package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.js +0 -106
- package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts +0 -19
- package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.js +0 -90
- package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts +0 -12
- package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.js +0 -52
- package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts +0 -12
- package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.js +0 -51
- package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts +0 -76
- package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.js +0 -468
- package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts +0 -61
- package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.js +0 -230
- package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts +0 -36
- package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts.map +0 -1
- package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.js +0 -76
- package/src/engine/graphics/shaders/GaussianBlurShader.d.ts +0 -22
- package/src/engine/graphics/shaders/GaussianBlurShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/GaussianBlurShader.js +0 -79
- package/src/engine/graphics/shaders/GaussianGlowShader.d.ts +0 -26
- package/src/engine/graphics/shaders/GaussianGlowShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/GaussianGlowShader.js +0 -83
- package/src/engine/graphics/shaders/NormalMapShader.d.ts +0 -33
- package/src/engine/graphics/shaders/NormalMapShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/NormalMapShader.js +0 -62
- package/src/engine/graphics/shaders/SoftOutlineShader.d.ts +0 -3
- package/src/engine/graphics/shaders/SoftOutlineShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/SoftOutlineShader.js +0 -111
- package/src/engine/graphics/three/Reflector.d.ts +0 -12
- package/src/engine/graphics/three/Reflector.d.ts.map +0 -1
- package/src/engine/graphics/three/Reflector.js +0 -281
- package/src/engine/graphics/three/Refractor.d.ts +0 -11
- package/src/engine/graphics/three/Refractor.d.ts.map +0 -1
- package/src/engine/graphics/three/Refractor.js +0 -352
- package/src/engine/navigation/ecs/components/PathFinder.d.ts +0 -14
- package/src/engine/navigation/ecs/components/PathFinder.d.ts.map +0 -1
- package/src/engine/navigation/ecs/components/PathFinder.js +0 -11
- package/src/view/elements/navigation/NavigationMenu.d.ts +0 -13
- package/src/view/elements/navigation/NavigationMenu.d.ts.map +0 -1
- package/src/view/elements/navigation/NavigationMenu.js +0 -27
- /package/src/core/collection/set/{Set.d.ts → ArraySet.d.ts} +0 -0
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Created by Alex on 11/09/2015.
|
|
3
|
-
*/
|
|
4
|
-
import Vector2 from "../../../core/geom/Vector2.js";
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
FloatType,
|
|
8
|
-
LinearFilter,
|
|
9
|
-
MeshDepthMaterial,
|
|
10
|
-
NearestFilter,
|
|
11
|
-
NoBlending,
|
|
12
|
-
RGBADepthPacking,
|
|
13
|
-
RGBAFormat,
|
|
14
|
-
WebGLRenderTarget
|
|
15
|
-
} from 'three';
|
|
16
|
-
import EffectComposer from "./threejs/postprocessing/EffectComposer.js";
|
|
17
|
-
import RenderPass from "./threejs/postprocessing/RenderPass.js";
|
|
18
|
-
import ShaderPass from "./threejs/postprocessing/ShaderPass.js";
|
|
19
|
-
import AdaptiveToneMappingPass from "./threejs/postprocessing/AdaptiveToneMappingPass.js";
|
|
20
|
-
import BloomPass from "./threejs/postprocessing/BloomPass.js";
|
|
21
|
-
import BokehPass from "./threejs/postprocessing/BokehPass.js";
|
|
22
|
-
import SMAAPass from "./threejs/postprocessing/SMAAPass.js";
|
|
23
|
-
import CopyShader from "./threejs/shaders/CopyShader.js";
|
|
24
|
-
import SSAOShader from "./threejs/shaders/SSAOShader.js";
|
|
25
|
-
import FXAAShader from "./threejs/shaders/FXAAShader.js";
|
|
26
|
-
|
|
27
|
-
const PostProcess = function (scene, camera, renderer) {
|
|
28
|
-
this.scene = scene;
|
|
29
|
-
this.camera = camera;
|
|
30
|
-
this.graphics = renderer;
|
|
31
|
-
|
|
32
|
-
this.size = new Vector2(800, 600);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
function makeUniformAccessor(uniforms) {
|
|
36
|
-
const t = {};
|
|
37
|
-
|
|
38
|
-
function bindUniform(propName) {
|
|
39
|
-
Object.defineProperty(t, propName, {
|
|
40
|
-
get: function () {
|
|
41
|
-
return uniforms[propName].value;
|
|
42
|
-
},
|
|
43
|
-
set: function (val) {
|
|
44
|
-
return uniforms[propName].value = val;
|
|
45
|
-
}
|
|
46
|
-
})
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
for (let p in uniforms) {
|
|
50
|
-
if (uniforms.hasOwnProperty(p)) {
|
|
51
|
-
bindUniform(p);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return t;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
PostProcess.prototype.initializeGUI = function (gui) {
|
|
58
|
-
const fPostProcess = gui.addFolder("Post-processing");
|
|
59
|
-
fPostProcess.open();
|
|
60
|
-
if (this.effectSSAO !== undefined) {
|
|
61
|
-
const aSSAO = makeUniformAccessor(this.effectSSAO.uniforms);
|
|
62
|
-
const ssao = fPostProcess.addFolder("SSAO");
|
|
63
|
-
ssao.add(this.effectSSAO, "enabled");
|
|
64
|
-
|
|
65
|
-
ssao.add(aSSAO, "onlyAO");
|
|
66
|
-
ssao.add(aSSAO, "strength", 0, 1, 0.05);
|
|
67
|
-
ssao.add(aSSAO, "lumInfluence", 0, 1, 0.05);
|
|
68
|
-
ssao.add(aSSAO, "aoClamp", 0, 1, 0.05);
|
|
69
|
-
|
|
70
|
-
ssao.open();
|
|
71
|
-
}
|
|
72
|
-
if (this.effectFXAA !== undefined) {
|
|
73
|
-
const fxaa = fPostProcess.addFolder("FXAA");
|
|
74
|
-
fxaa.add(this.effectFXAA, "enabled");
|
|
75
|
-
fxaa.open();
|
|
76
|
-
}
|
|
77
|
-
if (this.effectSMAA !== undefined) {
|
|
78
|
-
const smaa = fPostProcess.addFolder("SMAA");
|
|
79
|
-
smaa.add(this.effectSMAA, "enabled");
|
|
80
|
-
smaa.open();
|
|
81
|
-
}
|
|
82
|
-
if (this.effectBloom !== undefined) {
|
|
83
|
-
const bloom = fPostProcess.addFolder("Bloom");
|
|
84
|
-
bloom.add(this.effectBloom, "enabled");
|
|
85
|
-
bloom.open();
|
|
86
|
-
}
|
|
87
|
-
if (this.effectToneMap !== undefined) {
|
|
88
|
-
const toneMap = fPostProcess.addFolder("Tone Mapping");
|
|
89
|
-
toneMap.add(this.effectToneMap, "enabled");
|
|
90
|
-
|
|
91
|
-
const aMTM = makeUniformAccessor(this.effectToneMap.materialToneMap.uniforms);
|
|
92
|
-
toneMap.add(aMTM, "maxLuminance", 0, 30, 0.05);
|
|
93
|
-
toneMap.add(aMTM, "middleGrey", 0, 30, 0.05);
|
|
94
|
-
toneMap.add(aMTM, "averageLuminance", 0, 30, 0.05);
|
|
95
|
-
|
|
96
|
-
const aATM = makeUniformAccessor(this.effectToneMap.materialAdaptiveLum.uniforms);
|
|
97
|
-
toneMap.add(aATM, "tau", 0, 10, 0.1).name('Adaption time');
|
|
98
|
-
|
|
99
|
-
toneMap.open();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
PostProcess.prototype.getFinalRenderTarget = function () {
|
|
104
|
-
const composer = this.composer;
|
|
105
|
-
const passes = composer.passes;
|
|
106
|
-
|
|
107
|
-
let firstRT = true;
|
|
108
|
-
for (let i = passes.length - 1; i > 0; i--) {
|
|
109
|
-
//render to screen last pass only
|
|
110
|
-
const pass = passes[i];
|
|
111
|
-
if (pass.enabled && pass.needsSwap) {
|
|
112
|
-
firstRT = !firstRT;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (firstRT) {
|
|
117
|
-
return composer.renderTarget1;
|
|
118
|
-
} else {
|
|
119
|
-
return composer.renderTarget2;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
PostProcess.prototype.init = function (layer) {
|
|
124
|
-
const self = this;
|
|
125
|
-
|
|
126
|
-
const scene = this.scene;
|
|
127
|
-
const camera = this.camera;
|
|
128
|
-
const renderer = this.graphics;
|
|
129
|
-
|
|
130
|
-
const gl = renderer.getContext();
|
|
131
|
-
const parameters = {
|
|
132
|
-
minFilter: LinearFilter,
|
|
133
|
-
magFilter: LinearFilter,
|
|
134
|
-
format: RGBAFormat,
|
|
135
|
-
stencilBuffer: false
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (gl.getExtension('OES_texture_half_float_linear') !== null) {
|
|
140
|
-
parameters.type = FloatType;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
let renderTarget;
|
|
144
|
-
if (layer === undefined) {
|
|
145
|
-
renderTarget = new WebGLRenderTarget(this.size.x, this.size.y, parameters);
|
|
146
|
-
} else {
|
|
147
|
-
renderTarget = layer.renderTarget;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
const composer = this.composer = new EffectComposer(renderer, renderTarget);
|
|
151
|
-
|
|
152
|
-
const renderPass = new RenderPass(scene, camera, null, false);
|
|
153
|
-
renderPass.clear = true;
|
|
154
|
-
//SSAO
|
|
155
|
-
const effectSSAO = this.effectSSAO = new ShaderPass(SSAOShader);
|
|
156
|
-
|
|
157
|
-
const width = this.size.x;
|
|
158
|
-
const height = this.size.y;
|
|
159
|
-
|
|
160
|
-
// Setup depth pass
|
|
161
|
-
const depthMaterial = this.depthMaterial = new MeshDepthMaterial();
|
|
162
|
-
depthMaterial.depthPacking = RGBADepthPacking;
|
|
163
|
-
depthMaterial.blending = NoBlending;
|
|
164
|
-
depthMaterial.skinning = false;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const depthTarget = this.depthTarget = new WebGLRenderTarget(width, height, {
|
|
168
|
-
minFilter: NearestFilter,
|
|
169
|
-
magFilter: NearestFilter,
|
|
170
|
-
format: RGBAFormat
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
effectSSAO.uniforms['tDepth'].value = depthTarget;
|
|
174
|
-
effectSSAO.uniforms['size'].value.set(width, height);
|
|
175
|
-
effectSSAO.uniforms['cameraNear'].value = camera.near;
|
|
176
|
-
effectSSAO.uniforms['cameraFar'].value = camera.far;
|
|
177
|
-
effectSSAO.uniforms['onlyAO'].value = false;
|
|
178
|
-
effectSSAO.uniforms['strength'].value = 0.5;
|
|
179
|
-
effectSSAO.uniforms['lumInfluence'].value = 0.5;
|
|
180
|
-
// effectSSAO.uniforms[ 'fogNear' ].value = scene.fog.near;
|
|
181
|
-
// effectSSAO.uniforms[ 'fogFar' ].value = scene.fog.far;
|
|
182
|
-
// effectSSAO.uniforms['fogEnabled'].value = 0;
|
|
183
|
-
effectSSAO.uniforms['aoClamp'].value = 0.5;
|
|
184
|
-
// effectSSAO.renderToScreen = true;
|
|
185
|
-
effectSSAO.material.defines = { "FLOAT_DEPTH": true };
|
|
186
|
-
//FXAA
|
|
187
|
-
const effectFXAA = this.effectFXAA = new ShaderPass(FXAAShader);
|
|
188
|
-
effectFXAA.enabled = false;
|
|
189
|
-
effectFXAA.uniforms['resolution'].value.set(1 / (width), 1 / (height));
|
|
190
|
-
|
|
191
|
-
const effectSMAA = this.effectSMAA = new SMAAPass(width, height);
|
|
192
|
-
effectSMAA.needsSwap = true;
|
|
193
|
-
|
|
194
|
-
//BOKEH
|
|
195
|
-
let bokehPass = new BokehPass(scene, camera, {
|
|
196
|
-
focus: 1.0,
|
|
197
|
-
aperture: 0.025,
|
|
198
|
-
maxblur: 1.0,
|
|
199
|
-
|
|
200
|
-
width: width,
|
|
201
|
-
height: height
|
|
202
|
-
});
|
|
203
|
-
//BLOOM
|
|
204
|
-
const effectBloom = this.effectBloom = new BloomPass();
|
|
205
|
-
effectBloom.enabled = false;
|
|
206
|
-
|
|
207
|
-
//dynamic tone mapping
|
|
208
|
-
const adaptToneMappingPass = this.effectToneMap = new AdaptiveToneMappingPass(true, 256);
|
|
209
|
-
adaptToneMappingPass.enabled = true;
|
|
210
|
-
adaptToneMappingPass.setMaxLuminance(16);
|
|
211
|
-
adaptToneMappingPass.setMiddleGrey(7);
|
|
212
|
-
adaptToneMappingPass.needsSwap = true;
|
|
213
|
-
|
|
214
|
-
//Gamma correction
|
|
215
|
-
const outputCorrectionPass = new ShaderPass(CopyShader);
|
|
216
|
-
outputCorrectionPass.renderToScreen = true;
|
|
217
|
-
|
|
218
|
-
//build up passes
|
|
219
|
-
composer.addPass(renderPass);
|
|
220
|
-
// composer.addPass(effectFXAA);
|
|
221
|
-
composer.addPass(effectSMAA);
|
|
222
|
-
composer.addPass(effectSSAO);
|
|
223
|
-
//composer.addPass(bokehPass);
|
|
224
|
-
composer.addPass(adaptToneMappingPass);
|
|
225
|
-
composer.addPass(effectBloom);
|
|
226
|
-
composer.addPass(outputCorrectionPass);
|
|
227
|
-
|
|
228
|
-
function update() {
|
|
229
|
-
let renderToScreenFlagged = false;
|
|
230
|
-
const passes = composer.passes;
|
|
231
|
-
for (let i = passes.length - 1; i > 0; i--) {
|
|
232
|
-
//render to screen last pass only
|
|
233
|
-
const pass = passes[i];
|
|
234
|
-
if (pass.enabled && !renderToScreenFlagged) {
|
|
235
|
-
// pass.renderToScreen = true;
|
|
236
|
-
renderToScreenFlagged = true;
|
|
237
|
-
pass.renderToScreen = false;
|
|
238
|
-
} else {
|
|
239
|
-
pass.renderToScreen = false;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
//specify if composer should be used at all
|
|
243
|
-
if (layer !== undefined) {
|
|
244
|
-
layer.renderTarget = self.getFinalRenderTarget();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
update();
|
|
249
|
-
};
|
|
250
|
-
PostProcess.prototype.setViewPortSize = function (width, height) {
|
|
251
|
-
try {
|
|
252
|
-
this.size.set(width, height);
|
|
253
|
-
this.composer.setSize(width, height);
|
|
254
|
-
//effects
|
|
255
|
-
|
|
256
|
-
this.depthTarget = new WebGLRenderTarget(width, height, {
|
|
257
|
-
minFilter: NearestFilter,
|
|
258
|
-
magFilter: NearestFilter,
|
|
259
|
-
format: RGBAFormat
|
|
260
|
-
});
|
|
261
|
-
//
|
|
262
|
-
this.effectFXAA.uniforms['resolution'].value.set(1 / width, 1 / height);
|
|
263
|
-
|
|
264
|
-
this.effectSMAA.setSize(width, height);
|
|
265
|
-
|
|
266
|
-
this.effectSSAO.uniforms['size'].value.set(width, height);
|
|
267
|
-
//
|
|
268
|
-
this.effectSSAO.uniforms['tDepth'].value = this.depthTarget;
|
|
269
|
-
} catch (e) {
|
|
270
|
-
console.error(e);
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
PostProcess.prototype.render = function (renderer, camera, scene, delta) {
|
|
274
|
-
renderer.gammaInput = true;
|
|
275
|
-
renderer.gammaOutput = false;
|
|
276
|
-
renderer.autoClear = false;
|
|
277
|
-
scene.overrideMaterial = this.depthMaterial;
|
|
278
|
-
renderer.render(scene, this.camera, this.depthTarget, true);
|
|
279
|
-
|
|
280
|
-
//effects render
|
|
281
|
-
scene.overrideMaterial = null;
|
|
282
|
-
this.composer.render(delta);
|
|
283
|
-
};
|
|
284
|
-
export default PostProcess;
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author Slayvin / http://slayvin.net
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
ArrowHelper,
|
|
6
|
-
Color,
|
|
7
|
-
Geometry,
|
|
8
|
-
Line,
|
|
9
|
-
LinearFilter,
|
|
10
|
-
LineBasicMaterial,
|
|
11
|
-
Math as ThreeMath,
|
|
12
|
-
Matrix4,
|
|
13
|
-
Object3D,
|
|
14
|
-
PerspectiveCamera,
|
|
15
|
-
Plane,
|
|
16
|
-
RGBFormat,
|
|
17
|
-
Scene,
|
|
18
|
-
ShaderMaterial,
|
|
19
|
-
UniformsUtils,
|
|
20
|
-
Vector3,
|
|
21
|
-
Vector4,
|
|
22
|
-
WebGLRenderTarget
|
|
23
|
-
} from 'three';
|
|
24
|
-
|
|
25
|
-
const Shader = {
|
|
26
|
-
|
|
27
|
-
uniforms: {
|
|
28
|
-
"mirrorColor": { value: new Color(0x7F7F7F) },
|
|
29
|
-
"mirrorSampler": { value: null },
|
|
30
|
-
"textureMatrix": { value: new Matrix4() }
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
vertexShader: [
|
|
34
|
-
|
|
35
|
-
"uniform mat4 textureMatrix;",
|
|
36
|
-
|
|
37
|
-
"varying vec4 mirrorCoord;",
|
|
38
|
-
|
|
39
|
-
"void main() {",
|
|
40
|
-
|
|
41
|
-
"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
|
|
42
|
-
"vec4 worldPosition = modelMatrix * vec4( position, 1.0 );",
|
|
43
|
-
"mirrorCoord = textureMatrix * worldPosition;",
|
|
44
|
-
|
|
45
|
-
"gl_Position = projectionMatrix * mvPosition;",
|
|
46
|
-
|
|
47
|
-
"}"
|
|
48
|
-
|
|
49
|
-
].join("\n"),
|
|
50
|
-
|
|
51
|
-
fragmentShader: [
|
|
52
|
-
|
|
53
|
-
"uniform vec3 mirrorColor;",
|
|
54
|
-
"uniform sampler2D mirrorSampler;",
|
|
55
|
-
|
|
56
|
-
"varying vec4 mirrorCoord;",
|
|
57
|
-
|
|
58
|
-
"float blendOverlay(float base, float blend) {",
|
|
59
|
-
"return( base < 0.5 ? ( 2.0 * base * blend ) : (1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );",
|
|
60
|
-
"}",
|
|
61
|
-
|
|
62
|
-
"void main() {",
|
|
63
|
-
|
|
64
|
-
"vec4 color = texture2DProj(mirrorSampler, mirrorCoord);",
|
|
65
|
-
"color = vec4(blendOverlay(mirrorColor.r, color.r), blendOverlay(mirrorColor.g, color.g), blendOverlay(mirrorColor.b, color.b), 1.0);",
|
|
66
|
-
|
|
67
|
-
"gl_FragColor = color;",
|
|
68
|
-
|
|
69
|
-
"}"
|
|
70
|
-
|
|
71
|
-
].join("\n")
|
|
72
|
-
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const Mirror = function (renderer, camera, options) {
|
|
76
|
-
|
|
77
|
-
Object3D.call(this);
|
|
78
|
-
|
|
79
|
-
this.name = 'mirror_' + this.id;
|
|
80
|
-
|
|
81
|
-
options = options || {};
|
|
82
|
-
|
|
83
|
-
this.matrixNeedsUpdate = true;
|
|
84
|
-
|
|
85
|
-
const width = options.textureWidth !== undefined ? options.textureWidth : 512;
|
|
86
|
-
const height = options.textureHeight !== undefined ? options.textureHeight : 512;
|
|
87
|
-
|
|
88
|
-
this.clipBias = options.clipBias !== undefined ? options.clipBias : 0.0;
|
|
89
|
-
|
|
90
|
-
const mirrorColor = options.color !== undefined ? new Color(options.color) : new Color(0x7F7F7F);
|
|
91
|
-
|
|
92
|
-
this.graphics = renderer;
|
|
93
|
-
this.mirrorPlane = new Plane();
|
|
94
|
-
this.normal = new Vector3(0, 0, 1);
|
|
95
|
-
this.mirrorWorldPosition = new Vector3();
|
|
96
|
-
this.cameraWorldPosition = new Vector3();
|
|
97
|
-
this.rotationMatrix = new Matrix4();
|
|
98
|
-
this.lookAtPosition = new Vector3(0, 0, -1);
|
|
99
|
-
this.clipPlane = new Vector4();
|
|
100
|
-
|
|
101
|
-
// For debug only, show the normal and plane of the mirror
|
|
102
|
-
const debugMode = options.debugMode !== undefined ? options.debugMode : false;
|
|
103
|
-
|
|
104
|
-
if (debugMode) {
|
|
105
|
-
|
|
106
|
-
const arrow = new ArrowHelper(new Vector3(0, 0, 1), new Vector3(0, 0, 0), 10, 0xffff80);
|
|
107
|
-
const planeGeometry = new Geometry();
|
|
108
|
-
planeGeometry.vertices.push(new Vector3(-10, -10, 0));
|
|
109
|
-
planeGeometry.vertices.push(new Vector3(10, -10, 0));
|
|
110
|
-
planeGeometry.vertices.push(new Vector3(10, 10, 0));
|
|
111
|
-
planeGeometry.vertices.push(new Vector3(-10, 10, 0));
|
|
112
|
-
planeGeometry.vertices.push(planeGeometry.vertices[0]);
|
|
113
|
-
const plane = new Line(planeGeometry, new LineBasicMaterial({ color: 0xffff80 }));
|
|
114
|
-
|
|
115
|
-
this.add(arrow);
|
|
116
|
-
this.add(plane);
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (camera instanceof PerspectiveCamera) {
|
|
121
|
-
|
|
122
|
-
this.camera = camera;
|
|
123
|
-
|
|
124
|
-
} else {
|
|
125
|
-
|
|
126
|
-
this.camera = new PerspectiveCamera();
|
|
127
|
-
console.log(this.name + ': camera is not a Perspective Camera!');
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
this.textureMatrix = new Matrix4();
|
|
132
|
-
|
|
133
|
-
this.mirrorCamera = this.camera.clone();
|
|
134
|
-
this.mirrorCamera.matrixAutoUpdate = true;
|
|
135
|
-
|
|
136
|
-
const parameters = {
|
|
137
|
-
minFilter: LinearFilter,
|
|
138
|
-
magFilter: LinearFilter,
|
|
139
|
-
format: RGBFormat,
|
|
140
|
-
stencilBuffer: false
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
this.renderTarget = new WebGLRenderTarget(width, height, parameters);
|
|
144
|
-
this.renderTarget2 = new WebGLRenderTarget(width, height, parameters);
|
|
145
|
-
|
|
146
|
-
const mirrorShader = Shader;
|
|
147
|
-
const mirrorUniforms = UniformsUtils.clone(mirrorShader.uniforms);
|
|
148
|
-
|
|
149
|
-
this.material = new ShaderMaterial({
|
|
150
|
-
|
|
151
|
-
fragmentShader: mirrorShader.fragmentShader,
|
|
152
|
-
vertexShader: mirrorShader.vertexShader,
|
|
153
|
-
uniforms: mirrorUniforms
|
|
154
|
-
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
this.material.uniforms.mirrorSampler.value = this.renderTarget.texture;
|
|
158
|
-
this.material.uniforms.mirrorColor.value = mirrorColor;
|
|
159
|
-
this.material.uniforms.textureMatrix.value = this.textureMatrix;
|
|
160
|
-
|
|
161
|
-
if (!ThreeMath.isPowerOfTwo(width) || !ThreeMath.isPowerOfTwo(height)) {
|
|
162
|
-
|
|
163
|
-
this.renderTarget.texture.generateMipmaps = false;
|
|
164
|
-
this.renderTarget2.texture.generateMipmaps = false;
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
Mirror.prototype = Object.create(Object3D.prototype);
|
|
171
|
-
Mirror.prototype.constructor = Mirror;
|
|
172
|
-
|
|
173
|
-
Mirror.prototype.renderWithMirror = function (otherMirror) {
|
|
174
|
-
|
|
175
|
-
// update the mirror matrix to mirror the current view
|
|
176
|
-
this.updateTextureMatrix();
|
|
177
|
-
this.matrixNeedsUpdate = false;
|
|
178
|
-
|
|
179
|
-
// set the camera of the other mirror so the mirrored view is the reference view
|
|
180
|
-
const tempCamera = otherMirror.camera;
|
|
181
|
-
otherMirror.camera = this.mirrorCamera;
|
|
182
|
-
|
|
183
|
-
// render the other mirror in temp texture
|
|
184
|
-
otherMirror.renderTemp();
|
|
185
|
-
otherMirror.material.uniforms.mirrorSampler.value = otherMirror.renderTarget2.texture;
|
|
186
|
-
|
|
187
|
-
// render the current mirror
|
|
188
|
-
this.render();
|
|
189
|
-
this.matrixNeedsUpdate = true;
|
|
190
|
-
|
|
191
|
-
// restore material and camera of other mirror
|
|
192
|
-
otherMirror.material.uniforms.mirrorSampler.value = otherMirror.renderTarget.texture;
|
|
193
|
-
otherMirror.camera = tempCamera;
|
|
194
|
-
|
|
195
|
-
// restore texture matrix of other mirror
|
|
196
|
-
otherMirror.updateTextureMatrix();
|
|
197
|
-
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
Mirror.prototype.updateTextureMatrix = function () {
|
|
201
|
-
|
|
202
|
-
this.updateMatrixWorld();
|
|
203
|
-
this.camera.updateMatrixWorld();
|
|
204
|
-
|
|
205
|
-
this.mirrorWorldPosition.setFromMatrixPosition(this.matrixWorld);
|
|
206
|
-
this.cameraWorldPosition.setFromMatrixPosition(this.camera.matrixWorld);
|
|
207
|
-
|
|
208
|
-
this.rotationMatrix.extractRotation(this.matrixWorld);
|
|
209
|
-
|
|
210
|
-
this.normal.set(0, 0, 1);
|
|
211
|
-
this.normal.applyMatrix4(this.rotationMatrix);
|
|
212
|
-
|
|
213
|
-
const view = this.mirrorWorldPosition.clone().sub(this.cameraWorldPosition);
|
|
214
|
-
view.reflect(this.normal).negate();
|
|
215
|
-
view.add(this.mirrorWorldPosition);
|
|
216
|
-
|
|
217
|
-
this.rotationMatrix.extractRotation(this.camera.matrixWorld);
|
|
218
|
-
|
|
219
|
-
this.lookAtPosition.set(0, 0, -1);
|
|
220
|
-
this.lookAtPosition.applyMatrix4(this.rotationMatrix);
|
|
221
|
-
this.lookAtPosition.add(this.cameraWorldPosition);
|
|
222
|
-
|
|
223
|
-
const target = this.mirrorWorldPosition.clone().sub(this.lookAtPosition);
|
|
224
|
-
target.reflect(this.normal).negate();
|
|
225
|
-
target.add(this.mirrorWorldPosition);
|
|
226
|
-
|
|
227
|
-
this.up.set(0, -1, 0);
|
|
228
|
-
this.up.applyMatrix4(this.rotationMatrix);
|
|
229
|
-
this.up.reflect(this.normal).negate();
|
|
230
|
-
|
|
231
|
-
this.mirrorCamera.position.copy(view);
|
|
232
|
-
this.mirrorCamera.up = this.up;
|
|
233
|
-
this.mirrorCamera.lookAt(target);
|
|
234
|
-
|
|
235
|
-
this.mirrorCamera.updateProjectionMatrix();
|
|
236
|
-
this.mirrorCamera.updateMatrixWorld();
|
|
237
|
-
this.mirrorCamera.matrixWorldInverse.getInverse(this.mirrorCamera.matrixWorld);
|
|
238
|
-
|
|
239
|
-
// Update the texture matrix
|
|
240
|
-
this.textureMatrix.set(0.5, 0.0, 0.0, 0.5,
|
|
241
|
-
0.0, 0.5, 0.0, 0.5,
|
|
242
|
-
0.0, 0.0, 0.5, 0.5,
|
|
243
|
-
0.0, 0.0, 0.0, 1.0);
|
|
244
|
-
this.textureMatrix.multiply(this.mirrorCamera.projectionMatrix);
|
|
245
|
-
this.textureMatrix.multiply(this.mirrorCamera.matrixWorldInverse);
|
|
246
|
-
|
|
247
|
-
// Now update projection matrix with new clip plane, implementing code from: http://www.terathon.com/code/oblique.html
|
|
248
|
-
// Paper explaining this technique: http://www.terathon.com/lengyel/Lengyel-Oblique.pdf
|
|
249
|
-
this.mirrorPlane.setFromNormalAndCoplanarPoint(this.normal, this.mirrorWorldPosition);
|
|
250
|
-
this.mirrorPlane.applyMatrix4(this.mirrorCamera.matrixWorldInverse);
|
|
251
|
-
|
|
252
|
-
this.clipPlane.set(this.mirrorPlane.normal.x, this.mirrorPlane.normal.y, this.mirrorPlane.normal.z, this.mirrorPlane.constant);
|
|
253
|
-
|
|
254
|
-
const q = new Vector4();
|
|
255
|
-
const projectionMatrix = this.mirrorCamera.projectionMatrix;
|
|
256
|
-
|
|
257
|
-
q.x = (Math.sign(this.clipPlane.x) + projectionMatrix.elements[8]) / projectionMatrix.elements[0];
|
|
258
|
-
q.y = (Math.sign(this.clipPlane.y) + projectionMatrix.elements[9]) / projectionMatrix.elements[5];
|
|
259
|
-
q.z = -1.0;
|
|
260
|
-
q.w = (1.0 + projectionMatrix.elements[10]) / projectionMatrix.elements[14];
|
|
261
|
-
|
|
262
|
-
// Calculate the scaled plane vector
|
|
263
|
-
let c = new Vector4();
|
|
264
|
-
c = this.clipPlane.multiplyScalar(2.0 / this.clipPlane.dot(q));
|
|
265
|
-
|
|
266
|
-
// Replacing the third row of the projection matrix
|
|
267
|
-
projectionMatrix.elements[2] = c.x;
|
|
268
|
-
projectionMatrix.elements[6] = c.y;
|
|
269
|
-
projectionMatrix.elements[10] = c.z + 1.0 - this.clipBias;
|
|
270
|
-
projectionMatrix.elements[14] = c.w;
|
|
271
|
-
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
Mirror.prototype.render = function (scene) {
|
|
275
|
-
|
|
276
|
-
if (this.matrixNeedsUpdate) this.updateTextureMatrix();
|
|
277
|
-
|
|
278
|
-
this.matrixNeedsUpdate = true;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if (scene !== undefined && scene instanceof Scene) {
|
|
282
|
-
|
|
283
|
-
// We can't render ourself to ourself
|
|
284
|
-
const visible = this.material.visible;
|
|
285
|
-
this.material.visible = false;
|
|
286
|
-
|
|
287
|
-
const renderer = this.graphics;
|
|
288
|
-
|
|
289
|
-
const currentVrEnabled = renderer.vr.enabled;
|
|
290
|
-
const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;
|
|
291
|
-
|
|
292
|
-
renderer.vr.enabled = false; // Avoid camera modification and recursion
|
|
293
|
-
renderer.shadowMap.autoUpdate = false; // Avoid re-computing shadows
|
|
294
|
-
|
|
295
|
-
renderer.render(scene, this.mirrorCamera, this.renderTarget, true);
|
|
296
|
-
|
|
297
|
-
renderer.vr.enabled = currentVrEnabled;
|
|
298
|
-
renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
|
|
299
|
-
|
|
300
|
-
this.material.visible = visible;
|
|
301
|
-
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
Mirror.prototype.renderTemp = function () {
|
|
307
|
-
|
|
308
|
-
if (this.matrixNeedsUpdate) this.updateTextureMatrix();
|
|
309
|
-
|
|
310
|
-
this.matrixNeedsUpdate = true;
|
|
311
|
-
|
|
312
|
-
// Render the mirrored view of the current scene into the target texture
|
|
313
|
-
let scene = this;
|
|
314
|
-
|
|
315
|
-
while (scene.parent !== null) {
|
|
316
|
-
|
|
317
|
-
scene = scene.parent;
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
if (scene !== undefined && scene instanceof Scene) {
|
|
322
|
-
|
|
323
|
-
this.graphics.render(scene, this.mirrorCamera, this.renderTarget2, true);
|
|
324
|
-
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
export default Mirror;
|