GLSL Struct 1.4.0
glslstruct
Loading...
Searching...
No Matches
glslstruct::vec_data Class Reference

glsl vec data container More...

#include <vec_data.hpp>

Collaboration diagram for glslstruct::vec_data:
[legend]

Public Member Functions

 vec_data (const std::vector< std::byte > &data)
 constructor which accepts raw data (not recommended to use for end user)
template<class T, glm::length_t L, glm::qualifier Q>
 vec_data (const glm::vec< L, T, Q > &value) _GLSL_STRUCT_REQUIRES((mstd
 constructor for glm::vec
template<class T, size_t N>
 vec_data (const mstd::vec< N, T > &value) _GLSL_STRUCT_REQUIRES((mstd
 constructor for mstd::vec
 vec_data (const vec_data &other)
 default copy constructor
 vec_data (vec_data &&other) noexcept
 default move constructor
 ~vec_data ()
 default destructor
vec_dataoperator= (const vec_data &other)
 default copy assign operator
vec_dataoperator= (vec_data &&other) noexcept
 default move assign operator
template<utils::glsl_vec T>
get () const
 returns value from this vec_data container using vec_traits conversion
const std::vector< std::byte > & data () const noexcept
 returns value data in bytes

Static Private Member Functions

template<class T, size_t N>
static _GLSL_STRUCT_CONSTEXPR20 std::vector< std::byte > _get_data (const std::array< T, N > &values)
 returns vector of data bytes of array of N values of type T
template<class T, glm::length_t L, glm::qualifier Q>
static _GLSL_STRUCT_CONSTEXPR17 std::array< T, L > _to_array (const glm::vec< L, T, Q > &value)
 returns array of N values of type T from glm::vec
template<class T, size_t N>
static _GLSL_STRUCT_CONSTEXPR17 std::array< T, N > _to_array (const mstd::vec< N, T > &value)
 returns array of N values of type T from mstd::vec

Private Attributes

std::vector< std::byte > _data
 vector of data bytes

Detailed Description

glsl vec data container

Constructor & Destructor Documentation

◆ vec_data() [1/5]

vec_data::vec_data ( const std::vector< std::byte > & data)
explicit

constructor which accepts raw data (not recommended to use for end user)

◆ vec_data() [2/5]

template<class T, glm::length_t L, glm::qualifier Q>
glslstruct::vec_data::vec_data ( const glm::vec< L, T, Q > & value)
inlineexplicit

constructor for glm::vec

◆ vec_data() [3/5]

template<class T, size_t N>
glslstruct::vec_data::vec_data ( const mstd::vec< N, T > & value)
inlineexplicit

constructor for mstd::vec

◆ vec_data() [4/5]

vec_data::vec_data ( const vec_data & other)
default

default copy constructor

◆ vec_data() [5/5]

vec_data::vec_data ( vec_data && other)
defaultnoexcept

default move constructor

◆ ~vec_data()

vec_data::~vec_data ( )
default

default destructor

Member Function Documentation

◆ _get_data()

template<class T, size_t N>
_GLSL_STRUCT_CONSTEXPR20 std::vector< std::byte > glslstruct::vec_data::_get_data ( const std::array< T, N > & values)
inlinestaticnodiscardprivate

returns vector of data bytes of array of N values of type T

◆ _to_array() [1/2]

template<class T, glm::length_t L, glm::qualifier Q>
_GLSL_STRUCT_CONSTEXPR17 std::array< T, L > glslstruct::vec_data::_to_array ( const glm::vec< L, T, Q > & value)
inlinestaticnodiscardprivate

returns array of N values of type T from glm::vec

◆ _to_array() [2/2]

template<class T, size_t N>
_GLSL_STRUCT_CONSTEXPR17 std::array< T, N > glslstruct::vec_data::_to_array ( const mstd::vec< N, T > & value)
inlinestaticnodiscardprivate

returns array of N values of type T from mstd::vec

◆ data()

const std::vector< std::byte > & vec_data::data ( ) const
nodiscardnoexcept

returns value data in bytes

◆ get()

template<utils::glsl_vec T>
T glslstruct::vec_data::get ( ) const
inline

returns value from this vec_data container using vec_traits conversion

◆ operator=() [1/2]

vec_data & vec_data::operator= ( const vec_data & other)
default

default copy assign operator

◆ operator=() [2/2]

vec_data & vec_data::operator= ( vec_data && other)
defaultnoexcept

default move assign operator

Member Data Documentation

◆ _data

std::vector<std::byte> glslstruct::vec_data::_data
private

vector of data bytes