Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | List of all members
castor3d::SubmeshComponentRegister Class Reference

#include <SubmeshComponentRegister.hpp>

Inheritance diagram for castor3d::SubmeshComponentRegister:
Inheritance graph
[legend]
Collaboration diagram for castor3d::SubmeshComponentRegister:
Collaboration graph
[legend]

Public Member Functions

SubmeshComponentFlag getLineIndexFlag () const noexcept
 
SubmeshComponentFlag getTriangleIndexFlag () const noexcept
 
SubmeshComponentFlag getPositionFlag () const noexcept
 
SubmeshComponentFlag getNormalFlag () const noexcept
 
SubmeshComponentFlag getTangentFlag () const noexcept
 
SubmeshComponentFlag getBitangentFlag () const noexcept
 
SubmeshComponentFlag getTexcoord0Flag () const noexcept
 
SubmeshComponentFlag getTexcoord1Flag () const noexcept
 
SubmeshComponentFlag getTexcoord2Flag () const noexcept
 
SubmeshComponentFlag getTexcoord3Flag () const noexcept
 
SubmeshComponentFlag getColourFlag () const noexcept
 
SubmeshComponentFlag getSkinFlag () const noexcept
 
SubmeshComponentFlag getMorphFlag () const noexcept
 
SubmeshComponentFlag getPassMaskFlag () const noexcept
 
SubmeshComponentFlag getVelocityFlag () const noexcept
 
SubmeshComponentFlag getMeshletFlag () const noexcept
 
SubmeshComponentFlag getInstantiationFlag () const noexcept
 

Construction / Destruction.

 SubmeshComponentRegister (SubmeshComponentRegister const &)=delete
 
 SubmeshComponentRegister (SubmeshComponentRegister &&) noexcept=delete
 
SubmeshComponentRegisteroperator= (SubmeshComponentRegister const &)=delete
 
SubmeshComponentRegisteroperator= (SubmeshComponentRegister &&) noexcept=delete
 
C3D_API SubmeshComponentRegister (Engine &engine)
 
C3D_API ~SubmeshComponentRegister () noexcept
 

Submesh type registration.

C3D_API SubmeshComponentCombine registerSubmeshComponentCombine (Submesh const &submesh)
 
C3D_API SubmeshComponentCombineID registerSubmeshComponentCombine (SubmeshComponentCombine &combine)
 
C3D_API SubmeshComponentCombineID getSubmeshComponentCombineID (SubmeshComponentCombine const &combine) const
 
C3D_API SubmeshComponentCombine getSubmeshComponentCombine (Submesh const &submesh) const
 
C3D_API SubmeshComponentCombine getSubmeshComponentCombine (SubmeshComponentCombineID id) const
 
C3D_API SubmeshData getSubmeshData (SubmeshComponentFlag value) const
 
SubmeshComponentCombine const & getDefaultComponentCombine () const noexcept
 

Shader output components handling.

C3D_API castor::Vector< shader::SubmeshVertexSurfaceShader * > getVertexSurfaceShaders (PipelineFlags const &flags) const
 
C3D_API castor::Vector< shader::SubmeshRasterSurfaceShader * > getRasterSurfaceShaders (PipelineFlags const &flags) const
 
C3D_API void getSubmeshRenderShader (PipelineFlags const &flags, ComponentModeFlags const &componentsMask, ast::ShaderBuilder &builder) const
 Retrieves the shader source matching the given flags.
 
C3D_API SubmeshRenderDataPtr createRenderData (SubmeshComponent const &component)
 
C3D_API uint16_t getRenderDataId (SubmeshRenderData const *value) const
 
C3D_API SubmeshRenderData const * getRenderData (uint16_t value) const
 

Components registration.

C3D_API SubmeshComponentID registerComponent (castor::String const &componentType, SubmeshComponentPluginUPtr componentPlugin)
 
C3D_API void unregisterComponent (castor::String const &componentType)
 
C3D_API SubmeshComponentID getNameId (castor::String const &componentType) const
 
