@predy-js/math 0.3.0-beta.30 → 0.3.0-beta.32
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 +37 -0
- package/dist/index.mjs +36 -1
- package/dist/quat.d.ts +3 -1
- package/dist/vec4.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -1086,6 +1086,19 @@ function quatFromRotation(out, x, y, z) {
|
|
1086
1086
|
out[3] = c1 * c2 * c3 + s1 * s2 * s3;
|
1087
1087
|
return out;
|
1088
1088
|
}
|
1089
|
+
function quatFromRotationXYZ(out, x, y, z) {
|
1090
|
+
const c1 = Math.cos((x * d2r) / 2);
|
1091
|
+
const c2 = Math.cos((y * d2r) / 2);
|
1092
|
+
const c3 = Math.cos((z * d2r) / 2);
|
1093
|
+
const s1 = Math.sin((x * d2r) / 2);
|
1094
|
+
const s2 = Math.sin((y * d2r) / 2);
|
1095
|
+
const s3 = Math.sin((z * d2r) / 2);
|
1096
|
+
out[0] = s1 * c2 * c3 + c1 * s2 * s3;
|
1097
|
+
out[1] = c1 * s2 * c3 - s1 * c2 * s3;
|
1098
|
+
out[2] = c1 * c2 * s3 + s1 * s2 * c3;
|
1099
|
+
out[3] = c1 * c2 * c3 - s1 * s2 * s3;
|
1100
|
+
return out;
|
1101
|
+
}
|
1089
1102
|
function quatStar(out, quat) {
|
1090
1103
|
const x = quat[0], y = quat[1], z = quat[2], w = quat[3];
|
1091
1104
|
out[0] = -x;
|
@@ -1094,6 +1107,28 @@ function quatStar(out, quat) {
|
|
1094
1107
|
out[3] = w;
|
1095
1108
|
return out;
|
1096
1109
|
}
|
1110
|
+
function quatFromVec3s(v1, v2) {
|
1111
|
+
const cross = [
|
1112
|
+
v1[1] * v2[2] - v1[2] * v2[1],
|
1113
|
+
v1[2] * v2[0] - v1[0] * v2[2],
|
1114
|
+
v1[0] * v2[1] - v1[1] * v2[0],
|
1115
|
+
];
|
1116
|
+
const dot = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
1117
|
+
if (dot < -0.999999) {
|
1118
|
+
let orthogonalAxis = [1, 0, 0];
|
1119
|
+
if (Math.abs(v1[0]) > Math.abs(v1[2])) {
|
1120
|
+
orthogonalAxis = [0, 0, 1];
|
1121
|
+
}
|
1122
|
+
const orthogonalCross = [
|
1123
|
+
v1[1] * orthogonalAxis[2] - v1[2] * orthogonalAxis[1],
|
1124
|
+
v1[2] * orthogonalAxis[0] - v1[0] * orthogonalAxis[2],
|
1125
|
+
v1[0] * orthogonalAxis[1] - v1[1] * orthogonalAxis[0],
|
1126
|
+
];
|
1127
|
+
return vecNormalize([orthogonalCross[0], orthogonalCross[1], orthogonalCross[2], 0]);
|
1128
|
+
}
|
1129
|
+
const w = Math.sqrt((Math.pow(v1[0], 2) + Math.pow(v1[1], 2) + Math.pow(v1[2], 2)) * (Math.pow(v2[0], 2) + Math.pow(v2[1], 2) + Math.pow(v2[2], 2))) + dot;
|
1130
|
+
return vecNormalize([cross[0], cross[1], cross[2], w]);
|
1131
|
+
}
|
1097
1132
|
|
1098
1133
|
exports.NumberEpsilon = NumberEpsilon;
|
1099
1134
|
exports.clamp = clamp;
|
@@ -1126,6 +1161,8 @@ exports.mat4translate = mat4translate;
|
|
1126
1161
|
exports.quatCreate = quatCreate;
|
1127
1162
|
exports.quatEquals = quatEquals;
|
1128
1163
|
exports.quatFromRotation = quatFromRotation;
|
1164
|
+
exports.quatFromRotationXYZ = quatFromRotationXYZ;
|
1165
|
+
exports.quatFromVec3s = quatFromVec3s;
|
1129
1166
|
exports.quatMultiply = quatMultiply;
|
1130
1167
|
exports.quatStar = quatStar;
|
1131
1168
|
exports.rotateVec2 = rotateVec2;
|
package/dist/index.mjs
CHANGED
@@ -1082,6 +1082,19 @@ function quatFromRotation(out, x, y, z) {
|
|
1082
1082
|
out[3] = c1 * c2 * c3 + s1 * s2 * s3;
|
1083
1083
|
return out;
|
1084
1084
|
}
|
1085
|
+
function quatFromRotationXYZ(out, x, y, z) {
|
1086
|
+
const c1 = Math.cos((x * d2r) / 2);
|
1087
|
+
const c2 = Math.cos((y * d2r) / 2);
|
1088
|
+
const c3 = Math.cos((z * d2r) / 2);
|
1089
|
+
const s1 = Math.sin((x * d2r) / 2);
|
1090
|
+
const s2 = Math.sin((y * d2r) / 2);
|
1091
|
+
const s3 = Math.sin((z * d2r) / 2);
|
1092
|
+
out[0] = s1 * c2 * c3 + c1 * s2 * s3;
|
1093
|
+
out[1] = c1 * s2 * c3 - s1 * c2 * s3;
|
1094
|
+
out[2] = c1 * c2 * s3 + s1 * s2 * c3;
|
1095
|
+
out[3] = c1 * c2 * c3 - s1 * s2 * s3;
|
1096
|
+
return out;
|
1097
|
+
}
|
1085
1098
|
function quatStar(out, quat) {
|
1086
1099
|
const x = quat[0], y = quat[1], z = quat[2], w = quat[3];
|
1087
1100
|
out[0] = -x;
|
@@ -1090,5 +1103,27 @@ function quatStar(out, quat) {
|
|
1090
1103
|
out[3] = w;
|
1091
1104
|
return out;
|
1092
1105
|
}
|
1106
|
+
function quatFromVec3s(v1, v2) {
|
1107
|
+
const cross = [
|
1108
|
+
v1[1] * v2[2] - v1[2] * v2[1],
|
1109
|
+
v1[2] * v2[0] - v1[0] * v2[2],
|
1110
|
+
v1[0] * v2[1] - v1[1] * v2[0],
|
1111
|
+
];
|
1112
|
+
const dot = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
1113
|
+
if (dot < -0.999999) {
|
1114
|
+
let orthogonalAxis = [1, 0, 0];
|
1115
|
+
if (Math.abs(v1[0]) > Math.abs(v1[2])) {
|
1116
|
+
orthogonalAxis = [0, 0, 1];
|
1117
|
+
}
|
1118
|
+
const orthogonalCross = [
|
1119
|
+
v1[1] * orthogonalAxis[2] - v1[2] * orthogonalAxis[1],
|
1120
|
+
v1[2] * orthogonalAxis[0] - v1[0] * orthogonalAxis[2],
|
1121
|
+
v1[0] * orthogonalAxis[1] - v1[1] * orthogonalAxis[0],
|
1122
|
+
];
|
1123
|
+
return vecNormalize([orthogonalCross[0], orthogonalCross[1], orthogonalCross[2], 0]);
|
1124
|
+
}
|
1125
|
+
const w = Math.sqrt((Math.pow(v1[0], 2) + Math.pow(v1[1], 2) + Math.pow(v1[2], 2)) * (Math.pow(v2[0], 2) + Math.pow(v2[1], 2) + Math.pow(v2[2], 2))) + dot;
|
1126
|
+
return vecNormalize([cross[0], cross[1], cross[2], w]);
|
1127
|
+
}
|
1093
1128
|
|
1094
|
-
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, 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 };
|
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 };
|
package/dist/quat.d.ts
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
import type { mat3, vec4 } from '@predy-js/render-interface';
|
1
|
+
import type { mat3, vec3, vec4 } from '@predy-js/render-interface';
|
2
2
|
export declare function quatCreate(): vec4;
|
3
3
|
export declare function quatMultiply(out: vec4, a: vec4, b: vec4): vec4;
|
4
4
|
export declare function mat3FromQuat(out: mat3 | number[], quat: vec4): mat3;
|
5
5
|
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
|
+
export declare function quatFromRotationXYZ(out: vec4, x: number, y: number, z: number): vec4;
|
7
8
|
export declare function quatStar(out: vec4, quat: vec4): vec4;
|
9
|
+
export declare function quatFromVec3s(v1: vec3, v2: vec3): vec4;
|
package/dist/vec4.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
import type { vec4 } from '@predy-js/render-interface';
|
2
|
-
export declare function vec4Create(v
|
2
|
+
export declare function vec4Create(v?: vec4): vec4;
|
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.32",
|
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.32",
|
32
32
|
"@commitlint/cli": "^13.2.1",
|
33
33
|
"@commitlint/config-conventional": "^13.2.0",
|
34
34
|
"@rollup/plugin-commonjs": "^21.0.3",
|