@woosh/meep-engine 2.108.4 → 2.109.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 (128) hide show
  1. package/build/meep.cjs +73 -48
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +73 -48
  4. package/package.json +1 -1
  5. package/src/core/assert.d.ts +2 -2
  6. package/src/core/assert.d.ts.map +1 -1
  7. package/src/core/assert.js +1 -1
  8. package/src/core/binary/align_4.spec.d.ts +2 -0
  9. package/src/core/binary/align_4.spec.d.ts.map +1 -0
  10. package/src/core/binary/align_4.spec.js +20 -0
  11. package/src/core/binary/{de_interleave_bits_by_2.d.ts → de_interleave_2_bits.d.ts} +1 -1
  12. package/src/core/binary/de_interleave_2_bits.d.ts.map +1 -0
  13. package/src/core/binary/de_interleave_2_bits.spec.js +1 -1
  14. package/src/core/binary/hex2dec.spec.d.ts +2 -0
  15. package/src/core/binary/hex2dec.spec.d.ts.map +1 -0
  16. package/src/core/binary/hex2dec.spec.js +22 -0
  17. package/src/core/binary/split_by_2.spec.d.ts +2 -0
  18. package/src/core/binary/split_by_2.spec.d.ts.map +1 -0
  19. package/src/core/binary/split_by_2.spec.js +22 -0
  20. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts +4 -1
  21. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts.map +1 -1
  22. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +16 -7
  23. package/src/core/bvh2/bvh3/ebvh_build_hierarchy.js +1 -1
  24. package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.d.ts.map +1 -1
  25. package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.js +12 -7
  26. package/src/core/geom/2d/circle/circle_circumference.d.ts +7 -0
  27. package/src/core/geom/2d/circle/circle_circumference.d.ts.map +1 -0
  28. package/src/core/geom/2d/circle/circle_circumference.js +12 -0
  29. package/src/core/geom/2d/compute_polygon_area_2d.d.ts.map +1 -1
  30. package/src/core/geom/2d/compute_polygon_area_2d.js +6 -4
  31. package/src/core/geom/2d/lt-grid/LooseTightGrid.js +1 -1
  32. package/src/core/geom/2d/triangle2d_get_barycentric.d.ts +2 -2
  33. package/src/core/geom/2d/triangle2d_get_barycentric.js +2 -2
  34. package/src/core/geom/3d/Ray3.d.ts +19 -0
  35. package/src/core/geom/3d/Ray3.d.ts.map +1 -0
  36. package/src/core/geom/3d/Ray3.js +27 -0
  37. package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.d.ts +10 -0
  38. package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.d.ts.map +1 -0
  39. package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.js +35 -0
  40. package/src/core/geom/3d/sphere/harmonics/compute_legendre_polynomial.d.ts +1 -0
  41. package/src/core/geom/3d/sphere/harmonics/compute_legendre_polynomial.d.ts.map +1 -0
  42. package/src/core/geom/3d/sphere/harmonics/compute_legendre_polynomial.js +0 -0
  43. package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_cosine_kernel.d.ts +9 -0
  44. package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_cosine_kernel.d.ts.map +1 -0
  45. package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_cosine_kernel.js +25 -0
  46. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  47. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +2 -4
  48. package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts +8 -0
  49. package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts.map +1 -0
  50. package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.js +94 -0
  51. package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts +8 -0
  52. package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts.map +1 -0
  53. package/src/core/geom/3d/sphere/harmonics/{sh3_rotate.js → sh3_rotate_filament.js} +5 -2
  54. package/src/core/geom/3d/sphere/harmonics/sh_compute_K.d.ts +3 -3
  55. package/src/core/geom/3d/sphere/harmonics/sh_compute_K.js +3 -3
  56. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts.map +1 -1
  57. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js +29 -14
  58. package/src/core/geom/Quaternion.js +1 -1
  59. package/src/core/geom/vec3/v3_matrix4_multiply.d.ts +10 -0
  60. package/src/core/geom/vec3/v3_matrix4_multiply.d.ts.map +1 -0
  61. package/src/core/geom/vec3/v3_matrix4_multiply.js +27 -0
  62. package/src/core/geom/vec3/v3_shift_along_direction.d.ts +14 -0
  63. package/src/core/geom/vec3/v3_shift_along_direction.d.ts.map +1 -0
  64. package/src/core/geom/vec3/v3_shift_along_direction.js +23 -0
  65. package/src/core/math/compute_legendre_polynomial.d.ts +10 -0
  66. package/src/core/math/compute_legendre_polynomial.d.ts.map +1 -0
  67. package/src/core/math/compute_legendre_polynomial.js +46 -0
  68. package/src/core/math/statistics/softmax.d.ts +11 -0
  69. package/src/core/math/statistics/softmax.d.ts.map +1 -0
  70. package/src/core/math/statistics/softmax.js +24 -0
  71. package/src/core/math/statistics/softmax.spec.d.ts +2 -0
  72. package/src/core/math/statistics/softmax.spec.d.ts.map +1 -0
  73. package/src/core/math/statistics/softmax.spec.js +9 -0
  74. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  75. package/src/engine/ecs/transform/Transform.js +19 -4
  76. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  77. package/src/engine/graphics/ecs/camera/CameraSystem.js +25 -13
  78. package/src/engine/graphics/geometry/decode_attribute_value.d.ts +10 -0
  79. package/src/engine/graphics/geometry/decode_attribute_value.d.ts.map +1 -0
  80. package/src/engine/graphics/geometry/decode_attribute_value.js +28 -0
  81. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.d.ts +11 -0
  82. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.d.ts.map +1 -0
  83. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.js +31 -0
  84. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -1
  85. package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +0 -86
  86. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts +1 -0
  87. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts.map +1 -1
  88. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.js +6 -2
  89. package/src/engine/graphics/sh3/path_tracer/{GeometryBVHBatched.d.ts → BufferedGeometryBVH.d.ts} +9 -2
  90. package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -0
  91. package/src/engine/graphics/sh3/path_tracer/{GeometryBVHBatched.js → BufferedGeometryBVH.js} +84 -5
  92. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts +6 -4
  93. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
  94. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +54 -8
  95. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +6 -10
  96. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -1
  97. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +41 -47
  98. package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.d.ts +11 -0
  99. package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.d.ts.map +1 -0
  100. package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.js +102 -0
  101. package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.d.ts +9 -0
  102. package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.d.ts.map +1 -0
  103. package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.js +17 -0
  104. package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts +31 -0
  105. package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts.map +1 -0
  106. package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.js +85 -0
  107. package/src/engine/graphics/sh3/path_tracer/material/TextureFilter.d.ts +14 -0
  108. package/src/engine/graphics/sh3/path_tracer/material/TextureFilter.d.ts.map +1 -0
  109. package/src/engine/graphics/sh3/path_tracer/material/TextureFilter.js +17 -0
  110. package/src/engine/graphics/sh3/path_tracer/material/TextureWrapping.d.ts +7 -0
  111. package/src/engine/graphics/sh3/path_tracer/material/TextureWrapping.d.ts.map +1 -0
  112. package/src/engine/graphics/sh3/path_tracer/material/TextureWrapping.js +9 -0
  113. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +104 -9
  114. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts +1 -2
  115. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -1
  116. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +50 -23
  117. package/src/engine/graphics/sh3/prototypeSH3Probe.js +62 -28
  118. package/src/engine/graphics/texture/sampler/one_pixel_sampler_uint8.d.ts +8 -0
  119. package/src/engine/graphics/texture/sampler/one_pixel_sampler_uint8.d.ts.map +1 -0
  120. package/src/engine/graphics/texture/sampler/one_pixel_sampler_uint8.js +10 -0
  121. package/src/engine/graphics/texture/sampler/sampler_multiply_vector.d.ts +8 -0
  122. package/src/engine/graphics/texture/sampler/sampler_multiply_vector.d.ts.map +1 -0
  123. package/src/engine/graphics/texture/sampler/sampler_multiply_vector.js +23 -0
  124. package/src/core/binary/de_interleave_bits_by_2.d.ts.map +0 -1
  125. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +0 -8
  126. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts.map +0 -1
  127. package/src/engine/graphics/sh3/path_tracer/GeometryBVHBatched.d.ts.map +0 -1
  128. /package/src/core/binary/{de_interleave_bits_by_2.js → de_interleave_2_bits.js} +0 -0
