Salome HOME
Add ParametersAPI
[modules/shaper.git] / src / ParametersAPI / ParametersAPI_Parameter.h
1 // Name   : ParametersAPI_Parameter.h
2 // Purpose: 
3 //
4 // History:
5 // 16/06/16 - Sergey POKHODENKO - Creation of the file
6
7 #ifndef SRC_PARAMETERSAPI_PARAMETERSAPI_PARAMETER_H_
8 #define SRC_PARAMETERSAPI_PARAMETERSAPI_PARAMETER_H_
9
10 //--------------------------------------------------------------------------------------
11 #include "ParametersAPI.h"
12
13 #include <ParametersPlugin_Parameter.h>
14
15 #include <ModelHighAPI_Interface.h>
16 #include <ModelHighAPI_Macro.h>
17 //--------------------------------------------------------------------------------------
18 class ModelHighAPI_Double;
19 //--------------------------------------------------------------------------------------
20 /**\class ParametersAPI_Parameter
21  * \ingroup CPPHighAPI
22  * \brief Interface for Parameter feature
23  */
24 class ParametersAPI_Parameter : public ModelHighAPI_Interface
25 {
26 public:
27   /// Constructor without values
28   PARAMETERSAPI_EXPORT
29   explicit ParametersAPI_Parameter(const std::shared_ptr<ModelAPI_Feature> & theFeature);
30   /// Constructor with values
31   PARAMETERSAPI_EXPORT
32   explicit ParametersAPI_Parameter(const  std::shared_ptr<ModelAPI_Feature> & theFeature,
33                                    const std::string & theName,
34                                    const ModelHighAPI_Double & theExpression);
35   /// Destructor
36   PARAMETERSAPI_EXPORT
37   virtual ~ParametersAPI_Parameter();
38
39   INTERFACE_2(ParametersPlugin_Parameter::ID(),
40               name, ParametersPlugin_Parameter::VARIABLE_ID(), ModelAPI_AttributeString, /** Name */,
41               expression, ParametersPlugin_Parameter::EXPRESSION_ID(), ModelAPI_AttributeDouble, /** Expression */
42   )
43
44 };
45
46 //! Pointer on Parameter object
47 typedef std::shared_ptr<ParametersAPI_Parameter> ParameterPtr;
48
49 /**\ingroup CPPHighAPI
50  * \brief Create Parameter feature
51  */
52 PARAMETERSAPI_EXPORT
53 ParameterPtr addParameter(const std::shared_ptr<ModelAPI_Document> & thePart,
54                           const std::string & theName,
55                           const ModelHighAPI_Double & theExpression);
56
57 //--------------------------------------------------------------------------------------
58 //--------------------------------------------------------------------------------------
59 #endif /* SRC_PARAMETERSAPI_PARAMETERSAPI_PARAMETER_H_ */