Salome HOME
Issue #2059 point in sketch is created not on selected line of external sketchPlane...
[modules/shaper.git] / src / GeomAPI / GeomAPI_Lin2d.cpp
index 6b53b8fdc8abbee47052c4ad5d4b75e32e18e020..3f956050f4d6bcb7b50b15b77f6fe99981a6ebb5 100644 (file)
@@ -25,6 +25,7 @@ static gp_Lin2d* newLine2d(const double theStartX, const double theStartY, const
   return new gp_Lin2d(aStart, gp_Dir2d(aDir));
 }
 
+
 GeomAPI_Lin2d::GeomAPI_Lin2d(const double theStartX, const double theStartY, const double theEndX,
                              const double theEndY)
     : GeomAPI_Interface(newLine2d(theStartX, theStartY, theEndX, theEndY))
@@ -37,6 +38,14 @@ GeomAPI_Lin2d::GeomAPI_Lin2d(const std::shared_ptr<GeomAPI_Pnt2d>& theStart,
 {
 }
 
+GeomAPI_Lin2d::GeomAPI_Lin2d(const std::shared_ptr<GeomAPI_Pnt2d>& theOrigin,
+                             const std::shared_ptr<GeomAPI_Dir2d>& theDirection)
+    : GeomAPI_Interface(newLine2d(theOrigin->x(), theOrigin->y(),
+        theOrigin->x() + theDirection->x(), theOrigin->y() + theDirection->y()))
+{
+}
+
+
 std::shared_ptr<GeomAPI_Pnt2d> GeomAPI_Lin2d::location()
 {
   gp_Pnt2d aLoc = impl<gp_Lin2d>().Location();
@@ -94,5 +103,6 @@ std::shared_ptr<GeomAPI_Pnt2d> GeomAPI_Lin2d::shiftedLocation(double theShift) c
   aVec.Reverse();
   aVec.Scale(theShift);
   gp_Lin2d aLin = MY_LIN2D->Translated(aVec);
-  return std::shared_ptr<GeomAPI_Pnt2d>(new GeomAPI_Pnt2d(aLin.Location().X(), aLin.Location().Y()));
+  return std::shared_ptr<GeomAPI_Pnt2d>(new GeomAPI_Pnt2d(aLin.Location().X(),
+                                                          aLin.Location().Y()));
 }