@woosh/meep-engine 2.106.1 → 2.108.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 (808) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/meep.cjs +1972 -2314
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +1972 -2315
  5. package/editor/Editor.js +55 -60
  6. package/editor/SelectionVisualizer.js +111 -109
  7. package/editor/actions/concrete/ComponentAddAction.js +0 -3
  8. package/editor/actions/concrete/ComponentRemoveAction.js +0 -4
  9. package/editor/actions/concrete/EntityCreateAction.js +0 -3
  10. package/editor/actions/concrete/EntityRemoveAction.js +0 -4
  11. package/editor/actions/concrete/SelectionAddAction.js +0 -3
  12. package/editor/actions/concrete/SelectionClearAction.js +0 -3
  13. package/editor/actions/concrete/SelectionRemoveAction.js +0 -3
  14. package/editor/ecs/EditorEntity.js +8 -6
  15. package/editor/tools/SelectionTool.js +0 -5
  16. package/editor/tools/TopDownCameraControlTool.js +2 -5
  17. package/editor/tools/TransformTool.js +137 -136
  18. package/editor/tools/engine/Tool.js +1 -6
  19. package/editor/tools/engine/ToolEngine.js +145 -148
  20. package/editor/tools/v2/TransformControls.js +25 -24
  21. package/editor/view/EditorView.js +0 -5
  22. package/editor/view/ecs/ComponentControlFactory.js +37 -40
  23. package/editor/view/ecs/EntityEditor.js +0 -3
  24. package/editor/view/ecs/EntityList.js +6 -11
  25. package/editor/view/ecs/components/MeshController.js +4 -7
  26. package/editor/view/ecs/components/TransformController.js +3 -9
  27. package/editor/view/tools/ToolView.js +2 -8
  28. package/package.json +1 -1
  29. package/src/core/IdPool.d.ts.map +1 -1
  30. package/src/core/IdPool.js +0 -5
  31. package/src/core/UUID.d.ts.map +1 -1
  32. package/src/core/UUID.js +0 -4
  33. package/src/core/binary/BitSet.d.ts +17 -14
  34. package/src/core/binary/BitSet.d.ts.map +1 -1
  35. package/src/core/binary/BitSet.js +411 -412
  36. package/src/core/binary/int32_to_binary_string.d.ts +3 -2
  37. package/src/core/binary/int32_to_binary_string.d.ts.map +1 -1
  38. package/src/core/binary/int32_to_binary_string.js +18 -14
  39. package/src/core/binary/split_by_3.spec.d.ts +2 -0
  40. package/src/core/binary/split_by_3.spec.d.ts.map +1 -0
  41. package/src/core/binary/split_by_3.spec.js +22 -0
  42. package/src/core/binary/to_half_float_uint16.d.ts.map +1 -1
  43. package/src/core/binary/to_half_float_uint16.js +7 -5
  44. package/src/core/binary/type/Field.d.ts +0 -8
  45. package/src/core/binary/type/Field.d.ts.map +1 -1
  46. package/src/core/binary/type/Field.js +16 -19
  47. package/src/core/binary/type/MultiplicityType.js +0 -4
  48. package/src/core/binary/type/PrimitiveTypes.d.ts.map +1 -1
  49. package/src/core/binary/type/PrimitiveTypes.js +0 -4
  50. package/src/core/binary/type/Type.d.ts +0 -6
  51. package/src/core/binary/type/Type.d.ts.map +1 -1
  52. package/src/core/binary/type/Type.js +63 -64
  53. package/src/core/binary/type/TypeBuilder.d.ts +0 -1
  54. package/src/core/binary/type/TypeBuilder.d.ts.map +1 -1
  55. package/src/core/binary/type/TypeBuilder.js +15 -18
  56. package/src/core/binary/type/TypeRegistry.d.ts +6 -4
  57. package/src/core/binary/type/TypeRegistry.d.ts.map +1 -1
  58. package/src/core/binary/type/TypeRegistry.js +38 -42
  59. package/src/core/bvh2/visual/BVHGeometry.d.ts.map +1 -1
  60. package/src/core/bvh2/visual/BVHGeometry.js +0 -3
  61. package/src/core/codegen/LineBuilder.d.ts.map +1 -1
  62. package/src/core/codegen/LineBuilder.js +0 -5
  63. package/src/core/collection/array/isArrayEqualStrict.d.ts.map +1 -1
  64. package/src/core/collection/array/isArrayEqualStrict.js +2 -2
  65. package/src/core/collection/set/ArraySet.d.ts.map +1 -1
  66. package/src/core/collection/set/ArraySet.js +1 -5
  67. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  68. package/src/core/collection/table/RowFirstTable.js +0 -5
  69. package/src/core/color/Color.d.ts.map +1 -1
  70. package/src/core/color/Color.js +7 -2
  71. package/src/core/color/hsv/rgb2hsv.d.ts +3 -3
  72. package/src/core/color/hsv/rgb2hsv.d.ts.map +1 -1
  73. package/src/core/color/hsv/rgb2hsv.js +11 -18
  74. package/src/core/color/parse_color.d.ts.map +1 -1
  75. package/src/core/color/parse_color.js +1 -5
  76. package/src/core/color/rgb_to_luminance.d.ts +9 -0
  77. package/src/core/color/rgb_to_luminance.d.ts.map +1 -0
  78. package/src/core/color/rgb_to_luminance.js +10 -0
  79. package/src/core/geom/2d/Rectangle.d.ts.map +1 -1
  80. package/src/core/geom/2d/Rectangle.js +0 -4
  81. package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
  82. package/src/core/geom/2d/aabb/AABB2.js +0 -6
  83. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  84. package/src/core/geom/3d/aabb/AABB3.js +0 -5
  85. package/src/core/geom/3d/morton/Morton.d.ts.map +1 -1
  86. package/src/core/geom/3d/morton/Morton.js +0 -3
  87. package/src/core/geom/3d/sphere/harmonics/README.md +16 -2
  88. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts +6 -0
  89. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts.map +1 -0
  90. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js +15 -0
  91. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts.map +1 -1
  92. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +21 -9
  93. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts +3 -3
  94. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  95. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +45 -216
  96. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +8 -0
  97. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts.map +1 -0
  98. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.js +29 -0
  99. package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.js +10 -10
  100. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts +8 -0
  101. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts.map +1 -0
  102. package/src/core/geom/3d/sphere/harmonics/sh_index.js +9 -0
  103. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts +8 -0
  104. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts.map +1 -0
  105. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js +44 -0
  106. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts +8 -0
  107. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts.map +1 -0
  108. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js +86 -0
  109. package/src/core/geom/3d/sphere/in_sphere3d_robust.d.ts.map +1 -1
  110. package/src/core/geom/3d/sphere/in_sphere3d_robust.js +2 -1
  111. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +20 -1
  112. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  113. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +53 -7
  114. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +2 -2
  115. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts +1 -1
  116. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts.map +1 -1
  117. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.js +12 -7
  118. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts +13 -0
  119. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts.map +1 -0
  120. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js +135 -0
  121. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +38 -24
  122. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.d.ts → tetrahedron_compute_circumsphere.d.ts} +3 -5
  123. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -0
  124. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.js → tetrahedron_compute_circumsphere.js} +2 -4
  125. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.d.ts.map +1 -1
  126. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +3 -1
  127. package/src/core/geom/Quaternion.d.ts.map +1 -1
  128. package/src/core/geom/Quaternion.js +0 -5
  129. package/src/core/geom/Vector3.d.ts.map +1 -1
  130. package/src/core/geom/Vector3.js +1 -0
  131. package/src/core/geom/Vector4.d.ts.map +1 -1
  132. package/src/core/geom/Vector4.js +0 -4
  133. package/src/core/geom/mat3/m3_multiply_vec3.d.ts +8 -0
  134. package/src/core/geom/mat3/m3_multiply_vec3.d.ts.map +1 -0
  135. package/src/core/geom/mat3/m3_multiply_vec3.js +21 -0
  136. package/src/core/geom/vec2/v2_cross_product.d.ts +15 -0
  137. package/src/core/geom/vec2/v2_cross_product.d.ts.map +1 -0
  138. package/src/core/geom/vec2/v2_cross_product.js +21 -0
  139. package/src/core/geom/vec3/v3_slerp.d.ts +1 -0
  140. package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
  141. package/src/core/geom/vec3/v3_slerp.js +1 -0
  142. package/src/core/graph/Edge.d.ts.map +1 -1
  143. package/src/core/graph/Edge.js +0 -5
  144. package/src/core/graph/MultiNode.d.ts +1 -1
  145. package/src/core/graph/MultiNode.js +1 -1
  146. package/src/core/graph/WeightedEdge.d.ts +6 -4
  147. package/src/core/graph/WeightedEdge.d.ts.map +1 -1
  148. package/src/core/graph/WeightedEdge.js +3 -0
  149. package/src/core/graph/coloring/colorizeGraph.js +19 -19
  150. package/src/core/graph/convert_graph_to_dot_string.d.ts +1 -1
  151. package/src/core/graph/convert_graph_to_dot_string.d.ts.map +1 -1
  152. package/src/core/graph/convert_graph_to_dot_string.js +10 -6
  153. package/src/core/graph/graph_compute_adjacency_matrix.d.ts +9 -0
  154. package/src/core/graph/graph_compute_adjacency_matrix.d.ts.map +1 -0
  155. package/src/core/graph/{graph_adjacency_matrix.js → graph_compute_adjacency_matrix.js} +1 -2
  156. package/src/core/graph/graph_compute_degree_matrix.d.ts +10 -0
  157. package/src/core/graph/graph_compute_degree_matrix.d.ts.map +1 -0
  158. package/src/core/graph/graph_compute_degree_matrix.js +23 -0
  159. package/src/core/graph/graph_compute_distance_matrix.d.ts +13 -0
  160. package/src/core/graph/graph_compute_distance_matrix.d.ts.map +1 -0
  161. package/src/core/graph/graph_compute_distance_matrix.js +103 -0
  162. package/src/core/graph/{graph_laplacian_matrix.d.ts → graph_compute_laplacian_matrix.d.ts} +2 -2
  163. package/src/core/graph/graph_compute_laplacian_matrix.d.ts.map +1 -0
  164. package/src/core/graph/{graph_laplacian_matrix.js → graph_compute_laplacian_matrix.js} +6 -6
  165. package/src/core/graph/graph_k_means_cluster.d.ts.map +1 -1
  166. package/src/core/graph/graph_k_means_cluster.js +4 -119
  167. package/src/core/graph/{coarsen_graph.d.ts → mn_graph_coarsen.d.ts} +2 -2
  168. package/src/core/graph/mn_graph_coarsen.d.ts.map +1 -0
  169. package/src/core/graph/{coarsen_graph.js → mn_graph_coarsen.js} +1 -1
  170. package/src/core/graph/mn_graph_coarsen.spec.d.ts +2 -0
  171. package/src/core/graph/mn_graph_coarsen.spec.d.ts.map +1 -0
  172. package/src/core/graph/{coarsen_graph.spec.js → mn_graph_coarsen.spec.js} +4 -4
  173. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts +1 -0
  174. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts.map +1 -1
  175. package/src/core/graph/mn_graph_collapse_weighted_edge.js +7 -1
  176. package/src/core/json/JsonUtils.d.ts.map +1 -1
  177. package/src/core/json/JsonUtils.js +0 -4
  178. package/src/core/math/physics/brdf/brdf_burley.d.ts.map +1 -1
  179. package/src/core/math/physics/brdf/brdf_burley.js +9 -1
  180. package/src/core/math/physics/brdf/{D_GGX.d.ts → diffuse_GGX.d.ts} +2 -2
  181. package/src/core/math/physics/brdf/diffuse_GGX.d.ts.map +1 -0
  182. package/src/core/math/physics/brdf/{D_GGX.js → diffuse_GGX.js} +1 -1
  183. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts +3 -0
  184. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts.map +1 -0
  185. package/src/core/math/physics/brdf/fresnel_Schlick.js +3 -0
  186. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts +9 -0
  187. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts.map +1 -0
  188. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.js +12 -0
  189. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts +9 -0
  190. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts.map +1 -0
  191. package/src/core/math/physics/brdf/fresnel_Schlick_original.js +10 -0
  192. package/src/core/math/physics/bsdf/bsdf_schlick.d.ts.map +1 -1
  193. package/src/core/math/physics/bsdf/bsdf_schlick.js +3 -11
  194. package/src/core/math/physics/ior_to_reflectivity.d.ts +7 -0
  195. package/src/core/math/physics/ior_to_reflectivity.d.ts.map +1 -0
  196. package/src/core/math/physics/ior_to_reflectivity.js +9 -0
  197. package/src/core/math/physics/pdf/README.md +1 -0
  198. package/src/core/math/physics/pdf/pdf_GGX.d.ts +16 -0
  199. package/src/core/math/physics/pdf/pdf_GGX.d.ts.map +1 -0
  200. package/src/core/math/physics/pdf/pdf_GGX.js +25 -0
  201. package/src/core/math/physics/reflectivity_to_ior.d.ts +7 -0
  202. package/src/core/math/physics/reflectivity_to_ior.d.ts.map +1 -0
  203. package/src/core/math/physics/reflectivity_to_ior.js +8 -0
  204. package/src/core/math/random/MersenneTwister.d.ts +1 -2
  205. package/src/core/math/random/MersenneTwister.d.ts.map +1 -1
  206. package/src/core/math/random/MersenneTwister.js +134 -133
  207. package/src/core/model/BooleanVector3.d.ts.map +1 -1
  208. package/src/core/model/BooleanVector3.js +108 -108
  209. package/src/core/model/BoundedValue.d.ts +116 -0
  210. package/src/core/model/BoundedValue.d.ts.map +1 -0
  211. package/src/core/model/BoundedValue.js +214 -217
  212. package/src/core/model/LinearValue.d.ts +84 -0
  213. package/src/core/model/LinearValue.d.ts.map +1 -0
  214. package/src/core/model/LinearValue.js +116 -117
  215. package/src/core/model/ObservedEnum.d.ts.map +1 -1
  216. package/src/core/model/ObservedEnum.js +82 -80
  217. package/src/core/model/ObservedValue.d.ts +10 -17
  218. package/src/core/model/ObservedValue.d.ts.map +1 -1
  219. package/src/core/model/ObservedValue.js +85 -88
  220. package/src/core/model/object/ObjectPoolFactory.d.ts +1 -9
  221. package/src/core/model/object/ObjectPoolFactory.d.ts.map +1 -1
  222. package/src/core/model/object/ObjectPoolFactory.js +73 -73
  223. package/src/core/model/scheme/Schema.d.ts +0 -6
  224. package/src/core/model/scheme/Schema.d.ts.map +1 -1
  225. package/src/core/model/scheme/Schema.js +50 -48
  226. package/src/core/model/scheme/SchemeRegistry.d.ts +6 -1
  227. package/src/core/model/scheme/SchemeRegistry.d.ts.map +1 -1
  228. package/src/core/model/scheme/SchemeRegistry.js +46 -44
  229. package/src/core/process/Future.d.ts +14 -9
  230. package/src/core/process/Future.d.ts.map +1 -1
  231. package/src/core/process/Future.js +96 -98
  232. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  233. package/src/core/process/executor/ConcurrentExecutor.js +0 -3
  234. package/src/core/process/task/Task.d.ts.map +1 -1
  235. package/src/core/process/task/Task.js +0 -5
  236. package/src/core/process/task/TaskGroup.d.ts.map +1 -1
  237. package/src/core/process/task/TaskGroup.js +178 -180
  238. package/src/core/process/task/TaskSignal.d.ts.map +1 -1
  239. package/src/core/process/task/TaskSignal.js +0 -5
  240. package/src/core/process/task/TaskState.d.ts.map +1 -1
  241. package/src/core/process/task/TaskState.js +0 -4
  242. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  243. package/src/core/process/worker/WorkerBuilder.js +0 -5
  244. package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
  245. package/src/core/process/worker/WorkerProxy.js +0 -5
  246. package/src/engine/Clock.d.ts.map +1 -1
  247. package/src/engine/Clock.js +0 -5
  248. package/src/engine/Engine.js +4 -4
  249. package/src/engine/EngineHarness.d.ts +10 -1
  250. package/src/engine/EngineHarness.d.ts.map +1 -1
  251. package/src/engine/EngineHarness.js +16 -11
  252. package/src/engine/EntityCreator.d.ts.map +1 -1
  253. package/src/engine/EntityCreator.js +7 -10
  254. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  255. package/src/engine/animation/AnimatedActions.js +0 -5
  256. package/src/engine/animation/Animations.d.ts.map +1 -1
  257. package/src/engine/animation/Animations.js +1 -6
  258. package/src/engine/animation/EntityAnimation.js +1 -4
  259. package/src/engine/animation/Tween.js +1 -4
  260. package/src/engine/animation/keyed2/AnimationTrack.d.ts +0 -6
  261. package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
  262. package/src/engine/animation/keyed2/AnimationTrack.js +154 -152
  263. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +0 -10
  264. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  265. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +173 -171
  266. package/src/engine/asset/AssetManager.d.ts.map +1 -1
  267. package/src/engine/asset/AssetManager.js +0 -5
  268. package/src/engine/asset/loaders/image/png/PNGReader.d.ts +25 -11
  269. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
  270. package/src/engine/asset/loaders/image/png/PNGReader.js +38 -24
  271. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.js +2 -0
  272. package/src/engine/asset/preloader/AssetLevel.js +0 -3
  273. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  274. package/src/engine/ecs/EntityManager.js +0 -4
  275. package/src/engine/ecs/System.d.ts.map +1 -1
  276. package/src/engine/ecs/System.js +0 -5
  277. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  278. package/src/engine/ecs/animation/Animation.js +1 -19
  279. package/src/engine/ecs/components/Motion.d.ts.map +1 -1
  280. package/src/engine/ecs/components/Motion.js +0 -5
  281. package/src/engine/ecs/components/PropertySet.d.ts +8 -1
  282. package/src/engine/ecs/components/PropertySet.d.ts.map +1 -1
  283. package/src/engine/ecs/components/PropertySet.js +87 -83
  284. package/src/engine/ecs/components/Script.d.ts +0 -16
  285. package/src/engine/ecs/components/Script.d.ts.map +1 -1
  286. package/src/engine/ecs/components/Script.js +14 -18
  287. package/src/engine/ecs/components/Tag.d.ts.map +1 -1
  288. package/src/engine/ecs/components/Tag.js +4 -5
  289. package/src/engine/ecs/components/Timer.d.ts +0 -5
  290. package/src/engine/ecs/components/Timer.d.ts.map +1 -1
  291. package/src/engine/ecs/components/Timer.js +0 -5
  292. package/src/engine/ecs/grid/HeightMap2NormalMap.d.ts.map +1 -1
  293. package/src/engine/ecs/grid/HeightMap2NormalMap.js +2 -6
  294. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.d.ts.map +1 -1
  295. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.js +0 -3
  296. package/src/engine/ecs/grid/NormalMap2AOMap.d.ts.map +1 -1
  297. package/src/engine/ecs/grid/NormalMap2AOMap.js +3 -8
  298. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  299. package/src/engine/ecs/gui/GUIElement.js +0 -3
  300. package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
  301. package/src/engine/ecs/gui/GUIElementSystem.js +0 -4
  302. package/src/engine/ecs/gui/hud/HeadsUpDisplay.d.ts.map +1 -1
  303. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +0 -7
  304. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  305. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +0 -5
  306. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts.map +1 -1
  307. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -8
  308. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  309. package/src/engine/ecs/gui/position/ViewportPosition.js +0 -4
  310. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts +1 -2
  311. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
  312. package/src/engine/ecs/gui/position/ViewportPositionSystem.js +6 -10
  313. package/src/engine/ecs/ik/IKProblem.d.ts +1 -2
  314. package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
  315. package/src/engine/ecs/renderable/RenderSystem.d.ts.map +1 -1
  316. package/src/engine/ecs/renderable/RenderSystem.js +0 -3
  317. package/src/engine/ecs/renderable/Renderable.d.ts.map +1 -1
  318. package/src/engine/ecs/renderable/Renderable.js +0 -5
  319. package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
  320. package/src/engine/ecs/systems/AnimationSystem.js +9 -17
  321. package/src/engine/ecs/systems/MotionSystem.d.ts.map +1 -1
  322. package/src/engine/ecs/systems/MotionSystem.js +1 -6
  323. package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
  324. package/src/engine/ecs/systems/ScriptSystem.js +1 -6
  325. package/src/engine/ecs/systems/TimerSystem.d.ts.map +1 -1
  326. package/src/engine/ecs/systems/TimerSystem.js +1 -6
  327. package/src/engine/ecs/team/Team.d.ts.map +1 -1
  328. package/src/engine/ecs/team/Team.js +0 -3
  329. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts.map +1 -1
  330. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +0 -5
  331. package/src/engine/ecs/terrain/TerrainClouds.d.ts.map +1 -1
  332. package/src/engine/ecs/terrain/TerrainClouds.js +0 -5
  333. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  334. package/src/engine/ecs/terrain/ecs/Terrain.js +0 -5
  335. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts.map +1 -1
  336. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +0 -3
  337. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  338. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +11 -14
  339. package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
  340. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +0 -5
  341. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  342. package/src/engine/ecs/terrain/tiles/TerrainTile.js +0 -5
  343. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +1 -1
  344. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  345. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +0 -3
  346. package/src/engine/ecs/terrain/tiles/TileBuildWorker.js +0 -4
  347. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  348. package/src/engine/ecs/transform/Transform.js +0 -4
  349. package/src/engine/google/gapi.js +0 -4
  350. package/src/engine/graphics/FrameThrottle.d.ts +0 -4
  351. package/src/engine/graphics/FrameThrottle.d.ts.map +1 -1
  352. package/src/engine/graphics/FrameThrottle.js +0 -5
  353. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  354. package/src/engine/graphics/GraphicsEngine.js +2 -7
  355. package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
  356. package/src/engine/graphics/composit/LayerCompositer.js +2 -5
  357. package/src/engine/graphics/ecs/animation/AnimationController.d.ts.map +1 -1
  358. package/src/engine/graphics/ecs/animation/AnimationController.js +0 -5
  359. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
  360. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +2 -7
  361. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts +0 -1
  362. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts.map +1 -1
  363. package/src/engine/graphics/ecs/animation/AnimationRule.js +70 -66
  364. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  365. package/src/engine/graphics/ecs/camera/Camera.js +0 -5
  366. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  367. package/src/engine/graphics/ecs/camera/CameraSystem.js +0 -5
  368. package/src/engine/graphics/ecs/camera/FrustumProjector.d.ts.map +1 -1
  369. package/src/engine/graphics/ecs/camera/FrustumProjector.js +0 -5
  370. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  371. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -9
  372. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  373. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +3 -8
  374. package/src/engine/graphics/ecs/highlight/Highlight.d.ts.map +1 -1
  375. package/src/engine/graphics/ecs/highlight/Highlight.js +0 -3
  376. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
  377. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +3 -8
  378. package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
  379. package/src/engine/graphics/ecs/light/Light.js +2 -6
  380. package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
  381. package/src/engine/graphics/ecs/light/LightSystem.js +2 -8
  382. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts +6 -0
  383. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts.map +1 -1
  384. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +22 -11
  385. package/src/engine/graphics/ecs/mesh/Mesh.d.ts.map +1 -1
  386. package/src/engine/graphics/ecs/mesh/Mesh.js +0 -3
  387. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
  388. package/src/engine/graphics/ecs/mesh/MeshSystem.js +0 -5
  389. package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
  390. package/src/engine/graphics/ecs/trail2d/Trail2D.js +0 -5
  391. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  392. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +0 -5
  393. package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
  394. package/src/engine/graphics/ecs/water/Water.js +0 -5
  395. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  396. package/src/engine/graphics/ecs/water/WaterSystem.js +0 -3
  397. package/src/engine/graphics/filter/ImageFilter.d.ts.map +1 -1
  398. package/src/engine/graphics/filter/ImageFilter.js +0 -5
  399. package/src/engine/graphics/geometry/BufferGeometryWrap.js +1 -3
  400. package/src/engine/graphics/geometry/buffered/ComputeNormals.d.ts.map +1 -1
  401. package/src/engine/graphics/geometry/buffered/ComputeNormals.js +0 -5
  402. package/src/engine/graphics/geometry/ribbon/Ribbon.d.ts.map +1 -1
  403. package/src/engine/graphics/geometry/ribbon/Ribbon.js +1 -4
  404. package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
  405. package/src/engine/graphics/material/SplatMaterial.js +0 -3
  406. package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
  407. package/src/engine/graphics/material/WaterMaterial.js +0 -3
  408. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts +0 -5
  409. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +1 -1
  410. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +114 -114
  411. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -1
  412. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
  413. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +347 -348
  414. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +1 -3
  415. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
  416. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -1
  417. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +1 -1
  418. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +110 -111
  419. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts +0 -9
  420. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts.map +1 -1
  421. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.js +70 -66
  422. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -5
  423. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +1 -1
  424. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +82 -82
  425. package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -7
  426. package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +1 -1
  427. package/src/engine/graphics/particles/particular/group/Operation.js +16 -14
  428. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -9
  429. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +1 -1
  430. package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +23 -21
  431. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts +2 -10
  432. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  433. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +463 -464
  434. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -2
  435. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +1 -1
  436. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +39 -33
  437. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +6 -1
  438. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +1 -1
  439. package/src/engine/graphics/render/buffer/FrameBufferManager.js +166 -163
  440. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.d.ts.map +1 -1
  441. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.js +25 -25
  442. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
  443. package/src/engine/graphics/render/layers/RenderLayer.js +0 -5
  444. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts +9 -0
  445. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts.map +1 -0
  446. package/src/engine/graphics/sh3/fromCubeRenderTarget.js +145 -0
  447. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts +8 -0
  448. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts.map +1 -0
  449. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.js +51 -0
  450. package/src/engine/graphics/sh3/{LightProbeVolume.d.ts → lpv/LightProbeVolume.d.ts} +18 -7
  451. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -0
  452. package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +340 -0
  453. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts +18 -0
  454. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts.map +1 -0
  455. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.js +44 -0
  456. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +12 -0
  457. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -0
  458. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +123 -0
  459. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts +29 -0
  460. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts.map +1 -0
  461. package/src/engine/graphics/sh3/lpv/ProbeRenderer.js +35 -0
  462. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts +27 -0
  463. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts.map +1 -0
  464. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.js +158 -0
  465. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts +11 -0
  466. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -0
  467. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +127 -0
  468. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +12 -0
  469. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -0
  470. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +89 -0
  471. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +90 -0
  472. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -0
  473. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +352 -0
  474. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +5 -91
  475. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
  476. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +41 -477
  477. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts +1 -0
  478. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts.map +1 -1
  479. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.js +6 -3
  480. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +26 -58
  481. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.d.ts.map +1 -1
  482. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +7 -1
  483. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts +2 -2
  484. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts.map +1 -1
  485. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.js +1 -1
  486. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts +3 -0
  487. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts.map +1 -0
  488. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.js +3 -0
  489. package/src/engine/graphics/sh3/path_tracer/texture/apply_texture_clamping_to_coordinate.d.ts.map +1 -0
  490. package/src/engine/graphics/sh3/path_tracer/{apply_texture_clamping_to_coordinate.js → texture/apply_texture_clamping_to_coordinate.js} +2 -2
  491. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts +11 -0
  492. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -0
  493. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +86 -0
  494. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts +10 -0
  495. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts.map +1 -0
  496. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.js +56 -0
  497. package/src/engine/graphics/sh3/prototypeSH3Probe.js +87 -195
  498. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts +5 -5
  499. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts.map +1 -1
  500. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +8 -8
  501. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts +13 -0
  502. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts.map +1 -0
  503. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.js +54 -0
  504. package/src/engine/graphics/shaders/AlphaBlendShader.js +1 -3
  505. package/src/engine/graphics/shaders/AmbientOcclusionShader.d.ts.map +1 -1
  506. package/src/engine/graphics/shaders/AmbientOcclusionShader.js +0 -3
  507. package/src/engine/graphics/shaders/ClearShader.js +1 -3
  508. package/src/engine/graphics/shaders/CopyShader.d.ts +0 -3
  509. package/src/engine/graphics/shaders/CopyShader.d.ts.map +1 -1
  510. package/src/engine/graphics/shaders/CopyShader.js +1 -3
  511. package/src/engine/graphics/shaders/NormalMapShader2.d.ts.map +1 -1
  512. package/src/engine/graphics/shaders/NormalMapShader2.js +0 -5
  513. package/src/engine/graphics/shaders/TerrainShader.js +0 -4
  514. package/src/engine/graphics/shaders/WaterShader.js +0 -3
  515. package/src/engine/graphics/shaders/lib/ShaderChunks.js +1 -3
  516. package/src/engine/graphics/texture/AttributeDataTexture.d.ts +2 -2
  517. package/src/engine/graphics/texture/AttributeDataTexture.d.ts.map +1 -1
  518. package/src/engine/graphics/texture/AttributeDataTexture.js +11 -11
  519. package/src/engine/graphics/texture/Canvas2Sampler2D.d.ts.map +1 -1
  520. package/src/engine/graphics/texture/Canvas2Sampler2D.js +1 -4
  521. package/src/engine/graphics/texture/CheckersTexture.d.ts.map +1 -1
  522. package/src/engine/graphics/texture/CheckersTexture.js +0 -3
  523. package/src/engine/graphics/texture/CheckersTextureURI.js +1 -3
  524. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  525. package/src/engine/graphics/texture/sampler/Sampler2D.js +0 -5
  526. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +1 -1
  527. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +0 -5
  528. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts.map +1 -1
  529. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.js +0 -3
  530. package/src/engine/graphics/three/ThreeFactory.d.ts.map +1 -1
  531. package/src/engine/graphics/three/ThreeFactory.js +0 -5
  532. package/src/engine/grid/grid2transform/GridPosition2Transform.d.ts.map +1 -1
  533. package/src/engine/grid/grid2transform/GridPosition2Transform.js +0 -4
  534. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
  535. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +4 -7
  536. package/src/engine/grid/obstacle/GridObstacle.d.ts.map +1 -1
  537. package/src/engine/grid/obstacle/GridObstacle.js +0 -5
  538. package/src/engine/grid/position/GridPosition.d.ts.map +1 -1
  539. package/src/engine/grid/position/GridPosition.js +0 -4
  540. package/src/engine/grid/position/GridPositionSystem.d.ts.map +1 -1
  541. package/src/engine/grid/position/GridPositionSystem.js +1 -4
  542. package/src/engine/input/devices/KeyCodes.d.ts.map +1 -1
  543. package/src/engine/input/devices/KeyCodes.js +3 -4
  544. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  545. package/src/engine/input/devices/KeyboardDevice.js +0 -4
  546. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  547. package/src/engine/input/devices/PointerDevice.js +0 -3
  548. package/src/engine/input/ecs/components/InputController.d.ts.map +1 -1
  549. package/src/engine/input/ecs/components/InputController.js +1 -5
  550. package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
  551. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +5 -10
  552. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  553. package/src/engine/input/ecs/systems/InputControllerSystem.js +79 -79
  554. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
  555. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -6
  556. package/src/engine/intelligence/mcts/MonteCarlo.spec.js +78 -76
  557. package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
  558. package/src/engine/navigation/ecs/components/Path.js +0 -5
  559. package/src/engine/navigation/ecs/path_following/PathFollower.d.ts.map +1 -1
  560. package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -6
  561. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  562. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +5 -12
  563. package/src/engine/network/DataChannel.js +284 -284
  564. package/src/engine/network/xhr.d.ts +0 -3
  565. package/src/engine/network/xhr.d.ts.map +1 -1
  566. package/src/engine/network/xhr.js +0 -3
  567. package/src/engine/notify/Notification.d.ts +1 -1
  568. package/src/engine/notify/Notification.d.ts.map +1 -1
  569. package/src/engine/notify/Notification.js +1 -6
  570. package/src/engine/notify/NotificationLog.d.ts.map +1 -1
  571. package/src/engine/notify/NotificationLog.js +0 -5
  572. package/src/engine/options/OptionsView.d.ts.map +1 -1
  573. package/src/engine/options/OptionsView.js +1 -6
  574. package/src/engine/physics/ammo/Body.js +0 -3
  575. package/src/engine/physics/ammo/PhysicsWorker.d.ts.map +1 -1
  576. package/src/engine/physics/ammo/PhysicsWorker.js +1 -3
  577. package/src/engine/physics/ammo/World.d.ts +68 -0
  578. package/src/engine/physics/ammo/World.d.ts.map +1 -0
  579. package/src/engine/physics/ammo/World.js +277 -278
  580. package/src/engine/physics/ammo/shapes/BoxShape.js +0 -3
  581. package/src/engine/physics/ammo/shapes/CapsuleShape.js +0 -3
  582. package/src/engine/physics/ammo/shapes/MeshShape.js +0 -3
  583. package/src/engine/physics/ammo/shapes/PlaneShape.js +0 -3
  584. package/src/engine/physics/ammo/shapes/Shape.js +1 -3
  585. package/src/engine/physics/ammo/shapes/SphereShape.js +0 -3
  586. package/src/engine/physics/cannon/CannonJSPhysicsSystem.d.ts.map +1 -1
  587. package/src/engine/physics/cannon/CannonJSPhysicsSystem.js +3 -6
  588. package/src/engine/save/GameStateLoader.d.ts.map +1 -1
  589. package/src/engine/save/GameStateLoader.js +1 -5
  590. package/src/engine/save/Storage.d.ts.map +1 -1
  591. package/src/engine/save/Storage.js +0 -7
  592. package/src/engine/scene/Scene.d.ts.map +1 -1
  593. package/src/engine/scene/Scene.js +2 -7
  594. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  595. package/src/engine/scene/SceneManager.js +1 -4
  596. package/src/engine/simulation/DormandPrince.d.ts +0 -1
  597. package/src/engine/simulation/DormandPrince.d.ts.map +1 -1
  598. package/src/engine/simulation/DormandPrince.js +5 -5
  599. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  600. package/src/engine/simulation/Ticker.js +0 -3
  601. package/src/engine/sound/ecs/SoundController.d.ts +0 -7
  602. package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
  603. package/src/engine/sound/ecs/SoundController.js +118 -119
  604. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
  605. package/src/engine/sound/ecs/SoundControllerSystem.js +3 -8
  606. package/src/engine/sound/ecs/SoundListener.d.ts +0 -1
  607. package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
  608. package/src/engine/sound/ecs/SoundListener.js +26 -29
  609. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  610. package/src/engine/sound/ecs/SoundListenerSystem.js +0 -5
  611. package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
  612. package/src/engine/sound/ecs/emitter/SoundEmitter.js +0 -5
  613. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
  614. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -7
  615. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  616. package/src/engine/ui/GUIEngine.js +0 -5
  617. package/src/engine/ui/tiles2d/TileGrid.d.ts.map +1 -1
  618. package/src/engine/ui/tiles2d/TileGrid.js +1 -4
  619. package/src/generation/markers/debug/visualizeMarkers.js +10 -10
  620. package/src/view/DOM.js +1 -3
  621. package/src/view/SVG.d.ts +0 -3
  622. package/src/view/SVG.d.ts.map +1 -1
  623. package/src/view/SVG.js +0 -4
  624. package/src/view/asset/PreloaderView.d.ts.map +1 -1
  625. package/src/view/asset/PreloaderView.js +0 -3
  626. package/src/view/common/LabelView.d.ts +1 -6
  627. package/src/view/common/LabelView.d.ts.map +1 -1
  628. package/src/view/common/LabelView.js +24 -33
  629. package/src/view/common/ListView.d.ts.map +1 -1
  630. package/src/view/common/ListView.js +0 -6
  631. package/src/view/common/MeshView.js +3 -6
  632. package/src/view/common/VirtualListView.d.ts.map +1 -1
  633. package/src/view/common/VirtualListView.js +0 -5
  634. package/src/view/common/dnd/DragAndDropContext.d.ts +1 -2
  635. package/src/view/common/dnd/DragAndDropContext.d.ts.map +1 -1
  636. package/src/view/common/dnd/DragAndDropContext.js +107 -110
  637. package/src/view/controller/GuiController.d.ts.map +1 -1
  638. package/src/view/controller/GuiController.js +1 -6
  639. package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -1
  640. package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
  641. package/src/view/controller/controls/GuiControl.js +2 -7
  642. package/src/view/controller/controls/Vector1Control.d.ts +1 -1
  643. package/src/view/controller/controls/Vector1Control.d.ts.map +1 -1
  644. package/src/view/controller/controls/Vector1Control.js +2 -7
  645. package/src/view/controller/controls/Vector2Control.d.ts.map +1 -1
  646. package/src/view/controller/controls/Vector2Control.js +0 -4
  647. package/src/view/controller/controls/Vector3Control.d.ts.map +1 -1
  648. package/src/view/controller/controls/Vector3Control.js +0 -3
  649. package/src/view/elements/ColorPickerView.d.ts.map +1 -1
  650. package/src/view/elements/ColorPickerView.js +7 -7
  651. package/src/view/elements/ConfirmationDialogView.d.ts.map +1 -1
  652. package/src/view/elements/ConfirmationDialogView.js +1 -6
  653. package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
  654. package/src/view/elements/DropDownSelectionView.js +0 -5
  655. package/src/view/elements/EmptyView.d.ts.map +1 -1
  656. package/src/view/elements/EmptyView.js +0 -4
  657. package/src/view/elements/Group.d.ts.map +1 -1
  658. package/src/view/elements/Group.js +0 -3
  659. package/src/view/elements/MeshPreview.d.ts.map +1 -1
  660. package/src/view/elements/MeshPreview.js +5 -8
  661. package/src/view/elements/SimpleWindow.d.ts +1 -1
  662. package/src/view/elements/SimpleWindow.d.ts.map +1 -1
  663. package/src/view/elements/SimpleWindow.js +5 -11
  664. package/src/view/elements/button/ButtonView.d.ts.map +1 -1
  665. package/src/view/elements/button/ButtonView.js +1 -5
  666. package/src/view/elements/image/ImageView.d.ts.map +1 -1
  667. package/src/view/elements/image/ImageView.js +0 -4
  668. package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
  669. package/src/view/elements/image/SvgImageView.js +2 -7
  670. package/src/view/elements/label/LabeledValueView.d.ts.map +1 -1
  671. package/src/view/elements/label/LabeledValueView.js +3 -8
  672. package/src/view/elements/navigation/ViewStack.d.ts +0 -7
  673. package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
  674. package/src/view/elements/navigation/ViewStack.js +17 -19
  675. package/src/view/elements/notify/NotificationView.js +1 -4
  676. package/src/view/elements/notify/ToastLogView.d.ts.map +1 -1
  677. package/src/view/elements/notify/ToastLogView.js +0 -3
  678. package/src/view/elements/progress/SmoothProgressBar.d.ts +72 -0
  679. package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -0
  680. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  681. package/src/view/elements/radial/RadialMenu.js +1 -6
  682. package/src/view/elements/radial/RadialMenuElement.d.ts.map +1 -1
  683. package/src/view/elements/radial/RadialMenuElement.js +1 -4
  684. package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
  685. package/src/view/elements/radial/RadialProgressView.d.ts.map +1 -1
  686. package/src/view/elements/radial/RadialProgressView.js +4 -9
  687. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  688. package/src/view/elements/tiles2d/Tile.js +3 -6
  689. package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
  690. package/src/view/elements/tiles2d/TileGrid.js +0 -5
  691. package/src/view/minimap/Minimap.d.ts.map +1 -1
  692. package/src/view/minimap/Minimap.js +11 -16
  693. package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -2
  694. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  695. package/src/view/minimap/dom/MinimapTerrainView.d.ts +1 -1
  696. package/src/view/minimap/dom/MinimapTerrainView.d.ts.map +1 -1
  697. package/src/view/minimap/gl/MarkerGL.d.ts +2 -12
  698. package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
  699. package/src/view/minimap/gl/MarkerGL.js +60 -56
  700. package/src/view/minimap/gl/MinimapMarkersGL.d.ts +1 -1
  701. package/src/view/minimap/gl/MinimapMarkersGL.d.ts.map +1 -1
  702. package/src/view/minimap/gl/MinimapTerrainGL.d.ts +1 -2
  703. package/src/view/minimap/gl/MinimapTerrainGL.d.ts.map +1 -1
  704. package/src/view/renderModel.d.ts.map +1 -1
  705. package/src/view/renderModel.js +3 -7
  706. package/src/view/task/TaskProgressView.d.ts.map +1 -1
  707. package/src/view/task/TaskProgressView.js +0 -5
  708. package/src/core/geom/3d/tetrahedra/compute_circumsphere.d.ts.map +0 -1
  709. package/src/core/graph/coarsen_graph.d.ts.map +0 -1
  710. package/src/core/graph/coarsen_graph.spec.d.ts +0 -2
  711. package/src/core/graph/coarsen_graph.spec.d.ts.map +0 -1
  712. package/src/core/graph/graph_adjacency_matrix.d.ts +0 -9
  713. package/src/core/graph/graph_adjacency_matrix.d.ts.map +0 -1
  714. package/src/core/graph/graph_degree_matrix.d.ts +0 -9
  715. package/src/core/graph/graph_degree_matrix.d.ts.map +0 -1
  716. package/src/core/graph/graph_degree_matrix.js +0 -18
  717. package/src/core/graph/graph_laplacian_matrix.d.ts.map +0 -1
  718. package/src/core/math/physics/brdf/D_GGX.d.ts.map +0 -1
  719. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts +0 -9
  720. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts.map +0 -1
  721. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.js +0 -105
  722. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts +0 -117
  723. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts.map +0 -1
  724. package/src/engine/graphics/geometry/decimation/SimplifyModifier.js +0 -971
  725. package/src/engine/graphics/loader/threejs/GLTFLoader.js +0 -3179
  726. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts +0 -6
  727. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts.map +0 -1
  728. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.js +0 -845
  729. package/src/engine/graphics/postprocess/Postprocess.js +0 -284
  730. package/src/engine/graphics/postprocess/threejs/Mirror.js +0 -330
  731. package/src/engine/graphics/postprocess/threejs/WaterShader.js +0 -306
  732. package/src/engine/graphics/postprocess/threejs/postprocessing/AdaptiveToneMappingPass.js +0 -338
  733. package/src/engine/graphics/postprocess/threejs/postprocessing/BloomPass.js +0 -132
  734. package/src/engine/graphics/postprocess/threejs/postprocessing/BokehPass.js +0 -115
  735. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts +0 -4
  736. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts.map +0 -1
  737. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.js +0 -23
  738. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts +0 -1
  739. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts.map +0 -1
  740. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.js +0 -60
  741. package/src/engine/graphics/postprocess/threejs/postprocessing/EffectComposer.js +0 -150
  742. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts +0 -1
  743. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts.map +0 -1
  744. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.js +0 -61
  745. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts +0 -1
  746. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts.map +0 -1
  747. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.js +0 -117
  748. package/src/engine/graphics/postprocess/threejs/postprocessing/RenderPass.js +0 -63
  749. package/src/engine/graphics/postprocess/threejs/postprocessing/SMAAPass.js +0 -187
  750. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts +0 -1
  751. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts.map +0 -1
  752. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js +0 -67
  753. package/src/engine/graphics/postprocess/threejs/postprocessing/TexturePass.js +0 -50
  754. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts +0 -42
  755. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts.map +0 -1
  756. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.js +0 -117
  757. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts +0 -30
  758. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts.map +0 -1
  759. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.js +0 -106
  760. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts +0 -19
  761. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts.map +0 -1
  762. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.js +0 -90
  763. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts +0 -12
  764. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts.map +0 -1
  765. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.js +0 -52
  766. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts +0 -12
  767. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts.map +0 -1
  768. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.js +0 -51
  769. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts +0 -76
  770. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts.map +0 -1
  771. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.js +0 -468
  772. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts +0 -61
  773. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts.map +0 -1
  774. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.js +0 -230
  775. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts +0 -36
  776. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts.map +0 -1
  777. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.js +0 -76
  778. package/src/engine/graphics/sh3/LightProbeVolume.d.ts.map +0 -1
  779. package/src/engine/graphics/sh3/LightProbeVolume.js +0 -609
  780. package/src/engine/graphics/sh3/path_tracer/apply_texture_clamping_to_coordinate.d.ts.map +0 -1
  781. package/src/engine/graphics/sh3/visualise_probe.d.ts +0 -12
  782. package/src/engine/graphics/sh3/visualise_probe.d.ts.map +0 -1
  783. package/src/engine/graphics/sh3/visualise_probe.js +0 -40
  784. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts +0 -22
  785. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts.map +0 -1
  786. package/src/engine/graphics/shaders/GaussianBlurShader.js +0 -79
  787. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts +0 -26
  788. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts.map +0 -1
  789. package/src/engine/graphics/shaders/GaussianGlowShader.js +0 -83
  790. package/src/engine/graphics/shaders/NormalMapShader.d.ts +0 -33
  791. package/src/engine/graphics/shaders/NormalMapShader.d.ts.map +0 -1
  792. package/src/engine/graphics/shaders/NormalMapShader.js +0 -62
  793. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts +0 -3
  794. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts.map +0 -1
  795. package/src/engine/graphics/shaders/SoftOutlineShader.js +0 -111
  796. package/src/engine/graphics/three/Reflector.d.ts +0 -12
  797. package/src/engine/graphics/three/Reflector.d.ts.map +0 -1
  798. package/src/engine/graphics/three/Reflector.js +0 -281
  799. package/src/engine/graphics/three/Refractor.d.ts +0 -11
  800. package/src/engine/graphics/three/Refractor.d.ts.map +0 -1
  801. package/src/engine/graphics/three/Refractor.js +0 -352
  802. package/src/engine/navigation/ecs/components/PathFinder.d.ts +0 -14
  803. package/src/engine/navigation/ecs/components/PathFinder.d.ts.map +0 -1
  804. package/src/engine/navigation/ecs/components/PathFinder.js +0 -11
  805. package/src/view/elements/navigation/NavigationMenu.d.ts +0 -13
  806. package/src/view/elements/navigation/NavigationMenu.d.ts.map +0 -1
  807. package/src/view/elements/navigation/NavigationMenu.js +0 -27
  808. /package/src/engine/graphics/sh3/path_tracer/{apply_texture_clamping_to_coordinate.d.ts → texture/apply_texture_clamping_to_coordinate.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 }