MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::loader::MSHReader< VertexT, IndexT > Class Template Reference

#include <msh_reader.hpp>

Inheritance diagram for mage::rendering::loader::MSHReader< VertexT, IndexT >:
mage::BigEndianBinaryReader

Public Member Functions

 MSHReader (std::vector< VertexT > &vertices, std::vector< IndexT > &indices)
 
 MSHReader (const MSHReader &reader)=delete
 
 MSHReader (MSHReader &&reader) noexcept
 
 ~MSHReader ()
 
MSHReaderoperator= (const MSHReader &reader)=delete
 
MSHReaderoperator= (MSHReader &&reader)=delete
 
void ReadFromFile (std::filesystem::path path)
 
void ReadFromMemory (gsl::span< const U8 > input)
 

Private Member Functions

virtual void ReadData () override
 
bool IsHeaderValid ()
 
- Private Member Functions inherited from mage::BigEndianBinaryReader
BigEndianBinaryReaderoperator= (const BigEndianBinaryReader &reader)=delete
 
BigEndianBinaryReaderoperator= (BigEndianBinaryReader &&reader) noexcept
 
void ReadFromFile (std::filesystem::path path)
 
void ReadFromMemory (gsl::span< const U8 > input)
 
 BigEndianBinaryReader ()
 
 BigEndianBinaryReader (const BigEndianBinaryReader &reader)=delete
 
 BigEndianBinaryReader (BigEndianBinaryReader &&reader) noexcept
 
 ~BigEndianBinaryReader ()
 
const std::filesystem::path & GetPath () const noexcept
 
bool ContainsChars () const noexcept
 
template<typename T >
const T Read ()
 
template<typename T >
const T * ReadArray (std::size_t count)
 

Private Attributes

std::vector< VertexT > & m_vertices
 
std::vector< IndexT > & m_indices
 

Detailed Description

template<typename VertexT, typename IndexT>
class mage::rendering::loader::MSHReader< VertexT, IndexT >

A class of MSH file readers for reading meshes.

Template Parameters
VertexTThe vertex type.
IndexTThe index type.

Constructor & Destructor Documentation

◆ MSHReader() [1/3]

template<typename VertexT , typename IndexT >
mage::rendering::loader::MSHReader< VertexT, IndexT >::MSHReader ( std::vector< VertexT > &  vertices,
std::vector< IndexT > &  indices 
)
explicit

Constructs a MSH reader.

Parameters
[in,out]verticesA reference to a vector for storing the read vertices from file.
[in,out]indicesA reference to a vector for storing the read indices from file.

◆ MSHReader() [2/3]

template<typename VertexT , typename IndexT >
mage::rendering::loader::MSHReader< VertexT, IndexT >::MSHReader ( const MSHReader< VertexT, IndexT > &  reader)
delete

Constructs a MSH reader from the given MSH reader.

Parameters
[in]readerA reference to the MSH reader to copy.

◆ MSHReader() [3/3]

template<typename VertexT , typename IndexT >
mage::rendering::loader::MSHReader< VertexT, IndexT >::MSHReader ( MSHReader< VertexT, IndexT > &&  reader)
noexcept

Constructs a MSH reader by moving the given MSH reader.

Parameters
[in]readerA reference to the MSH reader to move.

◆ ~MSHReader()

template<typename VertexT , typename IndexT >
mage::rendering::loader::MSHReader< VertexT, IndexT >::~MSHReader ( )

Destructs this MSH reader.

Member Function Documentation

◆ IsHeaderValid()

template<typename VertexT , typename IndexT >
bool mage::rendering::loader::MSHReader< VertexT, IndexT >::IsHeaderValid ( )
private

Checks whether the header of the file is valid.

Returns
true if the header of the file is valid. false otherwise.

◆ operator=() [1/2]

template<typename VertexT , typename IndexT >
MSHReader& mage::rendering::loader::MSHReader< VertexT, IndexT >::operator= ( const MSHReader< VertexT, IndexT > &  reader)
delete

Copies the given MSH reader to this MSH reader.

Parameters
[in]readerA reference to a MSH reader to copy.
Returns
A reference to the copy of the given MSH reader (i.e. this MSH reader).

◆ operator=() [2/2]

template<typename VertexT , typename IndexT >
MSHReader& mage::rendering::loader::MSHReader< VertexT, IndexT >::operator= ( MSHReader< VertexT, IndexT > &&  reader)
delete

Moves the given MSH reader to this MSH reader.

Parameters
[in]readerA reference to a MSH reader to move.
Returns
A reference to the moved MSH reader (i.e. this MSH reader).

◆ ReadData()

template<typename VertexT , typename IndexT >
virtual void mage::rendering::loader::MSHReader< VertexT, IndexT >::ReadData ( )
overrideprivatevirtual

Starts reading.

Exceptions
ExceptionFailed to read from the given file.

Implements mage::BigEndianBinaryReader.

◆ ReadFromFile()

template<typename VertexT , typename IndexT >
void mage::BigEndianBinaryReader::ReadFromFile

Reads from the file associated with the given path.

Parameters
[in]pathThe path.
Exceptions
ExceptionFailed to read from the file.

◆ ReadFromMemory()

template<typename VertexT , typename IndexT >
void mage::BigEndianBinaryReader::ReadFromMemory

Reads the input string.

Parameters
[in]inputThe input byte string.
Exceptions
ExceptionFailed to read from the given input string.

Member Data Documentation

◆ m_indices

template<typename VertexT , typename IndexT >
std::vector< IndexT >& mage::rendering::loader::MSHReader< VertexT, IndexT >::m_indices
private

A reference to a vector containing the read indices of this MSH reader.

◆ m_vertices

template<typename VertexT , typename IndexT >
std::vector< VertexT >& mage::rendering::loader::MSHReader< VertexT, IndexT >::m_vertices
private

A reference to a vector containing the read vertices of this MSH reader.