@woosh/meep-engine 2.33.22 → 2.33.26

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 (288) hide show
  1. package/core/bvh2/BinaryNode.js +1 -1
  2. package/core/bvh2/aabb3/AABB3.js +18 -0
  3. package/core/bvh2/aabb3/AABB3Math.js +1 -1
  4. package/core/bvh2/binary/2/BinaryUint32BVH.js +498 -0
  5. package/core/bvh2/binary/2/BinaryUint32BVH.spec.js +54 -0
  6. package/core/bvh2/binary/IndexedBinaryBVH.js +22 -26
  7. package/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +5 -1
  8. package/core/bvh2/traversal/__detailed_box_volume_intersection.js +31 -11
  9. package/core/collection/ArrayUtils.js +1 -1
  10. package/core/collection/array/arrayQuickSort.js +9 -6
  11. package/core/collection/array/array_swap.js +22 -0
  12. package/core/collection/array/binarySearchHighIndex.js +1 -1
  13. package/core/collection/array/computeHashArray.js +22 -0
  14. package/core/collection/array/computeHashIntegerArray.js +15 -0
  15. package/core/collection/array/copyArray.js +2 -2
  16. package/core/collection/table/DataType2TypedArrayConstructorMapping.js +15 -0
  17. package/core/color/Color.js +2 -1
  18. package/core/function/FunctionCompiler.js +2 -1
  19. package/core/geom/3d/aabb/aabb3_computeDistanceAbovePlane.js +9 -33
  20. package/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +10 -2
  21. package/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js +41 -0
  22. package/core/geom/3d/morton/mortonEncode_magicbits.js +2 -1
  23. package/core/geom/3d/morton/reinterpret_float32_as_int32.js +13 -0
  24. package/core/geom/3d/morton/v3_morton_encode_transformed.js +33 -0
  25. package/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +1 -1
  26. package/core/geom/3d/plane/plane_computeConvex3PlaneIntersection.js +13 -14
  27. package/core/geom/3d/ray/ray_computeNearestPointToPoint.js +37 -0
  28. package/core/geom/3d/shape/AbstractShape3D.js +65 -0
  29. package/core/geom/3d/shape/TransformedShape3D.js +181 -0
  30. package/core/geom/3d/shape/TransformedShape3D.spec.js +33 -0
  31. package/core/geom/3d/shape/UnionShape3D.js +255 -0
  32. package/core/geom/3d/shape/UnitCubeShape3D.js +101 -0
  33. package/core/geom/3d/shape/UnitCubeShape3D.spec.js +42 -0
  34. package/core/geom/3d/shape/UnitSphereShape3D.js +55 -0
  35. package/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +48 -0
  36. package/core/geom/3d/shape/util/shape_to_visual_entity.js +159 -0
  37. package/core/geom/3d/voxel/DenseBitVolume3D.js +87 -0
  38. package/core/geom/3d/voxel/buildVolumeFromProjectedGeometry.js +23 -0
  39. package/core/geom/AABB2.js +1 -1
  40. package/core/geom/ConicRay.js +3 -1
  41. package/core/geom/LineSegment.js +0 -78
  42. package/core/geom/Matrix4.js +7 -8
  43. package/core/geom/Plane.js +14 -9
  44. package/core/geom/Rectangle.js +2 -1
  45. package/core/geom/Vector1.js +1 -1
  46. package/core/geom/Vector3.js +2 -1
  47. package/core/geom/Vector4.js +2 -1
  48. package/core/geom/random/randomPointInBox.js +7 -3
  49. package/core/geom/random/randomPointInPoint.js +6 -3
  50. package/core/geom/random/randomPointInSphere.js +9 -5
  51. package/core/geom/random/randomPointOnBox.js +7 -3
  52. package/core/geom/random/randomPointOnSphere.js +6 -3
  53. package/core/geom/v3_length.js +8 -3
  54. package/core/graph/graph_k_means_cluster.js +1 -1
  55. package/core/json/resolvePathByArray.js +2 -2
  56. package/core/math/MathUtils.js +0 -354
  57. package/core/math/MathUtils.spec.js +7 -1
  58. package/core/math/gaussian.js +9 -0
  59. package/core/math/hash/computeHashFloat.js +17 -0
  60. package/core/math/hash/computeHashFloatArray.js +34 -0
  61. package/core/math/hash/computeObjectHash.js +54 -0
  62. package/core/math/intersects1D.js +19 -0
  63. package/core/math/interval/NumericInterval.js +2 -2
  64. package/core/math/isValueBetween.js +10 -0
  65. package/core/math/isValueBetweenInclusive.js +10 -0
  66. package/core/math/noise/curl_noise_3dt.js +1 -1
  67. package/core/math/noise/sdnoise.js +10 -10
  68. package/core/math/overlap1D.js +19 -0
  69. package/core/math/pingpong.js +17 -0
  70. package/core/math/random/makeRangedRandom.js +19 -0
  71. package/core/math/random/randomFloatBetween.js +14 -0
  72. package/core/math/random/randomFromArray.js +19 -0
  73. package/core/math/random/randomGaussian.js +15 -0
  74. package/core/math/random/randomIntegerBetween.js +14 -0
  75. package/core/math/random/roundFair.js +15 -0
  76. package/core/math/separation1D.js +21 -0
  77. package/core/math/solveQuadratic.js +25 -0
  78. package/core/model/BoundedValue.js +1 -1
  79. package/core/model/node-graph/node/NodeInstancePortReference.js +1 -1
  80. package/core/model/node-graph/node/Port.js +1 -1
  81. package/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +3 -1
  82. package/core/model/reactive/model/ReactiveBinaryExpression.js +1 -1
  83. package/core/model/reactive/model/terminal/ReactiveLiteralNumber.js +1 -1
  84. package/core/model/reactive/model/terminal/ReactiveReference.js +1 -1
  85. package/core/model/reactive/model/util/createRandomReactiveExpression.js +1 -1
  86. package/core/model/stat/LinearModifier.js +1 -1
  87. package/core/primitives/array/computeIntegerArrayHash.js +1 -1
  88. package/{engine/graphics/render/forward_plus/materials → core/primitives/strings}/insert_after.js +3 -0
  89. package/core/primitives/strings/insert_after_or_replace.js +27 -0
  90. package/editor/process/symbolic/makeHelperBoxGeometry.js +44 -0
  91. package/editor/view/ecs/EntityEditor.js +2 -2
  92. package/editor/view/ecs/components/particles/ParticleEmitterController.js +2 -2
  93. package/engine/EngineHarness.js +1 -0
  94. package/engine/animation/AnimationUtils.js +5 -5
  95. package/engine/animation/curve/AnimationCurve.js +72 -0
  96. package/engine/animation/curve/Keyframe.js +27 -0
  97. package/engine/animation/keyed2/AnimationTrack.js +27 -3
  98. package/engine/asset/Asset.js +1 -1
  99. package/engine/asset/loaders/GLTFAssetLoader.d.ts +1 -1
  100. package/engine/asset/loaders/GLTFAssetLoader.js +10 -0
  101. package/engine/asset/loaders/image/ImageRGBADataAsset.js +8 -1
  102. package/engine/asset/loaders/material/computeImageBitmapEquality.js +11 -0
  103. package/engine/asset/loaders/material/computeImageBitmapHash.js +22 -28
  104. package/engine/asset/loaders/material/computeMaterialHash.js +3 -1
  105. package/engine/asset/loaders/material/computeTextureHash.js +2 -1
  106. package/engine/ecs/EntityBuilder.js +25 -5
  107. package/engine/ecs/animation/Animation.js +2 -1
  108. package/engine/ecs/animation/InverseKinematics.js +2 -1
  109. package/engine/ecs/attachment/AttachmentBinding.js +8 -0
  110. package/engine/ecs/attachment/AttachmentSystem.js +4 -0
  111. package/engine/ecs/attachment/TransformAttachmentBinding.js +14 -44
  112. package/engine/ecs/components/Tag.js +27 -6
  113. package/engine/ecs/dynamic_actions/DynamicActorSystem.js +2 -1
  114. package/engine/ecs/dynamic_actions/DynamicRuleDescriptionTable.spec.js +3 -5
  115. package/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.js +1 -1
  116. package/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +1 -1
  117. package/engine/ecs/foliage/ecs/Foliage2.js +1 -1
  118. package/engine/ecs/fow/FogOfWar.js +4 -0
  119. package/engine/ecs/fow/FogOfWarSystem.js +2 -0
  120. package/engine/ecs/fow/shader/FogOfWarRenderer.js +1 -1
  121. package/engine/ecs/gui/GUIElement.js +1 -1
  122. package/engine/ecs/gui/hud/HeadsUpDisplay.js +1 -1
  123. package/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +2 -0
  124. package/engine/ecs/gui/position/ViewportPosition.js +2 -1
  125. package/engine/ecs/system/AbstractContextSystem.js +1 -1
  126. package/engine/ecs/systems/RangedAttackSystem.js +1 -1
  127. package/engine/ecs/systems/SteeringSystem.js +1 -1
  128. package/engine/ecs/systems/TagSystem.js +17 -0
  129. package/engine/ecs/terrain/tiles/TerrainTileManager.js +1 -1
  130. package/engine/ecs/tooltip/TooltipComponent.js +15 -0
  131. package/engine/ecs/transform/Transform.js +19 -6
  132. package/engine/ecs/util/hideEntityGracefully.js +18 -0
  133. package/engine/graphics/GraphicsEngine.js +11 -23
  134. package/engine/graphics/camera/testClippingPlaneComputation.js +2 -2
  135. package/engine/graphics/composit/CompositLayer.js +17 -4
  136. package/engine/graphics/composit/CompositingStages.js +8 -0
  137. package/engine/graphics/composit/LayerCompositer.js +35 -6
  138. package/engine/graphics/ecs/animation/animator/AnimationClip.js +2 -1
  139. package/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -1
  140. package/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -1
  141. package/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -1
  142. package/engine/graphics/ecs/animation/animator/graph/AnimationGraph.js +2 -1
  143. package/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -1
  144. package/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +1 -1
  145. package/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +2 -1
  146. package/engine/graphics/ecs/camera/CameraClippingPlaneComputer.js +1 -1
  147. package/engine/graphics/ecs/highlight/HighlightDefinition.js +2 -1
  148. package/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +11 -7
  149. package/engine/graphics/ecs/light/Light.d.ts +1 -1
  150. package/engine/graphics/ecs/light/Light.js +5 -0
  151. package/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +5 -1
  152. package/engine/graphics/ecs/mesh/Mesh.js +2 -1
  153. package/engine/graphics/ecs/mesh-v2/DrawMode.js +5 -0
  154. package/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +13 -0
  155. package/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +32 -18
  156. package/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +6 -0
  157. package/engine/graphics/ecs/path/testPathDisplaySystem.js +98 -98
  158. package/engine/graphics/ecs/trail2d/Trail2D.js +17 -4
  159. package/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +2 -3
  160. package/engine/graphics/ecs/trail2d/Trail2DSystem.js +34 -118
  161. package/engine/graphics/geometry/AttributeSpec.js +105 -0
  162. package/engine/graphics/{micron/format/MicronVertexDataSpec.js → geometry/VertexDataSpec.js} +56 -25
  163. package/engine/graphics/micron/build/buildMicronGeometryFromBufferGeometry.js +7 -7
  164. package/engine/graphics/micron/build/fill_patch_geometry_data.js +1 -1
  165. package/engine/graphics/micron/buildPatchwork.js +1 -1
  166. package/engine/graphics/micron/format/MicronGeometry.js +3 -3
  167. package/engine/graphics/micron/format/serialization/MicronGeometryBinarySerializationAdapter.js +2 -2
  168. package/engine/graphics/micron/format/serialization/deserialize_attribute_spec.js +1 -1
  169. package/engine/graphics/micron/format/serialization/serialize_attribute_spec.js +1 -1
  170. package/engine/graphics/micron/render/PatchCacheKey.js +1 -1
  171. package/engine/graphics/micron/render/instanced/AttributeDataTexture.js +5 -5
  172. package/engine/graphics/micron/render/v1/ThreeVirtualGeometryAdapter.js +1 -1
  173. package/engine/graphics/particles/ParticleEmitterLibrary.js +3 -0
  174. package/engine/graphics/particles/ecs/{ParticleEmitterSystem2.js → ParticleEmitterSystem.js} +17 -9
  175. package/engine/graphics/particles/particular/engine/ParticularEngine.js +12 -4
  176. package/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +84 -0
  177. package/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +106 -169
  178. package/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +5 -0
  179. package/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +14 -3
  180. package/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +141 -14
  181. package/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +8 -7
  182. package/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +37 -0
  183. package/engine/graphics/particles/particular/engine/emitter/distance_to_camera.js +25 -0
  184. package/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +8 -2
  185. package/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +2 -1
  186. package/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +1 -1
  187. package/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +1 -1
  188. package/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +24 -0
  189. package/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.js +262 -71
  190. package/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +9 -9
  191. package/engine/graphics/particles/particular/engine/shader/ShaderManager.js +80 -46
  192. package/engine/graphics/particles/particular/engine/shader/debugAtlas.js +14 -0
  193. package/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +2 -5
  194. package/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +2 -6
  195. package/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +2 -7
  196. package/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +2 -5
  197. package/engine/graphics/particles/particular/engine/simulator/update_parameters.js +1 -1
  198. package/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +1 -1
  199. package/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +1 -1
  200. package/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +141 -0
  201. package/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +478 -0
  202. package/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.js +27 -0
  203. package/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +935 -0
  204. package/engine/graphics/particles/particular/group/Operation.js +18 -0
  205. package/engine/graphics/particles/particular/group/OperationType.js +9 -0
  206. package/engine/graphics/particles/particular/group/ParticleAttribute.js +2 -1
  207. package/engine/graphics/particles/particular/group/ParticleAttributeType.js +11 -0
  208. package/engine/graphics/particles/particular/group/ParticleDataType.js +10 -0
  209. package/engine/graphics/particles/particular/group/ParticleGroup.js +7 -245
  210. package/engine/graphics/particles/particular/group/ParticleGroup.spec.js +3 -1
  211. package/engine/graphics/particles/particular/group/ParticleSpecification.js +21 -14
  212. package/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +20 -0
  213. package/engine/graphics/particles/particular/group/optimizeCommandQueue.js +162 -0
  214. package/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +19 -0
  215. package/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +2 -2
  216. package/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +13 -7
  217. package/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.js +2 -1
  218. package/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterSet.js +1 -1
  219. package/engine/graphics/render/forward_plus/LightManager.js +126 -95
  220. package/engine/graphics/render/forward_plus/PointLight.js +9 -0
  221. package/engine/graphics/render/forward_plus/PointLightData.js +1 -1
  222. package/engine/graphics/render/forward_plus/SpotLight.js +9 -0
  223. package/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +2 -2
  224. package/engine/graphics/render/forward_plus/computeFrustumCorners.js +14 -32
  225. package/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +1 -0
  226. package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +32 -0
  227. package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +51 -0
  228. package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +25 -0
  229. package/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +31 -120
  230. package/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +35 -0
  231. package/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +4 -5
  232. package/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +1 -1
  233. package/engine/graphics/render/forward_plus/plugin/MaterialTransformer.js +10 -3
  234. package/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +595 -60
  235. package/engine/graphics/render/forward_plus/prototypeLightManager.js +256 -136
  236. package/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +8 -0
  237. package/engine/graphics/render/forward_plus/query/cube_mapping.js +38 -0
  238. package/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +86 -0
  239. package/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +73 -0
  240. package/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_objects.js +131 -0
  241. package/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +129 -0
  242. package/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +33 -0
  243. package/engine/graphics/render/forward_plus/read_frustum_corner.js +14 -0
  244. package/engine/graphics/render/forward_plus/testClusterEquality.js +22 -0
  245. package/engine/graphics/render/layers/RenderLayerUtils.js +7 -4
  246. package/engine/graphics/render/visibility/IncrementalDeltaSet.js +11 -0
  247. package/engine/graphics/render/visibility/hiz/prototypeHiZ.js +2 -2
  248. package/engine/graphics/shaders/TerrainShader.js +4 -5
  249. package/engine/graphics/shadows/ShadowMapRenderer.js +8 -2
  250. package/engine/graphics/texture/atlas/AtlasPatch.js +7 -2
  251. package/engine/graphics/texture/atlas/TextureAtlas.js +2 -2
  252. package/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +1 -1
  253. package/engine/graphics/texture/sampler/SampleTraverser.js +1 -1
  254. package/engine/graphics/texture/sampler/Sampler2D.js +8 -7
  255. package/engine/graphics/texture/sampler/distanceField.spec.js +1 -1
  256. package/engine/graphics/texture/sampler/scaleSampler2D.js +7 -10
  257. package/engine/graphics/trail/x/RibbonMaterialX.js +3 -3
  258. package/engine/graphics/trail/x/RibbonX.js +17 -2
  259. package/engine/graphics/trail/x/RibbonXPlugin.js +51 -1
  260. package/engine/graphics/util/composeMatrix4.js +33 -23
  261. package/engine/graphics/util/decompose_matrix_4_array.js +61 -0
  262. package/engine/grid/components/GridObstacle.js +3 -10
  263. package/engine/intelligence/behavior/ecs/BehaviorComponent.js +30 -14
  264. package/engine/intelligence/behavior/selector/WeightedElement.js +2 -1
  265. package/engine/intelligence/optimization/RandomOptimizer.js +1 -1
  266. package/engine/knowledge/database/StaticKnowledgeDataTable.js +6 -1
  267. package/engine/navigation/ecs/components/Path.js +1 -6
  268. package/engine/navigation/grid/FastBinaryHeap.spec.js +1 -1
  269. package/engine/reference/v2/Reference.js +6 -0
  270. package/engine/sound/ecs/emitter/SoundEmitter.js +2 -1
  271. package/engine/sound/ecs/emitter/SoundTrack.js +2 -1
  272. package/engine/sound/material/concrete/RandomSoundMaterial.js +1 -1
  273. package/engine/ui/notification/notificationGenerator.js +1 -1
  274. package/generation/filtering/numeric/complex/CellFilterGaussianBlur.js +1 -1
  275. package/generation/grid/generation/GridTaskExecuteRuleTimes.js +2 -1
  276. package/generation/markers/actions/MarkerNodeActionSelectRandom.js +1 -1
  277. package/generation/markers/transform/MarkerNodeTransformerRecordUniqueRandomEnum.js +1 -1
  278. package/generation/placement/action/random/CellActionSelectRandom.js +1 -1
  279. package/generation/theme/ThemeEngine.js +2 -2
  280. package/misc/makeMaterialIconCached.js +2 -2
  281. package/package.json +3 -3
  282. package/view/View.js +4 -2
  283. package/view/elements/image/HTMLElementCacheKey.js +2 -1
  284. package/view/elements/radial/RadialText.js +2 -1
  285. package/view/minimap/gl/MinimapMarkersGL.js +6 -100
  286. package/view/minimap/gl/buildMaterial.js +94 -0
  287. package/engine/graphics/micron/format/MicronGeometryBufferAttributeSpec.js +0 -71
  288. package/engine/graphics/render/forward_plus/queryBVH_Frustum.js +0 -345
