Salome HOME
Issue #332: Find point by coordinates comparison instead selection
[modules/shaper.git] / src / PartSetPlugin / PartSetPlugin_Part.h
index 25af3bea7bb586245b7c1def4c684911e9630114..590d69562d70b8d2de6fdad673609a520cf4082f 100644 (file)
@@ -1,30 +1,41 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 // File:        PartSetPlugin_Part.h
 // Created:     27 Mar 2014
 // Author:      Mikhail PONIKAROV
 
-#ifndef PartSetPlugin_Part_HeaderFile
-#define PartSetPlugin_Part_HeaderFile
+#ifndef PartSetPlugin_Part_H_
+#define PartSetPlugin_Part_H_
 
 #include "PartSetPlugin.h"
 #include <ModelAPI_Feature.h>
 
-/// part reference attribute
-const std::string PART_ATTR_DOC_REF = "PartDocument";
-
 /**\class PartSetPlugin_Part
  * \ingroup DataModel
  * \brief Feature for creation of the new part in PartSet.
  */
-class PartSetPlugin_Part: public ModelAPI_Feature
+class PartSetPlugin_Part : public ModelAPI_Feature
 {
-public:
+ public:
+  /// Part kind
+  inline static const std::string& ID()
+  {
+    static const std::string MY_PART_KIND("Part");
+    return MY_PART_KIND;
+  }
   /// Returns the kind of a feature
-  PARTSETPLUGIN_EXPORT virtual const std::string& getKind() 
-  {static std::string MY_KIND = "Part"; return MY_KIND;}
+  PARTSETPLUGIN_EXPORT virtual const std::string& getKind()
+  {
+    static std::string MY_KIND = PartSetPlugin_Part::ID();
+    return MY_KIND;
+  }
 
   /// Returns to which group in the document must be added feature
-  PARTSETPLUGIN_EXPORT virtual const std::string& getGroup() 
-  {static std::string MY_GROUP = "Parts"; return MY_GROUP;}
+  PARTSETPLUGIN_EXPORT virtual const std::string& getGroup()
+  {
+    static std::string MY_GROUP = "Parts";
+    return MY_GROUP;
+  }
 
   /// Creates a new part document if needed
   PARTSETPLUGIN_EXPORT virtual void execute();
@@ -32,7 +43,13 @@ public:
   /// Request for initialization of data model of the feature: adding all attributes
   PARTSETPLUGIN_EXPORT virtual void initAttributes();
 
-  PARTSETPLUGIN_EXPORT virtual boost::shared_ptr<ModelAPI_Document> documentToAdd();
+  PARTSETPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Document> documentToAdd();
+
+  /// Returns true if this feature must be displayed in the history (top level of Part tree)
+  PARTSETPLUGIN_EXPORT virtual bool isInHistory()
+  {
+    return false;
+  }
 
   /// Use plugin manager for features creation
   PartSetPlugin_Part();