X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintAngle.cpp;h=c73ae7d175e339714dcab36fb25f1eeefc3deb8c;hb=c7a5ff20294ae8270bfb9120b8887f0c9959d658;hp=693fa9c848a67fe9c8600f7a22253076b7ca4cde;hpb=9b159dad1e76cd9671e776be60fc63663835b49c;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp b/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp index 693fa9c84..c73ae7d17 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp @@ -154,15 +154,20 @@ double SketchPlugin_ConstraintAngle::calculateAngle() std::shared_ptr aStartB = aPointB1->pnt(); std::shared_ptr 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 aDirA(new GeomAPI_Dir2d(aEndA->xy()->decreased(anInter->xy()))); std::shared_ptr 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; }