]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/vehicle.h
Strip Id tags and copyright notices from files
[r2c2.git] / source / 3d / vehicle.h
index feab8a1dd2a95972bfed83a966306702d72049f7..aa5042e4b73c3d2643c2850106ac8ab4a7c10eae 100644 (file)
@@ -1,40 +1,42 @@
-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2010  Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
-#ifndef LIBMARKLIN3D_VEHICLE_H_
-#define LIBMARKLIN3D_VEHICLE_H_
+#ifndef LIBR2C23D_VEHICLE_H_
+#define LIBR2C23D_VEHICLE_H_
 
 #include <msp/gl/renderable.h>
-#include "libmarklin/vehicle.h"
+#include "libr2c2/vehicle.h"
 #include "object.h"
 
-namespace Marklin {
+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 Vector 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 Marklin
+} // namespace R2C2
 
 #endif