opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
osc::Mesh Class Reference

#include <mesh.h>

Public Member Functions

 Mesh ()
 
MeshTopology topology () const
 
void set_topology (MeshTopology)
 
bool has_vertices () const
 
size_t num_vertices () const
 
std::vector< Vector3vertices () const
 
void set_vertices (std::span< const Vector3 >)
 
void set_vertices (std::initializer_list< Vector3 > il)
 
void transform_vertices (const std::function< Vector3(Vector3)> &)
 
void transform_vertices (const Transform &)
 
void transform_vertices (const Matrix4x4 &)
 
bool has_normals () const
 
std::vector< Vector3normals () const
 
void set_normals (std::span< const Vector3 >)
 
void set_normals (std::initializer_list< Vector3 > il)
 
void transform_normals (const std::function< Vector3(Vector3)> &)
 
bool has_tex_coords () const
 
std::vector< Vector2tex_coords () const
 
void set_tex_coords (std::span< const Vector2 >)
 
void set_tex_coords (std::initializer_list< Vector2 > il)
 
void transform_tex_coords (const std::function< Vector2(Vector2)> &)
 
std::vector< Colorcolors () const
 
void set_colors (std::span< const Color >)
 
void set_colors (std::initializer_list< Color > il)
 
std::vector< Vector4tangents () const
 
void set_tangents (std::span< const Vector4 >)
 
void set_tangents (std::initializer_list< Vector4 > il)
 
size_t num_indices () const
 
MeshIndicesView indices () const
 
void set_indices (MeshIndicesView, MeshUpdateFlags=MeshUpdateFlag::Default)
 
void set_indices (std::initializer_list< uint32_t > il)
 
void for_each_indexed_vertex (const std::function< void(Vector3)> &) const
 
void for_each_indexed_triangle (const std::function< void(Triangle)> &) const
 
Triangle get_triangle_at (size_t first_index_offset) const
 
std::vector< Vector3indexed_vertices () const
 
const std::optional< AABB > & bounds () const
 
std::optional< Vector3centroid () const
 
void clear ()
 
size_t num_submesh_descriptors () const
 
void push_submesh_descriptor (const SubMeshDescriptor &)
 
const SubMeshDescriptorsubmesh_descriptor_at (size_t) const
 
template<std::ranges::input_range Range>
requires std::constructible_from<SubMeshDescriptor, std::ranges::range_value_t<Range>>
void set_submesh_descriptors (const Range &submesh_descriptors)
 
void clear_submesh_descriptors ()
 
size_t num_vertex_attributes () const
 
const VertexFormatvertex_format () const
 
void set_vertex_buffer_params (size_t num_vertices, const VertexFormat &)
 
size_t vertex_buffer_stride () const
 
void set_vertex_buffer_data (std::span< const uint8_t >, MeshUpdateFlags=MeshUpdateFlag::Default)
 
template<std::ranges::contiguous_range Range>
requires BitCastable<typename Range::value_type>
void set_vertex_buffer_data (const Range &range, MeshUpdateFlags flags=MeshUpdateFlag::Default)
 
void recalculate_normals ()
 
void recalculate_tangents ()
 

Friends

class GraphicsBackend
 
struct std::hash< Mesh >
 
bool operator== (const Mesh &, const Mesh &)=default
 
std::ostream & operator<< (std::ostream &, const Mesh &)
 

Constructor & Destructor Documentation

◆ Mesh()

osc::Mesh::Mesh ( )

Member Function Documentation

◆ bounds()

const std::optional< AABB > & osc::Mesh::bounds ( ) const

◆ centroid()

std::optional< Vector3 > osc::Mesh::centroid ( ) const

◆ clear()

void osc::Mesh::clear ( )

◆ clear_submesh_descriptors()

void osc::Mesh::clear_submesh_descriptors ( )

◆ colors()

std::vector< Color > osc::Mesh::colors ( ) const

◆ for_each_indexed_triangle()

void osc::Mesh::for_each_indexed_triangle ( const std::function< void(Triangle)> &  ) const

◆ for_each_indexed_vertex()

void osc::Mesh::for_each_indexed_vertex ( const std::function< void(Vector3)> &  ) const

◆ get_triangle_at()

Triangle osc::Mesh::get_triangle_at ( size_t  first_index_offset) const

◆ has_normals()

bool osc::Mesh::has_normals ( ) const

◆ has_tex_coords()

bool osc::Mesh::has_tex_coords ( ) const

◆ has_vertices()

bool osc::Mesh::has_vertices ( ) const

◆ indexed_vertices()

std::vector< Vector3 > osc::Mesh::indexed_vertices ( ) const

◆ indices()

MeshIndicesView osc::Mesh::indices ( ) const

◆ normals()

std::vector< Vector3 > osc::Mesh::normals ( ) const

