+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#ifndef LIBMARKLIN_GEOMETRY_H_
#define LIBMARKLIN_GEOMETRY_H_
+#include <cmath>
#include <vector>
namespace Marklin {
struct Point
{
- float x,y,z;
+ float x, y, z;
Point(): x(0), y(0), z(0) { }
+ Point(float x_, float y_): x(x_), y(y_), z(0) { }
Point(float x_, float y_, float z_): x(x_), y(y_), z(z_) { }
};
+inline float distance(const Point &p, const Point &q)
+{ return sqrt((p.x-q.x)*(p.x-q.x) + (p.y-q.y)*(p.y-q.y) + (p.z-q.z)*(p.z-q.z)); }
+
+struct TrackPoint
+{
+ Point pos;
+ float dir;
+ float grade;
+
+ TrackPoint(): dir(0), grade(0) { }
+};
+
} // namespace Marklin
#endif