/* $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
*/
namespace Marklin {
-struct TrackPart
+class TrackPart
{
+public:
class Loader: public Msp::DataFile::BasicLoader<TrackPart>
{
public:
void start(float, float, float);
};
+private:
Point pos;
float dir;
float length;
float radius;
unsigned path;
bool dead_end;
+ TrackPart *links[2];
+public:
TrackPart();
- void collect_endpoints(std::vector<Endpoint> &) 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