X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fvehicletype.cpp;h=0c6465898987396d00fe5f0dd664da091b507b23;hb=1c072afdb1866ba397ee8e6155f5f68c6c7ab4da;hp=9cbfa28f3eac5c891a938c43c0a28e2b21037048;hpb=d15ac13f2e170f155b4bbd124df48400c339b644;p=r2c2.git diff --git a/source/3d/vehicletype.cpp b/source/3d/vehicletype.cpp index 9cbfa28..0c64658 100644 --- a/source/3d/vehicletype.cpp +++ b/source/3d/vehicletype.cpp @@ -59,30 +59,30 @@ VehicleType3D::~VehicleType3D() const GL::Object *VehicleType3D::get_fixed_axle_object(unsigned i) const { if(i>=axle_objects[0].size()) - throw InvalidParameterValue("Axle index out of range"); + throw out_of_range("VehicleType3D::get_fixed_axle_object"); return axle_objects[0][i]; } const GL::Object *VehicleType3D::get_bogie_object(unsigned i) const { if(i>=bogie_objects.size()) - throw InvalidParameterValue("Bogie index out of range"); + throw out_of_range("VehicleType3D::get_bogie_object"); return bogie_objects[i]; } const GL::Object *VehicleType3D::get_bogie_axle_object(unsigned i, unsigned j) const { if(i>=bogie_objects.size()) - throw InvalidParameterValue("Bogie index out of range"); + throw out_of_range("VehicleType3D::get_bogie_axle_object"); if(j>=axle_objects[i+1].size()) - throw InvalidParameterValue("Axle index out of range"); + 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()) - throw InvalidParameterValue("Rod index out of range"); + throw out_of_range("VehicleType3D::get_rod_object"); return rod_objects[i]; } @@ -100,9 +100,9 @@ GL::Object *VehicleType3D::get_object(const string &name) string kind = name.substr(1, colon-1); map params; - params["length"] = lexical_cast(type.get_length()*1000); - params["width"] = lexical_cast(type.get_width()*1000); - params["height"] = lexical_cast(type.get_height()*1000); + params["length"] = lexical_cast(type.get_length()*1000); + params["width"] = lexical_cast(type.get_width()*1000); + params["height"] = lexical_cast(type.get_height()*1000); if(colon!=string::npos) { string::size_type start = colon+1; @@ -137,7 +137,7 @@ GL::Object *VehicleType3D::get_object(const string &name) } } else - return catalogue.get(name); + return &catalogue.get(name); } return ptr; } @@ -158,7 +158,9 @@ GL::Technique *VehicleType3D::create_technique(const map ¶ms tex->storage(GL::RGB, 2, 1); tex->set_min_filter(GL::NEAREST); tex->set_mag_filter(GL::NEAREST); - unsigned char data[6] = { color>>16, color>>8, color, color2>>16, color2>>8, color2 }; + unsigned char data[6]; + data[0] = color>>16; data[1] = color>>8; data[2] = color; + data[3] = color2>>16; data[4] = color2>>8; data[5] = color2; tex->image(0, GL::RGB, GL::UNSIGNED_BYTE, data); pass.set_texture(0, tex);