#include <Airports/runways.hxx>
#include <Navaids/NavDataCache.hxx>
+#include <Navaids/navrecord.hxx>
using std::string;
return &tf;
}
-FGNavList::TypeFilter* FGNavList::carrierFilter()
+FGNavList::TypeFilter* FGNavList::mobileTacanFilter()
{
static TypeFilter tf(FGPositioned::MOBILE_TACAN);
return &tf;
}
-FGNavRecord *FGNavList::findByFreq( double freq, const SGGeod& position,
- TypeFilter* filter)
+FGNavRecordRef FGNavList::findByFreq( double freq,
+ const SGGeod& position,
+ TypeFilter* filter )
{
flightgear::NavDataCache* cache = flightgear::NavDataCache::instance();
int freqKhz = static_cast<int>(freq * 100 + 0.5);
= FG_NAV_MAX_RANGE*SG_NM_TO_METER*FG_NAV_MAX_RANGE*SG_NM_TO_METER;
BOOST_FOREACH(PositionedID id, stations) {
- FGNavRecord* station = (FGNavRecord*) cache->loadById(id);
+ FGNavRecordRef station = FGPositioned::loadById<FGNavRecord>(id);
if (!filter->pass(station)) {
continue;
}
return NULL;
}
-FGNavRecord *FGNavList::findByFreq( double freq, TypeFilter* filter)
+FGNavRecordRef FGNavList::findByFreq(double freq, TypeFilter* filter)
{
flightgear::NavDataCache* cache = flightgear::NavDataCache::instance();
int freqKhz = static_cast<int>(freq * 100 + 0.5);
}
BOOST_FOREACH(PositionedID id, stations) {
- FGNavRecord* station = (FGNavRecord*) cache->loadById(id);
+ FGNavRecordRef station = FGPositioned::loadById<FGNavRecord>(id);
if (filter->pass(station)) {
return station;
}
PositionedIDVec ids(cache->findNavaidsByFreq(freqKhz, position, filter));
BOOST_FOREACH(PositionedID id, ids) {
- FGNavRecord* station = (FGNavRecord*) cache->loadById(id);
+ FGNavRecordRef station = FGPositioned::loadById<FGNavRecord>(id);
if (!filter->pass(station)) {
continue;
}
nav_list_type reply;
int f = (int)(freq*100.0 + 0.5);
- FGPositioned::List stations = FGPositioned::findAllWithIdent(ident, filter);
+ FGPositionedList stations = FGPositioned::findAllWithIdent(ident, filter);
BOOST_FOREACH(FGPositionedRef ref, stations) {
FGNavRecord* nav = static_cast<FGNavRecord*>(ref.ptr());
if ( f <= 0.0 || nav->get_freq() == f) {