namespace Marklin {
class TrackType3D;
+class VehicleType3D;
class Catalogue3D
{
private:
Catalogue &catalogue;
std::map<const TrackType *, TrackType3D *> tracks;
+ std::map<const VehicleType *, VehicleType3D *> vehicles;
Msp::GL::Material ballast_material;
Msp::GL::Material rail_material;
Msp::GL::Mesh endpoint_mesh;
const Catalogue &get_catalogue() const { return catalogue; }
const TrackType3D &get_track(const TrackType &) const;
+ const VehicleType3D &get_vehicle(const VehicleType &) const;
const Msp::GL::Material &get_ballast_material() const { return ballast_material; }
const Msp::GL::Material &get_rail_material() const { return rail_material; }
const Msp::GL::Mesh &get_endpoint_mesh() const { return endpoint_mesh; }
private:
void track_added(const TrackType &);
+ void vehicle_added(const VehicleType &);
void build_endpoint_mesh();
};