45 lines
738 B
C++
45 lines
738 B
C++
#ifndef WC3RE_RENDER_DRAWABLE_HH__
|
|
#define WC3RE_RENDER_DRAWABLE_HH__
|
|
|
|
#include <glm/glm.hpp>
|
|
|
|
namespace render {
|
|
class Renderer;
|
|
|
|
class Drawable {
|
|
public:
|
|
Drawable(Renderer& renderer)
|
|
: renderer_(renderer) {
|
|
}
|
|
|
|
virtual ~Drawable() {
|
|
}
|
|
|
|
virtual void draw() = 0;
|
|
|
|
protected:
|
|
Renderer& renderer_;
|
|
};
|
|
|
|
class TransformDrawable : public Drawable {
|
|
public:
|
|
TransformDrawable(Renderer& renderer)
|
|
: Drawable(renderer), transformMatrix_() {
|
|
}
|
|
|
|
virtual void setTransform(glm::mat4 matrix) {
|
|
transformMatrix_ = matrix;
|
|
}
|
|
|
|
virtual glm::mat4 const& getTransform() const {
|
|
return transformMatrix_;
|
|
}
|
|
|
|
protected:
|
|
glm::mat4 transformMatrix_;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|