]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/vehicle.h
Update Track3D to use GL::Renderer
[r2c2.git] / source / 3d / vehicle.h
index 06e78ef4409130094fc922d9e0ff79d1b93352d2..84b10beb4c6bb1da3bbb514cf30c9a8cf6d59698 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of R²C²
-Copyright © 2010  Mikkosoft Productions, Mikko Rasa
+Copyright © 2010-2011  Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
@@ -14,26 +14,34 @@ Distributed under the GPL
 
 namespace R2C2 {
 
+class Axle3D;
+class Bogie3D;
 class Layout3D;
+class Rod3D;
 class VehicleType3D;
 
-class Vehicle3D: public Object3D, public Msp::GL::Renderable
+class Vehicle3D: public Object3D, public Msp::GL::ObjectInstance
 {
 private:
        Layout3D &layout;
        Vehicle &vehicle;
        const VehicleType3D &type;
+       std::vector<Axle3D *> axles;
+       std::vector<Bogie3D *> bogies;
+       std::vector<Rod3D *> rods;
 
 public:
        Vehicle3D(Layout3D &, Vehicle &);
        ~Vehicle3D();
 
        Vehicle &get_vehicle() const { return vehicle; }
+       const VehicleType3D &get_type() const { return type; }
 
        virtual Point get_node() const;
        virtual bool is_visible() const;
 
-       virtual void render(const Msp::GL::Tag &) const;
+       virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
+       virtual void setup_render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
 };
 
 } // namespace R2C2