@@ -0,0 +1,35 @@
1
+ import { v3_shift_along_direction } from "../../vec3/v3_shift_along_direction.js";
2
+
3
+ /**
4
+ *
5
+ * @param {number[]|ArrayLike<number>|Float32Array} output 6 component vector, [origin_x, origin_y, origin_z, direction_x, direction_y, direction_z]
6
+ * @param {number} output_offset
7
+ * @param {number[]|ArrayLike<number>|Float32Array} input 6 component vector, [origin_x, origin_y, origin_z, direction_x, direction_y, direction_z]
8
+ * @param {number} input_offset
9
+ * @param {number} distance
10
+ */
11
+ export function ray3_shift_origin_along_direction(
12
+ output, output_offset,
13
+ input, input_offset,
14
+ distance
15
+ ) {
16
+ const origin_x = input[input_offset + 0];
17
+ const origin_y = input[input_offset + 1];
18
+ const origin_z = input[input_offset + 2];
19
+
20
+ const direction_x = input[input_offset + 3];
21
+ const direction_y = input[input_offset + 4];
22
+ const direction_z = input[input_offset + 5];
23
+
24
+ v3_shift_along_direction(
25
+ output, 0,
26
+ origin_x, origin_y, origin_z,
27
+ direction_x, direction_y, direction_z,
28
+ distance
29
+ );
30
+
31
+ output[output_offset + 3] = direction_x;
32
+ output[output_offset + 4] = direction_y;
33
+ output[output_offset + 5] = direction_z;
34
+ }
35
+
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=compute_legendre_polynomial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute_legendre_polynomial.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/compute_legendre_polynomial.js"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Performs convolution of 3-band spherical harmonic coefficients with a cosine kernel
3
+ * @param {number[]} out
4
+ * @param {number} out_offset
5
+ * @param {number[]} input
6
+ * @param {number} input_offset
7
+ */
8
+ export function sh3_convolve_with_cosine_kernel(out: number[], out_offset: number, input: number[], input_offset: number): void;
9
+ //# sourceMappingURL=sh3_convolve_with_cosine_kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh3_convolve_with_cosine_kernel.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_convolve_with_cosine_kernel.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,qDALW,MAAM,EAAE,cACR,MAAM,SACN,MAAM,EAAE,gBACR,MAAM,QAchB"}
@@ -0,0 +1,25 @@
1
+ // Cosine kernel for SH
2
+ const CosineA0 = Math.PI;
3
+ const CosineA1 = (2.0 * Math.PI) / 3.0;
4
+ const CosineA2 = Math.PI / 4.0;
5
+
6
+ /**
7
+ * Performs convolution of 3-band spherical harmonic coefficients with a cosine kernel
8
+ * @param {number[]} out
9
+ * @param {number} out_offset
10
+ * @param {number[]} input
11
+ * @param {number} input_offset
12
+ */
13
+ export function sh3_convolve_with_cosine_kernel(out, out_offset, input, input_offset) {
14
+ out[out_offset + 0] = input[input_offset + 0] * CosineA0;
15
+
16
+ out[out_offset + 1] = input[input_offset + 1] * CosineA1;
17
+ out[out_offset + 2] = input[input_offset + 2] * CosineA1;
18
+ out[out_offset + 3] = input[input_offset + 3] * CosineA1;
19
+
20
+ out[out_offset + 4] = input[input_offset + 4] * CosineA2;
21
+ out[out_offset + 5] = input[input_offset + 5] * CosineA2;
22
+ out[out_offset + 6] = input[input_offset + 6] * CosineA2;
23
+ out[out_offset + 7] = input[input_offset + 7] * CosineA2;
24
+ out[out_offset + 8] = input[input_offset + 8] * CosineA2;
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"sh3_dering_optimize_positive.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js"],"names":[],"mappings":"AAkSA;;;;;;;GAOG;AACH,qDANW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,oBAClC,MAAM,oBACN,MAAM,QAIhB"}
1
+ {"version":3,"file":"sh3_dering_optimize_positive.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js"],"names":[],"mappings":"AAgSA;;;;;;;GAOG;AACH,qDANW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,oBAClC,MAAM,oBACN,MAAM,QAIhB"}
@@ -3,7 +3,7 @@ import { assert } from "../../../../assert.js";
3
3
  import { array_copy } from "../../../../collection/array/array_copy.js";
