#ifndef DRAWCOMPONENT_H #define DRAWCOMPONENT_H #include "Graphics/global.h" #include #include "Component.h" class DrawComponent : public Component { public: DrawComponent(std::shared_ptr shape); DrawComponent(std::shared_ptr shape, std::string shape_name); // for materials, with multiple shape parts DrawComponent(std::vector> shapes); void draw(const std::shared_ptr &entity_mt); void addMaterial(std::string material_name, std::string material_filepath); std::shared_ptr getMaterial(); std::shared_ptr getShape(); std::vector> getShapesWithMaterials(); bool objHasMaterial(); bool objHasMultipleShapes(); std::string getShapeName(); private: std::shared_ptr m_shape; std::vector> m_shapes; std::string m_material_name; bool hasMaterial = false; std::string m_shape_name = "empty"; bool hasMultipleShapes = false; }; #endif // DRAWCOMPONENT_H