X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fgeometry.cpp;h=055c581a652a7505e9a42a97c220649385ccfe30;hb=d00cd5f46252ca0fb3df6e8191dc75f8991b2aa2;hp=31c5257d8d0aa9f39c5924224f11d40359191d7e;hpb=fce575a51ba1f26418869c20e63b9f388e118ab6;p=architektonas diff --git a/src/geometry.cpp b/src/geometry.cpp index 31c5257..055c581 100644 --- a/src/geometry.cpp +++ b/src/geometry.cpp @@ -512,3 +512,15 @@ Point Geometry::NearestTo(Point point, Point p1, Point p2) return (l1 < l2 ? p1 : p2); } + +Vector Geometry::GetNormalOfPointAndLine(Point p, Line * l) +{ + Vector normal = Vector::Normal(l->p[0], l->p[1]); + normal.Unit(); + double dir = Vector::Dot(p - l->p[0], normal); + + if (dir < 0) + normal = -normal; + + return normal; +}