//------------------------------------------------------------------------------ bool TimeData::ValidateRefObjects(GmatBase *param) { //loj: 3/23/04 removed checking for type bool status = false; if (HasObjectType(VALID_OBJECT_TYPE_LIST[SPACECRAFT])) { if (mIsInitialEpochSet) { status = true; } else { Spacecraft *sc = (Spacecraft*)FindFirstObject(VALID_OBJECT_TYPE_LIST[SPACECRAFT]); Real rval = sc->GetRealParameter(wxT("A1Epoch")); if (rval != GmatBase::REAL_PARAMETER_UNDEFINED) { mInitialEpoch = sc->GetRealParameter(wxT("A1Epoch")); mIsInitialEpochSet = true; status = true; } } } return status; }
//------------------------------------------------------------------------------ void EstimationRootFinder::BufferSatelliteStates(bool fillingBuffer) { Spacecraft *fromSat = NULL, *toSat = NULL; FormationInterface *fromForm = NULL, *toForm = NULL; std::string soName; for (std::vector<Spacecraft *>::iterator i = satBuffer.begin(); i != satBuffer.end(); ++i) { soName = (*i)->GetName(); if (fillingBuffer) { // fromSat = (Spacecraft *)FindObject(soName); toSat = *i; } else { fromSat = *i; // toSat = (Spacecraft *)FindObject(soName); } #ifdef DEBUG_STOPPING_CONDITIONS MessageInterface::ShowMessage( " Sat is %s, fill direction is %s; fromSat epoch = %.12lf " "toSat epoch = %.12lf\n", fromSat->GetName().c_str(), (fillingBuffer ? "from propagator" : "from buffer"), fromSat->GetRealParameter("A1Epoch"), toSat->GetRealParameter("A1Epoch")); MessageInterface::ShowMessage( " '%s' Satellite state:\n", fromSat->GetName().c_str()); Real *satrv = fromSat->GetState().GetState(); MessageInterface::ShowMessage( " %.12lf %.12lf %.12lf\n %.12lf %.12lf %.12lf\n", satrv[0], satrv[1], satrv[2], satrv[3], satrv[4], satrv[5]); #endif (*toSat) = (*fromSat); #ifdef DEBUG_STOPPING_CONDITIONS MessageInterface::ShowMessage( "After copy, From epoch %.12lf to epoch %.12lf\n", fromSat->GetRealParameter("A1Epoch"), toSat->GetRealParameter("A1Epoch")); #endif } for (std::vector<FormationInterface *>::iterator i = formBuffer.begin(); i != formBuffer.end(); ++i) { soName = (*i)->GetName(); #ifdef DEBUG_STOPPING_CONDITIONS MessageInterface::ShowMessage("Buffering formation %s, filling = %s\n", soName.c_str(), (fillingBuffer?"true":"false")); #endif if (fillingBuffer) { // fromForm = (Formation *)FindObject(soName); toForm = *i; } else { fromForm = *i; // toForm = (Formation *)FindObject(soName); } #ifdef DEBUG_STOPPING_CONDITIONS MessageInterface::ShowMessage( " Formation is %s, fill direction is %s; fromForm epoch = %.12lf" " toForm epoch = %.12lf\n", fromForm->GetName().c_str(), (fillingBuffer ? "from propagator" : "from buffer"), fromForm->GetRealParameter("A1Epoch"), toForm->GetRealParameter("A1Epoch")); #endif (*toForm) = (*fromForm); toForm->UpdateState(); #ifdef DEBUG_STOPPING_CONDITIONS Integer count = fromForm->GetStringArrayParameter("Add").size(); MessageInterface::ShowMessage( "After copy, From epoch %.12lf to epoch %.12lf\n", fromForm->GetRealParameter("A1Epoch"), toForm->GetRealParameter("A1Epoch")); MessageInterface::ShowMessage( " %s for '%s' Formation state:\n", (fillingBuffer ? "Filling buffer" : "Restoring states"), fromForm->GetName().c_str()); Real *satrv = fromForm->GetState().GetState(); for (Integer i = 0; i < count; ++i) MessageInterface::ShowMessage( " %d: %.12lf %.12lf %.12lf %.12lf %.12lf %.12lf\n", i, satrv[i*6], satrv[i*6+1], satrv[i*6+2], satrv[i*6+3], satrv[i*6+4], satrv[i*6+5]); #endif } #ifdef DEBUG_STOPPING_CONDITIONS for (std::vector<Spacecraft *>::iterator i = satBuffer.begin(); i != satBuffer.end(); ++i) MessageInterface::ShowMessage( " Epoch of '%s' is %.12lf\n", (*i)->GetName().c_str(), (*i)->GetRealParameter("A1Epoch")); #endif }