flatten-js
Version:
Javascript library for 2d geometry
1 lines • 5 kB
JSON
{"dependencies":[{"name":"C:\\Users\\alexbol\\WebstormProjects\\flatten-js\\package.json","includedInParent":true,"mtime":1520238055570}],"generated":{"js":"\"use strict\";var n=function(){return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return function(n,t){var e=[],r=!0,i=!1,o=void 0;try{for(var a,s=n[Symbol.iterator]();!(r=(a=s.next()).done)&&(e.push(a.value),!t||e.length!==t);r=!0);}catch(n){i=!0,o=n}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return e}(n,t);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),t=function(){function n(n,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t}}();function e(n,t){if(!(n instanceof t))throw new TypeError(\"Cannot call a class as a function\")}module.exports=function(r){r.Line=function(){function i(){if(e(this,i),this.pt=new r.Point,this.norm=new r.Vector(0,1),0!=arguments.length){if(2==arguments.length){var n=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1];if(n instanceof r.Point&&t instanceof r.Point)return this.pt=n,void(this.norm=i.points2norm(n,t));if(n instanceof r.Point&&t instanceof r.Vector){if(r.Utils.EQ_0(t.x)&&r.Utils.EQ_0(t.y))throw r.Errors.ILLEGAL_PARAMETERS;return this.pt=n.clone(),void(this.norm=t.clone())}if(n instanceof r.Vector&&t instanceof r.Point){if(r.Utils.EQ_0(n.x)&&r.Utils.EQ_0(n.y))throw r.Errors.ILLEGAL_PARAMETERS;return this.pt=t.clone(),void(this.norm=n.clone())}}throw r.Errors.ILLEGAL_PARAMETERS}}return t(i,[{key:\"clone\",value:function(){return new r.Line(this.pt,this.norm)}},{key:\"parallelTo\",value:function(n){return r.Utils.EQ_0(this.norm.cross(n.norm))}},{key:\"incidentTo\",value:function(n){return(this.norm.equalTo(n.norm)||this.norm.equalTo(n.norm.invert()))&&this.pt.on(n)}},{key:\"contains\",value:function(n){if(this.pt.equalTo(n))return!0;var t=new r.Vector(this.pt,n);return r.Utils.EQ_0(this.norm.dot(t))}},{key:\"intersect\",value:function(n){return n instanceof r.Line?i.intersectLine2Line(this,n):n instanceof r.Circle?i.intersectLine2Circle(this,n):n instanceof r.Segment?n.intersect(this):n instanceof r.Arc?i.intersectLine2Arc(this,n):void 0}},{key:\"distanceTo\",value:function(t){var e=r.Distance;if(t instanceof r.Point){var i=e.point2line(t,this),o=n(i,2),a=o[0],s=o[1];return[a,s=s.reverse()]}if(t instanceof r.Circle){var c=e.circle2line(t,this),l=n(c,2),u=l[0],f=l[1];return[u,f=f.reverse()]}if(t instanceof r.Segment){var h=e.segment2line(t,this),v=n(h,2);return[v[0],v[1].reverse()]}if(t instanceof r.Arc){var y=e.arc2line(t,this),m=n(y,2);return[m[0],m[1].reverse()]}if(t instanceof r.Polygon){var p=e.shape2polygon(this,t),d=n(p,2);return[d[0],d[1]]}}},{key:\"slope\",get:function(){return new r.Vector(this.norm.y,-this.norm.x).slope}},{key:\"standard\",get:function(){return[this.norm.x,this.norm.y,this.norm.dot(this.pt)]}}],[{key:\"points2norm\",value:function(n,t){if(n.equalTo(t))throw r.Errors.ILLEGAL_PARAMETERS;return new r.Vector(n,t).normalize().rotate90CCW()}},{key:\"intersectLine2Line\",value:function(t,e){var i=[],o=n(t.standard,3),a=o[0],s=o[1],c=o[2],l=n(e.standard,3),u=l[0],f=l[1],h=l[2],v=a*f-s*u,y=c*f-s*h,m=a*h-c*u;if(!r.Utils.EQ_0(v)){var p=new r.Point(y/v,m/v);i.push(p)}return i}},{key:\"intersectLine2Circle\",value:function(n,t){var e=[],i=t.pc.projectionOn(n),o=t.pc.distanceTo(i)[0];if(r.Utils.EQ(o,t.r))e.push(i);else if(r.Utils.LT(o,t.r)){var a,s,c=Math.sqrt(t.r*t.r-o*o);a=n.norm.rotate90CCW().multiply(c),s=i.translate(a),e.push(s),a=n.norm.rotate90CW().multiply(c),s=i.translate(a),e.push(s)}return e}},{key:\"intersectLine2Box\",value:function(n,t){var e=[new r.Point(t.xmin,t.ymin),new r.Point(t.xmax,t.ymin),new r.Point(t.xmax,t.ymax),new r.Point(t.xmin,t.ymax)],i=[new r.Segment(e[0],e[1]),new r.Segment(e[1],e[2]),new r.Segment(e[2],e[3]),new r.Segment(e[3],e[0])],o=[],a=!0,s=!1,c=void 0;try{for(var l,u=i[Symbol.iterator]();!(a=(l=u.next()).done);a=!0){var f=l.value.intersect(n),h=!0,v=!1,y=void 0;try{for(var m,p=f[Symbol.iterator]();!(h=(m=p.next()).done);h=!0){var d=m.value;o.push(d)}}catch(n){v=!0,y=n}finally{try{!h&&p.return&&p.return()}finally{if(v)throw y}}}}catch(n){s=!0,c=n}finally{try{!a&&u.return&&u.return()}finally{if(s)throw c}}return o}},{key:\"intersectLine2Arc\",value:function(n,t){var e=[];if(0==i.intersectLine2Box(n,t.box).length)return e;var o=new r.Circle(t.pc,t.r),a=n.intersect(o),s=!0,c=!1,l=void 0;try{for(var u,f=a[Symbol.iterator]();!(s=(u=f.next()).done);s=!0){var h=u.value;h.on(t)&&e.push(h)}}catch(n){c=!0,l=n}finally{try{!s&&f.return&&f.return()}finally{if(c)throw l}}return e}}]),i}(),r.line=function(){for(var n=arguments.length,t=Array(n),e=0;e<n;e++)t[e]=arguments[e];return new(Function.prototype.bind.apply(r.Line,[null].concat(t)))}};"},"hash":"bbf8e376f26cae4cdbdda06c5decf433","cacheData":{"env":{}}}