summaryrefslogtreecommitdiff
path: root/engine-ocean/Graphics/shape.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine-ocean/Graphics/shape.h')
-rw-r--r--engine-ocean/Graphics/shape.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/engine-ocean/Graphics/shape.h b/engine-ocean/Graphics/shape.h
new file mode 100644
index 0000000..6385d2b
--- /dev/null
+++ b/engine-ocean/Graphics/shape.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include "GLWrappers/vao.h"
+#include "Graphics/material.h"
+#include <Eigen/Dense>
+
+class Shape{
+public:
+ Shape(std::shared_ptr<VAO> vao);
+ Shape(std::shared_ptr<VAO> vao, std::shared_ptr<Material> shape_material);
+
+ ~Shape();
+
+ // Draw function
+ void draw();
+ std::shared_ptr<Material> getShapeMaterial();
+ bool hasMaterial();
+ void updateVAO(const std::vector<Eigen::Vector3f> &vertices, const std::vector<Eigen::Vector3i> &faces);
+
+
+
+
+private:
+ std::shared_ptr<VAO> m_vao;
+ std::shared_ptr<Material> m_shape_material;
+ bool hasShapeSpecificMaterial = false;
+};