A Ray Query class used for computing ray object intersections. More...
#include <BaseRayQuery.hh>
Public Member Functions | |
virtual | ~BaseRayQuery () override |
Destructor. More... | |
virtual RayQueryResult | ClosestPoint (bool _forceSceneUpdate=true) override |
Compute intersections. More... | |
virtual math::Vector3d | Direction () const override |
Get ray direction. More... | |
virtual math::Vector3d | Origin () const override |
Get ray origin. More... | |
virtual void | SetDirection (const math::Vector3d &_dir) override |
Set ray direction. More... | |
virtual void | SetFromCamera (const CameraPtr &_camera, const math::Vector2d &_coord) override |
Create the ray query from camera. More... | |
virtual void | SetOrigin (const math::Vector3d &_origin) override |
Set ray origin. More... | |
void | SetPreferGpu (bool _preferGpu) override |
If possible & supported (and user called SetFromCamera()) will use the GPU to perform the ray query. Triangle-level accurate. More... | |
bool | UsesGpu () const override |
Returns true if the GPU will be used for the next ClosestPoint() call. More... | |
Public Member Functions inherited from RayQuery | |
virtual | ~RayQuery () |
Destructor. More... | |
virtual void | SetFromCamera (const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord)=0 |
Create the ray query from WideAngleCamera. 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... | |
Protected Member Functions | |
BaseRayQuery () | |
Constructor. More... | |
Protected Attributes | |
math::Vector3d | direction |
Ray direction. More... | |
math::Vector3d | origin |
Ray origin. More... | |
Detailed Description
template<class T>
class gz::rendering::BaseRayQuery< T >
A Ray Query class used for computing ray object intersections.
Constructor & Destructor Documentation
◆ BaseRayQuery()
|
protected |
Constructor.
◆ ~BaseRayQuery()
|
overridevirtual |
Destructor.
Member Function Documentation
◆ ClosestPoint()
|
overridevirtual |
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
Implements RayQuery.
Reimplemented in Ogre2RayQuery, and OgreRayQuery.
References RayQueryResult::distance.
◆ Direction()
|
overridevirtual |
◆ Origin()
|
overridevirtual |
◆ SetDirection()
|
overridevirtual |
◆ SetFromCamera()
|
overridevirtual |
Create the ray query from camera.
- Parameters
-
[in] _camera Camera to construct ray [in] _coord normalized device coords [-1, +1]
Implements RayQuery.
Reimplemented in Ogre2RayQuery, and OgreRayQuery.
References Vector2< class >::X(), and Vector2< class >::Y().
◆ SetOrigin()
|
overridevirtual |
◆ SetPreferGpu()
|
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] _preferGpu True to use the GPU if available & possible. False to never use the GPU.
Implements RayQuery.
◆ UsesGpu()
|
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.
Member Data Documentation
◆ direction
|
protected |
Ray direction.
◆ origin
|
protected |
Ray origin.
The documentation for this class was generated from the following file: