X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FShape.hpp;h=d2e06952ed2eae5410ae4657e6a5d6af7c5249de;hb=3542823a1af7f5063d7cc8da84efa248eb889b8a;hp=312b1aafd1cf212951ffeee433ed2a22b99da5bf;hpb=1c2994622a6b73f90cbd3ec9c09ffb4d7724cab4;p=blank.git diff --git a/src/model/Shape.hpp b/src/model/Shape.hpp index 312b1aa..d2e0695 100644 --- a/src/model/Shape.hpp +++ b/src/model/Shape.hpp @@ -1,10 +1,9 @@ #ifndef BLANK_MODEL_SHAPE_HPP_ #define BLANK_MODEL_SHAPE_HPP_ -#include "BlockModel.hpp" -#include "EntityModel.hpp" -#include "OutlineModel.hpp" -#include "SkyBoxModel.hpp" +#include "../graphics/BlockMesh.hpp" +#include "../graphics/EntityMesh.hpp" +#include "../graphics/OutlineMesh.hpp" #include @@ -21,33 +20,30 @@ struct Shape { /// the number of vertex indices this shape has size_t VertexIndexCount() const noexcept { return vtx_idx.size(); } - const EntityModel::Normal &VertexNormal(size_t idx) const noexcept { return vtx_nrm[idx]; } - EntityModel::Normal VertexNormal( + const EntityMesh::Normal &VertexNormal(size_t idx) const noexcept { return vtx_nrm[idx]; } + EntityMesh::Normal VertexNormal( size_t idx, const glm::mat4 &transform ) const noexcept { - return EntityModel::Normal(transform * glm::vec4(vtx_nrm[idx], 0.0f)); + return EntityMesh::Normal(transform * glm::vec4(vtx_nrm[idx], 0.0f)); } /// fill given buffers with this shape's elements with an /// optional transform and offset void Vertices( - EntityModel::Buffer &out, + EntityMesh::Buffer &out, float tex_offset = 0.0f ) const; void Vertices( - EntityModel::Buffer &out, + EntityMesh::Buffer &out, const glm::mat4 &transform, float tex_offset = 0.0f, - EntityModel::Index idx_offset = 0 + EntityMesh::Index idx_offset = 0 ) const; void Vertices( - BlockModel::Buffer &out, + BlockMesh::Buffer &out, const glm::mat4 &transform, float tex_offset = 0.0f, - BlockModel::Index idx_offset = 0 - ) const; - void Vertices( - SkyBoxModel::Buffer &out + BlockMesh::Index idx_offset = 0 ) const; /// the number of vertices this shape's outline has @@ -56,7 +52,7 @@ struct Shape { size_t OutlineIndexCount() const { return out_idx.size(); } /// fill given buffers with this shape's outline's elements - void Outline(OutlineModel::Buffer &out) const; + void Outline(OutlineMesh::Buffer &out) const; /// Check if given ray would pass though this shape if it were /// transformed with given matrix. @@ -81,24 +77,24 @@ struct Shape { protected: void SetShape( - const EntityModel::Positions &pos, - const EntityModel::Normals &nrm, - const EntityModel::Indices &idx); + const EntityMesh::Positions &pos, + const EntityMesh::Normals &nrm, + const EntityMesh::Indices &idx); void SetTexture( - const BlockModel::TexCoords &tex_coords); + const BlockMesh::TexCoords &tex_coords); void SetOutline( - const OutlineModel::Positions &pos, - const OutlineModel::Indices &idx); + const OutlineMesh::Positions &pos, + const OutlineMesh::Indices &idx); private: - EntityModel::Positions vtx_pos; - EntityModel::Normals vtx_nrm; - EntityModel::Indices vtx_idx; + EntityMesh::Positions vtx_pos; + EntityMesh::Normals vtx_nrm; + EntityMesh::Indices vtx_idx; - BlockModel::TexCoords vtx_tex_coords; + BlockMesh::TexCoords vtx_tex_coords; - OutlineModel::Positions out_pos; - OutlineModel::Indices out_idx; + OutlineMesh::Positions out_pos; + OutlineMesh::Indices out_idx; };