+
+ 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))); }
+
+private:
+ void build_endpoint_mesh(const TrackAppearance &);
+public:
+ const Msp::GL::Mesh &get_endpoint_mesh(const TrackAppearance &);
+ const Msp::GL::Mesh &get_endpoint_mesh(const TrackAppearance &) const;