Salome HOME
Apply widget value change by enter/tab event.
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_ConstraintAngle.cpp
index 693fa9c848a67fe9c8600f7a22253076b7ca4cde..c73ae7d175e339714dcab36fb25f1eeefc3deb8c 100644 (file)
@@ -154,15 +154,20 @@ double SketchPlugin_ConstraintAngle::calculateAngle()
   std::shared_ptr<GeomAPI_Pnt2d> aStartB = aPointB1->pnt();
   std::shared_ptr<GeomAPI_Pnt2d> aEndB   = aPointB2->pnt();
 
+  double aDist[2][2] = {
+      { anInter->distance(aStartA), anInter->distance(aEndA) },
+      { anInter->distance(aStartB), anInter->distance(aEndB) }
+  };
+
   // Directions of lines
-  if (anInter->distance(aEndA) < tolerance)
+  if (aDist[0][0] > aDist[0][1])
     aEndA = aStartA;
-  if (anInter->distance(aEndB) < tolerance)
+  if (aDist[1][0] > aDist[1][1])
     aEndB = aStartB;
   std::shared_ptr<GeomAPI_Dir2d> aDirA(new GeomAPI_Dir2d(aEndA->xy()->decreased(anInter->xy())));
   std::shared_ptr<GeomAPI_Dir2d> aDirB(new GeomAPI_Dir2d(aEndB->xy()->decreased(anInter->xy())));
 
-  anAngle = aDirA->angle(aDirB) * 180.0 / PI;
+  anAngle = fabs(aDirA->angle(aDirB)) * 180.0 / PI;
   return anAngle;
 }