X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Placement.cpp;h=96b9d01fcecd6a7ac42e801ab21d23d3e610b5ee;hb=2714903267d23cd0c81166c506fb3edd1e069d40;hp=496abeb0a42122e4f4b061d26e31fcc28d6907a5;hpb=d34842c50d5f335cca443c78910c16c54139c7d0;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Placement.cpp b/src/FeaturesPlugin/FeaturesPlugin_Placement.cpp index 496abeb0a..96b9d01fc 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Placement.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_Placement.cpp @@ -1,8 +1,22 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> - -// File: FeaturesPlugin_Placement.cpp -// Created: 2 Dec 2014 -// Author: Artem ZHIDKOV +// Copyright (C) 2014-2017 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 "FeaturesPlugin_Placement.h" @@ -20,10 +34,8 @@ #include #include -#define _MODIFIEDF_TAG 1 -#define _MODIFIEDE_TAG 2 -#define _MODIFIEDV_TAG 3 -#define _FACE 4 +#include + FeaturesPlugin_Placement::FeaturesPlugin_Placement() { } @@ -31,7 +43,7 @@ FeaturesPlugin_Placement::FeaturesPlugin_Placement() void FeaturesPlugin_Placement::initAttributes() { - AttributeSelectionListPtr aSelection = + AttributeSelectionListPtr aSelection = std::dynamic_pointer_cast(data()->addAttribute( OBJECTS_LIST_ID(), ModelAPI_AttributeSelectionList::typeId())); @@ -51,7 +63,8 @@ void FeaturesPlugin_Placement::execute() return; } for(int anObjectsIndex = 0; anObjectsIndex < anObjectsSelList->size(); anObjectsIndex++) { - std::shared_ptr anObjectAttr = anObjectsSelList->value(anObjectsIndex); + std::shared_ptr anObjectAttr = + anObjectsSelList->value(anObjectsIndex); std::shared_ptr anObject = anObjectAttr->value(); if(!anObject.get()) { // may be for not-activated parts eraseResults(); @@ -146,7 +159,8 @@ void FeaturesPlugin_Placement::execute() for(ListOfShape::iterator anObjectsIt = anObjects.begin(); anObjectsIt != anObjects.end(); anObjectsIt++, aContext++) { - if ((*aContext)->groupName() == ModelAPI_ResultPart::group()) { // for part results just set transformation + // for part results just set transformation + if ((*aContext)->groupName() == ModelAPI_ResultPart::group()) { ResultPartPtr anOrigin = std::dynamic_pointer_cast(*aContext); ResultPartPtr aResultPart = document()->copyPart(anOrigin, data(), aResultIndex); aResultPart->setTrsf(aContextRes, aTrsf); @@ -173,8 +187,9 @@ void FeaturesPlugin_Placement::execute() } //LoadNamingDS - std::shared_ptr aResultBody = document()->createBody(data(), aResultIndex); - LoadNamingDS(aTransformAlgo, aResultBody, aBaseShape); + std::shared_ptr aResultBody = + document()->createBody(data(), aResultIndex); + loadNamingDS(aTransformAlgo, aResultBody, aBaseShape); setResult(aResultBody, aResultIndex); } aResultIndex++; @@ -185,18 +200,17 @@ void FeaturesPlugin_Placement::execute() } //============================================================================ -void FeaturesPlugin_Placement::LoadNamingDS(GeomAlgoAPI_Transform& theTransformAlgo, +void FeaturesPlugin_Placement::loadNamingDS(GeomAlgoAPI_Transform& theTransformAlgo, std::shared_ptr theResultBody, - std::shared_ptr theSlaveObject) + std::shared_ptr theBaseShape) { //load result - theResultBody->storeModified(theSlaveObject, theTransformAlgo.shape()); // the initial Slave, the resulting Slave + theResultBody->storeModified(theBaseShape, theTransformAlgo.shape()); + std::string aPlacedName = "Placed"; std::shared_ptr aSubShapes = theTransformAlgo.mapOfSubShapes(); - // put modifed faces in DF - std::string aModName = "Modified"; - theResultBody->loadAndOrientModifiedShapes(&theTransformAlgo, - theSlaveObject, _FACE, - _MODIFIEDF_TAG, aModName, *aSubShapes.get()); + FeaturesPlugin_Tools::storeModifiedShapes(theTransformAlgo, theResultBody, + theBaseShape, 1, 2, 3, aPlacedName, + *aSubShapes.get()); }