@woosh/meep-engine 2.119.89 → 2.119.90

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.119.89",
8
+ "version": "2.119.90",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -7,4 +7,6 @@ export class TransformedShape3D extends AbstractShape3D {
7
7
  static from_translation_scale(subject: AbstractShape3D, translation: ArrayLike<number>, scale: ArrayLike<number>): TransformedShape3D
8
8
 
9
9
  static from_scale(subject: AbstractShape3D, scale: ArrayLike<number>): TransformedShape3D
10
+
11
+ static from_translation(subject: AbstractShape3D, translation: ArrayLike<number>): TransformedShape3D
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransformedShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/TransformedShape3D.js"],"names":[],"mappings":";AAgBA;IAkCI;;;;;OAKG;IACH,wBAHW,eAAe,MADf,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,GAExB,kBAAkB,CAS9B;IAED;;;;;OAKG;IACH,uCAJW,eAAe,eACf,MAAM,EAAE,SACR,MAAM,EAAE,sBAalB;IAED;;;;OAIG;IACH,iCAHW,eAAe,eACf,MAAM,EAAE,sBAIlB;IAED;;;;;OAKG;IACH,2BAHW,eAAe,SACf,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,GAFxB,kBAAkB,CAS9B;IApFG;;;;OAIG;IACH,iBAAoC;IAEpC;;;;OAIG;IACH,yBAA4C;IAE5C;;;;OAIG;IACH,kBAAqB;IAGzB;;;OAGG;IACH,+BAEC;IA0DD;;;OAGG;IACH,4CAIC;IAED,yCAEC;IAED,qBAMC;IAED,wCAKC;IAED,mEAgDC;IAED,6CAEC;IAED,gCAKC;IAED,kFAIC;IAED,qGAMC;IAED;;;;OAIG;IACH,cAHW,kBAAkB,GAChB,OAAO,CAOnB;IAED,eAGC;CACJ;;8BAIS,OAAO;;gCA9Ne,sBAAsB;qBAR3B,WAAW;qBAAX,WAAW"}
1
+ {"version":3,"file":"TransformedShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/TransformedShape3D.js"],"names":[],"mappings":"AAkBA;IAkCI;;;;;OAKG;IACH,wBAHW,eAAe,MADf,MAAM,EAAE,GAAC,YAAY,OAAK,GAExB,kBAAkB,CAS9B;IAED;;;;;OAKG;IACH,uCAJW,eAAe,eACf,MAAM,EAAE,SACR,MAAM,EAAE,sBAclB;IAED;;;;OAIG;IACH,iCAHW,eAAe,eACf,MAAM,EAAE,sBAIlB;IAED;;;;;OAKG;IACH,2BAHW,eAAe,SACf,MAAM,EAAE,GAAC,YAAY,OAAK,GAFxB,kBAAkB,CAW9B;IAvFG;;;;OAIG;IACH,iBAAoC;IAEpC;;;;OAIG;IACH,yBAA4C;IAE5C;;;;OAIG;IACH,kBAAqB;IAGzB;;;OAGG;IACH,+BAEC;IA6DD;;;OAGG;IACH,4CAIC;IAED,yCAEC;IAED,qBAMC;IAED,wCAKC;IAED,mEAgDC;IAED,6CAEC;IAED,gCAKC;IAED,kFAIC;IAED,qGAMC;IAED;;;;OAIG;IACH,cAHW,kBAAkB,GAChB,OAAO,CAOnB;IAED,eAGC;CACJ;;8BAIS,OAAO;;gCAjOe,sBAAsB"}
@@ -1,4 +1,4 @@
1
- import { mat4, vec3 } from "gl-matrix";
1
+ import { Transform } from "../../../../engine/ecs/transform/Transform.js";
2
2
  import { assert } from "../../../assert.js";
3
3
  import { isArrayEqualStrict } from "../../../collection/array/isArrayEqualStrict.js";
