X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_ConstraintRigid.cpp;h=be9a3a8641123782d9e8fb3bad6fe498be74e65b;hb=cdbbde4803e9c320204d537d22af4ac7ef024962;hp=cd1aa6e73af6b86ad6483ff6cd319f96a2f0493b;hpb=85253719b1f5e630551c2590d23deab11db55fe1;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp b/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp index cd1aa6e73..be9a3a864 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintRigid.cpp @@ -1,11 +1,27 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> - -// File: SketchPlugin_ConstraintRigid.cpp -// Created: 13 Oct 2014 -// Author: Artem ZHIDKOV +// Copyright (C) 2014-2021 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// 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 +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "SketchPlugin_ConstraintRigid.h" #include "SketchPlugin_ConstraintParallel.h" +#include "SketchPlugin_Feature.h" + +#include #include #include @@ -19,7 +35,7 @@ SketchPlugin_ConstraintRigid::SketchPlugin_ConstraintRigid() void SketchPlugin_ConstraintRigid::initAttributes() { - data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefAttr::type()); + data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefAttr::typeId()); } void SketchPlugin_ConstraintRigid::execute() @@ -30,51 +46,5 @@ 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_parallel_color", - SKETCH_CONSTRAINT_COLOR); - - anAIS->setColor(aRGB[0], aRGB[1], aRGB[2]); - - return anAIS; + return SketcherPrs_Factory::rigidConstraint(this, sketch(), thePrevious); } \ No newline at end of file