Castor3D 0.12.0
Multiplatform 3D engine
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
castor3d::BillboardBase Class Reference

#include <BillboardList.hpp>

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

Public Types

using Quad = std::array< BillboardVertex, 4u >
 

Public Member Functions

C3D_API BillboardBase (Scene &scene, SceneNode *node, ashes::PipelineVertexInputStateCreateInfoPtr vertexLayout, uint32_t vertexStride, GpuBufferOffsetT< uint8_t > vertexBuffer={})
 Constructor. More...
 
C3D_API ~BillboardBase ()
 Destructor. More...
 
C3D_API bool initialise (RenderDevice const &device, uint32_t count)
 Initialises GPU side elements. More...
 
C3D_API void cleanup (RenderDevice const &device)
 Cleans GPU side elements up. More...
 
C3D_API void sortByDistance (castor::Point3f const &cameraPosition)
 Sorts the points from farthest to nearest from the camera. More...
 
C3D_API void update (GpuUpdater &updater)
 Updates the render pass, GPU wise. More...
 
C3D_API ProgramFlags getProgramFlags () const
 
C3D_API uint32_t getId (Pass const &pass) const
 
MaterialRPtr getMaterial () const
 
castor::Point2f const & getDimensions () const
 
uint32_t getCount () const
 
bool isInitialised () const
 
GpuBufferOffsetT< uint8_t > const & getVertexBuffer () const
 
GpuBufferOffsetT< uint8_t > & getVertexBuffer ()
 
GeometryBuffers const & getGeometryBuffers () const
 
ObjectBufferOffset const & getBufferOffsets () const
 
Scene const & getParentScene () const
 
ScenegetParentScene ()
 
SceneNodegetNode () const
 
BillboardType getBillboardType () const
 
BillboardSize getBillboardSize () const
 
C3D_API void setId (Pass const &pass, uint32_t id)
 
void setDimensions (castor::Point2f const &value)
 
void setCenterOffset (uint32_t value)
 
void setNode (SceneNode &value)
 
void setBillboardType (BillboardType value)
 
void setBillboardSize (BillboardSize value)
 
C3D_API void setMaterial (MaterialRPtr value)
 
C3D_API void setCount (uint32_t value)
 
- Public Member Functions inherited from castor3d::RenderedObject
void setVisible (bool value)
 
void setShadowCaster (bool value)
 
void setShadowReceiver (bool value)
 
void setCulled (bool value)
 
bool isVisible () const
 
bool isShadowCaster () const
 
bool isShadowReceiver () const
 
bool isCulled () const
 

Public Attributes

OnBillboardMaterialChanged onMaterialChanged
 

Protected Attributes

Scenem_scene
 
SceneNodem_node
 
MaterialRPtr 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
 
GeometryBuffers m_geometryBuffers
 
bool m_needUpdate { true }
 
bool m_initialised { false }
 
uint32_t m_count { 0u }
 
uint32_t m_centerOffset { 0u }
 
BillboardType m_billboardType { BillboardType::eCylindrical }
 
BillboardSize m_billboardSize { BillboardSize::eDynamic }
 
std::unordered_map< Pass const *, uint32_t > m_ids {}
 

Member Typedef Documentation

◆ Quad

Constructor & Destructor Documentation

◆ BillboardBase()

C3D_API castor3d::BillboardBase::BillboardBase ( Scene scene,
SceneNode node,
ashes::PipelineVertexInputStateCreateInfoPtr  vertexLayout,
uint32_t  vertexStride,
GpuBufferOffsetT< uint8_t >  vertexBuffer = {} 
)

Constructor.

Parameters
[in]sceneThe parent scene.
[in]nodeThe parent scene node.
[in]vertexLayoutThe layout for the vertex buffer.
[in]vertexStrideThe vertex stride.
[in]vertexBufferThe vertex buffer.

◆ ~BillboardBase()

C3D_API castor3d::BillboardBase::~BillboardBase ( )

Destructor.

Member Function Documentation

◆ cleanup()

C3D_API void castor3d::BillboardBase::cleanup ( RenderDevice const &  device)

Cleans GPU side elements up.

Parameters
deviceThe current device.

◆ getBillboardSize()

BillboardSize castor3d::BillboardBase::getBillboardSize ( ) const
inline

References m_billboardSize.

◆ getBillboardType()

BillboardType castor3d::BillboardBase::getBillboardType ( ) const
inline

References m_billboardType.

◆ getBufferOffsets()

ObjectBufferOffset const & castor3d::BillboardBase::getBufferOffsets ( ) const
inline

References castor3d::GeometryBuffers::bufferOffset, and getGeometryBuffers().

Here is the call graph for this function:

◆ getCount()

uint32_t castor3d::BillboardBase::getCount ( ) const
inline

References m_count.

◆ getDimensions()

castor::Point2f const & castor3d::BillboardBase::getDimensions ( ) const
inline

References m_dimensions.

◆ getGeometryBuffers()

GeometryBuffers const & castor3d::BillboardBase::getGeometryBuffers ( ) const
inline

References m_geometryBuffers.

Referenced by getBufferOffsets().

Here is the caller graph for this function:

◆ getId()

C3D_API uint32_t castor3d::BillboardBase::getId ( Pass const &  pass) const

