bool FGTrim::RemoveState( State state ) { FGTrimAxis* ta; bool result=false; mode = tCustom; vector <FGTrimAxis*>::iterator iAxes = TrimAxes.begin(); while (iAxes != TrimAxes.end()) { ta=*iAxes; if( ta->GetStateType() == state ) { delete ta; iAxes = TrimAxes.erase(iAxes); result=true; continue; } iAxes++; } if(result) { delete[] sub_iterations; delete[] successful; delete[] solution; sub_iterations=new double[TrimAxes.size()]; successful=new double[TrimAxes.size()]; solution=new bool[TrimAxes.size()]; } return result; }
void FGTrim::setDebug(FGTrimAxis& axis) { if(debug_axis == tAll || axis.GetStateType() == debug_axis ) { Debug=DebugLevel; return; } else { Debug=0; return; } }
bool FGTrim::EditState( State state, Control new_control ){ FGTrimAxis* ta; bool result=false; mode = tCustom; vector <FGTrimAxis*>::iterator iAxes = TrimAxes.begin(); while (iAxes != TrimAxes.end()) { ta=*iAxes; if( ta->GetStateType() == state ) { TrimAxes.insert(iAxes,1,new FGTrimAxis(fdmex,fgic,state,new_control)); delete ta; TrimAxes.erase(iAxes+1); result=true; break; } iAxes++; } return result; }
bool FGTrim::AddState( State state, Control control ) { FGTrimAxis* ta; bool result=true; mode = tCustom; vector <FGTrimAxis*>::iterator iAxes = TrimAxes.begin(); while (iAxes != TrimAxes.end()) { ta=*iAxes; if( ta->GetStateType() == state ) result=false; iAxes++; } if(result) { TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,state,control)); delete[] sub_iterations; delete[] successful; delete[] solution; sub_iterations=new double[TrimAxes.size()]; successful=new double[TrimAxes.size()]; solution=new bool[TrimAxes.size()]; } return result; }