@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.
Files changed (652) hide show
  1. package/build/meep.cjs +2310 -2529
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +2310 -2529
  4. package/editor/Editor.js +55 -60
  5. package/editor/SelectionVisualizer.js +111 -109
  6. package/editor/actions/concrete/ComponentAddAction.js +0 -3
  7. package/editor/actions/concrete/ComponentRemoveAction.js +0 -4
  8. package/editor/actions/concrete/EntityCreateAction.js +0 -3
  9. package/editor/actions/concrete/EntityRemoveAction.js +0 -4
  10. package/editor/actions/concrete/SelectionAddAction.js +0 -3
  11. package/editor/actions/concrete/SelectionClearAction.js +0 -3
  12. package/editor/actions/concrete/SelectionRemoveAction.js +0 -3
  13. package/editor/ecs/EditorEntity.js +8 -6
  14. package/editor/tools/SelectionTool.js +0 -5
  15. package/editor/tools/TopDownCameraControlTool.js +2 -5
  16. package/editor/tools/TransformTool.js +137 -136
  17. package/editor/tools/engine/Tool.js +1 -6
  18. package/editor/tools/engine/ToolEngine.js +145 -148
  19. package/editor/tools/v2/TransformControls.js +25 -24
  20. package/editor/view/EditorView.js +0 -5
  21. package/editor/view/ecs/ComponentControlFactory.js +37 -40
  22. package/editor/view/ecs/EntityEditor.js +0 -3
  23. package/editor/view/ecs/EntityList.js +6 -11
  24. package/editor/view/ecs/components/MeshController.js +4 -7
  25. package/editor/view/ecs/components/TransformController.js +3 -9
  26. package/editor/view/tools/ToolView.js +2 -8
  27. package/package.json +1 -1
  28. package/src/core/IdPool.d.ts.map +1 -1
  29. package/src/core/IdPool.js +0 -5
  30. package/src/core/UUID.d.ts.map +1 -1
  31. package/src/core/UUID.js +0 -4
  32. package/src/core/binary/BitSet.d.ts +17 -14
  33. package/src/core/binary/BitSet.d.ts.map +1 -1
  34. package/src/core/binary/BitSet.js +411 -412
  35. package/src/core/binary/type/Field.d.ts +0 -8
  36. package/src/core/binary/type/Field.d.ts.map +1 -1
  37. package/src/core/binary/type/Field.js +16 -19
  38. package/src/core/binary/type/MultiplicityType.js +0 -4
  39. package/src/core/binary/type/PrimitiveTypes.d.ts.map +1 -1
  40. package/src/core/binary/type/PrimitiveTypes.js +0 -4
  41. package/src/core/binary/type/Type.d.ts +0 -6
  42. package/src/core/binary/type/Type.d.ts.map +1 -1
  43. package/src/core/binary/type/Type.js +63 -64
  44. package/src/core/binary/type/TypeBuilder.d.ts +0 -1
  45. package/src/core/binary/type/TypeBuilder.d.ts.map +1 -1
  46. package/src/core/binary/type/TypeBuilder.js +15 -18
  47. package/src/core/binary/type/TypeRegistry.d.ts +6 -4
  48. package/src/core/binary/type/TypeRegistry.d.ts.map +1 -1
  49. package/src/core/binary/type/TypeRegistry.js +38 -42
  50. package/src/core/bvh2/visual/BVHGeometry.d.ts.map +1 -1
  51. package/src/core/bvh2/visual/BVHGeometry.js +0 -3
  52. package/src/core/codegen/LineBuilder.d.ts.map +1 -1
  53. package/src/core/codegen/LineBuilder.js +0 -5
  54. package/src/core/collection/array/array_copy.spec.d.ts +2 -0
  55. package/src/core/collection/array/array_copy.spec.d.ts.map +1 -0
  56. package/src/core/collection/array/array_copy.spec.js +19 -0
  57. package/src/core/collection/list/List.d.ts.map +1 -1
  58. package/src/core/collection/list/List.js +55 -30
  59. package/src/core/collection/list/List.spec.js +101 -0
  60. package/src/core/collection/list/ListForwarder.d.ts.map +1 -1
  61. package/src/core/collection/list/ListForwarder.js +49 -53
  62. package/src/core/collection/list/ListForwarder.spec.js +2 -0
  63. package/src/core/collection/list/SortedListProjection.d.ts +4 -1
  64. package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
  65. package/src/core/collection/list/SortedListProjection.js +4 -1
  66. package/src/core/collection/map/AbstractAsyncMap.d.ts.map +1 -1
  67. package/src/core/collection/map/AbstractAsyncMap.js +0 -3
  68. package/src/core/collection/map/AsyncMapWrapper.d.ts +6 -10
  69. package/src/core/collection/map/AsyncMapWrapper.d.ts.map +1 -1
  70. package/src/core/collection/map/AsyncMapWrapper.js +14 -9
  71. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  72. package/src/core/collection/map/HashMap.js +14 -0
  73. package/src/core/collection/map/ObservedMap.d.ts +12 -3
  74. package/src/core/collection/map/ObservedMap.d.ts.map +1 -1
  75. package/src/core/collection/map/ObservedMap.js +14 -4
  76. package/src/core/collection/queue/Deque.d.ts.map +1 -1
  77. package/src/core/collection/queue/Deque.js +100 -95
  78. package/src/core/collection/set/ArraySet.d.ts.map +1 -0
  79. package/src/core/collection/set/{Set.js → ArraySet.js} +3 -7
  80. package/src/core/collection/set/set_remove.d.ts +3 -3
  81. package/src/core/collection/set/set_remove.d.ts.map +1 -1
  82. package/src/core/collection/set/set_remove.js +5 -5
  83. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  84. package/src/core/collection/table/RowFirstTable.js +0 -5
  85. package/src/core/color/oklab/find_gamut_intersection.js +1 -1
  86. package/src/core/color/parse_color.d.ts.map +1 -1
  87. package/src/core/color/parse_color.js +1 -5
  88. package/src/core/geom/2d/Rectangle.d.ts +54 -5
  89. package/src/core/geom/2d/Rectangle.d.ts.map +1 -1
  90. package/src/core/geom/2d/Rectangle.js +70 -7
  91. package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
  92. package/src/core/geom/2d/aabb/AABB2.js +0 -6
  93. package/src/core/geom/2d/circle/Circle.d.ts +1 -1
  94. package/src/core/geom/2d/circle/Circle.js +1 -1
  95. package/src/core/geom/2d/compute_triangle_area_2d.d.ts.map +1 -1
  96. package/src/core/geom/2d/compute_triangle_area_2d.js +7 -1
  97. package/src/core/geom/2d/shape/AbstractShape.d.ts +2 -0
  98. package/src/core/geom/2d/shape/AbstractShape.d.ts.map +1 -1
  99. package/src/core/geom/2d/shape/AbstractShape.js +8 -2
  100. package/src/core/geom/2d/shape/CircleShape.d.ts +14 -0
  101. package/src/core/geom/2d/shape/CircleShape.d.ts.map +1 -1
  102. package/src/core/geom/2d/shape/CircleShape.js +64 -22
  103. package/src/core/geom/2d/uv_map_circle_to_square.d.ts +8 -0
  104. package/src/core/geom/2d/uv_map_circle_to_square.d.ts.map +1 -0
  105. package/src/core/geom/2d/{UvUtils.js → uv_map_circle_to_square.js} +2 -17
  106. package/src/core/geom/2d/uv_map_circle_to_square.spec.d.ts +2 -0
  107. package/src/core/geom/2d/uv_map_circle_to_square.spec.d.ts.map +1 -0
  108. package/src/core/geom/2d/uv_map_circle_to_square.spec.js +28 -0
  109. package/src/core/geom/2d/uv_map_square_to_circle.d.ts +8 -0
  110. package/src/core/geom/2d/uv_map_square_to_circle.d.ts.map +1 -0
  111. package/src/core/geom/2d/uv_map_square_to_circle.js +14 -0
  112. package/src/core/geom/2d/uv_map_square_to_circle.spec.d.ts +2 -0
  113. package/src/core/geom/2d/uv_map_square_to_circle.spec.d.ts.map +1 -0
  114. package/src/core/geom/2d/uv_map_square_to_circle.spec.js +30 -0
  115. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  116. package/src/core/geom/3d/aabb/AABB3.js +0 -5
  117. package/src/core/geom/3d/morton/Morton.d.ts.map +1 -1
  118. package/src/core/geom/3d/morton/Morton.js +0 -3
  119. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +11 -11
  120. package/src/core/geom/Quaternion.d.ts.map +1 -1
  121. package/src/core/geom/Quaternion.js +0 -5
  122. package/src/core/geom/Vector3.d.ts +13 -4
  123. package/src/core/geom/Vector3.d.ts.map +1 -1
  124. package/src/core/geom/Vector3.js +83 -36
  125. package/src/core/geom/Vector3.spec.js +113 -12
  126. package/src/core/geom/Vector4.d.ts.map +1 -1
  127. package/src/core/geom/Vector4.js +0 -4
  128. package/src/core/graph/Edge.d.ts.map +1 -1
  129. package/src/core/graph/Edge.js +0 -5
  130. package/src/core/graph/WeightedEdge.d.ts.map +1 -1
  131. package/src/core/json/JsonUtils.d.ts.map +1 -1
  132. package/src/core/json/JsonUtils.js +0 -4
  133. package/src/core/math/random/MersenneTwister.d.ts +1 -2
  134. package/src/core/math/random/MersenneTwister.d.ts.map +1 -1
  135. package/src/core/math/random/MersenneTwister.js +134 -133
  136. package/src/core/model/BooleanVector3.d.ts.map +1 -1
  137. package/src/core/model/BooleanVector3.js +108 -108
  138. package/src/core/model/BoundedValue.d.ts +116 -0
  139. package/src/core/model/BoundedValue.d.ts.map +1 -0
  140. package/src/core/model/BoundedValue.js +214 -217
  141. package/src/core/model/LinearValue.d.ts +84 -0
  142. package/src/core/model/LinearValue.d.ts.map +1 -0
  143. package/src/core/model/LinearValue.js +116 -117
  144. package/src/core/model/ObservedEnum.d.ts.map +1 -1
  145. package/src/core/model/ObservedEnum.js +82 -80
  146. package/src/core/model/ObservedValue.d.ts +10 -17
  147. package/src/core/model/ObservedValue.d.ts.map +1 -1
  148. package/src/core/model/ObservedValue.js +85 -88
  149. package/src/core/model/object/ObjectPoolFactory.d.ts +1 -9
  150. package/src/core/model/object/ObjectPoolFactory.d.ts.map +1 -1
  151. package/src/core/model/object/ObjectPoolFactory.js +73 -73
  152. package/src/core/model/scheme/Schema.d.ts +0 -6
  153. package/src/core/model/scheme/Schema.d.ts.map +1 -1
  154. package/src/core/model/scheme/Schema.js +50 -48
  155. package/src/core/model/scheme/SchemeRegistry.d.ts +6 -1
  156. package/src/core/model/scheme/SchemeRegistry.d.ts.map +1 -1
  157. package/src/core/model/scheme/SchemeRegistry.js +46 -44
  158. package/src/core/process/Future.d.ts +14 -9
  159. package/src/core/process/Future.d.ts.map +1 -1
  160. package/src/core/process/Future.js +96 -98
  161. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  162. package/src/core/process/executor/ConcurrentExecutor.js +0 -3
  163. package/src/core/process/task/Task.d.ts.map +1 -1
  164. package/src/core/process/task/Task.js +0 -5
  165. package/src/core/process/task/TaskGroup.d.ts.map +1 -1
  166. package/src/core/process/task/TaskGroup.js +178 -180
  167. package/src/core/process/task/TaskSignal.d.ts.map +1 -1
  168. package/src/core/process/task/TaskSignal.js +0 -5
  169. package/src/core/process/task/TaskState.d.ts.map +1 -1
  170. package/src/core/process/task/TaskState.js +0 -4
  171. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  172. package/src/core/process/worker/WorkerBuilder.js +0 -5
  173. package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
  174. package/src/core/process/worker/WorkerProxy.js +0 -5
  175. package/src/engine/Clock.d.ts.map +1 -1
  176. package/src/engine/Clock.js +0 -5
  177. package/src/engine/Engine.js +4 -4
  178. package/src/engine/EntityCreator.d.ts.map +1 -1
  179. package/src/engine/EntityCreator.js +7 -10
  180. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  181. package/src/engine/animation/AnimatedActions.js +0 -5
  182. package/src/engine/animation/Animations.d.ts.map +1 -1
  183. package/src/engine/animation/Animations.js +1 -6
  184. package/src/engine/animation/EntityAnimation.js +1 -4
  185. package/src/engine/animation/Tween.js +1 -4
  186. package/src/engine/animation/keyed2/AnimationTrack.d.ts +0 -6
  187. package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
  188. package/src/engine/animation/keyed2/AnimationTrack.js +154 -152
  189. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +0 -10
  190. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  191. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +173 -171
  192. package/src/engine/asset/AssetManager.d.ts.map +1 -1
  193. package/src/engine/asset/AssetManager.js +0 -5
  194. package/src/engine/asset/preloader/AssetLevel.js +0 -3
  195. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  196. package/src/engine/ecs/EntityManager.js +0 -4
  197. package/src/engine/ecs/System.d.ts.map +1 -1
  198. package/src/engine/ecs/System.js +0 -5
  199. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  200. package/src/engine/ecs/animation/Animation.js +1 -19
  201. package/src/engine/ecs/components/Motion.d.ts.map +1 -1
  202. package/src/engine/ecs/components/Motion.js +0 -5
  203. package/src/engine/ecs/components/PropertySet.d.ts +8 -1
  204. package/src/engine/ecs/components/PropertySet.d.ts.map +1 -1
  205. package/src/engine/ecs/components/PropertySet.js +87 -83
  206. package/src/engine/ecs/components/Script.d.ts +0 -16
  207. package/src/engine/ecs/components/Script.d.ts.map +1 -1
  208. package/src/engine/ecs/components/Script.js +14 -18
  209. package/src/engine/ecs/components/Tag.d.ts.map +1 -1
  210. package/src/engine/ecs/components/Tag.js +4 -5
  211. package/src/engine/ecs/components/Timer.d.ts +0 -5
  212. package/src/engine/ecs/components/Timer.d.ts.map +1 -1
  213. package/src/engine/ecs/components/Timer.js +0 -5
  214. package/src/engine/ecs/grid/HeightMap2NormalMap.d.ts.map +1 -1
  215. package/src/engine/ecs/grid/HeightMap2NormalMap.js +2 -6
  216. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.d.ts.map +1 -1
  217. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.js +0 -3
  218. package/src/engine/ecs/grid/NormalMap2AOMap.d.ts.map +1 -1
  219. package/src/engine/ecs/grid/NormalMap2AOMap.js +3 -8
  220. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  221. package/src/engine/ecs/gui/GUIElement.js +0 -3
  222. package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
  223. package/src/engine/ecs/gui/GUIElementSystem.js +0 -4
  224. package/src/engine/ecs/gui/hud/HeadsUpDisplay.d.ts.map +1 -1
  225. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +0 -7
  226. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  227. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +0 -5
  228. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts.map +1 -1
  229. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -8
  230. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  231. package/src/engine/ecs/gui/position/ViewportPosition.js +0 -4
  232. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts +1 -2
  233. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
  234. package/src/engine/ecs/gui/position/ViewportPositionSystem.js +6 -10
  235. package/src/engine/ecs/ik/IKProblem.d.ts +1 -2
  236. package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
  237. package/src/engine/ecs/renderable/RenderSystem.d.ts.map +1 -1
  238. package/src/engine/ecs/renderable/RenderSystem.js +0 -3
  239. package/src/engine/ecs/renderable/Renderable.d.ts.map +1 -1
  240. package/src/engine/ecs/renderable/Renderable.js +0 -5
  241. package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
  242. package/src/engine/ecs/systems/AnimationSystem.js +9 -17
  243. package/src/engine/ecs/systems/MotionSystem.d.ts.map +1 -1
  244. package/src/engine/ecs/systems/MotionSystem.js +1 -6
  245. package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
  246. package/src/engine/ecs/systems/ScriptSystem.js +1 -6
  247. package/src/engine/ecs/systems/TimerSystem.d.ts.map +1 -1
  248. package/src/engine/ecs/systems/TimerSystem.js +1 -6
  249. package/src/engine/ecs/team/Team.d.ts.map +1 -1
  250. package/src/engine/ecs/team/Team.js +0 -3
  251. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts.map +1 -1
  252. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +0 -5
  253. package/src/engine/ecs/terrain/TerrainClouds.d.ts.map +1 -1
  254. package/src/engine/ecs/terrain/TerrainClouds.js +0 -5
  255. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  256. package/src/engine/ecs/terrain/ecs/Terrain.js +0 -5
  257. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts.map +1 -1
  258. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +0 -3
  259. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  260. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +11 -14
  261. package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
  262. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +0 -5
  263. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  264. package/src/engine/ecs/terrain/tiles/TerrainTile.js +0 -5
  265. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +1 -1
  266. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  267. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +0 -3
  268. package/src/engine/ecs/terrain/tiles/TileBuildWorker.js +0 -4
  269. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  270. package/src/engine/ecs/transform/Transform.js +0 -4
  271. package/src/engine/google/gapi.js +0 -4
  272. package/src/engine/graphics/FrameThrottle.d.ts +0 -4
  273. package/src/engine/graphics/FrameThrottle.d.ts.map +1 -1
  274. package/src/engine/graphics/FrameThrottle.js +0 -5
  275. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  276. package/src/engine/graphics/GraphicsEngine.js +1 -6
  277. package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
  278. package/src/engine/graphics/composit/LayerCompositer.js +2 -5
  279. package/src/engine/graphics/ecs/animation/AnimationController.d.ts.map +1 -1
  280. package/src/engine/graphics/ecs/animation/AnimationController.js +0 -5
  281. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
  282. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +2 -7
  283. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts +0 -1
  284. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts.map +1 -1
  285. package/src/engine/graphics/ecs/animation/AnimationRule.js +70 -66
  286. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  287. package/src/engine/graphics/ecs/camera/Camera.js +0 -5
  288. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  289. package/src/engine/graphics/ecs/camera/CameraSystem.js +0 -5
  290. package/src/engine/graphics/ecs/camera/FrustumProjector.d.ts.map +1 -1
  291. package/src/engine/graphics/ecs/camera/FrustumProjector.js +0 -5
  292. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  293. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -9
  294. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  295. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +3 -8
  296. package/src/engine/graphics/ecs/highlight/Highlight.d.ts.map +1 -1
  297. package/src/engine/graphics/ecs/highlight/Highlight.js +0 -3
  298. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
  299. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +3 -8
  300. package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
  301. package/src/engine/graphics/ecs/light/Light.js +2 -6
  302. package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
  303. package/src/engine/graphics/ecs/light/LightSystem.js +0 -5
  304. package/src/engine/graphics/ecs/mesh/Mesh.d.ts.map +1 -1
  305. package/src/engine/graphics/ecs/mesh/Mesh.js +0 -3
  306. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
  307. package/src/engine/graphics/ecs/mesh/MeshSystem.js +0 -5
  308. package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
  309. package/src/engine/graphics/ecs/trail2d/Trail2D.js +0 -5
  310. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  311. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +0 -5
  312. package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
  313. package/src/engine/graphics/ecs/water/Water.js +0 -5
  314. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  315. package/src/engine/graphics/ecs/water/WaterSystem.js +0 -3
  316. package/src/engine/graphics/filter/ImageFilter.d.ts.map +1 -1
  317. package/src/engine/graphics/filter/ImageFilter.js +0 -5
  318. package/src/engine/graphics/geometry/BufferGeometryWrap.js +1 -3
  319. package/src/engine/graphics/geometry/buffered/ComputeNormals.d.ts.map +1 -1
  320. package/src/engine/graphics/geometry/buffered/ComputeNormals.js +0 -5
  321. package/src/engine/graphics/geometry/ribbon/Ribbon.d.ts.map +1 -1
  322. package/src/engine/graphics/geometry/ribbon/Ribbon.js +1 -4
  323. package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
  324. package/src/engine/graphics/material/SplatMaterial.js +0 -3
  325. package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
  326. package/src/engine/graphics/material/WaterMaterial.js +0 -3
  327. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts +0 -5
  328. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +1 -1
  329. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +114 -114
  330. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -1
  331. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
  332. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +347 -348
  333. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +1 -3
  334. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
  335. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -1
  336. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +1 -1
  337. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +110 -111
  338. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts +0 -9
  339. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts.map +1 -1
  340. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.js +70 -66
  341. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -5
  342. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +1 -1
  343. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +82 -82
  344. package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -7
  345. package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +1 -1
  346. package/src/engine/graphics/particles/particular/group/Operation.js +16 -14
  347. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -9
  348. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +1 -1
  349. package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +23 -21
  350. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts +2 -10
  351. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  352. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +463 -464
  353. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -2
  354. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +1 -1
  355. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +39 -33
  356. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +6 -1
  357. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +1 -1
  358. package/src/engine/graphics/render/buffer/FrameBufferManager.js +166 -163
  359. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
  360. package/src/engine/graphics/render/layers/RenderLayer.js +0 -5
  361. package/src/engine/graphics/shaders/AlphaBlendShader.js +1 -3
  362. package/src/engine/graphics/shaders/AmbientOcclusionShader.d.ts.map +1 -1
  363. package/src/engine/graphics/shaders/AmbientOcclusionShader.js +0 -3
  364. package/src/engine/graphics/shaders/ClearShader.js +1 -3
  365. package/src/engine/graphics/shaders/CopyShader.d.ts +0 -3
  366. package/src/engine/graphics/shaders/CopyShader.d.ts.map +1 -1
  367. package/src/engine/graphics/shaders/CopyShader.js +1 -3
  368. package/src/engine/graphics/shaders/NormalMapShader2.d.ts.map +1 -1
  369. package/src/engine/graphics/shaders/NormalMapShader2.js +0 -5
  370. package/src/engine/graphics/shaders/TerrainShader.js +0 -4
  371. package/src/engine/graphics/shaders/WaterShader.js +0 -3
  372. package/src/engine/graphics/shaders/lib/ShaderChunks.js +1 -3
  373. package/src/engine/graphics/texture/Canvas2Sampler2D.d.ts.map +1 -1
  374. package/src/engine/graphics/texture/Canvas2Sampler2D.js +1 -4
  375. package/src/engine/graphics/texture/CheckersTexture.d.ts.map +1 -1
  376. package/src/engine/graphics/texture/CheckersTexture.js +0 -3
  377. package/src/engine/graphics/texture/CheckersTextureURI.js +1 -3
  378. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  379. package/src/engine/graphics/texture/sampler/Sampler2D.js +0 -5
  380. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +1 -1
  381. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +0 -5
  382. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts.map +1 -1
  383. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.js +0 -3
  384. package/src/engine/graphics/three/ThreeFactory.d.ts.map +1 -1
  385. package/src/engine/graphics/three/ThreeFactory.js +0 -5
  386. package/src/engine/grid/grid2transform/GridPosition2Transform.d.ts.map +1 -1
  387. package/src/engine/grid/grid2transform/GridPosition2Transform.js +0 -4
  388. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
  389. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +4 -7
  390. package/src/engine/grid/obstacle/GridObstacle.d.ts.map +1 -1
  391. package/src/engine/grid/obstacle/GridObstacle.js +0 -5
  392. package/src/engine/grid/position/GridPosition.d.ts.map +1 -1
  393. package/src/engine/grid/position/GridPosition.js +0 -4
  394. package/src/engine/grid/position/GridPositionSystem.d.ts.map +1 -1
  395. package/src/engine/grid/position/GridPositionSystem.js +1 -4
  396. package/src/engine/input/devices/KeyCodes.d.ts.map +1 -1
  397. package/src/engine/input/devices/KeyCodes.js +3 -4
  398. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  399. package/src/engine/input/devices/KeyboardDevice.js +0 -4
  400. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  401. package/src/engine/input/devices/PointerDevice.js +0 -3
  402. package/src/engine/input/ecs/components/InputController.d.ts.map +1 -1
  403. package/src/engine/input/ecs/components/InputController.js +1 -5
  404. package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
  405. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +5 -10
  406. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  407. package/src/engine/input/ecs/systems/InputControllerSystem.js +78 -78
  408. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
  409. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -6
  410. package/src/engine/intelligence/mcts/MonteCarlo.spec.js +78 -76
  411. package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
  412. package/src/engine/navigation/ecs/components/Path.js +0 -5
  413. package/src/engine/navigation/ecs/path_following/PathFollower.d.ts.map +1 -1
  414. package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -6
  415. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  416. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +5 -12
  417. package/src/engine/network/DataChannel.js +284 -284
  418. package/src/engine/network/xhr.d.ts +0 -3
  419. package/src/engine/network/xhr.d.ts.map +1 -1
  420. package/src/engine/network/xhr.js +0 -3
  421. package/src/engine/notify/Notification.d.ts +1 -1
  422. package/src/engine/notify/Notification.d.ts.map +1 -1
  423. package/src/engine/notify/Notification.js +1 -6
  424. package/src/engine/notify/NotificationLog.d.ts.map +1 -1
  425. package/src/engine/notify/NotificationLog.js +0 -5
  426. package/src/engine/options/OptionsView.d.ts.map +1 -1
  427. package/src/engine/options/OptionsView.js +1 -6
  428. package/src/engine/physics/ammo/Body.js +0 -3
  429. package/src/engine/physics/ammo/PhysicsWorker.d.ts.map +1 -1
  430. package/src/engine/physics/ammo/PhysicsWorker.js +1 -3
  431. package/src/engine/physics/ammo/World.d.ts +68 -0
  432. package/src/engine/physics/ammo/World.d.ts.map +1 -0
  433. package/src/engine/physics/ammo/World.js +277 -278
  434. package/src/engine/physics/ammo/shapes/BoxShape.js +0 -3
  435. package/src/engine/physics/ammo/shapes/CapsuleShape.js +0 -3
  436. package/src/engine/physics/ammo/shapes/MeshShape.js +0 -3
  437. package/src/engine/physics/ammo/shapes/PlaneShape.js +0 -3
  438. package/src/engine/physics/ammo/shapes/Shape.js +1 -3
  439. package/src/engine/physics/ammo/shapes/SphereShape.js +0 -3
  440. package/src/engine/physics/cannon/CannonJSPhysicsSystem.d.ts.map +1 -1
  441. package/src/engine/physics/cannon/CannonJSPhysicsSystem.js +3 -6
  442. package/src/engine/save/GameStateLoader.d.ts.map +1 -1
  443. package/src/engine/save/GameStateLoader.js +1 -5
  444. package/src/engine/save/Storage.d.ts.map +1 -1
  445. package/src/engine/save/Storage.js +0 -7
  446. package/src/engine/scene/Scene.d.ts.map +1 -1
  447. package/src/engine/scene/Scene.js +2 -7
  448. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  449. package/src/engine/scene/SceneManager.js +1 -4
  450. package/src/engine/simulation/DormandPrince.d.ts +0 -1
  451. package/src/engine/simulation/DormandPrince.d.ts.map +1 -1
  452. package/src/engine/simulation/DormandPrince.js +5 -5
  453. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  454. package/src/engine/simulation/Ticker.js +0 -3
  455. package/src/engine/sound/ecs/SoundController.d.ts +0 -7
  456. package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
  457. package/src/engine/sound/ecs/SoundController.js +118 -119
  458. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
  459. package/src/engine/sound/ecs/SoundControllerSystem.js +3 -8
  460. package/src/engine/sound/ecs/SoundListener.d.ts +0 -1
  461. package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
  462. package/src/engine/sound/ecs/SoundListener.js +26 -29
  463. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  464. package/src/engine/sound/ecs/SoundListenerSystem.js +0 -5
  465. package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
  466. package/src/engine/sound/ecs/emitter/SoundEmitter.js +0 -5
  467. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
  468. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -7
  469. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  470. package/src/engine/ui/GUIEngine.js +0 -5
  471. package/src/engine/ui/tiles2d/TileGrid.d.ts.map +1 -1
  472. package/src/engine/ui/tiles2d/TileGrid.js +1 -4
  473. package/src/generation/markers/debug/visualizeMarkers.js +10 -10
  474. package/src/view/DOM.js +1 -3
  475. package/src/view/SVG.d.ts +0 -3
  476. package/src/view/SVG.d.ts.map +1 -1
  477. package/src/view/SVG.js +0 -4
  478. package/src/view/asset/PreloaderView.d.ts.map +1 -1
  479. package/src/view/asset/PreloaderView.js +0 -3
  480. package/src/view/common/LabelView.d.ts +1 -6
  481. package/src/view/common/LabelView.d.ts.map +1 -1
  482. package/src/view/common/LabelView.js +24 -33
  483. package/src/view/common/ListView.d.ts.map +1 -1
  484. package/src/view/common/ListView.js +0 -6
  485. package/src/view/common/MeshView.js +3 -6
  486. package/src/view/common/VirtualListView.d.ts.map +1 -1
  487. package/src/view/common/VirtualListView.js +0 -5
  488. package/src/view/common/dnd/DragAndDropContext.d.ts +1 -2
  489. package/src/view/common/dnd/DragAndDropContext.d.ts.map +1 -1
  490. package/src/view/common/dnd/DragAndDropContext.js +107 -110
  491. package/src/view/controller/GuiController.d.ts.map +1 -1
  492. package/src/view/controller/GuiController.js +1 -6
  493. package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -1
  494. package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
  495. package/src/view/controller/controls/GuiControl.js +2 -7
  496. package/src/view/controller/controls/Vector1Control.d.ts +1 -1
  497. package/src/view/controller/controls/Vector1Control.d.ts.map +1 -1
  498. package/src/view/controller/controls/Vector1Control.js +2 -7
  499. package/src/view/controller/controls/Vector2Control.d.ts.map +1 -1
  500. package/src/view/controller/controls/Vector2Control.js +0 -4
  501. package/src/view/controller/controls/Vector3Control.d.ts.map +1 -1
  502. package/src/view/controller/controls/Vector3Control.js +0 -3
  503. package/src/view/elements/ConfirmationDialogView.d.ts.map +1 -1
  504. package/src/view/elements/ConfirmationDialogView.js +1 -6
  505. package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
  506. package/src/view/elements/DropDownSelectionView.js +0 -5
  507. package/src/view/elements/EmptyView.d.ts.map +1 -1
  508. package/src/view/elements/EmptyView.js +0 -4
  509. package/src/view/elements/Group.d.ts.map +1 -1
  510. package/src/view/elements/Group.js +0 -3
  511. package/src/view/elements/MeshPreview.d.ts.map +1 -1
  512. package/src/view/elements/MeshPreview.js +5 -8
  513. package/src/view/elements/SimpleWindow.d.ts +1 -1
  514. package/src/view/elements/SimpleWindow.d.ts.map +1 -1
  515. package/src/view/elements/SimpleWindow.js +5 -11
  516. package/src/view/elements/button/ButtonView.d.ts.map +1 -1
  517. package/src/view/elements/button/ButtonView.js +1 -5
  518. package/src/view/elements/image/ImageView.d.ts.map +1 -1
  519. package/src/view/elements/image/ImageView.js +0 -4
  520. package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
  521. package/src/view/elements/image/SvgImageView.js +2 -7
  522. package/src/view/elements/label/LabeledValueView.d.ts.map +1 -1
  523. package/src/view/elements/label/LabeledValueView.js +3 -8
  524. package/src/view/elements/navigation/ViewStack.d.ts +0 -7
  525. package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
  526. package/src/view/elements/navigation/ViewStack.js +17 -19
  527. package/src/view/elements/notify/NotificationView.js +1 -4
  528. package/src/view/elements/notify/ToastLogView.d.ts.map +1 -1
  529. package/src/view/elements/notify/ToastLogView.js +0 -3
  530. package/src/view/elements/progress/SmoothProgressBar.d.ts +72 -0
  531. package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -0
  532. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  533. package/src/view/elements/radial/RadialMenu.js +1 -6
  534. package/src/view/elements/radial/RadialMenuElement.d.ts.map +1 -1
  535. package/src/view/elements/radial/RadialMenuElement.js +1 -4
  536. package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
  537. package/src/view/elements/radial/RadialProgressView.d.ts.map +1 -1
  538. package/src/view/elements/radial/RadialProgressView.js +4 -9
  539. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  540. package/src/view/elements/tiles2d/Tile.js +3 -6
  541. package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
  542. package/src/view/elements/tiles2d/TileGrid.js +0 -5
  543. package/src/view/minimap/Minimap.d.ts.map +1 -1
  544. package/src/view/minimap/Minimap.js +11 -16
  545. package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -2
  546. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  547. package/src/view/minimap/dom/MinimapTerrainView.d.ts +1 -1
  548. package/src/view/minimap/dom/MinimapTerrainView.d.ts.map +1 -1
  549. package/src/view/minimap/gl/MarkerGL.d.ts +2 -12
  550. package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
  551. package/src/view/minimap/gl/MarkerGL.js +60 -56
  552. package/src/view/minimap/gl/MinimapMarkersGL.d.ts +1 -1
  553. package/src/view/minimap/gl/MinimapMarkersGL.d.ts.map +1 -1
  554. package/src/view/minimap/gl/MinimapTerrainGL.d.ts +1 -2
  555. package/src/view/minimap/gl/MinimapTerrainGL.d.ts.map +1 -1
  556. package/src/view/renderModel.d.ts.map +1 -1
  557. package/src/view/renderModel.js +3 -7
  558. package/src/view/task/TaskProgressView.d.ts.map +1 -1
  559. package/src/view/task/TaskProgressView.js +0 -5
  560. package/src/core/collection/set/Set.d.ts.map +0 -1
  561. package/src/core/geom/2d/Geometry2D.d.ts +0 -31
  562. package/src/core/geom/2d/Geometry2D.d.ts.map +0 -1
  563. package/src/core/geom/2d/Geometry2D.js +0 -59
  564. package/src/core/geom/2d/UvUtils.d.ts +0 -15
  565. package/src/core/geom/2d/UvUtils.d.ts.map +0 -1
  566. package/src/core/geom/2d/UvUtils.spec.d.ts +0 -2
  567. package/src/core/geom/2d/UvUtils.spec.d.ts.map +0 -1
  568. package/src/core/geom/2d/UvUtils.spec.js +0 -55
  569. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts +0 -9
  570. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts.map +0 -1
  571. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.js +0 -105
  572. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts +0 -117
  573. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts.map +0 -1
  574. package/src/engine/graphics/geometry/decimation/SimplifyModifier.js +0 -971
  575. package/src/engine/graphics/loader/threejs/GLTFLoader.js +0 -3179
  576. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts +0 -6
  577. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts.map +0 -1
  578. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.js +0 -845
  579. package/src/engine/graphics/postprocess/Postprocess.js +0 -284
  580. package/src/engine/graphics/postprocess/threejs/Mirror.js +0 -330
  581. package/src/engine/graphics/postprocess/threejs/WaterShader.js +0 -306
  582. package/src/engine/graphics/postprocess/threejs/postprocessing/AdaptiveToneMappingPass.js +0 -338
  583. package/src/engine/graphics/postprocess/threejs/postprocessing/BloomPass.js +0 -132
  584. package/src/engine/graphics/postprocess/threejs/postprocessing/BokehPass.js +0 -115
  585. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts +0 -4
  586. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts.map +0 -1
  587. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.js +0 -23
  588. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts +0 -1
  589. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts.map +0 -1
  590. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.js +0 -60
  591. package/src/engine/graphics/postprocess/threejs/postprocessing/EffectComposer.js +0 -150
  592. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts +0 -1
  593. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts.map +0 -1
  594. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.js +0 -61
  595. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts +0 -1
  596. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts.map +0 -1
  597. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.js +0 -117
  598. package/src/engine/graphics/postprocess/threejs/postprocessing/RenderPass.js +0 -63
  599. package/src/engine/graphics/postprocess/threejs/postprocessing/SMAAPass.js +0 -187
  600. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts +0 -1
  601. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts.map +0 -1
  602. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js +0 -67
  603. package/src/engine/graphics/postprocess/threejs/postprocessing/TexturePass.js +0 -50
  604. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts +0 -42
  605. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts.map +0 -1
  606. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.js +0 -117
  607. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts +0 -30
  608. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts.map +0 -1
  609. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.js +0 -106
  610. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts +0 -19
  611. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts.map +0 -1
  612. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.js +0 -90
  613. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts +0 -12
  614. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts.map +0 -1
  615. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.js +0 -52
  616. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts +0 -12
  617. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts.map +0 -1
  618. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.js +0 -51
  619. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts +0 -76
  620. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts.map +0 -1
  621. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.js +0 -468
  622. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts +0 -61
  623. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts.map +0 -1
  624. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.js +0 -230
  625. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts +0 -36
  626. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts.map +0 -1
  627. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.js +0 -76
  628. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts +0 -22
  629. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts.map +0 -1
  630. package/src/engine/graphics/shaders/GaussianBlurShader.js +0 -79
  631. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts +0 -26
  632. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts.map +0 -1
  633. package/src/engine/graphics/shaders/GaussianGlowShader.js +0 -83
  634. package/src/engine/graphics/shaders/NormalMapShader.d.ts +0 -33
  635. package/src/engine/graphics/shaders/NormalMapShader.d.ts.map +0 -1
  636. package/src/engine/graphics/shaders/NormalMapShader.js +0 -62
  637. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts +0 -3
  638. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts.map +0 -1
  639. package/src/engine/graphics/shaders/SoftOutlineShader.js +0 -111
  640. package/src/engine/graphics/three/Reflector.d.ts +0 -12
  641. package/src/engine/graphics/three/Reflector.d.ts.map +0 -1
  642. package/src/engine/graphics/three/Reflector.js +0 -281
  643. package/src/engine/graphics/three/Refractor.d.ts +0 -11
  644. package/src/engine/graphics/three/Refractor.d.ts.map +0 -1
  645. package/src/engine/graphics/three/Refractor.js +0 -352
  646. package/src/engine/navigation/ecs/components/PathFinder.d.ts +0 -14
  647. package/src/engine/navigation/ecs/components/PathFinder.d.ts.map +0 -1
  648. package/src/engine/navigation/ecs/components/PathFinder.js +0 -11
  649. package/src/view/elements/navigation/NavigationMenu.d.ts +0 -13
  650. package/src/view/elements/navigation/NavigationMenu.d.ts.map +0 -1
  651. package/src/view/elements/navigation/NavigationMenu.js +0 -27
  652. /package/src/core/collection/set/{Set.d.ts → ArraySet.d.ts} +0 -0
