]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/vehicletype.cpp
Pass sensor events through blocks
[r2c2.git] / source / 3d / vehicletype.cpp
index 2ddd34db08cc4515753f1eeb3171acee973e57d2..162b2c42110a4cd1d67100e43c5fe04e01124ee2 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
 */
 
@@ -31,7 +31,7 @@ T get(const map<string, string> &params, const string &key, T def = T())
 
 namespace R2C2 {
 
-VehicleType3D::VehicleType3D(const Catalogue3D &c, const VehicleType &t):
+VehicleType3D::VehicleType3D(Catalogue3D &c, const VehicleType &t):
        catalogue(c),
        type(t),
        body_object(0),
@@ -39,7 +39,7 @@ VehicleType3D::VehicleType3D(const Catalogue3D &c, const VehicleType &t):
 {
        body_object = get_object(type.get_object());
 
-       const vector<VehicleType::Axle> &axles = type.get_axles();
+       const vector<VehicleType::Axle> &axles = type.get_fixed_axles();
        for(vector<VehicleType::Axle>::const_iterator i=axles.begin(); i!=axles.end(); ++i)
                axle_objects[0].push_back(get_object(i->object));
 
@@ -63,7 +63,7 @@ VehicleType3D::~VehicleType3D()
                delete i->second;
 }
 
-const GL::Object *VehicleType3D::get_axle_object(unsigned i) const
+const GL::Object *VehicleType3D::get_fixed_axle_object(unsigned i) const
 {
        if(i>=axle_objects[0].size())
                throw InvalidParameterValue("Axle index out of range");
@@ -144,10 +144,7 @@ GL::Object *VehicleType3D::get_object(const string &name)
                        }
                }
                else
-               {
-                       ptr = new GL::Object;
-                       DataFile::load(*ptr, name);
-               }
+                       return catalogue.get<GL::Object>(name);
        }
        return ptr;
 }