MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::loader::MTLReader Class Reference

#include <mtl_reader.hpp>

Inheritance diagram for mage::rendering::loader::MTLReader:
mage::LineReader

Public Member Functions

 MTLReader (ResourceManager &resource_manager, std::vector< Material > &material_buffer)
 
 MTLReader (const MTLReader &reader)=delete
 
 MTLReader (MTLReader &&reader) noexcept
 
 ~MTLReader ()
 
MTLReaderoperator= (const MTLReader &reader)=delete
 
MTLReaderoperator= (MTLReader &&reader)=delete
 
void ReadFromFile (std::filesystem::path path, std::regex regex=s_default_regex, SelectionFunction selection_function=s_default_selection_function)
 
void ReadFromMemory (const std::string &input, std::regex regex=s_default_regex, SelectionFunction selection_function=s_default_selection_function)
 

Private Member Functions

virtual void ReadLine () override
 
void ReadMTLMaterialName ()
 
void ReadMTLBaseColor ()
 
void ReadMTLRoughness ()
 
void ReadMTLMetalness ()
 
void ReadMTLRadiance ()
 
void ReadMTLBaseColorTexture ()
 
void ReadMTLMaterialTexture ()
 
void ReadMTLNormalTexture ()
 
const SRGB ReadMTLSRGB ()
 
const SRGBA ReadMTLSRGBA ()
 
TexturePtr ReadMTLTexture ()
 
- Private Member Functions inherited from mage::LineReader
LineReaderoperator= (const LineReader &reader)=delete
 
LineReaderoperator= (LineReader &&reader) noexcept
 
void ReadFromFile (std::filesystem::path path, std::regex regex=s_default_regex, SelectionFunction selection_function=s_default_selection_function)
 
void ReadFromMemory (const std::string &input, std::regex regex=s_default_regex, SelectionFunction selection_function=s_default_selection_function)
 
 LineReader ()
 
 LineReader (const LineReader &reader)=delete
 
 LineReader (LineReader &&reader) noexcept
 
 ~LineReader ()
 
const std::filesystem::path & GetPath () const noexcept
 
U32 GetCurrentLineNumber () const noexcept
 
template<typename T >
const T Read ()
 
template<typename T , std::size_t N, size_t A = alignof(T)>
const Array< T, N, A > Read ()
 
void ReadRemainingTokens ()
 
template<typename T >
bool Contains () const noexcept
 
bool ContainsTokens () const noexcept
 

Private Attributes

ResourceManagerm_resource_manager
 
std::vector< Material > & m_material_buffer
 

Additional Inherited Members

- Private Types inherited from mage::LineReader
using SelectionFunction = std::function< const std::ssub_match(const std::smatch &) >
 
- Static Private Attributes inherited from mage::LineReader
static const std::regex s_default_regex = std::regex(R"((\"([^\"]*)\")|(\S+))")
 
static const SelectionFunction s_default_selection_function
 

Detailed Description

A class of MTL file readers for reading materials.

Constructor & Destructor Documentation

◆ MTLReader() [1/3]

mage::rendering::loader::MTLReader::MTLReader ( ResourceManager resource_manager,
std::vector< Material > &  material_buffer 
)
explicit

Constructs a MTL reader.

Parameters
[in,out]resource_managerA reference to the resource manager.
[in,out]material_bufferA reference to a vector for storing the read materials from file.

◆ MTLReader() [2/3]

mage::rendering::loader::MTLReader::MTLReader ( const MTLReader reader)
delete

Constructs a MTL reader from the given MTL reader.

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

◆ MTLReader() [3/3]

mage::rendering::loader::MTLReader::MTLReader ( MTLReader &&  reader)
defaultnoexcept

Constructs a MTL reader by moving the given MTL reader.

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

◆ ~MTLReader()

mage::rendering::loader::MTLReader::~MTLReader ( )
default

Destructs this MTL reader.

Member Function Documentation

◆ operator=() [1/2]

MTLReader& mage::rendering::loader::MTLReader::operator= ( const MTLReader reader)
delete

