From c1ea14d1c96de18448c0c3779d30b7e1e4451f61 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 5 Feb 2021 00:30:13 +0000 Subject: Initial commit generating some basic rail network --- gfx/models/mesh.cpp | 8 ++++---- gfx/models/mesh.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'gfx') diff --git a/gfx/models/mesh.cpp b/gfx/models/mesh.cpp index 90de8db..4a3d9d4 100644 --- a/gfx/models/mesh.cpp +++ b/gfx/models/mesh.cpp @@ -7,7 +7,7 @@ Mesh::Mesh(const std::string & fileName) : Mesh(OBJModel(fileName).ToIndexedModel()) { } Mesh::Mesh(const IndexedModel & model) : - m_vertexArrayObject {}, m_vertexArrayBuffers {}, m_numIndices {model.indices.size()} + m_vertexArrayObject {}, m_vertexArrayBuffers {}, m_numIndices {model.indices.size()}, mode {GL_TRIANGLES} { glGenVertexArrays(1, &m_vertexArrayObject); glBindVertexArray(m_vertexArrayObject); @@ -38,8 +38,8 @@ Mesh::Mesh(const IndexedModel & model) : glBindVertexArray(0); } -Mesh::Mesh(std::span vertices, std::span indices) : - m_vertexArrayObject {}, m_vertexArrayBuffers {}, m_numIndices {indices.size()} +Mesh::Mesh(std::span vertices, std::span indices, GLenum m) : + m_vertexArrayObject {}, m_vertexArrayBuffers {}, m_numIndices {indices.size()}, mode {m} { glGenVertexArrays(1, &m_vertexArrayObject); glBindVertexArray(m_vertexArrayObject); @@ -75,7 +75,7 @@ Mesh::Draw() const { glBindVertexArray(m_vertexArrayObject); - glDrawElementsBaseVertex(GL_TRIANGLES, m_numIndices, GL_UNSIGNED_INT, nullptr, 0); + glDrawElementsBaseVertex(mode, m_numIndices, GL_UNSIGNED_INT, nullptr, 0); glBindVertexArray(0); } diff --git a/gfx/models/mesh.h b/gfx/models/mesh.h index e955644..ebd300b 100644 --- a/gfx/models/mesh.h +++ b/gfx/models/mesh.h @@ -17,7 +17,7 @@ class Mesh { public: explicit Mesh(const std::string & fileName); explicit Mesh(const IndexedModel & model); - Mesh(std::span vertices, std::span indices); + Mesh(std::span vertices, std::span indices, GLenum = GL_TRIANGLES); virtual ~Mesh(); NO_COPY(Mesh); @@ -31,6 +31,7 @@ private: GLuint m_vertexArrayObject; std::array m_vertexArrayBuffers; size_t m_numIndices; + GLenum mode; }; #endif -- cgit v1.2.3