#pragma once #include class IShape { public: glm::mat4 transform; virtual ~IShape() {}; virtual void init() = 0; virtual void draw() const = 0; virtual void reset_transform() = 0; virtual void translate(const glm::vec3& translation) = 0; virtual void rotate(const float rotation_rad, const glm::vec3& axis) = 0; virtual void scale(const glm::vec3& scale_amount) = 0; };