]> git.localhorst.tv Git - blank.git/blobdiff - src/shape.hpp
fix dec/rad error in camera FOV
[blank.git] / src / shape.hpp
index 909d1c40691bc6cae174eb4cdcedc7456ad4a3d6..abf87954c557bcfe6d9459492db60fb641cae757 100644 (file)
@@ -17,15 +17,33 @@ struct Shape {
        /// the number of vertex indices this shape has
        size_t VertexIndexCount() const { return vtx_idx.size(); }
 
+       const Model::Normal &VertexNormal(size_t idx) const { return vtx_nrm[idx]; }
+       Model::Normal VertexNormal(
+               size_t idx, const glm::mat4 &transform
+       ) const {
+               return Model::Normal(transform * glm::vec4(vtx_nrm[idx], 0.0f));
+       }
+
        /// fill given buffers with this shape's elements with an
-       /// optional offset
+       /// optional transform and offset
+       void Vertices(
+               Model::Positions &vertex,
+               Model::Normals &normal,
+               Model::Indices &index
+       ) const;
        void Vertices(
                Model::Positions &vertex,
                Model::Normals &normal,
                Model::Indices &index,
-               const Model::Position &elem_offset = { 0.0f, 0.0f, 0.0f },
+               const glm::mat4 &transform,
                Model::Index idx_offset = 0
        ) const;
+       void Vertices(
+               BlockModel::Positions &vertex,
+               BlockModel::Indices &index,
+               const glm::mat4 &transform,
+               BlockModel::Index idx_offset = 0
+       ) const;
 
        /// the number of vertices this shape's outline has
        size_t OutlineCount() const { return out_pos.size(); }