This is a further refactoring of the World NAV data API and implementation to create a baseline for future support for obtaining NAV data from a SQLite database.
It updates the way that NavNode connections are queried and implemented. Previously the NavNode object contained a vector of all NavEdges (connections) from that NavNode. This is suitable for a design where all NavNodes are held in memory, but in the SQLite implementation NavNodes will only be loaded when required. The connections from a NavNode have been moved into a separate container, and the API for querying these connections has been moved to the main World class API. There is virtually no difference in memory usage for the XData implementation.
A number of xdata-specific implementation functions have been removed from the World abstract API. These were overlooked in earlier refactoring PRs/
Region names are only set if the region does not already have a name.
This is a further refactoring of the World NAV data API and implementation to create a baseline for future support for obtaining NAV data from a SQLite database.
It updates the way that NavNode connections are queried and implemented. Previously the NavNode object contained a vector of all NavEdges (connections) from that NavNode. This is suitable for a design where all NavNodes are held in memory, but in the SQLite implementation NavNodes will only be loaded when required. The connections from a NavNode have been moved into a separate container, and the API for querying these connections has been moved to the main World class API. There is virtually no difference in memory usage for the XData implementation.
A number of xdata-specific implementation functions have been removed from the World abstract API. These were overlooked in earlier refactoring PRs/
Region names are only set if the region does not already have a name.