-GeomAPI_Lin2d::GeomAPI_Lin2d(const double theStartX, const double theStartY,
- const double theEndX, const double theEndY)
- : GeomAPI_Interface(newLine2d(theStartX, theStartY, theEndX, theEndY))
-{}
+GeomAPI_Lin2d::GeomAPI_Lin2d(const double theStartX, const double theStartY, const double theEndX,
+ const double theEndY)
+ : GeomAPI_Interface(newLine2d(theStartX, theStartY, theEndX, theEndY))
+{
+}
+
+GeomAPI_Lin2d::GeomAPI_Lin2d(const std::shared_ptr<GeomAPI_Pnt2d>& theStart,
+ const std::shared_ptr<GeomAPI_Pnt2d>& theEnd)
+ : GeomAPI_Interface(newLine2d(theStart->x(), theStart->y(), theEnd->x(), theEnd->y()))
+{
+}
+
+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();
+ return std::shared_ptr<GeomAPI_Pnt2d>(new GeomAPI_Pnt2d(aLoc.X(), aLoc.Y()));
+}