@woosh/meep-engine 2.113.9 → 2.113.10

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.
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.113.9",
8
+ "version": "2.113.10",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -2,17 +2,17 @@
2
2
  *
3
3
  * @param {Float32Array|number[]|vec3} result
4
4
  * @param {number} result_offset
5
- * @param {number} x0
6
- * @param {number} y0
7
- * @param {number} z0
8
- * @param {number} x1
9
- * @param {number} y1
10
- * @param {number} z1
11
- * @param {number} normalX
12
- * @param {number} normalY
13
- * @param {number} normalZ
14
- * @param {number} dist
15
- * @returns {boolean}
5
+ * @param {number} x0 first point defining line
6
+ * @param {number} y0 first point defining line
7
+ * @param {number} z0 first point defining line
8
+ * @param {number} x1 second point defining line
9
+ * @param {number} y1 second point defining line
10
+ * @param {number} z1 second point defining line
11
+ * @param {number} plane_normal_x
12
+ * @param {number} plane_normal_y
13
+ * @param {number} plane_normal_z
14
+ * @param {number} plane_offset
15
+ * @returns {boolean} if intersection exists, false if line is parallel to the plane
16
16
  */
17
- export function plane3_compute_line_segment_intersection(result: Float32Array | number[] | vec3, result_offset: number, x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, normalX: number, normalY: number, normalZ: number, dist: number): boolean;
17
+ export function plane3_compute_line_segment_intersection(result: Float32Array | number[] | vec3, result_offset: number, x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, plane_normal_x: number, plane_normal_y: number, plane_normal_z: number, plane_offset: number): boolean;
18
18
  //# sourceMappingURL=plane3_compute_line_segment_intersection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plane3_compute_line_segment_intersection.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/plane/plane3_compute_line_segment_intersection.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,iEAdW,YAAY,GAAC,MAAM,EAAE,OAAK,iBAC1B,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,WACN,MAAM,WACN,MAAM,WACN,MAAM,QACN,MAAM,GACJ,OAAO,CAiCnB"}
1
+ {"version":3,"file":"plane3_compute_line_segment_intersection.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/plane/plane3_compute_line_segment_intersection.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,iEAdW,YAAY,GAAC,MAAM,EAAE,OAAK,iBAC1B,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,kBACN,MAAM,kBACN,MAAM,kBACN,MAAM,gBACN,MAAM,GACJ,OAAO,CAiCnB"}
@@ -4,36 +4,36 @@ import { v3_dot } from "../../vec3/v3_dot.js";
4
4
  *
5
5
  * @param {Float32Array|number[]|vec3} result
6
6
  * @param {number} result_offset
7
- * @param {number} x0
8
- * @param {number} y0
9
- * @param {number} z0
10
- * @param {number} x1
11
- * @param {number} y1
12
- * @param {number} z1
13
- * @param {number} normalX
14
- * @param {number} normalY
15
- * @param {number} normalZ
16
- * @param {number} dist
17
- * @returns {boolean}
7
+ * @param {number} x0 first point defining line
8
+ * @param {number} y0 first point defining line
9
+ * @param {number} z0 first point defining line
10
+ * @param {number} x1 second point defining line
11
+ * @param {number} y1 second point defining line
12
+ * @param {number} z1 second point defining line
13
+ * @param {number} plane_normal_x
14
+ * @param {number} plane_normal_y
15
+ * @param {number} plane_normal_z
16
+ * @param {number} plane_offset
17
+ * @returns {boolean} if intersection exists, false if line is parallel to the plane
18
18
  */
