#include <msp/core/maputils.h>
+#include <msp/geometry/box.h>
+#include <msp/geometry/transformedshape.h>
#include <msp/strings/format.h>
#include "vehicletype.h"
namespace R2C2 {
VehicleType::VehicleType(const ArticleNumber &an):
- art_nr(an),
+ ObjectType(an),
locomotive(false),
swap_direction(false),
length(0),
width(0),
- height(0)
+ height(0),
+ rotate_object(false)
{ }
unsigned VehicleType::get_max_function() const
VehicleType::Loader::Loader(VehicleType &vt):
- DataFile::ObjectLoader<VehicleType>(vt)
+ DataFile::DerivedObjectLoader<VehicleType, ObjectType::Loader>(vt)
{
add("axle", &Loader::axle);
add("bogie", &Loader::bogie);
add("height", &Loader::height);
add("length", &Loader::length);
add("locomotive", &VehicleType::locomotive);
- add("name", &VehicleType::name);
add("object", &VehicleType::object);
add("rod", &Loader::rod);
+ add("rotate_object", &VehicleType::rotate_object);
add("swap_direction", &VehicleType::swap_direction);
add("width", &Loader::width);
}
+void VehicleType::Loader::finish()
+{
+ obj.shape = new Geometry::TransformedShape<float, 3>(
+ Geometry::Box<float>(obj.length, obj.width, obj.height),
+ Transform::translation(Vector(0, 0, obj.height/2)));
+}
+
void VehicleType::Loader::axle()
{
Axle axl;