00001 /* 00002 * This file is part of qpOASES. 00003 * 00004 * qpOASES -- An Implementation of the Online Active Set Strategy. 00005 * Copyright (C) 2007-2008 by Hans Joachim Ferreau et al. All rights reserved. 00006 * 00007 * qpOASES is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * qpOASES is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with qpOASES; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 * 00021 */ 00022 00023 00035 #ifndef QPOASES_CONSTRAINTS_HPP 00036 #define QPOASES_CONSTRAINTS_HPP 00037 00038 00039 #include <SubjectTo.hpp> 00040 00041 00042 00050 class Constraints : public SubjectTo 00051 { 00052 /* 00053 * PUBLIC MEMBER FUNCTIONS 00054 */ 00055 public: 00057 Constraints( ); 00058 00060 Constraints( const Constraints& rhs 00061 ); 00062 00064 ~Constraints( ); 00065 00067 Constraints& operator=( const Constraints& rhs 00068 ); 00069 00070 00073 returnValue init( int n 00074 ); 00075 00076 00083 returnValue setupConstraint( int _number, 00084 SubjectToStatus _status 00085 ); 00086 00092 returnValue setupAllInactive( ); 00093 00094 00098 returnValue moveActiveToInactive( int _number 00099 ); 00100 00104 returnValue moveInactiveToActive( int _number, 00105 SubjectToStatus _status 00106 ); 00107 00108 00111 inline int getNC( ) const; 00112 00115 inline int getNEC( ) const; 00116 00119 inline int getNIC( ) const; 00120 00123 inline int getNUC( ) const; 00124 00125 00128 inline returnValue setNEC( int n 00129 ); 00130 00133 inline returnValue setNIC( int n 00134 ); 00135 00138 inline returnValue setNUC( int n 00139 ); 00140 00141 00144 inline int getNAC( ); 00145 00148 inline int getNIAC( ); 00149 00150 00153 inline Indexlist* getActive( ); 00154 00157 inline Indexlist* getInactive( ); 00158 00159 00160 /* 00161 * PROTECTED MEMBER VARIABLES 00162 */ 00163 protected: 00164 int nC; 00165 int nEC; 00166 int nIC; 00167 int nUC; 00169 Indexlist active; 00170 Indexlist inactive; 00171 }; 00172 00173 00174 #include <Constraints.ipp> 00175 00176 #endif /* QPOASES_CONSTRAINTS_HPP */ 00177 00178 00179 /* 00180 * end of file 00181 */