1 #ifndef R2C2_3D_OVERLAY_H_
2 #define R2C2_3D_OVERLAY_H_
4 #include <msp/gl/camera.h>
5 #include <msp/gl/font.h>
6 #include <msp/gl/mesh.h>
7 #include <msp/gl/renderable.h>
13 class Overlay3D: public Msp::GL::Renderable
18 std::vector<const Msp::GL::Mesh *> graphics;
21 Msp::GL::Mesh background;
27 const Msp::GL::Font &font;
28 std::map<std::string, Msp::GL::Mesh *> graphics;
29 std::map<const Object3D *, Icon *> icons;
32 Overlay3D(const Msp::GL::Font &);
35 void set_label(const Object3D &, const std::string &);
36 void add_graphic(const Object3D &, const std::string &);
37 void remove_graphic(const Object3D &, const std::string &);
38 void clear_graphics(const Object3D &);
39 void clear(const Object3D &);
41 virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
44 Icon &get_icon(const Object3D &);
45 const Msp::GL::Mesh *get_graphic(const std::string &);
46 void update_icon(Icon &);