Update of /cvsroot/gcblue/gcb_wx/src/common
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3228/src/common
Modified Files:
simmath.cpp
Log Message:
Index: simmath.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/common/simmath.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** simmath.cpp 8 Aug 2004 00:31:33 -0000 1.15
--- simmath.cpp 16 Aug 2004 01:43:30 -0000 1.16
***************
*** 289,293 ****
}
! void tcTrack::GetPrediction(tcTrack& td, double afTime) {
float dt_s = (float)(afTime - mfTimestamp);
--- 289,310 ----
}
! /**
! * This is a version of GetPrediction that returns a predicted track instead of using a reference
! * and uses delta time vs. absolute time.
! *
! * @param timeDelta_s time difference from track time to predict ahead or use < 0 to predict back
! * @see tcTrack::GetPrediction
! */
! tcTrack tcTrack::PredictAhead(float timeDelta_s)
! {
! tcTrack track;
!
! GetPrediction(track, mfTimestamp + timeDelta_s);
!
! return track;
! }
!
! void tcTrack::GetPrediction(tcTrack& td, double afTime)
! {
float dt_s = (float)(afTime - mfTimestamp);
***************
*** 300,309 ****
else {td.mfHeading_rad = 0;}
! if (bSpeedValid && bHeadingValid) {
float fGroundSpeed_kts;
! if (bClimbValid) {
fGroundSpeed_kts = mfSpeed_kts*cosf(mfClimbAngle_rad);
}
! else {
fGroundSpeed_kts = mfSpeed_kts;
}
--- 317,329 ----
else {td.mfHeading_rad = 0;}
! if (bSpeedValid && bHeadingValid)
! {
float fGroundSpeed_kts;
! if (bClimbValid)
! {
fGroundSpeed_kts = mfSpeed_kts*cosf(mfClimbAngle_rad);
}
! else
! {
fGroundSpeed_kts = mfSpeed_kts;
}
***************
*** 313,317 ****
td.mfSpeed_kts = mfSpeed_kts;
}
! else {
td.mfLat_rad = mfLat_rad;
td.mfLon_rad = mfLon_rad;
--- 333,338 ----
td.mfSpeed_kts = mfSpeed_kts;
}
! else
! {
td.mfLat_rad = mfLat_rad;
td.mfLon_rad = mfLon_rad;
***************
*** 319,328 ****
}
! if (bAltValid && bClimbValid) {
float fClimbRate_mps = C_KTSTOMPS*mfSpeed_kts*sinf(mfClimbAngle_rad);
td.mfAlt_m = mfAlt_m + fClimbRate_mps*dt_s;
td.mfClimbAngle_rad = mfClimbAngle_rad;
}
! else {
td.mfAlt_m = mfAlt_m;
td.mfClimbAngle_rad = 0;
--- 340,351 ----
}
! if (bAltValid && bClimbValid)
! {
float fClimbRate_mps = C_KTSTOMPS*mfSpeed_kts*sinf(mfClimbAngle_rad);
td.mfAlt_m = mfAlt_m + fClimbRate_mps*dt_s;
td.mfClimbAngle_rad = mfClimbAngle_rad;
}
! else
! {
td.mfAlt_m = mfAlt_m;
td.mfClimbAngle_rad = 0;
|