summaryrefslogtreecommitdiff
path: root/Runtime/Mesh
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Mesh')
-rw-r--r--Runtime/Mesh/Font.cpp0
-rw-r--r--Runtime/Mesh/Font.h0
-rw-r--r--Runtime/Mesh/FontManager.h0
-rw-r--r--Runtime/Mesh/Glyph.h9
-rw-r--r--Runtime/Mesh/Mesh.cpp4
-rw-r--r--Runtime/Mesh/Mesh.h62
-rw-r--r--Runtime/Mesh/MeshUtil.h6
-rw-r--r--Runtime/Mesh/TextMesh.h11
8 files changed, 92 insertions, 0 deletions
diff --git a/Runtime/Mesh/Font.cpp b/Runtime/Mesh/Font.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Runtime/Mesh/Font.cpp
diff --git a/Runtime/Mesh/Font.h b/Runtime/Mesh/Font.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Runtime/Mesh/Font.h
diff --git a/Runtime/Mesh/FontManager.h b/Runtime/Mesh/FontManager.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Runtime/Mesh/FontManager.h
diff --git a/Runtime/Mesh/Glyph.h b/Runtime/Mesh/Glyph.h
new file mode 100644
index 0000000..6020b45
--- /dev/null
+++ b/Runtime/Mesh/Glyph.h
@@ -0,0 +1,9 @@
+#ifndef GLYPH_H
+#define GLYPH_H
+
+class Glyph
+{
+
+};
+
+#endif \ No newline at end of file
diff --git a/Runtime/Mesh/Mesh.cpp b/Runtime/Mesh/Mesh.cpp
new file mode 100644
index 0000000..95bd597
--- /dev/null
+++ b/Runtime/Mesh/Mesh.cpp
@@ -0,0 +1,4 @@
+#include "Mesh.h"
+#include "MeshUtil.h"
+
+
diff --git a/Runtime/Mesh/Mesh.h b/Runtime/Mesh/Mesh.h
new file mode 100644
index 0000000..77c6577
--- /dev/null
+++ b/Runtime/Mesh/Mesh.h
@@ -0,0 +1,62 @@
+#ifndef MESH_H
+#define MESH_H
+
+#include "../Graphics/VertexBuffer.h"
+#include "../Utilities/Type.h"
+
+// Ïà¶ÔVertexBuffer¸ü¼Óuplevel
+class Mesh
+{
+public:
+
+ Mesh(bool readable = false);
+ ~Mesh();
+
+ void IsReadable();
+
+ void SetVertices(float* data);
+ void SetNormals(float* data);
+ void SetTangents(float* data);
+ void SetColors(float* data);
+ void SetTexCoords(int channel, float* data);
+
+ void SetTriangles(int* indices);
+ void SetIndices(int* indices);
+
+ void SetVertices(float* data, int start, int length);
+ void SetNormals(float* data, int start, int length);
+ void SetTangents(float* data, int start, int length);
+ void SetColors(float* data, int start, int length);
+ void SetTexCoords(int channel, float* data, int start, int length);
+
+ void SetVertex(float x, float y, float z, int index);
+ void SetNormal(float x, float y, float z, int index);
+ void SetTangent(float x, float y, float z, int index);
+ void SetColor(float r, float g, float b, float a, int index);
+ void SetTexCoord(float u, float v, int index);
+
+ void GetAABB(float bias = 0.f);
+
+ inline bool HasVertexAttr(VertexAttrMask attr);
+
+ void Draw();
+
+ void CalculateNormal();
+ void CalculateTangent();
+
+private:
+
+ uint m_VertexAttrBits;
+
+ bool m_IsReadable;
+
+ VertexBuffer* m_VBO;
+
+};
+
+inline bool Mesh::HasVertexAttr(VertexAttrMask attr)
+{
+ return m_VertexAttrBits & attr;
+}
+
+#endif \ No newline at end of file
diff --git a/Runtime/Mesh/MeshUtil.h b/Runtime/Mesh/MeshUtil.h
new file mode 100644
index 0000000..830ac70
--- /dev/null
+++ b/Runtime/Mesh/MeshUtil.h
@@ -0,0 +1,6 @@
+#ifndef MESH_UTIL_H
+#define MESH_UTIL_H
+
+
+
+#endif \ No newline at end of file
diff --git a/Runtime/Mesh/TextMesh.h b/Runtime/Mesh/TextMesh.h
new file mode 100644
index 0000000..1f27bbb
--- /dev/null
+++ b/Runtime/Mesh/TextMesh.h
@@ -0,0 +1,11 @@
+#ifndef TEXT_MESH_H
+#define TEXT_MESH_H
+
+class TextMesh
+{
+public:
+
+
+};
+
+#endif \ No newline at end of file