C3D_API SubmeshComponentPlugin const & getPlugin (SubmeshComponentID componentId) const
 
SubmeshComponentPlugin const & getPlugin (castor::String const &componentType) const
 
template<typename ComponentT >
SubmeshComponentPlugin const & getPlugin () const
 
template<typename ComponentT >
SubmeshComponentID registerComponent (CreateSubmeshComponentPlugin createPlugin=&ComponentT::createPlugin)
 
auto begin () const noexcept
 
auto end () const noexcept
 
- Public Member Functions inherited from castor::OwnedBy< Engine >
Engine * getOwner () const
 

Additional Inherited Members

- Protected Member Functions inherited from castor::OwnedBy< Engine >
 OwnedBy (Engine &owner)
 Constructor.
 

Constructor & Destructor Documentation

◆ SubmeshComponentRegister() [1/3]

castor3d::SubmeshComponentRegister::SubmeshComponentRegister ( SubmeshComponentRegister const & )
delete

◆ SubmeshComponentRegister() [2/3]

castor3d::SubmeshComponentRegister::SubmeshComponentRegister ( SubmeshComponentRegister && )
deletenoexcept

◆ SubmeshComponentRegister() [3/3]

C3D_API castor3d::SubmeshComponentRegister::SubmeshComponentRegister ( Engine & engine)
explicit

◆ ~SubmeshComponentRegister()

C3D_API castor3d::SubmeshComponentRegister::~SubmeshComponentRegister ( )
noexcept

Member Function Documentation

◆ begin()

auto castor3d::SubmeshComponentRegister::begin ( ) const
inlinenoexcept

◆ createRenderData()

C3D_API SubmeshRenderDataPtr castor3d::SubmeshComponentRegister::createRenderData ( SubmeshComponent const & component)

◆ end()

auto castor3d::SubmeshComponentRegister::end ( ) const
inlinenoexcept

◆ getBitangentFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getBitangentFlag ( ) const
inlinenoexcept

◆ getColourFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getColourFlag ( ) const
inlinenoexcept

◆ getDefaultComponentCombine()

SubmeshComponentCombine const & castor3d::SubmeshComponentRegister::getDefaultComponentCombine ( ) const
inlinenoexcept

◆ getInstantiationFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getInstantiationFlag ( ) const
inlinenoexcept

◆ getLineIndexFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getLineIndexFlag ( ) const
inlinenoexcept

◆ getMeshletFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getMeshletFlag ( ) const
inlinenoexcept

◆ getMorphFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getMorphFlag ( ) const
inlinenoexcept

◆ getNameId()

C3D_API SubmeshComponentID castor3d::SubmeshComponentRegister::getNameId ( castor::String const & componentType) const

Referenced by getPlugin(), and getPlugin().

Here is the caller graph for this function:

◆ getNormalFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getNormalFlag ( ) const
inlinenoexcept

◆ getPassMaskFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getPassMaskFlag ( ) const
inlinenoexcept

◆ getPlugin() [1/3]

template<typename ComponentT >
SubmeshComponentPlugin const & castor3d::SubmeshComponentRegister::getPlugin ( ) const
inline

References getNameId(), and getPlugin().

Referenced by getPlugin(), and getPlugin().

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

◆ getPlugin() [2/3]

SubmeshComponentPlugin const & castor3d::SubmeshComponentRegister::getPlugin ( castor::String const & componentType) const
inline

References getNameId(), and getPlugin().

Here is the call graph for this function:

◆ getPlugin() [3/3]

C3D_API SubmeshComponentPlugin const & castor3d::SubmeshComponentRegister::getPlugin ( SubmeshComponentID componentId) const

◆ getPositionFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getPositionFlag ( ) const
inlinenoexcept

◆ getRasterSurfaceShaders()

C3D_API castor::Vector< shader::SubmeshRasterSurfaceShader * > castor3d::SubmeshComponentRegister::getRasterSurfaceShaders ( PipelineFlags const & flags) const

◆ getRenderData()