4
4
  import { computeHashFloatArray } from "../../../math/hash/computeHashFloatArray.js";
@@ -6,6 +6,8 @@ import { sign } from "../../../math/sign.js";
6
6
  import { v3_length } from "../../vec3/v3_length.js";
7
7
  import { v3_matrix4_multiply } from "../../vec3/v3_matrix4_multiply.js";
8
8
  import { aabb3_matrix4_project } from "../aabb/aabb3_matrix4_project.js";
9
+ import { m4_extract_scale } from "../m4_extract_scale.js";
10
+ import { m4_invert } from "../mat4/m4_invert.js";
9
11
  import { AbstractShape3D } from "./AbstractShape3D.js";
10
12
 
11
13
  /**
@@ -71,15 +73,16 @@ export class TransformedShape3D extends AbstractShape3D {
71
73
  */
72
74
  static from_translation_scale(subject, translation, scale) {
73
75
 
74
- assert.isArrayLike(translation,'translation');
75
- assert.greaterThanOrEqual(translation.length,3,'translation length must be >= 3');
76
- assert.isArrayLike(scale,'scale');
77
- assert.greaterThanOrEqual(scale.length,3,'scale length must be >= 3');
76
+ assert.isArrayLike(translation, 'translation');
77
+ assert.greaterThanOrEqual(translation.length, 3, 'translation length must be >= 3');
78
+ assert.isArrayLike(scale, 'scale');
79
+ assert.greaterThanOrEqual(scale.length, 3, 'scale length must be >= 3');
78
80
 
79
- const mat = mat4.create();
80
- mat4.fromRotationTranslationScale(mat, [0, 0, 0, 1], translation, scale);
81
+ const t = new Transform();
82
+ t.scale.fromArray(scale);
83
+ t.position.fromArray(translation);
81
84
 
82
- return TransformedShape3D.from_m4(subject, mat);
85
+ return TransformedShape3D.from_m4(subject, t.matrix);
83
86
  }
84
87
 
85
88
  /**
@@ -98,10 +101,12 @@ export class TransformedShape3D extends AbstractShape3D {
98
101
  * @param {number[]|Float32Array|vec3} scale
99
102
  */
100
103
  static from_scale(subject, scale) {
101
- const mat = mat4.create();
102
- mat4.fromScaling(mat, scale);
103
104
 
104
- return TransformedShape3D.from_m4(subject, mat);
105
+ const t = new Transform();
106
+ t.scale.fromArray(scale);
107
+
108
+
109
+ return TransformedShape3D.from_m4(subject, t.matrix);
105
110
  }
106
111
 
107
112
  /**
@@ -111,7 +116,7 @@ export class TransformedShape3D extends AbstractShape3D {
111
116
  set transform(m) {
112
117
  this.__matrix.set(m);
113
118
 
114
- mat4.invert(this.__inverse_matrix, this.__matrix);
119
+ m4_invert(this.__inverse_matrix, this.__matrix);
115
120
  }
116
121
 
117
122
  get transform() {
@@ -119,7 +124,7 @@ export class TransformedShape3D extends AbstractShape3D {
119
124
  }
120
125
 
121
126
  get volume() {
122
- mat4.getScaling(scratch_v3_0, this.__matrix);
127
+ m4_extract_scale(scratch_v3_0, 0, this.__matrix);
123
128
 
124
129
  const scale_modifier = scratch_v3_0[0] * scratch_v3_0[1] * scratch_v3_0[2];
125
130
 
@@ -189,7 +194,7 @@ export class TransformedShape3D extends AbstractShape3D {
189
194
 
190
195
  contains_point(point) {
191
196
  // transform point to subject's local space
192
- vec3.transformMat4(scratch_v3_0, point, this.__inverse_matrix);
197
+ v3_matrix4_multiply(scratch_v3_0, 0, point, 0, this.__inverse_matrix);
193
198
 
194
199
  return this.__subject.contains_point(scratch_v3_0);
195
200
  }