X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintPerpendicular.cpp;h=c63555da559034615fbe754dc73a63acd7cc3e17;hb=b69a4c4ae0f7eb0e9c17d3db0229b04b1fe77ecf;hp=826fc50b8fec7bb938f4bc1f1441d02acd851e8c;hpb=a85c123c5bc7c48588a5cd648110d66ae1544f8c;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintPerpendicular.cpp b/src/SketchPlugin/SketchPlugin_ConstraintPerpendicular.cpp index 826fc50b8..c63555da5 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintPerpendicular.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintPerpendicular.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + // File: SketchPlugin_ConstraintPerpendicular.cpp // Created: 26 May 2014 // Author: Artem ZHIDKOV @@ -25,7 +27,6 @@ void SketchPlugin_ConstraintPerpendicular::initAttributes() { data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefAttr::type()); data()->addAttribute(SketchPlugin_Constraint::ENTITY_B(), ModelAPI_AttributeRefAttr::type()); - data()->addAttribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT(), GeomDataAPI_Point2D::type()); } void SketchPlugin_ConstraintPerpendicular::execute() @@ -37,38 +38,39 @@ AISObjectPtr SketchPlugin_ConstraintPerpendicular::getAISObject(AISObjectPtr the if (!sketch()) return thePrevious; - boost::shared_ptr aData = data(); - boost::shared_ptr anAttr1 = - boost::dynamic_pointer_cast(aData->attribute(SketchPlugin_Constraint::ENTITY_A())); - boost::shared_ptr anAttr2 = - boost::dynamic_pointer_cast(aData->attribute(SketchPlugin_Constraint::ENTITY_B())); - if (!anAttr1 || !anAttr1->isObject() || - !anAttr2 || !anAttr2->isObject()) + std::shared_ptr aData = data(); + std::shared_ptr anAttr1 = std::dynamic_pointer_cast< + ModelAPI_AttributeRefAttr>(aData->attribute(SketchPlugin_Constraint::ENTITY_A())); + std::shared_ptr anAttr2 = std::dynamic_pointer_cast< + ModelAPI_AttributeRefAttr>(aData->attribute(SketchPlugin_Constraint::ENTITY_B())); + if (!anAttr1 || !anAttr1->isObject() || !anAttr2 || !anAttr2->isObject()) return thePrevious; FeaturePtr aFeature = ModelAPI_Feature::feature(anAttr1->object()); if (!aFeature) return thePrevious; - boost::shared_ptr aLine1Feature = - boost::dynamic_pointer_cast(aFeature); + std::shared_ptr aLine1Feature = + std::dynamic_pointer_cast(aFeature); aFeature = ModelAPI_Feature::feature(anAttr2->object()); if (!aFeature) return thePrevious; - boost::shared_ptr aLine2Feature = - boost::dynamic_pointer_cast(aFeature); + std::shared_ptr aLine2Feature = + std::dynamic_pointer_cast(aFeature); if (!aLine1Feature || !aLine2Feature) return thePrevious; - boost::shared_ptr aPlane = sketch()->plane(); - boost::shared_ptr aLine1, aLine2; - boost::shared_ptr aConst1 = - boost::dynamic_pointer_cast(anAttr1->object()); - if (aConst1) aLine1 = aConst1->shape(); - boost::shared_ptr aConst2 = - boost::dynamic_pointer_cast(anAttr2->object()); - if (aConst2) aLine2 = aConst2->shape(); + std::shared_ptr aPlane = sketch()->plane(); + std::shared_ptr aLine1, aLine2; + std::shared_ptr aConst1 = std::dynamic_pointer_cast< + ModelAPI_ResultConstruction>(anAttr1->object()); + if (aConst1) + aLine1 = aConst1->shape(); + std::shared_ptr aConst2 = std::dynamic_pointer_cast< + ModelAPI_ResultConstruction>(anAttr2->object()); + if (aConst2) + aLine2 = aConst2->shape(); AISObjectPtr anAIS = thePrevious; if (!anAIS) @@ -76,19 +78,15 @@ AISObjectPtr SketchPlugin_ConstraintPerpendicular::getAISObject(AISObjectPtr the anAIS->createPerpendicular(aLine1, aLine2, aPlane); // Set color from preferences - std::vector aRGB = Config_PropManager::color("Visualization", "perpendicular_color", PERPENDICULAR_COLOR); + std::vector aRGB = Config_PropManager::color("Visualization", "perpendicular_color", + PERPENDICULAR_COLOR); anAIS->setColor(aRGB[0], aRGB[1], aRGB[2]); return anAIS; } void SketchPlugin_ConstraintPerpendicular::move(double theDeltaX, double theDeltaY) { - boost::shared_ptr aData = data(); - if (!aData->isValid()) - return; - - boost::shared_ptr aPoint = - boost::dynamic_pointer_cast(aData->attribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT())); - aPoint->setValue(aPoint->x() + theDeltaX, aPoint->y() + theDeltaY); + //Flyout point of the constraint follows it's features + return; }