18#ifndef NAVOBJECTCOLLECTION_H_
19#define NAVOBJECTCOLLECTION_H_
24#include <wx/checkbox.h>
27#include "observable/evtvar.h"
37#define OUT_TYPE 1 << 1
38#define OUT_TIME 1 << 2
39#define OUT_NAME 1 << 3
40#define OUT_NAME_FORCE 1 << 4
41#define OUT_DESC 1 << 5
42#define OUT_DESC_FORCE 1 << 6
43#define OUT_SYM_FORCE 1 << 7
44#define OUT_GUID 1 << 8
46#define OUT_VIZ_NAME 1 << 10
47#define OUT_SHARED 1 << 11
48#define OUT_HYPERLINKS 1 << 13
49#define OUT_ACTION_ADD 1 << 14
50#define OUT_ACTION_DEL 1 << 15
51#define OUT_ACTION_UPD 1 << 16
52#define OUT_EXTENSION 1 << 17
53#define OUT_ARRIVAL_RADIUS 1 << 18
54#define OUT_WAYPOINT_RANGE_RINGS 1 << 19
55#define OUT_WAYPOINT_SCALE 1 << 20
56#define OUT_TIDE_STATION 1 << 21
57#define OUT_RTE_PROPERTIES 1 << 22
59#define OPT_TRACKPT OUT_TIME
61 (OUT_TYPE) + (OUT_TIME) + (OUT_NAME) + (OUT_DESC) + (OUT_SYM_FORCE) + \
62 (OUT_GUID) + (OUT_VIZ) + (OUT_VIZ_NAME) + (OUT_SHARED) + \
63 (OUT_HYPERLINKS) + (OUT_ARRIVAL_RADIUS) + (OUT_WAYPOINT_RANGE_RINGS) + \
64 (OUT_WAYPOINT_SCALE) + (OUT_TIDE_STATION)
65#define OPT_ROUTEPT OPT_WPT + (OUT_RTE_PROPERTIES)
69#define RT_OUT_ACTION_ADD 1 << 1
70#define RT_OUT_ACTION_DEL 1 << 2
71#define RT_OUT_ACTION_UPD 1 << 3
72#define RT_OUT_NO_RTPTS 1 << 4
80using RouteList = std::vector<Route *>;
83RoutePoint *WaypointExistsByNamePosition(
const wxString &name,
double lat,
85RoutePoint *WaypointExistsByGUID(
const wxString &guid);
86Route *RouteExists(
const wxString &guid);
88Track *TrackExists(
const wxString &guid);
93 bool b_layerviz,
int layer_id,
bool b_change,
94 bool load_points =
true);
97 wxString GUID,
bool b_fullviz,
bool b_layer,
98 bool b_layerviz,
int layer_id,
99 bool b_nameviz =
true);
102bool InsertTrack(
Track *pTentTrack,
bool bApplyChanges =
false);
103bool InsertWpt(
RoutePoint *pWp,
bool overwrite);
106 bool b_layerviz,
int layer_id);
113 bool CreateNavObjGPXPoints(
void);
114 bool CreateNavObjGPXRoutes(
void);
115 bool CreateNavObjGPXTracks(
void);
117 void AddGPXRoutesList(RouteList *pRoutes);
118 void AddGPXTracksList(std::vector<Track *> *pTracks);
119 bool AddGPXPointsList(RoutePointList *pRoutePoints);
120 bool AddGPXRoute(
Route *pRoute);
121 bool AddGPXTrack(
Track *pTrk);
124 bool CreateAllGPXObjects();
125 bool LoadAllGPXObjects(
bool b_full_viz,
int &wpt_duplicates,
126 bool b_compute_bbox =
false);
127 int LoadAllGPXObjectsAsLayer(
int layer_id,
bool b_layerviz,
128 wxCheckBoxState b_namesviz);
129 bool LoadAllGPXTrackObjects();
130 bool LoadAllGPXRouteObjects();
131 bool LoadAllGPXPointObjects();
133 bool SaveFile(
const wxString filename);
135 void SetRootGPXNode(
void);
137 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.
Waypoint or mark abstraction.
Recorded track abstraction.