4
4
  import { min2 } from "../../../../math/min2.js";
5
5
  import { SH3_COEFFICIENTS } from "./SH3_COEFFICIENTS.js";
6
- import { sh3_rotate } from "./sh3_rotate.js";
6
+ import { sh3_rotate_bl } from "./sh3_rotate_bl.js";
7
7
  import { sh_index } from "./sh_index.js";
8
8
 
9
9
  /*
@@ -74,11 +74,9 @@ function sh3_min(input_sh3) {
74
74
  array_copy(y_axis, 0, M, 3, 3);
75
75
  array_copy(dir, 0, M, 6, 3);
76
76
 
77
- mat3.transpose(M, M);
78
-
79
77
  const f = new Float32Array(9);
80
78
 
81
- sh3_rotate(f, input_sh3, M);
79
+ sh3_rotate_bl(f, input_sh3, M);
82
80
  // here we're guaranteed to have normalize(float3{ -f[3], -f[1], f[2] }) == { 0, 0, 1 }
83
81
 
84
82
 
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} result sh3
4
+ * @param {number[]} sh input
5
+ * @param {number[]} rotation 3x3 rotation matrix
6
+ */
7
+ export function sh3_rotate_bl(result: number[] | Float32Array, sh: number[], rotation: number[]): number[] | Float32Array;
8
+ //# sourceMappingURL=sh3_rotate_bl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh3_rotate_bl.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,sCAJW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,EAAE,YACR,MAAM,EAAE,2BAuFlB"}
@@ -0,0 +1,94 @@
1
+ const scratch_mat_5x5 = new Float64Array(25);
2
+
3
+ /**
4
+ *
5
+ * @param {number[]|Float32Array} result sh3
6
+ * @param {number[]} sh input
7
+ * @param {number[]} rotation 3x3 rotation matrix
8
+ */
9
+ export function sh3_rotate_bl(result, sh, rotation) {
10
+ // Implementation adapted from BakerLab by https://github.com/TheRealMJP
11
+
12
+ const r00 = rotation[0];
13
+ const r10 = rotation[1];
14
+ const r20 = rotation[2];
15
+
16
+ const r01 = rotation[3];
17
+ const r11 = rotation[4];
18
+ const r21 = rotation[5];
19
+
20
+ const r02 = rotation[6];
21
+ const r12 = rotation[7];
22
+ const r22 = rotation[8];
23
+
24
+
25
+ // Constant
26
+ result[0] = sh[0];
27
+
28
+ // Linear
29
+ result[1] = r11 * sh[1] - r12 * sh[2] + r10 * sh[3];
30
+ result[2] = -r21 * sh[1] + r22 * sh[2] - r20 * sh[3];
31
+ result[3] = r01 * sh[1] - r02 * sh[2] + r00 * sh[3];
32
+
33
+ // Quadratic
34
+ const t41 = r01 * r00;
35
+ const t43 = r11 * r10;
36
+ const t48 = r11 * r12;
37
+ const t50 = r01 * r02;
38
+ const t55 = r02 * r02;
39
+ const t57 = r22 * r22;
40
+ const t58 = r12 * r12;
41
+ const t61 = r00 * r02;
42
+ const t63 = r10 * r12;
43
+ const t68 = r10 * r10;
44
+ const t70 = r01 * r01;
45
+ const t72 = r11 * r11;
46
+ const t74 = r00 * r00;
47
+ const t76 = r21 * r21;
48
+ const t78 = r20 * r20;
49
+
50
+ const v173 = 0.1732050808e1;
51
+ const v577 = 0.5773502693e0;
52
+ const v115 = 0.1154700539e1;
53
+ const v288 = 0.2886751347e0;
54
+ const v866 = 0.8660254040e0;
55
+
56
+ scratch_mat_5x5[0] = r11 * r00 + r01 * r10;
57
+ scratch_mat_5x5[1] = -r01 * r12 - r11 * r02;
58
+ scratch_mat_5x5[2] = v173 * r02 * r12;
59
+ scratch_mat_5x5[3] = -r10 * r02 - r00 * r12;
60
+ scratch_mat_5x5[4] = r00 * r10 - r01 * r11;
61
+ scratch_mat_5x5[5] = -r11 * r20 - r21 * r10;
62
+ scratch_mat_5x5[6] = r11 * r22 + r21 * r12;
63
+ scratch_mat_5x5[7] = -v173 * r22 * r12;
64
+ scratch_mat_5x5[8] = r20 * r12 + r10 * r22;
65
+ scratch_mat_5x5[9] = -r10 * r20 + r11 * r21;
66
+ scratch_mat_5x5[10] = -v577 * (t41 + t43) + v115 * r21 * r20;
67
+ scratch_mat_5x5[11] = v577 * (t48 + t50) - v115 * r21 * r22;
68
+ scratch_mat_5x5[12] = -0.5 * (t55 + t58) + t57;
69
+ scratch_mat_5x5[13] = v577 * (t61 + t63) - v115 * r20 * r22;
70
+ scratch_mat_5x5[14] = v288 * (t70 - t68 + t72 - t74) - v577 * (t76 - t78);
71
+ scratch_mat_5x5[15] = -r01 * r20 - r21 * r00;
72
+ scratch_mat_5x5[16] = r01 * r22 + r21 * r02;
73
+ scratch_mat_5x5[17] = -v173 * r22 * r02;
74
+ scratch_mat_5x5[18] = r00 * r22 + r20 * r02;
75
+ scratch_mat_5x5[19] = -r00 * r20 + r01 * r21;
76
+ scratch_mat_5x5[20] = t41 - t43;
77
+ scratch_mat_5x5[21] = -t50 + t48;
78
+ scratch_mat_5x5[22] = v866 * (t55 - t58);
79
+ scratch_mat_5x5[23] = t63 - t61;
80
+ scratch_mat_5x5[24] = 0.5 * (t74 - t68 - t70 + t72);
81
+
82
+ for (let i = 0; i < 5; ++i) {
83
+ const base = i * 5;
84
+
85
+ result[4 + i] = scratch_mat_5x5[base + 0] * sh[4]
86
+ + scratch_mat_5x5[base + 1] * sh[5]
87
+ + scratch_mat_5x5[base + 2] * sh[6]
88
+ + scratch_mat_5x5[base + 3] * sh[7]
89
+ + scratch_mat_5x5[base + 4] * sh[8]
90
+ ;
91
+ }
92
+
93
+ return result;
94
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} result sh3
4
+ * @param {number[]} sh input
5
+ * @param {number[]} rotation 3x3 rotation matrix
6
+ */
7
+ export function sh3_rotate_filament(result: number[] | Float32Array, sh: number[], rotation: number[]): void;
8
+ //# sourceMappingURL=sh3_rotate_filament.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh3_rotate_filament.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,4CAJW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,EAAE,YACR,MAAM,EAAE,QAuBlB"}
@@ -7,7 +7,9 @@ import { sh_rotate_band2 } from "./sh_rotate_band2.js";
7
7
  * @param {number[]} sh input
