1 #ifndef VARIABLE_H 2 #define VARIABLE_H 3 4 #include <SupportDefs.h> 5 6 7 namespace LinearProgramming { 8 9 class Constraint; 10 class LinearSpec; 11 12 /** 13 * Contains minimum and maximum values. 14 */ 15 class Variable { 16 17 public: 18 int32 Index(); 19 LinearSpec* LS() const; 20 void SetLS(LinearSpec* value); 21 double Value() const; 22 void SetValue(double value); 23 double Min() const; 24 void SetMin(double min); 25 double Max() const; 26 void SetMax(double max); 27 void SetRange(double min, double max); 28 //~ string ToString(); 29 Constraint* IsEqual(Variable* var); 30 Constraint* IsSmallerOrEqual(Variable* var); 31 Constraint* IsGreaterorEqual(Variable* var); 32 33 protected: 34 Variable(LinearSpec* ls); 35 ~Variable(); 36 37 private: 38 LinearSpec* fLS; 39 double fValue; 40 double fMin; 41 double fMax; 42 43 public: 44 friend class LinearSpec; 45 friend class SoftConstraint; 46 47 }; 48 49 } // namespace LinearProgramming 50 51 using LinearProgramming::Variable; 52 53 #endif // VARIABLE_H 54