- 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; }
+
+ const ObjectType3D &get_3d(const ObjectType &);
+ const ObjectType3D &get_3d(const ObjectType &) const;
+
+ template<typename T>
+ const typename TypeMap3D<T>::Type3D &get_3d(const T &ot) const
+ { return dynamic_cast<const typename TypeMap3D<T>::Type3D &>(get_3d(static_cast<const ObjectType &>(ot))); }
+
+ template<typename T>
+ const typename TypeMap3D<T>::Type3D &get_3d(const T &ot)
+ { return dynamic_cast<const typename TypeMap3D<T>::Type3D &>(get_3d(static_cast<const ObjectType &>(ot))); }
+