85 int GetnPoints(
void) {
return TrackPoints.size(); }
87 void SetVisible(
bool visible =
true) { m_bVisible = visible; }
92 TrackPoint *AddNewPoint(vector2D point, wxDateTime time);
94 void SetListed(
bool listed =
true) { m_bListed = listed; }
95 virtual bool IsRunning() {
return false; }
97 bool IsVisible() {
return m_bVisible; }
98 bool IsListed() {
return m_bListed; }
100 int GetCurrentTrackSeg() {
return m_CurrentTrackSeg; }
101 void SetCurrentTrackSeg(
int seg) { m_CurrentTrackSeg = seg; }
104 int Simplify(
double maxDelta);
105 Route *RouteFromTrack(wxGenericProgressDialog *pprog);
107 void ClearHighlights();
109 wxString GetName(
bool auto_if_empty =
false)
const {
110 if (!auto_if_empty || !m_TrackNameString.IsEmpty()) {
111 return m_TrackNameString;
115 if ((
int)TrackPoints.size() > 0) rp = TrackPoints[0];
116 if (rp && rp->GetCreateTime().IsValid())
117 name = rp->GetCreateTime().FormatISODate() + _T(
" ") +
121 name = _(
"(Unnamed Track)");
125 void SetName(
const wxString name) { m_TrackNameString = name; }
127 wxString GetDate(
bool auto_if_empty =
false)
const {
130 if ((
int)TrackPoints.size() > 0) rp = TrackPoints[0];
131 if (rp && rp->GetCreateTime().IsValid())
132 name = rp->GetCreateTime().FormatISODate() + _T(
" ") +
136 name = _(
"(Unknown Date)");
144 wxString m_TrackDescription;
146 wxString m_TrackStartString;
147 wxString m_TrackEndString;
157 int m_CurrentTrackSeg;
159 HyperlinkList *m_HyperlinkList;
160 int m_HighlightedTrackPoint;
162 void Clone(
Track *psourcetrack,
int start_nPoint,
int end_nPoint,
163 const wxString &suffix);
168 void DouglasPeuckerReducer(std::vector<TrackPoint *> &list,
169 std::vector<bool> &keeplist,
int from,
int to,
172 double GetXTE(
double fm1Lat,
double fm1Lon,
double fm2Lat,
double fm2Lon,
173 double toLat,
double toLon);
175 std::vector<TrackPoint *> TrackPoints;
176 std::vector<std::vector<SubTrack> > SubTracks;
183 double ComputeScale(
int left,
int right);
184 void InsertSubTracks(LLBBox &box,
int level,
int pos);
196 wxString m_TrackNameString;