Ignition Rendering

API Reference

5.1.0
BaseVisual< T > Class Template Referenceabstract

#include <BaseVisual.hh>

Public Member Functions

virtual ~BaseVisual ()
 
virtual void AddGeometry (GeometryPtr _geometry) override
 Add the given geometry to this visual. If the given node is already attached, no work will be done. More...
 
virtual void AddVisibilityFlags (uint32_t _flags) override
 Add visibility flags. More...
 
virtual ignition::math::AxisAlignedBox BoundingBox () const override
 Get the bounding box in world frame coordinates. More...
 
virtual void Destroy () override
 Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior. More...
 
virtual GeometryPtr GeometryByIndex (unsigned int _index) const override
 Get geometry at given index. If no geometry exists at given index, NULL will be returned. More...
 
virtual unsigned int GeometryCount () const override
 Get the number of geometries attached to this visual. More...
 
virtual bool HasGeometry (ConstGeometryPtr _geometry) const override
 Determine if given geometry is attached to this visual. More...
 
virtual ignition::math::AxisAlignedBox LocalBoundingBox () const override
 Get the local bounding box of the visual. More...
 
virtual math::Pose3d LocalPose () const override
 Get the local pose. More...
 
virtual MaterialPtr Material () override
 Get the material assigned to attached visuals and geometries. More...
 
virtual void PreRender () override
 Prepare this object and any of its children for rendering. This should be called for each object in a scene just before rendering, which can be achieved by a single call to Scene::PreRender. More...
 
virtual void RemoveGeometries () override
 Remove all attached geometries from this visual. More...
 
virtual GeometryPtr RemoveGeometry (GeometryPtr _geometry) override
 Remove the given geometry from this visual. If the given node is not a child of this visual, no work will be done. More...
 
virtual GeometryPtr RemoveGeometryByIndex (unsigned int _index) override
 Remove the geometry at the given index from this visual. If the specified node is not attached this visual, no work will be done. More...
 
virtual void RemoveVisibilityFlags (uint32_t _flags) override
 Remove visibility flags. More...
 
virtual void SetChildMaterial (MaterialPtr _material, bool _unique=true) override
 Set the material for all attached visuals only. More...
 
virtual void SetGeometryMaterial (MaterialPtr _material, bool _unique=true) override
 Set the material for all attached geometries only. More...
 
virtual void SetLocalPose (const math::Pose3d &_pose) override
 Set the local pose. More...
 
virtual void SetMaterial (const std::string &_name, bool _unique=true) override
 Set the material for all attached visuals and geometries. The specified material will be retrieved from Scene::Material using the given material name. If no material is registered with the given name, no work will be done. More...
 
virtual void SetMaterial (MaterialPtr _material, bool _unique=true) override
 Set the material for all attached visuals and geometries. More...
 
virtual void SetUserData (const std::string &_key, Variant _value) override
 Store any custom data associated with this visual. More...
 
virtual void SetVisibilityFlags (uint32_t _flags) override
 Set visibility flags. More...
 
virtual void SetVisible (bool _visible) override
 Specify if this visual is visible. More...
 
virtual Variant UserData (const std::string &_key) const override
 Get custom data stored in this visual. More...
 
virtual uint32_t VisibilityFlags () const override
 Get visibility flags. More...
 
- Public Member Functions inherited from Visual
virtual ~Visual ()
 Destructor. More...
 
- Public Member Functions inherited from Node
virtual ~Node ()
 Destructor. More...
 
virtual void AddChild (NodePtr _child)=0
 Add the given node to this node. If the given node is already a child, no work will be done. More...
 
virtual NodePtr ChildById (unsigned int _id) const =0
 Get node with given ID. If no child exists with given ID, NULL will be returned. More...
 
virtual NodePtr ChildByIndex (unsigned int _index) const =0
 Get node at given index. If no child exists at given index, NULL will be returned. More...
 
