Changeset 360 in Sophya
- Timestamp:
- Aug 6, 1999, 5:05:47 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archTOI.old/auxinterpgps.cc
r359 r360 13 13 14 14 void AuxInterpGPS::FindElem(double mjd) { 15 ilast = elems. lower_bound(elem(mjd,0,0,0));16 ilastok = (ilast != elems.end() );15 ilast = elems.upper_bound(elem(mjd,0,0,0)); 16 ilastok = (ilast != elems.end() && ilast != elems.begin()); 17 17 } 18 18 … … 20 20 int AuxInterpGPS::getLocation(double mjd, double& lat, double& lon, double& alt) { 21 21 if (!ilastok || 22 (mjd <=(*ilast).mjd)) {22 (mjd > (*ilast).mjd)) { 23 23 FindElem(mjd); 24 24 } else { 25 set<elem>::const_iterator i = ilast; i ++;26 if (mjd >(*i).mjd) FindElem(mjd);25 set<elem>::const_iterator i = ilast; i--; 26 if (mjd <= (*i).mjd) FindElem(mjd); 27 27 } 28 29 28 30 29 31 if (!ilastok) return -1; 30 if (mjd <= (*ilast).mjd) return -1; 31 set<elem>::const_iterator i = ilast; i++; 32 if (mjd > (*i).mjd) return -1; 32 double lastmjd = (*ilast).mjd; 33 if (mjd > lastmjd) return -1; 34 if (ilast == elems.begin()) return -1; 35 set<elem>::const_iterator i = ilast; i--; 36 double prevmjd = (*i).mjd; 37 if (mjd < prevmjd) return -1; 33 38 34 double x = (mjd - (*ilast).mjd) / ((*i).mjd - (*ilast).mjd);39 double x = (mjd - prevmjd) / (lastmjd - prevmjd); 35 40 36 lat = (*i last).lat*(1-x) + (*i).lat*x;37 lon = (*i last).lon*(1-x) + (*i).lon*x;38 alt = (*i last).alt*(1-x) + (*i).alt*x;41 lat = (*i).lat*(1-x) + (*ilast).lat*x; 42 lon = (*i).lon*(1-x) + (*ilast).lon*x; 43 alt = (*i).alt*(1-x) + (*ilast).alt*x; 39 44 40 45 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.