Copies the given MTL reader to this MTL reader.

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

◆ operator=() [2/2]

MTLReader& mage::rendering::loader::MTLReader::operator= ( MTLReader &&  reader)
delete

Moves the given MTL reader to this MTL reader.

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

◆ ReadFromFile()

void mage::LineReader::ReadFromFile

Reads from the file associated with the given path.

Parameters
[in]pathThe path.
[in]regexThe (line) regex.
[in]selection_functionThe selection function.
Exceptions
ExceptionFailed to read from the file.

◆ ReadFromMemory()

void mage::LineReader::ReadFromMemory

Reads from the given input string.

Parameters
[in]inputA reference to the input string.
[in]regexThe (line) regex.
[in]selection_functionThe selection function.
Exceptions
ExceptionFailed to read from the given input string.

◆ ReadLine()

void mage::rendering::loader::MTLReader::ReadLine ( )
overrideprivatevirtual

Reads the current line of this MTL reader.

Exceptions
ExceptionFailed to the current line of this MTL reader.

Implements mage::LineReader.

◆ ReadMTLBaseColor()

void mage::rendering::loader::MTLReader::ReadMTLBaseColor ( )
private

Reads a Base Color definition.

Exceptions
ExceptionFailed to read a Base Color definition.

◆ ReadMTLBaseColorTexture()

void mage::rendering::loader::MTLReader::ReadMTLBaseColorTexture ( )
private

Reads a Base Color Texture definition.

Exceptions
ExceptionFailed to read a Base Color Texture definition.

◆ ReadMTLMaterialName()

void mage::rendering::loader::MTLReader::ReadMTLMaterialName ( )
private

Reads a Material Name definition.

Exceptions
ExceptionFailed to read a Material Name definition.

◆ ReadMTLMaterialTexture()

void mage::rendering::loader::MTLReader::ReadMTLMaterialTexture ( )
private

Reads a Material Texture definition.

Exceptions
ExceptionFailed to read a Material Texture definition.

◆ ReadMTLMetalness()

void mage::rendering::loader::MTLReader::ReadMTLMetalness ( )
private

Reads a Metalness definition.

Exceptions
ExceptionFailed to read a Metalness definition.

◆ ReadMTLNormalTexture()

void mage::rendering::loader::MTLReader::ReadMTLNormalTexture ( )
private

Reads a Normal Texture definition.

Exceptions
ExceptionFailed to read a Normal Texture definition.

◆ ReadMTLRadiance()

void mage::rendering::loader::MTLReader::ReadMTLRadiance ( )
private

Reads a Radiance definition.

Exceptions
ExceptionFailed to read a Radiance definition.

◆ ReadMTLRoughness()

void mage::rendering::loader::MTLReader::ReadMTLRoughness ( )
private

Reads a Roughness definition.

Exceptions
ExceptionFailed to read a Roughness definition.

◆ ReadMTLSRGB()

const SRGB mage::rendering::loader::MTLReader::ReadMTLSRGB ( )
private

Reads an sRGB spectrum.

Returns
The sRGB spectrum represented by the next token of this MTL reader.
Exceptions
ExceptionFailed to read a sRGB spectrum.

◆ ReadMTLSRGBA()

const SRGBA mage::rendering::loader::MTLReader::ReadMTLSRGBA ( )
private

Reads an sRGBA spectrum.

Returns
The sRGBA spectrum represented by the next token of this MTL reader.
Exceptions
ExceptionFailed to read a sRGBA spectrum.

◆ ReadMTLTexture()

TexturePtr mage::rendering::loader::MTLReader::ReadMTLTexture ( )
private

Reads a texture.

Returns
A pointer to the texture represented by the next token of this MTL reader.
Exceptions
ExceptionFailed to read a texture.

Member Data Documentation

◆ m_material_buffer

std::vector< Material >& mage::rendering::loader::MTLReader::m_material_buffer
private

A reference to a vector containing the read materials of this MTL reader.

◆ m_resource_manager

ResourceManager& mage::rendering::loader::MTLReader::m_resource_manager
private

A reference to resource manager of this MTL reader.