Salome HOME
Add ModelAPI_AttributeIntArray to SWIG
[modules/shaper.git] / src / GeomAPI / GeomAPI_Lin2d.cpp
index 0a65590fa789f6f1a22ded9f7b1688563170cdb7..6b53b8fdc8abbee47052c4ad5d4b75e32e18e020 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <GeomAPI_Lin2d.h>
 #include <GeomAPI_Pnt2d.h>
+#include <GeomAPI_Dir2d.h>
 
 #include <gp_Dir2d.hxx>
 #include <gp_Lin2d.hxx>
@@ -14,7 +15,7 @@
 
 #include <IntAna2d_AnaIntersection.hxx>
 
-#define MY_LIN2D static_cast<gp_Lin2d*>(myImpl)
+#define MY_LIN2D implPtr<gp_Lin2d>()
 
 static gp_Lin2d* newLine2d(const double theStartX, const double theStartY, const double theEndX,
                            const double theEndY)
@@ -36,6 +37,18 @@ GeomAPI_Lin2d::GeomAPI_Lin2d(const std::shared_ptr<GeomAPI_Pnt2d>& theStart,
 {
 }
 
+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()));
+}
+
+std::shared_ptr<GeomAPI_Dir2d> GeomAPI_Lin2d::direction()
+{
+  const gp_Dir2d& aDir = impl<gp_Lin2d>().Direction();
+  return std::shared_ptr<GeomAPI_Dir2d>(new GeomAPI_Dir2d(aDir.X(), aDir.Y()));
+}
+
 double GeomAPI_Lin2d::distance(const std::shared_ptr<GeomAPI_Pnt2d>& theOther) const
 {
   return MY_LIN2D->Distance(theOther->impl<gp_Pnt2d>());