Gazebo Rendering

API Reference

9.0.0

A Ray Query class used for computing ray object intersections. More...

#include <BaseRayQuery.hh>

Public Member Functions

virtual ~BaseRayQuery () override
 Destructor.
 
virtual RayQueryResult ClosestPoint (bool _forceSceneUpdate=true) override
 Compute intersections.
 
virtual math::Vector3d Direction () const override
 Get ray direction.
 
virtual math::Vector3d Origin () const override
 Get ray origin.
 
virtual void SetDirection (const math::Vector3d &_dir) override
 Set ray direction.
 
virtual void SetFromCamera (const CameraPtr &_camera, const math::Vector2d &_coord) override
 Create the ray query from camera.
 
virtual void SetOrigin (const math::Vector3d &_origin) override
 Set ray origin.
 
void SetPreferGpu (bool _preferGpu) override
 If possible & supported (and user called SetFromCamera()) will use the GPU to perform the ray query. Triangle-level accurate.
 
bool UsesGpu () const override
 Returns true if the GPU will be used for the next ClosestPoint() call.
 
- Public Member Functions inherited from RayQuery
virtual ~RayQuery ()
 Destructor.
 
virtual void SetFromCamera (const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord)=0
 Create the ray query from WideAngleCamera.
 
- Public Member Functions inherited from Object
virtual ~Object ()
 Destructor.
 
virtual void Destroy ()=0
 Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior.
 
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.
 
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.
 
virtual void PostRender ()=0
 Post process this object and any of its children after rendering.
 
virtual void PreRender ()=0
 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.
 
virtual ScenePtr Scene () const =0
 Get the Scene that created this object.
 

Protected Member Functions

 BaseRayQuery ()
 Constructor.
 

Protected Attributes

math::Vector3d direction
 Ray direction.
 
math::Vector3d origin
 Ray origin.
 

Detailed Description

template<class T>
class gz::rendering::BaseRayQuery< T >

A Ray Query class used for computing ray object intersections.

gz/rendering/base/BaseRayQuery.hh

Constructor & Destructor Documentation

◆ BaseRayQuery()

template<class T >
BaseRayQuery ( )
protected

Constructor.

◆ ~BaseRayQuery()

template<class T >
~BaseRayQuery ( )
overridevirtual

Destructor.

Member Function Documentation

◆ ClosestPoint()

template<class T >
RayQueryResult ClosestPoint ( bool  _forceSceneUpdate = true)
overridevirtual

Compute intersections.

Parameters
[in]_forceSceneUpdatePerformance optimization hint When true Ogre2 will update all derived transforms to their latest to get correct results.

When false, that step is skipped. It is only safe to set it to false when nothing has changed since the last update (i.e. nothing moved, no new objects created).

Ogre will assert if built in Debug mode if this value is set to false when it shouldn't be.

See https://ogrecave.github.io/ogre-next/api/2.2/ _ogre20_changes.html::AssersionCachedOutOfDate for more info

Returns
A vector of intersection results

Implements RayQuery.

Reimplemented in OgreRayQuery, and Ogre2RayQuery.

References RayQueryResult::distance.

◆ Direction()

template<class T >
gz::math::Vector3d Direction ( ) const
overridevirtual

Get ray direction.

Returns
Ray direction.

Implements RayQuery.

◆ Origin()

template<class T >
gz::math::Vector3d Origin ( ) const
overridevirtual

Get ray origin.

Returns
Ray origin

Implements RayQuery.

◆ SetDirection()

template<class T >
void SetDirection ( const math::Vector3d _dir)
overridevirtual

Set ray direction.

Parameters
[in]_dirRay origin

Implements RayQuery.

◆ SetFromCamera()

template<class T >
void SetFromCamera ( const CameraPtr _camera,
const math::Vector2d _coord 
)
overridevirtual

Create the ray query from camera.

Parameters
[in]_cameraCamera to construct ray
[in]_coordnormalized device coords [-1, +1]

Implements RayQuery.

Reimplemented in OgreRayQuery, and Ogre2RayQuery.

References Vector2< typename T >::X(), and Vector2< typename T >::Y().

◆ SetOrigin()

template<class T >
void SetOrigin ( const math::Vector3d _origin)
overridevirtual

Set ray origin.

Parameters
[in]_originRay origin

Implements RayQuery.

◆ SetPreferGpu()

template<class T >
void SetPreferGpu ( bool  _preferGpu)
overridevirtual

If possible & supported (and user called SetFromCamera()) will use the GPU to perform the ray query. Triangle-level accurate.

Remarks
It's not guaranteed the GPU will be used. See UsesGpu()
Using the GPU is not necessarily faster.
Parameters
[in]_preferGpuTrue to use the GPU if available & possible. False to never use the GPU.

Implements RayQuery.

Reimplemented in Ogre2RayQuery.

◆ UsesGpu()

template<class T >
bool UsesGpu ( ) const
overridevirtual

Returns true if the GPU will be used for the next ClosestPoint() call.

Remarks
The thread ID is important. Calling this value from different threads may result in different return values.
Returns
True if next ClosestPoint() call will use the GPU.

Implements RayQuery.

Reimplemented in Ogre2RayQuery.

Member Data Documentation

◆ direction

template<class T >
math::Vector3d direction
protected

Ray direction.

◆ origin

template<class T >
math::Vector3d origin
protected

Ray origin.


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