8
8
  * @param {number[]} rotation 3x3 rotation matrix
9
9
  */
10
- export function sh3_rotate(result, sh, rotation) {
10
+ export function sh3_rotate_filament(result, sh, rotation) {
11
+
12
+ // Adapted from filament https://github.com/google/filament/blob/e2da13f81734ccd6d6f9935061b771801682619e/libs/ibl/src/CubemapSH.cpp
11
13
 
12
14
  const b0 = sh[0];
13
15
  const band1 = [sh[1], sh[2], sh[3]];
@@ -26,4 +28,5 @@ export function sh3_rotate(result, sh, rotation) {
26
28
  result[6] = b2[2];
27
29
  result[7] = b2[3];
28
30
  result[8] = b2[4];
29
- }
31
+ }
32
+
@@ -1,9 +1,9 @@
1
1
  /**
2
- * computes K(m,l) normalization constant
2
+ * computes K(l,m) normalization constant
3
3
  * @see "Deringing Spherical Harmonics" by Peter-Pike Sloan
4
+ * @param {number} l band
4
5
  * @param {number} m
5
- * @param {number} l
6
6
  * @returns {number}
7
7
  */
8
- export function sh_compute_K(m: number, l: number): number;
8
+ export function sh_compute_K(l: number, m: number): number;
9
9
  //# sourceMappingURL=sh_compute_K.d.ts.map
@@ -1,13 +1,13 @@
1
1
  import { factorial } from "../../../../math/factorial.js";
2
2
 
3
3
  /**
4
- * computes K(m,l) normalization constant
4
+ * computes K(l,m) normalization constant
5
5
  * @see "Deringing Spherical Harmonics" by Peter-Pike Sloan
6
+ * @param {number} l band
6
7
  * @param {number} m
7
- * @param {number} l
8
8
  * @returns {number}
9
9
  */
10
- export function sh_compute_K(m, l) {
10
+ export function sh_compute_K(l, m) {
11
11
 
12
12
  const a = (2 * l + 1) * factorial(l - Math.abs(m))
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"tetrahedral_mesh_build_from_grid.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,gFANW,MAAM,EAAE,gCAER,MAAM,iBACN,MAAM,iBACN,MAAM,QA6HhB"}
1
+ {"version":3,"file":"tetrahedral_mesh_build_from_grid.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,gFANW,MAAM,EAAE,gCAER,MAAM,iBACN,MAAM,iBACN,MAAM,QA4IhB"}
@@ -87,29 +87,44 @@ export function tetrahedral_mesh_build_from_grid(
87
87
  for (let z = 1; z < resolution_z; z++) {
88
88
  for (let y = 1; y < resolution_y; y++) {
89
89
  for (let x = 1; x < resolution_x; x++) {
90
- const p000 = vertex_position_to_index(x - 1, y - 1, z - 1);
91
- const p001 = vertex_position_to_index(x - 1, y - 1, z);
92
- const p010 = vertex_position_to_index(x - 1, y, z - 1);
93
- const p011 = vertex_position_to_index(x - 1, y, z);
94
- const p100 = vertex_position_to_index(x, y - 1, z - 1);
95
- const p101 = vertex_position_to_index(x, y - 1, z);
96
- const p110 = vertex_position_to_index(x, y, z - 1);
97
- const p111 = vertex_position_to_index(x, y, z);
90
+ const A = vertex_position_to_index(x - 1, y - 1, z - 1);
91
+ const B = vertex_position_to_index(x - 1, y - 1, z);
92
+ const C = vertex_position_to_index(x - 1, y, z - 1);
93
+ const D = vertex_position_to_index(x - 1, y, z);
94
+ const E = vertex_position_to_index(x, y - 1, z - 1);
95
+ const F = vertex_position_to_index(x, y - 1, z);
96
+ const G = vertex_position_to_index(x, y, z - 1);
97
+ const H = vertex_position_to_index(x, y, z);
98
+
99
+ // const p000 = vertex_position_to_index(x - 1, y - 1, z - 1);
100
+ // const p001 = vertex_position_to_index(x - 1, y - 1, z);
101
+ // const p010 = vertex_position_to_index(x - 1, y, z - 1);
102
+ // const p011 = vertex_position_to_index(x - 1, y, z);
103
+ // const p100 = vertex_position_to_index(x, y - 1, z - 1);
104
+ // const p101 = vertex_position_to_index(x, y - 1, z);
105
+ // const p110 = vertex_position_to_index(x, y, z - 1);
106
+ // const p111 = vertex_position_to_index(x, y, z);
98
107
 
99
108
 
100
109
  // Tessellate the grid volume into six tetrahedra per grid cell.
101
110
 
102
111
  // prism 1
103
- const tet_0 = make_cell(p111, p110, p010, p000);
104
- const tet_1 = make_cell(p111, p101, p110, p000);
105
- const tet_2 = make_cell(p110, p101, p100, p000);
112
+ const tet_0 = make_cell(E, F, G, A);
113
+ const tet_1 = make_cell(A, B, F, G);
114
+ const tet_2 = make_cell(A, C, B, G);
106
115
 
107
116
  // prism 2
108
- const tet_3 = make_cell(p111, p011, p010, p000);
109
- const tet_4 = make_cell(p111, p101, p011, p000);
110
- const tet_5 = make_cell(p011, p101, p001, p000);
117
+ const tet_3 = make_cell(E, G, H, A);
118
+ const tet_4 = make_cell(A, H, D, G);
119
+ const tet_5 = make_cell(A, D, C, G);
111
120
 
112
121
  // link newly created tetrahedrons
122
+ mesh.setNeighbour(tet_0, 1, (tet_3 << 2) & 2);
123
+ mesh.setNeighbour(tet_3, 2, (tet_0 << 2) & 1);
124
+
125
+ mesh.setNeighbour(tet_0, 1, (tet_1 << 2) & 2);
126
+ mesh.setNeighbour(tet_1, 2, (tet_0 << 2) & 1);
127
+
113
128
  // TODO implement
114
129
 
115
130
  if (x > 1) {
@@ -457,7 +457,7 @@ class Quaternion {
457
457
  /**
458
458
  *
459
459
  * @param {Quaternion} other
460
- * @param {number} max_delta
460
+ * @param {number} max_delta in radians
461
461
  */
462
462
  rotateTowards(other, max_delta) {
463
463
  Quaternion.rotateTowards(this, this, other, max_delta);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Perform matrix multiplication on a 3d vector
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number[]|Float32Array} input
6
+ * @param {number} input_offset
7
+ * @param {number[]|Float32Array} m4
8
+ */
9
+ export function v3_matrix4_multiply(output: number[] | Float32Array, output_offset: number, input: number[] | Float32Array, input_offset: number, m4: number[] | Float32Array): void;
10
+ //# sourceMappingURL=v3_matrix4_multiply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3_matrix4_multiply.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_matrix4_multiply.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,4CANW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,SACN,MAAM,EAAE,GAAC,YAAY,gBACrB,MAAM,MACN,MAAM,EAAE,GAAC,YAAY,QAoB/B"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Perform matrix multiplication on a 3d vector
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number[]|Float32Array} input
6
+ * @param {number} input_offset
7
+ * @param {number[]|Float32Array} m4
8
+ */
9
+ export function v3_matrix4_multiply(
10
+ output, output_offset,
11
+ input, input_offset,
12
+ m4
13
+ ) {
14
+ const x = input[input_offset];
15
+ const y = input[input_offset + 1];
16
+ const z = input[input_offset + 2];
17
+
18
+ const w = 1 / (m4[3] * x + m4[7] * y + m4[11] * z + m4[15]);
19
+
20
+ const _x = (m4[0] * x + m4[4] * y + m4[8] * z + m4[12]) * w;
21
+ const _y = (m4[1] * x + m4[5] * y + m4[9] * z + m4[13]) * w;
22
+ const _z = (m4[2] * x + m4[6] * y + m4[10] * z + m4[14]) * w;
23
+
24
+ output[output_offset] = _x;
25
+ output[output_offset + 1] = _y;
26
+ output[output_offset + 2] = _z;
27
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number} origin_x
6
+ * @param {number} origin_y
7
+ * @param {number} origin_z
8
+ * @param {number} direction_x
9
+ * @param {number} direction_y
10
+ * @param {number} direction_z
11
+ * @param {number} distance
12
+ */
13
+ export function v3_shift_along_direction(output: number[] | Float32Array, output_offset: number, origin_x: number, origin_y: number, origin_z: number, direction_x: number, direction_y: number, direction_z: number, distance: number): void;
14
+ //# sourceMappingURL=v3_shift_along_direction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3_shift_along_direction.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_shift_along_direction.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,iDAVW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,YACN,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,YACN,MAAM,QAYhB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number} origin_x
6
+ * @param {number} origin_y
7
+ * @param {number} origin_z
8
+ * @param {number} direction_x
9
+ * @param {number} direction_y
10
+ * @param {number} direction_z
11
+ * @param {number} distance
12
+ */
13
+ export function v3_shift_along_direction(
14
+ output, output_offset,
15
+ origin_x, origin_y, origin_z,
16
+ direction_x, direction_y, direction_z,
17
+ distance
18
+ ) {
19
+
20
+ output[output_offset + 0] = origin_x + direction_x * distance;
21
+ output[output_offset + 1] = origin_y + direction_y * distance;
22
+ output[output_offset + 2] = origin_z + direction_z * distance;
23
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Computes associated Legendre Polynomial P(l,m,x) at x
3
+ * Useful in Spherical Harmonics coefficient computation
4
+ * @param {number} l band
5
+ * @param {number} m
6
+ * @param {number} x
7
+ * @returns {number}
8
+ */
9
+ export function compute_legendre_polynomial(l: number, m: number, x: number): number;
10
+ //# sourceMappingURL=compute_legendre_polynomial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute_legendre_polynomial.d.ts","sourceRoot":"","sources":["../../../../src/core/math/compute_legendre_polynomial.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,+CALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAuClB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Computes associated Legendre Polynomial P(l,m,x) at x
3
+ * Useful in Spherical Harmonics coefficient computation
4
+ * @param {number} l band
5
+ * @param {number} m
6
+ * @param {number} x
7
+ * @returns {number}
8
+ */
9
+ export function compute_legendre_polynomial(l, m, x) {
10
+ // based on code from https://github.com/jan-van-bergen/SphericalHarmonicLighting/blob/2b214b3451859ded07ea4e41fb2aa8d2a44ab579/SphericalHarmonicsLighting/SphericalHarmonics.cpp#L61
11
+
12
+ // Apply rule 2; P m m
13
+ let pmm = 1.0;
14
+ if (m > 0) {
15
+ const somx2 = Math.sqrt((1.0 - x) * (1.0 + x));
16
+ let fact = 1.0;
17
+
18
+ for (let i = 1; i <= m; i++) {
19
+ pmm *= (-fact) * somx2;
20
+ fact += 2.0;
21
+ }
22
+ }
23
+
24
+ // If l is equal to m then P m m is already the right answer
25
+ if (l === m) {
26
+ return pmm;
27
+ }
28
+
29
+ // Use rule 3 once
30
+ let pmmp1 = x * (2.0 * m + 1.0) * pmm;
31
+
32
+ if (l === m + 1) {
33
+ return pmmp1;
34
+ }
35
+
36
+ // Iterate rule 1 until the right answer is found
37
+ let pll = 0.0;
38
+
39
+ for (let ll = m + 2; ll <= l; ll++) {
40
+ pll = ((2.0 * ll - 1.0) * x * pmmp1 - (ll + m - 1.0) * pmm) / (ll - m);
41
+ pmm = pmmp1;
42
+ pmmp1 = pll;
43
+ }
44
+
45
+ return pll;
46
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Normalized exponential function, converts vector of size K into probability distribution of K possible outcomes
3
+ * Useful in neural network implementations
4
+ * @see https://en.wikipedia.org/wiki/Softmax_function
5
+ * @param {number[]|Float32Array} z input vector
6
+ * @param {number} i Element in vector Z to compute softmax for
7
+ * @param {number} k Should be >= 1, typically dimension of Z
8
+ * @returns {number}
9
+ */
10
+ export function softmax(z: number[] | Float32Array, i: number, k: number): number;
11
+ //# sourceMappingURL=softmax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"softmax.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/softmax.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,2BALW,MAAM,EAAE,GAAC,YAAY,KACrB,MAAM,KACN,MAAM,GACJ,MAAM,CAgBlB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Normalized exponential function, converts vector of size K into probability distribution of K possible outcomes
3
+ * Useful in neural network implementations
4
+ * @see https://en.wikipedia.org/wiki/Softmax_function
5
+ * @param {number[]|Float32Array} z input vector
6
+ * @param {number} i Element in vector Z to compute softmax for
7
+ * @param {number} k Should be >= 1, typically dimension of Z
8
+ * @returns {number}
9
+ */
10
+ export function softmax(z, i, k) {
11
+
12
+ const ezi = Math.exp(z[i]);
13
+
14
+ // NOTE that if we want to compute softmax for an entire vector, it could be far more efficient
15
+ let sum = 0;
16
+
17
+ for (let j = 1; j < k; j++) {
18
+
19
+ sum += Math.exp(z[j]);
20
+
21
+ }
22
+
23
+ return ezi / sum;
24
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=softmax.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"softmax.spec.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/softmax.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { softmax } from "./softmax.js";
2
+
3
+ test("1,2,8",()=>{
4
+
5
+ expect(softmax([1,2,8],0,3)).toBeCloseTo(0.001);
6
+ expect(softmax([1,2,8],1,3)).toBeCloseTo(0.002);
7
+ expect(softmax([1,2,8],2,3)).toBeCloseTo(0.997);
8
+
9
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/transform/Transform.js"],"names":[],"mappings":"AAsBA;;;GAGG;AACH;IAwQI;;;;OAIG;IACH,4BAFa,SAAS,CAQrB;IAqDD;;;;;OAKG;IACH,wCAJW,UAAU,gBACV,OAAO,wBAajB;IAtVD;;;OAGG;IACH,mBAHU,OAAO,CAGe;IAEhC;;;OAGG;IACH,mBAHU,UAAU,CAGkB;IAEtC;;;OAGG;IACH,gBAHU,OAAO,CAGY;IAE7B;;;;OAIG;IACH,iBAFU,YAAY,CAEC;IAEvB;;;;OAIG;IACH,OAFU,MAAM,CAEM;IAOtB;;;;OAIG;IACH,uBAMC;IAED;;;OAGG;IACH,kBAMC;IAED;;;OAGG;IACH,qBAMC;IAED;;;;OAIG;IACH,kDAIC;IAED;;;;OAIG;IACH,oDAIC;IAYD;;;;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;;OAEG;IACH,qBAEC;IAED;;;;OAIG;IACH,eAHW,OAAO,OACP,OAAO,QAmBjB;IAED,0BAwBC;IAED;;;;MAMC;IAED;;;OAGG;IACH,YAFW,SAAS,QAenB;IAED;;;OAGG;IACH,SAFa,SAAS,CAQrB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACP,OAAO,CAMnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAKlB;IAeD;;;;OAIG;IACH,sBAHW,SAAS,KACT,SAAS,QAMnB;IAED;;;OAGG;IACH,eAFW,OAAK,MAAM,EAAE,GAAC,YAAY,QAcpC;IAED;;;OAGG;IACH,kBAFW,MAAM,EAAE,GAAC,YAAY,QAI/B;IAED;;;;;OAKG;IACH,qBAEC;IAED,mBAEC;IA2BL;;;OAGG;IACH,sBAFU,OAAO,CAEc;;CAZ9B;;kBAIS,MAAM;;oBAhXI,+BAA+B;uBAD5B,kCAAkC;+BAE1B,qBAAqB"}
1
+ {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/transform/Transform.js"],"names":[],"mappings":"AAsBA;;;GAGG;AACH;IAwQI;;;;OAIG;IACH,4BAFa,SAAS,CAQrB;IAED;;;;OAIG;IACH,uBAHW,MAAM,EAAE,GAAC,YAAY,GACnB,SAAS,CAQrB;IAuDD;;;;;OAKG;IACH,wCAJW,UAAU,gBACV,OAAO,wBAajB;IArWD;;;OAGG;IACH,mBAHU,OAAO,CAGe;IAEhC;;;OAGG;IACH,mBAHU,UAAU,CAGkB;IAEtC;;;OAGG;IACH,gBAHU,OAAO,CAGY;IAE7B;;;;OAIG;IACH,iBAFU,YAAY,CAEC;IAEvB;;;;OAIG;IACH,OAFU,MAAM,CAEM;IAOtB;;;;OAIG;IACH,uBAMC;IAED;;;OAGG;IACH,kBAMC;IAED;;;OAGG;IACH,qBAMC;IAED;;;;OAIG;IACH,kDAIC;IAED;;;;OAIG;IACH,oDAIC;IAYD;;;;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;;OAEG;IACH,qBAEC;IAED;;;;OAIG;IACH,eAHW,OAAO,OACP,OAAO,QAmBjB;IAED,0BAwBC;IAED;;;;MAMC;IAED;;;OAGG;IACH,YAFW,SAAS,QAenB;IAED;;;OAGG;IACH,SAFa,SAAS,CAQrB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACP,OAAO,CAMnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAKlB;IA4BD;;;;OAIG;IACH,sBAHW,SAAS,KACT,SAAS,QAMnB;IAED;;;OAGG;IACH,oBAFW,OAAK,MAAM,EAAE,GAAC,YAAY,QAgBpC;IAED;;;OAGG;IACH,kBAFW,MAAM,EAAE,GAAC,YAAY,QAI/B;IAED;;;;;OAKG;IACH,qBAEC;IAED,mBAEC;IA2BL;;;OAGG;IACH,sBAFU,OAAO,CAEc;;CAZ9B;;kBAIS,MAAM;;oBA/XI,+BAA+B;uBAD5B,kCAAkC;+BAE1B,qBAAqB"}
@@ -301,6 +301,19 @@ export class Transform {
301
301
  return result;
302
302
  }
303
303
 
304
+ /**
305
+ *
306
+ * @param {number[]|Float32Array} mat
307
+ * @returns {Transform}
308
+ */
309
+ static fromMatrix(mat) {
310
+ const result = new Transform();
311
+
312
+ result.fromMatrix4(mat);
313
+
314
+ return result;
315
+ }
316
+
304
317
  /**
305
318
  * Multiply two transforms, result it written into this one
306
319
  * @param {Transform} a
@@ -314,17 +327,19 @@ export class Transform {
314
327
 
315
328
  /**
316
329
  *
317
- * @param {mat4|number[]|Float32Array} m
330
+ * @param {mat4|number[]|Float32Array} matrix
318
331
  */
319
- fromMatrix4(m) {
332
+ fromMatrix4(matrix) {
333
+ assert.isArrayLike(matrix, 'matrix');
334
+
320
335
  // we know we are changing the matrix, so we're going to need to disable the flag that sets matrix from position/rotation/scale changes
321
336
  const ad = this.getFlag(TransformFlags.AutomaticChangeDetection);
322
337
 
323
338
  this.clearFlag(TransformFlags.AutomaticChangeDetection);
324
339
 
325
- this.matrix.set(m);
340
+ this.matrix.set(matrix);
326
341
 
327
- decompose_matrix_4_array(m, this.position, this.rotation, this.scale);
342
+ decompose_matrix_4_array(matrix, this.position, this.rotation, this.scale);
328
343
 
329
344
  // restore value of the flag
330
345
  this.writeFlag(TransformFlags.AutomaticChangeDetection, ad);
@@ -1 +1 @@
1
- {"version":3,"file":"CameraSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/CameraSystem.js"],"names":[],"mappings":"AAeA;IA2OI;;;;OAIG;IACH,8EAOC;IAED;;;;OAIG;IACH,0DAFa;QAAC,SAAS,EAAC,CAAC,MAAM,GAAC,SAAS,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAc1D;IAED;;;;OAIG;IACH,uEAFoB,YAAY,EAAE,gBAqBjC;IAnSD;;;;OAIG;IACH,sCAmDC;IAhDG,WAA2B;IAE3B,mDAAuC;IAEvC,8DAEC;IAQD;;OAEG;IACH,yBAAwB;IAExB,kBAAoB;IAKpB;;;;;OAKG;IACH,+BAeC;IAED,sBAAwB;IAI5B;;;;;OAKG;IACH,aAHW,MAAM,aADN,SAAS,uBAqFnB;IAED;;;;;OAKG;IACH,eAHW,MAAM,aADN,SAAS,uBAiBnB;IAED,0EAqDC;IAED,2EAQC;CA4DJ;uBA/SsB,wBAAwB;0BACrB,qCAAqC;uBAGxC,aAAa;4CALQ,uDAAuD;wCAJ1D,OAAO"}
1
+ {"version":3,"file":"CameraSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/CameraSystem.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,4DAHW,YAAY,8BAmBtB;AAED;IA+NI;;;;OAIG;IACH,8EAOC;IAED;;;;OAIG;IACH,0DAFa;QAAC,SAAS,EAAC,CAAC,MAAM,GAAC,SAAS,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAc1D;IAED;;;;OAIG;IACH,uEAFoB,YAAY,EAAE,gBAqBjC;IAvRD;;;;OAIG;IACH,sCAmDC;IAhDG,WAA2B;IAE3B,mDAAuC;IAEvC,8DAEC;IAQD;;OAEG;IACH,yBAAwB;IAExB,kBAAoB;IAKpB;;;;;OAKG;IACH,+BAeC;IAED,sBAAwB;IAI5B;;;;;OAKG;IACH,aAHW,MAAM,aADN,SAAS,uBAyEnB;IAED;;;;;OAKG;IACH,eAHW,MAAM,aADN,SAAS,uBAiBnB;IAED,0EAqDC;IAED,2EAQC;CA4DJ;uBAtTsB,aAAa;uBALb,wBAAwB;0BACrB,qCAAqC;4CAFnB,uDAAuD;wCAJ1D,OAAO"}