diff options
Diffstat (limited to 'Runtime/Mesh')
-rw-r--r-- | Runtime/Mesh/Font.cpp | 0 | ||||
-rw-r--r-- | Runtime/Mesh/Font.h | 0 | ||||
-rw-r--r-- | Runtime/Mesh/FontManager.h | 0 | ||||
-rw-r--r-- | Runtime/Mesh/Glyph.h | 9 | ||||
-rw-r--r-- | Runtime/Mesh/Mesh.cpp | 4 | ||||
-rw-r--r-- | Runtime/Mesh/Mesh.h | 62 | ||||
-rw-r--r-- | Runtime/Mesh/MeshUtil.h | 6 | ||||
-rw-r--r-- | Runtime/Mesh/TextMesh.h | 11 |
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 |