X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrackpart.h;fp=source%2Flibr2c2%2Ftrackpart.h;h=0a07b4d0df857fabb90679e45f0582a05f4fb74d;hb=1ff06c5bc46a677fa389ef86c6b26664368f1653;hp=0000000000000000000000000000000000000000;hpb=9b05c573a38639827697fe393d55b7c76f5bde45;p=r2c2.git diff --git a/source/libr2c2/trackpart.h b/source/libr2c2/trackpart.h new file mode 100644 index 0000000..0a07b4d --- /dev/null +++ b/source/libr2c2/trackpart.h @@ -0,0 +1,51 @@ +/* $Id$ + +This file is part of R²C² +Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + +#ifndef LIBR2C2_TRACKPART_H_ +#define LIBR2C2_TRACKPART_H_ + +#include +#include "geometry.h" + +namespace R2C2 { + +class TrackPart +{ +public: + class Loader: public Msp::DataFile::BasicLoader + { + public: + Loader(TrackPart &); + private: + virtual void finish(); + void start(float, float, float); + }; + +private: + Point pos; + float dir; + float length; + float radius; + unsigned path; + bool dead_end; + TrackPart *links[2]; + +public: + TrackPart(); + + float get_length() const; + bool is_curved() const { return radius; } + TrackPoint get_point(float) const; + unsigned get_path() const { return path; } + bool is_dead_end() const { return dead_end; } + void check_link(TrackPart &); + TrackPart *get_link(unsigned) const; +}; + +} // namespace R2C2 + +#endif