Saga3D API Documentation  1.0-RC4
saga::scene::IBillboardSceneNode Class Referenceabstract

A billboard scene node. More...

#include <IBillboardSceneNode.h>

Inheritance diagram for saga::scene::IBillboardSceneNode:
saga::scene::ISceneNode saga::IEventReceiver saga::scene::IBillboardTextSceneNode

Public Member Functions

 IBillboardSceneNode (ISceneNode *parent, ISceneManager *mgr, std::int32_t id, const glm::vec3 &position=glm::vec3(0, 0, 0))
 Constructor. More...
 
virtual void setSize (const glm::vec2 &size)=0
 Sets the size of the billboard, making it rectangular. More...
 
virtual void setSize (float height, float bottomEdgeWidth, float topEdgeWidth)=0
 Sets the size of the billboard with independent widths of the bottom and top edges. More...
 
virtual const glm::vec2 & getSize () const =0
 Returns the size of the billboard. More...
 
virtual void getSize (float &height, float &bottomEdgeWidth, float &topEdgeWidth) const =0
 Gets the size of the the billboard and handles independent top and bottom edge widths correctly. More...
 
virtual void setColor (const video::SColor &overallColor)=0
 Set the color of all vertices of the billboard. More...
 
virtual void setColor (const video::SColor &topColor, const video::SColor &bottomColor)=0
 Set the color of the top and bottom vertices of the billboard. More...
 
virtual void getColor (video::SColor &topColor, video::SColor &bottomColor) const =0
 Gets the color of the top and bottom vertices of the billboard. More...
 
virtual const core::aabbox3d< float > & getTransformedBillboardBoundingBox (const saga::scene::ICameraSceneNode *camera)=0
 Get the real boundingbox used by the billboard, which can depend on the active camera. More...
 
- Public Member Functions inherited from saga::scene::ISceneNode
 ISceneNode (const std::shared_ptr< ISceneNode > &parent, const std::shared_ptr< ISceneManager > &mgr, const glm::vec3 &position=glm::vec3(0, 0, 0), const glm::vec3 &rotation=glm::vec3(0, 0, 0), const glm::vec3 &scale=glm::vec3(1.0f, 1.0f, 1.0f))
 Constructor. More...
 
virtual void onEvent (const SDL_Event &event) override
 Called when an SDL event is fired. More...
 
virtual ~ISceneNode ()
 Destructor. More...
 
void setID (const ID id)
 
const auto getID () const
 
virtual void onRegisterSceneNode (video::RenderPassHandle pass)
 This method is called just before the rendering process of the whole scene. More...
 
virtual void onUnregisterSceneNode (video::RenderPassHandle pass)
 
void setOnRender (std::function< void()> func)
 
void onRender ()
 
bool hasDrawCommands () const
 
void setDrawCommands (video::DrawCommandList &&list)
 
const auto & getDrawCommands () const
 
auto getTexture (int slot) const
 
auto & getTextures ()
 
void setTexture (int slot, video::TextureHandle texture)
 
virtual void setPipeline (video::PipelineHandle pipeline)
 
auto getPipeline () const
 
virtual void onAnimate (const float time)
 onAnimate() is called just before rendering the whole scene. More...
 
virtual const std::string & getName () const
 Returns the name of the node. More...
 
virtual void setName (const std::string &name)
 Sets the name of the node. More...
 
virtual const core::aabbox3d< float > & getBoundingBox () const =0
 Get the axis aligned, not transformed bounding box of this node. More...
 
virtual const core::aabbox3d< float > getTransformedBoundingBox () const
 Get the axis aligned, transformed and animated absolute bounding box of this node. More...
 
virtual void getTransformedBoundingBoxEdges (std::vector< glm::vec3 > &edges) const
 
virtual const glm::mat4 & getAbsoluteTransformation () const
 Get the absolute transformation of the node. Is recalculated every onAnimate()-call. More...
 
virtual glm::mat4 getRelativeTransformation () const
 Returns the relative transformation of the scene node. More...
 
