float distPointToLine(Vec P,Vec B, Vec M) { // calculates the distance from a point to a line segment // SEE DOCUMENTATION: http://www.magic-software.com/Documentation/DistancePointLine.pdf float t0=VecSkalar(M,VecSub(P,B))/VecSkalar(M,M); float D; if (t0<=0) { D=VecLen(VecSub(P,B)); } else if (t0<1) { D=VecLen(VecSub(P,VecAdd(B,VecMul(t0,M)))); } else { D=VecLen(VecSub(P,VecAdd(B,M))); } return D; }