robust-predicates 2.0.2 → 3.0.1
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/esm/incircle.js +388 -550
- package/esm/insphere.js +307 -488
- package/esm/orient2d.js +32 -53
- package/esm/orient3d.js +265 -798
- package/esm/util.js +23 -11
- package/index.d.ts +49 -0
- package/package.json +27 -21
- package/umd/incircle.js +408 -560
- package/umd/incircle.min.js +1 -1
- package/umd/insphere.js +330 -496
- package/umd/insphere.min.js +1 -1
- package/umd/orient2d.js +38 -55
- package/umd/orient2d.min.js +1 -1
- package/umd/orient3d.js +281 -808
- package/umd/orient3d.min.js +1 -1
- package/umd/predicates.js +1056 -1929
- package/umd/predicates.min.js +1 -1
package/umd/insphere.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t=t||self).predicates={})}(this,function(t){"use strict";const n=134217729,o=33306690738754706e-32;function s(t,n,o,s,e){let c,r,a,f,u=n[0],i=s[0],h=0,b=0;i>u==i>-u?(c=u,u=n[++h]):(c=i,i=s[++b]);let M=0;if(h<t&&b<o)for(i>u==i>-u?(a=c-((r=u+c)-u),u=n[++h]):(a=c-((r=i+c)-i),i=s[++b]),c=r,0!==a&&(e[M++]=a);h<t&&b<o;)i>u==i>-u?(a=c-((r=c+u)-(f=r-c))+(u-f),u=n[++h]):(a=c-((r=c+i)-(f=r-c))+(i-f),i=s[++b]),c=r,0!==a&&(e[M++]=a);for(;h<t;)a=c-((r=c+u)-(f=r-c))+(u-f),u=n[++h],c=r,0!==a&&(e[M++]=a);for(;b<o;)a=c-((r=c+i)-(f=r-c))+(i-f),i=s[++b],c=r,0!==a&&(e[M++]=a);return 0===c&&0!==M||(e[M++]=c),M}function e(t,o,s,e){let c,r,a,f,u,i,h,b,M,l,d;d=s-(l=(h=n*s)-(h-s)),c=o[0]*s,b=(h=n*o[0])-(h-o[0]);let p=0;0!==(a=(M=o[0]-b)*d-(c-b*l-M*l-b*d))&&(e[p++]=a);for(let y=1;y<t;y++){const t=o[y];0!==(a=c-((r=c+(u=(M=t-(b=(h=n*t)-(h-t)))*d-((f=t*s)-b*l-M*l-b*d)))-(i=r-c))+(u-i))&&(e[p++]=a),0!==(a=r-((c=f+r)-f))&&(e[p++]=a)}return 0===c&&0!==p||(e[p++]=c),p}function c(t){return new Float64Array(t)}const r=17763568394002532e-31,a=5551115123125792e-31,f=8751425667295619e-46,u=c(4),i=c(4),h=c(4),b=c(4),M=c(4),l=c(4),d=c(4),p=c(4),y=c(4),x=c(4),j=c(8),m=c(8),_=c(16),v=c(24),w=c(24),A=c(24),F=c(24),O=c(24),P=c(24),g=c(24),k=c(24),q=c(24),z=c(24),B=c(48),C=c(48),D=c(96),E=c(96),G=c(96),H=c(96),I=c(96),J=c(192),K=c(384),L=c(384),N=c(384),Q=c(768),R=c(1152),S=c(1152),T=c(1152),U=c(1152),V=c(1152),W=c(2304),X=c(2304),Y=c(3456),Z=c(5760);const $=c(8),tt=c(24),nt=c(48),ot=c(96),st=c(96),et=c(96),ct=c(192),rt=c(1152);function at(t,c,r,at,ft,ut,it,ht,bt,Mt,lt,dt,pt,yt,xt,jt){let mt,_t,vt,wt,At,Ft,Ot,Pt,gt,kt,qt,zt,Bt,Ct,Dt,Et,Gt,Ht,It,Jt,Kt,Lt,Nt,Qt,Rt,St,Tt,Ut,Vt,Wt,Xt,Yt,Zt,$t,tn,nn,on,sn,en,cn,rn,an,fn,un,hn,bn,Mn,ln,dn,pn,yn,xn,jn,mn,_n,vn,wn,An,Fn,On,Pn;const gn=t-pt,kn=at-pt,qn=it-pt,zn=Mt-pt,Bn=c-yt,Cn=ft-yt,Dn=ht-yt,En=lt-yt,Gn=r-xt,Hn=ut-xt,In=bt-xt,Jn=dt-xt;jn=(Bt=(vn=gn-(_n=(mn=n*gn)-(mn-gn)))*(An=Cn-(wn=(mn=n*Cn)-(mn-Cn)))-((mt=gn*Cn)-_n*wn-vn*wn-_n*An))-(Fn=Bt-(Ct=(vn=kn-(_n=(mn=n*kn)-(mn-kn)))*(An=Bn-(wn=(mn=n*Bn)-(mn-Bn)))-((_t=kn*Bn)-_n*wn-vn*wn-_n*An))),u[0]=Bt-(Fn+jn)+(jn-Ct),jn=(Pn=mt-((On=mt+Fn)-(jn=On-mt))+(Fn-jn))-(Fn=Pn-_t),u[1]=Pn-(Fn+jn)+(jn-_t),jn=(Rt=On+Fn)-On,u[2]=On-(Rt-jn)+(Fn-jn),u[3]=Rt,jn=(Dt=(vn=kn-(_n=(mn=n*kn)-(mn-kn)))*(An=Dn-(wn=(mn=n*Dn)-(mn-Dn)))-((vt=kn*Dn)-_n*wn-vn*wn-_n*An))-(Fn=Dt-(Et=(vn=qn-(_n=(mn=n*qn)-(mn-qn)))*(An=Cn-(wn=(mn=n*Cn)-(mn-Cn)))-((wt=qn*Cn)-_n*wn-vn*wn-_n*An))),i[0]=Dt-(Fn+jn)+(jn-Et),jn=(Pn=vt-((On=vt+Fn)-(jn=On-vt))+(Fn-jn))-(Fn=Pn-wt),i[1]=Pn-(Fn+jn)+(jn-wt),jn=(St=On+Fn)-On,i[2]=On-(St-jn)+(Fn-jn),i[3]=St,jn=(Gt=(vn=qn-(_n=(mn=n*qn)-(mn-qn)))*(An=En-(wn=(mn=n*En)-(mn-En)))-((At=qn*En)-_n*wn-vn*wn-_n*An))-(Fn=Gt-(Ht=(vn=zn-(_n=(mn=n*zn)-(mn-zn)))*(An=Dn-(wn=(mn=n*Dn)-(mn-Dn)))-((Ft=zn*Dn)-_n*wn-vn*wn-_n*An))),h[0]=Gt-(Fn+jn)+(jn-Ht),jn=(Pn=At-((On=At+Fn)-(jn=On-At))+(Fn-jn))-(Fn=Pn-Ft),h[1]=Pn-(Fn+jn)+(jn-Ft),jn=(Tt=On+Fn)-On,h[2]=On-(Tt-jn)+(Fn-jn),h[3]=Tt,jn=(It=(vn=zn-(_n=(mn=n*zn)-(mn-zn)))*(An=Bn-(wn=(mn=n*Bn)-(mn-Bn)))-((Ot=zn*Bn)-_n*wn-vn*wn-_n*An))-(Fn=It-(Jt=(vn=gn-(_n=(mn=n*gn)-(mn-gn)))*(An=En-(wn=(mn=n*En)-(mn-En)))-((Pt=gn*En)-_n*wn-vn*wn-_n*An))),y[0]=It-(Fn+jn)+(jn-Jt),jn=(Pn=Ot-((On=Ot+Fn)-(jn=On-Ot))+(Fn-jn))-(Fn=Pn-Pt),y[1]=Pn-(Fn+jn)+(jn-Pt),jn=(Ut=On+Fn)-On,y[2]=On-(Ut-jn)+(Fn-jn),y[3]=Ut,jn=(Kt=(vn=gn-(_n=(mn=n*gn)-(mn-gn)))*(An=Dn-(wn=(mn=n*Dn)-(mn-Dn)))-((gt=gn*Dn)-_n*wn-vn*wn-_n*An))-(Fn=Kt-(Lt=(vn=qn-(_n=(mn=n*qn)-(mn-qn)))*(An=Bn-(wn=(mn=n*Bn)-(mn-Bn)))-((kt=qn*Bn)-_n*wn-vn*wn-_n*An))),l[0]=Kt-(Fn+jn)+(jn-Lt),jn=(Pn=gt-((On=gt+Fn)-(jn=On-gt))+(Fn-jn))-(Fn=Pn-kt),l[1]=Pn-(Fn+jn)+(jn-kt),jn=(Vt=On+Fn)-On,l[2]=On-(Vt-jn)+(Fn-jn),l[3]=Vt,jn=(Nt=(vn=kn-(_n=(mn=n*kn)-(mn-kn)))*(An=En-(wn=(mn=n*En)-(mn-En)))-((qt=kn*En)-_n*wn-vn*wn-_n*An))-(Fn=Nt-(Qt=(vn=zn-(_n=(mn=n*zn)-(mn-zn)))*(An=Cn-(wn=(mn=n*Cn)-(mn-Cn)))-((zt=zn*Cn)-_n*wn-vn*wn-_n*An))),d[0]=Nt-(Fn+jn)+(jn-Qt),jn=(Pn=qt-((On=qt+Fn)-(jn=On-qt))+(Fn-jn))-(Fn=Pn-zt),d[1]=Pn-(Fn+jn)+(jn-zt),jn=(Wt=On+Fn)-On,d[2]=On-(Wt-jn)+(Fn-jn),d[3]=Wt,Xt=e(4,h,Hn,j),Yt=e(4,d,-In,m),Zt=e(4,i,Jn,$),$t=s(Xt,j,Yt,m,_),nn=e(tn=s(Zt,$,$t,_,tt),tt,gn,nt),on=e(nn,nt,-gn,ot),nn=e(tn,tt,Bn,nt),sn=e(nn,nt,-Bn,st),nn=e(tn,tt,Gn,nt),en=e(nn,nt,-Gn,et),cn=s(on,ot,sn,st,ct);const Kn=s(cn,ct,en,et,R);Xt=e(4,y,In,j),Yt=e(4,l,Jn,m),Zt=e(4,h,Gn,$),$t=s(Xt,j,Yt,m,_),nn=e(tn=s(Zt,$,$t,_,tt),tt,kn,nt),on=e(nn,nt,kn,ot),nn=e(tn,tt,Cn,nt),sn=e(nn,nt,Cn,st),nn=e(tn,tt,Hn,nt),en=e(nn,nt,Hn,et),cn=s(on,ot,sn,st,ct);const Ln=s(cn,ct,en,et,S);Xt=e(4,u,Jn,j),Yt=e(4,d,Gn,m),Zt=e(4,y,Hn,$),$t=s(Xt,j,Yt,m,_),nn=e(tn=s(Zt,$,$t,_,tt),tt,qn,nt),on=e(nn,nt,-qn,ot),nn=e(tn,tt,Dn,nt),sn=e(nn,nt,-Dn,st),nn=e(tn,tt,In,nt),en=e(nn,nt,-In,et),cn=s(on,ot,sn,st,ct);const Nn=s(cn,ct,en,et,T);Xt=e(4,i,Gn,j),Yt=e(4,l,-Hn,m),Zt=e(4,u,In,$),$t=s(Xt,j,Yt,m,_),nn=e(tn=s(Zt,$,$t,_,tt),tt,zn,nt),on=e(nn,nt,zn,ot),nn=e(tn,tt,En,nt),sn=e(nn,nt,En,st),nn=e(tn,tt,Jn,nt),en=e(nn,nt,Jn,et),cn=s(on,ot,sn,st,ct);const Qn=s(cn,ct,en,et,U),Rn=s(Kn,R,Ln,S,W),Sn=s(Nn,T,Qn,U,X);let Tn=function(t,n){let o=n[0];for(let s=1;s<t;s++)o+=n[s];return o}(s(Rn,W,Sn,X,rt),rt),Un=a*jt;if(Tn>=Un||-Tn>=Un)return Tn;if(rn=t-(gn+(jn=t-gn))+(jn-pt),hn=c-(Bn+(jn=c-Bn))+(jn-yt),dn=r-(Gn+(jn=r-Gn))+(jn-xt),an=at-(kn+(jn=at-kn))+(jn-pt),bn=ft-(Cn+(jn=ft-Cn))+(jn-yt),pn=ut-(Hn+(jn=ut-Hn))+(jn-xt),fn=it-(qn+(jn=it-qn))+(jn-pt),Mn=ht-(Dn+(jn=ht-Dn))+(jn-yt),yn=bt-(In+(jn=bt-In))+(jn-xt),un=Mt-(zn+(jn=Mt-zn))+(jn-pt),ln=lt-(En+(jn=lt-En))+(jn-yt),xn=dt-(Jn+(jn=dt-Jn))+(jn-xt),0===rn&&0===hn&&0===dn&&0===an&&0===bn&&0===pn&&0===fn&&0===Mn&&0===yn&&0===un&&0===ln&&0===xn)return Tn;Un=f*jt+o*Math.abs(Tn);const Vn=gn*bn+Cn*rn-(Bn*an+kn*hn),Wn=kn*Mn+Dn*an-(Cn*fn+qn*bn),Xn=qn*ln+En*fn-(Dn*un+zn*Mn),Yn=zn*hn+Bn*un-(En*rn+gn*ln),Zn=gn*Mn+Dn*rn-(Bn*fn+qn*hn),$n=kn*ln+En*an-(Cn*un+zn*bn);return(Tn+=(kn*kn+Cn*Cn+Hn*Hn)*(In*Yn+Jn*Zn+Gn*Xn+(yn*Ut+xn*Vt+dn*Tt))+(zn*zn+En*En+Jn*Jn)*(Gn*Wn-Hn*Zn+In*Vn+(dn*St-pn*Vt+yn*Rt))-((gn*gn+Bn*Bn+Gn*Gn)*(Hn*Xn-In*$n+Jn*Wn+(pn*Tt-yn*Wt+xn*St))+(qn*qn+Dn*Dn+In*In)*(Jn*Vn+Gn*$n+Hn*Yn+(xn*Rt+dn*Wt+pn*Ut)))+2*((kn*an+Cn*bn+Hn*pn)*(In*Ut+Jn*Vt+Gn*Tt)+(zn*un+En*ln+Jn*xn)*(Gn*St-Hn*Vt+In*Rt)-((gn*rn+Bn*hn+Gn*dn)*(Hn*Tt-In*Wt+Jn*St)+(qn*fn+Dn*Mn+In*yn)*(Jn*Rt+Gn*Wt+Hn*Ut))))>=Un||-Tn>=Un?Tn:function(t,o,c,r,a,f,$,tt,nt,ot,st,et,ct,rt,at){let ft,ut,it,ht,bt,Mt,lt,dt,pt,yt,xt,jt,mt,_t,vt,wt,At,Ft,Ot,Pt,gt,kt,qt,zt,Bt,Ct,Dt,Et,Gt,Ht,It,Jt,Kt,Lt,Nt,Qt,Rt,St,Tt,Ut,Vt,Wt,Xt,Yt,Zt,$t,tn,nn,on,sn,en,cn,rn,an,fn,un,hn,bn,Mn;en=(gt=(an=t-(rn=(cn=n*t)-(cn-t)))*(un=a-(fn=(cn=n*a)-(cn-a)))-((ft=t*a)-rn*fn-an*fn-rn*un))-(hn=gt-(Ct=(an=r-(rn=(cn=n*r)-(cn-r)))*(un=o-(fn=(cn=n*o)-(cn-o)))-((Mt=r*o)-rn*fn-an*fn-rn*un))),u[0]=gt-(hn+en)+(en-Ct),en=(Mn=ft-((bn=ft+hn)-(en=bn-ft))+(hn-en))-(hn=Mn-Mt),u[1]=Mn-(hn+en)+(en-Mt),u[3]=bn+hn,en=u[3]-bn,u[2]=bn-(u[3]-en)+(hn-en),en=(kt=(an=r-(rn=(cn=n*r)-(cn-r)))*(un=tt-(fn=(cn=n*tt)-(cn-tt)))-((ut=r*tt)-rn*fn-an*fn-rn*un))-(hn=kt-(Dt=(an=$-(rn=(cn=n*$)-(cn-$)))*(un=a-(fn=(cn=n*a)-(cn-a)))-((lt=$*a)-rn*fn-an*fn-rn*un))),i[0]=kt-(hn+en)+(en-Dt),en=(Mn=ut-((bn=ut+hn)-(en=bn-ut))+(hn-en))-(hn=Mn-lt),i[1]=Mn-(hn+en)+(en-lt),i[3]=bn+hn,en=i[3]-bn,i[2]=bn-(i[3]-en)+(hn-en),en=(qt=(an=$-(rn=(cn=n*$)-(cn-$)))*(un=st-(fn=(cn=n*st)-(cn-st)))-((it=$*st)-rn*fn-an*fn-rn*un))-(hn=qt-(Et=(an=ot-(rn=(cn=n*ot)-(cn-ot)))*(un=tt-(fn=(cn=n*tt)-(cn-tt)))-((dt=ot*tt)-rn*fn-an*fn-rn*un))),h[0]=qt-(hn+en)+(en-Et),en=(Mn=it-((bn=it+hn)-(en=bn-it))+(hn-en))-(hn=Mn-dt),h[1]=Mn-(hn+en)+(en-dt),h[3]=bn+hn,en=h[3]-bn,h[2]=bn-(h[3]-en)+(hn-en),en=(zt=(an=ot-(rn=(cn=n*ot)-(cn-ot)))*(un=rt-(fn=(cn=n*rt)-(cn-rt)))-((ht=ot*rt)-rn*fn-an*fn-rn*un))-(hn=zt-(Gt=(an=ct-(rn=(cn=n*ct)-(cn-ct)))*(un=st-(fn=(cn=n*st)-(cn-st)))-((pt=ct*st)-rn*fn-an*fn-rn*un))),b[0]=zt-(hn+en)+(en-Gt),en=(Mn=ht-((bn=ht+hn)-(en=bn-ht))+(hn-en))-(hn=Mn-pt),b[1]=Mn-(hn+en)+(en-pt),b[3]=bn+hn,en=b[3]-bn,b[2]=bn-(b[3]-en)+(hn-en),en=(Bt=(an=ct-(rn=(cn=n*ct)-(cn-ct)))*(un=o-(fn=(cn=n*o)-(cn-o)))-((bt=ct*o)-rn*fn-an*fn-rn*un))-(hn=Bt-(Ht=(an=t-(rn=(cn=n*t)-(cn-t)))*(un=rt-(fn=(cn=n*rt)-(cn-rt)))-((yt=t*rt)-rn*fn-an*fn-rn*un))),M[0]=Bt-(hn+en)+(en-Ht),en=(Mn=bt-((bn=bt+hn)-(en=bn-bt))+(hn-en))-(hn=Mn-yt),M[1]=Mn-(hn+en)+(en-yt),M[3]=bn+hn,en=M[3]-bn,M[2]=bn-(M[3]-en)+(hn-en),en=(It=(an=t-(rn=(cn=n*t)-(cn-t)))*(un=tt-(fn=(cn=n*tt)-(cn-tt)))-((xt=t*tt)-rn*fn-an*fn-rn*un))-(hn=It-(Qt=(an=$-(rn=(cn=n*$)-(cn-$)))*(un=o-(fn=(cn=n*o)-(cn-o)))-((wt=$*o)-rn*fn-an*fn-rn*un))),l[0]=It-(hn+en)+(en-Qt),en=(Mn=xt-((bn=xt+hn)-(en=bn-xt))+(hn-en))-(hn=Mn-wt),l[1]=Mn-(hn+en)+(en-wt),l[3]=bn+hn,en=l[3]-bn,l[2]=bn-(l[3]-en)+(hn-en),en=(Jt=(an=r-(rn=(cn=n*r)-(cn-r)))*(un=st-(fn=(cn=n*st)-(cn-st)))-((jt=r*st)-rn*fn-an*fn-rn*un))-(hn=Jt-(Rt=(an=ot-(rn=(cn=n*ot)-(cn-ot)))*(un=a-(fn=(cn=n*a)-(cn-a)))-((At=ot*a)-rn*fn-an*fn-rn*un))),d[0]=Jt-(hn+en)+(en-Rt),en=(Mn=jt-((bn=jt+hn)-(en=bn-jt))+(hn-en))-(hn=Mn-At),d[1]=Mn-(hn+en)+(en-At),d[3]=bn+hn,en=d[3]-bn,d[2]=bn-(d[3]-en)+(hn-en),en=(Kt=(an=$-(rn=(cn=n*$)-(cn-$)))*(un=rt-(fn=(cn=n*rt)-(cn-rt)))-((mt=$*rt)-rn*fn-an*fn-rn*un))-(hn=Kt-(St=(an=ct-(rn=(cn=n*ct)-(cn-ct)))*(un=tt-(fn=(cn=n*tt)-(cn-tt)))-((Ft=ct*tt)-rn*fn-an*fn-rn*un))),p[0]=Kt-(hn+en)+(en-St),en=(Mn=mt-((bn=mt+hn)-(en=bn-mt))+(hn-en))-(hn=Mn-Ft),p[1]=Mn-(hn+en)+(en-Ft),p[3]=bn+hn,en=p[3]-bn,p[2]=bn-(p[3]-en)+(hn-en),en=(Lt=(an=ot-(rn=(cn=n*ot)-(cn-ot)))*(un=o-(fn=(cn=n*o)-(cn-o)))-((_t=ot*o)-rn*fn-an*fn-rn*un))-(hn=Lt-(Tt=(an=t-(rn=(cn=n*t)-(cn-t)))*(un=st-(fn=(cn=n*st)-(cn-st)))-((Ot=t*st)-rn*fn-an*fn-rn*un))),y[0]=Lt-(hn+en)+(en-Tt),en=(Mn=_t-((bn=_t+hn)-(en=bn-_t))+(hn-en))-(hn=Mn-Ot),y[1]=Mn-(hn+en)+(en-Ot),y[3]=bn+hn,en=y[3]-bn,y[2]=bn-(y[3]-en)+(hn-en),en=(Nt=(an=ct-(rn=(cn=n*ct)-(cn-ct)))*(un=a-(fn=(cn=n*a)-(cn-a)))-((vt=ct*a)-rn*fn-an*fn-rn*un))-(hn=Nt-(Ut=(an=r-(rn=(cn=n*r)-(cn-r)))*(un=rt-(fn=(cn=n*rt)-(cn-rt)))-((Pt=r*rt)-rn*fn-an*fn-rn*un))),x[0]=Nt-(hn+en)+(en-Ut),en=(Mn=vt-((bn=vt+hn)-(en=bn-vt))+(hn-en))-(hn=Mn-Pt),x[1]=Mn-(hn+en)+(en-Pt),x[3]=bn+hn,en=x[3]-bn,x[2]=bn-(x[3]-en)+(hn-en),Vt=e(4,i,c,j),Wt=e(4,l,-f,m),Xt=s(Vt,j,Wt,m,_);const ln=s(Vt=e(4,u,nt,j),j,Xt,_,v);Vt=e(4,h,f,j),Wt=e(4,d,-nt,m),Xt=s(Vt,j,Wt,m,_);const dn=s(Vt=e(4,i,et,j),j,Xt,_,w);Vt=e(4,b,nt,j),Wt=e(4,p,-et,m),Xt=s(Vt,j,Wt,m,_);let pn=s(Vt=e(4,h,at,j),j,Xt,_,A);Vt=e(4,M,et,j),Wt=e(4,y,-at,m),Xt=s(Vt,j,Wt,m,_);const yn=s(Vt=e(4,b,c,j),j,Xt,_,F);Vt=e(4,u,at,j),Wt=e(4,x,-c,m),Xt=s(Vt,j,Wt,m,_);const xn=s(Vt=e(4,M,f,j),j,Xt,_,O);Vt=e(4,d,c,j),Wt=e(4,y,f,m),Xt=s(Vt,j,Wt,m,_);const jn=s(Vt=e(4,u,et,j),j,Xt,_,P);Vt=e(4,p,f,j),Wt=e(4,x,nt,m),Xt=s(Vt,j,Wt,m,_);const mn=s(Vt=e(4,i,at,j),j,Xt,_,g);Vt=e(4,y,nt,j),Wt=e(4,l,et,m),Xt=s(Vt,j,Wt,m,_);const _n=s(Vt=e(4,h,c,j),j,Xt,_,k);Vt=e(4,x,et,j),Wt=e(4,d,at,m),Xt=s(Vt,j,Wt,m,_);const vn=s(Vt=e(4,b,f,j),j,Xt,_,q);Vt=e(4,l,at,j),Wt=e(4,p,c,m),Xt=s(Vt,j,Wt,m,_);const wn=s(Vt=e(4,M,nt,j),j,Xt,_,z);for(Yt=s(pn,A,mn,g,B),Zt=s(vn,q,dn,w,C),sn=0;sn<Zt;sn++)C[sn]=-C[sn];const An=s(Yt,B,Zt,C,E);$t=e(An,E,t,J),$t=e($t,J,t,K),tn=e(An,E,o,J),tn=e(tn,J,o,L),nn=e(An,E,c,J),nn=e(nn,J,c,N),on=s($t,K,tn,L,Q);const Fn=s(on,Q,nn,N,R);for(Yt=s(yn,F,_n,k,B),Zt=s(wn,z,pn,A,C),sn=0;sn<Zt;sn++)C[sn]=-C[sn];const On=s(Yt,B,Zt,C,G);$t=e(On,G,r,J),$t=e($t,J,r,K),tn=e(On,G,a,J),tn=e(tn,J,a,L),nn=e(On,G,f,J),nn=e(nn,J,f,N),on=s($t,K,tn,L,Q);const Pn=s(on,Q,nn,N,S);for(Yt=s(xn,O,vn,q,B),Zt=s(jn,P,yn,F,C),sn=0;sn<Zt;sn++)C[sn]=-C[sn];const gn=s(Yt,B,Zt,C,H);$t=e(gn,H,$,J),$t=e($t,J,$,K),tn=e(gn,H,tt,J),tn=e(tn,J,tt,L),nn=e(gn,H,nt,J),nn=e(nn,J,nt,N),on=s($t,K,tn,L,Q);const kn=s(on,Q,nn,N,T);for(Yt=s(ln,v,wn,z,B),Zt=s(mn,g,xn,O,C),sn=0;sn<Zt;sn++)C[sn]=-C[sn];const qn=s(Yt,B,Zt,C,I);$t=e(qn,I,ot,J),$t=e($t,J,ot,K),tn=e(qn,I,st,J),tn=e(tn,J,st,L),nn=e(qn,I,et,J),nn=e(nn,J,et,N),on=s($t,K,tn,L,Q);const zn=s(on,Q,nn,N,U);for(Yt=s(dn,w,jn,P,B),Zt=s(_n,k,ln,v,C),sn=0;sn<Zt;sn++)C[sn]=-C[sn];const Bn=s(Yt,B,Zt,C,D);$t=e(Bn,D,ct,J),$t=e($t,J,ct,K),tn=e(Bn,D,rt,J),tn=e(tn,J,rt,L),nn=e(Bn,D,at,J),nn=e(nn,J,at,N),on=s($t,K,tn,L,Q);const Cn=s(on,Q,nn,N,V),Dn=s(Fn,R,Pn,S,W),En=s(kn,T,zn,U,X);pn=s(En,X,Cn,V,Y);const Gn=s(Dn,W,pn,Y,Z);return Z[Gn-1]}(t,c,r,at,ft,ut,it,ht,bt,Mt,lt,dt,pt,yt,xt)}t.insphere=function(t,n,o,s,e,c,a,f,u,i,h,b,M,l,d){const p=t-M,y=s-M,x=a-M,j=i-M,m=n-l,_=e-l,v=f-l,w=h-l,A=o-d,F=c-d,O=u-d,P=b-d,g=p*_,k=y*m,q=g-k,z=y*v,B=x*_,C=z-B,D=x*w,E=j*v,G=D-E,H=j*m,I=p*w,J=H-I,K=p*v,L=x*m,N=K-L,Q=y*w,R=j*_,S=Q-R,T=p*p+m*m+A*A,U=y*y+_*_+F*F,V=x*x+v*v+O*O,W=j*j+w*w+P*P,X=V*(P*q+A*S+F*J)-W*(A*C-F*N+O*q)+(T*(F*G-O*S+P*C)-U*(O*J+P*N+A*G)),Y=Math.abs(A),Z=Math.abs(F),$=Math.abs(O),tt=Math.abs(P),nt=Math.abs(g),ot=Math.abs(k),st=Math.abs(z),et=Math.abs(B),ct=Math.abs(D),rt=Math.abs(E),ft=Math.abs(H),ut=Math.abs(I),it=Math.abs(K),ht=Math.abs(L),bt=Math.abs(Q),Mt=Math.abs(R),lt=((ct+rt)*Z+(Mt+bt)*$+(st+et)*tt)*T+((ft+ut)*$+(it+ht)*tt+(ct+rt)*Y)*U+((nt+ot)*tt+(bt+Mt)*Y+(ft+ut)*Z)*V+((st+et)*Y+(ht+it)*Z+(nt+ot)*$)*W,dt=r*lt;return X>dt||-X>dt?X:-at(t,n,o,s,e,c,a,f,u,i,h,b,M,l,d,lt)},t.inspherefast=function(t,n,o,s,e,c,r,a,f,u,i,h,b,M,l){const d=t-b,p=s-b,y=r-b,x=u-b,j=n-M,m=e-M,_=a-M,v=i-M,w=o-l,A=c-l,F=f-l,O=h-l,P=d*m-p*j,g=p*_-y*m,k=y*v-x*_,q=x*j-d*v,z=d*_-y*j,B=p*v-x*m;return(y*y+_*_+F*F)*(O*P+w*B+A*q)-(x*x+v*v+O*O)*(w*g-A*z+F*P)+((d*d+j*j+w*w)*(A*k-F*B+O*g)-(p*p+m*m+A*A)*(F*q+O*z+w*k))},Object.defineProperty(t,"__esModule",{value:!0})});
|
|
1
|
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const n=134217729;function e(t,n,e,r,o){let a,s,f,u,i=n[0],c=r[0],h=0,b=0;c>i==c>-i?(a=i,i=n[++h]):(a=c,c=r[++b]);let l=0;if(h<t&&b<e)for(c>i==c>-i?(s=i+a,f=a-(s-i),i=n[++h]):(s=c+a,f=a-(s-c),c=r[++b]),a=s,0!==f&&(o[l++]=f);h<t&&b<e;)c>i==c>-i?(s=a+i,u=s-a,f=a-(s-u)+(i-u),i=n[++h]):(s=a+c,u=s-a,f=a-(s-u)+(c-u),c=r[++b]),a=s,0!==f&&(o[l++]=f);for(;h<t;)s=a+i,u=s-a,f=a-(s-u)+(i-u),i=n[++h],a=s,0!==f&&(o[l++]=f);for(;b<e;)s=a+c,u=s-a,f=a-(s-u)+(c-u),c=r[++b],a=s,0!==f&&(o[l++]=f);return 0===a&&0!==l||(o[l++]=a),l}function r(t,n,r,o,a,s,f,u){return e(e(t,n,r,o,f),f,a,s,u)}function o(t,e,r,o){let a,s,f,u,i,c,h,b,l,M,d;h=n*r,M=h-(h-r),d=r-M;let p=e[0];a=p*r,h=n*p,b=h-(h-p),l=p-b,f=l*d-(a-b*M-l*M-b*d);let y=0;0!==f&&(o[y++]=f);for(let x=1;x<t;x++)p=e[x],u=p*r,h=n*p,b=h-(h-p),l=p-b,i=l*d-(u-b*M-l*M-b*d),s=a+i,c=s-a,f=a-(s-c)+(i-c),0!==f&&(o[y++]=f),a=u+s,f=s-(a-u),0!==f&&(o[y++]=f);return 0===a&&0!==y||(o[y++]=a),y}function a(t,n){for(let e=0;e<t;e++)n[e]=-n[e];return t}function s(t){return new Float64Array(t)}const f=s(4),u=s(4),i=s(4),c=s(4),h=s(4),b=s(4),l=s(4),M=s(4),d=s(4),p=s(4),y=s(24),x=s(24),g=s(24),j=s(24),m=s(24),T=s(24),_=s(24),v=s(24),w=s(24),A=s(24),F=s(1152),O=s(1152),P=s(1152),k=s(1152),q=s(1152),z=s(2304),B=s(2304),C=s(3456),D=s(5760),E=s(8),G=s(8),H=s(8),I=s(16),J=s(24),K=s(48),L=s(48),N=s(96),Q=s(192),R=s(384),S=s(384),U=s(384),V=s(768);function W(t,n,e,a,s,f,u){return r(o(4,t,a,E),E,o(4,n,s,G),G,o(4,e,f,H),H,I,u)}function X(t,n,s,f,u,i,c,h,b,l,M,d){const p=e(e(t,n,s,f,K),K,a(e(u,i,c,h,L),L),L,N);return r(o(o(p,N,b,Q),Q,b,R),R,o(o(p,N,l,Q),Q,l,S),S,o(o(p,N,M,Q),Q,M,U),U,V,d)}const Y=s(96),Z=s(96),$=s(96),tt=s(1152);function nt(t,n,e,a,s,f,u,i,c,h){const b=W(t,n,e,a,s,f,J);return r(o(o(b,J,u,K),K,u,Y),Y,o(o(b,J,i,K),K,i,Z),Z,o(o(b,J,c,K),K,c,$),$,Q,h)}function et(t,o,s,E,G,H,I,J,K,L,N,Q,R,S,U,V){let Y,Z,$,et,rt,ot,at,st,ft,ut,it,ct,ht,bt,lt,Mt,dt,pt,yt,xt,gt,jt,mt,Tt,_t,vt,wt,At,Ft,Ot,Pt;const kt=t-R,qt=E-R,zt=I-R,Bt=L-R,Ct=o-S,Dt=G-S,Et=J-S,Gt=N-S,Ht=s-U,It=H-U,Jt=K-U,Kt=Q-U;At=kt*Dt,xt=n*kt,gt=xt-(xt-kt),jt=kt-gt,xt=n*Dt,mt=xt-(xt-Dt),Tt=Dt-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=qt*Ct,xt=n*qt,gt=xt-(xt-qt),jt=qt-gt,xt=n*Ct,mt=xt-(xt-Ct),Tt=Ct-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,f[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,f[1]=wt-(_t+yt)+(yt-Ot),Y=vt+_t,yt=Y-vt,f[2]=vt-(Y-yt)+(_t-yt),f[3]=Y,At=qt*Et,xt=n*qt,gt=xt-(xt-qt),jt=qt-gt,xt=n*Et,mt=xt-(xt-Et),Tt=Et-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=zt*Dt,xt=n*zt,gt=xt-(xt-zt),jt=zt-gt,xt=n*Dt,mt=xt-(xt-Dt),Tt=Dt-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,u[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,u[1]=wt-(_t+yt)+(yt-Ot),Z=vt+_t,yt=Z-vt,u[2]=vt-(Z-yt)+(_t-yt),u[3]=Z,At=zt*Gt,xt=n*zt,gt=xt-(xt-zt),jt=zt-gt,xt=n*Gt,mt=xt-(xt-Gt),Tt=Gt-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=Bt*Et,xt=n*Bt,gt=xt-(xt-Bt),jt=Bt-gt,xt=n*Et,mt=xt-(xt-Et),Tt=Et-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,i[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,i[1]=wt-(_t+yt)+(yt-Ot),$=vt+_t,yt=$-vt,i[2]=vt-($-yt)+(_t-yt),i[3]=$,At=Bt*Ct,xt=n*Bt,gt=xt-(xt-Bt),jt=Bt-gt,xt=n*Ct,mt=xt-(xt-Ct),Tt=Ct-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=kt*Gt,xt=n*kt,gt=xt-(xt-kt),jt=kt-gt,xt=n*Gt,mt=xt-(xt-Gt),Tt=Gt-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,d[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,d[1]=wt-(_t+yt)+(yt-Ot),et=vt+_t,yt=et-vt,d[2]=vt-(et-yt)+(_t-yt),d[3]=et,At=kt*Et,xt=n*kt,gt=xt-(xt-kt),jt=kt-gt,xt=n*Et,mt=xt-(xt-Et),Tt=Et-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=zt*Ct,xt=n*zt,gt=xt-(xt-zt),jt=zt-gt,xt=n*Ct,mt=xt-(xt-Ct),Tt=Ct-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,b[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,b[1]=wt-(_t+yt)+(yt-Ot),rt=vt+_t,yt=rt-vt,b[2]=vt-(rt-yt)+(_t-yt),b[3]=rt,At=qt*Gt,xt=n*qt,gt=xt-(xt-qt),jt=qt-gt,xt=n*Gt,mt=xt-(xt-Gt),Tt=Gt-mt,Ft=jt*Tt-(At-gt*mt-jt*mt-gt*Tt),Ot=Bt*Dt,xt=n*Bt,gt=xt-(xt-Bt),jt=Bt-gt,xt=n*Dt,mt=xt-(xt-Dt),Tt=Dt-mt,Pt=jt*Tt-(Ot-gt*mt-jt*mt-gt*Tt),_t=Ft-Pt,yt=Ft-_t,l[0]=Ft-(_t+yt)+(yt-Pt),vt=At+_t,yt=vt-At,wt=At-(vt-yt)+(_t-yt),_t=wt-Ot,yt=wt-_t,l[1]=wt-(_t+yt)+(yt-Ot),ot=vt+_t,yt=ot-vt,l[2]=vt-(ot-yt)+(_t-yt),l[3]=ot;let Lt=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(e(e(a(nt(u,i,l,Kt,It,-Jt,kt,Ct,Ht,F),F),F,nt(i,d,b,Ht,Jt,Kt,qt,Dt,It,O),O,z),z,e(a(nt(d,f,l,It,Kt,Ht,zt,Et,Jt,P),P),P,nt(f,u,b,Jt,Ht,-It,Bt,Gt,Kt,k),k,B),B,tt),tt),Nt=5551115123125792e-31*V;if(Lt>=Nt||-Lt>=Nt)return Lt;if(yt=t-kt,at=t-(kt+yt)+(yt-R),yt=o-Ct,it=o-(Ct+yt)+(yt-S),yt=s-Ht,lt=s-(Ht+yt)+(yt-U),yt=E-qt,st=E-(qt+yt)+(yt-R),yt=G-Dt,ct=G-(Dt+yt)+(yt-S),yt=H-It,Mt=H-(It+yt)+(yt-U),yt=I-zt,ft=I-(zt+yt)+(yt-R),yt=J-Et,ht=J-(Et+yt)+(yt-S),yt=K-Jt,dt=K-(Jt+yt)+(yt-U),yt=L-Bt,ut=L-(Bt+yt)+(yt-R),yt=N-Gt,bt=N-(Gt+yt)+(yt-S),yt=Q-Kt,pt=Q-(Kt+yt)+(yt-U),0===at&&0===it&&0===lt&&0===st&&0===ct&&0===Mt&&0===ft&&0===ht&&0===dt&&0===ut&&0===bt&&0===pt)return Lt;Nt=8751425667295619e-46*V+33306690738754706e-32*Math.abs(Lt);const Qt=kt*ct+Dt*at-(Ct*st+qt*it),Rt=qt*ht+Et*st-(Dt*ft+zt*ct),St=zt*bt+Gt*ft-(Et*ut+Bt*ht),Ut=Bt*it+Ct*ut-(Gt*at+kt*bt),Vt=kt*ht+Et*at-(Ct*ft+zt*it),Wt=qt*bt+Gt*st-(Dt*ut+Bt*ct);return Lt+=(qt*qt+Dt*Dt+It*It)*(Jt*Ut+Kt*Vt+Ht*St+(dt*et+pt*rt+lt*$))+(Bt*Bt+Gt*Gt+Kt*Kt)*(Ht*Rt-It*Vt+Jt*Qt+(lt*Z-Mt*rt+dt*Y))-((kt*kt+Ct*Ct+Ht*Ht)*(It*St-Jt*Wt+Kt*Rt+(Mt*$-dt*ot+pt*Z))+(zt*zt+Et*Et+Jt*Jt)*(Kt*Qt+Ht*Wt+It*Ut+(pt*Y+lt*ot+Mt*et)))+2*((qt*st+Dt*ct+It*Mt)*(Jt*et+Kt*rt+Ht*$)+(Bt*ut+Gt*bt+Kt*pt)*(Ht*Z-It*rt+Jt*Y)-((kt*at+Ct*it+Ht*lt)*(It*$-Jt*ot+Kt*Z)+(zt*ft+Et*ht+Jt*dt)*(Kt*Y+Ht*ot+It*et))),Lt>=Nt||-Lt>=Nt?Lt:function(t,e,o,a,s,E,G,H,I,J,K,L,N,Q,R){let S,U,V,Y,Z,$,tt,nt,et,rt,ot,at,st,ft;rt=t*s,U=n*t,V=U-(U-t),Y=t-V,U=n*s,Z=U-(U-s),$=s-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=a*e,U=n*a,V=U-(U-a),Y=a-V,U=n*e,Z=U-(U-e),$=e-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,f[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,f[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,f[2]=nt-(ft-S)+(tt-S),f[3]=ft,rt=a*H,U=n*a,V=U-(U-a),Y=a-V,U=n*H,Z=U-(U-H),$=H-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=G*s,U=n*G,V=U-(U-G),Y=G-V,U=n*s,Z=U-(U-s),$=s-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,u[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,u[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,u[2]=nt-(ft-S)+(tt-S),u[3]=ft,rt=G*K,U=n*G,V=U-(U-G),Y=G-V,U=n*K,Z=U-(U-K),$=K-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=J*H,U=n*J,V=U-(U-J),Y=J-V,U=n*H,Z=U-(U-H),$=H-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,i[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,i[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,i[2]=nt-(ft-S)+(tt-S),i[3]=ft,rt=J*Q,U=n*J,V=U-(U-J),Y=J-V,U=n*Q,Z=U-(U-Q),$=Q-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=N*K,U=n*N,V=U-(U-N),Y=N-V,U=n*K,Z=U-(U-K),$=K-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,c[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,c[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,c[2]=nt-(ft-S)+(tt-S),c[3]=ft,rt=N*e,U=n*N,V=U-(U-N),Y=N-V,U=n*e,Z=U-(U-e),$=e-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=t*Q,U=n*t,V=U-(U-t),Y=t-V,U=n*Q,Z=U-(U-Q),$=Q-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,h[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,h[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,h[2]=nt-(ft-S)+(tt-S),h[3]=ft,rt=t*H,U=n*t,V=U-(U-t),Y=t-V,U=n*H,Z=U-(U-H),$=H-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=G*e,U=n*G,V=U-(U-G),Y=G-V,U=n*e,Z=U-(U-e),$=e-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,b[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,b[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,b[2]=nt-(ft-S)+(tt-S),b[3]=ft,rt=a*K,U=n*a,V=U-(U-a),Y=a-V,U=n*K,Z=U-(U-K),$=K-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=J*s,U=n*J,V=U-(U-J),Y=J-V,U=n*s,Z=U-(U-s),$=s-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,l[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,l[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,l[2]=nt-(ft-S)+(tt-S),l[3]=ft,rt=G*Q,U=n*G,V=U-(U-G),Y=G-V,U=n*Q,Z=U-(U-Q),$=Q-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=N*H,U=n*N,V=U-(U-N),Y=N-V,U=n*H,Z=U-(U-H),$=H-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,M[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,M[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,M[2]=nt-(ft-S)+(tt-S),M[3]=ft,rt=J*e,U=n*J,V=U-(U-J),Y=J-V,U=n*e,Z=U-(U-e),$=e-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=t*K,U=n*t,V=U-(U-t),Y=t-V,U=n*K,Z=U-(U-K),$=K-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,d[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,d[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,d[2]=nt-(ft-S)+(tt-S),d[3]=ft,rt=N*s,U=n*N,V=U-(U-N),Y=N-V,U=n*s,Z=U-(U-s),$=s-Z,ot=Y*$-(rt-V*Z-Y*Z-V*$),at=a*Q,U=n*a,V=U-(U-a),Y=a-V,U=n*Q,Z=U-(U-Q),$=Q-Z,st=Y*$-(at-V*Z-Y*Z-V*$),tt=ot-st,S=ot-tt,p[0]=ot-(tt+S)+(S-st),nt=rt+tt,S=nt-rt,et=rt-(nt-S)+(tt-S),tt=et-at,S=et-tt,p[1]=et-(tt+S)+(S-at),ft=nt+tt,S=ft-nt,p[2]=nt-(ft-S)+(tt-S),p[3]=ft;const ut=W(f,u,b,I,o,-E,y),it=W(u,i,l,L,E,-I,x),ct=W(i,c,M,R,I,-L,g),ht=W(c,h,d,o,L,-R,j),bt=W(h,f,p,E,R,-o,m),lt=W(f,l,d,L,o,E,T),Mt=W(u,M,p,R,E,I,_),dt=W(i,d,b,o,I,L,v),pt=W(c,p,l,E,L,R,w),yt=W(h,b,M,I,R,o,A),xt=r(X(ct,g,Mt,_,pt,w,it,x,t,e,o,F),F,X(ht,j,dt,v,yt,A,ct,g,a,s,E,O),O,r(X(bt,m,pt,w,lt,T,ht,j,G,H,I,P),P,X(ut,y,yt,A,Mt,_,bt,m,J,K,L,k),k,X(it,x,lt,T,dt,v,ut,y,N,Q,R,q),q,B,C),C,z,D);return D[xt-1]}(t,o,s,E,G,H,I,J,K,L,N,Q,R,S,U)}t.insphere=function(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M){const d=t-b,p=r-b,y=s-b,x=i-b,g=n-l,j=o-l,m=f-l,T=c-l,_=e-M,v=a-M,w=u-M,A=h-M,F=d*j,O=p*g,P=F-O,k=p*m,q=y*j,z=k-q,B=y*T,C=x*m,D=B-C,E=x*g,G=d*T,H=E-G,I=d*m,J=y*g,K=I-J,L=p*T,N=x*j,Q=L-N,R=d*d+g*g+_*_,S=p*p+j*j+v*v,U=y*y+m*m+w*w,V=x*x+T*T+A*A,W=U*(A*P+_*Q+v*H)-V*(_*z-v*K+w*P)+(R*(v*D-w*Q+A*z)-S*(w*H+A*K+_*D)),X=Math.abs(_),Y=Math.abs(v),Z=Math.abs(w),$=Math.abs(A),tt=Math.abs(F),nt=Math.abs(O),rt=Math.abs(k),ot=Math.abs(q),at=Math.abs(B),st=Math.abs(C),ft=Math.abs(E),ut=Math.abs(G),it=Math.abs(I),ct=Math.abs(J),ht=Math.abs(L),bt=Math.abs(N),lt=((at+st)*Y+(bt+ht)*Z+(rt+ot)*$)*R+((ft+ut)*Z+(it+ct)*$+(at+st)*X)*S+((tt+nt)*$+(ht+bt)*X+(ft+ut)*Y)*U+((rt+ot)*X+(ct+it)*Y+(tt+nt)*Z)*V,Mt=17763568394002532e-31*lt;return W>Mt||-W>Mt?W:-et(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M,lt)},t.inspherefast=function(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M){const d=t-b,p=r-b,y=s-b,x=i-b,g=n-l,j=o-l,m=f-l,T=c-l,_=e-M,v=a-M,w=u-M,A=h-M,F=d*j-p*g,O=p*m-y*j,P=y*T-x*m,k=x*g-d*T,q=d*m-y*g,z=p*T-x*j;return(y*y+m*m+w*w)*(A*F+_*z+v*k)-(x*x+T*T+A*A)*(_*O-v*q+w*F)+((d*d+g*g+_*_)*(v*P-w*z+A*O)-(p*p+j*j+v*v)*(w*k+A*q+_*P))},Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/umd/orient2d.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
3
3
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
4
|
-
(global = global || self, factory(global.predicates = {}));
|
|
5
|
-
}(this, function (exports) { 'use strict';
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
|
|
5
|
+
}(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
7
|
const epsilon = 1.1102230246251565e-16;
|
|
8
8
|
const splitter = 134217729;
|
|
9
9
|
const resulterrbound = (3 + 8 * epsilon) * epsilon;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// fast_expansion_sum_zeroelim routine from oritinal code
|
|
12
|
+
function sum(elen, e, flen, f, h) {
|
|
12
13
|
let Q, Qnew, hh, bvirt;
|
|
13
14
|
let enow = e[0];
|
|
14
15
|
let fnow = f[0];
|
|
@@ -22,7 +23,7 @@ function fast_expansion_sum_zeroelim(elen, e, flen, f, h) {
|
|
|
22
23
|
fnow = f[++findex];
|
|
23
24
|
}
|
|
24
25
|
let hindex = 0;
|
|
25
|
-
if (
|
|
26
|
+
if (eindex < elen && findex < flen) {
|
|
26
27
|
if ((fnow > enow) === (fnow > -enow)) {
|
|
27
28
|
Qnew = enow + Q;
|
|
28
29
|
hh = Q - (Qnew - enow);
|
|
@@ -36,7 +37,7 @@ function fast_expansion_sum_zeroelim(elen, e, flen, f, h) {
|
|
|
36
37
|
if (hh !== 0) {
|
|
37
38
|
h[hindex++] = hh;
|
|
38
39
|
}
|
|
39
|
-
while (
|
|
40
|
+
while (eindex < elen && findex < flen) {
|
|
40
41
|
if ((fnow > enow) === (fnow > -enow)) {
|
|
41
42
|
Qnew = Q + enow;
|
|
42
43
|
bvirt = Qnew - Q;
|
|
@@ -102,49 +103,48 @@ const u = vec(4);
|
|
|
102
103
|
|
|
103
104
|
function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
104
105
|
let acxtail, acytail, bcxtail, bcytail;
|
|
105
|
-
let
|
|
106
|
-
let B3, u3, s1, t1, s0, t0;
|
|
107
|
-
let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0;
|
|
106
|
+
let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
|
|
108
107
|
|
|
109
108
|
const acx = ax - cx;
|
|
110
109
|
const bcx = bx - cx;
|
|
111
110
|
const acy = ay - cy;
|
|
112
111
|
const bcy = by - cy;
|
|
113
112
|
|
|
114
|
-
|
|
113
|
+
s1 = acx * bcy;
|
|
115
114
|
c = splitter * acx;
|
|
116
115
|
ahi = c - (c - acx);
|
|
117
116
|
alo = acx - ahi;
|
|
118
117
|
c = splitter * bcy;
|
|
119
118
|
bhi = c - (c - bcy);
|
|
120
119
|
blo = bcy - bhi;
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
121
|
+
t1 = acy * bcx;
|
|
123
122
|
c = splitter * acy;
|
|
124
123
|
ahi = c - (c - acy);
|
|
125
124
|
alo = acy - ahi;
|
|
126
125
|
c = splitter * bcx;
|
|
127
126
|
bhi = c - (c - bcx);
|
|
128
127
|
blo = bcx - bhi;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
_i = _0 - detright;
|
|
128
|
+
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
129
|
+
_i = s0 - t0;
|
|
130
|
+
bvirt = s0 - _i;
|
|
131
|
+
B[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
132
|
+
_j = s1 + _i;
|
|
133
|
+
bvirt = _j - s1;
|
|
134
|
+
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
135
|
+
_i = _0 - t1;
|
|
138
136
|
bvirt = _0 - _i;
|
|
139
|
-
B[1] = _0 - (_i + bvirt) + (bvirt -
|
|
140
|
-
|
|
141
|
-
bvirt =
|
|
142
|
-
B[2] = _j - (
|
|
143
|
-
B[3] =
|
|
137
|
+
B[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
138
|
+
u3 = _j + _i;
|
|
139
|
+
bvirt = u3 - _j;
|
|
140
|
+
B[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
141
|
+
B[3] = u3;
|
|
144
142
|
|
|
145
143
|
let det = estimate(4, B);
|
|
146
144
|
let errbound = ccwerrboundB * detsum;
|
|
147
|
-
if (det >= errbound || -det >= errbound)
|
|
145
|
+
if (det >= errbound || -det >= errbound) {
|
|
146
|
+
return det;
|
|
147
|
+
}
|
|
148
148
|
|
|
149
149
|
bvirt = ax - acx;
|
|
150
150
|
acxtail = ax - (acx + bvirt) + (bvirt - cx);
|
|
@@ -155,13 +155,13 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
155
155
|
bvirt = by - bcy;
|
|
156
156
|
bcytail = by - (bcy + bvirt) + (bvirt - cy);
|
|
157
157
|
|
|
158
|
-
if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0)
|
|
158
|
+
if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
|
|
159
|
+
return det;
|
|
160
|
+
}
|
|
159
161
|
|
|
160
162
|
errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
|
|
161
163
|
det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
|
|
162
|
-
if (det >= errbound || -det >= errbound)
|
|
163
|
-
return det;
|
|
164
|
-
}
|
|
164
|
+
if (det >= errbound || -det >= errbound) return det;
|
|
165
165
|
|
|
166
166
|
s1 = acxtail * bcy;
|
|
167
167
|
c = splitter * acxtail;
|
|
@@ -192,7 +192,7 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
192
192
|
bvirt = u3 - _j;
|
|
193
193
|
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
194
194
|
u[3] = u3;
|
|
195
|
-
const
|
|
195
|
+
const C1len = sum(4, B, 4, u, C1);
|
|
196
196
|
|
|
197
197
|
s1 = acx * bcytail;
|
|
198
198
|
c = splitter * acx;
|
|
@@ -223,7 +223,7 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
223
223
|
bvirt = u3 - _j;
|
|
224
224
|
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
225
225
|
u[3] = u3;
|
|
226
|
-
const
|
|
226
|
+
const C2len = sum(C1len, C1, 4, u, C2);
|
|
227
227
|
|
|
228
228
|
s1 = acxtail * bcytail;
|
|
229
229
|
c = splitter * acxtail;
|
|
@@ -254,37 +254,20 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
254
254
|
bvirt = u3 - _j;
|
|
255
255
|
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
256
256
|
u[3] = u3;
|
|
257
|
-
const
|
|
257
|
+
const Dlen = sum(C2len, C2, 4, u, D);
|
|
258
258
|
|
|
259
|
-
return D[
|
|
259
|
+
return D[Dlen - 1];
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
function orient2d(ax, ay, bx, by, cx, cy) {
|
|
263
263
|
const detleft = (ay - cy) * (bx - cx);
|
|
264
264
|
const detright = (ax - cx) * (by - cy);
|
|
265
265
|
const det = detleft - detright;
|
|
266
|
-
let detsum;
|
|
267
|
-
|
|
268
|
-
if (detleft > 0) {
|
|
269
|
-
if (detright <= 0) {
|
|
270
|
-
return det;
|
|
271
|
-
}
|
|
272
|
-
detsum = detleft + detright;
|
|
273
266
|
|
|
274
|
-
|
|
275
|
-
if (detright >= 0) {
|
|
276
|
-
return det;
|
|
277
|
-
}
|
|
278
|
-
detsum = -detleft - detright;
|
|
267
|
+
if (detleft === 0 || detright === 0 || (detleft > 0) !== (detright > 0)) return det;
|
|
279
268
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
const errbound = ccwerrboundA * detsum;
|
|
285
|
-
if (det >= errbound || -det >= errbound) {
|
|
286
|
-
return det;
|
|
287
|
-
}
|
|
269
|
+
const detsum = Math.abs(detleft + detright);
|
|
270
|
+
if (Math.abs(det) >= ccwerrboundA * detsum) return det;
|
|
288
271
|
|
|
289
272
|
return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
|
|
290
273
|
}
|
|
@@ -298,4 +281,4 @@ exports.orient2dfast = orient2dfast;
|
|
|
298
281
|
|
|
299
282
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
300
283
|
|
|
301
|
-
}));
|
|
284
|
+
})));
|
package/umd/orient2d.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const e=134217729;function n(t,e,n,o,r){let f,i,u,s,c=e[0],l=o[0],a=0,d=0;l>c==l>-c?(f=c,c=e[++a]):(f=l,l=o[++d]);let p=0;if(a<t&&d<n)for(l>c==l>-c?(i=c+f,u=f-(i-c),c=e[++a]):(i=l+f,u=f-(i-l),l=o[++d]),f=i,0!==u&&(r[p++]=u);a<t&&d<n;)l>c==l>-c?(i=f+c,s=i-f,u=f-(i-s)+(c-s),c=e[++a]):(i=f+l,s=i-f,u=f-(i-s)+(l-s),l=o[++d]),f=i,0!==u&&(r[p++]=u);for(;a<t;)i=f+c,s=i-f,u=f-(i-s)+(c-s),c=e[++a],f=i,0!==u&&(r[p++]=u);for(;d<n;)i=f+l,s=i-f,u=f-(i-s)+(l-s),l=o[++d],f=i,0!==u&&(r[p++]=u);return 0===f&&0!==p||(r[p++]=f),p}function o(t){return new Float64Array(t)}const r=o(4),f=o(8),i=o(12),u=o(16),s=o(4);t.orient2d=function(t,o,c,l,a,d){const p=(o-d)*(c-a),b=(t-a)*(l-d),h=p-b;if(0===p||0===b||p>0!=b>0)return h;const y=Math.abs(p+b);return Math.abs(h)>=33306690738754716e-32*y?h:-function(t,o,c,l,a,d,p){let b,h,y,M,x,g,j,m,T,_,v,w,A,F,O,P,k,q;const z=t-a,B=c-a,C=o-d,D=l-d;F=z*D,g=e*z,j=g-(g-z),m=z-j,g=e*D,T=g-(g-D),_=D-T,O=m*_-(F-j*T-m*T-j*_),P=C*B,g=e*C,j=g-(g-C),m=C-j,g=e*B,T=g-(g-B),_=B-T,k=m*_-(P-j*T-m*T-j*_),v=O-k,x=O-v,r[0]=O-(v+x)+(x-k),w=F+v,x=w-F,A=F-(w-x)+(v-x),v=A-P,x=A-v,r[1]=A-(v+x)+(x-P),q=w+v,x=q-w,r[2]=w-(q-x)+(v-x),r[3]=q;let E=function(t,e){let n=e[0];for(let o=1;o<t;o++)n+=e[o];return n}(4,r),G=22204460492503146e-32*p;if(E>=G||-E>=G)return E;if(x=t-z,b=t-(z+x)+(x-a),x=c-B,y=c-(B+x)+(x-a),x=o-C,h=o-(C+x)+(x-d),x=l-D,M=l-(D+x)+(x-d),0===b&&0===h&&0===y&&0===M)return E;if(G=11093356479670487e-47*p+33306690738754706e-32*Math.abs(E),E+=z*M+D*b-(C*y+B*h),E>=G||-E>=G)return E;F=b*D,g=e*b,j=g-(g-b),m=b-j,g=e*D,T=g-(g-D),_=D-T,O=m*_-(F-j*T-m*T-j*_),P=h*B,g=e*h,j=g-(g-h),m=h-j,g=e*B,T=g-(g-B),_=B-T,k=m*_-(P-j*T-m*T-j*_),v=O-k,x=O-v,s[0]=O-(v+x)+(x-k),w=F+v,x=w-F,A=F-(w-x)+(v-x),v=A-P,x=A-v,s[1]=A-(v+x)+(x-P),q=w+v,x=q-w,s[2]=w-(q-x)+(v-x),s[3]=q;const H=n(4,r,4,s,f);F=z*M,g=e*z,j=g-(g-z),m=z-j,g=e*M,T=g-(g-M),_=M-T,O=m*_-(F-j*T-m*T-j*_),P=C*y,g=e*C,j=g-(g-C),m=C-j,g=e*y,T=g-(g-y),_=y-T,k=m*_-(P-j*T-m*T-j*_),v=O-k,x=O-v,s[0]=O-(v+x)+(x-k),w=F+v,x=w-F,A=F-(w-x)+(v-x),v=A-P,x=A-v,s[1]=A-(v+x)+(x-P),q=w+v,x=q-w,s[2]=w-(q-x)+(v-x),s[3]=q;const I=n(H,f,4,s,i);F=b*M,g=e*b,j=g-(g-b),m=b-j,g=e*M,T=g-(g-M),_=M-T,O=m*_-(F-j*T-m*T-j*_),P=h*y,g=e*h,j=g-(g-h),m=h-j,g=e*y,T=g-(g-y),_=y-T,k=m*_-(P-j*T-m*T-j*_),v=O-k,x=O-v,s[0]=O-(v+x)+(x-k),w=F+v,x=w-F,A=F-(w-x)+(v-x),v=A-P,x=A-v,s[1]=A-(v+x)+(x-P),q=w+v,x=q-w,s[2]=w-(q-x)+(v-x),s[3]=q;const J=n(I,i,4,s,u);return u[J-1]}(t,o,c,l,a,d,y)},t.orient2dfast=function(t,e,n,o,r,f){return(e-f)*(n-r)-(t-r)*(o-f)},Object.defineProperty(t,"__esModule",{value:!0})}));
|