Symphony Of Empires
Eng3D::MeshStatic< vtc_size, i_size, V, T, C > Struct Template Reference

A static mesh with fixed number of elements. More...

#include <mesh.hpp>

Public Types

using DataType = Eng3D::MeshData< V, T, C >
 

Public Member Functions

 MeshStatic (enum Eng3D::MeshMode _mode)
 
virtual ~MeshStatic ()=default
 
 MeshStatic (const MeshStatic &)=delete
 
 MeshStatic (MeshStatic &&) noexcept=default
 
MeshStaticoperator= (const MeshStatic &)=delete
 
void draw (int instances=0) const
 
virtual void upload () const
 
template<typename I = glm::vec2>
void instancing (I &instances_buffer, int instances=0)
 Enables instances on this simple mesh. More...
 

Public Attributes

std::array< DataType, vtc_size > buffer
 
std::array< unsigned int, i_size > indices
 
enum Eng3D::MeshMode mode
 

Detailed Description

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
struct Eng3D::MeshStatic< vtc_size, i_size, V, T, C >

A static mesh with fixed number of elements.

Definition at line 192 of file mesh.hpp.

Member Typedef Documentation

◆ DataType

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
using Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::DataType = Eng3D::MeshData<V, T, C>

Definition at line 193 of file mesh.hpp.

Constructor & Destructor Documentation

◆ MeshStatic() [1/3]

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::MeshStatic ( enum Eng3D::MeshMode  _mode)
inline

Definition at line 195 of file mesh.hpp.

◆ ~MeshStatic()

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
virtual Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::~MeshStatic ( )
virtualdefault

◆ MeshStatic() [2/3]

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::MeshStatic ( const MeshStatic< vtc_size, i_size, V, T, C > &  )
delete

◆ MeshStatic() [3/3]

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::MeshStatic ( MeshStatic< vtc_size, i_size, V, T, C > &&  )
defaultnoexcept

Member Function Documentation

◆ draw()

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
void Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::draw ( int  instances = 0) const
inline

Definition at line 205 of file mesh.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ instancing()

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
template<typename I = glm::vec2>
void Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::instancing ( I &  instances_buffer,
int  instances = 0 
)
inline

Enables instances on this simple mesh.

Parameters
instances_bufferContigous buffer with instances data
instancesNumber of instances to configure for

Definition at line 219 of file mesh.hpp.

Here is the call graph for this function:

◆ operator=()

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
MeshStatic& Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::operator= ( const MeshStatic< vtc_size, i_size, V, T, C > &  )
delete

◆ upload()

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
virtual void Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::upload ( ) const
inlinevirtual

Definition at line 209 of file mesh.hpp.

Here is the call graph for this function:

Member Data Documentation

◆ buffer

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
std::array<DataType, vtc_size> Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::buffer

Definition at line 223 of file mesh.hpp.

◆ indices

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
std::array<unsigned int, i_size> Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::indices

Definition at line 224 of file mesh.hpp.

◆ mode

template<std::size_t vtc_size = 0, std::size_t i_size = 0, typename V = glm::vec3, typename T = glm::vec2, typename C = void>
enum Eng3D::MeshMode Eng3D::MeshStatic< vtc_size, i_size, V, T, C >::mode

Definition at line 224 of file mesh.hpp.


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