◆ getMaterial()

MaterialRPtr castor3d::BillboardBase::getMaterial ( ) const
inline

References m_material.

◆ getNode()

SceneNode * castor3d::BillboardBase::getNode ( ) const
inline

References m_node.

◆ getParentScene() [1/2]

Scene & castor3d::BillboardBase::getParentScene ( )
inline

References m_scene.

◆ getParentScene() [2/2]

Scene const & castor3d::BillboardBase::getParentScene ( ) const
inline

References m_scene.

◆ getProgramFlags()

C3D_API ProgramFlags castor3d::BillboardBase::getProgramFlags ( ) const

name Getters.

◆ getVertexBuffer() [1/2]

GpuBufferOffsetT< uint8_t > & castor3d::BillboardBase::getVertexBuffer ( )
inline

References m_vertexBuffer.

◆ getVertexBuffer() [2/2]

GpuBufferOffsetT< uint8_t > const & castor3d::BillboardBase::getVertexBuffer ( ) const
inline

References m_vertexBuffer.

◆ initialise()

C3D_API bool castor3d::BillboardBase::initialise ( RenderDevice const &  device,
uint32_t  count 
)

Initialises GPU side elements.

Parameters
deviceThe current device.
[in]countThe elements count.
Returns
true if all is OK.

◆ isInitialised()

bool castor3d::BillboardBase::isInitialised ( ) const
inline

References m_initialised.

◆ setBillboardSize()

void castor3d::BillboardBase::setBillboardSize ( BillboardSize  value)
inline

References m_billboardSize.

◆ setBillboardType()

void castor3d::BillboardBase::setBillboardType ( BillboardType  value)
inline

References m_billboardType.

◆ setCenterOffset()

void castor3d::BillboardBase::setCenterOffset ( uint32_t  value)
inline

References m_centerOffset.

◆ setCount()

C3D_API void castor3d::BillboardBase::setCount ( uint32_t  value)

◆ setDimensions()

void castor3d::BillboardBase::setDimensions ( castor::Point2f const &  value)
inline

References m_dimensions.

◆ setId()

C3D_API void castor3d::BillboardBase::setId ( Pass const &  pass,
uint32_t  id 
)

name Setters.

◆ setMaterial()

C3D_API void castor3d::BillboardBase::setMaterial ( MaterialRPtr  value)

◆ setNode()

void castor3d::BillboardBase::setNode ( SceneNode value)
inline

References m_node.

◆ sortByDistance()

C3D_API void castor3d::BillboardBase::sortByDistance ( castor::Point3f const &  cameraPosition)

Sorts the points from farthest to nearest from the camera.

Parameters
[in]cameraPositionThe camera position, relative to billboard.

◆ update()

C3D_API void castor3d::BillboardBase::update ( GpuUpdater updater)

Updates the render pass, GPU wise.

Parameters
[in,out]updaterThe update data.

Member Data Documentation

◆ m_billboardSize

BillboardSize castor3d::BillboardBase::m_billboardSize { BillboardSize::eDynamic }
protected

◆ m_billboardType

BillboardType castor3d::BillboardBase::m_billboardType { BillboardType::eCylindrical }
protected

◆ m_cameraPosition

castor::Point3f castor3d::BillboardBase::m_cameraPosition
protected

◆ m_centerOffset

uint32_t castor3d::BillboardBase::m_centerOffset { 0u }
protected

Referenced by setCenterOffset().

◆ m_count

uint32_t castor3d::BillboardBase::m_count { 0u }
protected

Referenced by getCount().

◆ m_dimensions

castor::Point2f castor3d::BillboardBase::m_dimensions
protected

Referenced by getDimensions(), and setDimensions().

◆ m_geometryBuffers

GeometryBuffers castor3d::BillboardBase::m_geometryBuffers
protected

Referenced by getGeometryBuffers().

◆ m_ids

std::unordered_map< Pass const *, uint32_t > castor3d::BillboardBase::m_ids {}
protected

◆ m_initialised

bool castor3d::BillboardBase::m_initialised { false }
protected

Referenced by isInitialised().

◆ m_material

MaterialRPtr castor3d::BillboardBase::m_material
protected

Referenced by getMaterial().

◆ m_needUpdate

bool castor3d::BillboardBase::m_needUpdate { true }
protected

◆ m_node

SceneNode* castor3d::BillboardBase::m_node
protected

Referenced by getNode(), and setNode().

◆ m_quadLayout

ashes::PipelineVertexInputStateCreateInfoPtr castor3d::BillboardBase::m_quadLayout
protected

◆ m_scene

Scene& castor3d::BillboardBase::m_scene
protected

Referenced by getParentScene().

◆ m_vertexBuffer

GpuBufferOffsetT< uint8_t > castor3d::BillboardBase::m_vertexBuffer
protected

Referenced by getVertexBuffer().

◆ m_vertexLayout

ashes::PipelineVertexInputStateCreateInfoPtr castor3d::BillboardBase::m_vertexLayout
protected

◆ m_vertexStride

uint32_t castor3d::BillboardBase::m_vertexStride
protected

◆ onMaterialChanged

OnBillboardMaterialChanged castor3d::BillboardBase::onMaterialChanged

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