sandbox
Loading...
Searching...
No Matches
sbx::graphics::mesh< Vertex > Class Template Reference

Classes

struct  mesh_data
 

Public Types

using vertex_type = Vertex
 
using index_type = std::uint32_t
 

Public Member Functions

 mesh (const std::vector< vertex_type > &vertices, const std::vector< index_type > &indices, const math::volume &bounds=math::volume{})
 
 mesh (std::vector< vertex_type > &&vertices, std::vector< index_type > &&indices, const math::volume &bounds=math::volume{})
 
 mesh (const mesh &other) noexcept=delete
 
auto render (graphics::command_buffer &command_buffer, std::uint32_t instance_count=1u) const -> void
 
auto render_submesh (graphics::command_buffer &command_buffer, std::uint32_t submesh_index, std::uint32_t instance_count=1u) const -> void
 
auto address () const -> std::uint64_t
 
auto bind (graphics::command_buffer &command_buffer) const -> void
 
auto render_submesh_indirect (graphics::storage_buffer &buffer, std::uint32_t offset, std::uint32_t submesh_index, std::uint32_t instance_count=1u) const -> void
 
auto submeshes () const noexcept -> const std::vector< graphics::submesh > &
 
auto submesh_index (const utility::hashed_string &name) const -> std::uint32_t
 
auto submesh (std::uint32_t submesh_index) const -> const graphics::submesh &
 
auto submesh (const utility::hashed_string &name) const -> const graphics::submesh &
 
auto submesh_bounds (std::uint32_t submesh_index) const -> const math::volume &
 
auto submesh_bounds (const utility::hashed_string &name) const -> const math::volume &
 
auto submesh_local_transform (std::uint32_t submesh_index) const -> const math::matrix4x4 &
 
auto submesh_local_transform (const utility::hashed_string &name) const -> const math::matrix4x4 &
 
auto submesh_names () const -> std::unordered_map< utility::hashed_string, std::uint32_t >
 
auto bounds () const -> const math::volume &
 

Protected Member Functions

 mesh (mesh_data &&mesh_data)
 
auto _upload_vertices (const std::vector< vertex_type > &vertices, const std::vector< index_type > &indices) -> void
 
auto _upload_vertices (std::vector< vertex_type > &&vertices, std::vector< index_type > &&indices) -> void
 
auto _calculate_bounds_from_submeshes (math::volume &&bounds) const -> math::volume
 

Protected Attributes

buffer_handle _vertex_buffer
 
buffer_handle _index_buffer
 
std::vector< graphics::submesh_submeshes
 
math::volume _bounds
 

The documentation for this class was generated from the following files: