00001 00002 // FILE vndflags.h 00003 00004 00005 #ifndef INCLUDED_VNDFLAGS_H 00006 #define INCLUDED_VNDFLAGS_H 00007 00008 00009 #include "vndobj.h" 00010 #include <stdio.h> 00011 00012 00020 class SOLVER_FLAGS 00021 { 00022 public: 00023 00025 SOLVER_FLAGS(); 00026 00028 void Reset(); 00029 00035 void FirstStep( bool b ); 00036 00042 bool FirstStep () const; 00043 00048 void AcceptedStep( bool b ); 00049 00055 bool AcceptedStep () const; 00056 00062 void GraphOutput( bool b ); 00063 00069 bool GraphOutput() const; 00070 00076 void VerboseOutput( bool b ); 00077 00083 bool VerboseOutput() const; 00084 00091 void ContinueOutput( bool b ); 00092 00097 bool ContinueOutput() const; 00098 00099 00105 void ContinueIntegration( bool b ); 00106 00112 bool ContinueIntegration() const; 00113 00114 private: 00115 00116 bool vo, co, go, acc, fs, ci; 00117 00118 }; 00119 00120 00122 typedef SOLVER_FLAGS * PtrSolverFlags; 00123 00124 00125 inline SOLVER_FLAGS :: SOLVER_FLAGS() 00126 { 00127 Reset(); 00128 } 00129 00130 inline void SOLVER_FLAGS :: Reset() 00131 { 00132 vo = true; 00133 co = false; 00134 go = false; 00135 acc = false; 00136 fs = true; 00137 ci = false; 00138 } 00139 00140 00141 inline void SOLVER_FLAGS :: FirstStep( bool b ) 00142 { 00143 fs = b; 00144 } 00145 00146 inline bool SOLVER_FLAGS :: FirstStep() const 00147 { 00148 return fs; 00149 } 00150 00151 00152 inline void SOLVER_FLAGS :: AcceptedStep( bool b ) 00153 { 00154 acc = b; 00155 } 00156 00157 00158 inline bool SOLVER_FLAGS :: AcceptedStep() const 00159 { 00160 return acc; 00161 } 00162 00163 00164 inline void SOLVER_FLAGS :: GraphOutput( bool b ) 00165 { 00166 go = b; 00167 } 00168 00169 00170 inline bool SOLVER_FLAGS :: GraphOutput() const 00171 { 00172 return go; 00173 } 00174 00175 00176 inline void SOLVER_FLAGS :: VerboseOutput( bool b ) 00177 { 00178 vo = b; 00179 } 00180 00181 00182 inline bool SOLVER_FLAGS :: VerboseOutput() const 00183 { 00184 return vo; 00185 } 00186 00187 00188 inline void SOLVER_FLAGS :: ContinueOutput( bool b ) 00189 { 00190 co = b; 00191 } 00192 00193 00194 inline bool SOLVER_FLAGS :: ContinueOutput() const 00195 { 00196 return co; 00197 } 00198 00199 00200 inline void SOLVER_FLAGS :: ContinueIntegration( bool b ) 00201 { 00202 ci = b; 00203 } 00204 00205 00206 inline bool SOLVER_FLAGS :: ContinueIntegration() const 00207 { 00208 return ci; 00209 } 00210 00211 00212 #endif 00213