1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: ModuleBase_FilterFace.cpp
4 // Created: 10 Dec 2014
5 // Author: Natalia ERMOLAEVA
8 #include "ModuleBase_FilterFace.h"
10 #include <StdSelect_FaceFilter.hxx>
11 #include <StdSelect_TypeOfFace.hxx>
13 #include <Events_Error.h>
18 typedef QMap<QString, StdSelect_TypeOfFace> FaceTypes;
19 static FaceTypes MyFaceTypes;
21 StdSelect_TypeOfFace ModuleBase_FilterFace::faceType(const std::string& theType)
23 if (MyFaceTypes.count() == 0) {
24 MyFaceTypes["plane"] = StdSelect_Plane;
25 MyFaceTypes["cylinder"] = StdSelect_Cylinder;
27 QString aType = QString(theType.c_str()).toLower();
28 if (MyFaceTypes.contains(aType))
29 return MyFaceTypes[aType];
30 Events_Error::send("Face type defined in XML is not implemented!");
31 return StdSelect_AnyFace;
34 void ModuleBase_FilterFace::createFilter()
36 myFilter = new StdSelect_FaceFilter(StdSelect_AnyFace);
39 void ModuleBase_FilterFace::setArguments(const std::list<std::string>& theArguments)
41 if (theArguments.size()!= 1)
44 std::string anArgument = theArguments.front();
45 Handle(StdSelect_FaceFilter) aFilter = Handle(StdSelect_FaceFilter)::DownCast(getFilter());
46 if (!aFilter.IsNull())
47 aFilter->SetType(faceType(anArgument));