X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParametersPlugin%2FParametersPlugin_Parameter.h;h=5f2689c5fb55c868e38883bdc1dcba3c01e184b6;hb=b38bb339a84175749f2742d906db858e3377c86b;hp=66cd99bfa282b5c157835d90675578760a45f370;hpb=b2418a13c302e03ed5f80dbdae0cd20f0abd16af;p=modules%2Fshaper.git diff --git a/src/ParametersPlugin/ParametersPlugin_Parameter.h b/src/ParametersPlugin/ParametersPlugin_Parameter.h index 66cd99bfa..5f2689c5f 100644 --- a/src/ParametersPlugin/ParametersPlugin_Parameter.h +++ b/src/ParametersPlugin/ParametersPlugin_Parameter.h @@ -10,33 +10,55 @@ #include "ParametersPlugin.h" #include -class ParametersPlugin_PyInterp; +#include +/** + * \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; + } + + /// return comment attribute Id + inline static const std::string& COMMENT_ID() + { + static const std::string MY_COMMENT_ID("comment"); + return MY_COMMENT_ID; + } /// Returns the kind of a feature PARAMETERSPLUGIN_EXPORT virtual const std::string& getKind() @@ -45,20 +67,31 @@ 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(); + /// 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: - double evaluate(std::string); - - private: - ParametersPlugin_PyInterp* myInterp; + /// 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 + bool updateExpression(); }; #endif