X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_MultiRotation.cpp;h=726ffe4dd5e847feac88b6994b2baf7b182645fc;hb=64fc7e4fdd63997ec7a502b233ef5f88186d5bbb;hp=126c2fe5986e47adb0e7a2240fed8a2ccd62908c;hpb=e67f27dc909fe58f932c551e030319ae0930db6e;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_MultiRotation.cpp b/src/SketchPlugin/SketchPlugin_MultiRotation.cpp old mode 100644 new mode 100755 index 126c2fe59..726ffe4dd --- a/src/SketchPlugin/SketchPlugin_MultiRotation.cpp +++ b/src/SketchPlugin/SketchPlugin_MultiRotation.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -37,10 +36,7 @@ void SketchPlugin_MultiRotation::initAttributes() data()->addAttribute(NUMBER_OF_COPIES_ID(), ModelAPI_AttributeInteger::typeId()); data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefList::typeId()); data()->addAttribute(SketchPlugin_Constraint::ENTITY_B(), ModelAPI_AttributeRefList::typeId()); - AttributeSelectionListPtr aSelection = - std::dynamic_pointer_cast(data()->addAttribute( - ROTATION_LIST_ID(), ModelAPI_AttributeSelectionList::typeId())); - aSelection->setSelectionType("EDGE"); + data()->addAttribute(ROTATION_LIST_ID(), ModelAPI_AttributeRefList::typeId()); ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), SketchPlugin_Constraint::ENTITY_A()); ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), SketchPlugin_Constraint::ENTITY_B()); } @@ -53,7 +49,7 @@ void SketchPlugin_MultiRotation::execute() return; } - AttributeSelectionListPtr aRotationObjectRefs = selectionList(ROTATION_LIST_ID()); + AttributeRefListPtr aRotationObjectRefs = reflist(ROTATION_LIST_ID()); int aNbCopies = integer(NUMBER_OF_COPIES_ID())->value(); // Obtain center and angle of rotation @@ -84,20 +80,20 @@ void SketchPlugin_MultiRotation::execute() aRefListOfRotated->size() / aRefListOfShapes->size() - 1 : 0; std::list anInitialList = aRefListOfShapes->list(); std::list aTargetList = aRefListOfRotated->list(); - std::list anAddition; + std::list anAddition; std::vector isUsed(anInitialList.size(), false); // collect new items and check the items to remove for(int anInd = 0; anInd < aRotationObjectRefs->size(); anInd++) { - std::shared_ptr aSelect = aRotationObjectRefs->value(anInd); + ObjectPtr anObject = aRotationObjectRefs->object(anInd); std::list::const_iterator anIt = anInitialList.begin(); std::vector::iterator aUsedIt = isUsed.begin(); for (; anIt != anInitialList.end(); anIt++, aUsedIt++) - if (*anIt == aSelect->context()) { + if (*anIt == anObject) { *aUsedIt = true; break; } if (anIt == anInitialList.end()) - anAddition.push_back(aSelect->context()); + anAddition.push_back(anObject); } // remove unused items std::list::iterator anInitIter = anInitialList.begin(); @@ -170,7 +166,7 @@ void SketchPlugin_MultiRotation::execute() aRefListOfRotated->append(*aTargetIter); } // add new items - std::list::iterator anAddIter = anAddition.begin(); + std::list::iterator anAddIter = anAddition.begin(); for (; anAddIter != anAddition.end(); anAddIter++) { aRefListOfShapes->append(*anAddIter); aRefListOfRotated->append(*anAddIter); @@ -281,7 +277,7 @@ void SketchPlugin_MultiRotation::rotateFeature( void SketchPlugin_MultiRotation::attributeChanged(const std::string& theID) { if (theID == ROTATION_LIST_ID()) { - AttributeSelectionListPtr aRotationObjectRefs = selectionList(ROTATION_LIST_ID()); + AttributeRefListPtr aRotationObjectRefs = reflist(ROTATION_LIST_ID()); if (aRotationObjectRefs->size() == 0) { int aNbCopies = integer(NUMBER_OF_COPIES_ID())->value(); // Clear list of objects