@woosh/meep-engine 3.45.0 → 3.46.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 (216) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/package.json +1 -1
  3. package/src/core/assert.d.ts.map +1 -1
  4. package/src/core/assert.js +5 -1
  5. package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
  6. package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
  7. package/src/core/binary/hash/XXH128Hash.js +4 -55
  8. package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
  9. package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
  10. package/src/core/binary/hash/XXH3_SECRET.js +4 -25
  11. package/src/core/binary/hash/crc32.d.ts +1 -15
  12. package/src/core/binary/hash/crc32.d.ts.map +1 -1
  13. package/src/core/binary/hash/crc32.js +4 -96
  14. package/src/core/binary/hash/xxh3_128.d.ts +1 -9
  15. package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
  16. package/src/core/binary/hash/xxh3_128.js +4 -341
  17. package/src/core/binary/hash/xxh3_64.d.ts +1 -8
  18. package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
  19. package/src/core/binary/hash/xxh3_64.js +4 -241
  20. package/src/core/binary/hash/xxh3_common.d.ts +1 -223
  21. package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
  22. package/src/core/binary/hash/xxh3_common.js +90 -476
  23. package/src/core/collection/array/combine_hash.d.ts +6 -0
  24. package/src/core/collection/array/combine_hash.d.ts.map +1 -1
  25. package/src/core/collection/array/combine_hash.js +6 -0
  26. package/src/core/function/FunctionCompiler.js +2 -2
  27. package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
  28. package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
  29. package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
  30. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
  31. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
  32. package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
  33. package/src/core/geom/ConicRay.js +2 -2
  34. package/src/core/geom/Vector4.d.ts.map +1 -1
  35. package/src/core/geom/Vector4.js +8 -5
  36. package/src/core/math/hash/XXH128Hash.d.ts +38 -0
  37. package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
  38. package/src/core/math/hash/XXH128Hash.js +55 -0
  39. package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
  40. package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
  41. package/src/core/math/hash/XXH3_SECRET.js +25 -0
  42. package/src/core/math/hash/crc32.d.ts +16 -0
  43. package/src/core/math/hash/crc32.d.ts.map +1 -0
  44. package/src/core/math/hash/crc32.js +96 -0
  45. package/src/core/math/hash/xxh3_128.d.ts +10 -0
  46. package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
  47. package/src/core/math/hash/xxh3_128.js +341 -0
  48. package/src/core/math/hash/xxh3_64.d.ts +9 -0
  49. package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
  50. package/src/core/math/hash/xxh3_64.js +241 -0
  51. package/src/core/math/hash/xxh3_common.d.ts +224 -0
  52. package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
  53. package/src/core/math/hash/xxh3_common.js +476 -0
  54. package/src/core/math/lookup/ParameterLookupTable.js +2 -2
  55. package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
  56. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
  57. package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
  58. package/src/engine/asset/AssetDescription.js +2 -2
  59. package/src/engine/ecs/animation/Animation.js +2 -2
  60. package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
  61. package/src/engine/ecs/animation/AnimationClip.js +7 -5
  62. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  63. package/src/engine/ecs/gui/GUIElement.js +7 -5
  64. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
  65. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  66. package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
  67. package/src/engine/ecs/transform/Transform64.d.ts +1 -1
  68. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  69. package/src/engine/ecs/transform/Transform64.js +5 -4
  70. package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
  71. package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
  72. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
  73. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
  74. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
  75. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
  76. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
  77. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
  78. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
  79. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
  80. package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
  81. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
  82. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
  83. package/src/engine/graphics3/ParticipatingMedia.js +204 -204
  84. package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
  85. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  86. package/src/engine/graphics3/animation/AnimationClips.js +5 -0
  87. package/src/engine/grid/obstacle/GridObstacle.js +2 -2
  88. package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
  89. package/src/engine/interpolation/Interpolated.js +2 -2
  90. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  91. package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
  92. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
  93. package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
  94. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
  95. package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
  96. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  97. package/src/engine/physics/fluid/FluidField.js +7 -5
  98. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
  99. package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
  100. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
  101. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
  102. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
  103. package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
  104. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
  105. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
  106. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
  107. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
  108. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  109. package/src/engine/sound/ecs/audio/AudioEmitter.js +12 -7
  110. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
  111. package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
  112. package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
  113. package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
  114. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
  115. package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
  116. package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
  117. package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
  118. package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
  119. package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
  120. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  121. package/src/engine/sound/sopra/definition/EventDescription.js +23 -13
  122. package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
  123. package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
  124. package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
  125. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
  126. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
  127. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
  128. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
  129. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
  130. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
  131. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
  132. package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
  133. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
  134. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
  135. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
  136. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
  137. package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +7 -5
  138. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
  139. package/src/engine/sound/sopra/definition/effect/EqEffect.js +8 -5
  140. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +2 -2
  141. package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
  142. package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
  143. package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
  144. package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
  145. package/src/format/image/png/PNGReader.js +644 -644
  146. package/src/format/image/png/crc32.d.ts +1 -1
  147. package/src/format/image/png/crc32.js +7 -8
  148. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
  149. package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
  150. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
  151. package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
  152. package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
  153. package/src/shade/descriptor/blend/BlendComponent.js +2 -2
  154. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
  155. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
  156. package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
  157. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
  158. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
  159. package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
  160. package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
  161. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
  162. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
  163. package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
  164. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
  165. package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
  166. package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
  167. package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
  168. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  169. package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
  170. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  171. package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
  172. package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
  173. package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
  174. package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
  175. package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
  176. package/src/shade/renderer/binding/BufferBinding.js +2 -2
  177. package/src/shade/renderer/camera/Camera.js +2 -2
  178. package/src/shade/renderer/geometry/Attribute.js +2 -2
  179. package/src/shade/renderer/geometry/Geometry.js +2 -2
  180. package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
  181. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
  182. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
  183. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
  184. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
  185. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
  186. package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
  187. package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
  188. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
  189. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
  190. package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
  191. package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
  192. package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
  193. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
  194. package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
  195. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  196. package/src/shade/renderer/texture/ShadeTexture.js +17 -10
  197. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
  198. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
  199. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
  200. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  201. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
  202. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
  203. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
  204. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
  205. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
  206. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
  207. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
  208. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
  209. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
  210. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
  211. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
  212. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
  213. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
  214. package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
  215. package/src/view/common/HTMLElementCacheKey.js +4 -3
  216. package/src/view/minimap/MinimapMarker.js +2 -2
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../assert.js";
2
- import { combine_hash } from "../../collection/array/combine_hash.js";
2
+ import { hash_mix3 } from "../hash/hash_mix3.js";
3
3
  import { isArrayEqualStrict } from "../../collection/array/isArrayEqualStrict.js";
