** global input files is changed.
*/
bool isRebuildRequired();
-
+
+ /**
+ * check if cached scenery paths have changed, and if so, drop scenery-
+ * dependant data such as ground-nets.
+ */
+ bool dropGroundnetsIfRequired();
+
/**
* run the cache rebuild - returns true if rebuild is complete,
* otherwise keep going.
void setRunwayReciprocal(PositionedID runway, PositionedID recip);
void setRunwayILS(PositionedID runway, PositionedID ils);
- void updateRunwayThreshold(PositionedID runwayID, const SGGeod &aThreshold,
- double aHeading, double aDisplacedThreshold,
- double aStopway);
-
PositionedID insertNavaid(FGPositioned::Type ty, const std::string& ident,
const std::string& name, const SGGeod& pos, int freq, int range, double multiuse,
PositionedID apt, PositionedID runway);
- void updateILS(PositionedID ils, const SGGeod& newPos, double aHdg);
-
// Assign colocated DME to a navaid
void setNavaidColocated(PositionedID navaid, PositionedID colocatedDME);
PositionedID createPOI(FGPositioned::Type ty, const std::string& ident, const SGGeod& aPos);
- void removePOI(FGPositioned::Type ty, const std::string& aIdent);
+ bool removePOI(FGPositioned::Type ty, const std::string& aIdent);
void dropGroundnetFor(PositionedID aAirport);
+ /**
+ * Remove all ground-nets globally from the cache.
+ * This includes parking and taxi-nodes and edges between them. It's useful
+ * when scenery paths change, since the ground-nets depend on the scenery.
+ * Using this we can avoid havind to rebuild the entire cache.
+ */
+ void dropAllGroundnets();
+
PositionedID insertParking(const std::string& name, const SGGeod& aPos,
PositionedID aAirport,
double aHeading, int aRadius, const std::string& aAircraftType,
NavDataCache* _instance;
bool _committed;
};
+
+ bool isReadOnly() const;
private:
NavDataCache();