00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __rdControl_h__
00010 #define __rdControl_h__
00011
00012
00013
00014 #include <rdObject.h>
00015 #include <rdArray.h>
00016 #include "rdCntr.h"
00017
00018
00019
00020
00054 class RDSIMULATION_API rdControl : public rdObject
00055 {
00056
00057
00058
00059
00060 public:
00061 static const char DEFAULT_NAME[];
00062 static const char PROP_IS_MODEL_CONTROL[];
00063 static const char PROP_DEFAULT_MIN[];
00064 static const char PROP_DEFAULT_MAX[];
00065 protected:
00068 bool _isModelControl;
00070 double _defaultMin;
00072 double _defaultMax;
00073
00074
00075
00076
00077 public:
00078 rdControl(const char *aName="UNKOWN");
00079 rdControl(IDOM_Element *aElement);
00080 rdControl(const rdControl &aControl);
00081 virtual ~rdControl();
00082 virtual rdControl* copy() const = 0;
00083 virtual rdControl* copy(IDOM_Element *aElement) const = 0;
00084 private:
00085 void setNull();
00086 void copyData(const rdControl &aControl);
00087
00088
00089
00090
00091 public:
00092 rdControl& operator=(const rdControl &aControl);
00093
00094
00095
00096
00097 void setIsModelControl(bool aTrueFalse);
00098 bool getIsModelControl() const;
00099
00100
00101 virtual int getNumParameters() const = 0;
00102
00103 void setDefaultParameterMin(double aMin);
00104 double getDefaultParameterMin() const;
00105
00106 void setDefaultParameterMax(double aMin);
00107 double getDefaultParameterMax() const;
00108
00109 virtual void setParameterMin(int aI,double aMin) = 0;
00110 virtual double getParameterMin(int aI) const = 0;
00111
00112 virtual void setParameterMax(int aI,double aMax) = 0;
00113 virtual double getParameterMax(int aI) const = 0;
00114
00115 virtual double getParameterTime(int aI) const = 0;
00116 virtual void getParameterNeighborhood(int aI,double &rTLower,double &rTUpper) const = 0;
00117
00118 virtual int getParameterList(double aT,rdArray<int> &rList) const = 0;
00119 virtual int getParameterList(double aTLower,double aTUpper,rdArray<int> &rList) const = 0;
00120
00121 virtual double getParameterValue(int aI) const = 0;
00122 virtual void setParameterValue(int aI,double aP) = 0;
00123
00124 virtual double getControlValue(double aT=0.0) const = 0;
00125 virtual void setControlValue(double aT,double aX) = 0;
00126
00127
00128
00129
00130 virtual void updateObject(bool aDeep=true);
00131 void updateData();
00132 virtual void updateNode(bool aDeep=true);
00133 virtual void generateNode(IDOM_Element *aParent);
00134
00135
00136 };
00137
00138
00139
00140 #endif // __rdControl_h__