@@ -1,63 +0,0 @@
1
- /**
2
- * @author alteredq / http://alteredqualia.com/
3
- */
4
- import { Color } from 'three';
5
-
6
- const RenderPass = function (scene, camera, overrideMaterial, clearColor, clearAlpha) {
7
-
8
- this.scene = scene;
9
- this.camera = camera;
10
-
11
- this.overrideMaterial = overrideMaterial;
12
-
13
- this.clearColor = clearColor;
14
- this.clearAlpha = (clearAlpha !== undefined) ? clearAlpha : 1;
15
-
16
- this.oldClearColor = new Color();
17
- this.oldClearAlpha = 1;
18
-
19
- this.enabled = true;
20
- this.clear = true;
21
- this.needsSwap = false;
22
-
23
- };
24
-
25
- RenderPass.prototype = {
26
-
27
- render: function (renderer, writeBuffer, readBuffer, delta) {
28
-
29
- this.scene.overrideMaterial = this.overrideMaterial;
30
-
31
- if (this.clearColor) {
32
-
33
- this.oldClearColor.copy(renderer.getClearColor());
34
- this.oldClearAlpha = renderer.getClearAlpha();
35
-
36
-
37
- renderer.setClearColor(this.clearColor, this.clearAlpha);
38
-
39
- }
40
-
41
- const oldRenderTarget = renderer.getRenderTarget();
42
-
43
- renderer.setRenderTarget(readBuffer);
44
- if (this.clear) {
45
- renderer.clearColor();
46
- }
47
-
48
- renderer.render(this.scene, this.camera);
49
-
50
- renderer.setRenderTarget(oldRenderTarget);
51
-
52
- if (this.clearColor) {
53
-
54
- renderer.setClearColor(this.oldClearColor, this.oldClearAlpha);
55
-
56
- }
57
-
58
- this.scene.overrideMaterial = null;
59
-
60
- }
61
-
62
- };
63
- export default RenderPass;
@@ -1,187 +0,0 @@
1
- /**
2
- * Created by Alex on 25/03/2016.
3
- */
4
- /**
5
- * @author mpk / http://polko.me/
6
- */
7
- import {
8
- LinearFilter,
9
- Mesh,
10
- NearestFilter,
11
- OrthographicCamera,
12
- PlaneBufferGeometry,
13
- RGBAFormat,
14
- RGBFormat,
15
- Scene,
16
- ShaderMaterial,
17
- Texture,
18
- UniformsUtils,
19
- WebGLRenderTarget
20
- } from 'three';
21
-
22
- import SMAAShader from "../shaders/SMAAShader.js";
23
-
24
- const SMAAPass = function (width, height) {
25
-
26
- // render targets
27
-
28
- this.edgesRT = new WebGLRenderTarget(width, height, {
29
- depthBuffer: false,
30
- stencilBuffer: false,
31
- generateMipmaps: false,
32
- minFilter: LinearFilter,
33
- format: RGBFormat
34
- });
35
-
36
- this.weightsRT = new WebGLRenderTarget(width, height, {
37
- depthBuffer: false,
38
- stencilBuffer: false,
39
- generateMipmaps: false,
40
- minFilter: LinearFilter,
41
- format: RGBAFormat
42
- });
43
-
44
- // textures
45
-
46
- const areaTextureImage = new Image();
47
- areaTextureImage.src = this.getAreaTexture();
48
-
49
- this.areaTexture = new Texture();
50
- this.areaTexture.image = areaTextureImage;
51
- this.areaTexture.format = RGBFormat;
52
- this.areaTexture.minFilter = LinearFilter;
53
- this.areaTexture.generateMipmaps = false;
54
- this.areaTexture.needsUpdate = true;
55
- this.areaTexture.flipY = false;
56
-
57
- const searchTextureImage = new Image();
58
- searchTextureImage.src = this.getSearchTexture();
59
-
60
- this.searchTexture = new Texture();
61
- this.searchTexture.image = searchTextureImage;
62
- this.searchTexture.magFilter = NearestFilter;
63
- this.searchTexture.minFilter = NearestFilter;
64
- this.searchTexture.generateMipmaps = false;
65
- this.searchTexture.needsUpdate = true;
66
- this.searchTexture.flipY = false;
67
-
68
- // materials - pass 1
69
-
70
- if (SMAAShader === undefined) {
71
- console.error("THREE.SMAAPass relies on SMAAShader");
72
- }
73
-
74
- this.uniformsEdges = UniformsUtils.clone(SMAAShader[0].uniforms);
75
-
76
- this.uniformsEdges["resolution"].value.set(1 / width, 1 / height);
77
-
78
- this.materialEdges = new ShaderMaterial({
79
- defines: SMAAShader[0].defines,
80
- uniforms: this.uniformsEdges,
81
- vertexShader: SMAAShader[0].vertexShader,
82
- fragmentShader: SMAAShader[0].fragmentShader
83
- });
84
-
85
- // materials - pass 2
86
-
87
- this.uniformsWeights = UniformsUtils.clone(SMAAShader[1].uniforms);
88
-
89
- this.uniformsWeights["resolution"].value.set(1 / width, 1 / height);
90
- this.uniformsWeights["tDiffuse"].value = this.edgesRT;
91
- this.uniformsWeights["tArea"].value = this.areaTexture;
92
- this.uniformsWeights["tSearch"].value = this.searchTexture;
93
-
94
- this.materialWeights = new ShaderMaterial({
95
- defines: SMAAShader[1].defines,
96
- uniforms: this.uniformsWeights,
97
- vertexShader: SMAAShader[1].vertexShader,
98
- fragmentShader: SMAAShader[1].fragmentShader
99
- });
100
-
101
- // materials - pass 3
102
-
103
- this.uniformsBlend = UniformsUtils.clone(SMAAShader[2].uniforms);
104
-
105
- this.uniformsBlend["resolution"].value.set(1 / width, 1 / height);
106
- this.uniformsBlend["tDiffuse"].value = this.weightsRT;
107
-
108
- this.materialBlend = new ShaderMaterial({
109
- uniforms: this.uniformsBlend,
110
- vertexShader: SMAAShader[2].vertexShader,
111
- fragmentShader: SMAAShader[2].fragmentShader
112
- });
113
-
114
- //
115
-
116
- this.renderToScreen = false;
117
-
118
- this.enabled = true;
119
- this.needsSwap = false;
120
- this.clear = false;
121
-
122
- this.camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);
123
- this.scene = new Scene();
124
-
125
- this.quad = new Mesh(new PlaneBufferGeometry(2, 2), null);
126
- this.scene.add(this.quad);
127
-
128
- };
129
-
130
- SMAAPass.prototype = {
131
-
132
- render: function (renderer, writeBuffer, readBuffer, delta) {
133
-
134
- // pass 1
135
-
136
- this.uniformsEdges["tDiffuse"].value = readBuffer;
137
-
138
- this.quad.material = this.materialEdges;
139
-
140
- renderer.render(this.scene, this.camera, this.edgesRT, this.clear);
141
-
142
- // pass 2
143
-
144
- this.quad.material = this.materialWeights;
145
-
146
- renderer.render(this.scene, this.camera, this.weightsRT, this.clear);
147
-
148
- // pass 3
149
-
150
- this.uniformsBlend["tColor"].value = readBuffer;
151
-
152
- this.quad.material = this.materialBlend;
153
-
154
- if (this.renderToScreen) {
155
-
156
- renderer.render(this.scene, this.camera);
157
-
158
- } else {
159
-
160
- renderer.render(this.scene, this.camera, writeBuffer, this.clear);
161
-
162
- }
163
-
164
- },
165
-
166
- setSize: function (width, height) {
167
-
168
- this.edgesRT.setSize(width, height);
169
- this.weightsRT.setSize(width, height);
170
-
171
- this.materialEdges.uniforms['resolution'].value.set(1 / width, 1 / height);
172
- this.materialWeights.uniforms['resolution'].value.set(1 / width, 1 / height);
173
- this.materialBlend.uniforms['resolution'].value.set(1 / width, 1 / height);
174
-
175
- },
176
-
177
- getAreaTexture: function () {
178
- return 'data:image/png;base64,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';
179
- },
180
-
181
- getSearchTexture: function () {
182
- return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAAAAABIXyLAAAAAOElEQVRIx2NgGAWjYBSMglEwEICREYRgFBZBqDCSLA2MGPUIVQETE9iNUAqLR5gIeoQKRgwXjwAAGn4AtaFeYLEAAAAASUVORK5CYII=';
183
- }
184
-
185
- };
186
-
187
- export default SMAAPass;
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SavePass.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SavePass.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js"],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- /**
2
- * @author alteredq / http://alteredqualia.com/
3
- */
4
-
5
- THREE.SavePass = function (renderTarget) {
6
-
7
- if (THREE.CopyShader === undefined)
8
- console.error("THREE.SavePass relies on THREE.CopyShader");
9
-
10
- const shader = THREE.CopyShader;
11
-
12
- this.textureID = "tDiffuse";
13
-
14
- this.uniforms = THREE.UniformsUtils.clone(shader.uniforms);
15
-
16
- this.material = new THREE.ShaderMaterial({
17
-
18
- uniforms: this.uniforms,
19
- vertexShader: shader.vertexShader,
20
- fragmentShader: shader.fragmentShader
21
-
22
- });
23
-
24
- this.renderTarget = renderTarget;
25
-
26
- if (this.renderTarget === undefined) {
27
-
28
- this.renderTargetParameters = {
29
- minFilter: THREE.LinearFilter,
30
- magFilter: THREE.LinearFilter,
31
- format: THREE.RGBFormat,
32
- stencilBuffer: false
33
- };
34
- this.renderTarget = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight, this.renderTargetParameters);
35
-
36
- }
37
-
38
- this.enabled = true;
39
- this.needsSwap = false;
40
- this.clear = false;
41
-
42
-
43
- this.camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
44
- this.scene = new THREE.Scene();
45
-
46
- this.quad = new THREE.Mesh(new THREE.PlaneBufferGeometry(2, 2), null);
47
- this.scene.add(this.quad);
48
-
49
- };
50
-
51
- THREE.SavePass.prototype = {
52
-
53
- render: function (renderer, writeBuffer, readBuffer, delta) {
54
-
55
- if (this.uniforms[this.textureID]) {
56
-
57
- this.uniforms[this.textureID].value = readBuffer;
58
-
59
- }
60
-
61
- this.quad.material = this.material;
62
-
63
- renderer.render(this.scene, this.camera, this.renderTarget, this.clear);
64
-
65
- }
66
-
67
- };
@@ -1,50 +0,0 @@
1
- /**
2
- * @author alteredq / http://alteredqualia.com/
3
- */
4
- import * as THREE from 'TRHEE';
5
- import CopyShader from "../shaders/CopyShader.js";
6
-
7
- const TexturePass = function (texture, opacity) {
8
-
9
- if (CopyShader === undefined)
10
- console.error("THREE.TexturePass relies on THREE.CopyShader");
11
-
12
- const shader = CopyShader;
13
-
14
- this.uniforms = THREE.UniformsUtils.clone(shader.uniforms);
15
-
16
- this.uniforms["opacity"].value = (opacity !== undefined) ? opacity : 1.0;
17
- this.uniforms["tDiffuse"].value = texture;
18
-
19
- this.material = new THREE.ShaderMaterial({
20
-
21
- uniforms: this.uniforms,
22
- vertexShader: shader.vertexShader,
23
- fragmentShader: shader.fragmentShader
24
-
25
- });
26
-
27
- this.enabled = true;
28
- this.needsSwap = false;
29
-
30
-
31
- this.camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
32
- this.scene = new THREE.Scene();
33
-
34
- this.quad = new THREE.Mesh(new THREE.PlaneBufferGeometry(2, 2), null);
35
- this.scene.add(this.quad);
36
-
37
- };
38
-
39
- TexturePass.prototype = {
40
-
41
- render: function (renderer, writeBuffer, readBuffer, delta) {
42
-
43
- this.quad.material = this.material;
44
-
45
- renderer.render(this.scene, this.camera, readBuffer);
46
-
47
- }
48
-
49
- };
50
- export default TexturePass;
@@ -1,42 +0,0 @@
1
- export default BokehShader;
2
- declare namespace BokehShader {
3
- namespace uniforms {
4
- namespace tColor {
5
- let type: string;
6
- let value: any;
7
- }
8
- namespace tDepth {
9
- let type_1: string;
10
- export { type_1 as type };
11
- let value_1: any;
12
- export { value_1 as value };
13
- }
14
- namespace focus {
15
- let type_2: string;
16
- export { type_2 as type };
17
- let value_2: number;
18
- export { value_2 as value };
19
- }
20
- namespace aspect {
21
- let type_3: string;
22
- export { type_3 as type };
23
- let value_3: number;
24
- export { value_3 as value };
25
- }
26
- namespace aperture {
27
- let type_4: string;
28
- export { type_4 as type };
29
- let value_4: number;
30
- export { value_4 as value };
31
- }
32
- namespace maxblur {
33
- let type_5: string;
34
- export { type_5 as type };
35
- let value_5: number;
36
- export { value_5 as value };
37
- }
38
- }
39
- let vertexShader: string;
40
- let fragmentShader: string;
41
- }
42
- //# sourceMappingURL=BokehShader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BokehShader.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/postprocess/threejs/shaders/BokehShader.js"],"names":[],"mappings":""}
@@ -1,117 +0,0 @@
1
- /**
2
- * @author alteredq / http://alteredqualia.com/
3
- *
4
- * Depth-of-field shader with bokeh
5
- * ported from GLSL shader by Martins Upitis
6
- * http://artmartinsh.blogspot.com/2010/02/glsl-lens-blur-filter-with-bokeh.html
7
- */
8
- const BokehShader = {
9
-
10
- uniforms: {
11
-
12
- "tColor": { type: "t", value: null },
13
- "tDepth": { type: "t", value: null },
14
- "focus": { type: "f", value: 1.0 },
15
- "aspect": { type: "f", value: 1.0 },
16
- "aperture": { type: "f", value: 0.025 },
17
- "maxblur": { type: "f", value: 1.0 }
18
-
19
- },
20
-
21
- vertexShader: [
22
-
23
- "varying vec2 vUv;",
24
-
25
- "void main() {",
26
-
27
- "vUv = uv;",
28
- "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
29
-
30
- "}"
31
-
32
- ].join("\n"),
33
-
34
- fragmentShader: [
35
-
36
- "varying vec2 vUv;",
37
-
38
- "uniform sampler2D tColor;",
39
- "uniform sampler2D tDepth;",
40
-
41
- "uniform float maxblur;", // max blur amount
42
- "uniform float aperture;", // aperture - bigger values for shallower depth of field
43
-
44
- "uniform float focus;",
45
- "uniform float aspect;",
46
-
47
- "void main() {",
48
-
49
- "vec2 aspectcorrect = vec2( 1.0, aspect );",
50
-
51
- "vec4 depth1 = texture2D( tDepth, vUv );",
52
-
53
- "float factor = depth1.x - focus;",
54
-
55
- "vec2 dofblur = vec2 ( clamp( factor * aperture, -maxblur, maxblur ) );",
56
-
57
- "vec2 dofblur9 = dofblur * 0.9;",
58
- "vec2 dofblur7 = dofblur * 0.7;",
59
- "vec2 dofblur4 = dofblur * 0.4;",
60
-
61
- "vec4 col = vec4( 0.0 );",
62
-
63
- "col += texture2D( tColor, vUv.xy );",
64
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur );",
65
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur );",
66
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur );",
67
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur );",
68
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur );",
69
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur );",
70
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur );",
71
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur );",
72
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur );",
73
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur );",
74
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur );",
75
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur );",
76
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur );",
77
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur );",
78
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur );",
79
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur );",
80
-
81
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur9 );",
82
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur9 );",
83
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur9 );",
84
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur9 );",
85
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur9 );",
86
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur9 );",
87
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur9 );",
88
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur9 );",
89
-
90
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur7 );",
91
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur7 );",
92
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur7 );",
93
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur7 );",
94
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur7 );",
95
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur7 );",
96
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur7 );",
97
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur7 );",
98
-
99
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur4 );",
100
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.4, 0.0 ) * aspectcorrect ) * dofblur4 );",
101
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur4 );",
102
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur4 );",
103
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur4 );",
104
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur4 );",
105
- "col += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur4 );",
106
- "col += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur4 );",
107
-
108
- "gl_FragColor = col / 41.0;",
109
- "gl_FragColor.a = 1.0;",
110
-
111
- "}"
112
-
113
- ].join("\n")
114
-
115
- };
116
-
117
- export default BokehShader;