1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
\r
3 #include <FeaturesPlugin_Plugin.h>
\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
25 #include <ModelAPI_Session.h>
\r
31 using namespace std;
\r
33 // the only created instance of this plugin
\r
34 static FeaturesPlugin_Plugin* MY_FEATURES_INSTANCE = new FeaturesPlugin_Plugin();
\r
36 FeaturesPlugin_Plugin::FeaturesPlugin_Plugin()
\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
67 // register this plugin
\r
68 ModelAPI_Session::get()->registerPlugin(this);
\r
71 FeaturePtr FeaturesPlugin_Plugin::createFeature(string theFeatureID)
\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
109 // feature of such kind is not found
\r
110 return FeaturePtr();
\r