virtual NodePtr ChildByName (const std::string &_name) const =0
 Get node with given name. If no child exists with given name, NULL will be returned. More...
 
virtual unsigned int ChildCount () const =0
 Get number of child nodes. More...
 
virtual bool HasChild (ConstNodePtr _child) const =0
 Determine if given node is an attached child. More...
 
virtual bool HasChildId (unsigned int _id) const =0
 Determine if node with given ID is an attached child. More...
 
virtual bool HasChildName (const std::string &_name) const =0
 Determine if node with given name is an attached child. More...
 
virtual bool HasParent () const =0
 Determine if this Node is attached to another Node. More...
 
virtual bool InheritScale () const =0
 Determine if this visual inherits scale from this parent. More...
 
virtual math::Vector3d LocalPosition () const =0
 Get the local position. More...
 
virtual math::Quaterniond LocalRotation () const =0
 Get the local rotation. More...
 
virtual math::Vector3d LocalScale () const =0
 Get the local scale. More...
 
virtual math::Vector3d Origin () const =0
 Get position of origin. More...
 
virtual NodePtr Parent () const =0
 Get the parent Node. More...
 
virtual NodePtr RemoveChild (NodePtr _child)=0
 Remove (detach) the given node from this node. If the given node is not a child of this node, no work will be done. More...
 
virtual NodePtr RemoveChildById (unsigned int _id)=0
 Remove (detach) the node with the given ID from this node. If the specified node is not a child of this node, no work will be done. More...
 
virtual NodePtr RemoveChildByIndex (unsigned int _index)=0
 Remove (detach) the node at the given index from this node. If the specified node is not a child of this node, no work will be done. More...
 
virtual NodePtr RemoveChildByName (const std::string &_name)=0
 Remove (detach) the node with the given name from this node. If the specified node is not a child of this node, no work will be done. More...
 
virtual void RemoveChildren ()=0
 Remove all child nodes from this node This detaches all the child nodes but does not destroy them. More...
 
virtual void RemoveParent ()=0
 Detach this Node from its parent. If this Node does not have a parent, no work will be done. More...
 
virtual void Scale (double _scale)=0
 Scale the current scale by the given scalar. The given scalar will be assigned to the x, y, and z coordinates. More...
 
virtual void Scale (double _x, double _y, double _z)=0
 Scale the current scale by the given scalars. More...
 
virtual void Scale (const math::Vector3d &_scale)=0
 Scale the current scale by the given scalars. More...
 
virtual void SetInheritScale (bool _inherit)=0
 Specify if this visual inherits scale from its parent. More...
 
virtual void SetLocalPosition (double _x, double _y, double _z)=0
 Set the local position. More...
 
virtual void SetLocalPosition (const math::Vector3d &_position)=0
 Set the local position. More...
 
virtual void SetLocalRotation (double _r, double _p, double _y)=0
 Set the local rotation. More...
 
virtual void SetLocalRotation (double _w, double _x, double _y, double _z)=0
 Set the local rotation. More...
 
virtual void SetLocalRotation (const math::Quaterniond &_rotation)=0
 Set the local rotation. More...
 
virtual void SetLocalScale (double _scale)=0
 Set the local scale. The given scale will be assigned to the x, y, and z coordinates. More...
 
virtual void SetLocalScale (double _x, double _y, double _z)=0
 Set the local scale. More...
 
virtual void SetLocalScale (const math::Vector3d &_scale)=0
 Set the local scale. More...
 
virtual void SetOrigin (double _x, double _y, double _z)=0
 Set position of origin. The position should be relative to the original origin of the geometry. More...
 
virtual void SetOrigin (const math::Vector3d &_origin)=0
 Set position of origin. The position should be relative to the original origin of the geometry. More...
 
virtual void SetWorldPose (const math::Pose3d &_pose)=0
 Set the world pose. More...
 
virtual void SetWorldPosition (double _x, double _y, double _z)=0
 Set the world position. More...
 
virtual void SetWorldPosition (const math::Vector3d &_position)=0
 Set the world position. More...
 
