3 This file is part of the MSP Märklin suite
4 Copyright © 2010 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
8 #ifndef MARKLIN3D_TRACKTYPE_H_
9 #define MARKLIN3D_TRACKTYPE_H_
11 #include <msp/gl/mesh.h>
12 #include <msp/gl/meshbuilder.h>
13 #include <msp/gl/renderable.h>
14 #include "libmarklin/profile.h"
15 #include "libmarklin/tracktype.h"
21 class TrackType3D: public Msp::GL::Renderable
24 const Catalogue3D &catalogue;
25 Msp::GL::Mesh ballast_mesh;
26 Msp::GL::Mesh rail_mesh;
27 std::vector<Msp::GL::Mesh *> path_meshes;
28 std::vector<Point> border;
33 TrackType3D(const Catalogue3D &, const TrackType &);
35 void get_bounds(float, Point &, Point &) const;
36 const Msp::GL::Mesh &get_path_mesh(unsigned) const;
38 virtual void render(const Msp::GL::Tag &) const;
41 void build_part(const TrackPart &, const Profile &, const Point &, Msp::GL::MeshBuilder &, unsigned &);
44 } // namespace Marklin