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.