#ifndef PROPARAMDRIVER_H #define PROPARAMDRIVER_H #include <ProUserdefFunction.h> #include <ProParameter.h> PRO_BEGIN_C_DECLS typedef enum { PRO_PARAMDRIVER_NONE, /* No driver, just uses value */ PRO_PARAMDRIVER_PARAM, PRO_PARAMDRIVER_FUNCTION, PRO_PARAMDRIVER_RELATION } ProParameterDriver; /*===========================================================================*/ /*===========================================================================*/ extern ProError ProParameterDrivertypeGet (ProParameter* parameter, ProParameterDriver* driver); /* Purpose: Obtains the type of driver for a model parameter. The function is similar to ProParameterDriverGet() except that it takes into the account dimensions and symbols from external owner. Input Arguments: parameter - The model parameter. Output Arguments: driver - The type of operation driving this value. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. See Also: ProParameterValueGet() ProParameterDrivingparamGet() ProParameterDrivingfunctionGet() */ /*===========================================================================*/ /*===========================================================================*/ extern ProError ProParameterDrivingsymbolGet (ProParameter* parameter, ProParameter* driving_param); /* Purpose: Obtains the driving parameter for a parameter, if the driver type is PRO_PARAMDRIVER_PARAM. The function is similar to ProParameterDrivingparamGet() except that it takes into the account dimensions and symbols from external owner. Input Arguments: parameter - The parameter. Output Arguments: driving_param - The driving parameter. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_E_NOT_FOUND - The driver type is not 'parameter'. */ /*===========================================================================*/ extern ProError ProParameterDrivingparamSet (ProParameter* material_parameter, ProParameter* driving_param); /* Purpose: Assigns the driving parameter for a material parameter. This will set the driver type to be PRO_PARAMDRIVER_PARAM. Input Arguments: material_parameter - The material parameter. driving_param - The driving parameter. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_BAD_CONTEXT - This parameter cannot be driven by another parameter. */ /*===========================================================================*/ extern ProError ProParameterDrivingFunctionGet (ProParameter* material_parameter, ProUserdefFunction* driving_function); /* Purpose: Obtains the driving function for the parameter, if the driver type is PRO_PARAMDRIVER_FUNCTION. Input Arguments: material_parameter - The material parameter. Output Arguments: driving_function - The driving function Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_E_NOT_FOUND - The driver type is not 'function'. */ /*===========================================================================*/ extern ProError ProParameterDrivingFunctionSet (ProParameter* material_parameter, ProUserdefFunction* driving_function); /* Purpose: Assigns the driving function for the parameter. This will set the driver type to be PRO_PARAMDRIVER_FUNCTION. Input Arguments: material_parameter - The material parameter. driving_function - The driving function Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_BAD_CONTEXT - This parameter cannot be driven by a function. */ PRO_END_C_DECLS #endif