virtual bool isVisible () const
 Returns whether the node should be visible (if all of its parents are visible). More...
 
virtual bool isTrulyVisible () const
 Check whether the node is truly visible, taking into accounts its parents' visibility. More...
 
virtual void setVisible (bool isVisible)
 Sets if the node should be visible or not. More...
 
virtual void addChild (const std::shared_ptr< ISceneNode > &child)
 Adds a child to this scene node. More...
 
virtual bool removeChild (const std::shared_ptr< ISceneNode > &child)
 
virtual void removeAll ()
 Removes all children of this scene node. More...
 
virtual void remove ()
 Removes this scene node from the scene. More...
 
virtual void addAnimator (const std::shared_ptr< ISceneNodeAnimator > &animator)
 Adds an animator which should animate this node. More...
 
const auto & getAnimators () const
 Get a list of all scene node animators. More...
 
virtual void removeAnimator (const std::shared_ptr< ISceneNodeAnimator > &animator)
 Removes an animator from this scene node. More...
 
virtual void removeAnimators ()
 Removes all animators from this scene node. More...
 
virtual const glm::vec3 & getScale () const
 Gets the scale of the scene node relative to its parent. More...
 
virtual void setScale (const glm::vec3 &scale)
 Sets the relative scale of the scene node. More...
 
virtual const glm::vec3 & getRotation () const
 Gets the rotation of the node relative to its parent. More...
 
virtual void setRotation (const glm::vec3 &rotation)
 Sets the rotation of the node relative to its parent. More...
 
virtual const glm::vec3 & getPosition () const
 Gets the position of the node relative to its parent. More...
 
virtual void setPosition (const glm::vec3 &newpos)
 Sets the position of the node relative to its parent. More...
 
virtual glm::vec3 getAbsolutePosition () const
 Gets the absolute position of the node in world coordinates. More...
 
const std::vector< std::shared_ptr< ISceneNode > > & getChildren () const
 Returns a const reference to the list of all children. More...
 
virtual void setParent (const std::shared_ptr< ISceneNode > &newParent)
 Changes the parent of the scene node. More...
 
virtual void updateAbsolutePosition ()
 Returns the triangle selector attached to this scene node. More...
 
const std::shared_ptr< ISceneNode > & getParent () const
 Returns the parent of this scene node. More...
 
virtual E_SCENE_NODE_TYPE getType () const
 Returns type of the scene node. More...
 
virtual std::shared_ptr< ISceneNodeclone (const std::shared_ptr< ISceneNode > &newParent=0)
 Creates a clone of this scene node and its children. More...
 
virtual const std::shared_ptr< ISceneManager > & getSceneManager () const
 Retrieve the scene manager for this node. More...
 
- Public Member Functions inherited from saga::IEventReceiver
virtual ~IEventReceiver ()
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from saga::scene::ISceneNode
ID NodeID = INVALID_ID
 A clone function for the ISceneNode members. More...
 
std::string Name
 Name of the scene node. More...
 
glm::mat4 AbsoluteTransformation
 Absolute transformation of the node. More...
 
glm::vec3 RelativeTranslation
 Relative translation of the scene node. More...
 
glm::vec3 RelativeRotation
 Relative rotation of the scene node. More...
 
glm::vec3 RelativeScale
 Relative scale of the scene node. More...
 
std::shared_ptr< ISceneNodeParent = nullptr
 Pointer to the parent. More...
 
std::vector< std::shared_ptr< ISceneNode > > Children
 List of all children of this node. More...
 
std::array< video::STexture::HandleType, video::MAX_NODE_TEXTURESTextures = { video::NULL_GPU_RESOURCE_HANDLE }
 Texture list. More...
 
std::vector< std::shared_ptr< ISceneNodeAnimator > > Animators
 List of all animator nodes. More...
 
std::shared_ptr< ISceneManagerSceneManager = nullptr
 Pointer to the scene manager. More...
 
std::function< void()> OnRenderCallback = nullptr
 Custom hook into rendering process of the scene node. More...
 
video::DrawCommandList DrawCommands
 
