1 #include "PartSetPlugin_Plugin.h"
2 #include "PartSetPlugin_Part.h"
3 #include "PartSetPlugin_Point.h"
4 #include <ModelAPI_PluginManager.h>
5 #include <ModelAPI_Document.h>
9 // the only created instance of this plugin
10 static PartSetPlugin_Plugin* MY_INSTANCE = new PartSetPlugin_Plugin();
12 PartSetPlugin_Plugin::PartSetPlugin_Plugin()
14 // register this plugin
15 ModelAPI_PluginManager::get()->registerPlugin(this);
18 std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Plugin::createFeature(string theFeatureID)
20 std::shared_ptr<ModelAPI_Feature> aCreated;
21 bool isCurrent = true; // to create a feature in the current document
22 if (theFeatureID == "Part") {
23 aCreated = std::shared_ptr<ModelAPI_Feature>(new PartSetPlugin_Part);
24 isCurrent = false; // allways create in the root document
25 } else if (theFeatureID == "Point") {
26 aCreated = std::shared_ptr<ModelAPI_Feature>(new PartSetPlugin_Point);
29 // add to a root document for the current moment
31 shared_ptr<ModelAPI_Document> aDoc = isCurrent ?
32 ModelAPI_PluginManager::get()->currentDocument() :
33 ModelAPI_PluginManager::get()->rootDocument();
34 aDoc->addFeature(aCreated, PARTS_GROUP);
36 // feature of such kind is not found