4
4
  import { computeHashFloatArray } from "../hash/computeHashFloatArray.js";
5
5
  import { inverseLerp } from "../inverseLerp.js";
@@ -377,7 +377,7 @@ export class ParameterLookupTable {
377
377
  const dataHash = computeHashFloatArray(this.data);
378
378
  const positionHash = computeHashFloatArray(this.positions);
379
379
 
380
- return combine_hash(
380
+ return hash_mix3(
381
381
  dataHash,
382
382
  positionHash,
383
383
  this.itemSize
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../assert.js";
2
- import { combine_hash } from "../../../collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../../math/hash/hash_mix2.js";
3
3
 
4
4
  /**
5
5
  * @typedef {import("../Connection.js").Connection} Connection
@@ -137,7 +137,7 @@ export class NodeInstancePortReference {
137
137
  * @return {number}
138
138
  */
139
139
  hash() {
140
- return combine_hash(
140
+ return hash_mix2(
141
141
  this.instance.hash(),
142
142
  this.port.hash()
143
143
  );
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../assert.js";
2
- import { combine_hash } from "../../../collection/array/combine_hash.js";
2
+ import { hash_mix3 } from "../../../math/hash/hash_mix3.js";
3
3
  import { ReactiveExpression } from "./ReactiveExpression.js";
4
4
 
5
5
  /**
@@ -60,7 +60,7 @@ export class ReactiveBinaryExpression extends ReactiveExpression {
60
60
  }
61
61
 
62
62
  hash() {
63
- return combine_hash(
63
+ return hash_mix3(
64
64
  this.left.hash(),
65
65
  this.right.hash(),
66
66
  super.hash()
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../../assert.js";
2
- import { combine_hash } from "../../../../collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../../../math/hash/hash_mix2.js";
3
3
  import DataType from "../../../../parser/simple/DataType.js";
4
4
  import { computeStringHash } from "../../../../primitives/strings/computeStringHash.js";
5
5
  import { ReactiveExpression } from "../ReactiveExpression.js";
@@ -124,7 +124,7 @@ export class ReactiveReference extends ReactiveExpression {
124
124
 
125
125
 
126
126
  hash() {
127
- return combine_hash(
127
+ return hash_mix2(
128
128
  computeStringHash(this.name),
129
129
  super.hash()
130
130
  );
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../core/assert.js";
2
- import { combine_hash } from "../../core/collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../core/math/hash/hash_mix2.js";
3
3
  import { computeStringHash } from "../../core/primitives/strings/computeStringHash.js";
4
4
 
5
5
  export class AssetDescription {
@@ -39,7 +39,7 @@ export class AssetDescription {
39
39
  * @returns {number}
40
40
  */
41
41
  hash() {
42
- return combine_hash(
42
+ return hash_mix2(
43
43
  computeStringHash(this.path),
44
44
  computeStringHash(this.type)
45
45
  );
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../core/assert.js";
2
- import { combine_hash } from "../../../core/collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../../core/math/hash/hash_mix2.js";
3
3
  import List from '../../../core/collection/list/List.js';
4
4
  import { computeHashFloat } from "../../../core/primitives/numbers/computeHashFloat.js";
5
5
  import { AnimationClip } from "./AnimationClip.js";
@@ -139,7 +139,7 @@ export class Animation {
139
139
  * @returns {number}
140
140
  */
141
141
  hash() {
142
- return combine_hash(
142
+ return hash_mix2(
143
143
  this.clips.hash(),
144
144
  computeHashFloat(this.debtTime)
145
145
  );
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/animation/AnimationClip.js"],"names":[],"mappings":"AAKA;IA2DI;;;;OAIG;IACH,yBAFa,aAAa,CAQzB;IApED,qBAA8B;IAC9B,6BAAqC;IAErC;;;OAGG;IACH,QAFU,OAAO,CAEO;IAExB;;;OAGG;IACH,WAFU,OAAO,CAEU;IAE3B;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CAQnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAUlB;IAED;;;;OAIG;IACH,WAHW,MAAM,oBAAkB,GACtB,OAAO,CAInB;IAeD,0BA4BC;IAED;;;;;;MAQC;IAED;;;OAGG;IACH,2CAQC;IAED;;;OAGG;IACH,6CAOC;CACJ;2BA5I0B,uCAAuC;4BADtC,wCAAwC;oBADhD,+BAA+B"}
1
+ {"version":3,"file":"AnimationClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/animation/AnimationClip.js"],"names":[],"mappings":"AAKA;IA6DI;;;;OAIG;IACH,yBAFa,aAAa,CAQzB;IAtED,qBAA8B;IAC9B,6BAAqC;IAErC;;;OAGG;IACH,QAFU,OAAO,CAEO;IAExB;;;OAGG;IACH,WAFU,OAAO,CAEU;IAE3B;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CAQnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAYlB;IAED;;;;OAIG;IACH,WAHW,MAAM,oBAAkB,GACtB,OAAO,CAInB;IAeD,0BA4BC;IAED;;;;;;MAQC;IAED;;;OAGG;IACH,2CAQC;IAED;;;OAGG;IACH,6CAOC;CACJ;2BA9I0B,uCAAuC;4BADtC,wCAAwC;oBADhD,+BAA+B"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../core/math/hash/hash_mix3.js";
2
2
  import Vector1 from "../../../core/geom/Vector1.js";
3
3
  import ObservedInteger from "../../../core/model/ObservedInteger.js";
4
4
  import ObservedString from "../../../core/model/ObservedString.js";
@@ -44,10 +44,12 @@ export class AnimationClip {
44
44
  * @returns {number}
45
45
  */
46
46
  hash() {
47
- return combine_hash(
48
- this.name.hash(),
49
- this.repeatCount.hash(),
50
- this.weight.hash(),
47
+ return hash_mix3(
48
+ hash_mix3(
49
+ this.name.hash(),
50
+ this.repeatCount.hash(),
51
+ this.weight.hash()
52
+ ),
51
53
  this.timeScale.hash(),
52
54
  this.flags
53
55
  );
@@ -1 +1 @@
1
- {"version":3,"file":"GUIElement.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/gui/GUIElement.js"],"names":[],"mappings":"6BASU,MAAM;;;;;;AAahB;IAyII;;;;OAIG;IACH,6BAFa,UAAU,CAYtB;IAED;;;;OAIG;IACH,yBAFY,UAAU,CAQrB;IApKD;;;OAGG;IACH,WAAY;IAEZ;;;OAGG;IACH,cAAa;IAEb;;;OAGG;IACH,gBAAgB;IAEhB;;;OAGG;IACH,QAFU,OAAO,CAEU;IAE3B;;;;OAIG;IACH,gBAFU,SAAO,IAAI,CAER;IAEb;;;OAGG;IACH,cAA+B;IAG/B;;;OAGG;IACH,SAFU,eAAe,CAEW;IAGpC;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,GACnB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,SACrB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,OAAO,CAInB;IAED;;;;OAIG;IACH,cAHW,UAAU,GACR,OAAO,CAgCnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAUjB;IAgCD;;;;;;aAUC;IAED;;;;;;;;;MAQC;CAEJ;;;;;oBAjNmB,+BAA+B;4BAEvB,wCAAwC"}
1
+ {"version":3,"file":"GUIElement.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/gui/GUIElement.js"],"names":[],"mappings":"6BASU,MAAM;;;;;;AAahB;IA2II;;;;OAIG;IACH,6BAFa,UAAU,CAYtB;IAED;;;;OAIG;IACH,yBAFY,UAAU,CAQrB;IAtKD;;;OAGG;IACH,WAAY;IAEZ;;;OAGG;IACH,cAAa;IAEb;;;OAGG;IACH,gBAAgB;IAEhB;;;OAGG;IACH,QAFU,OAAO,CAEU;IAE3B;;;;OAIG;IACH,gBAFU,SAAO,IAAI,CAER;IAEb;;;OAGG;IACH,cAA+B;IAG/B;;;OAGG;IACH,SAFU,eAAe,CAEW;IAGpC;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,GACnB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,cAAc,SACrB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,cAAc,GACnB,OAAO,CAInB;IAED;;;;OAIG;IACH,cAHW,UAAU,GACR,OAAO,CAgCnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAYjB;IAgCD;;;;;;aAUC;IAED;;;;;;;;;MAQC;CAEJ;;;;;oBAnNmB,+BAA+B;4BAEvB,wCAAwC"}
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../../../core/assert.js";
2
- import { combine_hash } from "../../../core/collection/array/combine_hash.js";
2
+ import { hash_mix3 } from "../../../core/math/hash/hash_mix3.js";
3
3
  import Vector2 from '../../../core/geom/Vector2.js';
4
4
  import { objectDeepEquals } from "../../../core/model/object/objectDeepEquals.js";
5
5
  import ObservedBoolean from "../../../core/model/ObservedBoolean.js";
@@ -148,10 +148,12 @@ class GUIElement {
148
148
  * @return {number}
149
149
  */
150
150
  hash() {
151
- return combine_hash(
152
- this.flags,
153
- computeStringHash(this.klass),
154
- this.anchor.hash(),
151
+ return hash_mix3(
152
+ hash_mix3(
153
+ this.flags,
154
+ computeStringHash(this.klass),
155
+ this.anchor.hash()
156
+ ),
155
157
  computeStringHash(this.group),
156
158
  this.visible.hash()
157
159
  )
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../core/math/hash/hash_mix2.js";
2
2
  import Vector3 from '../../../../core/geom/Vector3.js';
3
3
  import { HeadsUpDisplayFlag } from "./HeadsUpDisplayFlag.js";
4
4
 
@@ -73,7 +73,7 @@ class HeadsUpDisplay {
73
73
  * @return {number}
74
74
  */
75
75
  hash() {
76
- return combine_hash(
76
+ return hash_mix2(
77
77
  this.flags,
78
78
  this.worldOffset.hash()
79
79
  );
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportPosition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/gui/position/ViewportPosition.js"],"names":[],"mappings":"oCAOU,MAAM;;;;;;AAOhB;IA0GI,4CAMC;IA/GD;;;OAGG;IACH,UAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,QAFU,OAAO,CAEM;IACvB;;;OAGG;IACH,QAFU,OAAO,CAEU;IAG3B;;;;OAIG;IACH,sBAFU,OAAO,CAEY;IAE7B;;;;OAIG;IACH,iBAFU,MAAM,CAEK;IAGrB;;;OAGG;IACH,mBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,SAFU,eAAe,CAEW;IAEpC;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAWnB;IAED,eAUC;IAED;;;;;;;;aAkBC;IAED;;;;;;;;;;;;;;;;;MAUC;CASJ;;;;;oBA9HmB,kCAAkC;4BAC1B,2CAA2C"}
1
+ {"version":3,"file":"ViewportPosition.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/gui/position/ViewportPosition.js"],"names":[],"mappings":"oCAOU,MAAM;;;;;;AAOhB;IA8GI,4CAMC;IAnHD;;;OAGG;IACH,UAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,QAFU,OAAO,CAEM;IACvB;;;OAGG;IACH,QAFU,OAAO,CAEU;IAG3B;;;;OAIG;IACH,sBAFU,OAAO,CAEY;IAE7B;;;;OAIG;IACH,iBAFU,MAAM,CAEK;IAGrB;;;OAGG;IACH,mBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,SAFU,eAAe,CAEW;IAEpC;;;;OAIG;IACH,cAHW,gBAAgB,GACd,OAAO,CAWnB;IAED,eAcC;IAED;;;;;;;;aAkBC;IAED;;;;;;;;;;;;;;;;;MAUC;CASJ;;;;;oBAlImB,kCAAkC;4BAC1B,2CAA2C"}
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
2
2
  import Vector2 from "../../../../core/geom/Vector2.js";
3
3
  import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
4
4
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
@@ -75,12 +75,16 @@ class ViewportPosition {
75
75
  }
76
76
 
77
77
  hash() {
78
- return combine_hash(
79
- this.position.hash(),
80
- this.offset.hash(),
81
- this.anchor.hash(),
82
- this.resolveGuiCollisions ? 1 : 0,
83
- computeHashFloat(this.screenEdgeWidth),
78
+ return hash_mix3(
79
+ hash_mix3(
80
+ hash_mix3(
81
+ this.position.hash(),
82
+ this.offset.hash(),
83
+ this.anchor.hash()
84
+ ),
85
+ this.resolveGuiCollisions ? 1 : 0,
86
+ computeHashFloat(this.screenEdgeWidth)
87
+ ),
84
88
  this.stickToScreenEdge ? 1 : 0,
85
89
  this.enabled.hash()
86
90
  );
@@ -5,7 +5,7 @@
5
5
  * Index of the first element of the 4x4 affine matrix inside a {@link Transform64}.
6
6
  *
7
7
  * It is 0, which means a `Transform64` can be passed to any `mat4` function directly,
8
- * in place of the matrix - `m4_multiply(out, a_transform, b_transform)` and the like.
8
+ * in place of the matrix - `m4_multiply_f64(out, a_transform, b_transform)` and the like.
9
9
  * @type {number}
10
10
  */
11
11
  export const TRANSFORM64_MATRIX_OFFSET: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Transform64.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/transform/Transform64.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transform64.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/transform/Transform64.js"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { array_copy } from "../../../core/collection/array/array_copy.js";
3
3
  import { array_range_equal_strict } from "../../../core/collection/array/array_range_equal_strict.js";
4
4
  import { m4_decompose_array } from "../../../core/geom/3d/mat4/m4_decompose_array.js";
5
5
  import { m4_from_rotation_translation_scale_array } from "../../../core/geom/3d/mat4/m4_from_rotation_translation_scale_array.js";
6
- import { m4_multiply } from "../../../core/geom/3d/mat4/m4_multiply.js";
6
+ import { m4_multiply_f64 } from "../../../core/geom/3d/mat4/m4_multiply_f64.js";
7
7
  import { quat3_multiply } from "../../../core/geom/3d/quaternion/quat3_multiply.js";
8
8
  import { v3_quaternion_apply } from "../../../core/geom/vec3/v3_quaternion_apply.js";
9
9
  import { t64_look_rotation } from "./t64_look_rotation.js";
@@ -16,7 +16,7 @@ import { t64_look_rotation } from "./t64_look_rotation.js";
16
16
  * Index of the first element of the 4x4 affine matrix inside a {@link Transform64}.
17
17
  *
18
18
  * It is 0, which means a `Transform64` can be passed to any `mat4` function directly,
19
- * in place of the matrix - `m4_multiply(out, a_transform, b_transform)` and the like.
19
+ * in place of the matrix - `m4_multiply_f64(out, a_transform, b_transform)` and the like.
20
20
  * @type {number}
21
21
  */
22
22
  export const TRANSFORM64_MATRIX_OFFSET = 0;
@@ -595,8 +595,9 @@ export class Transform64 extends Float64Array {
595
595
  assert.equal(a.isTransform64, true, 'a.isTransform64 !== true');
596
596
  assert.equal(b.isTransform64, true, 'b.isTransform64 !== true');
597
597
 
598
- // both operands are fully read into locals before the first write, so aliasing is safe
599
- m4_multiply(this, a, b);
598
+ // every element is read before the write that could replace it, so aliasing is safe; the
599
+ // Float64Array-only copy, because the shared m4_multiply boxes every element it writes
600
+ m4_multiply_f64(this, a, b);
600
601
 
601
602
  this.updateComponents();
602
603
 
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/animation/animator/AnimationClip.js"],"names":[],"mappings":"AAMA;IACI;;;OAGG;IACH,6BAAW;IAEX;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,OAFU,MAAM,GAAC,iBAAiB,CAExB;IAEV;;;;;;;;;;;;;;;;;;;OAmBG;IACH,8BALW,MAAM,sCAEN,MAAM,SACN,MAAM,QAoGhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,OAAO,CAInB;IAGD;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CAYnB;IAED;;OAEG;IACH,QAFa,MAAM,CASlB;CACJ;kCAzNiC,wBAAwB"}
1
+ {"version":3,"file":"AnimationClip.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/animation/animator/AnimationClip.js"],"names":[],"mappings":"AAOA;IACI;;;OAGG;IACH,6BAAW;IAEX;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,OAFU,MAAM,GAAC,iBAAiB,CAExB;IAEV;;;;;;;;;;;;;;;;;;;OAmBG;IACH,8BALW,MAAM,sCAEN,MAAM,SACN,MAAM,QAoGhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,iBAAiB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,iBAAiB,GACtB,OAAO,CAInB;IAGD;;;;OAIG;IACH,cAHW,aAAa,GACX,OAAO,CAYnB;IAED;;OAEG;IACH,QAFa,MAAM,CAWlB;CACJ;kCA3NiC,wBAAwB"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
3
  import { min2 } from "../../../../../core/math/min2.js";
3
4
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
4
5
  import { AnimationClipFlag } from "./AnimationClipFlag.js";
@@ -211,10 +212,12 @@ export class AnimationClip {
211
212
  * @returns {number}
212
213
  */
213
214
  hash() {
214
- return combine_hash(
215
- this.flags,
216
- computeHashFloat(this.weight),
217
- computeHashFloat(this.timeScale),
215
+ return hash_mix2(
216
+ hash_mix3(
217
+ this.flags,
218
+ computeHashFloat(this.weight),
219
+ computeHashFloat(this.timeScale)
220
+ ),
218
221
  this.def.hash()
219
222
  );
220
223
  }
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashArray } from "../../../../../core/collection/array/computeHashArray.js";
3
3
  import { isArrayEqual } from "../../../../../core/collection/array/isArrayEqual.js";
4
4
  import { invokeObjectHash } from "../../../../../core/model/object/invokeObjectHash.js";
@@ -106,7 +106,7 @@ export class AnimationClipDefinition {
106
106
  * @returns {number}
107
107
  */
108
108
  hash() {
109
- return combine_hash(
109
+ return hash_mix3(
110
110
  computeStringHash(this.name),
111
111
  computeHashArray(this.notifications, invokeObjectHash),
112
112
  computeHashArray(this.tags, computeStringHash)
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
3
3
 
4
4
  export class AnimationNotification {
@@ -33,7 +33,7 @@ export class AnimationNotification {
33
33
  * @returns {number}
34
34
  */
35
35
  hash() {
36
- return combine_hash(
36
+ return hash_mix2(
37
37
  computeHashFloat(this.time),
38
38
  this.def.hash()
39
39
  );
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
2
2
  import { computeObjectHash } from "../../../../../core/math/hash/computeObjectHash.js";
3
3
  import { objectDeepEquals } from "../../../../../core/model/object/objectDeepEquals.js";
4
4
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
@@ -34,7 +34,7 @@ export class AnimationNotificationDefinition {
34
34
  * @returns {number}
35
35
  */
36
36
  hash() {
37
- return combine_hash(
37
+ return hash_mix2(
38
38
  computeStringHash(this.event),
39
39
  computeObjectHash(this.data)
40
40
  );
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix3 } from "../../../../../../../core/math/hash/hash_mix3.js";
2
2
  import { computeHashArray } from "../../../../../../../core/collection/array/computeHashArray.js";
3
3
  import { isArrayEqual } from "../../../../../../../core/collection/array/isArrayEqual.js";
4
4
  import { invokeObjectHash } from "../../../../../../../core/model/object/invokeObjectHash.js";
@@ -54,7 +54,7 @@ export class AnimationGraphDefinition {
54
54
  * @returns {number}
55
55
  */
56
56
  hash() {
57
- return combine_hash(
57
+ return hash_mix3(
58
58
  this.startingSate.hash(),
59
59
  computeHashArray(this.states, invokeObjectHash),
60
60
  computeHashArray(this.transitions, invokeObjectHash)
@@ -1,4 +1,4 @@
1
- import { combine_hash } from "../../../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../../../core/math/hash/hash_mix2.js";
2
2
  import { AnimationStateType } from "../AnimationStateType.js";
3
3
 
4
4
  export class AnimationStateDefinition {
@@ -82,7 +82,7 @@ export class AnimationStateDefinition {
82
82
  * @returns {number}
83
83
  */
84
84
  hash() {
85
- return combine_hash(
85
+ return hash_mix2(
86
86
  this.type,
87
87
  this.motion.hash()
88
88
  );
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationTransitionDefinition.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js"],"names":[],"mappings":"AAIA;IACI;;;OAGG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,MAAM,CAED;IAEf;;;OAGG;IACH,iCAAc;IAEd;;;OAGG;IACH,iCAAc;IAEd;;;;OAIG;IACH,cAHW,6BAA6B,GAC3B,OAAO,CAYnB;IAED;;OAEG;IACH,QAFa,MAAM,CASlB;CACJ"}
1
+ {"version":3,"file":"AnimationTransitionDefinition.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js"],"names":[],"mappings":"AAKA;IACI;;;OAGG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,MAAM,CAED;IAEf;;;OAGG;IACH,iCAAc;IAEd;;;OAGG;IACH,iCAAc;IAEd;;;;OAIG;IACH,cAHW,6BAA6B,GAC3B,OAAO,CAYnB;IAED;;OAEG;IACH,QAFa,MAAM,CAWlB;CACJ"}
@@ -1,4 +1,5 @@
1
- import { combine_hash } from "../../../../../../../core/collection/array/combine_hash.js";
1
+ import { hash_mix2 } from "../../../../../../../core/math/hash/hash_mix2.js";
2
+ import { hash_mix3 } from "../../../../../../../core/math/hash/hash_mix3.js";
2
3
  import { computeHashFloat } from "../../../../../../../core/primitives/numbers/computeHashFloat.js";
3
4
  import { computeStringHash } from "../../../../../../../core/primitives/strings/computeStringHash.js";
4
5
 
@@ -48,10 +49,12 @@ export class AnimationTransitionDefinition {
48
49
  * @returns {number}
49
50
  */
50
51
  hash() {
51
- return combine_hash(
52
- computeStringHash(this.event),
53
- computeHashFloat(this.duration),
54
- this.source.hash(),
52
+ return hash_mix2(
53
+ hash_mix3(
54
+ computeStringHash(this.event),
55
+ computeHashFloat(this.duration),
56
+ this.source.hash()
57
+ ),
55
58
  this.target.hash()
56
59
  );
57
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Decal.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/decal/v2/Decal.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;IAmGI,+BAMC;IAvGD;;;;;;;OAOG;IACH,KAFU,MAAM,CAEP;IAET;;;OAGG;IACH,YAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,YAFU,MAAM,CAEA;IAEhB;;;;;OAKG;IACH,SAFU,MAAM,CAEH;IAEb;;;;OAIG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,KAAK,CAEe;IAE9B;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;OAEG;IACH,WAFU,MAAM,CAEF;IAEd;;OAEG;IACH,gBAFU,KAAK,CAEwB;IAEvC;;;;OAIG;IACH,oBAFU,MAAM,CAEO;IAEvB;;;;OAIG;IACH,yBAAwB;IAExB;;;;OAIG;IACH,qBAAoB;IAEpB;;;;;;OAMG;IACH,yBAEC;IAUD;;;;;;;;;;;;MAcC;IAED;;;;;;;;;;;;aA+CC;IAED,eAkBC;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAenB;CACJ;;;;sBAnPqB,oCAAoC"}
1
+ {"version":3,"file":"Decal.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/decal/v2/Decal.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;IAmGI,+BAMC;IAvGD;;;;;;;OAOG;IACH,KAFU,MAAM,CAEP;IAET;;;OAGG;IACH,YAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,YAFU,MAAM,CAEA;IAEhB;;;;;OAKG;IACH,SAFU,MAAM,CAEH;IAEb;;;;OAIG;IACH,cAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,KAAK,CAEe;IAE9B;;;OAGG;IACH,WAFU,MAAM,CAEF;IAEd;;OAEG;IACH,WAFU,MAAM,CAEF;IAEd;;OAEG;IACH,gBAFU,KAAK,CAEwB;IAEvC;;;;OAIG;IACH,oBAFU,MAAM,CAEO;IAEvB;;;;OAIG;IACH,yBAAwB;IAExB;;;;OAIG;IACH,qBAAoB;IAEpB;;;;;;OAMG;IACH,yBAEC;IAUD;;;;;;;;;;;;MAcC;IAED;;;;;;;;;;;;aA+CC;IAED,eAkBC;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAenB;CACJ;;;;sBApPqB,oCAAoC"}
@@ -2,7 +2,8 @@ import { Color } from "../../../../../core/color/Color.js";
2
2
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
3
3
  import { assert } from "../../../../../core/assert.js";
4
4
  import { computeHashFloat } from "../../../../../core/primitives/numbers/computeHashFloat.js";
5
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
5
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
6
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
6
7
 
7
8
  /**
8
9
  * A projected surface decal.
@@ -203,21 +204,21 @@ export class Decal {
203
204
  }
204
205
 
205
206
  hash() {
206
- return combine_hash(
207
+ return hash_mix3(
207
208
  computeStringHash(this.uri) ^ this.color.hash(),
208
- combine_hash(
209
- combine_hash(
209
+ hash_mix2(
210
+ hash_mix2(
210
211
  computeStringHash(this.uri_albedo),
211
212
  computeStringHash(this.uri_normal)
212
213
  ),
213
- combine_hash(
214
+ hash_mix2(
214
215
  computeStringHash(this.uri_orm),
215
216
  computeStringHash(this.uri_emissive)
216
217
  )
217
218
  ),
218
- combine_hash(
219
- combine_hash(computeHashFloat(this.roughness), computeHashFloat(this.metalness)),
220
- combine_hash(this.emissive_color.hash(), computeHashFloat(this.emissive_intensity))
219
+ hash_mix2(
220
+ hash_mix2(computeHashFloat(this.roughness), computeHashFloat(this.metalness)),
221
+ hash_mix2(this.emissive_color.hash(), computeHashFloat(this.emissive_intensity))
221
222
  )
222
223
  );
223
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextureResourceDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js"],"names":[],"mappings":"AAMA;IAoEI;;;;;;kCAiBC;IAnFD;;;OAGG;IACH,QAFU,MAAM,CAEL;IACX;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,QAFU,cAAc,CAEM;IAE9B;;;OAGG;IACH,eAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAFU,MAAM,CAE0B;IAe1C;;;;OAIG;IACH,cAHW,yBAAyB,GACvB,OAAO,CAkBnB;CAqBJ;mCAzFkC,yBAAyB;+BAH7B,mDAAmD"}
1
+ {"version":3,"file":"TextureResourceDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js"],"names":[],"mappings":"AAOA;IAsEI;;;;;;kCAiBC;IArFD;;;OAGG;IACH,QAFU,MAAM,CAEL;IACX;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,QAFU,cAAc,CAEM;IAE9B;;;OAGG;IACH,eAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAFU,MAAM,CAE0B;IAiB1C;;;;OAIG;IACH,cAHW,yBAAyB,GACvB,OAAO,CAkBnB;CAqBJ;mCA3FkC,yBAAyB;+BAJ7B,mDAAmD"}
@@ -1,5 +1,6 @@
1
1
  import { BinaryDataType } from "../../../../../core/binary/type/BinaryDataType.js";
2
- import { combine_hash } from "../../../../../core/collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../../../../../core/math/hash/hash_mix2.js";
3
+ import { hash_mix3 } from "../../../../../core/math/hash/hash_mix3.js";
3
4
  import { computeStringHash } from "../../../../../core/primitives/strings/computeStringHash.js";
4
5
  import { ResourceDescriptor } from "./ResourceDescriptor.js";
5
6
  import { TextureInitialState } from "./TextureInitialState.js";
@@ -40,11 +41,13 @@ export class TextureResourceDescriptor extends ResourceDescriptor {
40
41
  }
41
42
 
42
43
  hash() {
43
- return combine_hash(
44
- this.width,
45
- this.height,
46
- computeStringHash(this.format),
47
- this.channel_count,
44
+ return hash_mix2(
45
+ hash_mix3(
46
+ this.width,
47
+ this.height,
48
+ computeStringHash(this.format)
49
+ ),
50
+ this.channel_count
48
51
  )
49
52
  }
50
53