Sophie

Sophie

distrib > PLD > th > x86_64 > by-pkgid > 3b87faceb47db01a011d04a86cccd880 > files > 226

OpenSubdiv-apidocs-3.5.1-1.noarch.rpm

<!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.10"/>
<title>OpenSubdiv: TbbEvaluator Class 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">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</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>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxy.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="opensubdiv_logo_header.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenSubdiv
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </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">
$(document).ready(function(){initNavTree('a00091.html','');});
</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-static-methods">Static Public Member Functions</a> &#124;
<a href="a00280.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">TbbEvaluator Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="a00164_source.html">tbbEvaluator.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1083776ed758e8a1ebd8915eb68c5010"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE &gt; </td></tr>
<tr class="memitem:a1083776ed758e8a1ebd8915eb68c5010"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#a1083776ed758e8a1ebd8915eb68c5010">EvalStencils</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, STENCIL_TABLE const *stencilTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a1083776ed758e8a1ebd8915eb68c5010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic static eval stencils function. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.  <a href="#a1083776ed758e8a1ebd8915eb68c5010">More...</a><br /></td></tr>
<tr class="separator:a1083776ed758e8a1ebd8915eb68c5010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4345e3659b7fb82f23dd51c688179ce3"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a4345e3659b7fb82f23dd51c688179ce3">EvalStencils</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, int start, int end)</td></tr>
<tr class="memdesc:a4345e3659b7fb82f23dd51c688179ce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static eval stencils function which takes raw CPU pointers for input and output.  <a href="#a4345e3659b7fb82f23dd51c688179ce3">More...</a><br /></td></tr>
<tr class="separator:a4345e3659b7fb82f23dd51c688179ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af04c6d999c9f014e93711ceb9097e2a0"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE &gt; </td></tr>
<tr class="memitem:af04c6d999c9f014e93711ceb9097e2a0"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#af04c6d999c9f014e93711ceb9097e2a0">EvalStencils</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, STENCIL_TABLE const *stencilTable, const <a class="el" href="a00091.html">TbbEvaluator</a> *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:af04c6d999c9f014e93711ceb9097e2a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.  <a href="#af04c6d999c9f014e93711ceb9097e2a0">More...</a><br /></td></tr>
<tr class="separator:af04c6d999c9f014e93711ceb9097e2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6daed6135a40cda2daf6c6ea2047b330"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a6daed6135a40cda2daf6c6ea2047b330">EvalStencils</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, float *du, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, float *dv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, const float *duWeights, const float *dvWeights, int start, int end)</td></tr>
<tr class="memdesc:a6daed6135a40cda2daf6c6ea2047b330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.  <a href="#a6daed6135a40cda2daf6c6ea2047b330">More...</a><br /></td></tr>
<tr class="separator:a6daed6135a40cda2daf6c6ea2047b330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c5d150e67161bce880678f16c11f579"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE &gt; </td></tr>
<tr class="memitem:a3c5d150e67161bce880678f16c11f579"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#a3c5d150e67161bce880678f16c11f579">EvalStencils</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, DST_BUFFER *duuBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, DST_BUFFER *duvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, DST_BUFFER *dvvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, STENCIL_TABLE const *stencilTable, const <a class="el" href="a00091.html">TbbEvaluator</a> *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a3c5d150e67161bce880678f16c11f579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.  <a href="#a3c5d150e67161bce880678f16c11f579">More...</a><br /></td></tr>
<tr class="separator:a3c5d150e67161bce880678f16c11f579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76707de0a89ab94f15ad4b2c398a2c23"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a76707de0a89ab94f15ad4b2c398a2c23">EvalStencils</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, float *du, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, float *dv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, float *duu, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, float *duv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, float *dvv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, const float *duWeights, const float *dvWeights, const float *duuWeights, const float *duvWeights, const float *dvvWeights, int start, int end)</td></tr>
<tr class="memdesc:a76707de0a89ab94f15ad4b2c398a2c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.  <a href="#a76707de0a89ab94f15ad4b2c398a2c23">More...</a><br /></td></tr>
<tr class="separator:a76707de0a89ab94f15ad4b2c398a2c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b9e4c7e07040ae42e3d49454393f5f"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:a16b9e4c7e07040ae42e3d49454393f5f"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#a16b9e4c7e07040ae42e3d49454393f5f">EvalPatches</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a16b9e4c7e07040ae42e3d49454393f5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#a16b9e4c7e07040ae42e3d49454393f5f">More...</a><br /></td></tr>
<tr class="separator:a16b9e4c7e07040ae42e3d49454393f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab78e3701e650dfc99c2beb39c7e611a4"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:ab78e3701e650dfc99c2beb39c7e611a4"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#ab78e3701e650dfc99c2beb39c7e611a4">EvalPatches</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:ab78e3701e650dfc99c2beb39c7e611a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#ab78e3701e650dfc99c2beb39c7e611a4">More...</a><br /></td></tr>
<tr class="separator:ab78e3701e650dfc99c2beb39c7e611a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d42209eb10894a07bcb88585b5ce2f3"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:a6d42209eb10894a07bcb88585b5ce2f3"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#a6d42209eb10894a07bcb88585b5ce2f3">EvalPatches</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, DST_BUFFER *duuBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, DST_BUFFER *duvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, DST_BUFFER *dvvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a6d42209eb10894a07bcb88585b5ce2f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#a6d42209eb10894a07bcb88585b5ce2f3">More...</a><br /></td></tr>
<tr class="separator:a6d42209eb10894a07bcb88585b5ce2f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5b907c22dfcb943e5f25f3c16543535"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ad5b907c22dfcb943e5f25f3c16543535">EvalPatches</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, int numPatchCoords, const <a class="el" href="a00063.html">PatchCoord</a> *patchCoords, const <a class="el" href="a00062.html">PatchArray</a> *patchArrays, const int *patchIndexBuffer, const <a class="el" href="a00069.html">PatchParam</a> *patchParamBuffer)</td></tr>
<tr class="memdesc:ad5b907c22dfcb943e5f25f3c16543535"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable.  <a href="#ad5b907c22dfcb943e5f25f3c16543535">More...</a><br /></td></tr>
<tr class="separator:ad5b907c22dfcb943e5f25f3c16543535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1dba254bc287312f8f812113c8e8ad3"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ac1dba254bc287312f8f812113c8e8ad3">EvalPatches</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, float *du, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, float *dv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, int numPatchCoords, <a class="el" href="a00063.html">PatchCoord</a> const *patchCoords, <a class="el" href="a00062.html">PatchArray</a> const *patchArrays, const int *patchIndexBuffer, <a class="el" href="a00069.html">PatchParam</a> const *patchParamBuffer)</td></tr>
<tr class="memdesc:ac1dba254bc287312f8f812113c8e8ad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable.  <a href="#ac1dba254bc287312f8f812113c8e8ad3">More...</a><br /></td></tr>
<tr class="separator:ac1dba254bc287312f8f812113c8e8ad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b556148d6ef2e04fbe99677e3a87e91"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a7b556148d6ef2e04fbe99677e3a87e91">EvalPatches</a> (const float *src, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, float *dst, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, float *du, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, float *dv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, float *duu, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, float *duv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, float *dvv, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, int numPatchCoords, <a class="el" href="a00063.html">PatchCoord</a> const *patchCoords, <a class="el" href="a00062.html">PatchArray</a> const *patchArrays, const int *patchIndexBuffer, <a class="el" href="a00069.html">PatchParam</a> const *patchParamBuffer)</td></tr>
<tr class="memdesc:a7b556148d6ef2e04fbe99677e3a87e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable.  <a href="#a7b556148d6ef2e04fbe99677e3a87e91">More...</a><br /></td></tr>
<tr class="separator:a7b556148d6ef2e04fbe99677e3a87e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb857c7493452a91389f40021a03c45d"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:afb857c7493452a91389f40021a03c45d"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#afb857c7493452a91389f40021a03c45d">EvalPatchesVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:afb857c7493452a91389f40021a03c45d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#afb857c7493452a91389f40021a03c45d">More...</a><br /></td></tr>
<tr class="separator:afb857c7493452a91389f40021a03c45d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52f3dbfeaec0360f92ac83464c7c2e6c"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:a52f3dbfeaec0360f92ac83464c7c2e6c"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#a52f3dbfeaec0360f92ac83464c7c2e6c">EvalPatchesVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a52f3dbfeaec0360f92ac83464c7c2e6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#a52f3dbfeaec0360f92ac83464c7c2e6c">More...</a><br /></td></tr>
<tr class="separator:a52f3dbfeaec0360f92ac83464c7c2e6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3171fe53d673ceca93eb75372c3d7c4"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:aa3171fe53d673ceca93eb75372c3d7c4"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#aa3171fe53d673ceca93eb75372c3d7c4">EvalPatchesVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, DST_BUFFER *duuBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, DST_BUFFER *duvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, DST_BUFFER *dvvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:aa3171fe53d673ceca93eb75372c3d7c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#aa3171fe53d673ceca93eb75372c3d7c4">More...</a><br /></td></tr>
<tr class="separator:aa3171fe53d673ceca93eb75372c3d7c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeb5f95d1536bd3a7cadf440c2db96af"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:abeb5f95d1536bd3a7cadf440c2db96af"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#abeb5f95d1536bd3a7cadf440c2db96af">EvalPatchesFaceVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:abeb5f95d1536bd3a7cadf440c2db96af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#abeb5f95d1536bd3a7cadf440c2db96af">More...</a><br /></td></tr>
<tr class="separator:abeb5f95d1536bd3a7cadf440c2db96af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa27f47cddc2a42796014b8da00633fd"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:aaa27f47cddc2a42796014b8da00633fd"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#aaa27f47cddc2a42796014b8da00633fd">EvalPatchesFaceVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:aaa27f47cddc2a42796014b8da00633fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#aaa27f47cddc2a42796014b8da00633fd">More...</a><br /></td></tr>
<tr class="separator:aaa27f47cddc2a42796014b8da00633fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ac6af5dd3993a38da263eec54d83b0"><td class="memTemplParams" colspan="2">template&lt;typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE &gt; </td></tr>
<tr class="memitem:af8ac6af5dd3993a38da263eec54d83b0"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00091.html#af8ac6af5dd3993a38da263eec54d83b0">EvalPatchesFaceVarying</a> (SRC_BUFFER *srcBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;srcDesc, DST_BUFFER *dstBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dstDesc, DST_BUFFER *duBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duDesc, DST_BUFFER *dvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvDesc, DST_BUFFER *duuBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duuDesc, DST_BUFFER *duvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;duvDesc, DST_BUFFER *dvvBuffer, <a class="el" href="a00003.html">BufferDescriptor</a> const &amp;dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, <a class="el" href="a00091.html">TbbEvaluator</a> const *instance=NULL, void *deviceContext=NULL)</td></tr>
<tr class="memdesc:af8ac6af5dd3993a38da263eec54d83b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.  <a href="#af8ac6af5dd3993a38da263eec54d83b0">More...</a><br /></td></tr>
<tr class="separator:af8ac6af5dd3993a38da263eec54d83b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9689407af718de4263562bb3a760c1dd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a9689407af718de4263562bb3a760c1dd">Synchronize</a> (void *deviceContext=NULL)</td></tr>
<tr class="memdesc:a9689407af718de4263562bb3a760c1dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">synchronize all asynchronous computation invoked on this device.  <a href="#a9689407af718de4263562bb3a760c1dd">More...</a><br /></td></tr>
<tr class="separator:a9689407af718de4263562bb3a760c1dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58f2120e84fdd3f92d7cd861e97822d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ad58f2120e84fdd3f92d7cd861e97822d">SetNumThreads</a> (int numThreads)</td></tr>
<tr class="memdesc:ad58f2120e84fdd3f92d7cd861e97822d"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize tbb task schedular (optional: client may use tbb::task_scheduler_init)  <a href="#ad58f2120e84fdd3f92d7cd861e97822d">More...</a><br /></td></tr>
<tr class="separator:ad58f2120e84fdd3f92d7cd861e97822d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="a00164_source.html#l00039">39</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a16b9e4c7e07040ae42e3d49454393f5f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<hr/>
<p>Limit evaluations with PatchTable </p><hr/>
 <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00454">454</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab78e3701e650dfc99c2beb39c7e611a4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00517">517</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6d42209eb10894a07bcb88585b5ce2f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duuBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duuBuffer</td><td>Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duvBuffer</td><td>Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvvBuffer</td><td>Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00607">607</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad5b907c22dfcb943e5f25f3c16543535"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00063.html">PatchCoord</a> *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00062.html">PatchArray</a> *&#160;</td>
          <td class="paramname"><em>patchArrays</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>patchIndexBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00069.html">PatchParam</a> *&#160;</td>
          <td class="paramname"><em>patchParamBuffer</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchArrays</td><td>an array of <a class="el" href="a00062.html">Osd::PatchArray</a> struct indexed by PatchCoord::arrayIndex</td></tr>
    <tr><td class="paramname">patchIndexBuffer</td><td>an array of patch indices indexed by PatchCoord::vertIndex</td></tr>
    <tr><td class="paramname">patchParamBuffer</td><td>an array of <a class="el" href="a00069.html">Osd::PatchParam</a> struct indexed by PatchCoord::patchIndex </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac1dba254bc287312f8f812113c8e8ad3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>du</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00063.html">PatchCoord</a> const *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00062.html">PatchArray</a> const *&#160;</td>
          <td class="paramname"><em>patchArrays</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>patchIndexBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00069.html">PatchParam</a> const *&#160;</td>
          <td class="paramname"><em>patchParamBuffer</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">du</td><td>Output pointer derivative wrt u. An offset of duDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dv</td><td>Output pointer derivative wrt v. An offset of dvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchArrays</td><td>an array of <a class="el" href="a00062.html">Osd::PatchArray</a> struct indexed by PatchCoord::arrayIndex</td></tr>
    <tr><td class="paramname">patchIndexBuffer</td><td>an array of patch indices indexed by PatchCoord::vertIndex</td></tr>
    <tr><td class="paramname">patchParamBuffer</td><td>an array of <a class="el" href="a00069.html">Osd::PatchParam</a> struct indexed by PatchCoord::patchIndex </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7b556148d6ef2e04fbe99677e3a87e91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatches </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>du</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>duu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>duv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dvv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00063.html">PatchCoord</a> const *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00062.html">PatchArray</a> const *&#160;</td>
          <td class="paramname"><em>patchArrays</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>patchIndexBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00069.html">PatchParam</a> const *&#160;</td>
          <td class="paramname"><em>patchParamBuffer</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static limit eval function. It takes an array of <a class="el" href="a00063.html" title="Coordinates set on a patch table. ">PatchCoord</a> and evaluate limit values on given PatchTable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">du</td><td>Output pointer derivative wrt u. An offset of duDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dv</td><td>Output pointer derivative wrt v. An offset of dvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duu</td><td>Output pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duv</td><td>Output pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvv</td><td>Output pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchArrays</td><td>an array of <a class="el" href="a00062.html">Osd::PatchArray</a> struct indexed by PatchCoord::arrayIndex</td></tr>
    <tr><td class="paramname">patchIndexBuffer</td><td>an array of patch indices indexed by PatchCoord::vertIndex</td></tr>
    <tr><td class="paramname">patchParamBuffer</td><td>an array of <a class="el" href="a00069.html">Osd::PatchParam</a> struct indexed by PatchCoord::patchIndex </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abeb5f95d1536bd3a7cadf440c2db96af"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesFaceVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fvarChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">fvarChannel</td><td>face-varying channel</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l01034">1034</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaa27f47cddc2a42796014b8da00633fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesFaceVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fvarChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">fvarChannel</td><td>face-varying channel</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l01100">1100</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="af8ac6af5dd3993a38da263eec54d83b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesFaceVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duuBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fvarChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duuBuffer</td><td>Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duvBuffer</td><td>Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvvBuffer</td><td>Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">fvarChannel</td><td>face-varying channel</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l01188">1188</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="afb857c7493452a91389f40021a03c45d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00823">823</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a52f3dbfeaec0360f92ac83464c7c2e6c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00886">886</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa3171fe53d673ceca93eb75372c3d7c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalPatchesVarying </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duuBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPatchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCHCOORD_BUFFER *&#160;</td>
          <td class="paramname"><em>patchCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PATCH_TABLE *&#160;</td>
          <td class="paramname"><em>patchTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duuBuffer</td><td>Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duvBuffer</td><td>Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvvBuffer</td><td>Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">numPatchCoords</td><td>number of patchCoords.</td></tr>
    <tr><td class="paramname">patchCoords</td><td>array of locations to be evaluated.</td></tr>
    <tr><td class="paramname">patchTable</td><td><a class="el" href="a00014.html" title="Cpu patch table. ">CpuPatchTable</a> or equivalent XXX: currently <a class="el" href="a00070.html" title="Container for arrays of parametric patches. ">Far::PatchTable</a> can't be used due to interface mismatch</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the cpu evaluator</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the cpu evaluator </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00971">971</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1083776ed758e8a1ebd8915eb68c5010"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">STENCIL_TABLE const *&#160;</td>
          <td class="paramname"><em>stencilTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00091.html">TbbEvaluator</a> const *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic static eval stencils function. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface. </p>
