X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintAngle.cpp;h=c73ae7d175e339714dcab36fb25f1eeefc3deb8c;hb=c7a5ff20294ae8270bfb9120b8887f0c9959d658;hp=9fbe2d84fa4b21b38b963c4cc65e681416124845;hpb=c98934f28850127f6ff336b4d7ef82b82bbcd2ef;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp b/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp index 9fbe2d84f..c73ae7d17 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintAngle.cpp @@ -154,16 +154,21 @@ 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; - return fabs(anAngle); + anAngle = fabs(aDirA->angle(aDirB)) * 180.0 / PI; + return anAngle; } void SketchPlugin_ConstraintAngle::move(double theDeltaX, double theDeltaY)