X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintDistance.cpp;h=a119433d36f7f09a5b0cd801cd8811ce1f56505b;hb=74e9ba33303efc2282db1261706e904efa36b255;hp=3891a2c6cc5eed9a0a013533322e3f5280036d11;hpb=c8a838ed76da0c6784bcd1ee67ef9af7da994bf7;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintDistance.cpp b/src/SketchPlugin/SketchPlugin_ConstraintDistance.cpp index 3891a2c6c..a119433d3 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintDistance.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintDistance.cpp @@ -80,10 +80,11 @@ bool SketchPlugin_ConstraintDistance::compute(const std::string& theAttributeId) return false; DataPtr aData = data(); + std::shared_ptr aPlane = SketchPlugin_Sketch::plane(sketch()); std::shared_ptr aPoint_A = SketcherPrs_Tools::getFeaturePoint( - aData, SketchPlugin_Constraint::ENTITY_A()); + aData, SketchPlugin_Constraint::ENTITY_A(), aPlane); std::shared_ptr aPoint_B = SketcherPrs_Tools::getFeaturePoint( - aData, SketchPlugin_Constraint::ENTITY_B()); + aData, SketchPlugin_Constraint::ENTITY_B(), aPlane); std::shared_ptr aPnt_A; std::shared_ptr aPnt_B; @@ -133,11 +134,6 @@ AISObjectPtr SketchPlugin_ConstraintDistance::getAISObject(AISObjectPtr thePrevi if (!anAIS) { anAIS = SketcherPrs_Factory::lengthDimensionConstraint(this, sketch()->coordinatePlane()); } - - // Set color from preferences - std::vector aRGB = Config_PropManager::color("Visualization", "sketch_dimension_color", - SKETCH_DIMENSION_COLOR); - anAIS->setColor(aRGB[0], aRGB[1], aRGB[2]); return anAIS; } @@ -150,10 +146,11 @@ void SketchPlugin_ConstraintDistance::move(double theDeltaX, double theDeltaY) // Recalculate a shift of flyout point in terms of local coordinates std::shared_ptr aDir(new GeomAPI_XY(theDeltaX, theDeltaY)); + std::shared_ptr aPlane = SketchPlugin_Sketch::plane(sketch()); std::shared_ptr aPointA = SketcherPrs_Tools::getFeaturePoint( - data(), SketchPlugin_Constraint::ENTITY_A()); + data(), SketchPlugin_Constraint::ENTITY_A(), aPlane); std::shared_ptr aPointB = SketcherPrs_Tools::getFeaturePoint( - data(), SketchPlugin_Constraint::ENTITY_B()); + data(), SketchPlugin_Constraint::ENTITY_B(), aPlane); std::shared_ptr aStartPnt; std::shared_ptr aEndPnt; @@ -190,15 +187,16 @@ void SketchPlugin_ConstraintDistance::move(double theDeltaX, double theDeltaY) myFlyoutUpdate = false; } -double SketchPlugin_ConstraintDistance::calculateCurrentDistance() const +double SketchPlugin_ConstraintDistance::calculateCurrentDistance() { double aDistance = -1.; std::shared_ptr aData = data(); + std::shared_ptr aPlane = SketchPlugin_Sketch::plane(sketch()); std::shared_ptr aPointA = - SketcherPrs_Tools::getFeaturePoint(aData, SketchPlugin_Constraint::ENTITY_A()); + SketcherPrs_Tools::getFeaturePoint(aData, SketchPlugin_Constraint::ENTITY_A(), aPlane); std::shared_ptr aPointB = - SketcherPrs_Tools::getFeaturePoint(aData, SketchPlugin_Constraint::ENTITY_B()); + SketcherPrs_Tools::getFeaturePoint(aData, SketchPlugin_Constraint::ENTITY_B(), aPlane); if (aPointA.get() && aPointB.get()) { // both points aDistance = aPointA->pnt()->distance(aPointB->pnt()); @@ -246,10 +244,11 @@ void SketchPlugin_ConstraintDistance::attributeChanged(const std::string& theID) attribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT())); std::shared_ptr aFlyoutPnt = aFlyoutAttr->pnt(); + std::shared_ptr aPlane = SketchPlugin_Sketch::plane(sketch()); std::shared_ptr aPointA = SketcherPrs_Tools::getFeaturePoint( - data(), SketchPlugin_Constraint::ENTITY_A()); + data(), SketchPlugin_Constraint::ENTITY_A(), aPlane); std::shared_ptr aPointB = SketcherPrs_Tools::getFeaturePoint( - data(), SketchPlugin_Constraint::ENTITY_B()); + data(), SketchPlugin_Constraint::ENTITY_B(), aPlane); std::shared_ptr aStartPnt; std::shared_ptr aEndPnt; @@ -285,3 +284,15 @@ void SketchPlugin_ConstraintDistance::attributeChanged(const std::string& theID) } } +bool SketchPlugin_ConstraintDistance::customisePresentation(ResultPtr theResult, + AISObjectPtr thePrs, + std::shared_ptr theDefaultPrs) +{ + bool isCustomized = false; + std::vector aRGB = Config_PropManager::color("Visualization", "sketch_dimension_color", + SKETCH_DIMENSION_COLOR); + isCustomized = thePrs->setColor(aRGB[0], aRGB[1], aRGB[2]); + + return isCustomized; +} +