19
19
  export function plane3_compute_line_segment_intersection(
20
20
  result, result_offset,
21
21
  x0, y0, z0,
22
22
  x1, y1, z1,
23
- normalX, normalY, normalZ, dist
23
+ plane_normal_x, plane_normal_y, plane_normal_z, plane_offset
24
24
  ) {
25
25
 
26
26
  const directionX = x1 - x0;
27
27
  const directionY = y1 - y0;
28
28
  const directionZ = z1 - z0;
29
29
 
30
- const denom = v3_dot(directionX, directionY, directionZ, normalX, normalY, normalZ);
30
+ const denom = v3_dot(directionX, directionY, directionZ, plane_normal_x, plane_normal_y, plane_normal_z);
31
31
 
32
32
  if (denom === 0) {
33
33
  return false;
34
34
  }
35
35
 
36
- const p = v3_dot(normalX, normalY, normalZ, x0, y0, z0) + dist;
36
+ const p = v3_dot(plane_normal_x, plane_normal_y, plane_normal_z, x0, y0, z0) + plane_offset;
37
37
 
38
38
  const t = -p / denom;
39
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"tetrahedron_compute_signed_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js"],"names":[],"mappings":"AAkCA;;;;;;;;;;GAUG;AACH,0DAPW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,KACvC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CA0ClB"}
1
+ {"version":3,"file":"tetrahedron_compute_signed_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,0DAPW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,KACvC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CA0ClB"}
@@ -1,35 +1,4 @@
1
- const ONE_OVER_SIX = 1.0 / 6.0;
2
-
3
- /**
4
- * Compute signed volume of a tetrahedron with the last point at the origin
5
- * @see "EFFICIENT FEATURE EXTRACTION FOR 2D/3D OBJECTS IN MESH REPRESENTATION" by Cha Zhang and Tsuhan Chen
6
- * @param {number} ax
7
- * @param {number} ay
8
- * @param {number} az
9
- * @param {number} bx
10
- * @param {number} by
11
- * @param {number} bz
12
- * @param {number} cx
13
- * @param {number} cy
14
- * @param {number} cz
15
- * @return {number}
16
- */
17
- function triangle_compute_signed_volume(
18
- ax, ay, az,
19
- bx, by, bz,
20
- cx, cy, cz
21
- ) {
22
-
23
- const v321 = cx * by * az;
24
- const v231 = bx * cy * az;
25
- const v312 = cx * ay * bz;
26
- const v132 = ax * cy * bz;
27
- const v213 = bx * ay * cz;
28
- const v123 = ax * by * cz;
29
-
30
- return ONE_OVER_SIX * (-v321 + v231 + v312 - v132 - v213 + v123);
31
-
32
- }
1
+ import { triangle_compute_signed_volume } from "../triangle/triangle_compute_signed_volume.js";
33
2
 
34
3
 
35
4
  /**
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Compute signed volume of a tetrahedron with the last point at the origin
3
+ * Triangle is defined by points A,B,C
4
+ * @see "EFFICIENT FEATURE EXTRACTION FOR 2D/3D OBJECTS IN MESH REPRESENTATION" by Cha Zhang and Tsuhan Chen
5
+ * @param {number} ax
6
+ * @param {number} ay
7
+ * @param {number} az
8
+ * @param {number} bx
9
+ * @param {number} by
10
+ * @param {number} bz
11
+ * @param {number} cx
12
+ * @param {number} cy
13
+ * @param {number} cz
14
+ * @return {number}
15
+ */
16
+ export function triangle_compute_signed_volume(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): number;
17
+ //# sourceMappingURL=triangle_compute_signed_volume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangle_compute_signed_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/triangle/triangle_compute_signed_volume.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,mDAXW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACL,MAAM,CAiBjB"}
@@ -0,0 +1,33 @@
1
+ const ONE_OVER_SIX = 1.0 / 6.0;
2
+
3
+ /**
4
+ * Compute signed volume of a tetrahedron with the last point at the origin
5
+ * Triangle is defined by points A,B,C
6
+ * @see "EFFICIENT FEATURE EXTRACTION FOR 2D/3D OBJECTS IN MESH REPRESENTATION" by Cha Zhang and Tsuhan Chen
7
+ * @param {number} ax
8
+ * @param {number} ay
9
+ * @param {number} az
10
+ * @param {number} bx
11
+ * @param {number} by
12
+ * @param {number} bz
13
+ * @param {number} cx
14
+ * @param {number} cy
15
+ * @param {number} cz
16
+ * @return {number}
17
+ */
18
+ export function triangle_compute_signed_volume(
19
+ ax, ay, az,
20
+ bx, by, bz,
21
+ cx, cy, cz
22
+ ) {
23
+
24
+ const v321 = cx * by * az;
25
+ const v231 = bx * cy * az;
26
+ const v312 = cx * ay * bz;
27
+ const v132 = ax * cy * bz;
28
+ const v213 = bx * ay * cz;
29
+ const v123 = ax * by * cz;
30
+
31
+ return ONE_OVER_SIX * (-v321 + v231 + v312 - v132 - v213 + v123);
32
+
33
+ }