X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintRigid.cpp;h=6695a8813dd8f0b0b7b1be6929734e6e05d8be75;hb=51889d235a27d0ee4b3c3237d21d1ea621063580;hp=51f4b3a01eb49249bd9e9745f3975365977c48e2;hpb=4d8e5578a342503470e4dded487cd9148dc3fdfd;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp b/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp index 51f4b3a01..6695a8813 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp @@ -7,6 +7,8 @@ #include "SketchPlugin_ConstraintRigid.h" #include "SketchPlugin_ConstraintParallel.h" +#include + #include #include @@ -31,50 +33,10 @@ AISObjectPtr SketchPlugin_ConstraintRigid::getAISObject(AISObjectPtr thePrevious if (!sketch()) return thePrevious; - std::shared_ptr aData = data(); - std::shared_ptr anAttr = std::dynamic_pointer_cast< - ModelAPI_AttributeRefAttr>(aData->attribute(SketchPlugin_Constraint::ENTITY_A())); - if (!anAttr /*|| !anAttr->isObject()*/) - return thePrevious; - - std::shared_ptr aShape; - - if (anAttr->isObject()) { - std::shared_ptr aConst; - aConst = std::dynamic_pointer_cast(anAttr->object()); - - if (!aConst) - return thePrevious; - - std::shared_ptr aSketchFea = - std::dynamic_pointer_cast(ModelAPI_Feature::feature(aConst)); - if (aSketchFea.get() != NULL) { - if (aSketchFea->isExternal()) - return thePrevious; - } - aShape = aConst->shape(); - } - else { - std::shared_ptr aPointAttr = - std::dynamic_pointer_cast(anAttr->attr()); - if (!aPointAttr) - return thePrevious; - std::shared_ptr aPoint(sketch()->to3D(aPointAttr->x(), aPointAttr->y())); - aShape = GeomAlgoAPI_PointBuilder::point(aPoint); - } - AISObjectPtr anAIS = thePrevious; - if (!anAIS) - anAIS = AISObjectPtr(new GeomAPI_AISObject); - - std::shared_ptr aPlane = sketch()->plane(); - anAIS->createFixed(aShape, aPlane); - - // Set color from preferences - std::vector aRGB = Config_PropManager::color("Visualization", "sketch_constraint_color", - SKETCH_CONSTRAINT_COLOR); - - anAIS->setColor(aRGB[0], aRGB[1], aRGB[2]); + if (!anAIS) { + anAIS = SketcherPrs_Factory::rigidConstraint(this, sketch()->coordinatePlane()); + } return anAIS; } \ No newline at end of file