<!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: opensubdiv/far/patchParam.h Source File</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 Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><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="files.html"><span>File List</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('a00112_source.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="headertitle"> <div class="title">patchParam.h</div> </div> </div><!--header--> <div class="contents"> <a href="a00112.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// Copyright 2013 Pixar</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "Apache License")</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// with the following modification; you may not use this file except in</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// compliance with the Apache License and the following modification to it:</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Section 6. Trademarks. is deleted and replaced with:</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// 6. Trademarks. This License does not grant permission to use the trade</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// names, trademarks, service marks, or product names of the Licensor</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// and its affiliates, except as required to comply with Section 4(c) of</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// the License and to reproduce the content of the NOTICE file.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// You may obtain a copy of the Apache License at</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// distributed under the Apache License with the above modification is</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// KIND, either express or implied. See the Apache License for the specific</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// language governing permissions and limitations under the Apache License.</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">//</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef OPENSUBDIV3_FAR_PATCH_PARAM_H</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define OPENSUBDIV3_FAR_PATCH_PARAM_H</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../version.h"</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../far/types.h"</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="a00180.html">OpenSubdiv</a> {</div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span>OPENSUBDIV_VERSION {</div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span>Far {</div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> <div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00068.html"> 152</a></span> <span class="keyword">struct </span><a class="code" href="a00068.html">PatchParam</a> {</div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#a98adcbce89caf00ca5c67c978d1f8576">Set</a>(<a class="code" href="a00183.html#ab34c85a48f33dfe7b8bf4d966fdebbf2">Index</a> faceid, <span class="keywordtype">short</span> u, <span class="keywordtype">short</span> v,</div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> depth, <span class="keywordtype">bool</span> nonquad,</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> boundary, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> transition,</div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">bool</span> regular = <span class="keyword">false</span>);</div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div> <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="a00068.html#aa71d36872f416feaa853788a7a7a7ef8"> 174</a></span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#aa71d36872f416feaa853788a7a7a7ef8">Clear</a>() { <a class="code" href="a00068.html#ae918c114a445f892134cb94b70d3f07e">field0</a> = <a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a> = 0; }</div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div> <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00068.html#a9ad4fe8408c3054e5f31d5b21dade8e9"> 177</a></span>  <a class="code" href="a00183.html#ab34c85a48f33dfe7b8bf4d966fdebbf2">Index</a> <a class="code" href="a00068.html#a9ad4fe8408c3054e5f31d5b21dade8e9">GetFaceId</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00183.html#ab34c85a48f33dfe7b8bf4d966fdebbf2">Index</a>(unpack(<a class="code" href="a00068.html#ae918c114a445f892134cb94b70d3f07e">field0</a>,28,0)); }</div> <div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div> <div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="a00068.html#adff7e9438a825e1662155e5724043c6d"> 181</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,10,22); }</div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div> <div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd"> 185</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,10,12); }</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00068.html#a6dc54dd679fd5b4e8c8da911fe038a65"> 188</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00068.html#a6dc54dd679fd5b4e8c8da911fe038a65">GetTransition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)unpack(<a class="code" href="a00068.html#ae918c114a445f892134cb94b70d3f07e">field0</a>,4,28); }</div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div> <div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="a00068.html#ab4139487ecb1735f015732b96a8be1fa"> 191</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00068.html#ab4139487ecb1735f015732b96a8be1fa">GetBoundary</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,5,7); }</div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div> <div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="a00068.html#aa6eef27e1d62e183a887ae7c01c1c035"> 194</a></span>  <span class="keywordtype">bool</span> <a class="code" href="a00068.html#aa6eef27e1d62e183a887ae7c01c1c035">NonQuadRoot</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,1,4) != 0); }</div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div> <div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac"> 197</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">GetDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,4,0); }</div> <div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">float</span> <a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">GetParamFraction</a>() <span class="keyword">const</span>;</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#a4f955fa0396bfd8371422f3ddf76853d">Normalize</a>( REAL & u, REAL & v ) <span class="keyword">const</span>;</div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#a2f5128d1b46c8825774812abb97823b2">NormalizeTriangle</a>( REAL & u, REAL & v ) <span class="keyword">const</span>;</div> <div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div> <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#ae32477b996d38e7d94021bb81aa968d5">Unnormalize</a>( REAL & u, REAL & v ) <span class="keyword">const</span>;</div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">void</span> <a class="code" href="a00068.html#ad48a3ac56245fc47e47a563ea2a24144">UnnormalizeTriangle</a>( REAL & u, REAL & v ) <span class="keyword">const</span>;</div> <div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div> <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">bool</span> <a class="code" href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f">IsTriangleRotated</a>() <span class="keyword">const</span>;</div> <div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div> <div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00068.html#a11b3f665312d614f6ff12cfb11268dd4"> 228</a></span>  <span class="keywordtype">bool</span> <a class="code" href="a00068.html#a11b3f665312d614f6ff12cfb11268dd4">IsRegular</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (unpack(<a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>,1,5) != 0); }</div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div> <div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00068.html#ae918c114a445f892134cb94b70d3f07e"> 230</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00068.html#ae918c114a445f892134cb94b70d3f07e">field0</a>:32;</div> <div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60"> 231</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a>:32;</div> <div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div> <div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pack(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> offset)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)((value & ((1<<width)-1)) << offset);</div> <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> <div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div> <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> unpack(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> offset)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)((value >> offset) & ((1<<width)-1));</div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> };</div> <div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div> <div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="a00183.html#a46ea68db89cc3d55c4191ef7648281ce"> 243</a></span> <span class="keyword">typedef</span> std::vector<PatchParam> <a class="code" href="a00183.html#a46ea68db89cc3d55c4191ef7648281ce">PatchParamTable</a>;</div> <div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div> <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00183.html#abe07210a029a01571c54276ae28b4d88"> 245</a></span> <span class="keyword">typedef</span> <a class="code" href="a00002.html">Vtr::Array<PatchParam></a> <a class="code" href="a00183.html#abe07210a029a01571c54276ae28b4d88">PatchParamArray</a>;</div> <div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="a00183.html#a3139c7c52ddf26b2403e8e95ff63eeb3"> 246</a></span> <span class="keyword">typedef</span> <a class="code" href="a00009.html">Vtr::ConstArray<PatchParam></a> <a class="code" href="a00183.html#a3139c7c52ddf26b2403e8e95ff63eeb3">ConstPatchParamArray</a>;</div> <div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div> <div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="a00068.html#a98adcbce89caf00ca5c67c978d1f8576"> 249</a></span> <a class="code" href="a00068.html#a98adcbce89caf00ca5c67c978d1f8576">PatchParam::Set</a>(<a class="code" href="a00183.html#ab34c85a48f33dfe7b8bf4d966fdebbf2">Index</a> faceid, <span class="keywordtype">short</span> u, <span class="keywordtype">short</span> v,</div> <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> depth, <span class="keywordtype">bool</span> nonquad,</div> <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> boundary, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> transition,</div> <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordtype">bool</span> regular) {</div> <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="a00068.html#ae918c114a445f892134cb94b70d3f07e">field0</a> = pack(faceid, 28, 0) |</div> <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  pack(transition, 4, 28);</div> <div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div> <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">field1</a> = pack(u, 10, 22) |</div> <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  pack(v, 10, 12) |</div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  pack(boundary, 5, 7) |</div> <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  pack(regular, 1, 5) |</div> <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  pack(nonquad, 1, 4) |</div> <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  pack(depth, 4, 0);</div> <div class="line"><a name="l00262"></a><span class="lineno"> 262</span> }</div> <div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">inline</span> <span class="keywordtype">float</span></div> <div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc"> 265</a></span> <a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">PatchParam::GetParamFraction</a>( )<span class="keyword"> const </span>{</div> <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> 1.0f / (float)(1 << (<a class="code" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">GetDepth</a>() - <a class="code" href="a00068.html#aa6eef27e1d62e183a887ae7c01c1c035">NonQuadRoot</a>()));</div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00068.html#a4f955fa0396bfd8371422f3ddf76853d"> 271</a></span> <a class="code" href="a00068.html#a4f955fa0396bfd8371422f3ddf76853d">PatchParam::Normalize</a>( REAL & u, REAL & v )<span class="keyword"> const </span>{</div> <div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  REAL fracInv = (REAL)(1.0f / <a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">GetParamFraction</a>());</div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  u = u * fracInv - (REAL)<a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>();</div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  v = v * fracInv - (REAL)<a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>();</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> }</div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="a00068.html#ae32477b996d38e7d94021bb81aa968d5"> 281</a></span> <a class="code" href="a00068.html#ae32477b996d38e7d94021bb81aa968d5">PatchParam::Unnormalize</a>( REAL & u, REAL & v )<span class="keyword"> const </span>{</div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  REAL frac = (REAL)<a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">GetParamFraction</a>();</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div> <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  u = (u + (REAL)<a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>()) * frac;</div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  v = (v + (REAL)<a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>()) * frac;</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span></div> <div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f"> 290</a></span> <a class="code" href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f">PatchParam::IsTriangleRotated</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div> <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> (<a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>() + <a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>()) >= (1 << <a class="code" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">GetDepth</a>());</div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div> <div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00068.html#a2f5128d1b46c8825774812abb97823b2"> 297</a></span> <a class="code" href="a00068.html#a2f5128d1b46c8825774812abb97823b2">PatchParam::NormalizeTriangle</a>( REAL & u, REAL & v )<span class="keyword"> const </span>{</div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (<a class="code" href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f">IsTriangleRotated</a>()) {</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  REAL fracInv = (REAL)(1.0f / <a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">GetParamFraction</a>());</div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordtype">int</span> depthFactor = 1 << <a class="code" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">GetDepth</a>();</div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  u = (REAL)(depthFactor - <a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>()) - (u * fracInv);</div> <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  v = (REAL)(depthFactor - <a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>()) - (v * fracInv);</div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  } <span class="keywordflow">else</span> {</div> <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="a00068.html#a4f955fa0396bfd8371422f3ddf76853d">Normalize</a>(u, v);</div> <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div> <div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REAL></div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="a00068.html#ad48a3ac56245fc47e47a563ea2a24144"> 312</a></span> <a class="code" href="a00068.html#ad48a3ac56245fc47e47a563ea2a24144">PatchParam::UnnormalizeTriangle</a>( REAL & u, REAL & v )<span class="keyword"> const </span>{</div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div> <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> (<a class="code" href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f">IsTriangleRotated</a>()) {</div> <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  REAL frac = <a class="code" href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">GetParamFraction</a>();</div> <div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">int</span> depthFactor = 1 << <a class="code" href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">GetDepth</a>();</div> <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  u = ((REAL)(depthFactor - <a class="code" href="a00068.html#adff7e9438a825e1662155e5724043c6d">GetU</a>()) - u) * frac;</div> <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  v = ((REAL)(depthFactor - <a class="code" href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">GetV</a>()) - v) * frac;</div> <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  } <span class="keywordflow">else</span> {</div> <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="a00068.html#ae32477b996d38e7d94021bb81aa968d5">Unnormalize</a>(u, v);</div> <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div> <div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div> <div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div> <div class="line"><a name="l00325"></a><span class="lineno"> 325</span> } <span class="comment">// end namespace Far</span></div> <div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div> <div class="line"><a name="l00327"></a><span class="lineno"> 327</span> } <span class="comment">// end namespace OPENSUBDIV_VERSION</span></div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">using namespace </span>OPENSUBDIV_VERSION;</div> <div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div> <div class="line"><a name="l00330"></a><span class="lineno"> 330</span> } <span class="comment">// end namespace OpenSubdiv</span></div> <div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#endif </span><span class="comment">/* OPENSUBDIV3_FAR_PATCH_PARAM */</span><span class="preprocessor"></span></div> <div class="ttc" id="a00068_html_aa992496f945c3e0ffb3a55ca84a7cb60"><div class="ttname"><a href="a00068.html#aa992496f945c3e0ffb3a55ca84a7cb60">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::field1</a></div><div class="ttdeci">unsigned int field1</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00231">patchParam.h:231</a></div></div> <div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam</a></div><div class="ttdoc">Patch parameterization. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00152">patchParam.h:152</a></div></div> <div class="ttc" id="a00068_html_a6dc54dd679fd5b4e8c8da911fe038a65"><div class="ttname"><a href="a00068.html#a6dc54dd679fd5b4e8c8da911fe038a65">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetTransition</a></div><div class="ttdeci">unsigned short GetTransition() const </div><div class="ttdoc">Returns the transition edge encoding for the patch. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00188">patchParam.h:188</a></div></div> <div class="ttc" id="a00183_html_a3139c7c52ddf26b2403e8e95ff63eeb3"><div class="ttname"><a href="a00183.html#a3139c7c52ddf26b2403e8e95ff63eeb3">OpenSubdiv::OPENSUBDIV_VERSION::Far::ConstPatchParamArray</a></div><div class="ttdeci">Vtr::ConstArray< PatchParam > ConstPatchParamArray</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00246">patchParam.h:246</a></div></div> <div class="ttc" id="a00068_html_a11b3f665312d614f6ff12cfb11268dd4"><div class="ttname"><a href="a00068.html#a11b3f665312d614f6ff12cfb11268dd4">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::IsRegular</a></div><div class="ttdeci">bool IsRegular() const </div><div class="ttdoc">Returns whether the patch is regular. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00228">patchParam.h:228</a></div></div> <div class="ttc" id="a00068_html_a4f955fa0396bfd8371422f3ddf76853d"><div class="ttname"><a href="a00068.html#a4f955fa0396bfd8371422f3ddf76853d">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::Normalize</a></div><div class="ttdeci">void Normalize(REAL &u, REAL &v) const </div><div class="ttdoc">A (u,v) pair in the fraction of parametric space covered by this face is mapped into a normalized par...</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00271">patchParam.h:271</a></div></div> <div class="ttc" id="a00183_html_a46ea68db89cc3d55c4191ef7648281ce"><div class="ttname"><a href="a00183.html#a46ea68db89cc3d55c4191ef7648281ce">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParamTable</a></div><div class="ttdeci">std::vector< PatchParam > PatchParamTable</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00243">patchParam.h:243</a></div></div> <div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">OpenSubdiv::OPENSUBDIV_VERSION::Vtr::ConstArray</a></div><div class="ttdef"><b>Definition:</b> <a href="a00172_source.html#l00053">array.h:53</a></div></div> <div class="ttc" id="a00068_html_a9ad4fe8408c3054e5f31d5b21dade8e9"><div class="ttname"><a href="a00068.html#a9ad4fe8408c3054e5f31d5b21dade8e9">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetFaceId</a></div><div class="ttdeci">Index GetFaceId() const </div><div class="ttdoc">Returns the faceid. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00177">patchParam.h:177</a></div></div> <div class="ttc" id="a00068_html_ae918c114a445f892134cb94b70d3f07e"><div class="ttname"><a href="a00068.html#ae918c114a445f892134cb94b70d3f07e">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::field0</a></div><div class="ttdeci">unsigned int field0</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00230">patchParam.h:230</a></div></div> <div class="ttc" id="a00068_html_aa71d36872f416feaa853788a7a7a7ef8"><div class="ttname"><a href="a00068.html#aa71d36872f416feaa853788a7a7a7ef8">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Resets everything to 0. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00174">patchParam.h:174</a></div></div> <div class="ttc" id="a00183_html_abe07210a029a01571c54276ae28b4d88"><div class="ttname"><a href="a00183.html#abe07210a029a01571c54276ae28b4d88">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParamArray</a></div><div class="ttdeci">Vtr::Array< PatchParam > PatchParamArray</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00245">patchParam.h:245</a></div></div> <div class="ttc" id="a00068_html_a659f1763e76676dcdff2bc0a4f7679ac"><div class="ttname"><a href="a00068.html#a659f1763e76676dcdff2bc0a4f7679ac">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetDepth</a></div><div class="ttdeci">unsigned short GetDepth() const </div><div class="ttdoc">Returns the level of subdivision of the patch. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00197">patchParam.h:197</a></div></div> <div class="ttc" id="a00068_html_aa6eef27e1d62e183a887ae7c01c1c035"><div class="ttname"><a href="a00068.html#aa6eef27e1d62e183a887ae7c01c1c035">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::NonQuadRoot</a></div><div class="ttdeci">bool NonQuadRoot() const </div><div class="ttdoc">True if the parent base face is a non-quad. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00194">patchParam.h:194</a></div></div> <div class="ttc" id="a00183_html_ab34c85a48f33dfe7b8bf4d966fdebbf2"><div class="ttname"><a href="a00183.html#ab34c85a48f33dfe7b8bf4d966fdebbf2">OpenSubdiv::OPENSUBDIV_VERSION::Far::Index</a></div><div class="ttdeci">Vtr::Index Index</div><div class="ttdef"><b>Definition:</b> <a href="a00123_source.html#l00041">types.h:41</a></div></div> <div class="ttc" id="a00068_html_a205738c2a3d4cbf07d5d7b56bb8ee34f"><div class="ttname"><a href="a00068.html#a205738c2a3d4cbf07d5d7b56bb8ee34f">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::IsTriangleRotated</a></div><div class="ttdeci">bool IsTriangleRotated() const </div><div class="ttdoc">Returns if a triangular patch is parametrically rotated 180 degrees. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00290">patchParam.h:290</a></div></div> <div class="ttc" id="a00068_html_ae32477b996d38e7d94021bb81aa968d5"><div class="ttname"><a href="a00068.html#ae32477b996d38e7d94021bb81aa968d5">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::Unnormalize</a></div><div class="ttdeci">void Unnormalize(REAL &u, REAL &v) const </div><div class="ttdoc">A (u,v) pair in a normalized parametric space is mapped back into the fraction of parametric space co...</div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00281">patchParam.h:281</a></div></div> <div class="ttc" id="a00068_html_ab4139487ecb1735f015732b96a8be1fa"><div class="ttname"><a href="a00068.html#ab4139487ecb1735f015732b96a8be1fa">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetBoundary</a></div><div class="ttdeci">unsigned short GetBoundary() const </div><div class="ttdoc">Returns the boundary edge encoding for the patch. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00191">patchParam.h:191</a></div></div> <div class="ttc" id="a00068_html_ad48a3ac56245fc47e47a563ea2a24144"><div class="ttname"><a href="a00068.html#ad48a3ac56245fc47e47a563ea2a24144">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::UnnormalizeTriangle</a></div><div class="ttdeci">void UnnormalizeTriangle(REAL &u, REAL &v) const </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00312">patchParam.h:312</a></div></div> <div class="ttc" id="a00068_html_a2f5128d1b46c8825774812abb97823b2"><div class="ttname"><a href="a00068.html#a2f5128d1b46c8825774812abb97823b2">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::NormalizeTriangle</a></div><div class="ttdeci">void NormalizeTriangle(REAL &u, REAL &v) const </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00297">patchParam.h:297</a></div></div> <div class="ttc" id="a00180_html"><div class="ttname"><a href="a00180.html">OpenSubdiv</a></div><div class="ttdef"><b>Definition:</b> <a href="a00100_source.html#l00032">limits.h:32</a></div></div> <div class="ttc" id="a00068_html_a3689f4f7d02e4624a7ba249aac58dacc"><div class="ttname"><a href="a00068.html#a3689f4f7d02e4624a7ba249aac58dacc">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetParamFraction</a></div><div class="ttdeci">float GetParamFraction() const </div><div class="ttdoc">Returns the fraction of unit parametric space covered by this face. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00265">patchParam.h:265</a></div></div> <div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">OpenSubdiv::OPENSUBDIV_VERSION::Vtr::Array</a></div><div class="ttdef"><b>Definition:</b> <a href="a00172_source.html#l00105">array.h:105</a></div></div> <div class="ttc" id="a00068_html_adff7e9438a825e1662155e5724043c6d"><div class="ttname"><a href="a00068.html#adff7e9438a825e1662155e5724043c6d">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetU</a></div><div class="ttdeci">unsigned short GetU() const </div><div class="ttdoc">Returns the log2 value of the u parameter at the first corner of the patch. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00181">patchParam.h:181</a></div></div> <div class="ttc" id="a00068_html_a9cacc219c7c7ec273f6dacb41a0a65bd"><div class="ttname"><a href="a00068.html#a9cacc219c7c7ec273f6dacb41a0a65bd">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::GetV</a></div><div class="ttdeci">unsigned short GetV() const </div><div class="ttdoc">Returns the log2 value of the v parameter at the first corner of the patch. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00185">patchParam.h:185</a></div></div> <div class="ttc" id="a00068_html_a98adcbce89caf00ca5c67c978d1f8576"><div class="ttname"><a href="a00068.html#a98adcbce89caf00ca5c67c978d1f8576">OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchParam::Set</a></div><div class="ttdeci">void Set(Index faceid, short u, short v, unsigned short depth, bool nonquad, unsigned short boundary, unsigned short transition, bool regular=false)</div><div class="ttdoc">Sets the values of the bit fields. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00249">patchParam.h:249</a></div></div> </div><!-- fragment --></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="dir_92d32ed2ee5a5189c247727c83e4b0fa.html">opensubdiv</a></li><li class="navelem"><a class="el" href="dir_7f420b72a822828cfa8b0561c695a5cc.html">far</a></li><li class="navelem"><a class="el" href="a00112.html">patchParam.h</a></li> <li class="footer">Generated on Wed Sep 6 2023 17:36:00 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>