Files
PhysX4.1/physx/documentation/PhysXAPI/files/structPxHitCallback.html
2025-11-28 23:13:44 +05:30

480 lines
29 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxHitCallback&lt; HitType &gt; Struct Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structPxHitCallback.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structPxHitCallback-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PxHitCallback&lt; HitType &gt; Struct Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__scenequery.html">Scenequery</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>This callback class facilitates reporting scene query hits (intersections) to the user.
<a href="structPxHitCallback.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PxQueryReport_8h_source.html">PxQueryReport.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PxHitCallback&lt; HitType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="structPxHitCallback__inherit__graph.png" border="0" usemap="#PxHitCallback_3_01HitType_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="PxHitCallback_3_01HitType_01_4_inherit__map" id="PxHitCallback_3_01HitType_01_4_inherit__map">
<area shape="rect" id="node2" href="structPxHitBuffer.html" title="Returns scene query hits (intersections) to the user in a preallocated buffer. " alt="" coords="14,80,169,107"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PxHitCallback&lt; HitType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="structPxHitCallback__coll__graph.png" border="0" usemap="#PxHitCallback_3_01HitType_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="PxHitCallback_3_01HitType_01_4_coll__map" id="PxHitCallback_3_01HitType_01_4_coll__map">
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a062cff2cdd2dfe1f63d0549758ea2627"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a062cff2cdd2dfe1f63d0549758ea2627">PxHitCallback</a> (HitType *aTouches, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> aMaxNbTouches)</td></tr>
<tr class="memdesc:a062cff2cdd2dfe1f63d0549758ea2627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the class with user provided buffer. <a href="#a062cff2cdd2dfe1f63d0549758ea2627">More...</a><br /></td></tr>
<tr class="separator:a062cff2cdd2dfe1f63d0549758ea2627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c6fc25eb66c22dad2a35d5630d4ec68"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__scenequery.html#ga4d0184965c0a910f5c96cb69c0690f5c">PxAgain</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a9c6fc25eb66c22dad2a35d5630d4ec68">processTouches</a> (const HitType *buffer, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> nbHits)=0</td></tr>
<tr class="memdesc:a9c6fc25eb66c22dad2a35d5630d4ec68"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual callback function used to communicate query results to the user. <a href="#a9c6fc25eb66c22dad2a35d5630d4ec68">More...</a><br /></td></tr>
<tr class="separator:a9c6fc25eb66c22dad2a35d5630d4ec68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86b66684b448ec43083edf3aa1983234"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a86b66684b448ec43083edf3aa1983234">finalizeQuery</a> ()</td></tr>
<tr class="memdesc:a86b66684b448ec43083edf3aa1983234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query finalization callback, called after the last processTouches callback. <a href="#a86b66684b448ec43083edf3aa1983234">More...</a><br /></td></tr>
<tr class="separator:a86b66684b448ec43083edf3aa1983234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fbb5959c9fcc98834745644422210c3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a7fbb5959c9fcc98834745644422210c3">~PxHitCallback</a> ()</td></tr>
<tr class="separator:a7fbb5959c9fcc98834745644422210c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ff687b42ac0273e730c714bf66dae49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a8ff687b42ac0273e730c714bf66dae49">hasAnyHits</a> ()</td></tr>
<tr class="memdesc:a8ff687b42ac0273e730c714bf66dae49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if any blocking or touching hits were encountered during a query. <a href="#a8ff687b42ac0273e730c714bf66dae49">More...</a><br /></td></tr>
<tr class="separator:a8ff687b42ac0273e730c714bf66dae49"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a63b2851eaf99b190fc468e00e8d1e55d"><td class="memItemLeft" align="right" valign="top">HitType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a63b2851eaf99b190fc468e00e8d1e55d">block</a></td></tr>
<tr class="memdesc:a63b2851eaf99b190fc468e00e8d1e55d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the closest blocking hit result for the query. Invalid if hasBlock is false. <a href="#a63b2851eaf99b190fc468e00e8d1e55d">More...</a><br /></td></tr>
<tr class="separator:a63b2851eaf99b190fc468e00e8d1e55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac20c6d1c2dd520d771da9b63f7f4f363"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#ac20c6d1c2dd520d771da9b63f7f4f363">hasBlock</a></td></tr>
<tr class="memdesc:ac20c6d1c2dd520d771da9b63f7f4f363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if there was a blocking hit during query. <a href="#ac20c6d1c2dd520d771da9b63f7f4f363">More...</a><br /></td></tr>
<tr class="separator:ac20c6d1c2dd520d771da9b63f7f4f363"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3fa478af9db3e043a540fca72a2f468"><td class="memItemLeft" align="right" valign="top">HitType *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#aa3fa478af9db3e043a540fca72a2f468">touches</a></td></tr>
<tr class="memdesc:aa3fa478af9db3e043a540fca72a2f468"><td class="mdescLeft">&#160;</td><td class="mdescRight">User specified buffer for touching hits. <a href="#aa3fa478af9db3e043a540fca72a2f468">More...</a><br /></td></tr>
<tr class="separator:aa3fa478af9db3e043a540fca72a2f468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e64f72a5edf7c442ce81e3e4a8c61d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a0e64f72a5edf7c442ce81e3e4a8c61d1">maxNbTouches</a></td></tr>
<tr class="memdesc:a0e64f72a5edf7c442ce81e3e4a8c61d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the user specified touching hits buffer. <a href="#a0e64f72a5edf7c442ce81e3e4a8c61d1">More...</a><br /></td></tr>
<tr class="separator:a0e64f72a5edf7c442ce81e3e4a8c61d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549f6828e98c9aeaee9012defa100f74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxHitCallback.html#a549f6828e98c9aeaee9012defa100f74">nbTouches</a></td></tr>
<tr class="memdesc:a549f6828e98c9aeaee9012defa100f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of touching hits returned by the query. Used with <a class="el" href="structPxHitBuffer.html" title="Returns scene query hits (intersections) to the user in a preallocated buffer. ">PxHitBuffer</a>. <a href="#a549f6828e98c9aeaee9012defa100f74">More...</a><br /></td></tr>
<tr class="separator:a549f6828e98c9aeaee9012defa100f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename HitType&gt;<br />
struct PxHitCallback&lt; HitType &gt;</h3>
<p>This callback class facilitates reporting scene query hits (intersections) to the user. </p>
<p>User overrides the virtual processTouches function to receive hits in (possibly multiple) fixed size blocks.</p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="structPxHitBuffer.html" title="Returns scene query hits (intersections) to the user in a preallocated buffer. ">PxHitBuffer</a> derives from this class and is used to receive touching hits in a fixed size buffer. </dd>
<dd>
Since the compiler doesn't look in template dependent base classes when looking for non-dependent names </dd>
<dd>
with some compilers it will be necessary to use "this-&gt;hasBlock" notation to access a parent variable </dd>
<dd>
in a child callback class. </dd>
<dd>
Pre-made typedef shorthands, such as <a class="el" href="group__scenequery.html#ga4dbe8142d799492bd8e7c5ec70bfac41" title="Raycast query callback. ">PxRaycastCallback</a> can be used for raycast, overlap and sweep queries.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxHitBuffer.html" title="Returns scene query hits (intersections) to the user in a preallocated buffer. ">PxHitBuffer</a> <a class="el" href="structPxRaycastHit.html" title="Stores results of raycast queries. ">PxRaycastHit</a> <a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> <a class="el" href="structPxOverlapHit.html" title="Stores results of overlap queries. ">PxOverlapHit</a> <a class="el" href="group__scenequery.html#ga4dbe8142d799492bd8e7c5ec70bfac41" title="Raycast query callback. ">PxRaycastCallback</a> <a class="el" href="group__scenequery.html#ga9baa3a8cad31bbb8ef666fe01b3afeb7" title="Overlap query callback. ">PxOverlapCallback</a> <a class="el" href="group__scenequery.html#ga6f93f556cef747d50f643499928dd865" title="Sweep query callback. ">PxSweepCallback</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a062cff2cdd2dfe1f63d0549758ea2627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a062cff2cdd2dfe1f63d0549758ea2627">&#9670;&nbsp;</a></span>PxHitCallback()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::<a class="el" href="structPxHitCallback.html">PxHitCallback</a> </td>
<td>(</td>
<td class="paramtype">HitType *&#160;</td>
<td class="paramname"><em>aTouches</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>aMaxNbTouches</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the class with user provided buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">aTouches</td><td>Optional buffer for recording <a class="el" href="structPxQueryHitType.html#acab1ef408184995d169330ed689b79e3aac7ebce08c20ff88ea4328035daa2498" title="a hit on the shape touches the intersection geometry of the query but does not block it ...">PxQueryHitType::eTOUCH</a> type hits. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">aMaxNbTouches</td><td>Size of touch buffer.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>if aTouches is NULL and aMaxNbTouches is 0, only the closest blocking hit will be recorded by the query. </dd>
<dd>
If <a class="el" href="structPxQueryFlag.html#a2124ff0cff0a021e01e6880a1bba431fa2837a6ac649b29ee72af661b65f4d8ab">PxQueryFlag::eANY_HIT</a> flag is used as a query parameter, hasBlock will be set to true and blockingHit will be used to receive the result. </dd>
<dd>
Both eTOUCH and eBLOCK hits will be registered as hasBlock=true and stored in <a class="el" href="structPxHitCallback.html#a63b2851eaf99b190fc468e00e8d1e55d" title="Holds the closest blocking hit result for the query. Invalid if hasBlock is false. ">PxHitCallback.block</a> when eANY_HIT flag is used.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxHitCallback.html#ac20c6d1c2dd520d771da9b63f7f4f363" title="Set to true if there was a blocking hit during query. ">PxHitCallback.hasBlock</a> <a class="el" href="structPxHitCallback.html#a63b2851eaf99b190fc468e00e8d1e55d" title="Holds the closest blocking hit result for the query. Invalid if hasBlock is false. ">PxHitCallback.block</a> </dd></dl>
</div>
</div>
<a id="a7fbb5959c9fcc98834745644422210c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fbb5959c9fcc98834745644422210c3">&#9670;&nbsp;</a></span>~PxHitCallback()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::~<a class="el" href="structPxHitCallback.html">PxHitCallback</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a86b66684b448ec43083edf3aa1983234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86b66684b448ec43083edf3aa1983234">&#9670;&nbsp;</a></span>finalizeQuery()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::finalizeQuery </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Query finalization callback, called after the last processTouches callback. </p>
</div>
</div>
<a id="a8ff687b42ac0273e730c714bf66dae49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ff687b42ac0273e730c714bf66dae49">&#9670;&nbsp;</a></span>hasAnyHits()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> bool <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::hasAnyHits </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if any blocking or touching hits were encountered during a query. </p>
</div>
</div>
<a id="a9c6fc25eb66c22dad2a35d5630d4ec68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c6fc25eb66c22dad2a35d5630d4ec68">&#9670;&nbsp;</a></span>processTouches()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__scenequery.html#ga4d0184965c0a910f5c96cb69c0690f5c">PxAgain</a> <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::processTouches </td>
<td>(</td>
<td class="paramtype">const HitType *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>nbHits</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual callback function used to communicate query results to the user. </p>
<p>This callback will always be invoked with <a class="el" href="structPxHitCallback.html#aa3fa478af9db3e043a540fca72a2f468" title="User specified buffer for touching hits. ">touches</a> as a buffer if <a class="el" href="structPxHitCallback.html#aa3fa478af9db3e043a540fca72a2f468" title="User specified buffer for touching hits. ">touches</a> was specified as non-NULL. All reported touch hits are guaranteed to be closer than the closest blocking hit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Callback will report touch hits to the user in this buffer. This pointer will be the same as <a class="el" href="structPxHitCallback.html#aa3fa478af9db3e043a540fca72a2f468" title="User specified buffer for touching hits. ">touches</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbHits</td><td>Number of touch hits reported in buffer. This number will not exceed <a class="el" href="structPxHitCallback.html#a0e64f72a5edf7c442ce81e3e4a8c61d1" title="Size of the user specified touching hits buffer. ">maxNbTouches</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>There is a significant performance penalty in case multiple touch callbacks are issued (up to 2x) </dd>
<dd>
to avoid the penalty use a bigger buffer so that all touching hits can be reported in a single buffer. </dd>
<dd>
If true (again) is returned from the callback, nbTouches will be reset to 0, </dd>
<dd>
If false is returned, nbTouched will remain unchanged. </dd>
<dd>
By the time processTouches is first called, the globally closest blocking hit is already determined, </dd>
<dd>
values of hasBlock and block are final and all touch hits are guaranteed to be closer than the blocking hit. </dd>
<dd>
touches and maxNbTouches can be modified inside of processTouches callback.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>true to continue receiving callbacks in case there are more hits or false to stop.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__scenequery.html#ga4d0184965c0a910f5c96cb69c0690f5c" title="Describes query behavior after returning a partial query result via a callback. ">PxAgain</a> <a class="el" href="structPxRaycastHit.html" title="Stores results of raycast queries. ">PxRaycastHit</a> <a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> <a class="el" href="structPxOverlapHit.html" title="Stores results of overlap queries. ">PxOverlapHit</a> </dd></dl>
<p>Implemented in <a class="el" href="structPxHitBuffer.html#af60ac2d3405c5af467f767f812f3f01d">PxHitBuffer&lt; HitType &gt;</a>, <a class="el" href="structPxHitBuffer.html#af60ac2d3405c5af467f767f812f3f01d">PxHitBuffer&lt; PxOverlapHit &gt;</a>, <a class="el" href="structPxHitBuffer.html#af60ac2d3405c5af467f767f812f3f01d">PxHitBuffer&lt; PxRaycastHit &gt;</a>, and <a class="el" href="structPxHitBuffer.html#af60ac2d3405c5af467f767f812f3f01d">PxHitBuffer&lt; PxSweepHit &gt;</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a63b2851eaf99b190fc468e00e8d1e55d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63b2851eaf99b190fc468e00e8d1e55d">&#9670;&nbsp;</a></span>block</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="memname">
<tr>
<td class="memname">HitType <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::block</td>
</tr>
</table>
</div><div class="memdoc">
<p>Holds the closest blocking hit result for the query. Invalid if hasBlock is false. </p>
</div>
</div>
<a id="ac20c6d1c2dd520d771da9b63f7f4f363"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac20c6d1c2dd520d771da9b63f7f4f363">&#9670;&nbsp;</a></span>hasBlock</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::hasBlock</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to true if there was a blocking hit during query. </p>
</div>
</div>
<a id="a0e64f72a5edf7c442ce81e3e4a8c61d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e64f72a5edf7c442ce81e3e4a8c61d1">&#9670;&nbsp;</a></span>maxNbTouches</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::maxNbTouches</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of the user specified touching hits buffer. </p>
<dl class="section note"><dt>Note</dt><dd>If set to 0 all hits will default to <a class="el" href="structPxQueryHitType.html#acab1ef408184995d169330ed689b79e3a60dc59a348d85c101747ed45d9b20750" title="a hit on the shape blocks the query (does not block overlap queries) ">PxQueryHitType::eBLOCK</a>, otherwise to <a class="el" href="structPxQueryHitType.html#acab1ef408184995d169330ed689b79e3aac7ebce08c20ff88ea4328035daa2498" title="a hit on the shape touches the intersection geometry of the query but does not block it ...">PxQueryHitType::eTOUCH</a> </dd>
<dd>
Hit type returned from pre-filter overrides this default </dd></dl>
</div>
</div>
<a id="a549f6828e98c9aeaee9012defa100f74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a549f6828e98c9aeaee9012defa100f74">&#9670;&nbsp;</a></span>nbTouches</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::nbTouches</td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of touching hits returned by the query. Used with <a class="el" href="structPxHitBuffer.html" title="Returns scene query hits (intersections) to the user in a preallocated buffer. ">PxHitBuffer</a>. </p>
<dl class="section note"><dt>Note</dt><dd>If true (PxAgain) is returned from the callback, nbTouches will be reset to 0. </dd></dl>
</div>
</div>
<a id="aa3fa478af9db3e043a540fca72a2f468"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3fa478af9db3e043a540fca72a2f468">&#9670;&nbsp;</a></span>touches</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename HitType&gt; </div>
<table class="memname">
<tr>
<td class="memname">HitType* <a class="el" href="structPxHitCallback.html">PxHitCallback</a>&lt; HitType &gt;::touches</td>
</tr>
</table>
</div><div class="memdoc">
<p>User specified buffer for touching hits. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="PxQueryReport_8h_source.html">PxQueryReport.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="structPxHitCallback.html">PxHitCallback</a></li>
<li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
</ul>
</div>
</body>
</html>