@predy-js/math 0.3.0-beta.27 → 0.3.0-beta.270

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];
@@ -752,9 +782,9 @@ function getMat4Transform(te) {
752
782
  // create vec2
753
783
  function vec2Create(v2) {
754
784
  if (v2) {
755
- return [v2[0], v2[1]];
785
+ return new Float32Array([v2[0], v2[1]]);
756
786
  }
757
- return [0, 0];
787
+ return new Float32Array([0, 0]);
758
788
  }
759
789
  // vec2 add vec2
760
790
  function vec2AddVec2(out, a, b) {
@@ -917,9 +947,9 @@ function clamp(v, min, max) {
917
947
  const r2d = 180 / Math.PI;
918
948
  function vec3Create(v) {
919
949
  if (v) {
920
- return [v[0], v[1], v[2]];
950
+ return new Float32Array([v[0], v[1], v[2]]);
921
951
  }
922
- return [0, 0, 0];
952
+ return new Float32Array([0, 0, 0]);
923
953
  }
924
954
  function vec3MulVec3(out, a, b) {
925
955
  out[0] = a[0] * b[0];
@@ -1023,9 +1053,9 @@ function vec3RotateByQuat(out, a, quat) {
1023
1053
 
1024
1054
  function vec4Create(v) {
1025
1055
  if (v) {
1026
- return [v[0], v[1], v[2], v[3]];
1056
+ return new Float32Array([v[0], v[1], v[2], v[3]]);
1027
1057
  }
1028
- return [0, 0, 0, 0];
1058
+ return new Float32Array([0, 0, 0, 0]);
1029
1059
  }
1030
1060
 
1031
1061
  const d2r = Math.PI / 180;
@@ -1107,6 +1137,11 @@ function quatStar(out, quat) {
1107
1137
  out[3] = w;
1108
1138
  return out;
1109
1139
  }
1140
+ /**
1141
+ * @param {vec3} vstart
1142
+ * @param {vec3} vend
1143
+ * @returns {vec4}
1144
+ */
1110
1145
  function quatFromVec3s(v1, v2) {
1111
1146
  const cross = [
1112
1147
  v1[1] * v2[2] - v1[2] * v2[1],
@@ -1149,6 +1184,7 @@ exports.mat3Translate = mat3Translate;
1149
1184
  exports.mat3create = mat3create;
1150
1185
  exports.mat4Clone = mat4Clone;
1151
1186
  exports.mat4Determinate = mat4Determinate;
1187
+ exports.mat4FromArray = mat4FromArray;
1152
1188
  exports.mat4create = mat4create;
1153
1189
  exports.mat4fromRotationTranslationScale = mat4fromRotationTranslationScale;
1154
1190
  exports.mat4identity = mat4identity;
@@ -1158,6 +1194,7 @@ exports.mat4perspective = mat4perspective;
1158
1194
  exports.mat4rotate = mat4rotate;
1159
1195
  exports.mat4scale = mat4scale;
1160
1196
  exports.mat4translate = mat4translate;
1197
+ exports.mat4transpose = mat4transpose;
1161
1198
  exports.quatCreate = quatCreate;
1162
1199
  exports.quatEquals = quatEquals;
1163
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];
@@ -748,9 +778,9 @@ function getMat4Transform(te) {
748
778
  // create vec2
749
779
  function vec2Create(v2) {
750
780
  if (v2) {
751
- return [v2[0], v2[1]];
781
+ return new Float32Array([v2[0], v2[1]]);
752
782
  }
753
- return [0, 0];
783
+ return new Float32Array([0, 0]);
754
784
  }
755
785
  // vec2 add vec2
756
786
  function vec2AddVec2(out, a, b) {
@@ -913,9 +943,9 @@ function clamp(v, min, max) {
913
943
  const r2d = 180 / Math.PI;
914
944
  function vec3Create(v) {
915
945
  if (v) {
916
- return [v[0], v[1], v[2]];
946
+ return new Float32Array([v[0], v[1], v[2]]);
917
947
  }
918
- return [0, 0, 0];
948
+ return new Float32Array([0, 0, 0]);
919
949
  }
920
950
  function vec3MulVec3(out, a, b) {
921
951
  out[0] = a[0] * b[0];
@@ -1019,9 +1049,9 @@ function vec3RotateByQuat(out, a, quat) {
1019
1049
 
1020
1050
  function vec4Create(v) {
1021
1051
  if (v) {
1022
- return [v[0], v[1], v[2], v[3]];
1052
+ return new Float32Array([v[0], v[1], v[2], v[3]]);
1023
1053
  }
1024
- return [0, 0, 0, 0];
1054
+ return new Float32Array([0, 0, 0, 0]);
1025
1055
  }
1026
1056
 
1027
1057
  const d2r = Math.PI / 180;
@@ -1103,6 +1133,11 @@ function quatStar(out, quat) {
1103
1133
  out[3] = w;
1104
1134
  return out;
1105
1135
  }
1136
+ /**
1137
+ * @param {vec3} vstart
1138
+ * @param {vec3} vend
1139
+ * @returns {vec4}
1140
+ */
1106
1141
  function quatFromVec3s(v1, v2) {
1107
1142
  const cross = [
1108
1143
  v1[1] * v2[2] - v1[2] * v2[1],
@@ -1126,4 +1161,4 @@ function quatFromVec3s(v1, v2) {
1126
1161
  return vecNormalize([cross[0], cross[1], cross[2], w]);
1127
1162
  }
1128
1163
 
1129
- 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/dist/quat.d.ts CHANGED
@@ -6,4 +6,9 @@ export declare function quatEquals(q1: vec4, q2: vec4): boolean;
6
6
  export declare function quatFromRotation(out: vec4, x: number, y: number, z: number): vec4;
7
7
  export declare function quatFromRotationXYZ(out: vec4, x: number, y: number, z: number): vec4;
8
8
  export declare function quatStar(out: vec4, quat: vec4): vec4;
9
+ /**
10
+ * @param {vec3} vstart
11
+ * @param {vec3} vend
12
+ * @returns {vec4}
13
+ */
9
14
  export declare function quatFromVec3s(v1: vec3, v2: vec3): vec4;
package/dist/vec2.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { vec2, mat3 } from '@predy-js/render-interface';
2
- export declare function vec2Create(v2?: vec2): number[];
2
+ export declare function vec2Create(v2?: vec2): any;
3
3
  export declare function vec2AddVec2(out: vec2, a: vec2, b: vec2): vec2;
4
4
  export declare function vec2SubVec2(out: vec2, a: vec2, b: vec2): vec2;
5
5
  export declare function vec2MulVec2(out: vec2, a: vec2, b: vec2): vec2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@predy-js/math",
3
- "version": "0.3.0-beta.27",
3
+ "version": "0.3.0-beta.270",
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.27",
31
+ "@predy-js/render-interface": "0.3.0-beta.270",
32
32
  "@commitlint/cli": "^13.2.1",
33
33
  "@commitlint/config-conventional": "^13.2.0",
34
34
  "@rollup/plugin-commonjs": "^21.0.3",