virtual void SetWorldRotation (double _r, double _p, double _y)=0
 Set the world rotation. More...
 
virtual void SetWorldRotation (double _w, double _x, double _y, double _z)=0
 Set the world rotation. More...
 
virtual void SetWorldRotation (const math::Quaterniond &_rotation)=0
 Set the world rotation. More...
 
virtual void SetWorldScale (double _scale)=0
 Set the world scale. The given scale will be assigned to the x, y, and z coordinates. More...
 
virtual void SetWorldScale (double _x, double _y, double _z)=0
 Set the world scale. More...
 
virtual void SetWorldScale (const math::Vector3d &_scale)=0
 Set the world scale. More...
 
virtual math::Pose3d WorldPose () const =0
 Get the world pose. More...
 
virtual math::Vector3d WorldPosition () const =0
 Get the world position. More...
 
virtual math::Quaterniond WorldRotation () const =0
 Get the world rotation. More...
 
virtual math::Vector3d WorldScale () const =0
 Get the world scale. More...
 
virtual math::Pose3d WorldToLocal (const math::Pose3d &_pose) const =0
 Convert given world pose to local pose. More...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 Destructor. More...
 
virtual unsigned int Id () const =0
 Get the object ID. This ID will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More...
 
virtual std::string Name () const =0
 Get the object name. This name will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More...
 
virtual void PostRender ()=0
 Post process this object and any of its children after rendering. More...
 
virtual ScenePtr Scene () const =0
 Get the Scene that created this object. More...
 

Protected Member Functions

 BaseVisual ()
 
virtual bool AttachGeometry (GeometryPtr _geometry)=0
 
virtual bool DetachGeometry (GeometryPtr _geometry)=0
 
virtual GeometryStorePtr Geometries () const =0
 
virtual void PreRenderChildren () override
 
virtual void PreRenderGeometries ()
 

Protected Attributes

ignition::math::AxisAlignedBox boundingBox
 The bounding box of the visual. More...
 
MaterialPtr material
 Pointer to material assigned to this visual. More...
 
std::map< std::string, VariantuserData
 A map of custom key value data. More...
 
uint32_t visibilityFlags = IGN_VISIBILITY_ALL
 Visual's visibility flags. More...
 

Constructor & Destructor Documentation

◆ BaseVisual()

BaseVisual ( )
protected

◆ ~BaseVisual()

~BaseVisual ( )
virtual

Member Function Documentation

◆ AddGeometry()

void AddGeometry ( GeometryPtr  _geometry)
overridevirtual

Add the given geometry to this visual. If the given node is already attached, no work will be done.

Parameters
[in]_geometryGeometry to be added

Implements Visual.

◆ AddVisibilityFlags()

void AddVisibilityFlags ( uint32_t  _flags)
overridevirtual

Add visibility flags.

Parameters
[in]_flagsVisibility flags

Implements Visual.

◆ AttachGeometry()

virtual bool AttachGeometry ( GeometryPtr  _geometry)
protectedpure virtual

Implemented in Ogre2Visual, and OgreVisual.

Referenced by BaseVisual< OgreNode >::AddGeometry().

◆ BoundingBox()

ignition::math::AxisAlignedBox BoundingBox ( ) const
overridevirtual

Get the bounding box in world frame coordinates.

Returns
The axis aligned bounding box

Implements Visual.

Reimplemented in Ogre2Visual, and OgreVisual.

◆ Destroy()

void Destroy ( )
overridevirtual

Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior.

Implements Object.

Reimplemented in OgreLidarVisual, Ogre2LidarVisual, BaseLidarVisual< OgreVisual >, BaseLidarVisual< Ogre2Visual >, and Ogre2ParticleEmitter.

◆ DetachGeometry()

virtual bool DetachGeometry ( GeometryPtr  _geometry)
protectedpure virtual

◆ Geometries()

◆ GeometryByIndex()

