1 #ifndef R2C2_3D_TRACK_H_
2 #define R2C2_3D_TRACK_H_
5 #include <sigc++/trackable.h>
6 #include <msp/gl/matrix.h>
7 #include <msp/gl/objectinstance.h>
8 #include "libr2c2/track.h"
9 #include "libr2c2/trackpart.h"
18 class Track3D: public Object3D, public Msp::GL::ObjectInstance
22 const TrackType3D &type;
23 std::vector<Endpoint3D *> endpoints;
26 Track3D(Layout3D &, Track &);
29 Layout3D &get_layout() const { return layout; }
30 Track &get_track() const { return track; }
31 const TrackType3D &get_type() const { return type; }
33 virtual Vector get_node() const;
34 virtual bool is_visible() const { return true; }
36 virtual void setup_render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
38 void link_changed(unsigned, Track *);