◆ num_indices()

size_t osc::Mesh::num_indices ( ) const

◆ num_submesh_descriptors()

size_t osc::Mesh::num_submesh_descriptors ( ) const

◆ num_vertex_attributes()

size_t osc::Mesh::num_vertex_attributes ( ) const

◆ num_vertices()

size_t osc::Mesh::num_vertices ( ) const

◆ push_submesh_descriptor()

void osc::Mesh::push_submesh_descriptor ( const SubMeshDescriptor )

◆ recalculate_normals()

void osc::Mesh::recalculate_normals ( )

◆ recalculate_tangents()

void osc::Mesh::recalculate_tangents ( )

◆ set_colors() [1/2]

void osc::Mesh::set_colors ( std::initializer_list< Color il)
inline

◆ set_colors() [2/2]

void osc::Mesh::set_colors ( std::span< const Color )

◆ set_indices() [1/2]

void osc::Mesh::set_indices ( MeshIndicesView  ,
MeshUpdateFlags  = MeshUpdateFlag::Default 
)

◆ set_indices() [2/2]

void osc::Mesh::set_indices ( std::initializer_list< uint32_t il)
inline

◆ set_normals() [1/2]

void osc::Mesh::set_normals ( std::initializer_list< Vector3 il)
inline

◆ set_normals() [2/2]

void osc::Mesh::set_normals ( std::span< const Vector3 )

◆ set_submesh_descriptors()

template<std::ranges::input_range Range>
requires std::constructible_from<SubMeshDescriptor, std::ranges::range_value_t<Range>>
void osc::Mesh::set_submesh_descriptors ( const Range submesh_descriptors)
inline

◆ set_tangents() [1/2]

void osc::Mesh::set_tangents ( std::initializer_list< Vector4 il)
inline

◆ set_tangents() [2/2]

void osc::Mesh::set_tangents ( std::span< const Vector4 )

◆ set_tex_coords() [1/2]

void osc::Mesh::set_tex_coords ( std::initializer_list< Vector2 il)
inline

◆ set_tex_coords() [2/2]

void osc::Mesh::set_tex_coords ( std::span< const Vector2 )

◆ set_topology()

void osc::Mesh::set_topology ( MeshTopology  )

◆ set_vertex_buffer_data() [1/2]

template<std::ranges::contiguous_range Range>
requires BitCastable<typename Range::value_type>
void osc::Mesh::set_vertex_buffer_data ( const Range range,
MeshUpdateFlags  flags = MeshUpdateFlag::Default 
)
inline

◆ set_vertex_buffer_data() [2/2]

void osc::Mesh::set_vertex_buffer_data ( std::span< const uint8_t ,
MeshUpdateFlags  = MeshUpdateFlag::Default 
)

◆ set_vertex_buffer_params()

void osc::Mesh::set_vertex_buffer_params ( size_t  num_vertices,
const VertexFormat  
)

◆ set_vertices() [1/2]

void osc::Mesh::set_vertices ( std::initializer_list< Vector3 il)
inline

◆ set_vertices() [2/2]

void osc::Mesh::set_vertices ( std::span< const Vector3 )

◆ submesh_descriptor_at()

const SubMeshDescriptor & osc::Mesh::submesh_descriptor_at ( size_t  ) const

◆ tangents()

std::vector< Vector4 > osc::Mesh::tangents ( ) const

◆ tex_coords()

std::vector< Vector2 > osc::Mesh::tex_coords ( ) const

◆ topology()

MeshTopology osc::Mesh::topology ( ) const

◆ transform_normals()

void osc::Mesh::transform_normals ( const std::function< Vector3(Vector3)> &  )

◆ transform_tex_coords()

void osc::Mesh::transform_tex_coords ( const std::function< Vector2(Vector2)> &  )

◆ transform_vertices() [1/3]

void osc::Mesh::transform_vertices ( const Matrix4x4 )

◆ transform_vertices() [2/3]

void osc::Mesh::transform_vertices ( const std::function< Vector3(Vector3)> &  )

◆ transform_vertices() [3/3]

void osc::Mesh::transform_vertices ( const Transform )

◆ vertex_buffer_stride()

size_t osc::Mesh::vertex_buffer_stride ( ) const

◆ vertex_format()

const VertexFormat & osc::Mesh::vertex_format ( ) const

◆ vertices()

std::vector< Vector3 > osc::Mesh::vertices ( ) const

Friends And Related Symbol Documentation

◆ GraphicsBackend

friend class GraphicsBackend
friend

◆ operator<<

std::ostream & operator<< ( std::ostream &  ,
const Mesh  
)
friend

◆ operator==

bool operator== ( const Mesh ,
const Mesh  
)
friend

◆ std::hash< Mesh >

friend struct std::hash< Mesh >
friend

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