PxExternalStorageReportCallback

Defined in include/geometry/PxReportCallback.h

template<class T>
class PxExternalStorageReportCallback : public PxReportCallback<T>

External storage report callback.

This is the same as a regular callback, except the destination buffer is a user-provided external buffer.

Typically the provided buffer can be larger here than for PxLocalStorageReportCallback, and it could even be a scratchpad-kind of memory shared by multiple sub-systems.

This would be the same as having a C-style buffer to write out results in the query interface.

This customized callback sends results to users via the processResults() function.

The capacity parameter dictates how many items can be reported at a time, i.e. how many times the flushResults/processResults function will be called by the system.

See also

PxReportCallback

Public Functions

inline PxExternalStorageReportCallback(T *buffer, PxU32 capacity)
inline virtual bool flushResults(PxU32 nbItems, const T *items)

Reports query results to users.

This will be called by the system as many times as necessary to report all results.

Parameters
  • nbItems[in] Number of reported items

  • items[in] array of reported items

Returns

true to continue the query, false to abort the query

virtual bool processResults(PxU32 nbItems, const T *items) = 0

Reports query results to users.

Parameters
  • nbItems[in] Number of reported items

  • items[in] array of reported items

Returns

true to continue the query, false to abort the query

Public Members

T *mBuffer
PxU32 mCapacity
PxU32 mSize

Current number of items in the buffer. This is entirely managed by the system.