Ignition Rendering

API Reference

6.3.1

Base implementation of a joint visual. More...

#include <BaseJointVisual.hh>

Public Member Functions

virtual ~BaseJointVisual ()
 Destructor. More...
 
virtual ArrowVisualPtr ArrowVisual () const override
 Get the arrow visual which represents the axis attached to the child. More...
 
virtual ignition::math::Vector3d Axis () const override
 Get axis vector. More...
 
virtual ignition::math::Vector3d ParentAxis () const override
 Get parent axis vector. More...
 
virtual JointVisualPtr ParentAxisVisual () const override
 Get the JointVisual which is attached to the parent. More...
 
virtual void SetAxis (const ignition::math::Vector3d &_axis, bool _useParentFrame) override
 Create an axis and attach it to the joint visual. More...
 
virtual void SetParentAxis (const ignition::math::Vector3d &_axis, const std::string &_parentName, bool _useParentFrame) override
 Create a parent axis for hinge2 and universal joint types and attach it to the joint visual. More...
 
virtual void SetType (const JointVisualType _type) override
 Set type for joint visual. More...
 
virtual void SetVisible (bool _visible) override
 Specify if this visual is visible. More...
 
virtual JointVisualType Type () const override
 Get joint visual type. More...
 
virtual bool UpdateAxis (const ignition::math::Vector3d &_axis, bool _useParentFrame) override
 Update an axis' arrow visual. More...
 
virtual bool UpdateParentAxis (const ignition::math::Vector3d &_axis, bool _useParentFrame) override
 Update the parent axis' arrow visual if it exists. More...
 
- Public Member Functions inherited from JointVisual
virtual ~JointVisual ()
 Destructor. More...
 
- Public Member Functions inherited from Visual
virtual ~Visual ()
 Destructor. More...
 
virtual void AddGeometry (GeometryPtr _geometry)=0
 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)=0
 Add visibility flags. More...
 
virtual ignition::math::AxisAlignedBox BoundingBox () const =0
 Get the bounding box in world frame coordinates. More...
 
virtual VisualPtr Clone (const std::string &_name, NodePtr _newParent) const =0
 Clone the visual (and its children) with a new name. More...
 
virtual GeometryPtr GeometryByIndex (unsigned int _index) const =0
 Get geometry at given index. If no geometry exists at given index, NULL will be returned. More...
 
virtual unsigned int GeometryCount () const =0
 Get the number of geometries attached to this visual. More...
 
virtual bool HasGeometry (ConstGeometryPtr _geometry) const =0
 Determine if given geometry is attached to this visual. More...
 
virtual ignition::math::AxisAlignedBox LocalBoundingBox () const =0
 Get the local bounding box of the visual. More...
 
virtual MaterialPtr Material () const =0
 Get the material assigned to attached visuals and geometries. More...
 
virtual void RemoveGeometries ()=0
 Remove all attached geometries from this visual. More...
 
virtual GeometryPtr RemoveGeometry (GeometryPtr _geometry)=0
 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)=0
 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)=0
 Remove visibility flags. More...
 
virtual void SetChildMaterial (MaterialPtr _material, bool _unique=true)=0
 Set the material for all attached visuals only. More...
 
virtual void SetGeometryMaterial (MaterialPtr _material, bool _unique=true)=0
 Set the material for all attached geometries only. More...
 
virtual void SetMaterial (const std::string &_name, bool _unique=true)=0
 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)=0
 Set the material for all attached visuals and geometries. More...
 
virtual void SetVisibilityFlags (uint32_t _flags)=0
 Set visibility flags. More...
 
virtual void SetWireframe (bool _show)=0
 Enable or disable wireframe. More...
 
virtual uint32_t VisibilityFlags () const =0
 Get visibility flags. More...
 
virtual bool Wireframe () const =0
 Get whether wireframe is enabled for this visual. 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 HasUserData (const std::string &_key) const =0
 Check if node has custom data. More...
 
virtual bool InheritScale () const =0
 Determine if this node inherits scale from this parent. More...
 
virtual math::Pose3d InitialLocalPose () const =0
 Get the initial local pose. More...
 
virtual math::Pose3d LocalPose () const =0
 Get the local pose. 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 node inherits scale from its parent. More...
 
virtual void SetLocalPose (const math::Pose3d &_pose)=0
 Set the local pose. 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 SetUserData (const std::string &_key, Variant _value)=0
 Store any custom data associated with this node. 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 Variant UserData (const std::string &_key) const =0
 Get custom data stored in this node. 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

 BaseJointVisual ()
 Constructor. More...
 
void CreateAxis ()
 Helper function to create axis visual. More...
 
