k.copy(c).addSelf(g);l.copy(b).addSelf(h);g=e.dot(h);h=l.subSelf(k).dot(h);g==0&&(console.log("Either infinite or no solutions!"),h==0?console.log("Its finite solutions."):console.log("Too bad, no solutions."));h/=g;if(h<0)returnc=Math.atan2(c.y-a.y,c.x-a.x),a=Math.atan2(b.y-a.y,b.x-a.x),c>a&&(a+=Math.PI*2),anglec=(c+a)/2,newTHREE.Vector2(-Math.cos(anglec),-Math.sin(anglec));returne.multiplyScalar(h).addSelf(k).subSelf(a).clone()}functionh(a){for(B=a.length;--B>=0;){T=B;R=B-1;R<0&&(R=a.length-
k.copy(c).addSelf(g);l.copy(b).addSelf(h);g=e.dot(h);h=l.subSelf(k).dot(h);g==0&&(console.log("Either infinite or no solutions!"),h==0?console.log("Its finite solutions."):console.log("Too bad, no solutions."));h/=g;if(h<0)returnc=Math.atan2(c.y-a.y,c.x-a.x),a=Math.atan2(b.y-a.y,b.x-a.x),c>a&&(a+=Math.PI*2),anglec=(c+a)/2,newTHREE.Vector2(-Math.cos(anglec),-Math.sin(anglec));returne.multiplyScalar(h).addSelf(k).subSelf(a).clone()}functionh(a){for(B=a.length;--B>=0;){T=B;R=B-1;R<0&&(R=a.length-