X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fgeometry.h;h=674a6b9710ec13b640d772e3b37542c9480703c7;hb=6ba6af3637c299ab00828c49de9151429488cc17;hp=240bd89ac4fdd85dc83f6c92943a1ed333182768;hpb=3e9c210ddc036cd015228504cc0803c909e27f84;p=r2c2.git diff --git a/source/libmarklin/geometry.h b/source/libmarklin/geometry.h index 240bd89..674a6b9 100644 --- a/source/libmarklin/geometry.h +++ b/source/libmarklin/geometry.h @@ -1,13 +1,14 @@ /* $Id$ This file is part of the MSP Märklin suite -Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa +Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa Distributed under the GPL */ #ifndef LIBMARKLIN_GEOMETRY_H_ #define LIBMARKLIN_GEOMETRY_H_ +#include #include namespace Marklin { @@ -17,9 +18,22 @@ struct Point 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