]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/tracktype.cpp
Use GL::Renderables and a Pipeline for rendering
[r2c2.git] / source / 3d / tracktype.cpp
index 26be52796dc4d827a221ab64bc788ae53388d208..94a941a983f94fcd0392d4bb0b2237d5e32f60e2 100644 (file)
@@ -72,6 +72,7 @@ Iter graham_scan(Iter begin, Iter end)
 namespace Marklin {
 
 TrackType3D::TrackType3D(const Catalogue3D &cat3d, const TrackType &tt):
+       catalogue(cat3d),
        ballast_mesh((GL::NORMAL3, GL::COLOR4_UBYTE, GL::VERTEX3)),
        rail_mesh((GL::NORMAL3, GL::COLOR4_UBYTE, GL::VERTEX3))
 {
@@ -137,10 +138,15 @@ void TrackType3D::get_bounds(float angle, Point &minp, Point &maxp) const
        }
 }
 
-void TrackType3D::render() const
+void TrackType3D::render(const GL::Tag &tag) const
 {
-       ballast_mesh.draw();
-       rail_mesh.draw();
+       if(tag==0)
+       {
+               catalogue.get_ballast_material().bind();
+               ballast_mesh.draw();
+               catalogue.get_rail_material().bind();
+               rail_mesh.draw();
+       }
 }
 
 void TrackType3D::build_part(const TrackPart &part, const Profile &profile, const Point &offset, GL::MeshBuilder &bld, unsigned &base_index)