<hr/>
<p>Stencil evaluations with StencilTable </p><hr/>
 <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">stencilTable</td><td><a class="el" href="a00082.html" title="Stencil table class wrapping the template for compatibility. ">Far::StencilTable</a> or equivalent</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the tbb kernel </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00072">72</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4345e3659b7fb82f23dd51c688179ce3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>sizes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>offsets</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>weights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static eval stencils function which takes raw CPU pointers for input and output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">sizes</td><td>pointer to the sizes buffer of the stencil table</td></tr>
    <tr><td class="paramname">offsets</td><td>pointer to the offsets buffer of the stencil table</td></tr>
    <tr><td class="paramname">indices</td><td>pointer to the indices buffer of the stencil table</td></tr>
    <tr><td class="paramname">weights</td><td>pointer to the weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">start</td><td>start index of stencil table</td></tr>
    <tr><td class="paramname">end</td><td>end index of stencil table </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af04c6d999c9f014e93711ceb9097e2a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">STENCIL_TABLE const *&#160;</td>
          <td class="paramname"><em>stencilTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00091.html">TbbEvaluator</a> *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">stencilTable</td><td><a class="el" href="a00082.html" title="Stencil table class wrapping the template for compatibility. ">Far::StencilTable</a> or equivalent</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the tbb kernel </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00168">168</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6daed6135a40cda2daf6c6ea2047b330"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>du</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>sizes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>offsets</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>weights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>duWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>dvWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static eval stencils function with derivatives, which takes raw CPU pointers for input and output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">du</td><td>Output pointer derivative wrt u. An offset of duDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dv</td><td>Output pointer derivative wrt v. An offset of dvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">sizes</td><td>pointer to the sizes buffer of the stencil table</td></tr>
    <tr><td class="paramname">offsets</td><td>pointer to the offsets buffer of the stencil table</td></tr>
    <tr><td class="paramname">indices</td><td>pointer to the indices buffer of the stencil table</td></tr>
    <tr><td class="paramname">weights</td><td>pointer to the weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">duWeights</td><td>pointer to the du-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">dvWeights</td><td>pointer to the dv-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">start</td><td>start index of stencil table</td></tr>
    <tr><td class="paramname">end</td><td>end index of stencil table </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3c5d150e67161bce880678f16c11f579"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">SRC_BUFFER *&#160;</td>
          <td class="paramname"><em>srcBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dstBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duuBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>duvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DST_BUFFER *&#160;</td>
          <td class="paramname"><em>dvvBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">STENCIL_TABLE const *&#160;</td>
          <td class="paramname"><em>stencilTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00091.html">TbbEvaluator</a> *&#160;</td>
          <td class="paramname"><em>instance</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code>&#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 class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcBuffer</td><td>Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dstBuffer</td><td>Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">duBuffer</td><td>Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dvBuffer</td><td>Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duuBuffer</td><td>Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duvBuffer</td><td>Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvvBuffer</td><td>Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">stencilTable</td><td><a class="el" href="a00082.html" title="Stencil table class wrapping the template for compatibility. ">Far::StencilTable</a> or equivalent</td></tr>
    <tr><td class="paramname">instance</td><td>not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)</td></tr>
    <tr><td class="paramname">deviceContext</td><td>not used in the tbb kernel </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00164_source.html#l00303">303</a> of file <a class="el" href="a00164_source.html">tbbEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a76707de0a89ab94f15ad4b2c398a2c23"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool EvalStencils </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>srcDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dstDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>du</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>duu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duuDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>duv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>duvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dvv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">BufferDescriptor</a> const &amp;&#160;</td>
          <td class="paramname"><em>dvvDesc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>sizes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>offsets</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>weights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>duWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>dvWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>duuWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>duvWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>dvvWeights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static eval stencils function with derivatives, which takes raw CPU pointers for input and output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)</td></tr>
    <tr><td class="paramname">srcDesc</td><td>vertex buffer descriptor for the input buffer</td></tr>
    <tr><td class="paramname">dst</td><td>Output primvar pointer. An offset of dstDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dstDesc</td><td>vertex buffer descriptor for the output buffer</td></tr>
    <tr><td class="paramname">du</td><td>Output pointer derivative wrt u. An offset of duDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duDesc</td><td>vertex buffer descriptor for the duBuffer</td></tr>
    <tr><td class="paramname">dv</td><td>Output pointer derivative wrt v. An offset of dvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvDesc</td><td>vertex buffer descriptor for the dvBuffer</td></tr>
    <tr><td class="paramname">duu</td><td>Output pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duuDesc</td><td>vertex buffer descriptor for the duuBuffer</td></tr>
    <tr><td class="paramname">duv</td><td>Output pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">duvDesc</td><td>vertex buffer descriptor for the duvBuffer</td></tr>
    <tr><td class="paramname">dvv</td><td>Output pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.</td></tr>
    <tr><td class="paramname">dvvDesc</td><td>vertex buffer descriptor for the dvvBuffer</td></tr>
    <tr><td class="paramname">sizes</td><td>pointer to the sizes buffer of the stencil table</td></tr>
    <tr><td class="paramname">offsets</td><td>pointer to the offsets buffer of the stencil table</td></tr>
    <tr><td class="paramname">indices</td><td>pointer to the indices buffer of the stencil table</td></tr>
    <tr><td class="paramname">weights</td><td>pointer to the weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">duWeights</td><td>pointer to the du-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">dvWeights</td><td>pointer to the dv-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">duuWeights</td><td>pointer to the duu-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">duvWeights</td><td>pointer to the duv-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">dvvWeights</td><td>pointer to the dvv-weights buffer of the stencil table</td></tr>
    <tr><td class="paramname">start</td><td>start index of stencil table</td></tr>
    <tr><td class="paramname">end</td><td>end index of stencil table </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad58f2120e84fdd3f92d7cd861e97822d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SetNumThreads </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numThreads</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>initialize tbb task schedular (optional: client may use tbb::task_scheduler_init) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">numThreads</td><td>how many threads </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9689407af718de4263562bb3a760c1dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void Synchronize </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>deviceContext</em> = <code>NULL</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>synchronize all asynchronous computation invoked on this device. </p>
<hr/>
<p>Other methods </p><hr/>
 
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opensubdiv/osd/<a class="el" href="a00164_source.html">tbbEvaluator.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="a00180.html">OpenSubdiv</a></li><li class="navelem"><a class="el" href="a00181.html">OPENSUBDIV_VERSION</a></li><li class="navelem"><a class="el" href="a00185.html">Osd</a></li><li class="navelem"><a class="el" href="a00091.html">TbbEvaluator</a></li>
    <li class="footer">Generated on Wed Sep 6 2023 17:36:01 for OpenSubdiv by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
  </ul>
</div>
</body>
</html>