Castor3D 0.16.0
Multiplatform 3D engine
|
#include <BillboardList.hpp>
Public Types | |
using | IdRenderNode = castor::Pair< uint32_t, BillboardRenderNode const * > |
using | Quad = castor::Array< BillboardVertex, 4u > |
Public Member Functions | |
C3D_API | BillboardBase (Scene &scene, SceneNode *node, ashes::PipelineVertexInputStateCreateInfoPtr vertexLayout, uint32_t vertexStride, GpuBufferOffsetT< uint8_t > vertexBuffer={}) |
Constructor. | |
virtual C3D_API | ~BillboardBase () noexcept=default |
Destructor. | |
C3D_API bool | initialise (RenderDevice const &device, uint32_t count) |
Initialises GPU side elements. | |
C3D_API void | cleanup (RenderDevice const &device) |
Cleans GPU side elements up. | |
C3D_API void | update (GpuUpdater &updater) |
Updates the render pass, GPU wise. | |
C3D_API uint32_t | getId (Pass const &pass) const |
Retrieves the object ID in models buffer. | |
C3D_API BillboardRenderNode const * | getRenderNode (Pass const &pass) const |
Retrieves the object render node. | |
C3D_API void | fillData (BillboardUboConfiguration &data) const |
Fills the given data with this billboard's properties. | |
C3D_API void | setId (Pass const &pass, BillboardRenderNode const *renderNode, uint32_t id) |
Sets the object render node and ID in models buffer. | |
C3D_API ProgramFlags | getProgramFlags () const |
SubmeshComponentCombineID | getComponentCombineID () const |
MaterialObs | getMaterial () const |
castor::Point2f const & | getDimensions () const |
uint32_t | getCount () const |
bool | isInitialised () const |
GpuBufferOffsetT< uint8_t > const & | getVertexBuffer () const |
GpuBufferOffsetT< uint8_t > & | getVertexBuffer () |
uint32_t | getVertexStride () |
GeometryBuffers const & | getGeometryBuffers () const |
ObjectBufferOffset const & | getBufferOffsets () const |
Scene const & | getParentScene () const |
Scene & | getParentScene () |
SceneNode * | getNode () const |
BillboardType | getBillboardType () const |
BillboardSize | getBillboardSize () const |
castor::UnorderedMap< Pass const *, IdRenderNode > const & | getIds () const |
void | setDimensions (castor::Point2f const &value) |
void | setCenterOffset (uint32_t value) |
void | setNode (SceneNode &value) |
void | setBillboardType (BillboardType value) |
void | setBillboardSize (BillboardSize value) |
void | setGpuFilled (bool value) |
C3D_API void | setMaterial (MaterialObs value) |
C3D_API void | setCount (uint32_t value) |
Public Member Functions inherited from castor3d::RenderedObject | |
C3D_API void | fillEntry (uint32_t nodeId, Pass const &pass, SceneNode const &sceneNode, uint32_t meshletCount, ModelBufferConfiguration &modelData) |
C3D_API void | fillEntryOffsets (uint32_t nodeId, VkDeviceSize vertexOffset, VkDeviceSize indexOffset, VkDeviceSize meshletOffset) |
void | setVisible (bool value) noexcept |
void | setShadowCaster (bool value) noexcept |
void | setShadowReceiver (bool value) noexcept |
void | setCullable (bool value) noexcept |
bool | isVisible () const noexcept |
bool | isShadowCaster () const noexcept |
bool | isShadowReceiver () const noexcept |
bool | isCullable () const noexcept |
Protected Attributes | |
Scene & | m_scene |
SceneNode * | m_node {} |
MaterialObs | m_material {} |
castor::Point2f | m_dimensions |
castor::Point3f | m_cameraPosition |
GpuBufferOffsetT< uint8_t > | m_vertexBuffer |
ashes::PipelineVertexInputStateCreateInfoPtr | m_vertexLayout |
uint32_t | m_vertexStride |
ashes::PipelineVertexInputStateCreateInfoPtr | m_quadLayout |
ObjectBufferOffset | m_bufferOffsets |
GeometryBuffers | m_geometryBuffers |
bool | m_needUpdate { true } |
bool | m_initialised { false } |
bool | m_gpuFilled { false } |
uint32_t | m_count { 0u } |
uint32_t | m_centerOffset { 0u } |
BillboardType | m_billboardType { BillboardType::eCylindrical } |
BillboardSize | m_billboardSize { BillboardSize::eDynamic } |
castor::UnorderedMap< Pass const *, IdRenderNode > | m_ids {} |
SubmeshComponentCombine | m_proxyCombine |
using castor3d::BillboardBase::IdRenderNode = castor::Pair< uint32_t, BillboardRenderNode const * > |
using castor3d::BillboardBase::Quad = castor::Array< BillboardVertex, 4u > |
C3D_API castor3d::BillboardBase::BillboardBase | ( | Scene & | scene, |
SceneNode * | node, | ||
ashes::PipelineVertexInputStateCreateInfoPtr | vertexLayout, | ||
uint32_t | vertexStride, | ||
GpuBufferOffsetT< uint8_t > | vertexBuffer = {} ) |
Constructor.
[in] | scene | The parent scene. |
[in] | node | The parent scene node. |
[in] | vertexLayout | The layout for the vertex buffer. |
[in] | vertexStride | The vertex stride. |
[in] | vertexBuffer | The vertex buffer. |
|
virtualdefaultnoexcept |
Destructor.
C3D_API void castor3d::BillboardBase::cleanup | ( | RenderDevice const & | device | ) |
Cleans GPU side elements up.
device | The current device. |
C3D_API void castor3d::BillboardBase::fillData | ( | BillboardUboConfiguration & | data | ) | const |
Fills the given data with this billboard's properties.
[out] | data | The data to fill. |
|
inline |
References m_billboardSize.
|
inline |
References m_billboardType.
|
inline |
References m_bufferOffsets.
|
inline |
References castor3d::SubmeshComponentCombine::baseId, and m_proxyCombine.
|
inline |
References m_count.
|
inline |
References m_dimensions.
|
inline |
References m_geometryBuffers.
Retrieves the object ID in models buffer.
[in] | pass | The material pass. |
|
inline |
References m_ids.
|
inline |
References m_material.
C3D_API ProgramFlags castor3d::BillboardBase::getProgramFlags | ( | ) | const |
name Getters.
C3D_API BillboardRenderNode const * castor3d::BillboardBase::getRenderNode | ( | Pass const & | pass | ) | const |
Retrieves the object render node.
[in] | pass | The material pass. |
|
inline |
References m_vertexBuffer.
|
inline |
References m_vertexBuffer.
|
inline |
References m_vertexStride.
C3D_API bool castor3d::BillboardBase::initialise | ( | RenderDevice const & | device, |
uint32_t | count ) |
Initialises GPU side elements.
device | The current device. | |
[in] | count | The elements count. |
true
if all is OK.
|
inline |
References m_initialised.
|
inline |
References m_billboardSize.
|
inline |
References m_billboardType.
|
inline |
References m_centerOffset.
C3D_API void castor3d::BillboardBase::setCount | ( | uint32_t | value | ) |
|
inline |
name Setters.
References m_dimensions.
|
inline |
References m_gpuFilled.
C3D_API void castor3d::BillboardBase::setId | ( | Pass const & | pass, |
BillboardRenderNode const * | renderNode, | ||
uint32_t | id ) |
Sets the object render node and ID in models buffer.
[in] | pass | The material pass. |
[in] | renderNode | The render node. |
[in] | id | The ID. |
C3D_API void castor3d::BillboardBase::setMaterial | ( | MaterialObs | value | ) |
C3D_API void castor3d::BillboardBase::update | ( | GpuUpdater & | updater | ) |
Updates the render pass, GPU wise.
[in,out] | updater | The update data. |
|
protected |
Referenced by getBillboardSize(), and setBillboardSize().
|
protected |
Referenced by getBillboardType(), and setBillboardType().
|
protected |
Referenced by getBufferOffsets().
|
protected |
|
protected |
Referenced by setCenterOffset().
|
protected |
Referenced by getCount().
|
protected |
Referenced by getDimensions(), and setDimensions().
|
protected |
Referenced by getGeometryBuffers().
|
protected |
Referenced by setGpuFilled().
|
protected |
Referenced by getIds().
|
protected |
Referenced by isInitialised().
|
protected |
Referenced by getMaterial().
|
protected |
Referenced by castor3d::BillboardList::setAt().
|
protected |
Referenced by getComponentCombineID().
|
protected |
|
protected |
Referenced by getParentScene(), and getParentScene().
|
protected |
Referenced by getVertexBuffer(), and getVertexBuffer().
|
protected |
|
protected |
Referenced by getVertexStride().