flatten-js
Version:
Javascript library for 2d geometry
1 lines • 6.03 kB
JSON
{"dependencies":[{"name":"C:\\Users\\alexbol\\WebstormProjects\\flatten-js\\package.json","includedInParent":true,"mtime":1520238055570}],"generated":{"js":"\"use strict\";var t=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,i=!1,s=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(n.push(o.value),!e||n.length!==e);r=!0);}catch(t){i=!0,s=t}finally{try{!r&&a.return&&a.return()}finally{if(i)throw s}}return n}(t,e);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),e=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();function n(t){return Array.isArray(t)?t:Array.from(t)}function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}module.exports=function(i){i.Segment=function(){function s(){r(this,s),this.ps=new i.Point,this.pe=new i.Point;for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];if(0!=e.length){if(1==e.length&&e[0]instanceof Array&&4==e[0].length){var o=e[0];return this.ps=new i.Point(o[0],o[1]),void(this.pe=new i.Point(o[2],o[3]))}if(2==e.length&&e[0]instanceof i.Point&&e[1]instanceof i.Point)return this.ps=e[0].clone(),void(this.pe=e[1].clone());if(4==e.length)return this.ps=new i.Point(e[0],e[1]),void(this.pe=new i.Point(e[2],e[3]));throw i.Errors.ILLEGAL_PARAMETERS}}return e(s,[{key:\"clone\",value:function(){return new i.Segment(this.start,this.end)}},{key:\"contains\",value:function(t){return i.Utils.EQ_0(this.distanceToPoint(t))}},{key:\"intersect\",value:function(t){return t instanceof i.Line?s.intersectSegment2Line(this,t):t instanceof i.Segment?s.intersectSegment2Segment(this,t):t instanceof i.Circle?s.intersectSegment2Circle(this,t):t instanceof i.Arc?s.intersectSegment2Arc(this,t):void 0}},{key:\"distanceTo\",value:function(e){var n=i.Distance;if(e instanceof i.Point){var r=n.point2segment(e,this),s=t(r,2),o=s[0],a=s[1];return[o,a=a.reverse()]}if(e instanceof i.Circle){var u=n.segment2circle(this,e),c=t(u,2);return[c[0],c[1]]}if(e instanceof i.Line){var h=n.segment2line(this,e),l=t(h,2);return[l[0],l[1]]}if(e instanceof i.Segment){var f=n.segment2segment(this,e),p=t(f,2);return[p[0],p[1]]}if(e instanceof i.Arc){var y=n.segment2arc(this,e),v=t(y,2);return[v[0],v[1]]}if(e instanceof i.Polygon){var g=n.shape2polygon(this,e),d=t(g,2);return[d[0],d[1]]}if(e instanceof i.PlanarSet){var m=n.shape2planarSet(this,e),w=t(m,2);return[w[0],w[1]]}}},{key:\"tangentInStart\",value:function(){return new i.Vector(this.start,this.end).normalize()}},{key:\"tangentInEnd\",value:function(){return new i.Vector(this.end,this.start).normalize()}},{key:\"reverse\",value:function(){return new s(this.end,this.start)}},{key:\"split\",value:function(t){return this.contains(t)?this.start.equalTo(this.end)?[this.clone()]:this.start.equalTo(t)||this.end.equalTo(t)?[this]:[new i.Segment(this.start,t),new i.Segment(t,this.end)]:[]}},{key:\"middle\",value:function(){return new i.Point((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2)}},{key:\"distanceToPoint\",value:function(t){var e=n(i.Distance.point2segment(t,this)),r=e[0];e.slice(1);return r}},{key:\"definiteIntegral\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(this.end.x-this.start.x)*(this.start.y-t+(this.end.y-t))/2}},{key:\"svg\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{stroke:\"black\",strokeWidth:\"3\"},e=t.stroke,n=t.strokeWidth;return'\\n<line x1=\"'+this.start.x+'\" y1=\"'+this.start.y+'\" x2=\"'+this.end.x+'\" y2=\"'+this.end.y+'\" stroke=\"'+e+'\" stroke-width=\"'+n+'\" />'}},{key:\"start\",get:function(){return this.ps}},{key:\"end\",get:function(){return this.pe}},{key:\"vertices\",get:function(){return[this.ps.clone(),this.pe.clone()]}},{key:\"length\",get:function(){return this.start.distanceTo(this.end)[0]}},{key:\"slope\",get:function(){return new i.Vector(this.start,this.end).slope}},{key:\"box\",get:function(){return new i.Box(Math.min(this.start.x,this.end.x),Math.min(this.start.y,this.end.y),Math.max(this.start.x,this.end.x),Math.max(this.start.y,this.end.y))}}],[{key:\"intersectSegment2Line\",value:function(t,e){var n=[],r=i.Utils.EQ_0(t.length);return t.ps.on(e)&&n.push(t.ps),t.pe.on(e)&&!r&&n.push(t.pe),n.length>0?n:t.ps.leftTo(e)&&t.pe.leftTo(e)||!t.ps.leftTo(e)&&!t.pe.leftTo(e)?n:new i.Line(t.ps,t.pe).intersect(e)}},{key:\"intersectSegment2Segment\",value:function(t,e){var n=[];if(t.box.notIntersect(e.box))return n;var r=new i.Line(t.ps,t.pe),s=new i.Line(e.ps,e.pe);if(r.incidentTo(s))t.ps.on(e)&&n.push(t.ps),t.pe.on(e)&&n.push(t.pe),!e.ps.on(t)||e.ps.equalTo(t.ps)||e.ps.equalTo(t.pe)||n.push(e.ps),!e.pe.on(t)||e.pe.equalTo(t.ps)||e.pe.equalTo(t.pe)||n.push(e.pe);else{var o=r.intersect(s);o.length>0&&o[0].on(t)&&o[0].on(e)&&n.push(o[0])}return n}},{key:\"intersectSegment2Circle\",value:function(t,e){var n=[];if(t.box.notIntersect(e.box))return n;var r=new i.Line(t.ps,t.pe).intersect(e),s=!0,o=!1,a=void 0;try{for(var u,c=r[Symbol.iterator]();!(s=(u=c.next()).done);s=!0){var h=u.value;h.on(t)&&n.push(h)}}catch(t){o=!0,a=t}finally{try{!s&&c.return&&c.return()}finally{if(o)throw a}}return n}},{key:\"intersectSegment2Arc\",value:function(t,e){var n=[];if(t.box.notIntersect(e.box))return n;var r=new i.Line(t.ps,t.pe),s=new i.Circle(e.pc,e.r),o=r.intersect(s),a=!0,u=!1,c=void 0;try{for(var h,l=o[Symbol.iterator]();!(a=(h=l.next()).done);a=!0){var f=h.value;f.on(t)&&f.on(e)&&n.push(f)}}catch(t){u=!0,c=t}finally{try{!a&&l.return&&l.return()}finally{if(u)throw c}}return n}}]),s}(),i.segment=function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return new(Function.prototype.bind.apply(i.Segment,[null].concat(e)))}};"},"hash":"23603dc4c1550799e323bda34c079595","cacheData":{"env":{}}}