Castor3D 0.12.0
Multiplatform 3D engine
Public Member Functions | Static Public Attributes | Friends | List of all members
castor3d::BonesComponent Class Reference

#include <BonesComponent.hpp>

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

Public Member Functions

C3D_API BonesComponent (Submesh &submesh)
 Constructor. More...
 
C3D_API void addBoneDatas (VertexBoneData const *const begin, VertexBoneData const *const end)
 adds bone datas. More...
 
C3D_API SkeletonSPtr getSkeleton () const
 
C3D_API void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation) override
 Gathers buffers that need to go in a vertex layout. More...
 
C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const override
 
C3D_API void addBoneDatas (std::vector< VertexBoneData > const &boneData)
 adds bone datas. More...
 
template<size_t Count>
void addBoneDatas (std::array< VertexBoneData, Count > const &boneData)
 adds bone datas. More...
 
ProgramFlags getProgramFlags (MaterialRPtr material) const override
 
bool hasBoneData () const
 
VertexBoneDataArray const & getBonesData () const
 
- Public Member Functions inherited from castor3d::SubmeshComponent
C3D_API SubmeshComponent (Submesh &submesh, castor::String const &type, uint32_t id)
 Constructor. More...
 
virtual C3D_API ~SubmeshComponent () noexcept=default
 Destructor. More...
 
C3D_API bool initialise (RenderDevice const &device)
 Initialises the submesh. More...
 
C3D_API void cleanup (RenderDevice const &device)
 Cleans the submesh. More...
 
C3D_API void upload ()
 Uploads data on VRAM. More...
 
virtual C3D_API void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation)=0
 Gathers buffers that need to go in a vertex layout. More...
 
virtual C3D_API ProgramFlags getProgramFlags (MaterialRPtr material) const =0
 
virtual C3D_API VkBufferUsageFlags getUsageFlags () const
 
virtual C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const =0
 
castor::String const & getType () const
 
void needsUpdate ()
 Sets the component to be updated. More...
 
uint32_t getID ()
 

Static Public Attributes

static C3D_API castor::String const Name
 
static C3D_API uint32_t constexpr BindingPoint = 3u
 

Friends

class BinaryWriter< BonesComponent >
 
class BinaryParser< BonesComponent >
 

Constructor & Destructor Documentation

◆ BonesComponent()

C3D_API castor3d::BonesComponent::BonesComponent ( Submesh submesh)
explicit

Constructor.

Parameters
[in]submeshThe parent submesh.

Member Function Documentation

◆ addBoneDatas() [1/3]

template<size_t Count>
void castor3d::BonesComponent::addBoneDatas ( std::array< VertexBoneData, Count > const &  boneData)
inline

adds bone datas.

Parameters
[in]boneDataThe bone datas.

References addBoneDatas().

Here is the call graph for this function:

◆ addBoneDatas() [2/3]

C3D_API void castor3d::BonesComponent::addBoneDatas ( std::vector< VertexBoneData > const &  boneData)

adds bone datas.

Parameters
[in]boneDataThe bone datas.

◆ addBoneDatas() [3/3]

C3D_API void castor3d::BonesComponent::addBoneDatas ( VertexBoneData const *const  begin,
VertexBoneData const *const  end 
)

adds bone datas.

Parameters
[in]beginThe bones data begin.
[in]endThe bones data end.

Referenced by addBoneDatas().

Here is the caller graph for this function:

◆ clone()

C3D_API SubmeshComponentSPtr castor3d::BonesComponent::clone ( Submesh submesh) const
overridevirtual

Returns
Clones this component into given submesh.
Parameters
[in,out]submeshReceives the cloned component.

Implements castor3d::SubmeshComponent.

◆ gather()

C3D_API void castor3d::BonesComponent::gather ( ShaderFlags const &  shaderFlags,
ProgramFlags const &  programFlags,
MaterialRPtr  material,
ashes::BufferCRefArray &  buffers,
std::vector< uint64_t > &  offsets,
ashes::PipelineVertexInputStateCreateInfoCRefArray &  layouts,
TextureFlagsArray const &  mask,
uint32_t &  currentLocation 
)
overridevirtual

Gathers buffers that need to go in a vertex layout.

Parameters
[in]shaderFlagsThe shader flags.
[in]programFlagsThe program flags.
[in]materialThe material.
[in,out]buffersReceives the buffers.
[in,out]offsetsReceives the buffers offsets.
[in,out]layoutsReceives the vertex layouts.
[in]maskThe textures mask.
[in,out]currentLocationThe current attribute location.

Implements castor3d::SubmeshComponent.

◆ getBonesData()

VertexBoneDataArray const & castor3d::BonesComponent::getBonesData ( ) const
inline

◆ getProgramFlags()

ProgramFlags castor3d::BonesComponent::getProgramFlags ( MaterialRPtr  material) const
inlineoverridevirtual

Returns
The shader program flags.
Parameters
[in]materialThe material.

Implements castor3d::SubmeshComponent.

References castor3d::eSkinning, and hasBoneData().

Here is the call graph for this function:

◆ getSkeleton()

C3D_API SkeletonSPtr castor3d::BonesComponent::getSkeleton ( ) const
Returns
The skeleton.

◆ hasBoneData()

bool castor3d::BonesComponent::hasBoneData ( ) const
inline

Referenced by getProgramFlags().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ BinaryParser< BonesComponent >

friend class BinaryParser< BonesComponent >
friend

◆ BinaryWriter< BonesComponent >

friend class BinaryWriter< BonesComponent >
friend

Member Data Documentation

◆ BindingPoint

C3D_API uint32_t constexpr castor3d::BonesComponent::BindingPoint = 3u
staticconstexpr

◆ Name

C3D_API castor::String const castor3d::BonesComponent::Name
static

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