Salome HOME
Fix for missed values in DoubleSpinBox on edit
[modules/shaper.git] / src / ModuleBase / ModuleBase_FilterShapeType.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModuleBase_FilterShapeType.cpp
4 // Created:     12 Jan 2015
5 // Author:      Natalia ERMOLAEVA
6
7
8 #include "ModuleBase_FilterShapeType.h"
9
10 #include <StdSelect_ShapeTypeFilter.hxx>
11 #include <TopAbs_ShapeEnum.hxx>
12
13 #include <Events_Error.h>
14
15 #include <QString>
16 #include <QMap>
17
18 typedef QMap<QString, TopAbs_ShapeEnum> FaceTypes;
19 static FaceTypes MyShapeTypes;
20
21 TopAbs_ShapeEnum ModuleBase_FilterShapeType::shapeType(const std::string& theType)
22 {
23   if (MyShapeTypes.count() == 0) {
24     MyShapeTypes["vertex"] = TopAbs_VERTEX;
25   }
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!");
30   return TopAbs_SHAPE;
31 }
32
33 ModuleBase_FilterShapeType::ModuleBase_FilterShapeType()
34 : ModuleBase_Filter(), myShapeType(TopAbs_SHAPE)
35 {
36 }
37
38 void ModuleBase_FilterShapeType::createFilter()
39 {
40   myFilter = new StdSelect_ShapeTypeFilter(myShapeType);
41 }
42
43 void ModuleBase_FilterShapeType::setArguments(const std::list<std::string>& theArguments)
44 {
45   if (theArguments.size()!= 1)
46     return;
47   myShapeType = shapeType(theArguments.front());
48 }