#pragma once #include "GLWrappers/vao.h" #include "Graphics/material.h" #include class Shape{ public: Shape(std::shared_ptr vao); Shape(std::shared_ptr vao, std::shared_ptr shape_material); ~Shape(); // Draw function void draw(); std::shared_ptr getShapeMaterial(); bool hasMaterial(); void updateVAO(const std::vector &vertices, const std::vector &faces); private: std::shared_ptr m_vao; std::shared_ptr m_shape_material; bool hasShapeSpecificMaterial = false; };