X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fgeometry.h;h=674a6b9710ec13b640d772e3b37542c9480703c7;hb=6ba6af3637c299ab00828c49de9151429488cc17;hp=4b0afc23f2b9fdc1672e2b814c7bf2e24542755e;hpb=1d735b80482317fd930eb47ca255ab9f1f120a7d;p=r2c2.git diff --git a/source/libmarklin/geometry.h b/source/libmarklin/geometry.h index 4b0afc2..674a6b9 100644 --- a/source/libmarklin/geometry.h +++ b/source/libmarklin/geometry.h @@ -1,6 +1,14 @@ +/* $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 #include namespace Marklin { @@ -10,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