This callback class facilitates reporting scene query hits (intersections) to the user.
More...
#include <PxQueryReport.h>
template<typename HitType>
struct PxHitCallback< HitType >
This callback class facilitates reporting scene query hits (intersections) to the user.
User overrides the virtual processTouches function to receive hits in (possibly multiple) fixed size blocks.
- Note
- PxHitBuffer derives from this class and is used to receive touching hits in a fixed size buffer.
-
Since the compiler doesn't look in template dependent base classes when looking for non-dependent names
-
with some compilers it will be necessary to use "this->hasBlock" notation to access a parent variable
-
in a child callback class.
-
Pre-made typedef shorthands, such as PxRaycastCallback can be used for raycast, overlap and sweep queries.
- See Also
- PxHitBuffer PxRaycastHit PxSweepHit PxOverlapHit PxRaycastCallback PxOverlapCallback PxSweepCallback
template<typename HitType>
Initializes the class with user provided buffer.
- Parameters
-
[in] | aTouches | Optional buffer for recording PxQueryHitType::eTOUCH type hits. |
[in] | aMaxNbTouches | Size of touch buffer. |
- Note
- if aTouches is NULL and aMaxNbTouches is 0, only the closest blocking hit will be recorded by the query.
-
If PxQueryFlag::eANY_HIT flag is used as a query parameter, hasBlock will be set to true and blockingHit will be used to receive the result.
-
Both eTOUCH and eBLOCK hits will be registered as hasBlock=true and stored in PxHitCallback.block when eANY_HIT flag is used.
- See Also
- PxHitCallback.hasBlock PxHitCallback.block
template<typename HitType>
template<typename HitType>
template<typename HitType>
Returns true if any blocking or touching hits were encountered during a query.
template<typename HitType>
virtual callback function used to communicate query results to the user.
This callback will always be invoked with aTouches as a buffer if aTouches was specified as non-NULL. All reported touch hits are guaranteed to be closer than the closest blocking hit.
- Parameters
-
[in] | buffer | Callback will report touch hits to the user in this buffer. This pointer will be the same as aTouches parameter. |
[in] | nbHits | Number of touch hits reported in buffer. This number will not exceed aMaxNbTouches constructor parameter. |
- Note
- There is a significant performance penalty in case multiple touch callbacks are issued (up to 2x)
-
to avoid the penalty use a bigger buffer so that all touching hits can be reported in a single buffer.
-
If true (again) is returned from the callback, nbTouches will be reset to 0,
-
If false is returned, nbTouched will remain unchanged.
-
By the time processTouches is first called, the globally closest blocking hit is already determined,
-
values of hasBlock and block are final and all touch hits are guaranteed to be closer than the blocking hit.
-
touches and maxNbTouches can be modified inside of processTouches callback.
- Returns
- true to continue receiving callbacks in case there are more hits or false to stop.
- See Also
- PxAgain PxRaycastHit PxSweepHit PxOverlapHit
Implemented in PxHitBuffer< HitType >, PxHitBuffer< PxOverlapHit >, PxHitBuffer< PxRaycastHit >, and PxHitBuffer< PxSweepHit >.
template<typename HitType>
template<typename HitType>
template<typename HitType>
template<typename HitType>
template<typename HitType>
The documentation for this struct was generated from the following file: