UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

103 lines 3.4 kB
import { getPhysXLoaded } from "../../states/usePhysXLoaded"; import { physxPtr } from "../../pointers/physxPtr"; let pxVec; let pxVec_; let pxVec__; let pxExtendedVec; let pxQuat; let pxTransform; let pxTransform_; let pxTransform__; getPhysXLoaded((loaded) => { if (!loaded) return; const val = physxPtr[0]; pxVec = val.pxVec; pxVec_ = val.pxVec_; pxVec__ = val.pxVec__; pxExtendedVec = val.pxExtendedVec; pxQuat = val.pxQuat; pxTransform = val.pxTransform; pxTransform_ = val.pxTransform_; pxTransform__ = val.pxTransform__; }); export const setPxVec = (x, y, z) => { pxVec.set_x(x); pxVec.set_y(y); pxVec.set_z(z); return pxVec; }; export const setPxVec_ = (x, y, z) => { pxVec_.set_x(x); pxVec_.set_y(y); pxVec_.set_z(z); return pxVec_; }; export const setPxVec__ = (x, y, z) => { pxVec__.set_x(x); pxVec__.set_y(y); pxVec__.set_z(z); return pxVec__; }; export const setPxExtendedVec = (x, y, z) => { pxExtendedVec.set_x(x); pxExtendedVec.set_y(y); pxExtendedVec.set_z(z); return pxExtendedVec; }; export const assignPxVec = (pt) => setPxVec(pt.x, pt.y, pt.z); export const assignPxVec_ = (pt) => setPxVec_(pt.x, pt.y, pt.z); export const assignPxExtendedVec = (pt) => setPxExtendedVec(pt.x, pt.y, pt.z); export const setPxQuat = (x, y, z, w) => { pxQuat.set_x(x); pxQuat.set_y(y); pxQuat.set_z(z); pxQuat.set_w(w); return pxQuat; }; export const assignPxQuat = (q) => setPxQuat(q.x, q.y, q.z, q.w); export const assignPxTransform = (manager) => { pxTransform.set_p(assignPxVec(manager.position)); pxTransform.set_q(assignPxQuat(manager.quaternion)); return pxTransform; }; export const assignPxTransform_ = (manager) => { pxTransform_.set_p(assignPxVec(manager.position)); pxTransform_.set_q(assignPxQuat(manager.quaternion)); return pxTransform_; }; export const setPxTransform = (x, y, z, qx = 0, qy = 0, qz = 0, qw = 1) => { pxTransform.set_p(setPxVec(x, y, z)); pxTransform.set_q(setPxQuat(qx, qy, qz, qw)); return pxTransform; }; export const setPxTransform_ = (x, y, z, qx = 0, qy = 0, qz = 0, qw = 1) => { pxTransform_.set_p(setPxVec(x, y, z)); pxTransform_.set_q(setPxQuat(qx, qy, qz, qw)); return pxTransform_; }; export const setPxTransform__ = (x, y, z, qx = 0, qy = 0, qz = 0, qw = 1) => { pxTransform__.set_p(setPxVec(x, y, z)); pxTransform__.set_q(setPxQuat(qx, qy, qz, qw)); return pxTransform__; }; const rotate = (q0, v) => { const { w, x, y, z } = q0; const vx = 2.0 * v.x; const vy = 2.0 * v.y; const vz = 2.0 * v.z; const w2 = w * w - 0.5; const dot2 = x * vx + y * vy + z * vz; return setPxVec(vx * w2 + (y * vz - z * vy) * w + x * dot2, vy * w2 + (z * vx - x * vz) * w + y * dot2, vz * w2 + (x * vy - y * vx) * w + z * dot2); }; const vecPlus = (v0, v) => setPxVec_(v0.x + v.x, v0.y + v.y, v0.z + v.z); const quatMult = (q0, q) => { const { w, x, y, z } = q0; return setPxQuat(w * q.x + q.w * x + y * q.z - q.y * z, w * q.y + q.w * y + z * q.x - q.z * x, w * q.z + q.w * z + x * q.y - q.x * y, w * q.w - x * q.x - y * q.y - z * q.z); }; export const multPxTransform = (t0, t1) => { pxTransform.set_p(vecPlus(rotate(t0.q, t1.p), t0.p)); pxTransform.set_q(quatMult(t0.q, t1.q)); return pxTransform; }; //# sourceMappingURL=pxMath.js.map