GeometryPtr GeometryByIndex ( unsigned int  _index) const
overridevirtual

Get geometry at given index. If no geometry exists at given index, NULL will be returned.

Parameters
[in]_indexIndex of the desired geometry
Returns
The specified geometry

Implements Visual.

Referenced by BaseVisual< OgreNode >::PreRenderGeometries(), BaseVisual< OgreNode >::RemoveGeometryByIndex(), and BaseVisual< OgreNode >::SetGeometryMaterial().

◆ GeometryCount()

unsigned int GeometryCount ( ) const
overridevirtual

Get the number of geometries attached to this visual.

Returns
The number of geometries attached to this visual

Implements Visual.

Referenced by BaseVisual< OgreNode >::PreRenderGeometries(), BaseVisual< OgreNode >::RemoveGeometries(), and BaseVisual< OgreNode >::SetGeometryMaterial().

◆ HasGeometry()

bool HasGeometry ( ConstGeometryPtr  _geometry) const
overridevirtual

Determine if given geometry is attached to this visual.

Parameters
[in]_geometryGeometry in question
Returns
True if given node is attached to this visual

Implements Visual.

◆ LocalBoundingBox()

ignition::math::AxisAlignedBox LocalBoundingBox ( ) const
overridevirtual

Get the local bounding box of the visual.

Returns
The local bounding box

Implements Visual.

Reimplemented in Ogre2Visual, and OgreVisual.

◆ LocalPose()

math::Pose3d LocalPose ( ) const
overridevirtual

Get the local pose.

Returns
The local pose

Implements Node.

◆ Material()

MaterialPtr Material ( )
overridevirtual

Get the material assigned to attached visuals and geometries.

Returns
the Pointer to the material assigned to this visual. If the material is cloned at the time it is set to this visual, the cloned material will be returned.

Implements Visual.

◆ PreRender()

void PreRender ( )
overridevirtual

Prepare this object and any of its children for rendering. This should be called for each object in a scene just before rendering, which can be achieved by a single call to Scene::PreRender.

Implements Object.

Reimplemented in BaseGizmoVisual< OgreVisual >, BaseGizmoVisual< Ogre2Visual >, OgreLightVisual, Ogre2LightVisual, OgreLidarVisual, BaseParticleEmitter< OgreVisual >, BaseParticleEmitter< Ogre2Visual >, Ogre2LidarVisual, BaseLightVisual< OgreVisual >, BaseLightVisual< Ogre2Visual >, BaseLidarVisual< OgreVisual >, and BaseLidarVisual< Ogre2Visual >.

◆ PreRenderChildren()

void PreRenderChildren ( )
overrideprotectedvirtual

◆ PreRenderGeometries()

void PreRenderGeometries ( )
protectedvirtual

◆ RemoveGeometries()

void RemoveGeometries ( )
overridevirtual

Remove all attached geometries from this visual.

Implements Visual.

◆ RemoveGeometry()

GeometryPtr RemoveGeometry ( GeometryPtr  _geometry)
overridevirtual

Remove the given geometry from this visual. If the given node is not a child of this visual, no work will be done.

Parameters
[in]_geometryGeometry to be removed
Returns
The removed geometry

Implements Visual.

Referenced by BaseVisual< OgreNode >::RemoveGeometryByIndex().

◆ RemoveGeometryByIndex()

GeometryPtr RemoveGeometryByIndex ( unsigned int  _index)
overridevirtual

Remove the geometry at the given index from this visual. If the specified node is not attached this visual, no work will be done.

Parameters
[in]_indexIndex of the geometry to be removed
Returns
The removed geometry

Implements Visual.

Referenced by BaseVisual< OgreNode >::RemoveGeometries().

◆ RemoveVisibilityFlags()

void RemoveVisibilityFlags ( uint32_t  _flags)
overridevirtual

Remove visibility flags.

Parameters
[in]_flagsVisibility flags

Implements Visual.

◆ SetChildMaterial()

