UNPKG

flatten-js

Version:

Javascript library for 2d geometry

1 lines 3.74 kB
{"dependencies":[{"name":"C:\\Users\\alexbol\\WebstormProjects\\flatten-js\\package.json","includedInParent":true,"mtime":1520238055570}],"generated":{"js":"\"use strict\";var t=function(){return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,r){var e=[],n=!0,i=!1,c=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(e.push(s.value),!r||e.length!==r);n=!0);}catch(t){i=!0,c=t}finally{try{!n&&a.return&&a.return()}finally{if(i)throw c}}return e}(t,r);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),r=function(){function t(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(r,e,n){return e&&t(r.prototype,e),n&&t(r,n),r}}();function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}module.exports=function(n){n.Arc,n.vector;n.Circle=function(){function i(t,r){e(this,i),this.pc=t,this.r=r}return r(i,[{key:\"clone\",value:function(){return new n.Circle(this.pc.clone(),this.r)}},{key:\"contains\",value:function(t){return n.Utils.LE(t.distanceTo(this.center)[0],this.r)}},{key:\"toArc\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return new n.Arc(this.center,this.r,Math.PI,-Math.PI,t)}},{key:\"intersect\",value:function(t){return t instanceof n.Line?t.intersect(this):t instanceof n.Segment?t.intersect(this):t instanceof n.Circle?i.intersectCirle2Circle(this,t):t instanceof n.Arc?t.intersect(this):void 0}},{key:\"distanceTo\",value:function(r){var e=n.Distance,i=e.point2circle,c=e.circle2circle,s=e.circle2line,a=e.segment2circle,o=e.arc2circle;if(r instanceof n.Point){var l=i(r,this),u=t(l,2),f=u[0],h=u[1];return[f,h=h.reverse()]}if(r instanceof n.Circle){var v=c(this,r),p=t(v,2);return[p[0],p[1]]}if(r instanceof n.Line){var y=s(this,r),d=t(y,2);return[d[0],d[1]]}if(r instanceof n.Segment){var k=a(r,this),b=t(k,2),g=b[0],x=b[1];return[g,x=x.reverse()]}if(r instanceof n.Arc){var C=o(r,this),w=t(C,2),m=w[0],E=w[1];return[m,E=E.reverse()]}if(r instanceof n.Polygon){var U=e.shape2polygon(this,r),A=t(U,2);return[A[0],A[1]]}if(r instanceof n.PlanarSet){var Q=e.shape2planarSet(this,r),T=t(Q,2);return[T[0],T[1]]}}},{key:\"svg\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{stroke:\"black\",strokeWidth:\"3\",fill:\"none\"},r=t.stroke,e=t.strokeWidth,n=t.fill;return'\\n<circle cx=\"'+this.pc.x+'\" cy=\"'+this.pc.y+'\" r=\"'+this.r+'\" stroke=\"'+r+'\" stroke-width=\"'+e+'\" fill=\"'+n+'\" />'}},{key:\"center\",get:function(){return this.pc}},{key:\"box\",get:function(){return new n.Box(this.pc.x-this.r,this.pc.y-this.r,this.pc.x+this.r,this.pc.y+this.r)}}],[{key:\"intersectCirle2Circle\",value:function(t,r){var e=[];if(t.box.notIntersect(r.box))return e;var i=new n.Vector(t.pc,r.pc),c=t.r,s=r.r;if(n.Utils.EQ_0(c)||n.Utils.EQ_0(s))return e;if(n.Utils.EQ_0(i.x)&&n.Utils.EQ_0(i.y)&&n.Utils.EQ(c,s))return e.push(t.pc.translate(-c,0)),e;var a=t.pc.distanceTo(r.pc)[0];if(n.Utils.GT(a,c+s))return e;if(n.Utils.LT(a,Math.abs(c-s)))return e;i.x/=a,i.y/=a;var o=void 0;if(n.Utils.EQ(a,c+s)||n.Utils.EQ(a,Math.abs(c-s)))return o=t.pc.translate(c*i.x,c*i.y),e.push(o),e;var l=c*c/(2*a)-s*s/(2*a)+a/2,u=t.pc.translate(l*i.x,l*i.y),f=Math.sqrt(c*c-l*l);return o=u.translate(i.rotate90CCW().multiply(f)),e.push(o),o=u.translate(i.rotate90CW().multiply(f)),e.push(o),e}}]),i}(),n.circle=function(){for(var t=arguments.length,r=Array(t),e=0;e<t;e++)r[e]=arguments[e];return new(Function.prototype.bind.apply(n.Circle,[null].concat(r)))}};"},"hash":"cda1405dbf9a3ecdcf64b6c25f4b737f","cacheData":{"env":{}}}