aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/mesh.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics/mesh.h')
-rw-r--r--src/libjin/graphics/mesh.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/libjin/graphics/mesh.h b/src/libjin/graphics/mesh.h
new file mode 100644
index 0000000..d17fcea
--- /dev/null
+++ b/src/libjin/graphics/mesh.h
@@ -0,0 +1,52 @@
+#ifndef __JE_MESH_H__
+#define __JE_MESH_H__
+
+#include <vector>
+
+#include "../math/bbox.h"
+
+#include "vertex.h"
+#include "graphic.h"
+
+namespace JinEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// A 2D mesh.
+ ///
+ class Mesh : public Renderable, public Object
+ {
+ public:
+ Mesh();
+
+ void setGraphic(const Graphic* graphic);
+ void pushVertex(float x, float y, float u, float v, Color color = Color::WHITE);
+ void pushVertex(const Vertex& vertex);
+ inline Math::BBox getBound() { return mBound; }
+
+ void render(float x, float y, float sx, float sy, float r, float ox = 0, float oy = 0) const;
+
+ private:
+ ///
+ /// Graphic binded.
+ ///
+ const Graphic* mGraphic;
+
+ ///
+ /// Bound box of mesh.
+ ///
+ Math::BBox mBound;
+
+ ///
+ ///
+ ///
+ std::vector<Vertex> mVertices;
+
+ };
+
+ } // namespace Graphics
+} // namespace JinEngine
+
+#endif \ No newline at end of file