]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/tracktype.h
Render ties between rails on tracks
[r2c2.git] / source / 3d / tracktype.h
index e43dc428f1867a217a19ef8204fdeb159d6caca7..3923ab1ac35f28d2835c04b8ed7189d597023875 100644 (file)
@@ -1,44 +1,34 @@
-/* $Id$
-
-This file is part of R²C²
-Copyright © 2010-2011  Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
 #ifndef R2C2_3D_TRACKTYPE_H_
 #define R2C2_3D_TRACKTYPE_H_
 
+#include <map>
 #include <msp/gl/mesh.h>
 #include <msp/gl/meshbuilder.h>
 #include <msp/gl/object.h>
 #include "libr2c2/profile.h"
 #include "libr2c2/tracktype.h"
+#include "objecttype.h"
 
 namespace R2C2 {
 
-class Catalogue3D;
-
-class TrackType3D
+class TrackType3D: public ObjectType3D
 {
 private:
-       Catalogue3D &catalogue;
        Msp::GL::Mesh *mesh;
        Msp::GL::Object *object;
-       std::vector<Msp::GL::Mesh *> path_meshes;
-       std::vector<Vector> border;
-       float min_z;
-       float max_z;
+       bool own_data;
+       std::map<unsigned, Msp::GL::Mesh *> path_meshes;
 
 public:
        TrackType3D(Catalogue3D &, const TrackType &);
        ~TrackType3D();
 
-       void get_bounds(float, Vector &, Vector &) const;
        const Msp::GL::Object &get_object() const { return *object; }
-       const Msp::GL::Mesh &get_path_mesh(unsigned) const;
+       const Msp::GL::Mesh &get_path_mesh(int, int) const;
 
 private:
        void build_part(const TrackPart &, const Profile &, const Vector &, bool, Msp::GL::MeshBuilder &, unsigned &);
+       void build_ties(const TrackPart &, const Profile &, float, float, const Vector &, Msp::GL::MeshBuilder &, unsigned &);
 };
 
 } // namespace R2C2