9 class QXmlStreamWriter;
11 class QXmlStreamReader;
39 explicit Summarized();
40 //virtual ~Summarized();
43 inline double getDuration(){return duration;}
44 inline double getDistance(){return distance;}
45 inline qreal getAvgSpeed(){return avgSpeed;}
46 inline qreal getMaxSpeed(){return maxSpeed;}
47 inline qreal getElevationGain(){return elevationGain;}
48 inline qreal getElevationLoss(){return elevationLoss;}
49 inline qreal getMinElevation(){return minElevation;}
50 inline qreal getMaxElevation(){return maxelevation;}
51 inline qreal getAvgPace(){return avgPace;}
52 inline qreal getBestPace(){return bestPace;}
55 void addSummary(Summarized summary);
56 Summarized& account(GpsPoint point);
57 Summarized& account(GpsPoint first, GpsPoint last);
59 inline int getNumPoints(){return numPoints;}
60 inline void setNumPoints(int p){numPoints=p;}
62 inline double getMinLatitude(){return minLatitude;}
63 inline void setMinLatitude(double latitude){minLatitude=latitude;}
65 inline double getMaxLatitude(){return maxLatitude;}
66 inline void setMaxLatitude(double latitude){maxLatitude=latitude;}
68 inline double getMinLongitude(){return minLongitude;}
69 inline void setMinLongitude(double longitude){minLongitude=longitude;}
71 inline double getMaxLongitude(){return maxLongitude;}
72 inline void setMaxLongitude(double longitude){maxLongitude=longitude;}
74 inline int getGpsInterval(){return gpsInterval;}
75 inline void setGpsInterval(int interval){gpsInterval=interval;}
77 inline QDateTime getStartTime(){return startTime;}
78 inline void setStartTime(QDateTime time){startTime=time;}
80 inline QDateTime getEndTime(){return endTime;}
81 inline void setEndTime(QDateTime time){endTime=time;}
83 inline double getDuration(){return duration;}
84 inline void setDuration(double duration_p){duration=duration_p;}
86 inline double getDistance(){return distance;}
87 inline void setDistance(double distance_p){distance=distance_p;}
89 inline int getAvgSpeed(){return avgSpeed;}
90 inline void setAvgSpeed(int speed){avgSpeed=speed;}
92 inline int getMaxSpeed(){return maxSpeed;}
93 inline void setMaxSpeed(int speed){maxSpeed=speed;}
95 inline int getElevationGain(){return elevationGain;}
96 inline void setElevationGain(int elevation){elevationGain=elevation;}
98 inline int getElevationLoss(){return elevationLoss;}
99 inline void setElevationLoss(int elevation){elevationLoss=elevation;}
101 inline int getMinElevation(){return minElevation;}
102 inline void setMinElevation(int elevation){minElevation=elevation;}
104 inline int getMaxElevation(){return maxElevation;}
105 inline void setMaxElevation(int elevation){maxElevation=elevation;}
107 inline int getAvgPace(){return avgPace;}
108 inline void setAvgPace(int time){avgPace=time;}
110 inline int getBestPace(){return bestPace;}
111 inline void setBestPace(int time){bestPace=time;}
112 QString toSumString();
126 qreal magneticVariation;
127 qreal horizontalAccuracy;
128 qreal verticalAccuracy;
132 explicit GpsPoint(double latitude, double longitude, int elevation);
133 explicit GpsPoint(double latitude, double longitude, int elevation,QDateTime time, qreal speed,
134 qreal direction, qreal magneticVariation,qreal horizontalAccuracy, qreal verticalAccuracy);
135 explicit GpsPoint(double latitude, double longitude, int elevation,QDateTime time, qreal speed,
136 qreal direction, qreal magneticVariation,qreal horizontalAccuracy, qreal verticalAccuracy, qreal distancePrev, QTime timeToPrev);
138 //virtual ~GpsPoint();
140 inline double getLatitude(){return latitude;}
141 inline void setLatitude(double lat){latitude=lat;}
143 inline double getLongitude(){return longitude;}
144 inline void setLongitude(double longitude_p){longitude=longitude_p;}
146 inline double getElevation(){return elevation;}
147 inline void setElevation(double elevation_p){elevation=elevation_p;}
149 inline QDateTime getTime(){return time;}
150 inline void setTime(QDateTime time_p){time=time_p;}
152 inline qreal getSpeed(){return speed;}
153 inline void setSpeed(qreal speed_p){speed=speed_p;}
155 inline qreal getDirection(){return direction;}
156 inline void setDirection(qreal direction_p){direction=direction_p;}
158 inline qreal getMagneticVariation(){return magneticVariation;}
159 inline void setMagneticVariation(qreal magneticVariation_p){magneticVariation=magneticVariation_p;}
161 inline qreal getHorizontalAccuracy(){return horizontalAccuracy;}
162 inline void setHorizontalAccuracy(qreal horizontalAccuracy_p){horizontalAccuracy=horizontalAccuracy_p;}
164 inline qreal getVerticalAccuracy(){return verticalAccuracy;}
165 inline void setVerticalAccuracy(qreal verticalAccuracy_p){verticalAccuracy=verticalAccuracy_p;}
167 inline double getDistancePrev(){return distancePrev;}
168 inline void setDistancePrev(double distance){distancePrev=distance;}
172 GpsPoint& operator= (const GpsPoint&);
174 friend int operator== (const GpsPoint&, const GpsPoint&);
175 friend int operator!= (const GpsPoint&, const GpsPoint&);
176 friend QDataStream& operator<< (QDataStream&, const GpsPoint&);
178 double distance(GpsPoint p);
182 class Lap: public Summarized{
186 QList<GpsPoint*> points;
190 explicit Lap(int number);
193 inline int getNumber(){return number;}
194 inline void setNumber(int number_p){number=number_p;}
196 Summarized* addPoint(GpsPoint* point);
197 inline QList<GpsPoint*> getPoints(){return points;}
202 class Activity: public Summarized{
212 explicit Activity(QString sport);
215 inline QDateTime getId(){return id;}
216 inline void setId(QDateTime time){id=time;}
218 inline QString getSport(){return sport;}
219 inline void setSport(QString sport_p){sport=sport_p;}
221 inline int getNumLaps(){return numLaps;}
222 inline void setNumLaps(int laps){numLaps=laps;}
225 Summarized* addPoint(GpsPoint* point);
227 inline QList<Lap*> getLaps(){return laps;}
232 class Track:public Summarized
240 QList<Activity*> activities;
248 void writeTCXCourses(QXmlStreamWriter* xmlWriter);
249 void writeTCXCourse(QXmlStreamWriter* xmlWriter, Activity* act);
250 void writeTCXLap(QXmlStreamWriter* xmlWriter, Lap* lap);
251 void writeTCXPoint(QXmlStreamWriter* xmlWriter, GpsPoint* point);
252 void writeGPXTracks(QXmlStreamWriter* xmlWriter);
253 void writeGPXTrack(QXmlStreamWriter* xmlWriter, Activity* act);
254 void writeGPXPoint(QXmlStreamWriter* xmlWriter, GpsPoint* point);
255 void writeGPXTrkseg(QXmlStreamWriter* xmlWriter, Lap* lap);
260 explicit Track(QString fileName,QString name);
264 bool readFromXML(QString fileName);
265 GpsPoint* parseGpsPoint(QXmlStreamReader& xml);
266 QList<GpsPoint*> getGpsPoints();
267 inline QString getFileName(){return fileName;}
268 inline void setFileName(QString file){fileName=file;}
270 inline QString getName(){return name;}
271 inline void setName(QString n){name=n;}
272 inline void setName(const char* n){name=n;}
273 inline int getNumActivities(){return numActivities;}
274 inline void setNumActivites(int activities){numActivities=activities;}
276 void addActivity(QString sport);
278 Summarized* addPoint(GpsPoint* point);