00001
00007 #ifndef _LinearProblem_h
00008 #define _LinearProblem_h
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "Constraint.h"
00021 #include "ProblemBase.h"
00022 #include "LinearFunction.h"
00023
00024
00025
00026
00027
00028 class LinearProblem
00029 : public ProblemBase
00030 {
00031 public:
00032 friend class LinearProblemPanel;
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00047 virtual ~LinearProblem(void);
00048
00049
00050
00051
00052
00055 virtual std::auto_ptr<ProblemBase> Clone() const;
00056
00059 virtual wxString ToString() const;
00060
00061
00062
00063
00064
00065
00066
00067
00068
00071 void AddConstraint(const Constraint& Constraint);
00072
00075 virtual const Constraint::Container& Constraints() const;
00076
00077 const Constraint::Container ConstraintsWithAxes() const;
00078
00079
00080
00081
00082
00085 virtual int ConstraintCount() const;
00086
00089 virtual RowVector Coefficients() const;
00090
00093 virtual const double A0() const;
00094
00097 virtual wxString Name() const;
00098
00101 virtual ProblemIdType Id() const;
00102
00105 static ProblemIdType ClassId();
00106
00107
00108
00109 protected:
00110
00115 LinearProblem(bool doRegister = false);
00116
00117
00124 LinearProblem(const LinearProblem& from);
00125
00126
00127 private:
00128 Constraint::Container mConstraints;
00129
00130 static const wxString mName;
00131 static LinearProblem mLinearProblem;
00132 };
00133
00134
00135
00136
00137
00138
00139
00140 #endif // _LinearProblem_h_