1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 // File: BuildPlugin_Plugin.cpp
4 // Created: 18 April 2016
5 // Author: Dmitry Bobylev
7 #include "BuildPlugin_Plugin.h"
9 #include <ModelAPI_Session.h>
10 #include <ModelAPI_Validator.h>
12 #include <BuildPlugin_Vertex.h>
13 #include <BuildPlugin_Edge.h>
14 #include <BuildPlugin_Wire.h>
15 #include <BuildPlugin_Face.h>
16 #include <BuildPlugin_Shell.h>
17 #include <BuildPlugin_SubShapes.h>
18 #include <BuildPlugin_Validators.h>
20 // the only created instance of this plugin
21 static BuildPlugin_Plugin* MY_INSTANCE = new BuildPlugin_Plugin();
23 //=================================================================================================
24 BuildPlugin_Plugin::BuildPlugin_Plugin()
26 // Register validators.
27 SessionPtr aMgr = ModelAPI_Session::get();
28 ModelAPI_ValidatorsFactory* aFactory = aMgr->validators();
29 aFactory->registerValidator("BuildPlugin_ValidatorBaseForBuild",
30 new BuildPlugin_ValidatorBaseForBuild());
31 aFactory->registerValidator("BuildPlugin_ValidatorBaseForWire",
32 new BuildPlugin_ValidatorBaseForWire());
33 aFactory->registerValidator("BuildPlugin_ValidatorBaseForFace",
34 new BuildPlugin_ValidatorBaseForFace());
35 aFactory->registerValidator("BuildPlugin_ValidatorSubShapesSelection",
36 new BuildPlugin_ValidatorSubShapesSelection());
38 // Register this plugin.
39 ModelAPI_Session::get()->registerPlugin(this);
42 //=================================================================================================
43 FeaturePtr BuildPlugin_Plugin::createFeature(std::string theFeatureID)
45 if(theFeatureID == BuildPlugin_Vertex::ID()) {
46 return FeaturePtr(new BuildPlugin_Vertex());
47 } else if(theFeatureID == BuildPlugin_Edge::ID()) {
48 return FeaturePtr(new BuildPlugin_Edge());
49 } else if(theFeatureID == BuildPlugin_Wire::ID()) {
50 return FeaturePtr(new BuildPlugin_Wire());
51 } else if(theFeatureID == BuildPlugin_Face::ID()) {
52 return FeaturePtr(new BuildPlugin_Face());
53 } else if(theFeatureID == BuildPlugin_Shell::ID()) {
54 return FeaturePtr(new BuildPlugin_Shell());
55 } else if(theFeatureID == BuildPlugin_SubShapes::ID()) {
56 return FeaturePtr(new BuildPlugin_SubShapes());
59 // Feature of such kind is not found.