1 #ifndef MARKLIN3D_TRACK_H_
2 #define MARKLIN3D_TRACK_H_
5 #include <msp/gl/vertexarray.h>
6 #include <msp/gl/vertexarraybuilder.h>
7 #include "libmarklin/track.h"
8 #include "libmarklin/trackpart.h"
16 Track3D(Track &, unsigned);
17 void set_color(const Color &c) { color=c; }
18 void set_quality(unsigned);
19 void get_bounds(float, Point &, Point &) const;
20 Track &get_track() const { return track; }
22 void render_endpoints();
23 void render_route(int);
27 std::vector<Point> border;
28 Msp::GL::VertexArray varray;
29 std::vector<unsigned> base_seq;
30 std::vector<unsigned> rail_seq;
31 std::vector<std::vector<unsigned> > route_seq;
34 void prepare_render();
36 void build_part(const TrackPart &, Msp::GL::VertexArrayBuilder &, unsigned &);
38 typedef std::list<Track3D *> Track3DSeq;
40 } // namespace Marklin