void SetChildMaterial ( MaterialPtr  _material,
bool  _unique = true 
)
overridevirtual

Set the material for all attached visuals only.

Parameters
[in]_materialName of the material to be assigned
[in]_uniqueTrue if the specified material should be cloned

Implements Visual.

Referenced by BaseVisual< OgreNode >::SetMaterial().

◆ SetGeometryMaterial()

void SetGeometryMaterial ( MaterialPtr  _material,
bool  _unique = true 
)
overridevirtual

Set the material for all attached geometries only.

Parameters
[in]_materialName of the material to be assigned
[in]_uniqueTrue if the specified material should be cloned

Implements Visual.

Referenced by BaseVisual< OgreNode >::SetMaterial().

◆ SetLocalPose()

void SetLocalPose ( const math::Pose3d _pose)
overridevirtual

Set the local pose.

Parameters
[in]_poseNew local pose

Implements Node.

◆ SetMaterial() [1/2]

void SetMaterial ( const std::string _name,
bool  _unique = true 
)
overridevirtual

Set the material for all attached visuals and geometries. The specified material will be retrieved from Scene::Material using the given material name. If no material is registered with the given name, no work will be done.

Parameters
[in]_nameName of the material to be assigned
[in]_uniqueTrue if the specified material should be cloned

Implements Visual.

Referenced by BaseVisual< OgreNode >::SetMaterial().

◆ SetMaterial() [2/2]

void SetMaterial ( MaterialPtr  _material,
bool  _unique = true 
)
overridevirtual

Set the material for all attached visuals and geometries.

Parameters
[in]_materialName of the material to be assigned
[in]_uniqueTrue if the specified material should be cloned

Implements Visual.

Reimplemented in OgreLightVisual, and Ogre2LightVisual.

◆ SetUserData()

void SetUserData ( const std::string _key,
Variant  _value 
)
overridevirtual

Store any custom data associated with this visual.

Parameters
[in]_keyUnique key
[in]_valueValue in any type

Implements Visual.

◆ SetVisibilityFlags()

void SetVisibilityFlags ( uint32_t  _flags)
overridevirtual

Set visibility flags.

Parameters
[in]_flagsVisibility flags

Implements Visual.

Reimplemented in Ogre2Visual, and OgreVisual.

Referenced by BaseVisual< OgreNode >::AddVisibilityFlags(), and BaseVisual< OgreNode >::RemoveVisibilityFlags().

◆ SetVisible()

void SetVisible ( bool  _visible)
overridevirtual

Specify if this visual is visible.

Parameters
[in]_visibleTrue if this visual should be made visible

Implements Visual.

Reimplemented in OgreLidarVisual, Ogre2LidarVisual, Ogre2Visual, and OgreVisual.

◆ UserData()

Variant UserData ( const std::string _key) const
overridevirtual

Get custom data stored in this visual.

Parameters
[in]_keyUnique key
Returns
Data associated with the key.

Implements Visual.

◆ VisibilityFlags()

uint32_t VisibilityFlags ( ) const
overridevirtual

Get visibility flags.

Returns
visibility flags

Implements Visual.

Referenced by BaseVisual< OgreNode >::AddVisibilityFlags(), and BaseVisual< OgreNode >::RemoveVisibilityFlags().

Member Data Documentation

◆ boundingBox

ignition::math::AxisAlignedBox boundingBox
protected

The bounding box of the visual.

◆ material

MaterialPtr material
protected

Pointer to material assigned to this visual.

Referenced by BaseVisual< OgreNode >::Destroy(), BaseVisual< OgreNode >::Material(), and BaseVisual< OgreNode >::SetMaterial().

◆ userData

std::map<std::string, Variant> userData
protected

A map of custom key value data.

Referenced by BaseVisual< OgreNode >::SetUserData(), and BaseVisual< OgreNode >::UserData().

◆ visibilityFlags

uint32_t visibilityFlags = IGN_VISIBILITY_ALL
protected

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