X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI_Lin.cpp;h=348bf01a803c5b2d43e10934bc77c689c451aab3;hb=b5893b0a30fac08134c24de4565cb513a43affa6;hp=a9fe074d086af9cb2df9e840bde3c8aa070163bb;hpb=4507796772cdf8f63bc0bdb452b5013094fe7036;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI_Lin.cpp b/src/GeomAPI/GeomAPI_Lin.cpp index a9fe074d0..348bf01a8 100644 --- a/src/GeomAPI/GeomAPI_Lin.cpp +++ b/src/GeomAPI/GeomAPI_Lin.cpp @@ -101,7 +101,31 @@ const std::shared_ptr GeomAPI_Lin::project( const gp_XYZ& aPnt = thePoint->impl().XYZ(); double aParam = aDir.Dot(aPnt - aLoc); - gp_XYZ aResult = aPnt + aDir * aParam; + gp_XYZ aResult = aLoc + aDir * aParam; return std::shared_ptr(new GeomAPI_Pnt(aResult.X(), aResult.Y(), aResult.Z())); } +bool GeomAPI_Lin::contains(const std::shared_ptr thePoint, + const double theLinearTolerance) const +{ + if(!thePoint.get()) { + return false; + } + + return MY_LIN->Contains(thePoint->impl(), theLinearTolerance) == Standard_True; +} + +bool GeomAPI_Lin::isParallel(const std::shared_ptr theLin) const +{ + return MY_LIN->Direction().IsParallel(theLin->impl().Direction(), + Precision::Confusion()) == Standard_True; +} + +bool GeomAPI_Lin::isCoplanar(const std::shared_ptr theLin) const +{ + if(MY_LIN->SquareDistance(theLin->impl()) > Precision::Confusion()) { + return false; + } + + return true; +}