video::PipelineHandle Pipeline = video::NULL_GPU_RESOURCE_HANDLE
 
bool IsVisible = true
 Is the node visible? More...
 

Detailed Description

A billboard scene node.

A billboard is like a 3d sprite: A 2d element, which always looks to the camera. It is usually used for explosions, fire, lensflares, particles and things like that.

Definition at line 21 of file IBillboardSceneNode.h.

Constructor & Destructor Documentation

◆ IBillboardSceneNode()

saga::scene::IBillboardSceneNode::IBillboardSceneNode ( ISceneNode parent,
ISceneManager mgr,
std::int32_t  id,
const glm::vec3 &  position = glm::vec3(0,0,0) 
)
inline

Constructor.

Definition at line 26 of file IBillboardSceneNode.h.

Member Function Documentation

◆ getColor()

virtual void saga::scene::IBillboardSceneNode::getColor ( video::SColor topColor,
video::SColor bottomColor 
) const
pure virtual

Gets the color of the top and bottom vertices of the billboard.

Parameters
[out]topColorStores the color of the top vertices
[out]bottomColorStores the color of the bottom vertices

Implemented in saga::scene::IBillboardTextSceneNode.

◆ getSize() [1/2]

virtual const glm::vec2& saga::scene::IBillboardSceneNode::getSize ( ) const
pure virtual

Returns the size of the billboard.

This will return the width of the bottom edge of the billboard. Use getWidths() to retrieve the bottom and top edges independently.

Returns
Size of the billboard.

Implemented in saga::scene::IBillboardTextSceneNode.

◆ getSize() [2/2]

virtual void saga::scene::IBillboardSceneNode::getSize ( float &  height,
float &  bottomEdgeWidth,
float &  topEdgeWidth 
) const
pure virtual

Gets the size of the the billboard and handles independent top and bottom edge widths correctly.

Parameters
[out]heightThe height of the billboard.
[out]bottomEdgeWidthThe width of the bottom edge of the billboard.
[out]topEdgeWidthThe width of the top edge of the billboard.

◆ getTransformedBillboardBoundingBox()

virtual const core::aabbox3d<float>& saga::scene::IBillboardSceneNode::getTransformedBillboardBoundingBox ( const saga::scene::ICameraSceneNode camera)
pure virtual

Get the real boundingbox used by the billboard, which can depend on the active camera.

The boundingbox returned will use absolute coordinates. The billboard orients itself toward the camera and some only update in render(). So we don't know the real boundingboxes before that. Which would be too late for culling. That is why the usual getBoundingBox will return a "safe" boundingbox which is guaranteed to contain the billboard. While this function can return the real one.

◆ setColor() [1/2]

virtual void saga::scene::IBillboardSceneNode::setColor ( const video::SColor overallColor)
pure virtual

Set the color of all vertices of the billboard.

Parameters
[in]overallColorColor to set

Implemented in saga::scene::IBillboardTextSceneNode.

◆ setColor() [2/2]

virtual void saga::scene::IBillboardSceneNode::setColor ( const video::SColor topColor,
const video::SColor bottomColor 
)
pure virtual

Set the color of the top and bottom vertices of the billboard.

Parameters
[in]topColorColor to set the top vertices
[in]bottomColorColor to set the bottom vertices

Implemented in saga::scene::IBillboardTextSceneNode.

◆ setSize() [1/2]

virtual void saga::scene::IBillboardSceneNode::setSize ( const glm::vec2 &  size)
pure virtual

Sets the size of the billboard, making it rectangular.

Implemented in saga::scene::IBillboardTextSceneNode.

◆ setSize() [2/2]

virtual void saga::scene::IBillboardSceneNode::setSize ( float  height,
float  bottomEdgeWidth,
float  topEdgeWidth 
)
pure virtual

Sets the size of the billboard with independent widths of the bottom and top edges.

Parameters
[in]heightThe height of the billboard.
[in]bottomEdgeWidthThe width of the bottom edge of the billboard.
[in]topEdgeWidthThe width of the top edge of the billboard.

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