@@ -1,7 +1,7 @@
1
1
  import { AbstractActionDescription } from "./AbstractActionDescription.js";
2
2
  import { WeightedRandomBehavior } from "../../../../intelligence/behavior/selector/WeightedRandomBehavior.js";
3
3
  import { WeightedElement } from "../../../../intelligence/behavior/selector/WeightedElement.js";
4
- import { computeHashFloat } from "../../../../../core/math/MathUtils.js";
4
+ import { computeHashFloat } from "../../../../../core/math/hash/computeHashFloat.js";
5
5
 
6
6
  export class WeightedRandomActionDescription extends AbstractActionDescription {
7
7
  constructor() {
@@ -1,6 +1,6 @@
1
1
  import { PointFitnessFunction } from "../PointFitnessFunction.js";
2
2
  import { assert } from "../../../../core/assert.js";
3
- import { gaussian } from "../../../../core/math/MathUtils.js";
3
+ import { gaussian } from "../../../../core/math/gaussian.js";
4
4
 
5
5
  export class PointFitnessGaussianBlur extends PointFitnessFunction {
6
6
  constructor() {
@@ -4,7 +4,7 @@ import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
4
4
  import { InstancedFoliage } from "../InstancedFoliage.js";
5
5
  import { Base64 } from "../../../../core/binary/Base64.js";
6
6
  import { BinaryBuffer } from "../../../../core/binary/BinaryBuffer.js";
7
- import { computeHashIntegerArray } from "../../../../core/math/MathUtils.js";
7
+ import { computeHashIntegerArray } from "../../../../core/collection/array/computeHashIntegerArray.js";
8
8
 
9
9
  export class FoliageLayer {
10
10
  constructor() {
@@ -75,6 +75,10 @@ export class FogOfWar {
75
75
  */
76
76
  this.texture = null;
77
77
 
78
+ /**
79
+ * Resolution scale of FoW versus terrain resolution, higher number makes FoW more detailed
80
+ * @type {Vector1}
81
+ */
78
82
  this.scale = new Vector1(1);
79
83
 
80
84
  /**
@@ -12,6 +12,7 @@ import { BlendingType } from "../../graphics/texture/sampler/BlendingType.js";
12
12
  import { FogOfWarRenderer } from "./shader/FogOfWarRenderer.js";
13
13
  import { StandardFrameBuffers } from "../../graphics/StandardFrameBuffers.js";
14
14
  import { CompositLayer } from "../../graphics/composit/CompositLayer.js";
15
+ import { CompositingStages } from "../../graphics/composit/CompositingStages.js";
15
16
 
16
17
 
17
18
  const frustum = new Frustum();
@@ -133,6 +134,7 @@ export class FogOfWarSystem extends System {
133
134
 
134
135
  const compositerLayer = graphics.layerComposer.createLayer({}, BlendingType.Normal);
135
136
  compositerLayer.name = 'Fog of War';
137
+ compositerLayer.stage = CompositingStages.POST_TRANSPARENT;
136
138
 
137
139
  // Fog of war should be drawn last typically, over everything else, so we set order to a large number
138
140
  compositerLayer.order = 1000;
@@ -1,8 +1,8 @@
1
1
  import { buildScreenSpaceFogOfWarShader } from "./screenSpaceFogOfWarShader.js";
2
2
  import { assert } from "../../../../core/assert.js";
3
3
  import { Mesh, OrthographicCamera, Scene } from "three";
4
- import { isValueBetweenInclusive } from "../../../../core/math/MathUtils.js";
5
4
  import { FULL_SCREEN_TRIANGLE_GEOMETRY } from "../../../graphics/geometry/FULL_SCREEN_TRIANGLE_GEOMETRY.js";
5
+ import { isValueBetweenInclusive } from "../../../../core/math/isValueBetweenInclusive.js";
6
6
 
7
7
  /**
8
8
  *
@@ -6,9 +6,9 @@ import ObservedBoolean from "../../../core/model/ObservedBoolean.js";
6
6
  import { BinaryClassSerializationAdapter } from "../storage/binary/BinaryClassSerializationAdapter.js";
7
7
  import { COMPONENT_SERIALIZATION_TRANSIENT_FIELD } from "../storage/COMPONENT_SERIALIZATION_TRANSIENT_FIELD.js";
8
8
  import { assert } from "../../../core/assert.js";
9
- import { computeHashIntegerArray } from "../../../core/math/MathUtils.js";
10
9
  import { objectDeepEquals } from "../../../core/model/object/objectDeepEquals.js";
11
10
  import { computeStringHash } from "../../../core/primitives/strings/computeStringHash.js";
11
+ import { computeHashIntegerArray } from "../../../core/collection/array/computeHashIntegerArray.js";
12
12
 
13
13
  /**
14
14
  *
@@ -7,7 +7,7 @@
7
7
 
8
8
  import Vector3 from '../../../../core/geom/Vector3.js';
9
9
  import { HeadsUpDisplayFlag } from "./HeadsUpDisplayFlag.js";
10
- import { computeHashIntegerArray } from "../../../../core/math/MathUtils.js";
10
+ import { computeHashIntegerArray } from "../../../../core/collection/array/computeHashIntegerArray.js";
11
11
 
12
12
  class HeadsUpDisplay {
13
13
  /**
@@ -144,7 +144,9 @@ class HeadsUpDisplaySystem extends System {
144
144
  up.set(worldPositionX, worldPositionY + 1, worldPositionZ, 1);
145
145
  up.threeApplyMatrix4(projectionMatrix);
146
146
 
147
+ // compute perspective divide
147
148
  const d = 1 / Math.abs(up.w);
149
+
148
150
  up.x *= d;
149
151
  up.y *= d;
150
152
  up.z *= d;
@@ -5,7 +5,8 @@
5
5
  import Vector2 from "../../../../core/geom/Vector2.js";
6
6
  import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
7
7
  import { BinaryClassSerializationAdapter } from "../../storage/binary/BinaryClassSerializationAdapter.js";
8
- import { computeHashFloat, computeHashIntegerArray } from "../../../../core/math/MathUtils.js";
8
+ import { computeHashIntegerArray } from "../../../../core/collection/array/computeHashIntegerArray.js";
9
+ import { computeHashFloat } from "../../../../core/math/hash/computeHashFloat.js";
9
10
 
10
11
  /**
11
12
  * @readonly
@@ -38,7 +38,7 @@ export class AbstractContextSystem extends System {
38
38
  // TODO
39
39
  },
40
40
  (ctx) => {
41
- ctx.unlink();
41
+ //ctx.unlink();
42
42
  }
43
43
  );
44
44
 
@@ -8,7 +8,7 @@ import PhysicalBody from '../components/PhysicalBody.js';
8
8
  import Motion from '../components/Motion.js';
9
9
  import Renderable from '../components/Renderable.js';
10
10
  import { Matrix4 as ThreeMatrix4, Vector3 as ThreeVector3 } from 'three';
11
- import { solveQuadratic } from "../../../core/math/MathUtils.js";
11
+ import { solveQuadratic } from "../../../core/math/solveQuadratic.js";
12
12
 
13
13
  /**
14
14
  * Return the firing solution for a projectile starting at 'src' with
@@ -10,10 +10,10 @@ import PhysicalBody from '../components/PhysicalBody.js';
10
10
  import Motion from '../components/Motion.js';
11
11
  import { Transform } from '../transform/Transform.js';
12
12
  import Steering, { SteeringEvents, SteeringFlags } from '../components/Steering.js';
13
- import { solveQuadratic } from "../../../core/math/MathUtils.js";
14
13
  import Vector3 from "../../../core/geom/Vector3.js";
15
14
  import { alignToVector } from "../terrain/ecs/ClingToTerrainSystem.js";
16
15
  import { v3_dot } from "../../../core/geom/v3_dot.js";
16
+ import { solveQuadratic } from "../../../core/math/solveQuadratic.js";
17
17
 
18
18
  /**
19
19
  *
@@ -13,6 +13,23 @@ class TagSystem extends System {
13
13
 
14
14
  this.entityManager = null;
15
15
  }
16
+
17
+ /**
18
+ *
19
+ * @param {string} tag
20
+ * @param {EntityComponentDataset} ecd
21
+ * @returns {number[]}
22
+ */
23
+ static find_entities_with_tag(tag, ecd) {
24
+ const r = [];
25
+ ecd.traverseComponents(Tag, (t, e) => {
26
+ if (t.contains(tag)) {
27
+ r.push(e);
28
+ }
29
+ });
30
+
31
+ return r;
32
+ }
16
33
  }
17
34
 
18
35
 
@@ -14,7 +14,6 @@ import CheckersTexture from '../../../graphics/texture/CheckersTexture.js';
14
14
  import { MeshPhongMaterial } from 'three';
15
15
  import { assert } from "../../../../core/assert.js";
16
16
  import { Color } from "../../../../core/color/Color.js";
17
- import { randomFloatBetween } from "../../../../core/math/MathUtils.js";
18
17
  import { noop } from "../../../../core/function/Functions.js";
19
18
  import Vector3 from "../../../../core/geom/Vector3.js";
20
19
  import { SurfacePoint3 } from "../../../../core/geom/3d/SurfacePoint3.js";
@@ -24,6 +23,7 @@ import { traverseBinaryNodeUsingVisitor } from "../../../../core/bvh2/traversal/
24
23
  import { aabb2_overlapExists } from "../../../../core/geom/AABB2.js";
25
24
  import ObservedInteger from "../../../../core/model/ObservedInteger.js";
26
25
  import { NumericInterval } from "../../../../core/math/interval/NumericInterval.js";
26
+ import { randomFloatBetween } from "../../../../core/math/random/randomFloatBetween.js";
27
27
 
28
28
  class TerrainTileManager {
29
29
  /**
@@ -1,3 +1,5 @@
1
+ import { computeStringHash } from "../../../core/primitives/strings/computeStringHash.js";
2
+
1
3
  export class TooltipComponent {
2
4
  constructor() {
3
5
  /**
@@ -7,6 +9,19 @@ export class TooltipComponent {
7
9
  this.key = '';
8
10
  }
9
11
 
12
+ hash() {
13
+ return computeStringHash(this.key);
14
+ }
15
+
16
+ /**
17
+ *
18
+ * @param {TooltipComponent} other
19
+ * @return {boolean}
20
+ */
21
+ equals(other) {
22
+ return this.key === other.key;
23
+ }
24
+
10
25
  toJSON() {
11
26
  return {
12
27
  key: this.key
@@ -5,14 +5,13 @@
5
5
  import Vector3 from "../../../core/geom/Vector3.js";
6
6
  import Quaternion from "../../../core/geom/Quaternion.js";
7
7
  import { Matrix4 } from "../../../core/geom/Matrix4.js";
8
- import { Quaternion as ThreeQuaternion } from "three";
9
- import { composeMatrix4 } from "../../graphics/util/composeMatrix4.js";
8
+ import { compose_matrix4_array } from "../../graphics/util/composeMatrix4.js";
9
+ import { decompose_matrix_4_array } from "../../graphics/util/decompose_matrix_4_array.js";
10
10
 
11
11
  const delta = new Vector3();
12
12
 
13
13
  const m4_0 = new Matrix4();
14
14
  const m4_1 = new Matrix4();
15
- const threeQuaternion = new ThreeQuaternion();
16
15
 
17
16
  export class Transform {
18
17
  /**
@@ -166,9 +165,15 @@ export class Transform {
166
165
  * @param {Matrix4} matrix
167
166
  */
168
167
  fromThreeMatrix4(matrix) {
169
- matrix.decompose(this.position, threeQuaternion, this.scale);
168
+ this.fromMatrix4(matrix.elements);
169
+ }
170
170
 
171
- this.rotation.copy(threeQuaternion);
171
+ /**
172
+ *
173
+ * @param {mat4|number[]|Float32Array} m
174
+ */
175
+ fromMatrix4(m) {
176
+ decompose_matrix_4_array(m, this.position, this.rotation, this.scale);
172
177
  }
173
178
 
174
179
  /**
@@ -176,7 +181,15 @@ export class Transform {
176
181
  * @param {Matrix4} matrix
177
182
  */
178
183
  toThreeMatrix(matrix) {
179
- composeMatrix4(matrix, this.position, this.rotation, this.scale);
184
+ this.toMatrix4(matrix.elements);
185
+ }
186
+
187
+ /**
188
+ *
189
+ * @param {number[]|Float32Array} result
190
+ */
191
+ toMatrix4(result) {
192
+ compose_matrix4_array(result, this.position, this.rotation, this.scale);
180
193
  }
181
194
  }
182
195
 
@@ -15,10 +15,23 @@ import { DelayBehavior } from "../../intelligence/behavior/util/DelayBehavior.js
15
15
  import { Light } from "../../graphics/ecs/light/Light.js";
16
16
  import { TransitionPropertyVectorXBehavior } from "../../../../model/game/story/behaviors/generic/TransitionPropertyVectorXBehavior.js";
17
17
 
18
+ /**
19
+ * @readonly
20
+ * @type {number}
21
+ */
18
22
  const SHUTDOWN_GRACE_PERIOD = 60;
19
23
 
24
+ /**
25
+ *
26
+ * @type {Map<Class|function, function(T,entity?:EntityBuilder,createEntity?:function,createEntityContext?:*):number>}
27
+ */
20
28
  const component_shutdown = new Map();
21
29
 
30
+ /**
31
+ * @template T
32
+ * @param {Class<T>} type
33
+ * @param {function(T,entity?:EntityBuilder,createEntity?:function,createEntityContext?:*):number} method
34
+ */
22
35
  function addShutdown(type, method) {
23
36
  component_shutdown.set(type, method);
24
37
  }
@@ -152,6 +165,11 @@ addShutdown(SoundEmitter, (soundEmitter, builder, createEntity, createEntityThis
152
165
  * @return {number} duration in seconds until the entity is completely hidden
153
166
  */
154
167
  export function hideEntityGracefully(builder, createEntity, createEntityThisArg) {
168
+ if (!builder.isBuilt) {
169
+ // already destroyed
170
+ return 0;
171
+ }
172
+
155
173
  let delay = 0;
156
174
 
157
175
  const components = builder.element;
@@ -40,6 +40,7 @@ import { ShadowMapRenderer } from "./shadows/ShadowMapRenderer.js";
40
40
  import { CameraViewManager } from "./render/view/CameraViewManager.js";
41
41
  import { StandardFrameBuffers } from "./StandardFrameBuffers.js";
42
42
  import { load_environment_map } from "./texture/cubemap/load_environment_map.js";
43
+ import { CompositingStages } from "./composit/CompositingStages.js";
43
44
 
44
45
  /**
45
46
  *
@@ -96,7 +97,13 @@ function GraphicsEngine(camera, entityManger) {
96
97
  preRender: new Signal(),
97
98
  postRender: new Signal(),
98
99
 
100
+ /**
101
+ * @deprecated
102
+ */
99
103
  preComposite: new Signal(),
104
+ /**
105
+ * @deprecated
106
+ */
100
107
  postComposite: new Signal(),
101
108
 
102
109
  buffersRendered: new Signal(),
@@ -345,23 +352,6 @@ GraphicsEngine.prototype.start = function () {
345
352
 
346
353
  const webGLRenderer = this.renderer = new WebGLRenderer(rendererParameters);
347
354
 
348
- let g = 0;
349
- let t = 0;
350
- webGLRenderer.info.memory = {
351
- get geometries() {
352
- return g;
353
- },
354
- set geometries(v) {
355
- g = v;
356
- },
357
- get textures() {
358
- return t;
359
- },
360
- set textures(v) {
361
- t = v;
362
- }
363
- };
364
-
365
355
  //print GPU info
366
356
  const GPU_NAME = this.getGPUName();
367
357
 
@@ -387,7 +377,7 @@ GraphicsEngine.prototype.start = function () {
387
377
  const domElement = this.domElement = webGLRenderer.domElement;
388
378
  //disable selection
389
379
  const style = domElement.style;
390
- domElement.classList.add("renderer-engine-render-canvas");
380
+ domElement.classList.add("graphics-engine-render-canvas");
391
381
  style.userSelect = style.webkitUserSelect = style.mozUserSelect = "none";
392
382
  // see : https://www.w3.org/TR/pointerevents/#the-touch-action-css-property
393
383
  style.touchAction = "none";
@@ -645,16 +635,14 @@ GraphicsEngine.prototype.render = function (renderTarget) {
645
635
  //do the opaque pass
646
636
  this.renderOpaque();
647
637
 
638
+ this.layerComposer.composite(renderer, CompositingStages.POST_OPAQUE);
639
+
648
640
  this.on.buffersRendered.send3(renderer, camera, scene);
649
641
 
650
642
  // transparent pass
651
643
  this.renderTransparent();
652
644
 
653
- this.on.preComposite.send3(renderer, camera, scene);
654
-
655
- this.layerComposer.composite(renderer);
656
-
657
- this.on.postComposite.send3(renderer, camera, scene);
645
+ this.layerComposer.composite(renderer, CompositingStages.POST_TRANSPARENT);
658
646
 
659
647
 
660
648
  //dispatch post-render event
@@ -95,11 +95,11 @@ function makeConfig(engine) {
95
95
  new TopDownCameraControllerSystem(graphics),
96
96
  new TopDownCameraLanderSystem(),
97
97
  new CameraSystem(graphics.scene, graphics),
98
- new MeshSystem(graphics, assetManager),
98
+ new MeshSystem(engine),
99
99
  new ClingToTerrainSystem(),
100
100
  new TerrainSystem(graphics, assetManager),
101
101
  new WaterSystem(graphics),
102
- new Trail2DSystem(graphics, assetManager),
102
+ new Trail2DSystem(engine),
103
103
  new Foliage2System(assetManager, graphics),
104
104
  new ViewportPositionSystem(graphics.viewport.size),
105
105
  new GridPosition2TransformSystem(),
@@ -5,6 +5,7 @@ import { blendingType2three } from "../texture/sampler/blendingType2Three.js";
5
5
  import { ScreenSpaceQuadShader } from "../shaders/ScreenSpaceQuadShader.js";
6
6
  import { BlendingType } from "../texture/sampler/BlendingType.js";
7
7
  import { FULL_SCREEN_TRIANGLE_GEOMETRY } from "../geometry/FULL_SCREEN_TRIANGLE_GEOMETRY.js";
8
+ import Signal from "../../../core/events/signal/Signal.js";
8
9
 
9
10
  /**
10
11
  *
@@ -29,11 +30,15 @@ function assignMaterialBlending(material, blending) {
29
30
  export class CompositLayer {
30
31
  /**
31
32
  *
32
- * @param {WebGLRenderTarget} renderTarget
33
+ * @param {THREE.WebGLRenderTarget} renderTarget
33
34
  * @param {BlendingType} blending
34
35
  * @param {number} renderTargetScale
35
36
  */
36
- constructor({ renderTarget, blending, renderTargetScale = 1 }) {
37
+ constructor({
38
+ renderTarget,
39
+ blending,
40
+ renderTargetScale = 1
41
+ }) {
37
42
  /**
38
43
  * Human-readable name, useful for debugging
39
44
  * @type {string}
@@ -57,9 +62,13 @@ export class CompositLayer {
57
62
  */
58
63
  this.renderTargetScale = renderTargetScale;
59
64
 
60
- const material = this.buildMaterial();
65
+ this.object = new Mesh(FULL_SCREEN_TRIANGLE_GEOMETRY, this.buildMaterial());
61
66
 
62
- this.object = new Mesh(FULL_SCREEN_TRIANGLE_GEOMETRY, material);
67
+ /**
68
+ * Which compositing stage this layer belongs to, stages are rendered independently
69
+ * @type {number}
70
+ */
71
+ this.stage = 0;
63
72
 
64
73
  this.size = new Vector2();
65
74
 
@@ -74,6 +83,10 @@ export class CompositLayer {
74
83
  * @type {number}
75
84
  */
76
85
  this.__order = 0;
86
+
87
+ this.on = {
88
+ preRender: new Signal()
89
+ };
77
90
  }
78
91
 
79
92
  /**
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @readonly
3
+ * @enum {number}
4
+ */
5
+ export const CompositingStages = {
6
+ POST_OPAQUE: 1,
7
+ POST_TRANSPARENT: 0
8
+ }
@@ -52,8 +52,6 @@ class LayerCompositer {
52
52
 
53
53
  layer.renderTarget.dispose();
54
54
 
55
- this.scene.remove(layer.object);
56
-
57
55
  return true;
58
56
  }
59
57
 
@@ -113,8 +111,6 @@ class LayerCompositer {
113
111
 
114
112
  this.layerTargets.push(layer);
115
113
 
116
- this.scene.add(layer.object);
117
-
118
114
  return true;
119
115
  }
120
116
 
@@ -138,13 +134,46 @@ class LayerCompositer {
138
134
 
139
135
  /**
140
136
  *
141
- * @param {WebGLRenderer} renderer
137
+ * @param {number} stage
138
+ * @private
142
139
  */
143
- composite(renderer) {
140
+ __prepare_scene_for_stage(stage) {
141
+ const layers = this.layerTargets;
142
+ const layer_count = layers.length;
143
+
144
+ const scene = this.scene;
145
+
146
+ let child_count = 0;
147
+
148
+ for (let i = 0; i < layer_count; i++) {
149
+ const layer = layers[i];
150
+
151
+ if (layer.stage !== stage) {
152
+ continue;
153
+ }
154
+
155
+ scene.children[child_count++] = layer.object;
156
+
157
+ layer.on.preRender.send0();
158
+ }
159
+
160
+ scene.children.length = child_count;
161
+ }
162
+
163
+ /**
164
+ *
165
+ * @param {THREE.WebGLRenderer} renderer
166
+ * @param {number} stage
167
+ */
168
+ composite(renderer, stage) {
169
+ assert.isNonNegativeInteger(stage, 'stage');
170
+
144
171
  if (!this.hasActiveLayers()) {
145
172
  return;
146
173
  }
147
174
 
175
+ this.__prepare_scene_for_stage(stage);
176
+
148
177
  const camera = this.camera;
149
178
  const scene = this.scene;
150
179
 
@@ -1,8 +1,9 @@
1
- import { computeHashFloat, computeHashIntegerArray} from "../../../../../core/math/MathUtils.js";
2
1
  import { min2 } from "../../../../../core/math/min2.js";
3
2
  import { AnimationClipFlag } from "./AnimationClipFlag.js";
4
3
  import { LoopOnce, LoopRepeat } from "three";
5
4
  import { AnimationEventTypes } from "./AnimationEventTypes.js";
5
+ import { computeHashIntegerArray } from "../../../../../core/collection/array/computeHashIntegerArray.js";
6
+ import { computeHashFloat } from "../../../../../core/math/hash/computeHashFloat.js";
6
7
 
7
8
  export class AnimationClip {
8
9
  constructor() {
@@ -1,7 +1,8 @@
1
1
  import { isArrayEqual } from "../../../../../core/collection/ArrayUtils.js";
2
- import { computeHashArray, computeHashIntegerArray } from "../../../../../core/math/MathUtils.js";
3
2
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
4
3
  import { invokeObjectHash } from "../../../../../core/model/object/invokeObjectHash.js";
4
+ import { computeHashArray } from "../../../../../core/collection/array/computeHashArray.js";
5
+ import { computeHashIntegerArray } from "../../../../../core/collection/array/computeHashIntegerArray.js";
5
6
 
6
7
  /**
7
8
  *
@@ -1,4 +1,5 @@
1
- import { computeHashFloat, computeHashIntegerArray } from "../../../../../core/math/MathUtils.js";
1
+ import { computeHashIntegerArray } from "../../../../../core/collection/array/computeHashIntegerArray.js";
2
+ import { computeHashFloat } from "../../../../../core/math/hash/computeHashFloat.js";
2
3
 
3
4
  export class AnimationNotification {
4
5
  constructor() {
@@ -1,6 +1,7 @@
1
- import { computeHashIntegerArray, computeObjectHash } from "../../../../../core/math/MathUtils.js";
2
1
  import { objectDeepEquals } from "../../../../../core/model/object/objectDeepEquals.js";
3
2
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
3
+ import { computeHashIntegerArray } from "../../../../../core/collection/array/computeHashIntegerArray.js";
4
+ import { computeObjectHash } from "../../../../../core/math/hash/computeObjectHash.js";
4
5
 
5
6
  export class AnimationNotificationDefinition {
6
7
  constructor() {
@@ -3,11 +3,12 @@ import { AnimationTransition } from "./AnimationTransition.js";
3
3
  import { AnimationStateType } from "./AnimationStateType.js";
4
4
  import { AnimationMixer } from "three";
5
5
  import { AnimationGraphFlag } from "./AnimationGraphFlag.js";
6
- import { computeHashFloat, computeHashIntegerArray } from "../../../../../../core/math/MathUtils.js";
7
6
  import { writeAnimationGraphDefinitionToJSON } from "./definition/serialization/writeAnimationGraphDefinitionToJSON.js";
8
7
  import { readAnimationGraphDefinitionFromJSON } from "./definition/serialization/readAnimationGraphDefinitionFromJSON.js";
9
8
  import { assert } from "../../../../../../core/assert.js";
10
9
  import { threeUpdateTransform } from "../../../../util/threeUpdateTransform.js";
10
+ import { computeHashIntegerArray } from "../../../../../../core/collection/array/computeHashIntegerArray.js";
11
+ import { computeHashFloat } from "../../../../../../core/math/hash/computeHashFloat.js";
11
12
 
12
13
  export class AnimationGraph {
13
14
  constructor() {
@@ -4,8 +4,9 @@ import { AnimationStateDefinition } from "./AnimationStateDefinition.js";
4
4
  import { AnimationClipDefinition } from "../../AnimationClipDefinition.js";
5
5
  import { AnimationClip } from "../../AnimationClip.js";
6
6
  import { isArrayEqual } from "../../../../../../../core/collection/ArrayUtils.js";
7
- import { computeHashArray, computeHashIntegerArray } from "../../../../../../../core/math/MathUtils.js";
8
7
  import { invokeObjectHash } from "../../../../../../../core/model/object/invokeObjectHash.js";
8
+ import { computeHashArray } from "../../../../../../../core/collection/array/computeHashArray.js";
9
+ import { computeHashIntegerArray } from "../../../../../../../core/collection/array/computeHashIntegerArray.js";
9
10
 
10
11
  export class AnimationGraphDefinition {
11
12
  constructor() {
@@ -1,5 +1,5 @@
1
1
  import { AnimationStateType } from "../AnimationStateType.js";
2
- import { computeHashIntegerArray } from "../../../../../../../core/math/MathUtils.js";
2
+ import { computeHashIntegerArray } from "../../../../../../../core/collection/array/computeHashIntegerArray.js";
3
3
 
4
4
  export class AnimationStateDefinition {
5
5
  constructor() {
@@ -1,5 +1,6 @@
1
- import { computeHashFloat, computeHashIntegerArray } from "../../../../../../../core/math/MathUtils.js";
2
1
  import { computeStringHash } from "../../../../../../../core/primitives/strings/computeStringHash.js";
2
+ import { computeHashIntegerArray } from "../../../../../../../core/collection/array/computeHashIntegerArray.js";
3
+ import { computeHashFloat } from "../../../../../../../core/math/hash/computeHashFloat.js";
3
4
 
4
5
  export class AnimationTransitionDefinition {
5
6
  constructor() {
@@ -1,7 +1,7 @@
1
- import { isValueBetweenInclusive } from "../../../../core/math/MathUtils.js";
2
1
  import { frustumFromCamera } from "./CameraSystem.js";
3
2
  import { Frustum as ThreeFrustum } from "three";
4
3
  import { v3_dot } from "../../../../core/geom/v3_dot.js";
4
+ import { isValueBetweenInclusive } from "../../../../core/math/isValueBetweenInclusive.js";
5
5
 
6
6
  const CLIPPING_EPSILON = 0.001;
7
7
 
@@ -1,7 +1,8 @@
1
1
  import { Color } from "../../../../core/color/Color.js";
2
2
  import { assert } from "../../../../core/assert.js";
3
- import { computeHashFloat, computeHashIntegerArray } from "../../../../core/math/MathUtils.js";
4
3
  import { COMPONENT_SERIALIZATION_TRANSIENT_FIELD } from "../../../ecs/storage/COMPONENT_SERIALIZATION_TRANSIENT_FIELD.js";
4
+ import { computeHashIntegerArray } from "../../../../core/collection/array/computeHashIntegerArray.js";
5
+ import { computeHashFloat } from "../../../../core/math/hash/computeHashFloat.js";
5
6
 
6
7
  export class HighlightDefinition {
7
8
  constructor() {