C3D_API SubmeshRenderData const * castor3d::SubmeshComponentRegister::getRenderData ( uint16_t value) const

◆ getRenderDataId()

C3D_API uint16_t castor3d::SubmeshComponentRegister::getRenderDataId ( SubmeshRenderData const * value) const

◆ getSkinFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getSkinFlag ( ) const
inlinenoexcept

◆ getSubmeshComponentCombine() [1/2]

C3D_API SubmeshComponentCombine castor3d::SubmeshComponentRegister::getSubmeshComponentCombine ( Submesh const & submesh) const

◆ getSubmeshComponentCombine() [2/2]

C3D_API SubmeshComponentCombine castor3d::SubmeshComponentRegister::getSubmeshComponentCombine ( SubmeshComponentCombineID id) const

◆ getSubmeshComponentCombineID()

C3D_API SubmeshComponentCombineID castor3d::SubmeshComponentRegister::getSubmeshComponentCombineID ( SubmeshComponentCombine const & combine) const

◆ getSubmeshData()

C3D_API SubmeshData castor3d::SubmeshComponentRegister::getSubmeshData ( SubmeshComponentFlag value) const

◆ getSubmeshRenderShader()

C3D_API void castor3d::SubmeshComponentRegister::getSubmeshRenderShader ( PipelineFlags const & flags,
ComponentModeFlags const & componentsMask,
ast::ShaderBuilder & builder ) const

Retrieves the shader source matching the given flags.

Parameters
[in]flagsThe pipeline flags.
[in]componentsMaskThe nodes pass components flags.
[in]builderThe shader builder.

◆ getTangentFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTangentFlag ( ) const
inlinenoexcept

◆ getTexcoord0Flag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTexcoord0Flag ( ) const
inlinenoexcept

◆ getTexcoord1Flag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTexcoord1Flag ( ) const
inlinenoexcept

◆ getTexcoord2Flag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTexcoord2Flag ( ) const
inlinenoexcept

◆ getTexcoord3Flag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTexcoord3Flag ( ) const
inlinenoexcept

◆ getTriangleIndexFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getTriangleIndexFlag ( ) const
inlinenoexcept

◆ getVelocityFlag()

SubmeshComponentFlag castor3d::SubmeshComponentRegister::getVelocityFlag ( ) const
inlinenoexcept

◆ getVertexSurfaceShaders()

C3D_API castor::Vector< shader::SubmeshVertexSurfaceShader * > castor3d::SubmeshComponentRegister::getVertexSurfaceShaders ( PipelineFlags const & flags) const

◆ operator=() [1/2]

SubmeshComponentRegister & castor3d::SubmeshComponentRegister::operator= ( SubmeshComponentRegister && )
deletenoexcept

◆ operator=() [2/2]

SubmeshComponentRegister & castor3d::SubmeshComponentRegister::operator= ( SubmeshComponentRegister const & )
delete

◆ registerComponent() [1/2]

C3D_API SubmeshComponentID castor3d::SubmeshComponentRegister::registerComponent ( castor::String const & componentType,
SubmeshComponentPluginUPtr componentPlugin )

Referenced by registerComponent().

Here is the caller graph for this function:

◆ registerComponent() [2/2]

template<typename ComponentT >
SubmeshComponentID castor3d::SubmeshComponentRegister::registerComponent ( CreateSubmeshComponentPlugin createPlugin = &ComponentT::createPlugin)
inline

References registerComponent().

Here is the call graph for this function:

◆ registerSubmeshComponentCombine() [1/2]

C3D_API SubmeshComponentCombine castor3d::SubmeshComponentRegister::registerSubmeshComponentCombine ( Submesh const & submesh)

◆ registerSubmeshComponentCombine() [2/2]

C3D_API SubmeshComponentCombineID castor3d::SubmeshComponentRegister::registerSubmeshComponentCombine ( SubmeshComponentCombine & combine)

◆ unregisterComponent()

C3D_API void castor3d::SubmeshComponentRegister::unregisterComponent ( castor::String const & componentType)

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