Salome HOME
Documentation fixes.
[modules/shaper.git] / src / ParametersPlugin / ParametersPlugin_Parameter.h
index 9eea5e160dc0cb39fa0c7377ae04aeb6de4c991d..229f8f217192cb95b68fcc2ee18a9f377b490708 100644 (file)
 #include "ParametersPlugin.h"
 #include <ModelAPI_Feature.h>
 
+#include <memory>
+
 class ParametersPlugin_PyInterp;
 
+/**
+ * \class ParametersPlugin_Parameter
+ * \ingroup Plugins
+ * \brief Feature for parameter.
+ */
 class ParametersPlugin_Parameter : public ModelAPI_Feature
 {
  public:
   virtual ~ParametersPlugin_Parameter();
 
-  /// Extrusion kind
+  /// Feature 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
+  /// attribute of parameter name
   inline static const std::string& VARIABLE_ID()
   {
     static const std::string MY_VARIABLE_ID("variable");
     return MY_VARIABLE_ID;
   }
-
-  /// attribute name of extrusion size
+  /// attribute of parameter expression
   inline static const std::string& EXPRESSION_ID()
   {
     static const std::string MY_EXPRESSION_ID("expression");
     return MY_EXPRESSION_ID;
   }
+  /// attribute of parameter expression error
+  inline static const std::string& EXPRESSION_ERROR_ID()
+  {
+    static const std::string MY_EXPRESSION_ERROR_ID("ExpressionError");
+    return MY_EXPRESSION_ERROR_ID;
+  }
+  /// list of references to the arguments of this expression
+  inline static const std::string& ARGUMENTS_ID()
+  {
+    static const std::string MY_ARGUMENTS_ID("arguments");
+    return MY_ARGUMENTS_ID;
+  }
 
   /// Returns the kind of a feature
   PARAMETERSPLUGIN_EXPORT virtual const std::string& getKind()
@@ -45,23 +62,34 @@ class ParametersPlugin_Parameter : public ModelAPI_Feature
     return MY_KIND;
   }
 
-  /// Creates a new part document if needed
+  /// Pre-execution is not needed for parameter
+  PARAMETERSPLUGIN_EXPORT virtual bool isPreviewNeeded() const;
+
+  /// Creates a parameter in document
   PARAMETERSPLUGIN_EXPORT virtual void execute();
 
   /// Request for initialization of data model of the feature: adding all attributes
   PARAMETERSPLUGIN_EXPORT virtual void initAttributes();
 
-  PARAMETERSPLUGIN_EXPORT virtual bool isInHistory(); //false
-  //bool isI
+  /// Reimplemented from ModelAPI_Feature::isInHistory(). Returns false.
+  PARAMETERSPLUGIN_EXPORT virtual bool isInHistory();
+
+  /// Reimplemented from ModelAPI_Feature::isInHistory().
+  PARAMETERSPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
 
   /// Use plugin manager for features creation
   ParametersPlugin_Parameter();
 
  protected:
+  /// Evaluates theExpression and returns its value.
   double evaluate(const std::string& theExpression, std::string& theError);
+  /// Updates name of the parameter
+  void updateName();
+  /// Updates expression of the parameter
+  void updateExpression();
 
  private:
-  ParametersPlugin_PyInterp* myInterp;
+  std::shared_ptr<ParametersPlugin_PyInterp> myInterp;
 };
 
 #endif