@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 +43 -6
- package/dist/index.mjs +42 -7
- package/dist/mat4.d.ts +2 -0
- package/dist/quat.d.ts +5 -0
- package/dist/vec2.d.ts +1 -1
- package/package.json +2 -2
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):
|
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.
|
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.
|
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",
|