Salome HOME
Mantis issue 0021414: There is a difference between vectors and other edges in Geometry.
[modules/geom.git] / src / GEOMImpl / GEOMImpl_BoxDriver.cxx
index a3145b83c590771bbf95f3beb98959ed969af51f..d150a3e858847767154b231264fb9ba3cc361e5d 100644 (file)
@@ -39,6 +39,8 @@
 
 #include <Precision.hxx>
 
+#include<cmath>
+
 //=======================================================================
 //function : GetID
 //purpose  :
@@ -91,9 +93,9 @@ Standard_Integer GEOMImpl_BoxDriver::Execute(TFunction_Logbook& log) const
       gp_Pnt P1 = BRep_Tool::Pnt(TopoDS::Vertex(aShape1));
       gp_Pnt P2 = BRep_Tool::Pnt(TopoDS::Vertex(aShape2));
 
-      if (P1.X() - P2.X() < Precision::Confusion() || 
-          P1.Y() - P2.Y() < Precision::Confusion() || 
-          P1.Z() - P2.Z() < Precision::Confusion() ) {
+      if (std::abs(P1.X() - P2.X()) < Precision::Confusion() || 
+          std::abs(P1.Y() - P2.Y()) < Precision::Confusion() || 
+          std::abs(P1.Z() - P2.Z()) < Precision::Confusion() ) {
         StdFail_NotDone::Raise("Box can not be created, the points belong both to one of the OXY, OYZ or OZX planes");
         return 0;
       }