Salome HOME
Implementation of "allFeatures" method needed for the parameters inside of attributes...
[modules/shaper.git] / src / ParametersPlugin / ParametersPlugin_Parameter.h
index c36d7764fa3e5d1059cf4bac2168b0ff4af43bb8..c348d0f733d257d7bb1820e2a167b668cd769249 100644 (file)
@@ -10,6 +10,8 @@
 #include "ParametersPlugin.h"
 #include <ModelAPI_Feature.h>
 
+#include <memory>
+
 class ParametersPlugin_PyInterp;
 
 class ParametersPlugin_Parameter : public ModelAPI_Feature
@@ -20,8 +22,8 @@ class ParametersPlugin_Parameter : public ModelAPI_Feature
   /// Extrusion kind
   inline static const std::string& ID()
   {
-    static const std::string MY_EXTRUSION_ID("Parameter");
-    return MY_EXTRUSION_ID;
+    static const std::string MY_PARAMETER_ID("Parameter");
+    return MY_PARAMETER_ID;
   }
   /// attribute name of references sketch entities list, it should contain a sketch result or
   /// a pair a sketch result to sketch face
@@ -38,6 +40,13 @@ class ParametersPlugin_Parameter : public ModelAPI_Feature
     return MY_EXPRESSION_ID;
   }
 
+  /// list of references to the arguments of this expression
+  inline static const std::string& ARGUMENTS_ID()
+  {
+    static const std::string MY_VARIABLE_ID("arguments");
+    return MY_VARIABLE_ID;
+  }
+
   /// Returns the kind of a feature
   PARAMETERSPLUGIN_EXPORT virtual const std::string& getKind()
   {
@@ -45,6 +54,9 @@ class ParametersPlugin_Parameter : public ModelAPI_Feature
     return MY_KIND;
   }
 
+  /// Pre-execution is not needed for parameter
+  PARAMETERSPLUGIN_EXPORT virtual bool isPreviewNeeded() const;
+
   /// Creates a new part document if needed
   PARAMETERSPLUGIN_EXPORT virtual void execute();
 
@@ -62,7 +74,7 @@ class ParametersPlugin_Parameter : public ModelAPI_Feature
   double evaluate(const std::string& theExpression, std::string& theError);
 
  private:
-  ParametersPlugin_PyInterp* myInterp;
+  std::shared_ptr<ParametersPlugin_PyInterp> myInterp;
 };
 
 #endif