@predy-js/math 0.3.0-beta.48 → 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 +42 -0
- package/dist/index.mjs +41 -1
- package/dist/quat.d.ts +8 -1
- package/dist/vec4.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1116,6 +1116,19 @@ function quatFromRotation(out, x, y, z) {
|
|
|
1116
1116
|
out[3] = c1 * c2 * c3 + s1 * s2 * s3;
|
|
1117
1117
|
return out;
|
|
1118
1118
|
}
|
|
1119
|
+
function quatFromRotationXYZ(out, x, y, z) {
|
|
1120
|
+
const c1 = Math.cos((x * d2r) / 2);
|
|
1121
|
+
const c2 = Math.cos((y * d2r) / 2);
|
|
1122
|
+
const c3 = Math.cos((z * d2r) / 2);
|
|
1123
|
+
const s1 = Math.sin((x * d2r) / 2);
|
|
1124
|
+
const s2 = Math.sin((y * d2r) / 2);
|
|
1125
|
+
const s3 = Math.sin((z * d2r) / 2);
|
|
1126
|
+
out[0] = s1 * c2 * c3 + c1 * s2 * s3;
|
|
1127
|
+
out[1] = c1 * s2 * c3 - s1 * c2 * s3;
|
|
1128
|
+
out[2] = c1 * c2 * s3 + s1 * s2 * c3;
|
|
1129
|
+
out[3] = c1 * c2 * c3 - s1 * s2 * s3;
|
|
1130
|
+
return out;
|
|
1131
|
+
}
|
|
1119
1132
|
function quatStar(out, quat) {
|
|
1120
1133
|
const x = quat[0], y = quat[1], z = quat[2], w = quat[3];
|
|
1121
1134
|
out[0] = -x;
|
|
@@ -1124,6 +1137,33 @@ function quatStar(out, quat) {
|
|
|
1124
1137
|
out[3] = w;
|
|
1125
1138
|
return out;
|
|
1126
1139
|
}
|
|
1140
|
+
/**
|
|
1141
|
+
* @param {vec3} vstart
|
|
1142
|
+
* @param {vec3} vend
|
|
1143
|
+
* @returns {vec4}
|
|
1144
|
+
*/
|
|
1145
|
+
function quatFromVec3s(v1, v2) {
|
|
1146
|
+
const cross = [
|
|
1147
|
+
v1[1] * v2[2] - v1[2] * v2[1],
|
|
1148
|
+
v1[2] * v2[0] - v1[0] * v2[2],
|
|
1149
|
+
v1[0] * v2[1] - v1[1] * v2[0],
|
|
1150
|
+
];
|
|
1151
|
+
const dot = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
|
1152
|
+
if (dot < -0.999999) {
|
|
1153
|
+
let orthogonalAxis = [1, 0, 0];
|
|
1154
|
+
if (Math.abs(v1[0]) > Math.abs(v1[2])) {
|
|
1155
|
+
orthogonalAxis = [0, 0, 1];
|
|
1156
|
+
}
|
|
1157
|
+
const orthogonalCross = [
|
|
1158
|
+
v1[1] * orthogonalAxis[2] - v1[2] * orthogonalAxis[1],
|
|
1159
|
+
v1[2] * orthogonalAxis[0] - v1[0] * orthogonalAxis[2],
|
|
1160
|
+
v1[0] * orthogonalAxis[1] - v1[1] * orthogonalAxis[0],
|
|
1161
|
+
];
|
|
1162
|
+
return vecNormalize([orthogonalCross[0], orthogonalCross[1], orthogonalCross[2], 0]);
|
|
1163
|
+
}
|
|
1164
|
+
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;
|
|
1165
|
+
return vecNormalize([cross[0], cross[1], cross[2], w]);
|
|
1166
|
+
}
|
|
1127
1167
|
|
|
1128
1168
|
exports.NumberEpsilon = NumberEpsilon;
|
|
1129
1169
|
exports.clamp = clamp;
|
|
@@ -1158,6 +1198,8 @@ exports.mat4transpose = mat4transpose;
|
|
|
1158
1198
|
exports.quatCreate = quatCreate;
|
|
1159
1199
|
exports.quatEquals = quatEquals;
|
|
1160
1200
|
exports.quatFromRotation = quatFromRotation;
|
|
1201
|
+
exports.quatFromRotationXYZ = quatFromRotationXYZ;
|
|
1202
|
+
exports.quatFromVec3s = quatFromVec3s;
|
|
1161
1203
|
exports.quatMultiply = quatMultiply;
|
|
1162
1204
|
exports.quatStar = quatStar;
|
|
1163
1205
|
exports.rotateVec2 = rotateVec2;
|
package/dist/index.mjs
CHANGED
|
@@ -1112,6 +1112,19 @@ function quatFromRotation(out, x, y, z) {
|
|
|
1112
1112
|
out[3] = c1 * c2 * c3 + s1 * s2 * s3;
|
|
1113
1113
|
return out;
|
|
1114
1114
|
}
|
|
1115
|
+
function quatFromRotationXYZ(out, x, y, z) {
|
|
1116
|
+
const c1 = Math.cos((x * d2r) / 2);
|
|
1117
|
+
const c2 = Math.cos((y * d2r) / 2);
|
|
1118
|
+
const c3 = Math.cos((z * d2r) / 2);
|
|
1119
|
+
const s1 = Math.sin((x * d2r) / 2);
|
|
1120
|
+
const s2 = Math.sin((y * d2r) / 2);
|
|
1121
|
+
const s3 = Math.sin((z * d2r) / 2);
|
|
1122
|
+
out[0] = s1 * c2 * c3 + c1 * s2 * s3;
|
|
1123
|
+
out[1] = c1 * s2 * c3 - s1 * c2 * s3;
|
|
1124
|
+
out[2] = c1 * c2 * s3 + s1 * s2 * c3;
|
|
1125
|
+
out[3] = c1 * c2 * c3 - s1 * s2 * s3;
|
|
1126
|
+
return out;
|
|
1127
|
+
}
|
|
1115
1128
|
function quatStar(out, quat) {
|
|
1116
1129
|
const x = quat[0], y = quat[1], z = quat[2], w = quat[3];
|
|
1117
1130
|
out[0] = -x;
|
|
@@ -1120,5 +1133,32 @@ function quatStar(out, quat) {
|
|
|
1120
1133
|
out[3] = w;
|
|
1121
1134
|
return out;
|
|
1122
1135
|
}
|
|
1136
|
+
/**
|
|
1137
|
+
* @param {vec3} vstart
|
|
1138
|
+
* @param {vec3} vend
|
|
1139
|
+
* @returns {vec4}
|
|
1140
|
+
*/
|
|
1141
|
+
function quatFromVec3s(v1, v2) {
|
|
1142
|
+
const cross = [
|
|
1143
|
+
v1[1] * v2[2] - v1[2] * v2[1],
|
|
1144
|
+
v1[2] * v2[0] - v1[0] * v2[2],
|
|
1145
|
+
v1[0] * v2[1] - v1[1] * v2[0],
|
|
1146
|
+
];
|
|
1147
|
+
const dot = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
|
1148
|
+
if (dot < -0.999999) {
|
|
1149
|
+
let orthogonalAxis = [1, 0, 0];
|
|
1150
|
+
if (Math.abs(v1[0]) > Math.abs(v1[2])) {
|
|
1151
|
+
orthogonalAxis = [0, 0, 1];
|
|
1152
|
+
}
|
|
1153
|
+
const orthogonalCross = [
|
|
1154
|
+
v1[1] * orthogonalAxis[2] - v1[2] * orthogonalAxis[1],
|
|
1155
|
+
v1[2] * orthogonalAxis[0] - v1[0] * orthogonalAxis[2],
|
|
1156
|
+
v1[0] * orthogonalAxis[1] - v1[1] * orthogonalAxis[0],
|
|
1157
|
+
];
|
|
1158
|
+
return vecNormalize([orthogonalCross[0], orthogonalCross[1], orthogonalCross[2], 0]);
|
|
1159
|
+
}
|
|
1160
|
+
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;
|
|
1161
|
+
return vecNormalize([cross[0], cross[1], cross[2], w]);
|
|
1162
|
+
}
|
|
1123
1163
|
|
|
1124
|
-
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, 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/quat.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* @param {vec3} vstart
|
|
11
|
+
* @param {vec3} vend
|
|
12
|
+
* @returns {vec4}
|
|
13
|
+
*/
|
|
14
|
+
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.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.
|
|
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",
|