Page principale | Hiérarchie des classes | Liste des composants | Liste des fichiers | Composants

MuteVar.h

00001 #ifndef __MUTEVAR_H
00002 #define __MUTEVAR_H
00003 
00005 
00014 class MuteVar
00015 {
00016     bool isBool; 
00017     bool isInt;  
00018     bool isLBStrict; 
00019     bool isUBStrict; 
00020     bool isRelaxed;  
00021     float value;    
00022     float lowerBound; 
00023     float upperBound; 
00024 
00025   public:
00026     typedef enum VarType{FLOAT=0,INT,BOOL};
00027 
00029     MuteVar( MuteVar::VarType type = MuteVar::FLOAT,
00030              float _value = 0.0f,
00031              float _lB = 0.0f,
00032              float _uB = 0.0f )
00033     :isBool(type==MuteVar::BOOL),isInt(type==MuteVar::INT),
00034      isLBStrict(false),isUBStrict(false),isRelaxed(false),
00035      value(_value),lowerBound(_lB),upperBound(_uB)
00036     {}
00037 
00039     MuteVar(const MuteVar & _mv)
00040     {
00041       *this = _mv;
00042     }
00043 
00045     MuteVar & operator= (const MuteVar & _mv)
00046     {
00047       isBool = _mv.isBool;
00048       isInt = _mv.isInt;
00049       isLBStrict = _mv.isLBStrict;
00050       isUBStrict = _mv.isUBStrict;
00051       isRelaxed = _mv.isRelaxed;
00052       value = _mv.value;
00053       lowerBound = _mv.lowerBound;
00054       upperBound = _mv.upperBound;
00055       return *this;
00056     };
00057 
00059     MuteVar & operator= (float _value)
00060     {
00061       value = _value;
00062       return *this;
00063     };
00064 
00068     float GetValue() const {return value;}
00072     float GetLowerBound() const {return lowerBound;}
00076     float GetUpperBound() const {return upperBound;}
00080     bool IsLowerBoundStrict() const {return isLBStrict;}
00084     bool IsUpperBoundStrict() const {return isUBStrict;}
00085     
00089     VarType GetType() const
00090     {
00091       if(isBool) return MuteVar::BOOL;
00092       if(isInt) return MuteVar::INT;
00093       return MuteVar::FLOAT;
00094     }
00095 
00099     void SetType( MuteVar::VarType type)
00100     {
00101       isBool = false;
00102       isInt = false;
00103       isBool = (type==MuteVar::BOOL);
00104       isInt = (type==MuteVar::INT);
00105     }
00106 
00110     void SetLowerBound( float _value) { lowerBound = _value;}
00114     void SetUpperBound( float _value) { upperBound = _value;}
00118     void SetIsLBStrict( bool _value = true ) { isLBStrict = _value; }
00122     void SetIsUBStrict( bool _value = true ) { isUBStrict = _value; }
00123 
00124     bool IsRelaxed() const { return isRelaxed;}
00125     void SetRelaxed( bool _isRelaxed = true ) { isRelaxed = _isRelaxed;}
00126 
00127     ~MuteVar()
00128     {
00129     }
00130   
00131 };
00132 
00133 #endif

Généré le Mon Jul 18 23:07:40 2005 pour Modelib par doxygen 1.3.6