X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrackpart.h;h=aebe7ef7f2418cb7c9511663a928b694ce3cb1e6;hb=90790c9a28793d31b9ea38eea2f55652a0e9297b;hp=34605ca25461201781518d909aa533fd2cc832c5;hpb=449fb5de95ddb2ac9da4bd72a1c12150505d5549;p=r2c2.git diff --git a/source/libmarklin/trackpart.h b/source/libmarklin/trackpart.h index 34605ca..aebe7ef 100644 --- a/source/libmarklin/trackpart.h +++ b/source/libmarklin/trackpart.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of the MSP Märklin suite -Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa +Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa Distributed under the GPL */ @@ -14,8 +14,9 @@ Distributed under the GPL namespace Marklin { -struct TrackPart +class TrackPart { +public: class Loader: public Msp::DataFile::BasicLoader { public: @@ -25,17 +26,25 @@ struct TrackPart void start(float, float, float); }; +private: Point pos; float dir; float length; float radius; - unsigned route; + unsigned path; bool dead_end; + TrackPart *links[2]; +public: TrackPart(); - void collect_endpoints(std::vector &) const; - Point get_point(float) const; + 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 Marklin