A Ray Query class used for computing ray object intersections. More...
#include <Ogre2RayQuery.hh>
Public Member Functions | |
virtual | ~Ogre2RayQuery () override |
Destructor. More... | |
virtual RayQueryResult | ClosestPoint (bool _forceSceneUpdate=true) override |
Compute intersections. More... | |
virtual void | SetFromCamera (const CameraPtr &_camera, const math::Vector2d &_coord) override |
Create the ray query from camera. More... | |
void | SetFromCamera (const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord) override |
Create the ray query from WideAngleCamera. 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 BaseRayQuery< Ogre2Object > | |
virtual | ~BaseRayQuery () override |
Destructor. 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 | 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... | |
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... | |
Public Member Functions inherited from Ogre2Object | |
virtual | ~Ogre2Object () |
Destructor. More... | |
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. More... | |
Protected Member Functions inherited from BaseRayQuery< Ogre2Object > | |
BaseRayQuery () | |
Constructor. More... | |
Protected Member Functions inherited from Ogre2Object | |
Ogre2Object () | |
Constructor. More... | |
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. More... | |
math::Vector3d | origin |
Ray origin. More... | |
Protected Attributes inherited from Ogre2Object | |
Ogre2ScenePtr | scene |
Pointer to the ogre scene. More... | |
Protected Attributes inherited from BaseObject | |
unsigned int | id |
std::string | name |
Detailed Description
A Ray Query class used for computing ray object intersections.
Constructor & Destructor Documentation
◆ Ogre2RayQuery()
|
protected |
Constructor.
◆ ~Ogre2RayQuery()
|
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
Reimplemented from BaseRayQuery< Ogre2Object >.
◆ SetFromCamera() [1/2]
|
overridevirtual |
Create the ray query from camera.
- Parameters
-
[in] _camera Camera to construct ray [in] _coord normalized device coords [-1, +1]
Reimplemented from BaseRayQuery< Ogre2Object >.
◆ SetFromCamera() [2/2]
|
overridevirtual |
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]
Implements RayQuery.
◆ 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.
The documentation for this class was generated from the following file: