From 8374715e1a00b4439facf05e3569b62755004160 Mon Sep 17 00:00:00 2001 From: nds Date: Mon, 28 Dec 2015 14:53:06 +0300 Subject: [PATCH] Special symbol for Angle/Radius. For consistency it sets the empty special symbol if a parameter is not used. --- src/SketcherPrs/SketcherPrs_Angle.cpp | 14 ++++++++++++++ src/SketcherPrs/SketcherPrs_Radius.cpp | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/SketcherPrs/SketcherPrs_Angle.cpp b/src/SketcherPrs/SketcherPrs_Angle.cpp index 1e35ac470..6304a51bd 100644 --- a/src/SketcherPrs/SketcherPrs_Angle.cpp +++ b/src/SketcherPrs/SketcherPrs_Angle.cpp @@ -26,6 +26,9 @@ IMPLEMENT_STANDARD_HANDLE(SketcherPrs_Angle, AIS_AngleDimension); IMPLEMENT_STANDARD_RTTIEXT(SketcherPrs_Angle, AIS_AngleDimension); +static const Standard_ExtCharacter MyEmptySymbol(' '); +static const Standard_ExtCharacter MySummSymbol(0x03A3); + SketcherPrs_Angle::SketcherPrs_Angle(ModelAPI_Feature* theConstraint, const std::shared_ptr& thePlane) : AIS_AngleDimension(gp_Pnt(0,0,0), gp_Pnt(1,0,0), gp_Pnt(0,1,0)), myConstraint(theConstraint), myPlane(thePlane) @@ -100,6 +103,17 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP myAspect->SetExtensionSize(myAspect->ArrowAspect()->Length()); myAspect->SetArrowTailSize(myAspect->ArrowAspect()->Length()); + AttributeDoublePtr aValue = myConstraint->data()->real(SketchPlugin_Constraint::VALUE()); + std::set aParams = aValue->usedParameters(); + if (aParams.size() > 0) { + SetSpecialSymbol(MySummSymbol); + SetDisplaySpecialSymbol(AIS_DSS_Before); + } + else { + SetSpecialSymbol(MyEmptySymbol); + SetDisplaySpecialSymbol(AIS_DSS_Before); + } + AIS_AngleDimension::Compute(thePresentationManager, thePresentation, theMode); } diff --git a/src/SketcherPrs/SketcherPrs_Radius.cpp b/src/SketcherPrs/SketcherPrs_Radius.cpp index 084660754..458bf517b 100644 --- a/src/SketcherPrs/SketcherPrs_Radius.cpp +++ b/src/SketcherPrs/SketcherPrs_Radius.cpp @@ -25,6 +25,9 @@ static const gp_Circ MyDefCirc(gp_Ax2(gp_Pnt(0,0,0), gp_Dir(0,0,1)), 1); IMPLEMENT_STANDARD_HANDLE(SketcherPrs_Radius, AIS_RadiusDimension); IMPLEMENT_STANDARD_RTTIEXT(SketcherPrs_Radius, AIS_RadiusDimension); +static const Standard_ExtCharacter MyEmptySymbol(' '); +static const Standard_ExtCharacter MySummSymbol(0x03A3); + SketcherPrs_Radius::SketcherPrs_Radius(ModelAPI_Feature* theConstraint, const std::shared_ptr& thePlane) : AIS_RadiusDimension(MyDefCirc), myConstraint(theConstraint), myPlane(thePlane) @@ -104,6 +107,17 @@ void SketcherPrs_Radius::Compute(const Handle(PrsMgr_PresentationManager3d)& the // The value of vertical aligment is sometimes changed myAspect->TextAspect()->SetVerticalJustification(Graphic3d_VTA_CENTER); + AttributeDoublePtr aValue = myConstraint->data()->real(SketchPlugin_Constraint::VALUE()); + std::set aParams = aValue->usedParameters(); + if (aParams.size() > 0) { + SetSpecialSymbol(MySummSymbol); + SetDisplaySpecialSymbol(AIS_DSS_Before); + } + else { + SetSpecialSymbol(MyEmptySymbol); + SetDisplaySpecialSymbol(AIS_DSS_Before); + } + AIS_RadiusDimension::Compute(thePresentationManager, thePresentation, theMode); } -- 2.39.2