@predy-js/math 0.3.0-beta.47 → 0.3.0-beta.49

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/dist/index.js CHANGED
@@ -170,6 +170,13 @@ const temps = [0, 0, 0];
170
170
  function mat4create() {
171
171
  return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
172
172
  }
173
+ function mat4FromArray(arrLike, index = 0) {
174
+ const ret = new Float32Array(16);
175
+ for (let i = 0; i < 16; i++) {
176
+ ret[i] = (arrLike[index + i]) || 0;
177
+ }
178
+ return ret;
179
+ }
173
180
  function mat4fromRotationTranslationScale(out, q, v, s) {
174
181
  const x = q[0];
175
182
  const y = q[1];
@@ -541,6 +548,29 @@ function mat4scale(out, a, v) {
541
548
  out[15] = a[15];
542
549
  return out;
543
550
  }
551
+ function mat4transpose(out, a) {
552
+ //transpose mat4
553
+ const a01 = a[1], a02 = a[2], a03 = a[3];
554
+ const a12 = a[6], a13 = a[7];
555
+ const a23 = a[11];
556
+ out[0] = a[0];
557
+ out[1] = a[4];
558
+ out[2] = a[8];
559
+ out[3] = a[12];
560
+ out[4] = a01;
561
+ out[5] = a[5];
562
+ out[6] = a[9];
563
+ out[7] = a[13];
564
+ out[8] = a02;
565
+ out[9] = a12;
566
+ out[10] = a[10];
567
+ out[11] = a[14];
568
+ out[12] = a03;
569
+ out[13] = a13;
570
+ out[14] = a23;
571
+ out[15] = a[15];
572
+ return out;
573
+ }
544
574
  function mat4rotate(out, a, rad, axis) {
545
575
  let x = axis[0];
546
576
  let y = axis[1];
@@ -1154,6 +1184,7 @@ exports.mat3Translate = mat3Translate;
1154
1184
  exports.mat3create = mat3create;
1155
1185
  exports.mat4Clone = mat4Clone;
1156
1186
  exports.mat4Determinate = mat4Determinate;
1187
+ exports.mat4FromArray = mat4FromArray;
1157
1188
  exports.mat4create = mat4create;
1158
1189
  exports.mat4fromRotationTranslationScale = mat4fromRotationTranslationScale;
1159
1190
  exports.mat4identity = mat4identity;
@@ -1163,6 +1194,7 @@ exports.mat4perspective = mat4perspective;
1163
1194
  exports.mat4rotate = mat4rotate;
1164
1195
  exports.mat4scale = mat4scale;
1165
1196
  exports.mat4translate = mat4translate;
1197
+ exports.mat4transpose = mat4transpose;
1166
1198
  exports.quatCreate = quatCreate;
1167
1199
  exports.quatEquals = quatEquals;
1168
1200
  exports.quatFromRotation = quatFromRotation;
package/dist/index.mjs CHANGED
@@ -166,6 +166,13 @@ const temps = [0, 0, 0];
166
166
  function mat4create() {
167
167
  return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
168
168
  }
169
+ function mat4FromArray(arrLike, index = 0) {
170
+ const ret = new Float32Array(16);
171
+ for (let i = 0; i < 16; i++) {
172
+ ret[i] = (arrLike[index + i]) || 0;
173
+ }
174
+ return ret;
175
+ }
169
176
  function mat4fromRotationTranslationScale(out, q, v, s) {
170
177
  const x = q[0];
171
178
  const y = q[1];
@@ -537,6 +544,29 @@ function mat4scale(out, a, v) {
537
544
  out[15] = a[15];
538
545
  return out;
539
546
  }
547
+ function mat4transpose(out, a) {
548
+ //transpose mat4
549
+ const a01 = a[1], a02 = a[2], a03 = a[3];
550
+ const a12 = a[6], a13 = a[7];
551
+ const a23 = a[11];
552
+ out[0] = a[0];
553
+ out[1] = a[4];
554
+ out[2] = a[8];
555
+ out[3] = a[12];
556
+ out[4] = a01;
557
+ out[5] = a[5];
558
+ out[6] = a[9];
559
+ out[7] = a[13];
560
+ out[8] = a02;
561
+ out[9] = a12;
562
+ out[10] = a[10];
563
+ out[11] = a[14];
564
+ out[12] = a03;
565
+ out[13] = a13;
566
+ out[14] = a23;
567
+ out[15] = a[15];
568
+ return out;
569
+ }
540
570
  function mat4rotate(out, a, rad, axis) {
541
571
  let x = axis[0];
542
572
  let y = axis[1];
@@ -1131,4 +1161,4 @@ function quatFromVec3s(v1, v2) {
1131
1161
  return vecNormalize([cross[0], cross[1], cross[2], w]);
1132
1162
  }
1133
1163
 
1134
- export { NumberEpsilon, clamp, ensureVec3, getMat4TR, getMat4TRS, getMat4Transform, invertMat4, isZeroVec, mat3FromQuat, mat3FromRotation, mat3FromRotationZ, mat3MulMat3, mat3NormalFromMat4, mat3Rotate, mat3Scale, mat3Translate, mat3create, mat4Clone, mat4Determinate, mat4create, mat4fromRotationTranslationScale, mat4identity, mat4invert, mat4multiply, mat4perspective, mat4rotate, mat4scale, mat4translate, quatCreate, quatEquals, quatFromRotation, quatFromRotationXYZ, quatFromVec3s, quatMultiply, quatStar, rotateVec2, rotationFromMat3, transposeMat3, transposeMat4, vec2AddVec2, vec2Create, vec2MulMat3, vec2MulVec2, vec2SubVec2, vec2TransformByMat3, vec3AddVec3, vec3Create, vec3Cross, vec3MulMat3, vec3MulMat4, vec3MulNum, vec3MulVec3, vec3RotateByMat4, vec3RotateByQuat, vec3TranslateByMat4, vec4Create, vecAdd, vecAddCombine, vecAssign, vecDot, vecFill, vecMinus, vecMulCombine, vecMulScalar, vecNormalize, vecSquareDistance, vecSub };
1164
+ export { NumberEpsilon, clamp, ensureVec3, getMat4TR, getMat4TRS, getMat4Transform, invertMat4, isZeroVec, mat3FromQuat, mat3FromRotation, mat3FromRotationZ, mat3MulMat3, mat3NormalFromMat4, mat3Rotate, mat3Scale, mat3Translate, mat3create, mat4Clone, mat4Determinate, mat4FromArray, mat4create, mat4fromRotationTranslationScale, mat4identity, mat4invert, mat4multiply, mat4perspective, mat4rotate, mat4scale, mat4translate, mat4transpose, quatCreate, quatEquals, quatFromRotation, quatFromRotationXYZ, quatFromVec3s, quatMultiply, quatStar, rotateVec2, rotationFromMat3, transposeMat3, transposeMat4, vec2AddVec2, vec2Create, vec2MulMat3, vec2MulVec2, vec2SubVec2, vec2TransformByMat3, vec3AddVec3, vec3Create, vec3Cross, vec3MulMat3, vec3MulMat4, vec3MulNum, vec3MulVec3, vec3RotateByMat4, vec3RotateByQuat, vec3TranslateByMat4, vec4Create, vecAdd, vecAddCombine, vecAssign, vecDot, vecFill, vecMinus, vecMulCombine, vecMulScalar, vecNormalize, vecSquareDistance, vecSub };
package/dist/mat4.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { mat4 } from '@predy-js/render-interface';
2
2
  import type { vec3, vec4 } from '@predy-js/render-interface';
3
3
  export declare function mat4create(): mat4;
4
+ export declare function mat4FromArray(arrLike: ArrayLike<number>, index?: number): mat4;
4
5
  export declare function mat4fromRotationTranslationScale(out: mat4 | number[], q: vec4, v: vec3, s: vec3): mat4;
5
6
  export declare function invertMat4(out: mat4 | number[], a: mat4): mat4;
6
7
  export declare function mat4Determinate(a: mat4): number;
@@ -11,6 +12,7 @@ export declare function mat4Clone(out: mat4 | number[], from: mat4): mat4;
11
12
  export declare function mat4invert(out: mat4 | number[], a: mat4): mat4;
12
13
  export declare function mat4translate(out: mat4, a: mat4, v: vec3): mat4;
13
14
  export declare function mat4scale(out: mat4, a: mat4, v: vec3): mat4;
15
+ export declare function mat4transpose(out: mat4, a: mat4): mat4;
14
16
  export declare function mat4rotate(out: mat4, a: mat4, rad: number, axis: vec3): mat4;
15
17
  export declare function mat4perspective(out: number[] | mat4, fovy: number, aspect: number, near: number, far: number, reverse?: boolean): mat4;
16
18
  export declare function mat4identity(out: mat4): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@predy-js/math",
3
- "version": "0.3.0-beta.47",
3
+ "version": "0.3.0-beta.49",
4
4
  "description": "Mars JSON Specification",
5
5
  "module": "./dist/index.mjs",
6
6
  "main": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  "prepublishOnly": "npm run build"
29
29
  },
30
30
  "devDependencies": {
31
- "@predy-js/render-interface": "0.3.0-beta.47",
31
+ "@predy-js/render-interface": "0.3.0-beta.49",
32
32
  "@commitlint/cli": "^13.2.1",
33
33
  "@commitlint/config-conventional": "^13.2.0",
34
34
  "@rollup/plugin-commonjs": "^21.0.3",