g2o-euclid
Version:
g2o Euclidean Geometry Utilities
3 lines (2 loc) • 940 B
JavaScript
System.register(["g2o","g2o-reactive"],(function(e){"use strict";var s,t,c,o;return{setters:[function(e){s=e.variable,t=e.G20,c=e.dispose},function(e){o=e.effect}],execute:function(){e("CircleCircleIntersection",class{#e=[];points=[];#s=s(0);change$=this.#s.asObservable();constructor(e,s){const c=t.vector(0,0),i=t.vector(0,0),n=t.vector(0,0),r=t.vector(0,0),a=t.vector(0,0);let l=-1,h=-1;const u=()=>{if(-1!==l&&-1!==h){a.copyVector(r).sub(n);const e=a.quaditude(),s=h*h,o=l*l,u=Math.sqrt(e),d=(e-s+o)/(2*u),p=o-d*d;if(p>=0){const e=Math.sqrt(p),s=a.clone().scale(1/u),o=s.clone().mul(t.I),r=s.clone().scale(d),l=o.clone().scale(e);c.copyVector(n).add(r).add(l),i.copyVector(n).add(r).sub(l),this.points[0]=c,this.points[1]=i}else this.points.length=0}};this.#e.push(o((()=>{n.copyVector(e.X),r.copyVector(s.X),l=e.radius,h=s.radius,u(),this.#s.set(this.#s.get()+1)})))}dispose(){c(this.#e)}})}}}));
//# sourceMappingURL=index.min.js.map