--- /dev/null
+#ifndef MSP_GL_SLOT_H_
+#define MSP_GL_SLOT_H_
+
+#include "renderable.h"
+
+namespace Msp {
+namespace GL {
+
+/**
+A container for a single renderable. Can be used if a part of the scene graph
+needs to be switched without affecting the rest.
+*/
+class Slot: public Renderable
+{
+private:
+ Renderable *renderable;
+
+public:
+ Slot();
+
+ void set(Renderable *);
+ Renderable *get() const { return renderable; }
+
+ virtual const Matrix *get_matrix() const;
+ virtual const Geometry::BoundingSphere<float, 3> *get_bounding_sphere() const;
+ virtual void setup_frame(Renderer &);
+ virtual void finish_frame();
+ virtual void render(Renderer &, const Tag &) const;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif