Salome HOME
Issue #1343 Fixes for creating extrusion on vertex
[modules/shaper.git] / src / FeaturesPlugin / FeaturesPlugin_Plugin.cpp
index c8ab834ccd65c4333e22c5cf8de6489b37f7b483..1de58f332c830f1e5e033d01e3f8cb11afdf55ae 100644 (file)
@@ -7,13 +7,17 @@
 #include <FeaturesPlugin_ExtrusionCut.h>
 #include <FeaturesPlugin_ExtrusionFuse.h>
 #include <FeaturesPlugin_Group.h>
+#include <FeaturesPlugin_Intersection.h>
 #include <FeaturesPlugin_Translation.h>
 #include <FeaturesPlugin_Partition.h>
+#include <FeaturesPlugin_Pipe.h>
 #include <FeaturesPlugin_Placement.h>
 #include <FeaturesPlugin_Revolution.h>
 #include <FeaturesPlugin_RevolutionCut.h>
 #include <FeaturesPlugin_RevolutionFuse.h>
 #include <FeaturesPlugin_Rotation.h>
+#include <FeaturesPlugin_ValidatorTransform.h>
+#include <FeaturesPlugin_Validators.h>
 
 #include <ModelAPI_Session.h>
 
@@ -28,6 +32,19 @@ static FeaturesPlugin_Plugin* MY_FEATURES_INSTANCE = new FeaturesPlugin_Plugin()
 
 FeaturesPlugin_Plugin::FeaturesPlugin_Plugin()
 {
+  SessionPtr aMgr = ModelAPI_Session::get();
+  ModelAPI_ValidatorsFactory* aFactory = aMgr->validators();
+  aFactory->registerValidator("FeaturesPlugin_ValidatorTransform",
+                              new FeaturesPlugin_ValidatorTransform);
+  aFactory->registerValidator("FeaturesPlugin_ValidatorCompositeLauncher",
+                              new FeaturesPlugin_ValidatorCompositeLauncher);
+  aFactory->registerValidator("FeaturesPlugin_ValidatorBaseForGeneration",
+                              new FeaturesPlugin_ValidatorBaseForGeneration);
+  aFactory->registerValidator("FeaturesPlugin_ValidatorPipeLocations",
+                              new FeaturesPlugin_ValidatorPipeLocations);
+  aFactory->registerValidator("FeaturesPlugin_ValidatorCanBeEmpty",
+                              new FeaturesPlugin_ValidatorCanBeEmpty);
+
   // register this plugin
   ModelAPI_Session::get()->registerPlugin(this);
 }
@@ -46,8 +63,12 @@ FeaturePtr FeaturesPlugin_Plugin::createFeature(string theFeatureID)
     return FeaturePtr(new FeaturesPlugin_Boolean);
   } else if (theFeatureID == FeaturesPlugin_Group::ID()) {
     return FeaturePtr(new FeaturesPlugin_Group);
+  } else if (theFeatureID == FeaturesPlugin_Intersection::ID()) {
+    return FeaturePtr(new FeaturesPlugin_Intersection);
   } else if (theFeatureID == FeaturesPlugin_Partition::ID()) {
     return FeaturePtr(new FeaturesPlugin_Partition);
+  } else if (theFeatureID == FeaturesPlugin_Pipe::ID()) {
+    return FeaturePtr(new FeaturesPlugin_Pipe);
   } else if (theFeatureID == FeaturesPlugin_Placement::ID()) {
     return FeaturePtr(new FeaturesPlugin_Placement);
   } else if (theFeatureID == FeaturesPlugin_ExtrusionCut::ID()) {