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_Validators.h>
19 // the only created instance of this plugin
20 static BuildPlugin_Plugin* MY_INSTANCE = new BuildPlugin_Plugin();
22 //=================================================================================================
23 BuildPlugin_Plugin::BuildPlugin_Plugin()
25 // Register validators.
26 SessionPtr aMgr = ModelAPI_Session::get();
27 ModelAPI_ValidatorsFactory* aFactory = aMgr->validators();
28 aFactory->registerValidator("BuildPlugin_ValidatorBaseForBuild",
29 new BuildPlugin_ValidatorBaseForBuild());
30 aFactory->registerValidator("BuildPlugin_ValidatorBaseForWire",
31 new BuildPlugin_ValidatorBaseForWire());
32 aFactory->registerValidator("BuildPlugin_ValidatorBaseForFace",
33 new BuildPlugin_ValidatorBaseForFace());
35 // Register this plugin.
36 ModelAPI_Session::get()->registerPlugin(this);
39 //=================================================================================================
40 FeaturePtr BuildPlugin_Plugin::createFeature(std::string theFeatureID)
42 if(theFeatureID == BuildPlugin_Vertex::ID()) {
43 return FeaturePtr(new BuildPlugin_Vertex());
44 } else if(theFeatureID == BuildPlugin_Edge::ID()) {
45 return FeaturePtr(new BuildPlugin_Edge());
46 } else if(theFeatureID == BuildPlugin_Wire::ID()) {
47 return FeaturePtr(new BuildPlugin_Wire());
48 } else if(theFeatureID == BuildPlugin_Face::ID()) {
49 return FeaturePtr(new BuildPlugin_Face());
50 } else if(theFeatureID == BuildPlugin_Shell::ID()) {
51 return FeaturePtr(new BuildPlugin_Shell());
54 // Feature of such kind is not found.