00001 #ifndef __INTERNALCONSTRAINT_H 00002 #define __INTERNALCONSTRAINT_H 00003 00005 struct InternalConstraint 00006 { 00007 enum Type {INF,SUP,EGAL,INFSTRICT,SUPSTRICT}; 00008 Type type; 00009 float b; 00010 float activity; 00011 float lagrangianValue; 00012 std::string name; 00013 bool isLagrangianParamDefined; 00014 bool isLagrangianParamActive; 00015 00016 00018 InternalConstraint(InternalConstraint::Type _type = InternalConstraint::INF, 00019 float _b = 0.0f, 00020 float _activity = 0.0f, 00021 float _lagrangianValue = 0.0f, 00022 std::string _name = "", 00023 bool _isLagrangianParamDefined = false, 00024 bool _isLagrangianParamActive = false) 00025 : type(_type), 00026 b(_b), 00027 activity(_activity), 00028 lagrangianValue(_lagrangianValue), 00029 name(_name), 00030 isLagrangianParamDefined(_isLagrangianParamDefined), 00031 isLagrangianParamActive(_isLagrangianParamActive) 00032 {} 00040 InternalConstraint(const InternalConstraint &_iC) 00041 { 00042 *this =_iC; 00043 } 00045 InternalConstraint & operator=(const InternalConstraint &_iC) 00046 { 00047 if(this != &_iC) 00048 { 00049 type=_iC.type; 00050 b=_iC.b; 00051 activity =_iC.activity; 00052 lagrangianValue =_iC.lagrangianValue; 00053 name =_iC.name; 00054 isLagrangianParamDefined =_iC.isLagrangianParamDefined; 00055 isLagrangianParamActive =_iC.isLagrangianParamActive; 00056 } 00057 return *this; 00058 } 00059 ~InternalConstraint() {} 00060 }; 00061 00062 #endif 00063