X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_Angle.cpp;h=1e35ac4701f089c30dd7a1496e5eb70186596f93;hb=a5746a7f8fd8bcd555fb16f98e312c86ca1210da;hp=40133d9cb8124f1c7ce76cea27fd39cb68cf60df;hpb=64fc7e4fdd63997ec7a502b233ef5f88186d5bbb;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_Angle.cpp b/src/SketcherPrs/SketcherPrs_Angle.cpp index 40133d9cb..1e35ac470 100644 --- a/src/SketcherPrs/SketcherPrs_Angle.cpp +++ b/src/SketcherPrs/SketcherPrs_Angle.cpp @@ -82,10 +82,15 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP TopoDS_Edge aEdge2 = TopoDS::Edge(aTEdge2); SetMeasuredGeometry(aEdge1, aEdge2); - gp_Pnt aCenter = CenterPoint(); + const gp_Pnt& aCenter = CenterPoint(); + const gp_Pnt& aFirst = FirstPoint(); + const gp_Pnt& aSecond = SecondPoint(); - gp_Pnt aFLyPnt(aFlyoutPnt->x(), aFlyoutPnt->y(), aFlyoutPnt->z()); - double aDist = aCenter.Distance(aFLyPnt); + gp_Dir aBisector((aFirst.XYZ() + aSecond.XYZ()) * 0.5 - aCenter.XYZ()); + + gp_Pnt aFlyPnt(aFlyoutPnt->x(), aFlyoutPnt->y(), aFlyoutPnt->z()); + gp_XYZ aFlyDir = aFlyPnt.XYZ() - aCenter.XYZ(); + double aDist = aFlyDir.Dot(aBisector.XYZ()); SetFlyout(aDist); // Angle value is in degrees