A Ray Query class used for computing ray object intersections. More...
#include <gz/rendering/RayQuery.hh>
Public Member Functions | |
virtual | ~RayQuery () |
Destructor. More... | |
virtual RayQueryResult | ClosestPoint (bool _forceSceneUpdate=true)=0 |
Compute intersections. More... | |
virtual math::Vector3d | Direction () const =0 |
Get ray direction. More... | |
virtual math::Vector3d | Origin () const =0 |
Get ray origin. More... | |
virtual void | SetDirection (const math::Vector3d &_dir)=0 |
Set ray direction. More... | |
virtual void | SetFromCamera (const CameraPtr &_camera, const math::Vector2d &_coord)=0 |
Create the ray query from camera. More... | |
virtual void | SetFromCamera (const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord)=0 |
Create the ray query from WideAngleCamera. More... | |
virtual void | SetOrigin (const math::Vector3d &_origin)=0 |
Set ray origin. More... | |
virtual void | SetPreferGpu (bool _preferGpu)=0 |
If possible & supported (and user called SetFromCamera()) will use the GPU to perform the ray query. Triangle-level accurate. More... | |
virtual bool | UsesGpu () const =0 |
Returns true if the GPU will be used for the next ClosestPoint() call. More... | |
Public Member Functions inherited from Object | |
virtual | ~Object () |
Destructor. More... | |
virtual void | Destroy ()=0 |
Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior. 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 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. More... | |
virtual ScenePtr | Scene () const =0 |
Get the Scene that created this object. More... | |
Detailed Description
A Ray Query class used for computing ray object intersections.
Constructor & Destructor Documentation
◆ ~RayQuery()
|
virtual |
Destructor.
Member Function Documentation
◆ ClosestPoint()
|
pure virtual |
Compute intersections.
- Parameters
-
[in] _forceSceneUpdate Performance 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
Implemented in Ogre2RayQuery, OgreRayQuery, BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ Direction()
|
pure virtual |
Get ray direction.
- Returns
- Ray direction.
Implemented in BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ Origin()
|
pure virtual |
Get ray origin.
- Returns
- Ray origin
Implemented in BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ SetDirection()
|
pure virtual |
Set ray direction.
- Parameters
-
[in] _dir Ray origin
Implemented in BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ SetFromCamera() [1/2]
|
pure virtual |
Create the ray query from camera.
- Parameters
-
[in] _camera Camera to construct ray [in] _coord normalized device coords [-1, +1]
Implemented in Ogre2RayQuery, OgreRayQuery, BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ SetFromCamera() [2/2]
|
pure virtual |
Create the ray query from WideAngleCamera.
- Parameters
-
[in] _camera Camera to construct ray [in] _faceIdx In range [0; 6) - 0 = +X
- 1 = -X
- 2 = +Y
- 3 = -Y
- 4 = +Z
- 5 = -Z
[in] _coord normalized device coords [-1, +1]
Implemented in Ogre2RayQuery, and OgreRayQuery.
◆ SetOrigin()
|
pure virtual |
Set ray origin.
- Parameters
-
[in] _origin Ray origin
Implemented in BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ SetPreferGpu()
|
pure virtual |
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] _preferGpu True to use the GPU if available & possible. False to never use the GPU.
Implemented in Ogre2RayQuery, BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
◆ UsesGpu()
|
pure virtual |
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.
Implemented in Ogre2RayQuery, BaseRayQuery< T >, BaseRayQuery< Ogre2Object >, and BaseRayQuery< OgreObject >.
The documentation for this class was generated from the following file: