@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,971 +0,0 @@
1
- /*
2
-
3
- Mesh Simplification Unit
4
- (C) by Sven Forstmann in 2014
5
- License : MIT (http://opensource.org/licenses/MIT)
6
- https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification
7
- http://www.gamedev.net/topic/656486-high-speed-quadric-mesh-simplification-without-problems-resolved/
8
- http://voxels.blogspot.com/2014/05/quadric-mesh-simplification-with-source.html
9
- https://github.com/neurolabusc/Fast-Quadric-Mesh-Simplification-Pascal-
10
-
11
- @author Sven Forstmann, 2014
12
- @author Joshua Koo, 2016
13
- - JS Port by Joshua Koo in 2016, https://github.com/zz85 @blurspline
14
- - https://github.com/neurolabusc/Fast-Quadric-Mesh-Simplification-Pascal-/blob/master/meshify_simplify_quadric.pas
15
- @author Alex Goldring, 2018
16
- - Cleanup of code style, more JavaScript-like, and less C-like
17
- - Broken up a single closure into multiple member methods
18
- - introduction of JSDoc types
19
- - optimized many array loops from (i=0;i<arr.length;i++) to (i=0,l=arr.length;i<l;i++) as arrays are live and recomputing length can be avoided in most cases
20
-
21
- */
22
-
23
- /**
24
- *
25
- * @constructor
26
- * @class
27
- */
28
- function SymetricMatrix() {
29
- /**
30
- * Matrix elements
31
- * @type {number[]}
32
- */
33
- this.m = new Array(10).fill(0);
34
- }
35
-
36
-
37
- SymetricMatrix.prototype = {
38
- /**
39
- *
40
- * @param {number} m11
41
- * @param {number} m12
42
- * @param {number} m13
43
- * @param {number} m14
44
- * @param {number} m22
45
- * @param {number} m23
46
- * @param {number} m24
47
- * @param {number} m33
48
- * @param {number} m34
49
- * @param {number} m44
50
- * @returns {SymetricMatrix}
51
- */
52
- set: function set(
53
- m11, m12, m13, m14,
54
- m22, m23, m24,
55
- m33, m34,
56
- m44) {
57
-
58
- this.m[0] = m11;
59
- this.m[1] = m12;
60
- this.m[2] = m13;
61
- this.m[3] = m14;
62
-
63
- this.m[4] = m22;
64
- this.m[5] = m23;
65
- this.m[6] = m24;
66
-
67
- this.m[7] = m33;
68
- this.m[8] = m34;
69
-
70
- this.m[9] = m44;
71
- return this;
72
- },
73
-
74
- /**
75
- *
76
- * @param {number} a
77
- * @param {number} b
78
- * @param {number} c
79
- * @param {number} d
80
- * @returns {SymetricMatrix}
81
- */
82
- makePlane: function makePlane(a, b, c, d) {
83
- return this.set(
84
- a * a, a * b, a * c, a * d,
85
- b * b, b * c, b * d,
86
- c * c, c * d,
87
- d * d
88
- );
89
- },
90
-
91
- /**
92
- *
93
- * @param {int} a11
94
- * @param {int} a12
95
- * @param {int} a13
96
- * @param {int} a21
97
- * @param {int} a22
98
- * @param {int} a23
99
- * @param {int} a31
100
- * @param {int} a32
101
- * @param {int} a33
102
- * @returns {number}
103
- */
104
- det: function determinant(
105
- a11, a12, a13,
106
- a21, a22, a23,
107
- a31, a32, a33
108
- ) {
109
- const det = this.m[a11] * this.m[a22] * this.m[a33]
110
- + this.m[a13] * this.m[a21] * this.m[a32]
111
- + this.m[a12] * this.m[a23] * this.m[a31]
112
- - this.m[a13] * this.m[a22] * this.m[a31]
113
- - this.m[a11] * this.m[a23] * this.m[a32]
114
- - this.m[a12] * this.m[a21] * this.m[a33];
115
- return det;
116
- },
117
-
118
- /**
119
- * produces new Matrix
120
- * @param {SymetricMatrix} n
121
- * @returns {SymetricMatrix}
122
- */
123
- add: function add(n) {
124
- return new SymetricMatrix().set(
125
- this.m[0] + n.m[0],
126
- this.m[1] + n.m[1],
127
- this.m[2] + n.m[2],
128
- this.m[3] + n.m[3],
129
-
130
- this.m[4] + n.m[4],
131
- this.m[5] + n.m[5],
132
- this.m[6] + n.m[6],
133
-
134
- this.m[7] + n.m[7],
135
- this.m[8] + n.m[8],
136
-
137
- this.m[9] + n.m[9]
138
- );
139
- },
140
-
141
- /**
142
- *
143
- * @param {SymetricMatrix} n
144
- */
145
- addSelf: function addSelf(n) {
146
- this.m[0] += n.m[0];
147
- this.m[1] += n.m[1];
148
- this.m[2] += n.m[2];
149
- this.m[3] += n.m[3];
150
- this.m[4] += n.m[4];
151
- this.m[5] += n.m[5];
152
- this.m[6] += n.m[6];
153
- this.m[7] += n.m[7];
154
- this.m[8] += n.m[8];
155
- this.m[9] += n.m[9]
156
- }
157
- };
158
-
159
- /**
160
- * Model Objects
161
- * @constructor
162
- * @class
163
- */
164
- function Triangle() {
165
- /**
166
- * indices for array
167
- * @type {int[]}
168
- */
169
- this.v = new Array(3);
170
- /**
171
- * Errors
172
- * @type {number[]}
173
- */
174
- this.err = new Array(4);
175
- this.deleted = false;
176
- this.dirty = false;
177
-
178
- /**
179
- * Normal
180
- * @type {Vector3}
181
- */
182
- this.n = new Vector3();
183
- }
184
-
185
- // function Vector3(x, y, z) {
186
- // this.x = x;
187
- // this.y = y;
188
- // this.z = z;
189
- // };
190
-
191
- const Vector3 = THREE.Vector3;
192
-
193
- function Vertex() {
194
- /**
195
- *
196
- * @type {Vector3}
197
- */
198
- this.p = new Vector3();
199
- /**
200
- *
201
- * @type {int}
202
- */
203
- this.tstart = -1;
204
- /**
205
- *
206
- * @type {int}
207
- */
208
- this.tcount = -1;
209
- /**
210
- *
211
- * @type {SymetricMatrix}
212
- */
213
- this.q = new SymetricMatrix();
214
- /**
215
- *
216
- * @type {boolean}
217
- */
218
- this.border = false;
219
- }
220
-
221
- function Ref() {
222
- /**
223
- *
224
- * @type {int}
225
- */
226
- this.tid = -1;
227
- /**
228
- *
229
- * @type {int}
230
- */
231
- this.tvertex = -1;
232
- }
233
-
234
- /**
235
- * Error between vertex and Quadric
236
- *
237
- * @param {SymetricMatrix} q
238
- * @param {number} x
239
- * @param {number} y
240
- * @param {number} z
241
- * @returns {number}
242
- */
243
- function vertex_error(q, x, y, z) {
244
- return q.m[0] * x * x + 2 * q.m[1] * x * y + 2 * q.m[2] * x * z + 2 * q.m[3] * x + q.m[4] * y * y
245
- + 2 * q.m[5] * y * z + 2 * q.m[6] * y + q.m[7] * z * z + 2 * q.m[8] * z + q.m[9];
246
- }
247
-
248
- /**
249
- *
250
- * @param {Array} array
251
- * @param {number} count
252
- * @returns {Array|undefined} removed elements
253
- */
254
- function resize(array, count) {
255
- if (count < array.length) {
256
- return array.splice(count);
257
- }
258
-
259
- if (count > array.length) {
260
- // in JS, arrays need not be expanded
261
- // console.log('more');
262
- }
263
- }
264
-
265
- function SimplifyModifier() {
266
- /**
267
- *
268
- * @type {Array<Triangle>}
269
- */
270
- this.triangles = []; // Triangle
271
- /**
272
- *
273
- * @type {Array<Vertex>}
274
- */
275
- this.vertices = []; // Vertex
276
- /**
277
- *
278
- * @type {Array<Ref>}
279
- */
280
- this.refs = []; // Ref
281
- }
282
-
283
- /**
284
- *
285
- * @param {Vector3[]} origVertices
286
- * @param {Face[]} origFaces
287
- * @returns {void}
288
- * @private
289
- */
290
- SimplifyModifier.prototype.init = function init(origVertices, origFaces) {
291
-
292
- this.vertices = origVertices.map(v => {
293
- const vert = new Vertex();
294
- vert.p.copy(v);
295
- return vert;
296
- });
297
-
298
-
299
- this.triangles = origFaces.map(f => {
300
- const tri = new Triangle();
301
- tri.v[0] = f.a;
302
- tri.v[1] = f.b;
303
- tri.v[2] = f.c;
304
- return tri;
305
- });
306
- };
307
-
308
- /**
309
- * Update triangle connections and edge error after a edge is collapsed
310
- *
311
- * @param {int} i0
312
- * @param {Vertex} v
313
- * @param {int[]} deleted
314
- * @param {int} deleted_triangles
315
- * @returns {number}
316
- * @private
317
- */
318
- SimplifyModifier.prototype.update_triangles = function update_triangles(i0, v, deleted, deleted_triangles) {
319
- // console.log('update_triangles');
320
- // vec3f p;
321
- const p = new Vector3();
322
- for (let k = 0; k < v.tcount; k++) {
323
- /**
324
- *
325
- * @type {Ref}
326
- */
327
- const r = this.refs[v.tstart + k];
328
- /**
329
- *
330
- * @type {Triangle}
331
- */
332
- const t = this.triangles[r.tid];
333
-
334
- if (t.deleted) {
335
- continue;
336
- }
337
-
338
- if (deleted[k]) {
339
- t.deleted = true;
340
- deleted_triangles++;
341
- continue;
342
- }
343
-
344
- t.v[r.tvertex] = i0;
345
- t.dirty = true;
346
-
347
- t.err[0] = this.calculate_error(t.v[0], t.v[1], p);
348
- t.err[1] = this.calculate_error(t.v[1], t.v[2], p);
349
- t.err[2] = this.calculate_error(t.v[2], t.v[0], p);
350
- t.err[3] = Math.min(t.err[0], t.err[1], t.err[2]);
351
- this.refs.push(r);
352
- }
353
- return deleted_triangles;
354
- };
355
-
356
- /**
357
- *
358
- * Main simplification function
359
- *
360
- * @param {number} [agressiveness=7] sharpness to increase the threshold.
361
- * 5..8 are good numbers
362
- * more iterations yield higher quality
363
- * @param {number} target_count target nr. of triangles
364
- * @returns {void}
365
- * @private
366
- */
367
- SimplifyModifier.prototype.simplify_mesh = function simplify_mesh(target_count, agressiveness) {
368
- if (agressiveness === undefined) {
369
- agressiveness = 7;
370
- }
371
-
372
- // TODO normalize_mesh to max length 1?
373
-
374
- console.time('simplify_mesh');
375
-
376
- const triangles = this.triangles;
377
- const vertices = this.vertices;
378
- const refs = this.refs;
379
-
380
- let i, il;
381
-
382
- // set all triangles to non deleted
383
- for (i = 0, il = triangles.length; i < il; i++) {
384
- triangles[i].deleted = false;
385
- }
386
-
387
-
388
- console.timeEnd('simplify_mesh');
389
-
390
- // main iteration loop
391
-
392
- let deleted_triangles = 0;
393
- const deleted0 = [], deleted1 = []; // std::vector<int>
394
- const triangle_count = triangles.length;
395
-
396
-
397
- for (let iteration = 0; iteration < 100; iteration++) {
398
- console.log("iteration %d - triangles %d, tris\n",
399
- iteration, triangle_count - deleted_triangles, triangles.length);
400
-
401
- if (triangle_count - deleted_triangles <= target_count) break;
402
-
403
- // update mesh once in a while
404
- if (iteration % 5 === 0) {
405
- this.update_mesh(iteration);
406
- }
407
-
408
- // clear dirty flag
409
- for (let j = 0; j < triangles.length; j++) {
410
- triangles[j].dirty = false;
411
- }
412
-
413
- /**
414
-
415
- All triangles with edges below the threshold will be removed
416
-
417
- The following numbers works well for most models.
418
- If it does not, try to adjust the 3 parameters
419
- @type {number}
420
- */
421
- const threshold = 0.000000001 * Math.pow(iteration + 3, agressiveness);
422
-
423
- // remove vertices & mark deleted triangles
424
- for (i = 0, il = triangles.length; i < il; i++) {
425
- const t = triangles[i];
426
-
427
- if (t.err[3] > threshold || t.deleted || t.dirty) {
428
- continue;
429
- }
430
-
431
- for (j = 0; j < 3; j++) {
432
-
433
- if (t.err[j] < threshold) {
434
-
435
- const i0 = t.v[j];
436
- const v0 = vertices[i0];
437
-
438
- const i1 = t.v[(j + 1) % 3];
439
- const v1 = vertices[i1];
440
-
441
- // Border check
442
- if (v0.border !== v1.border) {
443
- continue;
444
- }
445
-
446
- // Compute vertex to collapse to
447
- const p = new Vector3();
448
- this.calculate_error(i0, i1, p);
449
- // console.log('Compute vertex to collapse to', p);
450
-
451
- resize(deleted0, v0.tcount); // normals temporarily
452
- resize(deleted1, v1.tcount); // normals temporarily
453
-
454
- // dont remove if flipped
455
- if (this.flipped(p, i0, i1, v0, v1, deleted0)) continue;
456
- if (this.flipped(p, i1, i0, v1, v0, deleted1)) continue;
457
-
458
- // not flipped, so remove edge
459
- // console.log('not flipped, remove edge');
460
- // console.log(v0.p, p);
461
- v0.p = p;
462
- // v0.q = v1.q + v0.q;
463
- v0.q.addSelf(v1.q);
464
-
465
- const tstart = refs.length;
466
-
467
- // CONTINUE
468
-
469
- deleted_triangles = this.update_triangles(i0, v0, deleted0, deleted_triangles);
470
- // console.log('deleted triangle v0', deleted_triangles);
471
- deleted_triangles = this.update_triangles(i0, v1, deleted1, deleted_triangles);
472
- // console.log('deleted triangle v1', deleted_triangles);
473
-
474
- const tcount = refs.length - tstart;
475
-
476
- if (tcount <= v0.tcount) {
477
- // console.log('save ram?');
478
- // if(tcount)
479
- // move(refs, v0.tstart, tstart, tcount);
480
- } else {
481
- // append
482
- v0.tstart = tstart;
483
- }
484
-
485
- v0.tcount = tcount;
486
- break;
487
-
488
- }
489
- } // end for j
490
-
491
- // done?
492
- if (triangle_count - deleted_triangles <= target_count) {
493
- break;
494
- }
495
- }
496
-
497
- } // end iteration
498
-
499
- function move(refs, dest, source, count) {
500
- for (let i = 0; i < count; i++) {
501
- refs[dest + i] = refs[source + i];
502
- }
503
- }
504
-
505
- // clean up mesh
506
- this.compact_mesh();
507
-
508
- // ready
509
- console.timeEnd('simplify_mesh');
510
-
511
- // int timeEnd=timeGetTime();
512
- // printf("%s - %d/%d %d%% removed in %d ms\n",__FUNCTION__,
513
- // triangle_count-deleted_triangles,
514
- // triangle_count,deleted_triangles*100/triangle_count,
515
- // timeEnd-timeStart);
516
-
517
- };
518
-
519
-
520
- /**
521
- * compact triangles, compute edge error and build reference list
522
- * @param {int} iteration
523
- * @returns {void}
524
- * @private
525
- */
526
- SimplifyModifier.prototype.update_mesh = function update_mesh(iteration) {
527
- const triangles = this.triangles;
528
- const vertices = this.vertices;
529
- const refs = this.refs;
530
-
531
- // console.log('update_mesh', iteration, triangles.length);
532
- if (iteration > 0) {
533
- // compact triangles
534
- let dst = 0;
535
- for (let i = 0; i < triangles.length; i++) {
536
- const target = triangles[i];
537
- if (!target.deleted) {
538
- triangles[dst++] = target;
539
- }
540
- }
541
-
542
- console.log('not deleted dst', triangles.length, dst);
543
- triangles.splice(dst);
544
-
545
- }
546
- //
547
- // Init Quadrics by Plane & Edge Errors
548
- //
549
- // required at the beginning ( iteration == 0 )
550
- // recomputing during the simplification is not required,
551
- // but mostly improves the result for closed meshes
552
- //
553
- if (iteration === 0) {
554
- for (let i = 0; i < vertices.length; i++) {
555
- // may not need to do this.
556
- vertices[i].q = new SymetricMatrix();
557
- }
558
-
559
- for (let i = 0; i < triangles.length; i++) {
560
- /**
561
- *
562
- * @type {Triangle}
563
- */
564
- const t = triangles[i];
565
-
566
- const n = new Vector3();
567
-
568
- const p = new Array(3);
569
-
570
- const p1p0 = new Vector3();
571
- const p2p0 = new Vector3();
572
-
573
- for (let j = 0; j < 3; j++) {
574
- p[j] = vertices[t.v[j]].p;
575
- }
576
-
577
- p1p0.subVectors(p[1], p[0]);
578
- p2p0.subVectors(p[2], p[0]);
579
-
580
-
581
- n.crossVectors(p1p0, p2p0).normalize();
582
-
583
- t.n = n;
584
-
585
- const tmp = new SymetricMatrix().makePlane(
586
- n.x,
587
- n.y,
588
- n.z,
589
- -n.dot(p[0])
590
- );
591
-
592
- for (let j = 0; j < 3; j++) {
593
- vertices[t.v[j]].q.addSelf(tmp);
594
- }
595
-
596
- // vertices[t.v[j]].q =
597
- // vertices[t.v[j]].q.add(SymetricMatrix(n.x,n.y,n.z,-n.dot(p[0])));
598
- }
599
-
600
- for (let i = 0, l = triangles.length; i < l; i++) {
601
-
602
- // Calc Edge Error
603
- const t = triangles[i];
604
-
605
- const p = new Vector3();
606
-
607
- for (let j = 0; j < 3; j++) {
608
- t.err[j] = this.calculate_error(t.v[j], t.v[(j + 1) % 3], p);
609
- }
610
-
611
- t.err[3] = Math.min(t.err[0], t.err[1], t.err[2]);
612
- }
613
- }
614
-
615
- // Init Reference ID list
616
- for (let i = 0, l = vertices.length; i < l; i++) {
617
- vertices[i].tstart = 0;
618
- vertices[i].tcount = 0;
619
- }
620
-
621
- for (let i = 0, l = triangles.length; i < l; i++) {
622
- /**
623
- *
624
- * @type {Triangle}
625
- */
626
- const t = triangles[i];
627
-
628
- for (let j = 0; j < 3; j++) {
629
- const vertexIndex = t.v[j];
630
- const vertex = vertices[vertexIndex];
631
- vertex.tcount++;
632
- }
633
- }
634
-
635
- let tstart = 0;
636
-
637
- for (let i = 0; i < vertices.length; i++) {
638
- /**
639
- *
640
- * @type {Vertex}
641
- */
642
- const v = vertices[i];
643
- v.tstart = tstart;
644
- tstart += v.tcount;
645
- v.tcount = 0;
646
- }
647
-
648
- // Write References
649
- // resize(refs, triangles.length * 3)
650
- console.log('pre ref', refs.length, triangles.length * 3);
651
-
652
- for (let i = refs.length, l = triangles.length * 3; i < l; i++) {
653
- refs[i] = new Ref();
654
- }
655
-
656
- for (let i = 0, l = triangles.length; i < l; i++) {
657
- /**
658
- *
659
- * @type {Triangle}
660
- */
661
- const t = triangles[i];
662
- for (let j = 0; j < 3; j++) {
663
- /**
664
- *
665
- * @type {Vertex}
666
- */
667
- const v = vertices[t.v[j]];
668
- const index = v.tstart + v.tcount;
669
-
670
- refs[index].tid = i;
671
- refs[index].tvertex = j;
672
-
673
- v.tcount++;
674
- }
675
- }
676
-
677
- // Identify boundary : vertices[].border=0,1
678
- if (iteration === 0) {
679
- /**
680
- * @type {int[]}
681
- */
682
- let vcount, vids;
683
-
684
-
685
- for (let i = 0; i < vertices.length; i++) {
686
- vertices[i].border = 0;
687
- }
688
-
689
- for (let i = 0; i < vertices.length; i++) {
690
- /**
691
- *
692
- * @type {Vertex}
693
- */
694
- const v = vertices[i];
695
- // vcount.clear();
696
- // vids.clear();
697
- vcount = [];
698
- vids = [];
699
-
700
- for (let j = 0; j < v.tcount; j++) {
701
- const k = refs[v.tstart + j].tid;
702
- const /*Triangle &*/ t = triangles[k];
703
-
704
- for (let k = 0; k < 3; k++) {
705
- let ofs = 0;
706
- const id = t.v[k];
707
- while (ofs < vcount.length) {
708
- if (vids[ofs] === id) break;
709
- ofs++;
710
- }
711
-
712
- if (ofs === vcount.length) {
713
- vcount.push(1);
714
- vids.push(id);
715
- } else {
716
- vcount[ofs]++;
717
- }
718
- }
719
- }
720
-
721
- for (let j = 0; j < vcount.length; j++) {
722
- if (vcount[j] === 1) {
723
- vertices[vids[j]].border = 1;
724
- }
725
- }
726
- }
727
- }
728
- };
729
-
730
- /**
731
- * Finally compact mesh before exiting
732
- * @returns {void}
733
- * @private
734
- */
735
- SimplifyModifier.prototype.compact_mesh = function compact_mesh() {
736
- console.log('compact_mesh');
737
- const vertices = this.vertices;
738
- const triangles = this.triangles;
739
- /**
740
- *
741
- * @type {int}
742
- */
743
- let dst = 0;
744
- for (let i = 0, l = vertices.length; i < l; i++) {
745
- vertices[i].tcount = 0;
746
- }
747
-
748
- for (let i = 0, l = triangles.length; i < l; i++) {
749
- if (!triangles[i].deleted) {
750
- /**
751
- *
752
- * @type {Triangle}
753
- */
754
- const t = triangles[i];
755
- triangles[dst++] = t;
756
- for (let j = 0; j < 3; j++)
757
- vertices[t.v[j]].tcount = 1;
758
- }
759
- }
760
-
761
- resize(triangles, dst);
762
-
763
- dst = 0;
764
-
765
- for (let i = 0, l = vertices.length; i < l; i++) {
766
- if (vertices[i].tcount) {
767
- vertices[i].tstart = dst;
768
- vertices[dst].p = vertices[i].p;
769
- dst++;
770
- }
771
- }
772
-
773
- for (let i = 0, l = triangles.length; i < l; i++) {
774
- /**
775
- *
776
- * @type {Triangle}
777
- */
778
- const t = triangles[i];
779
- for (let j = 0; j < 3; j++) {
780
- t.v[j] = vertices[t.v[j]].tstart;
781
- }
782
- }
783
-
784
- console.log('%cCompact Mesh', 'background:#f00', vertices.length, dst);
785
- resize(vertices, dst);
786
- console.log('%cCompact Mesh ok', 'background:#f00', vertices.length, dst);
787
- };
788
- /**
789
- * Error for one edge
790
- * if DECIMATE is defined vertex positions are NOT interpolated
791
- * Luebke Survey of Polygonal Simplification Algorithms: "vertices of a model simplified by the decimation algorithm are a subset of the original model’s vertices."
792
- * http://www.cs.virginia.edu/~luebke/publications/pdf/cg+a.2001.pdf
793
- * @param {int} id_v1
794
- * @param {int} id_v2
795
- * @param {Vector3} p_result
796
- * @returns {number}
797
- * @private
798
- */
799
- SimplifyModifier.prototype.calculate_error = function calculate_error(id_v1, id_v2, p_result) {
800
- const vertices = this.vertices;
801
-
802
- // compute interpolated vertex
803
- const vertex1 = vertices[id_v1];
804
- const vertex2 = vertices[id_v2];
805
-
806
- const q = vertex1.q.add(vertex2.q);
807
-
808
- const border = vertex1.border && vertex2.border;
809
-
810
- let error = 0;
811
-
812
- const det = q.det(0, 1, 2, 1, 4, 5, 2, 5, 7);
813
-
814
- if (det !== 0 && !border) {
815
- // q_delta is invertible
816
- p_result.x = -1 / det * (q.det(1, 2, 3, 4, 5, 6, 5, 7, 8)); // vx = A41/det(q_delta)
817
- p_result.y = 1 / det * (q.det(0, 2, 3, 1, 5, 6, 2, 7, 8)); // vy = A42/det(q_delta)
818
- p_result.z = -1 / det * (q.det(0, 1, 3, 1, 4, 6, 2, 5, 8)); // vz = A43/det(q_delta)
819
- error = vertex_error(q, p_result.x, p_result.y, p_result.z);
820
- } else {
821
- // det = 0 -> try to find best result
822
-
823
- /**
824
- * @type {Vector3}
825
- */
826
- const p1 = vertex1.p;
827
- /**
828
- * @type {Vector3}
829
- */
830
- const p2 = vertex2.p;
831
- /**
832
- * @type {Vector3}
833
- */
834
- const p3 = new Vector3().addVectors(p1, p2).multiplyScalar(0.5);
835
-
836
- const error1 = vertex_error(q, p1.x, p1.y, p1.z);
837
- const error2 = vertex_error(q, p2.x, p2.y, p2.z);
838
- const error3 = vertex_error(q, p3.x, p3.y, p3.z);
839
-
840
- error = Math.min(error1, error2, error3);
841
-
842
- if (error1 === error) p_result.copy(p1);
843
- if (error2 === error) p_result.copy(p2);
844
- if (error3 === error) p_result.copy(p3);
845
- }
846
-
847
- return error;
848
- };
849
-
850
- /**
851
- * @type {Vector3}
852
- */
853
- const n = new Vector3();
854
- /**
855
- * @type {Vector3}
856
- */
857
- const d1 = new Vector3();
858
- /**
859
- * @type {Vector3}
860
- */
861
- const d2 = new Vector3();
862
-
863
- /**
864
- * Check if a triangle flips when this edge is removed
865
- * @param {Vector3} p
866
- * @param {int} i0
867
- * @param {int} i1
868
- * @param {Vertex} v0
869
- * @param {Vertex} v1
870
- * @param {int[]} deleted
871
- * @returns {boolean}
872
- * @private
873
- */
874
- SimplifyModifier.prototype.flipped = function flipped(p, i0, i1, v0, v1, deleted) {
875
- const vertices = this.vertices;
876
- const triangles = this.triangles;
877
- const refs = this.refs;
878
-
879
- // const bordercount = 0;
880
- for (let k = 0; k < v0.tcount; k++) {
881
- /**
882
- * @type {Triangle}
883
- */
884
- const t = triangles[refs[v0.tstart + k].tid];
885
- if (t.deleted) {
886
- continue;
887
- }
888
-
889
- const s = refs[v0.tstart + k].tvertex;
890
- const id1 = t.v[(s + 1) % 3];
891
- const id2 = t.v[(s + 2) % 3];
892
-
893
- if (id1 === i1 || id2 === i1) {
894
- // delete ?
895
- // bordercount++;
896
- deleted[k] = true;
897
- continue;
898
- }
899
- /* vec3f */
900
- d1.subVectors(vertices[id1].p, p).normalize();
901
- d2.subVectors(vertices[id2].p, p).normalize();
902
-
903
- if (Math.abs(d1.dot(d2)) > 0.999) {
904
- return true;
905
- }
906
-
907
- n.crossVectors(d1, d2).normalize();
908
- deleted[k] = false;
909
-
910
- if (n.dot(t.n) < 0.2) {
911
- return true;
912
- }
913
- }
914
- return false;
915
- };
916
-
917
- /**
918
- *
919
- * @param {THREE.Geometry|THREE.BufferGeometry} geometry
920
- * @returns {THREE.Geometry}
921
- */
922
- SimplifyModifier.prototype.modify = function (geometry) {
923
- if (geometry instanceof THREE.BufferGeometry && !geometry.vertices && !geometry.faces) {
924
- console.log('converting BufferGeometry to Geometry');
925
- geometry = new THREE.Geometry().fromBufferGeometry(geometry);
926
- }
927
-
928
- const vertices = this.vertices;
929
- const triangles = this.triangles;
930
-
931
- geometry.mergeVertices();
932
-
933
-
934
- // convert format
935
- this.init(geometry.vertices, geometry.faces);
936
-
937
- // simplify!
938
- // simplify_mesh(geometry.faces.length * 0.5 | 0, 7);
939
- // simplify_mesh(geometry.faces.length - 2, 4);
940
-
941
- console.time('simplify');
942
- this.simplify_mesh(150, 7);
943
- console.timeEnd('simplify');
944
-
945
-
946
- console.log('old vertices ' + geometry.vertices.length, 'old faces ' + geometry.faces.length);
947
-
948
- console.log('new vertices ' + vertices.length, 'old faces ' + triangles.length);
949
-
950
-
951
- // TODO convert to buffer geometry.
952
- const newGeo = new THREE.Geometry();
953
-
954
- for (let i = 0, l = vertices.length; i < l; i++) {
955
- const v = vertices[i];
956
- newGeo.vertices.push(v.p)
957
- }
958
-
959
- for (let i = 0, l = triangles.length; i < l; i++) {
960
- const tri = triangles[i];
961
- newGeo.faces.push(new THREE.Face3(
962
- tri.v[0],
963
- tri.v[1],
964
- tri.v[2]
965
- ));
966
- }
967
-
968
- return newGeo;
969
- };
970
-
971
- export { SimplifyModifier }