Gazebo Rendering

API Reference

9.0.0~pre2

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

#include <Ogre2RayQuery.hh>

Public Member Functions

virtual ~Ogre2RayQuery () override
 Destructor.
 
virtual RayQueryResult ClosestPoint (bool _forceSceneUpdate=true) override
 Compute intersections.
 
virtual void SetFromCamera (const CameraPtr &_camera, const math::Vector2d &_coord) override
 Create the ray query from camera.
 
void SetFromCamera (const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord) override
 Create the ray query from WideAngleCamera.
 
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 BaseRayQuery< Ogre2Object >
virtual ~BaseRayQuery () override
 Destructor.
 
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 SetOrigin (const math::Vector3d &_origin) override
 Set ray origin.
 
- Public Member Functions inherited from RayQuery
virtual ~RayQuery ()
 Destructor.
 
- 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.
 
- Public Member Functions inherited from Ogre2Object
virtual ~Ogre2Object ()
 Destructor.
 
virtual ScenePtr Scene () const override
 
- Public Member Functions inherited from BaseObject
virtual ~BaseObject ()
 
virtual void Destroy () override
 
virtual unsigned int Id () const override
 
virtual std::string Name () const override
 
virtual void PostRender () override
 
virtual void PreRender () override
 

Protected Member Functions

 Ogre2RayQuery ()
 Constructor.
 
- Protected Member Functions inherited from BaseRayQuery< Ogre2Object >
 BaseRayQuery ()
 Constructor.
 
- Protected Member Functions inherited from Ogre2Object
 Ogre2Object ()
 Constructor.
 
- Protected Member Functions inherited from BaseObject
 BaseObject ()
 
virtual void Init ()
 
virtual void Load ()
 

Additional Inherited Members

- Protected Attributes inherited from BaseRayQuery< Ogre2Object >
math::Vector3d direction
 Ray direction.
 
math::Vector3d origin
 Ray origin.
 
- Protected Attributes inherited from Ogre2Object
Ogre2ScenePtr scene
 Pointer to the ogre scene.
 
- Protected Attributes inherited from BaseObject
unsigned int id
 
std::string name
 

Detailed Description

A Ray Query class used for computing ray object intersections.

gz/rendering/ogre2/Ogre2RayQuery.hh

Constructor & Destructor Documentation

◆ Ogre2RayQuery()

Ogre2RayQuery ( )
protected

Constructor.

◆ ~Ogre2RayQuery()

virtual ~Ogre2RayQuery ( )
overridevirtual

Destructor.

Member Function Documentation

◆ ClosestPoint()

virtual 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

Reimplemented from BaseRayQuery< Ogre2Object >.

◆ SetFromCamera() [1/2]

virtual 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]

Reimplemented from BaseRayQuery< Ogre2Object >.

◆ SetFromCamera() [2/2]

void SetFromCamera ( const WideAngleCameraPtr _camera,
uint32_t  _faceIdx,
const math::Vector2d _coord 
)
overridevirtual

Create the ray query from WideAngleCamera.

Parameters
[in]_cameraCamera to construct ray
[in]_faceIdxIn range [0; 6)
  • 0 = +X
  • 1 = -X
  • 2 = +Y
  • 3 = -Y
  • 4 = +Z
  • 5 = -Z
[in]_coordnormalized device coords [-1, +1]

Implements RayQuery.

◆ SetPreferGpu()

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.

Reimplemented from BaseRayQuery< Ogre2Object >.

◆ UsesGpu()

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.

Reimplemented from BaseRayQuery< Ogre2Object >.


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