1 #ifndef MSP_GL_PLACEABLE_H_
2 #define MSP_GL_PLACEABLE_H_
5 #include "renderable.h"
11 A base class for things that can be positioned and oriented in 3D space.
20 virtual ~Placeable() { }
22 virtual void set_matrix(const Matrix &);
24 /** Returns the Placeable's matrix. This function returns a pointer for
25 compatibility with Renderable. The returned pointer is never null. */
26 virtual const Matrix *get_matrix() const { return &matrix; }
30 class PlacedRenderable: public Renderable, public Placeable
33 PlacedRenderable() { }
36 /* Reimplement to clear ambiguity between Renderable and Placeable. This
37 overrides both base classes' implementations. */
38 virtual const Matrix *get_matrix() const { return &matrix; }