2018-11-14 21:47:36 +09:00

30 lines
607 B
C++

#pragma once
#include "GL/glew.h"
#include "glm/gtc/type_ptr.hpp"
#include "Loader.h"
#include "ModelView.h"
enum DrawableType
{
COLOR_CUBE,
CHECKERED_FLOOR,
WIRE_CUBE,
LINE_SEGMENT
};
class IDrawable {
public:
virtual void addRotation(glm::vec4 vec) = 0;
virtual void addTranslation(glm::vec4 vec) = 0;
virtual void addScaling(glm::vec4 vec) = 0;
virtual void removeLastTransformations(int n) = 0;
virtual glm::vec3 getPosition() = 0;
virtual glm::vec4 translateToPivot(glm::vec3) = 0;
virtual void draw(ShaderProgram *shader, glm::mat4x4 pv) = 0;
virtual DrawableType getType() = 0;
};