void CreateParentAxis ()
 Helper function to create parent axis visual. 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 void Init () override
 
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...
 
void ScaleToChild ()
 Scale the joint visual according to the joint's child. More...
 
void UpdateAxisImpl (ArrowVisualPtr _arrowVisual, const ignition::math::Vector3d &_axis, bool _useParentFrame)
 Implementation for updating an axis' arrow visual. More...
 

Protected Attributes

ArrowVisualPtr arrowVisual = nullptr
 The visual representing the one joint axis. There can be only one axis visual per joint visual, so joints with two axes have a 2nd JointVisual with its own arrowVisual. More...
 
ignition::math::Vector3d axis
 Joint visual axis vector. More...
 
AxisVisualPtr axisVisual = nullptr
 The joint's XYZ frame visual. More...
 
bool dirtyAxis = false
 Flag to indicate axis data has changed. More...
 
bool dirtyJointType = false
 Flag to indicate joint visual type has changed. More...
 
bool dirtyParentAxis = false
 Flag to indicate parent axis data has changed. More...
 
std::string jointParentName = ""
 Joint parent name. More...
 
JointVisualType jointVisualType
 Type of joint visualization. More...
 
ignition::math::Vector3d parentAxis
 Parent axis vector. More...
 
bool parentAxisUseParentFrame = false
 Flag to indicate whether parent axis vector is expressed in joint parent frame. More...
 
JointVisualPtr parentAxisVis = nullptr
 Second joint visual for hinge2 and universal joints. It is a simplified visual without an XYZ frame. More...
 
ignition::math::Vector3d scaleToChild
 Scale based on the size of the joint's child. More...
 
bool updateAxis = false
 Flag to update the axis visual. More...
 
bool updateParentAxis = false
 Flag to update the parent axis visual. More...
 
bool useParentFrame = false
 Flag to indicate whether axis vector is expressed in joint parent frame. More...
 

Detailed Description

template<class T>
class ignition::rendering::BaseJointVisual< T >

Base implementation of a joint visual.

Constructor & Destructor Documentation

◆ BaseJointVisual()

BaseJointVisual ( )
protected

Constructor.

◆ ~BaseJointVisual()

~BaseJointVisual ( )
virtual

Destructor.

Member Function Documentation

◆ ArrowVisual()

ArrowVisualPtr ArrowVisual ( ) const
overridevirtual

Get the arrow visual which represents the axis attached to the child.

Returns
Arrow visual.

Implements JointVisual.

Referenced by BaseJointVisual< OgreVisual >::SetVisible(), BaseJointVisual< OgreVisual >::UpdateAxis(), BaseJointVisual< OgreVisual >::UpdateAxisImpl(), and BaseJointVisual< OgreVisual >::UpdateParentAxis().

◆ Axis()

ignition::math::Vector3d Axis ( ) const
overridevirtual

Get axis vector.

Returns
The axis vector.

Implements JointVisual.

◆ CreateAxis()

void CreateAxis ( )
protected

Helper function to create axis visual.

Referenced by BaseJointVisual< OgreVisual >::PreRender().

◆ CreateParentAxis()

void CreateParentAxis ( )
protected

Helper function to create parent axis visual.

Referenced by BaseJointVisual< OgreVisual >::PreRender().

◆ Destroy()

void Destroy ( )
overrideprotectedvirtual

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

Implements Object.

◆ Init()

void Init ( )
overrideprotectedvirtual

◆ ParentAxis()

ignition::math::Vector3d ParentAxis ( ) const
overridevirtual

Get parent axis vector.

Returns
The parent axis vector.

Implements JointVisual.

◆ ParentAxisVisual()

JointVisualPtr ParentAxisVisual ( ) const
overridevirtual

◆ PreRender()

void PreRender ( )
overrideprotectedvirtual

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.

◆ ScaleToChild()

void ScaleToChild ( )
protected

Scale the joint visual according to the joint's child.

Referenced by BaseJointVisual< OgreVisual >::CreateAxis(), and BaseJointVisual< OgreVisual >::CreateParentAxis().

◆ SetAxis()

void SetAxis ( const ignition::math::Vector3d _axis,
bool  _useParentFrame 
)
overridevirtual

Create an axis and attach it to the joint visual.

Parameters
[in]_axisAxis vector.
[in]_useParentFrameTrue if axis vector is expressed in parent frame.

Implements JointVisual.

◆ SetParentAxis()

void SetParentAxis ( const ignition::math::Vector3d _axis,
const std::string _parentName,
bool  _useParentFrame 
)
overridevirtual

