flatten-js
Version:
Javascript library for 2d geometry
1 lines • 1.75 kB
JSON
{"dependencies":[{"name":"C:\\Users\\alexbol\\WebstormProjects\\flatten-js\\package.json","includedInParent":true,"mtime":1520238055570}],"generated":{"js":"\"use strict\";module.exports=function(e){e.Polygon,e.Point;var t=e.Segment,n=(e.Arc,e.Line),r=e.Ray;e.ray_shoot=function(a,o){if(a.box.notIntersect(o.box))return e.OUTSIDE;var l=new r(o),i=new n(l.pt,l.norm),s=a.edges.search(l.box);if(0==s.length)return e.OUTSIDE;var p=[],f=!0,u=!1,d=void 0;try{for(var g,h=s[Symbol.iterator]();!(f=(g=h.next()).done);f=!0){var v=g.value,y=!0,c=!1,x=void 0;try{for(var T,I=l.intersect(v.shape)[Symbol.iterator]();!(y=(T=I.next()).done);y=!0){var S=T.value;if(S.equalTo(o))return e.BOUNDARY;p.push({pt:S,edge:v})}}catch(e){c=!0,x=e}finally{try{!y&&I.return&&I.return()}finally{if(c)throw x}}}}catch(e){u=!0,d=e}finally{try{!f&&h.return&&h.return()}finally{if(u)throw d}}p.sort(function(t,n){return e.Utils.LT(t.pt.x,n.pt.x)?-1:e.Utils.GT(t.pt.x,n.pt.x)?1:0});for(var E=0,U=0;U<p.length;U++){var m=p[U];if(m.pt.equalTo(m.edge.shape.start)){if(U>0&&m.pt.equalTo(p[U-1].pt)&&m.edge.prev===p[U-1].edge)continue;var b=m.edge.prev.shape.tangentInEnd(),q=m.pt.translate(b),D=m.edge.shape.tangentInStart(),w=m.pt.translate(D),O=q.leftTo(i),A=w.leftTo(i);(O&&!A||!O&&A)&&E++}else if(m.pt.equalTo(m.edge.shape.end)){if(U>0&&m.pt.equalTo(p[U-1].pt)&&m.edge.next===p[U-1].edge)continue;var L=m.edge.next.shape.tangentInStart(),N=m.pt.translate(L),P=m.edge.shape.tangentInEnd(),Q=m.pt.translate(P),R=N.leftTo(i),B=Q.leftTo(i);(R&&!B||!R&&B)&&E++}else if(m.edge.shape instanceof t)E++;else{var G=m.edge.shape.box;e.Utils.EQ(m.pt.y,G.ymin)||e.Utils.EQ(m.pt.y,G.ymax)||E++}}return E%2==1?e.INSIDE:e.OUTSIDE}};"},"hash":"78e96b5ddbfa3f6c47caa24a9f28f80a","cacheData":{"env":{}}}