quat2.js 6.3 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{a as t}from"./quatf64.js";import{c as a}from"./vec3f64.js";import{g as n}from"./common.js";import{A as s,B as r}from"./mat4.js";import{a as o,b as e,d as u,e as c,f as i,l as f,h}from"./quat.js";function M(t,a,n){const s=.5*n[0],r=.5*n[1],o=.5*n[2],e=a[0],u=a[1],c=a[2],i=a[3];return t[0]=e,t[1]=u,t[2]=c,t[3]=i,t[4]=s*i+r*c-o*u,t[5]=r*i+o*e-s*c,t[6]=o*i+s*u-r*e,t[7]=-s*e-r*u-o*c,t}function l(t,a){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*a[0],t[5]=.5*a[1],t[6]=.5*a[2],t[7]=0,t}function b(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t}function m(t,a){const n=p;s(n,a);const o=d;return r(o,a),M(t,n,o),t}const p=t(),d=a();function x(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t}function g(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t}function q(t,a,n,s,r,o,e,u,c){return t[0]=a,t[1]=n,t[2]=s,t[3]=r,t[4]=o,t[5]=e,t[6]=u,t[7]=c,t}const j=o;function y(t,a){return t[0]=a[4],t[1]=a[5],t[2]=a[6],t[3]=a[7],t}const A=o;function v(t,a){return t[4]=a[0],t[5]=a[1],t[6]=a[2],t[7]=a[3],t}function B(t,a){const n=a[4],s=a[5],r=a[6],o=a[7],e=-a[0],u=-a[1],c=-a[2],i=a[3];return t[0]=2*(n*i+o*e+s*c-r*u),t[1]=2*(s*i+o*u+r*e-n*c),t[2]=2*(r*i+o*c+n*u-s*e),t}function R(t,a,n){const s=a[0],r=a[1],o=a[2],e=a[3],u=.5*n[0],c=.5*n[1],i=.5*n[2],f=a[4],h=a[5],M=a[6],l=a[7];return t[0]=s,t[1]=r,t[2]=o,t[3]=e,t[4]=e*u+r*i-o*c+f,t[5]=e*c+o*u-s*i+h,t[6]=e*i+s*c-r*u+M,t[7]=-s*u-r*c-o*i+l,t}function T(t,a,n){let s=-a[0],r=-a[1],o=-a[2],u=a[3];const c=a[4],i=a[5],f=a[6],h=a[7],M=c*u+h*s+i*o-f*r,l=i*u+h*r+f*s-c*o,b=f*u+h*o+c*r-i*s,m=h*u-c*s-i*r-f*o;return e(t,a,n),s=t[0],r=t[1],o=t[2],u=t[3],t[4]=M*u+m*s+l*o-b*r,t[5]=l*u+m*r+b*s-M*o,t[6]=b*u+m*o+M*r-l*s,t[7]=m*u-M*s-l*r-b*o,t}function _(t,a,n){let s=-a[0],r=-a[1],o=-a[2],e=a[3];const c=a[4],i=a[5],f=a[6],h=a[7],M=c*e+h*s+i*o-f*r,l=i*e+h*r+f*s-c*o,b=f*e+h*o+c*r-i*s,m=h*e-c*s-i*r-f*o;return u(t,a,n),s=t[0],r=t[1],o=t[2],e=t[3],t[4]=M*e+m*s+l*o-b*r,t[5]=l*e+m*r+b*s-M*o,t[6]=b*e+m*o+M*r-l*s,t[7]=m*e-M*s-l*r-b*o,t}function z(t,a,n){let s=-a[0],r=-a[1],o=-a[2],e=a[3];const u=a[4],i=a[5],f=a[6],h=a[7],M=u*e+h*s+i*o-f*r,l=i*e+h*r+f*s-u*o,b=f*e+h*o+u*r-i*s,m=h*e-u*s-i*r-f*o;return c(t,a,n),s=t[0],r=t[1],o=t[2],e=t[3],t[4]=M*e+m*s+l*o-b*r,t[5]=l*e+m*r+b*s-M*o,t[6]=b*e+m*o+M*r-l*s,t[7]=m*e-M*s-l*r-b*o,t}function D(t,a,n){const s=n[0],r=n[1],o=n[2],e=n[3];let u=a[0],c=a[1],i=a[2],f=a[3];return t[0]=u*e+f*s+c*o-i*r,t[1]=c*e+f*r+i*s-u*o,t[2]=i*e+f*o+u*r-c*s,t[3]=f*e-u*s-c*r-i*o,u=a[4],c=a[5],i=a[6],f=a[7],t[4]=u*e+f*s+c*o-i*r,t[5]=c*e+f*r+i*s-u*o,t[6]=i*e+f*o+u*r-c*s,t[7]=f*e-u*s-c*r-i*o,t}function E(t,a,n){const s=a[0],r=a[1],o=a[2],e=a[3];let u=n[0],c=n[1],i=n[2],f=n[3];return t[0]=s*f+e*u+r*i-o*c,t[1]=r*f+e*c+o*u-s*i,t[2]=o*f+e*i+s*c-r*u,t[3]=e*f-s*u-r*c-o*i,u=n[4],c=n[5],i=n[6],f=n[7],t[4]=s*f+e*u+r*i-o*c,t[5]=r*f+e*c+o*u-s*i,t[6]=o*f+e*i+s*c-r*u,t[7]=e*f-s*u-r*c-o*i,t}function L(t,a,s,r){if(Math.abs(r)<n())return x(t,a);const o=Math.sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]);r*=.5;const e=Math.sin(r),u=e*s[0]/o,c=e*s[1]/o,i=e*s[2]/o,f=Math.cos(r),h=a[0],M=a[1],l=a[2],b=a[3];t[0]=h*f+b*u+M*i-l*c,t[1]=M*f+b*c+l*u-h*i,t[2]=l*f+b*i+h*c-M*u,t[3]=b*f-h*u-M*c-l*i;const m=a[4],p=a[5],d=a[6],g=a[7];return t[4]=m*f+g*u+p*i-d*c,t[5]=p*f+g*c+d*u-m*i,t[6]=d*f+g*i+m*c-p*u,t[7]=g*f-m*u-p*c-d*i,t}function O(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t[4]=a[4]+n[4],t[5]=a[5]+n[5],t[6]=a[6]+n[6],t[7]=a[7]+n[7],t}function P(t,a,n){const s=a[0],r=a[1],o=a[2],e=a[3],u=n[4],c=n[5],i=n[6],f=n[7],h=a[4],M=a[5],l=a[6],b=a[7],m=n[0],p=n[1],d=n[2],x=n[3];return t[0]=s*x+e*m+r*d-o*p,t[1]=r*x+e*p+o*m-s*d,t[2]=o*x+e*d+s*p-r*m,t[3]=e*x-s*m-r*p-o*d,t[4]=s*f+e*u+r*i-o*c+h*x+b*m+M*d-l*p,t[5]=r*f+e*c+o*u-s*i+M*x+b*p+l*m-h*d,t[6]=o*f+e*i+s*c-r*u+l*x+b*d+h*p-M*m,t[7]=e*f-s*u-r*c-o*i+b*x-h*m-M*p-l*d,t}const Q=P;function S(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t[4]=a[4]*n,t[5]=a[5]*n,t[6]=a[6]*n,t[7]=a[7]*n,t}const k=i;function w(t,a,n,s){const r=1-s;return k(a,n)<0&&(s=-s),t[0]=a[0]*r+n[0]*s,t[1]=a[1]*r+n[1]*s,t[2]=a[2]*r+n[2]*s,t[3]=a[3]*r+n[3]*s,t[4]=a[4]*r+n[4]*s,t[5]=a[5]*r+n[5]*s,t[6]=a[6]*r+n[6]*s,t[7]=a[7]*r+n[7]*s,t}function C(t,a){const n=I(a);return t[0]=-a[0]/n,t[1]=-a[1]/n,t[2]=-a[2]/n,t[3]=a[3]/n,t[4]=-a[4]/n,t[5]=-a[5]/n,t[6]=-a[6]/n,t[7]=a[7]/n,t}function F(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=a[3],t[4]=-a[4],t[5]=-a[5],t[6]=-a[6],t[7]=a[7],t}const G=f,H=G,I=h,J=I;function X(t,a){let n=I(a);if(n>0){n=Math.sqrt(n);const s=a[0]/n,r=a[1]/n,o=a[2]/n,e=a[3]/n,u=a[4],c=a[5],i=a[6],f=a[7],h=s*u+r*c+o*i+e*f;t[0]=s,t[1]=r,t[2]=o,t[3]=e,t[4]=(u-s*h)/n,t[5]=(c-r*h)/n,t[6]=(i-o*h)/n,t[7]=(f-e*h)/n}return t}function Y(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"}function Z(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]&&t[4]===a[4]&&t[5]===a[5]&&t[6]===a[6]&&t[7]===a[7]}function K(t,a){const s=t[0],r=t[1],o=t[2],e=t[3],u=t[4],c=t[5],i=t[6],f=t[7],h=a[0],M=a[1],l=a[2],b=a[3],m=a[4],p=a[5],d=a[6],x=a[7],g=n();return Math.abs(s-h)<=g*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(r-M)<=g*Math.max(1,Math.abs(r),Math.abs(M))&&Math.abs(o-l)<=g*Math.max(1,Math.abs(o),Math.abs(l))&&Math.abs(e-b)<=g*Math.max(1,Math.abs(e),Math.abs(b))&&Math.abs(u-m)<=g*Math.max(1,Math.abs(u),Math.abs(m))&&Math.abs(c-p)<=g*Math.max(1,Math.abs(c),Math.abs(p))&&Math.abs(i-d)<=g*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(f-x)<=g*Math.max(1,Math.abs(f),Math.abs(x))}const N=Object.freeze(Object.defineProperty({__proto__:null,fromRotationTranslation:M,fromTranslation:l,fromRotation:b,fromMat4:m,copy:x,identity:g,set:q,getReal:j,getDual:y,setReal:A,setDual:v,getTranslation:B,translate:R,rotateX:T,rotateY:_,rotateZ:z,rotateByQuatAppend:D,rotateByQuatPrepend:E,rotateAroundAxis:L,add:O,multiply:P,mul:Q,scale:S,dot:k,lerp:w,invert:C,conjugate:F,length:G,len:H,squaredLength:I,sqrLen:J,normalize:X,str:Y,exactEquals:Z,equals:K},Symbol.toStringTag,{value:"Module"}));export{C as A,F as B,G as C,H as D,I as E,J as F,X as G,Y as H,Z as I,K as J,l as a,b,m as c,x as d,y as e,M as f,j as g,A as h,g as i,v as j,B as k,_ as l,z as m,D as n,E as o,L as p,N as q,T as r,q as s,R as t,O as u,P as v,Q as w,S as x,k as y,w as z};