Create a parent axis for hinge2 and universal joint types and attach it to the joint visual.

Parameters
[in]_axisAxis vector.
[in]_parentNameJoint parent name.
[in]_useParentFrameTrue if axis vector is expressed in parent frame.

Implements JointVisual.

◆ SetType()

void SetType ( const JointVisualType  _type)
overridevirtual

Set type for joint visual.

Parameters
[in]_typeThe type of visualisation for joint.

Implements JointVisual.

◆ SetVisible()

void SetVisible ( bool  _visible)
overridevirtual

Specify if this visual is visible.

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

Implements Visual.

◆ Type()

◆ UpdateAxis()

bool UpdateAxis ( const ignition::math::Vector3d _axis,
bool  _useParentFrame 
)
overridevirtual

Update an axis' arrow visual.

Parameters
[in]_axisAxis vector.
[in]_useParentFrameTrue if axis vector is expressed in parent frame.
Returns
True if axis was updated else false.

Implements JointVisual.

Referenced by BaseJointVisual< OgreVisual >::PreRender().

◆ UpdateAxisImpl()

void UpdateAxisImpl ( ArrowVisualPtr  _arrowVisual,
const ignition::math::Vector3d _axis,
bool  _useParentFrame 
)
protected

Implementation for updating an axis' arrow visual.

Parameters
[in]_arrowVisualArrow visual to be updated.
[in]_axisAxis vector.
[in]_useParentFrameTrue if the axis vector is expressed in the joint parent frame.

Referenced by BaseJointVisual< OgreVisual >::UpdateAxis(), and BaseJointVisual< OgreVisual >::UpdateParentAxis().

◆ UpdateParentAxis()

bool UpdateParentAxis ( const ignition::math::Vector3d _axis,
bool  _useParentFrame 
)
overridevirtual

Update the parent axis' arrow visual if it exists.

Parameters
[in]_axisAxis vector.
[in]_useParentFrameTrue if axis vector is expressed in parent frame.
Returns
True if parent axis was updated else false.

Implements JointVisual.

Referenced by BaseJointVisual< OgreVisual >::PreRender().

Member Data Documentation

◆ arrowVisual

ArrowVisualPtr arrowVisual = nullptr
protected

The visual representing the one joint axis. There can be only one axis visual per joint visual, so joints with two axes have a 2nd JointVisual with its own arrowVisual.

Referenced by BaseJointVisual< OgreVisual >::ArrowVisual(), BaseJointVisual< OgreVisual >::CreateAxis(), and BaseJointVisual< OgreVisual >::Destroy().

◆ axis

◆ axisVisual

◆ dirtyAxis

bool dirtyAxis = false
protected

◆ dirtyJointType

bool dirtyJointType = false
protected

◆ dirtyParentAxis

bool dirtyParentAxis = false
protected

◆ jointParentName

std::string jointParentName = ""
protected

◆ jointVisualType

JointVisualType jointVisualType
protected
Initial value:

Type of joint visualization.

Referenced by BaseJointVisual< OgreVisual >::SetType(), and BaseJointVisual< OgreVisual >::Type().

◆ parentAxis

◆ parentAxisUseParentFrame

bool parentAxisUseParentFrame = false
protected

Flag to indicate whether parent axis vector is expressed in joint parent frame.

Referenced by BaseJointVisual< OgreVisual >::CreateParentAxis(), BaseJointVisual< OgreVisual >::PreRender(), and BaseJointVisual< OgreVisual >::SetParentAxis().

◆ parentAxisVis

JointVisualPtr parentAxisVis = nullptr
protected

Second joint visual for hinge2 and universal joints. It is a simplified visual without an XYZ frame.

Referenced by BaseJointVisual< OgreVisual >::CreateParentAxis(), BaseJointVisual< OgreVisual >::Destroy(), and BaseJointVisual< OgreVisual >::ParentAxisVisual().

◆ scaleToChild

ignition::math::Vector3d scaleToChild
protected
Initial value:

Scale based on the size of the joint's child.

Referenced by BaseJointVisual< OgreVisual >::ScaleToChild().

◆ updateAxis

bool updateAxis = false
protected

◆ updateParentAxis

bool updateParentAxis = false
protected

Flag to update the parent axis visual.

Referenced by BaseJointVisual< OgreVisual >::CreateParentAxis(), and BaseJointVisual< OgreVisual >::PreRender().

◆ useParentFrame

bool useParentFrame = false
protected

Flag to indicate whether axis vector is expressed in joint parent frame.

Referenced by BaseJointVisual< OgreVisual >::PreRender(), and BaseJointVisual< OgreVisual >::SetAxis().


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