]> SALOME platform Git repositories - modules/shaper.git/blob - src/FeaturesPlugin/FeaturesPlugin_Plugin.cpp
Salome HOME
Feature selector widget for recover feature.
[modules/shaper.git] / src / FeaturesPlugin / FeaturesPlugin_Plugin.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->\r
2 \r
3 #include <FeaturesPlugin_Plugin.h>\r
4 \r
5 #include <FeaturesPlugin_Boolean.h>\r
6 #include <FeaturesPlugin_Extrusion.h>\r
7 #include <FeaturesPlugin_ExtrusionCut.h>\r
8 #include <FeaturesPlugin_ExtrusionFuse.h>\r
9 #include <FeaturesPlugin_Group.h>\r
10 #include <FeaturesPlugin_Intersection.h>\r
11 #include <FeaturesPlugin_Translation.h>\r
12 #include <FeaturesPlugin_Partition.h>\r
13 #include <FeaturesPlugin_Pipe.h>\r
14 #include <FeaturesPlugin_Placement.h>\r
15 #include <FeaturesPlugin_Recover.h>\r
16 #include <FeaturesPlugin_RemoveSubShapes.h>\r
17 #include <FeaturesPlugin_Revolution.h>\r
18 #include <FeaturesPlugin_RevolutionCut.h>\r
19 #include <FeaturesPlugin_RevolutionFuse.h>\r
20 #include <FeaturesPlugin_Rotation.h>\r
21 #include <FeaturesPlugin_Union.h>\r
22 #include <FeaturesPlugin_ValidatorTransform.h>\r
23 #include <FeaturesPlugin_Validators.h>\r
24 \r
25 #include <ModelAPI_Session.h>\r
26 \r
27 #include <string>\r
28 \r
29 #include <memory>\r
30 \r
31 using namespace std;\r
32 \r
33 // the only created instance of this plugin\r
34 static FeaturesPlugin_Plugin* MY_FEATURES_INSTANCE = new FeaturesPlugin_Plugin();\r
35 \r
36 FeaturesPlugin_Plugin::FeaturesPlugin_Plugin()\r
37 {\r
38   SessionPtr aMgr = ModelAPI_Session::get();\r
39   ModelAPI_ValidatorsFactory* aFactory = aMgr->validators();\r
40   aFactory->registerValidator("FeaturesPlugin_ValidatorTransform",\r
41                               new FeaturesPlugin_ValidatorTransform);\r
42   aFactory->registerValidator("FeaturesPlugin_ValidatorCompositeLauncher",\r
43                               new FeaturesPlugin_ValidatorCompositeLauncher);\r
44   aFactory->registerValidator("FeaturesPlugin_ValidatorBaseForGeneration",\r
45                               new FeaturesPlugin_ValidatorBaseForGeneration);\r
46   aFactory->registerValidator("FeaturesPlugin_ValidatorPipeLocations",\r
47                               new FeaturesPlugin_ValidatorPipeLocations);\r
48   aFactory->registerValidator("FeaturesPlugin_ValidatorExtrusionDir",\r
49                               new FeaturesPlugin_ValidatorExtrusionDir);\r
50   aFactory->registerValidator("FeaturesPlugin_ValidatorBooleanSelection",\r
51                               new FeaturesPlugin_ValidatorBooleanSelection);\r
52   aFactory->registerValidator("FeaturesPlugin_ValidatorPartitionSelection",\r
53                               new FeaturesPlugin_ValidatorPartitionSelection);\r
54   aFactory->registerValidator("FeaturesPlugin_ValidatorRemoveSubShapesSelection",\r
55                               new FeaturesPlugin_ValidatorRemoveSubShapesSelection);\r
56   aFactory->registerValidator("FeaturesPlugin_ValidatorRemoveSubShapesResult",\r
57                               new FeaturesPlugin_ValidatorRemoveSubShapesResult);\r
58   aFactory->registerValidator("FeaturesPlugin_ValidatorPipePath",\r
59                               new FeaturesPlugin_ValidatorPipePath);\r
60   aFactory->registerValidator("FeaturesPlugin_ValidatorUnionSelection",\r
61                               new FeaturesPlugin_ValidatorUnionSelection);\r
62   aFactory->registerValidator("FeaturesPlugin_ValidatorUnionArguments",\r
63                               new FeaturesPlugin_ValidatorUnionArguments);\r
64   aFactory->registerValidator("FeaturesPlugin_ValidatorConcealedResult",\r
65                               new FeaturesPlugin_ValidatorConcealedResult);\r
66 \r
67   // register this plugin\r
68   ModelAPI_Session::get()->registerPlugin(this);\r
69 }\r
70 \r
71 FeaturePtr FeaturesPlugin_Plugin::createFeature(string theFeatureID)\r
72 {\r
73   if (theFeatureID == FeaturesPlugin_Extrusion::ID()) {\r
74     return FeaturePtr(new FeaturesPlugin_Extrusion);\r
75   } else if (theFeatureID == FeaturesPlugin_Revolution::ID()) {\r
76    return FeaturePtr(new FeaturesPlugin_Revolution);\r
77   } else if (theFeatureID == FeaturesPlugin_Rotation::ID()) {\r
78     return FeaturePtr(new FeaturesPlugin_Rotation);\r
79   } else if (theFeatureID == FeaturesPlugin_Translation::ID()) {\r
80     return FeaturePtr(new FeaturesPlugin_Translation);\r
81   } else if (theFeatureID == FeaturesPlugin_Boolean::ID()) {\r
82     return FeaturePtr(new FeaturesPlugin_Boolean);\r
83   } else if (theFeatureID == FeaturesPlugin_Group::ID()) {\r
84     return FeaturePtr(new FeaturesPlugin_Group);\r
85   } else if (theFeatureID == FeaturesPlugin_Intersection::ID()) {\r
86     return FeaturePtr(new FeaturesPlugin_Intersection);\r
87   } else if (theFeatureID == FeaturesPlugin_Partition::ID()) {\r
88     return FeaturePtr(new FeaturesPlugin_Partition);\r
89   } else if (theFeatureID == FeaturesPlugin_Pipe::ID()) {\r
90     return FeaturePtr(new FeaturesPlugin_Pipe);\r
91   } else if (theFeatureID == FeaturesPlugin_Placement::ID()) {\r
92     return FeaturePtr(new FeaturesPlugin_Placement);\r
93   } else if (theFeatureID == FeaturesPlugin_Recover::ID()) {\r
94     return FeaturePtr(new FeaturesPlugin_Recover);\r
95   } else if (theFeatureID == FeaturesPlugin_ExtrusionCut::ID()) {\r
96     return FeaturePtr(new FeaturesPlugin_ExtrusionCut);\r
97   } else if (theFeatureID == FeaturesPlugin_ExtrusionFuse::ID()) {\r
98     return FeaturePtr(new FeaturesPlugin_ExtrusionFuse);\r
99   } else if (theFeatureID == FeaturesPlugin_RevolutionCut::ID()) {\r
100     return FeaturePtr(new FeaturesPlugin_RevolutionCut);\r
101   } else if (theFeatureID == FeaturesPlugin_RevolutionFuse::ID()) {\r
102     return FeaturePtr(new FeaturesPlugin_RevolutionFuse);\r
103   } else if (theFeatureID == FeaturesPlugin_RemoveSubShapes::ID()) {\r
104     return FeaturePtr(new FeaturesPlugin_RemoveSubShapes);\r
105   } else if (theFeatureID == FeaturesPlugin_Union::ID()) {\r
106     return FeaturePtr(new FeaturesPlugin_Union);\r
107   }\r
108 \r
109   // feature of such kind is not found\r
110   return FeaturePtr();\r
111 }\r