18#ifndef NAVOBJECTCOLLECTION_H_ 
   19#define NAVOBJECTCOLLECTION_H_ 
   24#include <wx/checkbox.h> 
   36#define OUT_TYPE 1 << 1         
   37#define OUT_TIME 1 << 2         
   38#define OUT_NAME 1 << 3         
   39#define OUT_NAME_FORCE 1 << 4   
   40#define OUT_DESC 1 << 5         
   41#define OUT_DESC_FORCE 1 << 6   
   42#define OUT_SYM_FORCE 1 << 7   
   43#define OUT_GUID 1 << 8        
   45#define OUT_VIZ_NAME 1 << 10   
   46#define OUT_SHARED 1 << 11     
   47#define OUT_HYPERLINKS 1 << 13   
   48#define OUT_ACTION_ADD 1 << 14   
   49#define OUT_ACTION_DEL 1 << 15 
   50#define OUT_ACTION_UPD 1 << 16 
   51#define OUT_EXTENSION 1 << 17 
   52#define OUT_ARRIVAL_RADIUS 1 << 18 
   53#define OUT_WAYPOINT_RANGE_RINGS 1 << 19 
   54#define OUT_WAYPOINT_SCALE 1 << 20 
   55#define OUT_TIDE_STATION 1 << 21 
   56#define OUT_RTE_PROPERTIES 1 << 22 
   58#define OPT_TRACKPT OUT_TIME 
   60  (OUT_TYPE) + (OUT_TIME) + (OUT_NAME) + (OUT_DESC) + (OUT_SYM_FORCE) +      \ 
   61      (OUT_GUID) + (OUT_VIZ) + (OUT_VIZ_NAME) + (OUT_SHARED) +               \ 
   62      (OUT_HYPERLINKS) + (OUT_ARRIVAL_RADIUS) + (OUT_WAYPOINT_RANGE_RINGS) + \ 
   63      (OUT_WAYPOINT_SCALE) + (OUT_TIDE_STATION) 
   64#define OPT_ROUTEPT OPT_WPT + (OUT_RTE_PROPERTIES) 
   68#define RT_OUT_ACTION_ADD 1 << 1   
   69#define RT_OUT_ACTION_DEL 1 << 2 
   70#define RT_OUT_ACTION_UPD 1 << 3 
   71#define RT_OUT_NO_RTPTS 1 << 4 
   79using RouteList = std::vector<Route *>;  
 
   82RoutePoint *WaypointExists(
const wxString &name, 
double lat, 
double lon);
 
   83RoutePoint *WaypointExists(
const wxString &guid);
 
   84Route *RouteExists(
const wxString &guid);
 
   86Track *TrackExists(
const wxString &guid);
 
   91                     bool b_layerviz, 
int layer_id, 
bool b_change,
 
   92                     bool load_points = 
true);
 
   95                             wxString GUID, 
bool b_fullviz, 
bool b_layer,
 
   96                             bool b_layerviz, 
int layer_id,
 
   97                             bool b_nameviz = 
true);
 
  100bool InsertTrack(
Track *pTentTrack, 
bool bApplyChanges = 
false);
 
  101bool InsertWpt(
RoutePoint *pWp, 
bool overwrite);
 
  104                     bool b_layerviz, 
int layer_id);
 
  111  bool CreateNavObjGPXPoints(
void);
 
  112  bool CreateNavObjGPXRoutes(
void);
 
  113  bool CreateNavObjGPXTracks(
void);
 
  115  void AddGPXRoutesList(RouteList *pRoutes);
 
  116  void AddGPXTracksList(std::vector<Track *> *pTracks);
 
  117  bool AddGPXPointsList(RoutePointList *pRoutePoints);
 
  118  bool AddGPXRoute(
Route *pRoute);
 
  119  bool AddGPXTrack(
Track *pTrk);
 
  122  bool CreateAllGPXObjects();
 
  123  bool LoadAllGPXObjects(
bool b_full_viz, 
int &wpt_duplicates,
 
  124                         bool b_compute_bbox = 
false);
 
  125  int LoadAllGPXObjectsAsLayer(
int layer_id, 
bool b_layerviz,
 
  126                               wxCheckBoxState b_namesviz);
 
  127  bool LoadAllGPXTrackObjects();
 
  128  bool LoadAllGPXRouteObjects();
 
  129  bool LoadAllGPXPointObjects();
 
  131  bool SaveFile(
const wxString filename);
 
  133  void SetRootGPXNode(
void);
 
  135  LLBBox &GetBBox() { 
return BBox; };
 
 
Represents a waypoint or mark within the navigation system.
 
Represents a navigational route in the navigation system.
 
Represents a single point in a track.
 
Represents a track, which is a series of connected track points.
 
A common variable shared between producer and consumer which supports Listen() and Notify().
 
Waypoint or mark abstraction.
 
Recorded track abstraction.