X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fvehicletype.cpp;h=34f2be630a9bc587680aaf2b4691888b6941eaf0;hb=d06a1e1ab34e5ecb4bb7011d44298a0b5e6162be;hp=0c6465898987396d00fe5f0dd664da091b507b23;hpb=850c1d571f2d2d157a873b678d86e4a5c771ba26;p=r2c2.git diff --git a/source/3d/vehicletype.cpp b/source/3d/vehicletype.cpp index 0c64658..34f2be6 100644 --- a/source/3d/vehicletype.cpp +++ b/source/3d/vehicletype.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -25,25 +26,19 @@ T get(const map ¶ms, const string &key, T def = T()) namespace R2C2 { VehicleType3D::VehicleType3D(Catalogue3D &c, const VehicleType &t): - catalogue(c), + ObjectType3D(c), type(t), - body_object(0), - axle_objects(1) + body_object(0) { body_object = get_object(type.get_object()); - const vector &axles = type.get_fixed_axles(); + const vector &axles = type.get_axles(); for(vector::const_iterator i=axles.begin(); i!=axles.end(); ++i) - axle_objects[0].push_back(get_object(i->object)); + axle_objects.push_back(get_object(i->object)); const vector &bogies = type.get_bogies(); for(vector::const_iterator i=bogies.begin(); i!=bogies.end(); ++i) - { bogie_objects.push_back(get_object(i->object)); - axle_objects.push_back(vector()); - for(vector::const_iterator j=i->axles.begin(); j!=i->axles.end(); ++j) - axle_objects.back().push_back(get_object(j->object)); - } const vector &rods = type.get_rods(); for(vector::const_iterator i=rods.begin(); i!=rods.end(); ++i) @@ -56,11 +51,11 @@ VehicleType3D::~VehicleType3D() delete i->second; } -const GL::Object *VehicleType3D::get_fixed_axle_object(unsigned i) const +const GL::Object *VehicleType3D::get_axle_object(unsigned i) const { - if(i>=axle_objects[0].size()) + if(i>=axle_objects.size()) throw out_of_range("VehicleType3D::get_fixed_axle_object"); - return axle_objects[0][i]; + return axle_objects[i]; } const GL::Object *VehicleType3D::get_bogie_object(unsigned i) const @@ -70,15 +65,6 @@ const GL::Object *VehicleType3D::get_bogie_object(unsigned i) const return bogie_objects[i]; } -const GL::Object *VehicleType3D::get_bogie_axle_object(unsigned i, unsigned j) const -{ - if(i>=bogie_objects.size()) - throw out_of_range("VehicleType3D::get_bogie_axle_object"); - if(j>=axle_objects[i+1].size()) - throw out_of_range("VehicleType3D::get_bogie_axle_object"); - return axle_objects[i+1][j]; -} - const GL::Object *VehicleType3D::get_rod_object(unsigned i) const { if(i>=rod_objects.size())