1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 // File: FeaturesAPI_RemoveSubShapes.cpp
4 // Created: 09 June 2016
5 // Author: Dmitry Bobylev
7 #include "FeaturesAPI_RemoveSubShapes.h"
9 #include <ModelHighAPI_Dumper.h>
10 #include <ModelHighAPI_Tools.h>
12 //==================================================================================================
13 FeaturesAPI_RemoveSubShapes::FeaturesAPI_RemoveSubShapes(const std::shared_ptr<ModelAPI_Feature>& theFeature)
14 : ModelHighAPI_Interface(theFeature)
19 //==================================================================================================
20 FeaturesAPI_RemoveSubShapes::FeaturesAPI_RemoveSubShapes(const std::shared_ptr<ModelAPI_Feature>& theFeature,
21 const ModelHighAPI_Selection& theBase)
22 : ModelHighAPI_Interface(theFeature)
31 //==================================================================================================
32 FeaturesAPI_RemoveSubShapes::~FeaturesAPI_RemoveSubShapes()
37 //==================================================================================================
38 void FeaturesAPI_RemoveSubShapes::setBase(const ModelHighAPI_Selection& theBase)
40 fillAttribute(theBase, mybase);
45 //==================================================================================================
46 void FeaturesAPI_RemoveSubShapes::setSubShapesToKeep(const std::list<ModelHighAPI_Selection>& theSubShapes)
48 fillAttribute(theSubShapes, mysubshapes);
53 //==================================================================================================
54 void FeaturesAPI_RemoveSubShapes::dump(ModelHighAPI_Dumper& theDumper) const
56 FeaturePtr aBase = feature();
57 const std::string& aDocName = theDumper.name(aBase->document());
59 AttributeSelectionPtr anAttrBaseShape = aBase->selection(FeaturesPlugin_RemoveSubShapes::BASE_SHAPE_ID());
60 AttributeSelectionListPtr anAttrSubShapes = aBase->selectionList(FeaturesPlugin_RemoveSubShapes::SUBSHAPES_ID());
62 theDumper << aBase << " = model.addRemoveSubShapes(" << aDocName << ", " << anAttrBaseShape << ")" << std::endl;
63 theDumper << aBase << ".setSubShapesToKeep(" << anAttrSubShapes << ")" << std::endl;
66 //==================================================================================================
67 RemoveSubShapesPtr addRemoveSubShapes(const std::shared_ptr<ModelAPI_Document>& thePart,
68 const ModelHighAPI_Selection& theBase)
70 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_RemoveSubShapes::ID());
71 return RemoveSubShapesPtr(new FeaturesAPI_RemoveSubShapes(aFeature, theBase));