1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: ModuleBase_FilterShapeType.cpp
4 // Created: 12 Jan 2015
5 // Author: Natalia ERMOLAEVA
8 #include "ModuleBase_FilterShapeType.h"
10 #include <StdSelect_ShapeTypeFilter.hxx>
11 #include <TopAbs_ShapeEnum.hxx>
13 #include <Events_Error.h>
18 typedef QMap<QString, TopAbs_ShapeEnum> FaceTypes;
19 static FaceTypes MyShapeTypes;
21 TopAbs_ShapeEnum ModuleBase_FilterShapeType::shapeType(const std::string& theType)
23 if (MyShapeTypes.count() == 0) {
24 MyShapeTypes["vertex"] = TopAbs_VERTEX;
26 QString aType = QString(theType.c_str()).toLower();
27 if (MyShapeTypes.contains(aType))
28 return MyShapeTypes[aType];
29 Events_Error::send("Shape type defined in XML is not implemented!");
33 ModuleBase_FilterShapeType::ModuleBase_FilterShapeType()
34 : ModuleBase_Filter(), myShapeType(TopAbs_SHAPE)
38 void ModuleBase_FilterShapeType::createFilter()
40 myFilter = new StdSelect_ShapeTypeFilter(myShapeType);
43 void ModuleBase_FilterShapeType::setArguments(const std::list<std::string>& theArguments)
45 if (theArguments.size()!= 1)
47 myShapeType = shapeType(theArguments.front());