X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_LengthDimension.cpp;h=2eecd66c1e8331b9f3e1a77fab5b1640b4f3cf90;hb=ce291e8f0b7c7dd9a904ff2d49f969722bd42c86;hp=cee80b8b9b29ca6ad1c5abf0738c51feaf654e7d;hpb=1400539941b7fe032bf5a7da6b9c0df69892c38f;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_LengthDimension.cpp b/src/SketcherPrs/SketcherPrs_LengthDimension.cpp index cee80b8b9..2eecd66c1 100644 --- a/src/SketcherPrs/SketcherPrs_LengthDimension.cpp +++ b/src/SketcherPrs/SketcherPrs_LengthDimension.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SketcherPrs_LengthDimension.h" @@ -94,7 +93,7 @@ void updateArrows(Handle(Prs3d_DimensionAspect) theDimAspect, theDimAspect->SetExtensionSize( (theTextSize / aViewerScale + SketcherPrs_Tools::getArrowSize()) / 2.0); } - theDimAspect->TextAspect()->SetFont(Config_PropManager::string(SKETCH_TAB_NAME, + theDimAspect->TextAspect()->SetFont(Config_PropManager::string("Visualization", "dimension_font").c_str()); theDimAspect->SetArrowTailSize(theDimAspect->ArrowAspect()->Length()); @@ -110,10 +109,10 @@ static const gp_Pln MyDefPln(gp_Pnt(0,0,0), gp_Dir(0,0,1)); IMPLEMENT_STANDARD_RTTIEXT(SketcherPrs_LengthDimension, AIS_LengthDimension); SketcherPrs_LengthDimension::SketcherPrs_LengthDimension(ModelAPI_Feature* theConstraint, - const std::shared_ptr& thePlane) + SketchPlugin_Sketch* theSketcher) : AIS_LengthDimension(MyDefStart, MyDefEnd, MyDefPln), myConstraint(theConstraint), - mySketcherPlane(thePlane), + mySketcher(theSketcher), myFirstPoint(MyDefStart), mySecondPoint(MyDefEnd), myPlane(MyDefPln), @@ -125,9 +124,9 @@ SketcherPrs_LengthDimension::SketcherPrs_LengthDimension(ModelAPI_Feature* theCo #ifdef OCCT_28850_FIXED if (theConstraint->getKind() == SketchPlugin_ConstraintDistanceHorizontal::ID()) - SetDirection(mySketcherPlane->dirX()->impl(), true); + SetDirection(plane()->dirX()->impl(), true); else if (theConstraint->getKind() == SketchPlugin_ConstraintDistanceVertical::ID()) - SetDirection(mySketcherPlane->dirY()->impl(), true); + SetDirection(plane()->dirY()->impl(), true); #endif } @@ -149,16 +148,21 @@ void SketcherPrs_LengthDimension::Compute( const Standard_Integer theMode) { gp_Pnt aPnt1, aPnt2; - bool aReadyToDisplay = readyToDisplay(myConstraint, mySketcherPlane, aPnt1, aPnt2); + bool aReadyToDisplay = readyToDisplay(myConstraint, plane(), aPnt1, aPnt2); if (aReadyToDisplay) { myFirstPoint = aPnt1; mySecondPoint = aPnt2; myDistance = SketcherPrs_Tools::getFlyoutDistance(myConstraint); - myPlane = gp_Pln(mySketcherPlane->impl()); + myPlane = gp_Pln(plane()->impl()); DataPtr aData = myConstraint->data(); - AttributeDoublePtr anAttributeValue = aData->real(SketchPlugin_Constraint::VALUE()); + AttributeDoublePtr anAttributeValue; + if (myConstraint->getKind() == SketchPlugin_ConstraintDistanceHorizontal::ID() || + myConstraint->getKind() == SketchPlugin_ConstraintDistanceVertical::ID()) + anAttributeValue = aData->real(SketchPlugin_ConstraintDistanceAlongDir::DISTANCE_VALUE_ID()); + else + anAttributeValue = aData->real(SketchPlugin_Constraint::VALUE()); myValue.init(anAttributeValue); } @@ -306,6 +310,6 @@ void SketcherPrs_LengthDimension::ComputeSelection(const Handle(SelectMgr_Select return; } } - SetSelToleranceForText2d(SketcherPrs_Tools::getTextHeight()); + SetSelToleranceForText2d(SketcherPrs_Tools::getArrowSize()/5.); AIS_LengthDimension::ComputeSelection(aSelection, aMode); }