Salome HOME
Merge branch 'Dev_2.1.0' of salome:modules/shaper into Dev_2.1.0
[modules/shaper.git] / src / GeomAPI / GeomAPI_Pln.cpp
index cee05500816e80885f7f4e5fd7cf6a02fe4be594..dfb7e9bd773534d588c2a355cf7188eaf134c743 100644 (file)
@@ -1,8 +1,11 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 // File:        GeomAPI_Pln.cpp
 // Created:     23 Apr 2014
 // Author:      Mikhail PONIKAROV
 
 #include<GeomAPI_Pln.h>
+#include <GeomAPI_Ax3.h>
 #include <GeomAPI_Pnt.h>
 #include <GeomAPI_Dir.h>
 
 
 using namespace std;
 
+GeomAPI_Pln::GeomAPI_Pln(const std::shared_ptr<GeomAPI_Ax3>& theAxis)
+: GeomAPI_Interface(new gp_Ax3(theAxis->impl<gp_Ax3>()))
+{
+}
+
 GeomAPI_Pln::GeomAPI_Pln(const std::shared_ptr<GeomAPI_Pnt>& thePoint,
                          const std::shared_ptr<GeomAPI_Dir>& theNormal)
     : GeomAPI_Interface(new gp_Pln(thePoint->impl<gp_Pnt>(), theNormal->impl<gp_Dir>()))
@@ -37,3 +45,14 @@ void GeomAPI_Pln::coefficients(double& theA, double& theB, double& theC, double&
 {
   impl<gp_Pln>().Coefficients(theA, theB, theC, theD);
 }
+
+bool GeomAPI_Pln::isCoincident(const std::shared_ptr<GeomAPI_Pln> thePlane, const double theTolerance)
+{
+  if(!thePlane.get()) {
+    return false;
+  }
+
+  const gp_Pln& aMyPln = impl<gp_Pln>();
+  const gp_Pln& anOtherPln = thePlane->impl<gp_Pln>();
+  return (aMyPln.Contains(anOtherPln.Location(), theTolerance) && aMyPln.Axis().IsParallel(anOtherPln.Axis(), theTolerance));
+}