]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/geometry.h
Add an SVG exporter to Designer
[r2c2.git] / source / libmarklin / geometry.h
index 9dee86ef949b7d4de481e46ddf8faacf118920c4..674a6b9710ec13b640d772e3b37542c9480703c7 100644 (file)
@@ -1,18 +1,39 @@
+/* $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