Files
opennurbs/6/de/ddc/class_o_n___nurbs_surface.html
Bozo 55446d56ce Publish!
Generated from v6.0.11315.11111-test10
2018-01-26 04:54:48 -08:00

4138 lines
251 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>openNURBS SDK Help: ON_NurbsSurface 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="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">openNURBS SDK Help
&#160;<span id="projectnumber">6.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- 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><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="../../db/d30/class_o_n___nurbs_surface-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ON_NurbsSurface Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="../../d8/d31/opennurbs__nurbssurface_8h_source.html">opennurbs_nurbssurface.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ON_NurbsSurface:</div>
<div class="dyncontent">
<div class="center">
<img src="../../de/ddc/class_o_n___nurbs_surface.png" usemap="#ON_5FNurbsSurface_map" alt=""/>
<map id="ON_5FNurbsSurface_map" name="ON_5FNurbsSurface_map">
<area href="../../da/da0/class_o_n___surface.html" alt="ON_Surface" shape="rect" coords="0,112,117,136"/>
<area href="../../df/de0/class_o_n___geometry.html" alt="ON_Geometry" shape="rect" coords="0,56,117,80"/>
<area href="../../d9/d7b/class_o_n___object.html" alt="ON_Object" shape="rect" coords="0,0,117,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1302904a1750b73cc19c9d224eb249b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a1302904a1750b73cc19c9d224eb249b6">ON_NurbsSurface</a> ()</td></tr>
<tr class="separator:a1302904a1750b73cc19c9d224eb249b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af82a094167f2caf9de988d6d4345480b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#af82a094167f2caf9de988d6d4345480b">ON_NurbsSurface</a> (const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;nurbs_surface)</td></tr>
<tr class="separator:af82a094167f2caf9de988d6d4345480b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15cda13e0b442e4972993b5cba76fb3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a15cda13e0b442e4972993b5cba76fb3b">ON_NurbsSurface</a> (const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;bezier_surface)</td></tr>
<tr class="separator:a15cda13e0b442e4972993b5cba76fb3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd24820d1568ea90b468fc27c3f98891"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#acd24820d1568ea90b468fc27c3f98891">ON_NurbsSurface</a> (int dimension, bool bIsRational, int order0, int order1, int cv_count0, int cv_count1)</td></tr>
<tr class="separator:acd24820d1568ea90b468fc27c3f98891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea5ed93f7a85dbe692bcf4b1b0c57d86"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aea5ed93f7a85dbe692bcf4b1b0c57d86">~ON_NurbsSurface</a> ()</td></tr>
<tr class="separator:aea5ed93f7a85dbe692bcf4b1b0c57d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414b4f28b2dcfc8d7b9cbcd9cd694842"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a414b4f28b2dcfc8d7b9cbcd9cd694842">ChangeDimension</a> (int desired_dimension)</td></tr>
<tr class="separator:a414b4f28b2dcfc8d7b9cbcd9cd694842"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14220b779665eb0fda3dc3bf92ee2131"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a14220b779665eb0fda3dc3bf92ee2131">ChangeSurfaceSeam</a> (int dir, double t)</td></tr>
<tr class="separator:a14220b779665eb0fda3dc3bf92ee2131"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebd323263cb3affce214be8fd02661fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aebd323263cb3affce214be8fd02661fb">ClampEnd</a> (int dir, int end)</td></tr>
<tr class="separator:aebd323263cb3affce214be8fd02661fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55b5fceffc4dad612d7e412e30d89ec0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a55b5fceffc4dad612d7e412e30d89ec0">CollapseSide</a> (int side, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> point=<a class="el" href="../../d2/d35/class_o_n__3d_point.html#aa68906e3e7650b01ce88c527f6088d7d">ON_3dPoint::UnsetPoint</a>)</td></tr>
<tr class="separator:a55b5fceffc4dad612d7e412e30d89ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a315d2260d7064c6407ffc4a5309b8d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2a315d2260d7064c6407ffc4a5309b8d">ControlPoint</a> (int i, int j) const</td></tr>
<tr class="separator:a2a315d2260d7064c6407ffc4a5309b8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa149a365981f62a70784b7e8c89fa065"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aa149a365981f62a70784b7e8c89fa065">ControlPolygonLength</a> (int dir) const</td></tr>
<tr class="memdesc:aa149a365981f62a70784b7e8c89fa065"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface. <a href="#aa149a365981f62a70784b7e8c89fa065">More...</a><br /></td></tr>
<tr class="separator:aa149a365981f62a70784b7e8c89fa065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0264c6375c25a44dfc5e60b12bfb427d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0264c6375c25a44dfc5e60b12bfb427d">ConvertSpanToBezier</a> (int span_index0, int span_index1, <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;bezier_surface) const</td></tr>
<tr class="separator:a0264c6375c25a44dfc5e60b12bfb427d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2beda59d1744d15a1d3ebf18b61bb2c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2beda59d1744d15a1d3ebf18b61bb2c0">Create</a> (int dim, bool is_rat, int order0, int order1, int cv_count0, int cv_count1)</td></tr>
<tr class="separator:a2beda59d1744d15a1d3ebf18b61bb2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabbd32c811bdec94b045c768c17e0af8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aabbd32c811bdec94b045c768c17e0af8">CreateConeSurface</a> (<a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> apex_point, const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;curve, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *curve_domain=nullptr)</td></tr>
<tr class="separator:aabbd32c811bdec94b045c768c17e0af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a812cbdf97a35fe72fcda47a47a9735ef"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a812cbdf97a35fe72fcda47a47a9735ef">CreateRuledSurface</a> (const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;curveA, const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;curveB, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *curveA_domain=nullptr, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *curveB_domain=nullptr)</td></tr>
<tr class="separator:a812cbdf97a35fe72fcda47a47a9735ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a001f37ab72cc20d32efa2765fa01dc69"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a001f37ab72cc20d32efa2765fa01dc69">CV</a> (int i, int j) const</td></tr>
<tr class="separator:a001f37ab72cc20d32efa2765fa01dc69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d3153310f52e219f261d1c2e7fff358"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0d3153310f52e219f261d1c2e7fff358">CVCount</a> (int) const</td></tr>
<tr class="separator:a0d3153310f52e219f261d1c2e7fff358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa756f17a88cf22dd256ba944bb1acf4c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aa756f17a88cf22dd256ba944bb1acf4c">CVCount</a> (void) const</td></tr>
<tr class="separator:aa756f17a88cf22dd256ba944bb1acf4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47074d2e65726e83a08100f8b93e9584"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a47074d2e65726e83a08100f8b93e9584">CVSize</a> (void) const</td></tr>
<tr class="separator:a47074d2e65726e83a08100f8b93e9584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb3ec30dc98a6f67d52806faaf4288ac"><td class="memItemLeft" align="right" valign="top">ON::point_style&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aeb3ec30dc98a6f67d52806faaf4288ac">CVStyle</a> () const</td></tr>
<tr class="separator:aeb3ec30dc98a6f67d52806faaf4288ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2444ea0a1da7b92b69671e223a1cac9"><td class="memItemLeft" align="right" valign="top">ON__UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ad2444ea0a1da7b92b69671e223a1cac9">DataCRC</a> (ON__UINT32 current_remainder) const override</td></tr>
<tr class="memdesc:ad2444ea0a1da7b92b69671e223a1cac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#af51d5fcec9379ad9b7a56ac4dfc9a8b2">ON_Object::DataCRC</a> override <a href="#ad2444ea0a1da7b92b69671e223a1cac9">More...</a><br /></td></tr>
<tr class="separator:ad2444ea0a1da7b92b69671e223a1cac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69a20920bd92c7b45ef64e2ee9298309"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a69a20920bd92c7b45ef64e2ee9298309">Degree</a> (int) const override</td></tr>
<tr class="separator:a69a20920bd92c7b45ef64e2ee9298309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb51602a9ecce4f69b78abb78e47ef22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#afb51602a9ecce4f69b78abb78e47ef22">Destroy</a> ()</td></tr>
<tr class="separator:afb51602a9ecce4f69b78abb78e47ef22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f9f8a3730a1aa21cf7172e42e010e68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3f9f8a3730a1aa21cf7172e42e010e68">Dimension</a> () const override</td></tr>
<tr class="memdesc:a3f9f8a3730a1aa21cf7172e42e010e68"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> overrides. <a href="#a3f9f8a3730a1aa21cf7172e42e010e68">More...</a><br /></td></tr>
<tr class="separator:a3f9f8a3730a1aa21cf7172e42e010e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77f6702fa6ea8d835ba6edb9a71158f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a77f6702fa6ea8d835ba6edb9a71158f9">Domain</a> (int) const override</td></tr>
<tr class="separator:a77f6702fa6ea8d835ba6edb9a71158f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74d364c467258afb3550ab265a3d8c50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a74d364c467258afb3550ab265a3d8c50">Dump</a> (<a class="el" href="../../d2/da3/class_o_n___text_log.html">ON_TextLog</a> &amp;) const override</td></tr>
<tr class="memdesc:a74d364c467258afb3550ab265a3d8c50"><td class="mdescLeft">&#160;</td><td class="mdescRight">for debugging <a href="#a74d364c467258afb3550ab265a3d8c50">More...</a><br /></td></tr>
<tr class="separator:a74d364c467258afb3550ab265a3d8c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00d0274d85e07dac2506069f603330f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a00d0274d85e07dac2506069f603330f2">EmergencyDestroy</a> ()</td></tr>
<tr class="memdesc:a00d0274d85e07dac2506069f603330f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">call if memory used by this class becomes invalid <a href="#a00d0274d85e07dac2506069f603330f2">More...</a><br /></td></tr>
<tr class="separator:a00d0274d85e07dac2506069f603330f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbb5fbdb944928595b270b44e8f6a1a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#afbb5fbdb944928595b270b44e8f6a1a2">Evaluate</a> (double, double, int, int, double *, int=0, int *=0) const override</td></tr>
<tr class="memdesc:afbb5fbdb944928595b270b44e8f6a1a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">work horse evaluator <a href="#afbb5fbdb944928595b270b44e8f6a1a2">More...</a><br /></td></tr>
<tr class="separator:afbb5fbdb944928595b270b44e8f6a1a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d7fe573af5a8c6187606b8c99f975fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3d7fe573af5a8c6187606b8c99f975fb">Extend</a> (int dir, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> &amp;domain) override</td></tr>
<tr class="separator:a3d7fe573af5a8c6187606b8c99f975fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3907cccba085621fa10b6bd6d6183fe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aa3907cccba085621fa10b6bd6d6183fe">GetBBox</a> (double *boxmin, double *boxmax, bool bGrowBox=false) const override</td></tr>
<tr class="memdesc:aa3907cccba085621fa10b6bd6d6183fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> GetBBox override <a href="#aa3907cccba085621fa10b6bd6d6183fe">More...</a><br /></td></tr>
<tr class="separator:aa3907cccba085621fa10b6bd6d6183fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9be6614683284205a9012363a55d911a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9be6614683284205a9012363a55d911a">GetCV</a> (int i, int j, ON::point_style, double *cv) const</td></tr>
<tr class="separator:a9be6614683284205a9012363a55d911a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34cf66b8e55f1152e23cbbef30098cde"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a34cf66b8e55f1152e23cbbef30098cde">GetCV</a> (int i, int j, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;cv) const</td></tr>
<tr class="separator:a34cf66b8e55f1152e23cbbef30098cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09aa6d40e5aa0dd69ed2a8412bc06c01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a09aa6d40e5aa0dd69ed2a8412bc06c01">GetCV</a> (int i, int j, <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a> &amp;cv) const</td></tr>
<tr class="separator:a09aa6d40e5aa0dd69ed2a8412bc06c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adde9c69d1137664d8d518e09c49e9d26"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#adde9c69d1137664d8d518e09c49e9d26">GetGrevilleAbcissae</a> (int dir, double *g) const</td></tr>
<tr class="separator:adde9c69d1137664d8d518e09c49e9d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac56289f02a839e0169e19914c5090b7b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ac56289f02a839e0169e19914c5090b7b">GetNextDiscontinuity</a> (int dir, ON::continuity c, double t0, double t1, double *t, int *hint=nullptr, int *dtype=nullptr, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const override</td></tr>
<tr class="separator:ac56289f02a839e0169e19914c5090b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185695ea61e4584e918acfa8e6d79069"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a185695ea61e4584e918acfa8e6d79069">GetNurbForm</a> (<a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;, double=0.0) const override</td></tr>
<tr class="separator:a185695ea61e4584e918acfa8e6d79069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebc80846fa4adf18b3fdfb4c90cd3174"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aebc80846fa4adf18b3fdfb4c90cd3174">GetParameterTolerance</a> (int, double, double *, double *) const override</td></tr>
<tr class="separator:aebc80846fa4adf18b3fdfb4c90cd3174"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6db321e8afd4d75b9575571ddf85b39"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#af6db321e8afd4d75b9575571ddf85b39">GetSpanVector</a> (int, double *) const override</td></tr>
<tr class="separator:af6db321e8afd4d75b9575571ddf85b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbdaca07107f754f512c53e2e3deba91"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#acbdaca07107f754f512c53e2e3deba91">GetSurfaceSize</a> (double *width, double *height) const override</td></tr>
<tr class="separator:acbdaca07107f754f512c53e2e3deba91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd4cbfdabade75ac746a590f4b601f07"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#abd4cbfdabade75ac746a590f4b601f07">GrevilleAbcissa</a> (int dir, int cv_index) const</td></tr>
<tr class="separator:abd4cbfdabade75ac746a590f4b601f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a739ab763ce240a6b244221289a812193"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a739ab763ce240a6b244221289a812193">HasNurbForm</a> () const override</td></tr>
<tr class="separator:a739ab763ce240a6b244221289a812193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a704b8a944a93d5448361e4536f826758"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a704b8a944a93d5448361e4536f826758">IncreaseDegree</a> (int dir, int desired_degree)</td></tr>
<tr class="separator:a704b8a944a93d5448361e4536f826758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e87073794029f5ee62e2ab12ce55ff8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a8e87073794029f5ee62e2ab12ce55ff8">Initialize</a> (void)</td></tr>
<tr class="memdesc:a8e87073794029f5ee62e2ab12ce55ff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">zeros all fields <a href="#a8e87073794029f5ee62e2ab12ce55ff8">More...</a><br /></td></tr>
<tr class="separator:a8e87073794029f5ee62e2ab12ce55ff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbce06796f026424644fcafe1986240c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#acbce06796f026424644fcafe1986240c">InsertKnot</a> (int dir, double knot_value, int knot_multiplicity=1)</td></tr>
<tr class="separator:acbce06796f026424644fcafe1986240c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2afc07bd28eb15ac4c47936b12bc2c35"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2afc07bd28eb15ac4c47936b12bc2c35">IsClamped</a> (int dir, int end=2) const</td></tr>
<tr class="separator:a2afc07bd28eb15ac4c47936b12bc2c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79f03807b92800d7fdb85cd53ab275ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a79f03807b92800d7fdb85cd53ab275ef">IsClosed</a> (int) const override</td></tr>
<tr class="separator:a79f03807b92800d7fdb85cd53ab275ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eaae948cb0fa8b7be23c549cd5d620d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a4eaae948cb0fa8b7be23c549cd5d620d">IsContinuous</a> (ON::continuity c, double s, double t, int *hint=nullptr, double point_tolerance=ON_ZERO_TOLERANCE, double d1_tolerance=ON_ZERO_TOLERANCE, double d2_tolerance=ON_ZERO_TOLERANCE, double cos_angle_tolerance=ON_DEFAULT_ANGLE_TOLERANCE_COSINE, double curvature_tolerance=ON_SQRT_EPSILON) const override</td></tr>
<tr class="separator:a4eaae948cb0fa8b7be23c549cd5d620d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56b439d01a24850bfd3e090ec4fa84b4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a56b439d01a24850bfd3e090ec4fa84b4">IsDeformable</a> () const override</td></tr>
<tr class="memdesc:a56b439d01a24850bfd3e090ec4fa84b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#af156cd098b9e68fab5f32e76b1e274e2">ON_Geometry::IsDeformable()</a> override <a href="#a56b439d01a24850bfd3e090ec4fa84b4">More...</a><br /></td></tr>
<tr class="separator:a56b439d01a24850bfd3e090ec4fa84b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44333bc7946699fa6dd3805f6095da95"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a44333bc7946699fa6dd3805f6095da95">IsDuplicate</a> (const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;other, bool bIgnoreParameterization, double tolerance=ON_ZERO_TOLERANCE) const</td></tr>
<tr class="separator:a44333bc7946699fa6dd3805f6095da95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3597179ee98894aa1a55ccbb0a79e72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#af3597179ee98894aa1a55ccbb0a79e72">IsoCurve</a> (int dir, double c) const override</td></tr>
<tr class="separator:af3597179ee98894aa1a55ccbb0a79e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa265374be1236e7dc31eda680a0667b8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aa265374be1236e7dc31eda680a0667b8">IsPeriodic</a> (int) const override</td></tr>
<tr class="memdesc:aa265374be1236e7dc31eda680a0667b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">periodic.) <a href="#aa265374be1236e7dc31eda680a0667b8">More...</a><br /></td></tr>
<tr class="separator:aa265374be1236e7dc31eda680a0667b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b3bfe945b80b46c38bcdec9a23f186a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a1b3bfe945b80b46c38bcdec9a23f186a">IsPlanar</a> (<a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> *plane=nullptr, double tolerance=ON_ZERO_TOLERANCE) const override</td></tr>
<tr class="separator:a1b3bfe945b80b46c38bcdec9a23f186a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd565672d2aa4d2b872b687f2494390"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2fd565672d2aa4d2b872b687f2494390">IsRational</a> (void) const</td></tr>
<tr class="separator:a2fd565672d2aa4d2b872b687f2494390"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66f251083e34c28fc54ff4bd784988c8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a66f251083e34c28fc54ff4bd784988c8">IsSingular</a> (int) const override</td></tr>
<tr class="separator:a66f251083e34c28fc54ff4bd784988c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa03ebd61918b3018798008fec11b7bf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#afa03ebd61918b3018798008fec11b7bf">IsValid</a> (class <a class="el" href="../../d2/da3/class_o_n___text_log.html">ON_TextLog</a> *text_log=nullptr) const override</td></tr>
<tr class="memdesc:afa03ebd61918b3018798008fec11b7bf"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> overrides. <a href="#afa03ebd61918b3018798008fec11b7bf">More...</a><br /></td></tr>
<tr class="separator:afa03ebd61918b3018798008fec11b7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc21244a4f5e5cfdd89b00977a2f5dd2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#abc21244a4f5e5cfdd89b00977a2f5dd2">Knot</a> (int dir, int knot_index) const</td></tr>
<tr class="separator:abc21244a4f5e5cfdd89b00977a2f5dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e8b07cb873e8bde9b43278489605b0f"><td class="memItemLeft" align="right" valign="top">const double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2e8b07cb873e8bde9b43278489605b0f">Knot</a> (int dir) const</td></tr>
<tr class="separator:a2e8b07cb873e8bde9b43278489605b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeb58413cad037f95a3b52275c3e1dc4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#abeb58413cad037f95a3b52275c3e1dc4">KnotCount</a> (int dir) const</td></tr>
<tr class="separator:abeb58413cad037f95a3b52275c3e1dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fd4940b38643ba4a06152e0f31c864f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0fd4940b38643ba4a06152e0f31c864f">KnotMultiplicity</a> (int dir, int knot_index) const</td></tr>
<tr class="separator:a0fd4940b38643ba4a06152e0f31c864f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3207b92ddacacd9a8bef38df04fb739c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3207b92ddacacd9a8bef38df04fb739c">MakeClampedUniformKnotVector</a> (int dir, double delta=1.0)</td></tr>
<tr class="separator:a3207b92ddacacd9a8bef38df04fb739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef3b4b936e48234a8298a469953ccc58"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aef3b4b936e48234a8298a469953ccc58">MakeDeformable</a> () override</td></tr>
<tr class="memdesc:aef3b4b936e48234a8298a469953ccc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#ac3d5cb708edca66a4a6c1992299329a3">ON_Geometry::MakeDeformable()</a> override <a href="#aef3b4b936e48234a8298a469953ccc58">More...</a><br /></td></tr>
<tr class="separator:aef3b4b936e48234a8298a469953ccc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b18ab01f81fc11de75c4c2b122147bf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a4b18ab01f81fc11de75c4c2b122147bf">MakeNonRational</a> ()</td></tr>
<tr class="separator:a4b18ab01f81fc11de75c4c2b122147bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02fa21cf4c7dba8caf902cce6bde28c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a02fa21cf4c7dba8caf902cce6bde28c0">MakePeriodicUniformKnotVector</a> (int dir, double delta=1.0)</td></tr>
<tr class="separator:a02fa21cf4c7dba8caf902cce6bde28c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a392ceb785d90a077ab09c914694542b0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a392ceb785d90a077ab09c914694542b0">MakeRational</a> ()</td></tr>
<tr class="separator:a392ceb785d90a077ab09c914694542b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15f3caadc8f0d009599a6be71e1a106b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a15f3caadc8f0d009599a6be71e1a106b">Offset</a> (double offset_distance, double tolerance, double *max_deviation=nullptr) const</td></tr>
<tr class="separator:a15f3caadc8f0d009599a6be71e1a106b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a971cf852f14319d74bf127deafccaa17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a971cf852f14319d74bf127deafccaa17">operator=</a> (const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;)</td></tr>
<tr class="separator:a971cf852f14319d74bf127deafccaa17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bc4bf66c137fb22d86e6f709d751eb7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a5bc4bf66c137fb22d86e6f709d751eb7">operator=</a> (const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;bezier_surface)</td></tr>
<tr class="separator:a5bc4bf66c137fb22d86e6f709d751eb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e39b054e274b4315d3cf4c5fb84e5f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a1e39b054e274b4315d3cf4c5fb84e5f9">Order</a> (int) const</td></tr>
<tr class="separator:a1e39b054e274b4315d3cf4c5fb84e5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38284671127a33e47b114e398cdd4cef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a38284671127a33e47b114e398cdd4cef">Read</a> (<a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;) override</td></tr>
<tr class="separator:a38284671127a33e47b114e398cdd4cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6db9c41b8ea214a41fd8eeefde26ff9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#af6db9c41b8ea214a41fd8eeefde26ff9">ReserveCVCapacity</a> (int cv_array_capacity)</td></tr>
<tr class="separator:af6db9c41b8ea214a41fd8eeefde26ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b36cd526174887c9ef6ae993a9538df"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2b36cd526174887c9ef6ae993a9538df">ReserveKnotCapacity</a> (int dir, int knot_array_capacity)</td></tr>
<tr class="memdesc:a2b36cd526174887c9ef6ae993a9538df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tools for managing CV and knot memory. <a href="#a2b36cd526174887c9ef6ae993a9538df">More...</a><br /></td></tr>
<tr class="separator:a2b36cd526174887c9ef6ae993a9538df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4d311b70c74d96d5a97997caadd906b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ab4d311b70c74d96d5a97997caadd906b">Reverse</a> (int) override</td></tr>
<tr class="separator:ab4d311b70c74d96d5a97997caadd906b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef843df42000aa458a43af8aa28fe932"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aef843df42000aa458a43af8aa28fe932">SetClampedGrevilleKnotVector</a> (int dir, int g_stride, const double *g)</td></tr>
<tr class="separator:aef843df42000aa458a43af8aa28fe932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3f7544f2005d2f9a56801843057e33b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ac3f7544f2005d2f9a56801843057e33b">SetCV</a> (int i, int j, ON::point_style, const double *cv)</td></tr>
<tr class="separator:ac3f7544f2005d2f9a56801843057e33b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc598bb20933551f957228090231dd45"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#acc598bb20933551f957228090231dd45">SetCV</a> (int i, int j, const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;cv)</td></tr>
<tr class="separator:acc598bb20933551f957228090231dd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fab7aefc0db4414783e704169fb88ff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a5fab7aefc0db4414783e704169fb88ff">SetCV</a> (int i, int j, const <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a> &amp;cv)</td></tr>
<tr class="separator:a5fab7aefc0db4414783e704169fb88ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1344218127cfffe0dbcfc8cc97f5d264"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a1344218127cfffe0dbcfc8cc97f5d264">SetCVColumn</a> (int col_index, const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;cv)</td></tr>
<tr class="separator:a1344218127cfffe0dbcfc8cc97f5d264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2206f0c3db72a657636fb7f537449e65"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2206f0c3db72a657636fb7f537449e65">SetCVColumn</a> (int col_index, int v_stride, const double *v)</td></tr>
<tr class="separator:a2206f0c3db72a657636fb7f537449e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224030b32b349653816067c653cca489"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a224030b32b349653816067c653cca489">SetCVRow</a> (int row_index, const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;cv)</td></tr>
<tr class="separator:a224030b32b349653816067c653cca489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaadc532f8c141514e56ca3e08f965dfd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aaadc532f8c141514e56ca3e08f965dfd">SetCVRow</a> (int row_index, int v_stride, const double *v)</td></tr>
<tr class="separator:aaadc532f8c141514e56ca3e08f965dfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0851338729e5aeefa612650ae023da9e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0851338729e5aeefa612650ae023da9e">SetDomain</a> (int dir, double t0, double t1) override</td></tr>
<tr class="memdesc:a0851338729e5aeefa612650ae023da9e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> overrides. <a href="#a0851338729e5aeefa612650ae023da9e">More...</a><br /></td></tr>
<tr class="separator:a0851338729e5aeefa612650ae023da9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0299eeabf02ffa85aa814eaed4b6326c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0299eeabf02ffa85aa814eaed4b6326c">SetKnot</a> (int dir, int knot_index, double knot_value)</td></tr>
<tr class="separator:a0299eeabf02ffa85aa814eaed4b6326c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf958671a37c72fb25fea6ec2d6cbfc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0cf958671a37c72fb25fea6ec2d6cbfc">SetPeriodicGrevilleKnotVector</a> (int dir, int g_stride, const double *g)</td></tr>
<tr class="separator:a0cf958671a37c72fb25fea6ec2d6cbfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa52ddefeb0a32574f2f2b5ac22a5378"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aaa52ddefeb0a32574f2f2b5ac22a5378">SetWeight</a> (int i, int j, double weight)</td></tr>
<tr class="separator:aaa52ddefeb0a32574f2f2b5ac22a5378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15201baa278c14beb628a68eb6685593"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a15201baa278c14beb628a68eb6685593">SizeOf</a> () const override</td></tr>
<tr class="memdesc:a15201baa278c14beb628a68eb6685593"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#a0299df21bfed90d7b5bfb24cdcf5e6c1">ON_Object::SizeOf</a> override <a href="#a15201baa278c14beb628a68eb6685593">More...</a><br /></td></tr>
<tr class="separator:a15201baa278c14beb628a68eb6685593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c8fb14eb3d6584e0fc83588d7573687"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a1c8fb14eb3d6584e0fc83588d7573687">SpanCount</a> (int) const override</td></tr>
<tr class="memdesc:a1c8fb14eb3d6584e0fc83588d7573687"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of smooth spans in curve <a href="#a1c8fb14eb3d6584e0fc83588d7573687">More...</a><br /></td></tr>
<tr class="separator:a1c8fb14eb3d6584e0fc83588d7573687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b854a026aec20be6ca115375963dd6f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0b854a026aec20be6ca115375963dd6f">Split</a> (int dir, double c, <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&amp;west_or_south_side, <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&amp;east_or_north_side) const override</td></tr>
<tr class="separator:a0b854a026aec20be6ca115375963dd6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeff85add369a9f3858707ae26552688"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aaeff85add369a9f3858707ae26552688">SuperfluousKnot</a> (int dir, int end) const</td></tr>
<tr class="separator:aaeff85add369a9f3858707ae26552688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a476d01f18dfeb261bee75831727756e4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a476d01f18dfeb261bee75831727756e4">SwapCoordinates</a> (int, int) override</td></tr>
<tr class="separator:a476d01f18dfeb261bee75831727756e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaadeb20fcf980674f010f3242d9697dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aaadeb20fcf980674f010f3242d9697dc">TensorProduct</a> (const <a class="el" href="../../d3/d6a/class_o_n___nurbs_curve.html">ON_NurbsCurve</a> &amp;, const <a class="el" href="../../d3/d6a/class_o_n___nurbs_curve.html">ON_NurbsCurve</a> &amp;, <a class="el" href="../../d6/d0b/class_o_n___tensor_product.html">ON_TensorProduct</a> &amp;)</td></tr>
<tr class="memdesc:aaadeb20fcf980674f010f3242d9697dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a tensor product nurbs surface with srf(s,t) = T(A(s),B(t));. <a href="#aaadeb20fcf980674f010f3242d9697dc">More...</a><br /></td></tr>
<tr class="separator:aaadeb20fcf980674f010f3242d9697dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f9ad68b7da808c24e6a52e5aa82009d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9f9ad68b7da808c24e6a52e5aa82009d">Transform</a> (const <a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> &amp;) override</td></tr>
<tr class="separator:a9f9ad68b7da808c24e6a52e5aa82009d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4dec1e5c3a027fa2eb348f8380ede45"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aa4dec1e5c3a027fa2eb348f8380ede45">Transpose</a> () override</td></tr>
<tr class="memdesc:aa4dec1e5c3a027fa2eb348f8380ede45"><td class="mdescLeft">&#160;</td><td class="mdescRight">transpose surface parameterization (swap "s" and "t") <a href="#aa4dec1e5c3a027fa2eb348f8380ede45">More...</a><br /></td></tr>
<tr class="separator:aa4dec1e5c3a027fa2eb348f8380ede45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cd3c5ab731342531cc1b872b40420b1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a7cd3c5ab731342531cc1b872b40420b1">Trim</a> (int dir, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> &amp;domain) override</td></tr>
<tr class="separator:a7cd3c5ab731342531cc1b872b40420b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a813b7e85c052fc11a2b8aaa9a519bdc9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a813b7e85c052fc11a2b8aaa9a519bdc9">Weight</a> (int i, int j) const</td></tr>
<tr class="separator:a813b7e85c052fc11a2b8aaa9a519bdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33cdca32f2bb2e41d795e2a7d38a4b26"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a33cdca32f2bb2e41d795e2a7d38a4b26">Write</a> (<a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;) const override</td></tr>
<tr class="separator:a33cdca32f2bb2e41d795e2a7d38a4b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68dad07282fafb8221a2c7d27628efcb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a68dad07282fafb8221a2c7d27628efcb">ZeroCVs</a> ()</td></tr>
<tr class="memdesc:a68dad07282fafb8221a2c7d27628efcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">zeros all CVs (any weights set to 1); <a href="#a68dad07282fafb8221a2c7d27628efcb">More...</a><br /></td></tr>
<tr class="separator:a68dad07282fafb8221a2c7d27628efcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_o_n___surface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_n___surface')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a></td></tr>
<tr class="memitem:a43d9b7df349b3850f0d6defc75d1686d inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a43d9b7df349b3850f0d6defc75d1686d">ON_Surface</a> ()</td></tr>
<tr class="separator:a43d9b7df349b3850f0d6defc75d1686d inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63bad41bb1e60bd9267c573c5d1a22fd inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a63bad41bb1e60bd9267c573c5d1a22fd">ON_Surface</a> (const <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> &amp;)</td></tr>
<tr class="separator:a63bad41bb1e60bd9267c573c5d1a22fd inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6fd501a22dc6afe251ad3b0488d305 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a2f6fd501a22dc6afe251ad3b0488d305">~ON_Surface</a> ()</td></tr>
<tr class="separator:a2f6fd501a22dc6afe251ad3b0488d305 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afefc2174838a78fe1cbab26ca8e250c9 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d96/class_o_n___brep.html">ON_Brep</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#afefc2174838a78fe1cbab26ca8e250c9">BrepForm</a> (<a class="el" href="../../d9/d96/class_o_n___brep.html">ON_Brep</a> *brep=nullptr) const override</td></tr>
<tr class="separator:afefc2174838a78fe1cbab26ca8e250c9 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfce039c891be4737a8710462b3336dc inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#acfce039c891be4737a8710462b3336dc">DestroyRuntimeCache</a> (bool bDelete=true) override</td></tr>
<tr class="memdesc:acfce039c891be4737a8710462b3336dc inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#af8435c33ab53af41c22dac75e8917569">ON_Object::DestroyRuntimeCache</a> override <a href="../../da/da0/class_o_n___surface.html#acfce039c891be4737a8710462b3336dc">More...</a><br /></td></tr>
<tr class="separator:acfce039c891be4737a8710462b3336dc inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeef03fce485d2b2944b3843b657d6bc1 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#aeef03fce485d2b2944b3843b657d6bc1">DestroySurfaceTree</a> ()</td></tr>
<tr class="separator:aeef03fce485d2b2944b3843b657d6bc1 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedab1803231d9ff212afa3f360826dfc inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#aedab1803231d9ff212afa3f360826dfc">DuplicateSurface</a> () const</td></tr>
<tr class="separator:aedab1803231d9ff212afa3f360826dfc inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21b173d3df2c468d9789996cd5f63161 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a21b173d3df2c468d9789996cd5f63161">Ev1Der</a> (double u, double v, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;point, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;du, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;dv, int quadrant=0, int *hint=0) const</td></tr>
<tr class="separator:a21b173d3df2c468d9789996cd5f63161 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899f803ad53b82aafd8eb0f4451a755f inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a899f803ad53b82aafd8eb0f4451a755f">Ev2Der</a> (double u, double v, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;point, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;du, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;dv, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;duu, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;duv, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;dvv, int quadrant=0, int *hint=0) const</td></tr>
<tr class="separator:a899f803ad53b82aafd8eb0f4451a755f inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4de63800d72940f1bc9044c87b522f4c inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a4de63800d72940f1bc9044c87b522f4c">EvaluatePoint</a> (const class <a class="el" href="../../d3/d80/class_o_n___obj_ref.html">ON_ObjRef</a> &amp;objref, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;P) const override</td></tr>
<tr class="memdesc:a4de63800d72940f1bc9044c87b522f4c inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> override <a href="../../da/da0/class_o_n___surface.html#a4de63800d72940f1bc9044c87b522f4c">More...</a><br /></td></tr>
<tr class="separator:a4de63800d72940f1bc9044c87b522f4c inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6a7e891aabbb7b5a170dae9bbb3dc45 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#af6a7e891aabbb7b5a170dae9bbb3dc45">EvNormal</a> (double u, double v, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;point, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;normal, int quadrant=0, int *hint=0) const</td></tr>
<tr class="separator:af6a7e891aabbb7b5a170dae9bbb3dc45 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa85e2a07c4992d2ab09080c373a04554 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#aa85e2a07c4992d2ab09080c373a04554">EvNormal</a> (double u, double v, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;normal, int quadrant=0, int *hint=0) const</td></tr>
<tr class="separator:aa85e2a07c4992d2ab09080c373a04554 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a164690f0923e8d1916e094f5f6632356 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a164690f0923e8d1916e094f5f6632356">EvNormal</a> (double u, double v, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;point, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;du, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;dv, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;normal, int=0, int *=0) const</td></tr>
<tr class="separator:a164690f0923e8d1916e094f5f6632356 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3c9d36b5eb1b0b648cdef2c8f268442 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#ad3c9d36b5eb1b0b648cdef2c8f268442">EvPoint</a> (double u, double v, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;point, int quadrant=0, int *hint=0) const</td></tr>
<tr class="separator:ad3c9d36b5eb1b0b648cdef2c8f268442 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35005f32788751b04dd6a852d7c83185 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a35005f32788751b04dd6a852d7c83185">FrameAt</a> (double u, double v, <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &amp;frame) const</td></tr>
<tr class="separator:a35005f32788751b04dd6a852d7c83185 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc73a9fa774af09bda8828c4bc94b158 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#adc73a9fa774af09bda8828c4bc94b158">GetDomain</a> (int dir, double *t0, double *t1) const</td></tr>
<tr class="memdesc:adc73a9fa774af09bda8828c4bc94b158 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">surface interface <a href="../../da/da0/class_o_n___surface.html#adc73a9fa774af09bda8828c4bc94b158">More...</a><br /></td></tr>
<tr class="separator:adc73a9fa774af09bda8828c4bc94b158 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe2d9cf149007d0eb444525254a2eacc inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#abe2d9cf149007d0eb444525254a2eacc">GetNurbFormParameterFromSurfaceParameter</a> (double surface_s, double surface_t, double *nurbs_s, double *nurbs_t) const</td></tr>
<tr class="separator:abe2d9cf149007d0eb444525254a2eacc inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a9af3ac5390e3f7fdd037caab0bba3 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#ac6a9af3ac5390e3f7fdd037caab0bba3">GetSpanVectorIndex</a> (int dir, double t, int side, int *span_vector_index, <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *span_interval) const</td></tr>
<tr class="separator:ac6a9af3ac5390e3f7fdd037caab0bba3 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafce544c2cced9832d8210dd78fc4878 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#aafce544c2cced9832d8210dd78fc4878">GetSurfaceParameterFromNurbFormParameter</a> (double nurbs_s, double nurbs_t, double *surface_s, double *surface_t) const</td></tr>
<tr class="separator:aafce544c2cced9832d8210dd78fc4878 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4fd9454c44389114b7e5f8b5348a449 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#ac4fd9454c44389114b7e5f8b5348a449">HasBrepForm</a> () const override</td></tr>
<tr class="separator:ac4fd9454c44389114b7e5f8b5348a449 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aace2e16046b66d9f85150616a30fb8df inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#aace2e16046b66d9f85150616a30fb8df">IsAtSeam</a> (double s, double t) const</td></tr>
<tr class="separator:aace2e16046b66d9f85150616a30fb8df inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cf580f73c666fdf8898e88f1f5842d1 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a7cf580f73c666fdf8898e88f1f5842d1">IsAtSingularity</a> (double s, double t, bool bExact=true) const</td></tr>
<tr class="separator:a7cf580f73c666fdf8898e88f1f5842d1 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc4fa6cff9ae3617a3d64dbbb34a0e50 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#abc4fa6cff9ae3617a3d64dbbb34a0e50">IsCone</a> (<a class="el" href="../../d0/d51/class_o_n___cone.html">ON_Cone</a> *cone=nullptr, double tolerance=ON_ZERO_TOLERANCE) const</td></tr>
<tr class="separator:abc4fa6cff9ae3617a3d64dbbb34a0e50 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa2b7070ae8c79bf6a0e85b4f8839286 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#afa2b7070ae8c79bf6a0e85b4f8839286">IsCylinder</a> (<a class="el" href="../../d7/de6/class_o_n___cylinder.html">ON_Cylinder</a> *cylinder=nullptr, double tolerance=ON_ZERO_TOLERANCE) const</td></tr>
<tr class="separator:afa2b7070ae8c79bf6a0e85b4f8839286 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a130a84dc24cd70540a3ec24a72310847 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087">ISO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a130a84dc24cd70540a3ec24a72310847">IsIsoparametric</a> (const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;curve, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *curve_domain=nullptr) const</td></tr>
<tr class="separator:a130a84dc24cd70540a3ec24a72310847 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87d67a07468c45f62b31c6bc654e4faf inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087">ISO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a87d67a07468c45f62b31c6bc654e4faf">IsIsoparametric</a> (const <a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;bbox) const</td></tr>
<tr class="separator:a87d67a07468c45f62b31c6bc654e4faf inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2b4654352b6c36de48c1c9d2f597ecf inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#ab2b4654352b6c36de48c1c9d2f597ecf">IsSolid</a> () const</td></tr>
<tr class="separator:ab2b4654352b6c36de48c1c9d2f597ecf inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef4fd9b48a12f3401f98796177528d5 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a0ef4fd9b48a12f3401f98796177528d5">IsSphere</a> (<a class="el" href="../../d7/dd8/class_o_n___sphere.html">ON_Sphere</a> *sphere=nullptr, double tolerance=ON_ZERO_TOLERANCE) const</td></tr>
<tr class="separator:a0ef4fd9b48a12f3401f98796177528d5 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25e486e43f7b3059ba65daf12a68be87 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a25e486e43f7b3059ba65daf12a68be87">IsTorus</a> (<a class="el" href="../../d4/d44/class_o_n___torus.html">ON_Torus</a> *torus=nullptr, double tolerance=ON_ZERO_TOLERANCE) const</td></tr>
<tr class="separator:a25e486e43f7b3059ba65daf12a68be87 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bf5f5d9c3ed9724b699f0d609ad4db inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a51bf5f5d9c3ed9724b699f0d609ad4db">NormalAt</a> (double, double) const</td></tr>
<tr class="separator:a51bf5f5d9c3ed9724b699f0d609ad4db inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c25021d3304fea40d3cfe9b4fb1a58e inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a9c25021d3304fea40d3cfe9b4fb1a58e">NurbsSurface</a> (<a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *pNurbsSurface=nullptr, double tolerance=0.0, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *s_subdomain=nullptr, const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *t_subdomain=nullptr) const</td></tr>
<tr class="separator:a9c25021d3304fea40d3cfe9b4fb1a58e inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd958c4af4819c1a4f1193c211d7b61 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">ON::object_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a2bd958c4af4819c1a4f1193c211d7b61">ObjectType</a> () const override</td></tr>
<tr class="memdesc:a2bd958c4af4819c1a4f1193c211d7b61 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">override <a class="el" href="../../d9/d7b/class_o_n___object.html#afa19aee4a411a8fda53aff00bd02d86e">ON_Object::ObjectType()</a> - returns ON::surface_object <a href="../../da/da0/class_o_n___surface.html#a2bd958c4af4819c1a4f1193c211d7b61">More...</a><br /></td></tr>
<tr class="separator:a2bd958c4af4819c1a4f1193c211d7b61 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a762f6ef1b3f3ca34753be6dce8afdc2d inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a762f6ef1b3f3ca34753be6dce8afdc2d">operator=</a> (const <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> &amp;)</td></tr>
<tr class="separator:a762f6ef1b3f3ca34753be6dce8afdc2d inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a540c9be4e61afd522ced8ee37cb0a47f inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a540c9be4e61afd522ced8ee37cb0a47f">PointAt</a> (double, double) const</td></tr>
<tr class="memdesc:a540c9be4e61afd522ced8ee37cb0a47f inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">simple evaluation interface - no error handling <a href="../../da/da0/class_o_n___surface.html#a540c9be4e61afd522ced8ee37cb0a47f">More...</a><br /></td></tr>
<tr class="separator:a540c9be4e61afd522ced8ee37cb0a47f inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a809b19c6594c924289e15c25f2b37573 inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a809b19c6594c924289e15c25f2b37573">SetDomain</a> (int dir, <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> domain)</td></tr>
<tr class="separator:a809b19c6594c924289e15c25f2b37573 inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f753f161c711fb529aa98649757beee inherit pub_methods_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a2f753f161c711fb529aa98649757beee">SizeOf</a> () const override</td></tr>
<tr class="memdesc:a2f753f161c711fb529aa98649757beee inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#a0299df21bfed90d7b5bfb24cdcf5e6c1">ON_Object::SizeOf</a> override <a href="../../da/da0/class_o_n___surface.html#a2f753f161c711fb529aa98649757beee">More...</a><br /></td></tr>
<tr class="separator:a2f753f161c711fb529aa98649757beee inherit pub_methods_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_o_n___geometry"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_n___geometry')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a></td></tr>
<tr class="memitem:a65226d33b1c8c1e8289e37073566c953 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a65226d33b1c8c1e8289e37073566c953">ON_Geometry</a> ()=default</td></tr>
<tr class="separator:a65226d33b1c8c1e8289e37073566c953 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71fbefc2a5f24da5f5fb4061d6849f17 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a71fbefc2a5f24da5f5fb4061d6849f17">ON_Geometry</a> (const <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> &amp;)=default</td></tr>
<tr class="separator:a71fbefc2a5f24da5f5fb4061d6849f17 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f2ca447610c622f3530944c764a3a67 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a4f2ca447610c622f3530944c764a3a67">~ON_Geometry</a> ()=default</td></tr>
<tr class="separator:a4f2ca447610c622f3530944c764a3a67 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1acdd7f0c350da696b402a9ac5edce0 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#ab1acdd7f0c350da696b402a9ac5edce0">BoundingBox</a> () const</td></tr>
<tr class="separator:ab1acdd7f0c350da696b402a9ac5edce0 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8dfbd8534986bbd327a6ad812e374be inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#af8dfbd8534986bbd327a6ad812e374be">ClearBoundingBox</a> ()</td></tr>
<tr class="separator:af8dfbd8534986bbd327a6ad812e374be inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20e5d1aeada9545127329a8699c702b9 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">virtual ON_COMPONENT_INDEX&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a20e5d1aeada9545127329a8699c702b9">ComponentIndex</a> () const</td></tr>
<tr class="separator:a20e5d1aeada9545127329a8699c702b9 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7259b0a7e7c663e55345788411352075 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a7259b0a7e7c663e55345788411352075">GetBoundingBox</a> (<a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;bbox, bool bGrowBox=false) const</td></tr>
<tr class="separator:a7259b0a7e7c663e55345788411352075 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac123c564ea7a43c4406ac78954cf5266 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#ac123c564ea7a43c4406ac78954cf5266">GetBoundingBox</a> (<a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;bbox_min, <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;bbox_max, bool bGrowBox=false) const</td></tr>
<tr class="separator:ac123c564ea7a43c4406ac78954cf5266 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab59968e400d15d016517b7b4f2e32ea4 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#ab59968e400d15d016517b7b4f2e32ea4">GetTightBoundingBox</a> (class <a class="el" href="../../d1/d17/class_o_n___bounding_box.html">ON_BoundingBox</a> &amp;tight_bbox, bool bGrowBox=false, const class <a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> *xform=nullptr) const</td></tr>
<tr class="separator:ab59968e400d15d016517b7b4f2e32ea4 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a071e7617820ea38c40f4b3966e7daee0 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a071e7617820ea38c40f4b3966e7daee0">operator=</a> (const <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> &amp;)=default</td></tr>
<tr class="separator:a071e7617820ea38c40f4b3966e7daee0 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c8306ab6d43886453a056160429bc0a inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a3c8306ab6d43886453a056160429bc0a">Rotate</a> (double sin_angle, double cos_angle, const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;rotation_axis, const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;rotation_center)</td></tr>
<tr class="separator:a3c8306ab6d43886453a056160429bc0a inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af49629d8d427ee579d9b28c1e25818e0 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#af49629d8d427ee579d9b28c1e25818e0">Rotate</a> (double rotation_angle, const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;rotation_axis, const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;rotation_center)</td></tr>
<tr class="separator:af49629d8d427ee579d9b28c1e25818e0 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b847d6dcda412468ab59f06328b2619 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a1b847d6dcda412468ab59f06328b2619">Scale</a> (double scale_factor)</td></tr>
<tr class="separator:a1b847d6dcda412468ab59f06328b2619 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b47e669fde50b5223a8017863598e89 inherit pub_methods_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a3b47e669fde50b5223a8017863598e89">Translate</a> (const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &amp;translation_vector)</td></tr>
<tr class="separator:a3b47e669fde50b5223a8017863598e89 inherit pub_methods_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_o_n___object"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_n___object')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a></td></tr>
<tr class="memitem:af580c6199f4469c49a4e09a117626c10 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#af580c6199f4469c49a4e09a117626c10">ON_Object</a> () ON_NOEXCEPT</td></tr>
<tr class="separator:af580c6199f4469c49a4e09a117626c10 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274166b34d06fc07a85997fd01b2dab1 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a274166b34d06fc07a85997fd01b2dab1">ON_Object</a> (const <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;)</td></tr>
<tr class="separator:a274166b34d06fc07a85997fd01b2dab1 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad940aab7d51005c8732d76d1b188e332 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ad940aab7d51005c8732d76d1b188e332">~ON_Object</a> ()</td></tr>
<tr class="separator:ad940aab7d51005c8732d76d1b188e332 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a1cfab63437a2d03cc50fdc6734f2a5 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../d1/df0/class_o_n___aggregate_component_status.html">ON_AggregateComponentStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a8a1cfab63437a2d03cc50fdc6734f2a5">AggregateComponentStatus</a> () const</td></tr>
<tr class="separator:a8a1cfab63437a2d03cc50fdc6734f2a5 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5432b341051664c185b10712a6e5b79 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ad5432b341051664c185b10712a6e5b79">AttachUserData</a> (class <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> *pUserData)</td></tr>
<tr class="separator:ad5432b341051664c185b10712a6e5b79 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27893ff72ca7abbe985f8b5f4ccd900e inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a27893ff72ca7abbe985f8b5f4ccd900e">ClearAllComponentStates</a> () const</td></tr>
<tr class="separator:a27893ff72ca7abbe985f8b5f4ccd900e inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af75ebe418edff4a11985f8fca7d83b inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a1af75ebe418edff4a11985f8fca7d83b">ClearComponentStates</a> (<a class="el" href="../../d9/d12/class_o_n___component_status.html">ON_ComponentStatus</a> states_to_clear) const</td></tr>
<tr class="separator:a1af75ebe418edff4a11985f8fca7d83b inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeadf76a46f3f1a661bbf41e1b754fe89 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#aeadf76a46f3f1a661bbf41e1b754fe89">ClearComponentStates</a> (ON_COMPONENT_INDEX component_index, <a class="el" href="../../d9/d12/class_o_n___component_status.html">ON_ComponentStatus</a> states_to_clear) const</td></tr>
<tr class="separator:aeadf76a46f3f1a661bbf41e1b754fe89 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad044157e5c1efde9fce1c6ccf6e81ff3 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ad044157e5c1efde9fce1c6ccf6e81ff3">CopyUserData</a> (const <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;source_object, <a class="el" href="../../d8/db4/struct_o_n___u_u_i_d__struct.html">ON_UUID</a> source_userdata_item_id, <a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956c">ON_Object::UserDataConflictResolution</a> userdata_conflict_resolution)</td></tr>
<tr class="separator:ad044157e5c1efde9fce1c6ccf6e81ff3 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58958333257eba5575a6a1b09c366c1b inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a58958333257eba5575a6a1b09c366c1b">CopyUserData</a> (const <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;source_object)</td></tr>
<tr class="separator:a58958333257eba5575a6a1b09c366c1b inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa67be7d8cc76ec82ae22a30093ecf98f inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#aa67be7d8cc76ec82ae22a30093ecf98f">DeleteComponents</a> (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)</td></tr>
<tr class="separator:aa67be7d8cc76ec82ae22a30093ecf98f inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dbb0eff3b2287152b40991b3afca9ee inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a1dbb0eff3b2287152b40991b3afca9ee">DetachUserData</a> (class <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> *pUserData)</td></tr>
<tr class="separator:a1dbb0eff3b2287152b40991b3afca9ee inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad265ca0da2d751edaa9d2b5ab2540c6a inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ad265ca0da2d751edaa9d2b5ab2540c6a">EmergencyDestroy</a> ()</td></tr>
<tr class="separator:ad265ca0da2d751edaa9d2b5ab2540c6a inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb43bb324c44740c4bc2932e2f95c835 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#adb43bb324c44740c4bc2932e2f95c835">FirstUserData</a> () const</td></tr>
<tr class="separator:adb43bb324c44740c4bc2932e2f95c835 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a691de6470e814973858aa5c51eaffa77 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a691de6470e814973858aa5c51eaffa77">GetComponentsWithSetStates</a> (<a class="el" href="../../d9/d12/class_o_n___component_status.html">ON_ComponentStatus</a> states_filter, bool bAllEqualStates, <a class="el" href="../../dc/dfe/class_o_n___simple_array.html">ON_SimpleArray</a>&lt; ON_COMPONENT_INDEX &gt; &amp;components) const</td></tr>
<tr class="separator:a691de6470e814973858aa5c51eaffa77 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f8d609e22008680581c6ca72ac47df inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a29f8d609e22008680581c6ca72ac47df">GetUserData</a> (const <a class="el" href="../../d8/db4/struct_o_n___u_u_i_d__struct.html">ON_UUID</a> &amp;userdata_uuid) const</td></tr>
<tr class="separator:a29f8d609e22008680581c6ca72ac47df inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab40b5e89b4766299e415593b31a3849c inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ab40b5e89b4766299e415593b31a3849c">GetUserString</a> (const wchar_t *key, <a class="el" href="../../d1/d11/class_o_n__w_string.html">ON_wString</a> &amp;string_value) const</td></tr>
<tr class="separator:ab40b5e89b4766299e415593b31a3849c inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac285fba1506b2b9b821e3655582939c4 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ac285fba1506b2b9b821e3655582939c4">GetUserStringKeys</a> (<a class="el" href="../../dd/d40/class_o_n___class_array.html">ON_ClassArray</a>&lt; <a class="el" href="../../d1/d11/class_o_n__w_string.html">ON_wString</a> &gt; &amp;user_string_keys) const</td></tr>
<tr class="separator:ac285fba1506b2b9b821e3655582939c4 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a004ab49490f69fcdc7681919c3837a33 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a004ab49490f69fcdc7681919c3837a33">GetUserStrings</a> (<a class="el" href="../../dd/d40/class_o_n___class_array.html">ON_ClassArray</a>&lt; <a class="el" href="../../d0/d82/class_o_n___user_string.html">ON_UserString</a> &gt; &amp;user_strings) const</td></tr>
<tr class="separator:a004ab49490f69fcdc7681919c3837a33 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5367058a90545e81cd79b78103175d inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#afe5367058a90545e81cd79b78103175d">IsKindOf</a> (const <a class="el" href="../../d3/d3c/class_o_n___class_id.html">ON_ClassId</a> *pClassId) const</td></tr>
<tr class="separator:afe5367058a90545e81cd79b78103175d inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a609192fbafecbe4be3136d8cb4dce882 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a609192fbafecbe4be3136d8cb4dce882">MarkAggregateComponentStatusAsNotCurrent</a> () const</td></tr>
<tr class="separator:a609192fbafecbe4be3136d8cb4dce882 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0674ccb79b6333e4b3c8e95ee10dd73 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ae0674ccb79b6333e4b3c8e95ee10dd73">MemoryRelocate</a> ()</td></tr>
<tr class="separator:ae0674ccb79b6333e4b3c8e95ee10dd73 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21c508d3b53458e252adbcd29e62ed09 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../d8/db4/struct_o_n___u_u_i_d__struct.html">ON_UUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a21c508d3b53458e252adbcd29e62ed09">ModelObjectId</a> () const</td></tr>
<tr class="separator:a21c508d3b53458e252adbcd29e62ed09 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78b4ecb2eb36641e1ee6b4fc6129606e inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a78b4ecb2eb36641e1ee6b4fc6129606e">MoveUserData</a> (<a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;source_object, <a class="el" href="../../d8/db4/struct_o_n___u_u_i_d__struct.html">ON_UUID</a> source_userdata_item_id, <a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956c">ON_Object::UserDataConflictResolution</a> userdata_conflict_resolution, bool bDeleteAllSourceItems)</td></tr>
<tr class="separator:a78b4ecb2eb36641e1ee6b4fc6129606e inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54a891ae2cb2a25008a7a39cb19dfcea inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a54a891ae2cb2a25008a7a39cb19dfcea">MoveUserData</a> (<a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;source_object)</td></tr>
<tr class="separator:a54a891ae2cb2a25008a7a39cb19dfcea inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba6166c9aecef42639e684a2a3fda223 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#aba6166c9aecef42639e684a2a3fda223">operator=</a> (const <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> &amp;)</td></tr>
<tr class="separator:aba6166c9aecef42639e684a2a3fda223 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88b61cafc0024ecb7a4bd22da2718680 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a88b61cafc0024ecb7a4bd22da2718680">PurgeUserData</a> ()</td></tr>
<tr class="separator:a88b61cafc0024ecb7a4bd22da2718680 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab728c0576fd5913bc1575b74997bddb5 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ab728c0576fd5913bc1575b74997bddb5">SetComponentStates</a> (ON_COMPONENT_INDEX component_index, <a class="el" href="../../d9/d12/class_o_n___component_status.html">ON_ComponentStatus</a> states_to_set) const</td></tr>
<tr class="separator:ab728c0576fd5913bc1575b74997bddb5 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a589f1fdc28f6259d1bd22bdedc9c4c76 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a589f1fdc28f6259d1bd22bdedc9c4c76">SetComponentStatus</a> (ON_COMPONENT_INDEX component_index, <a class="el" href="../../d9/d12/class_o_n___component_status.html">ON_ComponentStatus</a> status_to_copy) const</td></tr>
<tr class="separator:a589f1fdc28f6259d1bd22bdedc9c4c76 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a074dc9e9b919853919564793c37f5143 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a074dc9e9b919853919564793c37f5143">SetUserString</a> (const wchar_t *key, const wchar_t *string_value)</td></tr>
<tr class="separator:a074dc9e9b919853919564793c37f5143 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7234af898c307a2c2f7931db7e627592 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a7234af898c307a2c2f7931db7e627592">SetUserStrings</a> (int count, const <a class="el" href="../../d0/d82/class_o_n___user_string.html">ON_UserString</a> *user_strings, bool bReplace)</td></tr>
<tr class="separator:a7234af898c307a2c2f7931db7e627592 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a881bd2f0d8515adba1c42c578bcb7052 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a881bd2f0d8515adba1c42c578bcb7052">TransformUserData</a> (const class <a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> &amp;xform)</td></tr>
<tr class="separator:a881bd2f0d8515adba1c42c578bcb7052 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82188bbf97bbd149ac6fcb7cd8e989d1 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a82188bbf97bbd149ac6fcb7cd8e989d1">UpdateReferencedComponents</a> (const class <a class="el" href="../../d8/d72/class_o_n___component_manifest.html">ON_ComponentManifest</a> &amp;source_manifest, const class <a class="el" href="../../d8/d72/class_o_n___component_manifest.html">ON_ComponentManifest</a> &amp;destination_manifest, const class <a class="el" href="../../d9/df6/class_o_n___manifest_map.html">ON_ManifestMap</a> &amp;manifest_map)</td></tr>
<tr class="separator:a82188bbf97bbd149ac6fcb7cd8e989d1 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab648403ebf4592831809710f378e9ac2 inherit pub_methods_class_o_n___object"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#ab648403ebf4592831809710f378e9ac2">UserStringCount</a> () const</td></tr>
<tr class="separator:ab648403ebf4592831809710f378e9ac2 inherit pub_methods_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:ae7c56b7fdf47eb66fb68ac6af116118d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ae7c56b7fdf47eb66fb68ac6af116118d">New</a> ()</td></tr>
<tr class="separator:ae7c56b7fdf47eb66fb68ac6af116118d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0265f58fd87855241d2bb8f2b51b816"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ac0265f58fd87855241d2bb8f2b51b816">New</a> (const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;nurbs_surface)</td></tr>
<tr class="separator:ac0265f58fd87855241d2bb8f2b51b816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d1ba213cb5ac7c4221b6c8ea0a4a17f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a2d1ba213cb5ac7c4221b6c8ea0a4a17f">New</a> (const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;bezier_surface)</td></tr>
<tr class="separator:a2d1ba213cb5ac7c4221b6c8ea0a4a17f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6039855b826d62f93663444560d24c3f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a6039855b826d62f93663444560d24c3f">New</a> (int dimension, bool bIsRational, int order0, int order1, int cv_count0, int cv_count1)</td></tr>
<tr class="separator:a6039855b826d62f93663444560d24c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a3f61e32dfe140a0b8b0d66818680a588"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3f61e32dfe140a0b8b0d66818680a588">m_cv</a></td></tr>
<tr class="separator:a3f61e32dfe140a0b8b0d66818680a588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ff7bb039957ea793e5beb16c1b91ac1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3ff7bb039957ea793e5beb16c1b91ac1">m_cv_capacity</a></td></tr>
<tr class="separator:a3ff7bb039957ea793e5beb16c1b91ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2dba852eb1992aff1d0d2c16f564637"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ae2dba852eb1992aff1d0d2c16f564637">m_cv_count</a> [2]</td></tr>
<tr class="memdesc:ae2dba852eb1992aff1d0d2c16f564637"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of control vertices ( &gt;= order ) <a href="#ae2dba852eb1992aff1d0d2c16f564637">More...</a><br /></td></tr>
<tr class="separator:ae2dba852eb1992aff1d0d2c16f564637"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c43a3b0127f656d3e33e2773f8add9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a97c43a3b0127f656d3e33e2773f8add9">m_cv_stride</a> [2]</td></tr>
<tr class="memdesc:a97c43a3b0127f656d3e33e2773f8add9"><td class="mdescLeft">&#160;</td><td class="mdescRight">control vertex net memory <a href="#a97c43a3b0127f656d3e33e2773f8add9">More...</a><br /></td></tr>
<tr class="separator:a97c43a3b0127f656d3e33e2773f8add9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376717f188808c291a3d4ead4e7f4dbb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a376717f188808c291a3d4ead4e7f4dbb">m_dim</a></td></tr>
<tr class="memdesc:a376717f188808c291a3d4ead4e7f4dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation. <a href="#a376717f188808c291a3d4ead4e7f4dbb">More...</a><br /></td></tr>
<tr class="separator:a376717f188808c291a3d4ead4e7f4dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6f676b9e7e8d6a126a7290e05cb6ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a5f6f676b9e7e8d6a126a7290e05cb6ce">m_is_rat</a></td></tr>
<tr class="separator:a5f6f676b9e7e8d6a126a7290e05cb6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40e2cbc5678faa481eeb12593ce7ba46"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a40e2cbc5678faa481eeb12593ce7ba46">m_knot</a> [2]</td></tr>
<tr class="separator:a40e2cbc5678faa481eeb12593ce7ba46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1892611802082537ba4b606ab77c202"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#af1892611802082537ba4b606ab77c202">m_knot_capacity</a> [2]</td></tr>
<tr class="memdesc:af1892611802082537ba4b606ab77c202"><td class="mdescLeft">&#160;</td><td class="mdescRight">knot vector memory <a href="#af1892611802082537ba4b606ab77c202">More...</a><br /></td></tr>
<tr class="separator:af1892611802082537ba4b606ab77c202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a6086d7f17b76dbae376a5bfa226f52"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3a6086d7f17b76dbae376a5bfa226f52">m_order</a> [2]</td></tr>
<tr class="memdesc:a3a6086d7f17b76dbae376a5bfa226f52"><td class="mdescLeft">&#160;</td><td class="mdescRight">order = degree+1 (&gt;=2) <a href="#a3a6086d7f17b76dbae376a5bfa226f52">More...</a><br /></td></tr>
<tr class="separator:a3a6086d7f17b76dbae376a5bfa226f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_class_o_n___surface"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_o_n___surface')"><img src="../../closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a></td></tr>
<tr class="memitem:a7418fb8120619cb5f17bd4283ad37087 inherit pub_types_class_o_n___surface"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087">ISO</a> { <br />
&#160;&#160;<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087adc6364ffaf6af068b073423a7a51194b">not_iso</a> = 0,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087a54778bc0e6e9820d7e785ab7307d83f4">x_iso</a> = 1,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087a524c06e16849a90099440f170fa74b0d">y_iso</a> = 2,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087afa931b2cc684b7f087669c55217acce2">W_iso</a> = 3,
<br />
&#160;&#160;<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087a679d810bb0f81cf47468c197ece3a931">S_iso</a> = 4,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087ab307c0ca4d4e514650445a4cd06c78ac">E_iso</a> = 5,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087afeed892fcad04099c847059c6c7d9a3f">N_iso</a> = 6,
<a class="el" href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087ad32a0c9eac90b8d18c9e214619f5439b">iso_count</a> = 7
<br />
}<tr class="memdesc:a7418fb8120619cb5f17bd4283ad37087"><td class="mdescLeft">&#160;</td><td class="mdescRight">pure virtual class for surface objects <a href="../../da/da0/class_o_n___surface.html#a7418fb8120619cb5f17bd4283ad37087">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a7418fb8120619cb5f17bd4283ad37087 inherit pub_types_class_o_n___surface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_class_o_n___object"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_o_n___object')"><img src="../../closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a></td></tr>
<tr class="memitem:a7f520e987ffa14e71b06493340f9956c inherit pub_types_class_o_n___object"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956c">UserDataConflictResolution</a> : unsigned char { <br />
&#160;&#160;<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956caba9e24ac13ffcde7d2f6b554a33df7cd">UserDataConflictResolution::destination_object</a> = 0,
<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956ca34f1a09f0cf6c7e702b6aad2260c6b0f">UserDataConflictResolution::source_object</a> = 1,
<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956cad741a50b9ec9ac0de6491a83bc5b166f">UserDataConflictResolution::source_copycount_gt</a> = 2,
<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956ca35055504b8fe7e98f97c2b2ea6168ad2">UserDataConflictResolution::source_copycount_ge</a> = 3,
<br />
&#160;&#160;<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956ca6c944380c6bd502741a041a82ad00a5a">UserDataConflictResolution::destination_copycount_gt</a> = 4,
<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956cadb77cee2050a09b500c679688e45a105">UserDataConflictResolution::destination_copycount_ge</a> = 5,
<a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956ca880ec7882afd9386e91140bf4f77e594">UserDataConflictResolution::delete_item</a> = 6
<br />
}</td></tr>
<tr class="separator:a7f520e987ffa14e71b06493340f9956c inherit pub_types_class_o_n___object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_class_o_n___geometry"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_class_o_n___geometry')"><img src="../../closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a></td></tr>
<tr class="memitem:a4d9849b197644c66831f3ed1b8738935 inherit pub_static_attribs_class_o_n___geometry"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/de0/class_o_n___geometry.html#a4d9849b197644c66831f3ed1b8738935">Unset</a></td></tr>
<tr class="separator:a4d9849b197644c66831f3ed1b8738935 inherit pub_static_attribs_class_o_n___geometry"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1302904a1750b73cc19c9d224eb249b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1302904a1750b73cc19c9d224eb249b6">&#9670;&nbsp;</a></span>ON_NurbsSurface() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ON_NurbsSurface::ON_NurbsSurface </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af82a094167f2caf9de988d6d4345480b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af82a094167f2caf9de988d6d4345480b">&#9670;&nbsp;</a></span>ON_NurbsSurface() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ON_NurbsSurface::ON_NurbsSurface </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td>
<td class="paramname"><em>nurbs_surface</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a15cda13e0b442e4972993b5cba76fb3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15cda13e0b442e4972993b5cba76fb3b">&#9670;&nbsp;</a></span>ON_NurbsSurface() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ON_NurbsSurface::ON_NurbsSurface </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;&#160;</td>
<td class="paramname"><em>bezier_surface</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="acd24820d1568ea90b468fc27c3f98891"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd24820d1568ea90b468fc27c3f98891">&#9670;&nbsp;</a></span>ON_NurbsSurface() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ON_NurbsSurface::ON_NurbsSurface </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dimension</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>bIsRational</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dimension</td><td>dimension (&gt;= 1) </td></tr>
<tr><td class="paramname">bIsRational</td><td>true to make a rational NURBS </td></tr>
<tr><td class="paramname">order0</td><td>order0 (&gt;= 2) </td></tr>
<tr><td class="paramname">order1</td><td>order1 (&gt;= 2) </td></tr>
<tr><td class="paramname">cv_count0</td><td>cv count0 (&gt;= order0) </td></tr>
<tr><td class="paramname">cv_count1</td><td>cv count1 (&gt;= order1) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aea5ed93f7a85dbe692bcf4b1b0c57d86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea5ed93f7a85dbe692bcf4b1b0c57d86">&#9670;&nbsp;</a></span>~ON_NurbsSurface()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual ON_NurbsSurface::~ON_NurbsSurface </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a414b4f28b2dcfc8d7b9cbcd9cd694842"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a414b4f28b2dcfc8d7b9cbcd9cd694842">&#9670;&nbsp;</a></span>ChangeDimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ChangeDimension </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>desired_dimension</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desired_dimension</td><td>desired_dimension </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a14220b779665eb0fda3dc3bf92ee2131"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14220b779665eb0fda3dc3bf92ee2131">&#9670;&nbsp;</a></span>ChangeSurfaceSeam()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ChangeSurfaceSeam </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: If the surface is closed in direction dir, then modify it so that the seam is at parameter t in the dir direction. Parameters: dir - [in] must be 0 or 1 t - [in] dir parameter of seam, must have Domain(dir).Includes(t). The resulting surface domain in the dir direction will start at t. Returns: true if successful. </p>
</div>
</div>
<a id="aebd323263cb3affce214be8fd02661fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebd323263cb3affce214be8fd02661fb">&#9670;&nbsp;</a></span>ClampEnd()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ClampEnd </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</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>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">end</td><td>0 = clamp start, 1 = clamp end, 2 = clamp start and end </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a55b5fceffc4dad612d7e412e30d89ec0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55b5fceffc4dad612d7e412e30d89ec0">&#9670;&nbsp;</a></span>CollapseSide()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::CollapseSide </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>side</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a>&#160;</td>
<td class="paramname"><em>point</em> = <code><a class="el" href="../../d2/d35/class_o_n__3d_point.html#aa68906e3e7650b01ce88c527f6088d7d">ON_3dPoint::UnsetPoint</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Collapse the side of a NURBS surface to a single point. Parameters: side - [in] 0 = south west, 1 = south east, 2 = north east, 3 = north west point - [in] point to collapse to. If point is <a class="el" href="../../d2/d35/class_o_n__3d_point.html#aa68906e3e7650b01ce88c527f6088d7d" title="(ON_UNSET_VALUE,ON_UNSET_VALUE,ON_UNSET_VALUE) ">ON_3dPoint::UnsetPoint</a>, the the current location of the start of the side is used. Returns: True if successful. Remarks: If the surface is rational, the weights of the side control points must be set before calling CollapseSide. </p>
</div>
</div>
<a id="a2a315d2260d7064c6407ffc4a5309b8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a315d2260d7064c6407ffc4a5309b8d">&#9670;&nbsp;</a></span>ControlPoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a> ON_NurbsSurface::ControlPoint </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Parameters: i - [in] zero based control point index j - [in] zero based control point index Returns: Control point as an <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a>. Remarks: If i, j, or the nurbs surface is not valid, then <a class="el" href="../../d9/db1/class_o_n__4d_point.html#a83f0c10fc5a0eb0d8929a66c5131e150" title="(ON_DBL_QNAN,ON_DBL_QNAN,ON_DBL_QNAN,ON_DBL_QNAN) ">ON_4dPoint::Nan</a> is returned. If dim &lt; 3, unused coordinates are zero. If dim &gt;= 4, the first three coordinates are returned. If is_rat is false, the weight is 1. </p>
</div>
</div>
<a id="aa149a365981f62a70784b7e8c89fa065"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa149a365981f62a70784b7e8c89fa065">&#9670;&nbsp;</a></span>ControlPolygonLength()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double ON_NurbsSurface::ControlPolygonLength </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Interface. </p>
<p>Description: Get the maximum length of a nurb surface's control polygon rows and/or columns Parameters: dir - [in] 0 to get "u" direction length, 1 to get "v" direction length length - [out] maximum length of a polygon "row" in the specified direction Returns: true if successful. </p>
</div>
</div>
<a id="a0264c6375c25a44dfc5e60b12bfb427d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0264c6375c25a44dfc5e60b12bfb427d">&#9670;&nbsp;</a></span>ConvertSpanToBezier()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ConvertSpanToBezier </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>span_index0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>span_index1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;&#160;</td>
<td class="paramname"><em>bezier_surface</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Convert a NURBS surface bispan into a bezier surface. Parameters: span_index0 - [in] Specifies the "u" span and must satisfy 0 &lt;= span_index0 &lt;= m_cv_count[0]-m_order[0] m_knot[0][span_index0+m_order[0]-2] &lt; m_knot[0][span_index0+m_order[0]-1] span_index1 - [in] Specifies the "v" span and must satisfy 0 &lt;= span_index1 &lt;= m_cv_count[1]-m_order[1] m_knot[1][span_index1+m_order[1]-2] &lt; m_knot[1][span_index1+m_order[1]-1] bezier_surface - [out] bezier surface returned here Returns: true if successful false if input is not valid </p>
</div>
</div>
<a id="a2beda59d1744d15a1d3ebf18b61bb2c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2beda59d1744d15a1d3ebf18b61bb2c0">&#9670;&nbsp;</a></span>Create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Create </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dim</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_rat</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dim</td><td>dimension (&gt;= 1) </td></tr>
<tr><td class="paramname">is_rat</td><td>true to make a rational NURBS </td></tr>
<tr><td class="paramname">order0</td><td>order0 (&gt;= 2) </td></tr>
<tr><td class="paramname">order1</td><td>order1 (&gt;= 2) </td></tr>
<tr><td class="paramname">cv_count0</td><td>cv count0 (&gt;= order0) </td></tr>
<tr><td class="paramname">cv_count1</td><td>cv count1 (&gt;= order1) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aabbd32c811bdec94b045c768c17e0af8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabbd32c811bdec94b045c768c17e0af8">&#9670;&nbsp;</a></span>CreateConeSurface()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::CreateConeSurface </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a>&#160;</td>
<td class="paramname"><em>apex_point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;&#160;</td>
<td class="paramname"><em>curve</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *&#160;</td>
<td class="paramname"><em>curve_domain</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Create a cone surface from a curve to a point. Parameters: apex_point - [in] curve - [in] curve_domain - [in] if not nullptr, then this is a subdomain of curve to use for the ruled surface. Returns: table 0 failure 1 success - parameterization is exact 2 success - parameterization is not exact Remarks: The ruling parameter is the second surface parameter and it is in the interval [0,1]. The true cone surface has parameterization srf(s,t) = (1.0-t)*curve(s) + t*apex_point. The returned NURBS surface has parameterization srf(s,t) = (1.0-t)*nurbs_curve(s) + t*apex_point, where nurbs_curve is the NURBS form of curve. If the parameterization of nurbs_curve does not match the parameterization of curve, then 2 is returned. </p>
</div>
</div>
<a id="a812cbdf97a35fe72fcda47a47a9735ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a812cbdf97a35fe72fcda47a47a9735ef">&#9670;&nbsp;</a></span>CreateRuledSurface()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int ON_NurbsSurface::CreateRuledSurface </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;&#160;</td>
<td class="paramname"><em>curveA</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a> &amp;&#160;</td>
<td class="paramname"><em>curveB</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *&#160;</td>
<td class="paramname"><em>curveA_domain</em> = <code>nullptr</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> *&#160;</td>
<td class="paramname"><em>curveB_domain</em> = <code>nullptr</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Create a ruled surface from two curves. Parameters: curveA - [in] (must have same NURBS form knots as curveB) curveB - [in] (must have same NURBS form knots as curveA) curveA_domain - [in] if not nullptr, then this is a subdomain of curveA to use for the ruled surface. curveB_domain - [in] if not nullptr, then this is a subdomain of curveA to use for the ruled surface. Returns: table 0 failure 1 success - parameterization is exact 2 success - parameterization is not exact Remarks: The ruling parameter is the second surface parameter and it is in the interval [0,1]. The true ruled surface has parameterization srf(s,t) = (1.0-t)*curveA(s) + t*curveB(s). The returned NURBS surface has parameterization srf(s,t) = (1.0-t)*nurbs_curveA(s) + t*nurbs_curveB(s), where nurbs_curveX is the NURBS form of curveX. If the parameterization of nurbs_curveX does not match the parameterization of curveX, then 2 is returned. </p>
</div>
</div>
<a id="a001f37ab72cc20d32efa2765fa01dc69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a001f37ab72cc20d32efa2765fa01dc69">&#9670;&nbsp;</a></span>CV()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double* ON_NurbsSurface::CV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Expert user function to get a pointer to control vertex memory. If you are not an expert user, please use ON_NurbsSurface::GetCV( ON_3dPoint&amp; ) or ON_NurbsSurface::GetCV( ON_4dPoint&amp; ). Parameters: i - [in] (0 &lt;= i &lt; m_cv_count[0]) j - [in] (0 &lt;= j &lt; m_cv_count[1]) Returns: Pointer to control vertex. Remarks: If the NURBS surface is rational, the format of the returned array is a homogeneos rational point with length m_dim+1. If the NURBS surface is not rational, the format of the returned array is a nonrational euclidean point with length m_dim. See Also <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#aeb3ec30dc98a6f67d52806faaf4288ac">ON_NurbsSurface::CVStyle</a> <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9be6614683284205a9012363a55d911a">ON_NurbsSurface::GetCV</a> <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a813b7e85c052fc11a2b8aaa9a519bdc9">ON_NurbsSurface::Weight</a> </p>
</div>
</div>
<a id="a0d3153310f52e219f261d1c2e7fff358"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d3153310f52e219f261d1c2e7fff358">&#9670;&nbsp;</a></span>CVCount() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::CVCount </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa756f17a88cf22dd256ba944bb1acf4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa756f17a88cf22dd256ba944bb1acf4c">&#9670;&nbsp;</a></span>CVCount() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::CVCount </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a47074d2e65726e83a08100f8b93e9584"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47074d2e65726e83a08100f8b93e9584">&#9670;&nbsp;</a></span>CVSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::CVSize </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aeb3ec30dc98a6f67d52806faaf4288ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb3ec30dc98a6f67d52806faaf4288ac">&#9670;&nbsp;</a></span>CVStyle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ON::point_style ON_NurbsSurface::CVStyle </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Returns the style of control vertices in the m_cv array. Returns: table ON::not_rational m_is_rat is false ON::homogeneous_rational m_is_rat is true </p>
</div>
</div>
<a id="ad2444ea0a1da7b92b69671e223a1cac9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2444ea0a1da7b92b69671e223a1cac9">&#9670;&nbsp;</a></span>DataCRC()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON__UINT32 ON_NurbsSurface::DataCRC </td>
<td>(</td>
<td class="paramtype">ON__UINT32&#160;</td>
<td class="paramname"><em>current_remainder</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#af51d5fcec9379ad9b7a56ac4dfc9a8b2">ON_Object::DataCRC</a> override </p>
<p>Reimplemented from <a class="el" href="../../d9/d7b/class_o_n___object.html#af51d5fcec9379ad9b7a56ac4dfc9a8b2">ON_Object</a>.</p>
</div>
</div>
<a id="a69a20920bd92c7b45ef64e2ee9298309"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69a20920bd92c7b45ef64e2ee9298309">&#9670;&nbsp;</a></span>Degree()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::Degree </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#a3c9535e38883dc5a1e2982066b0f0387">ON_Surface</a>.</p>
</div>
</div>
<a id="afb51602a9ecce4f69b78abb78e47ef22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb51602a9ecce4f69b78abb78e47ef22">&#9670;&nbsp;</a></span>Destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_NurbsSurface::Destroy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3f9f8a3730a1aa21cf7172e42e010e68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f9f8a3730a1aa21cf7172e42e010e68">&#9670;&nbsp;</a></span>Dimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::Dimension </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> overrides. </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#a0d66ab16e2fddfd1b3e6cf3d6ebbd364">ON_Geometry</a>.</p>
</div>
</div>
<a id="a77f6702fa6ea8d835ba6edb9a71158f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77f6702fa6ea8d835ba6edb9a71158f9">&#9670;&nbsp;</a></span>Domain()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> ON_NurbsSurface::Domain </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#aa38f6584ca9d96a6be9e04823bc5585a">ON_Surface</a>.</p>
</div>
</div>
<a id="a74d364c467258afb3550ab265a3d8c50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74d364c467258afb3550ab265a3d8c50">&#9670;&nbsp;</a></span>Dump()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ON_NurbsSurface::Dump </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d2/da3/class_o_n___text_log.html">ON_TextLog</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>for debugging </p>
<p>Reimplemented from <a class="el" href="../../d9/d7b/class_o_n___object.html#a21c7b04a80f1806c3a45f72d7c491a44">ON_Object</a>.</p>
</div>
</div>
<a id="a00d0274d85e07dac2506069f603330f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00d0274d85e07dac2506069f603330f2">&#9670;&nbsp;</a></span>EmergencyDestroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_NurbsSurface::EmergencyDestroy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>call if memory used by this class becomes invalid </p>
</div>
</div>
<a id="afbb5fbdb944928595b270b44e8f6a1a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbb5fbdb944928595b270b44e8f6a1a2">&#9670;&nbsp;</a></span>Evaluate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Evaluate </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>u</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_der</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>array_stride</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>der_array</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>quadrant</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>hint</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>work horse evaluator </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">u</td><td>returns false if unable to evaluate </td></tr>
<tr><td class="paramname">v</td><td>evaluation parameter </td></tr>
<tr><td class="paramname">num_der</td><td>number of derivatives (&gt;=0) </td></tr>
<tr><td class="paramname">array_stride</td><td>array stride (&gt;=<a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a3f9f8a3730a1aa21cf7172e42e010e68" title="ON_Geometry overrides. ">Dimension()</a>) </td></tr>
<tr><td class="paramname">der_array</td><td>array of length stride*(ndir+1)*(ndir+2)/2 </td></tr>
<tr><td class="paramname">quadrant</td><td>optional - determines which quadrant to evaluate from 0 = default 1 from NE quadrant 2 from NW quadrant 3 from SW quadrant 4 from SE quadrant </td></tr>
<tr><td class="paramname">hint</td><td>optional - evaluation hint (int[2]) used to speed repeated evaluations </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#a136dfc12c71af401bc90f2f5e87186f1">ON_Surface</a>.</p>
</div>
</div>
<a id="a3d7fe573af5a8c6187606b8c99f975fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d7fe573af5a8c6187606b8c99f975fb">&#9670;&nbsp;</a></span>Extend()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Extend </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> &amp;&#160;</td>
<td class="paramname"><em>domain</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Where possible, analytically extends surface to include domain. Parameters: dir - [in] 0 new Domain(0) will include domain. (the first surface parameter). 1 new Domain(1) will include domain. (the second surface parameter). domain - [in] if domain is not included in surface domain, surface will be extended so that its domain includes domain. Will not work if surface is closed in direction dir. Original surface is identical to the restriction of the resulting surface to the original surface domain, Returns: true if successful. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a9242e8a46e876db63423ce7d6f3f1ef8">ON_Surface</a>.</p>
</div>
</div>
<a id="aa3907cccba085621fa10b6bd6d6183fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3907cccba085621fa10b6bd6d6183fe">&#9670;&nbsp;</a></span>GetBBox()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetBBox </td>
<td>(</td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>boxmin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>boxmax</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>bGrowBox</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> GetBBox override </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#ad615e08fe92af659c8d10cbb4f8fc5e3">ON_Geometry</a>.</p>
</div>
</div>
<a id="a9be6614683284205a9012363a55d911a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9be6614683284205a9012363a55d911a">&#9670;&nbsp;</a></span>GetCV() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ON::point_style&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>get a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>array of length &gt;= <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a47074d2e65726e83a08100f8b93e9584">CVSize()</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a34cf66b8e55f1152e23cbbef30098cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34cf66b8e55f1152e23cbbef30098cde">&#9670;&nbsp;</a></span>GetCV() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>get a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>gets euclidean cv when NURBS is rational </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a09aa6d40e5aa0dd69ed2a8412bc06c01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09aa6d40e5aa0dd69ed2a8412bc06c01">&#9670;&nbsp;</a></span>GetCV() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>get a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>gets homogeneous cv </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="adde9c69d1137664d8d518e09c49e9d26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adde9c69d1137664d8d518e09c49e9d26">&#9670;&nbsp;</a></span>GetGrevilleAbcissae()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetGrevilleAbcissae </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>g</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>see ON_GetGrevilleAbcissa() for details dir </td></tr>
<tr><td class="paramname">g</td><td>g[cv count] </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac56289f02a839e0169e19914c5090b7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac56289f02a839e0169e19914c5090b7b">&#9670;&nbsp;</a></span>GetNextDiscontinuity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetNextDiscontinuity </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ON::continuity&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>t</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>hint</em> = <code>nullptr</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>dtype</em> = <code>nullptr</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>cos_angle_tolerance</em> = <code>ON_DEFAULT_ANGLE_TOLERANCE_COSINE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>curvature_tolerance</em> = <code>ON_SQRT_EPSILON</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Search for a derivatitive, tangent, or curvature discontinuity. Parameters: dir - [in] If 0, then "u" parameter is checked. If 1, then the "v" parameter is checked. c - [in] type of continity to test for. t0 - [in] Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities. t1 - [in] (t0 != t1) If there is a discontinuity at t1 is will be ingored unless c is a locus discontinuity type and t1 is at the start or end of the curve. t - [out] if a discontinuity is found, then *t reports the parameter at the discontinuity. hint - [in/out] if GetNextDiscontinuity will be called repeatedly, passing a "hint" with initial value *hint=0 will increase the speed of the search. dtype - [out] if not nullptr, *dtype reports the kind of discontinuity found at *t. A value of 1 means the first derivative or unit tangent was discontinuous. A value of 2 means the second derivative or curvature was discontinuous. A value of 0 means teh curve is not closed, a locus discontinuity test was applied, and t1 is at the start of end of the curve. cos_angle_tolerance - [in] default = cos(1 degree) Used only when c is ON::continuity::G1_continuous or ON::continuity::G2_continuous. If the cosine of the angle between two tangent vectors is &lt;= cos_angle_tolerance, then a G1 discontinuity is reported. curvature_tolerance - [in] (default = ON_SQRT_EPSILON) Used only when c is ON::continuity::G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| &gt; curvature_tolerance, then a curvature discontinuity is reported. Returns: Parametric continuity tests c = (C0_continuous, ..., G2_continuous):</p>
<p>true if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains.</p>
<p>Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous):</p>
<p>true if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (<a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a79f03807b92800d7fdb85cd53ab275ef">IsClosed()</a>=false) are locus discontinuous at the ends of their domains. All closed curves (<a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a79f03807b92800d7fdb85cd53ab275ef">IsClosed()</a>=true) are at least C0_locus_continuous at the ends of their domains. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a51d481385216963fadeb2b035f85e91d">ON_Surface</a>.</p>
</div>
</div>
<a id="a185695ea61e4584e918acfa8e6d79069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a185695ea61e4584e918acfa8e6d79069">&#9670;&nbsp;</a></span>GetNurbForm()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::GetNurbForm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"> = <code>0.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a4c4be57a220937dbf697548f3505a693">ON_Surface::GetNurbForm()</a> override. The <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> version returns 1 and a copy of the <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a4c4be57a220937dbf697548f3505a693">ON_Surface</a>.</p>
</div>
</div>
<a id="aebc80846fa4adf18b3fdfb4c90cd3174"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc80846fa4adf18b3fdfb4c90cd3174">&#9670;&nbsp;</a></span>GetParameterTolerance()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetParameterTolerance </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a0e3fc2e55337769949de67ac8f90a195">ON_Surface</a>.</p>
</div>
</div>
<a id="af6db321e8afd4d75b9575571ddf85b39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6db321e8afd4d75b9575571ddf85b39">&#9670;&nbsp;</a></span>GetSpanVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetSpanVector </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#a3d851661de5ad899125bc593cb36de72">ON_Surface</a>.</p>
</div>
</div>
<a id="acbdaca07107f754f512c53e2e3deba91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbdaca07107f754f512c53e2e3deba91">&#9670;&nbsp;</a></span>GetSurfaceSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::GetSurfaceSize </td>
<td>(</td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Get an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle. Parameters: width - [out] (corresponds to the first surface parameter) height - [out] (corresponds to the first surface parameter) Remarks: overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a92b4795bd65f16952895c05319c75128">ON_Surface::GetSurfaceSize</a> Returns: true if successful. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a92b4795bd65f16952895c05319c75128">ON_Surface</a>.</p>
</div>
</div>
<a id="abd4cbfdabade75ac746a590f4b601f07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd4cbfdabade75ac746a590f4b601f07">&#9670;&nbsp;</a></span>GrevilleAbcissa()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double ON_NurbsSurface::GrevilleAbcissa </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir </td></tr>
<tr><td class="paramname">cv_index</td><td>index (0 &lt;= index &lt; CVCount(dir) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a739ab763ce240a6b244221289a812193"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a739ab763ce240a6b244221289a812193">&#9670;&nbsp;</a></span>HasNurbForm()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::HasNurbForm </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a032695e1c765ace3b5b9888d746b49f7">ON_Surface::HasNurbForm()</a> override. The <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> version returns 1. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a032695e1c765ace3b5b9888d746b49f7">ON_Surface</a>.</p>
</div>
</div>
<a id="a704b8a944a93d5448361e4536f826758"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a704b8a944a93d5448361e4536f826758">&#9670;&nbsp;</a></span>IncreaseDegree()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IncreaseDegree </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>desired_degree</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">desired_degree</td><td>desired_degree </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8e87073794029f5ee62e2ab12ce55ff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e87073794029f5ee62e2ab12ce55ff8">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ON_NurbsSurface::Initialize </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>zeros all fields </p>
</div>
</div>
<a id="acbce06796f026424644fcafe1986240c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbce06796f026424644fcafe1986240c">&#9670;&nbsp;</a></span>InsertKnot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::InsertKnot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>knot_value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>knot_multiplicity</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">knot_value</td><td>value of knot </td></tr>
<tr><td class="paramname">knot_multiplicity</td><td>multiplicity of knot ( &gt;= 1 and &lt;= degree ) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2afc07bd28eb15ac4c47936b12bc2c35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2afc07bd28eb15ac4c47936b12bc2c35">&#9670;&nbsp;</a></span>IsClamped()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsClamped </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>end</em> = <code>2</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>determine if knot vector is clamped dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">end</td><td>end to check: 0 = start, 1 = end, 2 = start and end </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a79f03807b92800d7fdb85cd53ab275ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79f03807b92800d7fdb85cd53ab275ef">&#9670;&nbsp;</a></span>IsClosed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsClosed </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>CV = euclidean location of end CV, or surface is </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a8ef48a6603b29fd617456581a073d544">ON_Surface</a>.</p>
</div>
</div>
<a id="a4eaae948cb0fa8b7be23c549cd5d620d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eaae948cb0fa8b7be23c549cd5d620d">&#9670;&nbsp;</a></span>IsContinuous()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsContinuous </td>
<td>(</td>
<td class="paramtype">ON::continuity&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>hint</em> = <code>nullptr</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>point_tolerance</em> = <code>ON_ZERO_TOLERANCE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>d1_tolerance</em> = <code>ON_ZERO_TOLERANCE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>d2_tolerance</em> = <code>ON_ZERO_TOLERANCE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>cos_angle_tolerance</em> = <code>ON_DEFAULT_ANGLE_TOLERANCE_COSINE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>curvature_tolerance</em> = <code>ON_SQRT_EPSILON</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Test continuity at a surface parameter value. Parameters: c - [in] continuity to test for s - [in] surface parameter to test t - [in] surface parameter to test hint - [in] evaluation hint point_tolerance - [in] if the distance between two points is greater than point_tolerance, then the surface is not C0. d1_tolerance - [in] if the difference between two first derivatives is greater than d1_tolerance, then the surface is not C1. d2_tolerance - [in] if the difference between two second derivatives is greater than d2_tolerance, then the surface is not C2. cos_angle_tolerance - [in] default = cos(1 degree) Used only when c is ON::continuity::G1_continuous or ON::continuity::G2_continuous. If the cosine of the angle between two normal vectors is &lt;= cos_angle_tolerance, then a G1 discontinuity is reported. curvature_tolerance - [in] (default = ON_SQRT_EPSILON) Used only when c is ON::continuity::G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| &gt; curvature_tolerance, then a curvature discontinuity is reported. Returns: true if the surface has at least the c type continuity at the parameter t. Remarks: Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a5d3ac3b32555c7213b1c2b25705f3d47">ON_Surface::IsContinuous</a> </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a5d3ac3b32555c7213b1c2b25705f3d47">ON_Surface</a>.</p>
</div>
</div>
<a id="a56b439d01a24850bfd3e090ec4fa84b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56b439d01a24850bfd3e090ec4fa84b4">&#9670;&nbsp;</a></span>IsDeformable()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsDeformable </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#af156cd098b9e68fab5f32e76b1e274e2">ON_Geometry::IsDeformable()</a> override </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#af156cd098b9e68fab5f32e76b1e274e2">ON_Geometry</a>.</p>
</div>
</div>
<a id="a44333bc7946699fa6dd3805f6095da95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44333bc7946699fa6dd3805f6095da95">&#9670;&nbsp;</a></span>IsDuplicate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsDuplicate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td>
<td class="paramname"><em>other</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>bIgnoreParameterization</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em> = <code>ON_ZERO_TOLERANCE</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: See if this and other are same NURBS geometry. Parameters: other - [in] other NURBS surface bIgnoreParameterization - [in] if true, parameterization and orientaion are ignored. tolerance - [in] tolerance to use when comparing control points. Returns: true if curves are tne same. </p>
</div>
</div>
<a id="af3597179ee98894aa1a55ccbb0a79e72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3597179ee98894aa1a55ccbb0a79e72">&#9670;&nbsp;</a></span>IsoCurve()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../d4/d5a/class_o_n___curve.html">ON_Curve</a>* ON_NurbsSurface::IsoCurve </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Get isoparametric curve. Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a91faf7314053e7ebb3ebf12663647f5a">ON_Surface::IsoCurve</a>. Parameters: dir - [in] 0 first parameter varies and second parameter is constant e.g., point on IsoCurve(0,c) at t is srf(t,c) 1 first parameter is constant and second parameter varies e.g., point on IsoCurve(1,c) at t is srf(c,t)</p>
<p>c - [in] value of constant parameter Returns: Isoparametric curve. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a91faf7314053e7ebb3ebf12663647f5a">ON_Surface</a>.</p>
</div>
</div>
<a id="aa265374be1236e7dc31eda680a0667b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa265374be1236e7dc31eda680a0667b8">&#9670;&nbsp;</a></span>IsPeriodic()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsPeriodic </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>periodic.) </p>
<p>are duplicates of first degree many CVs.) </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a81785cd872ac150e058af4a8c80feab1">ON_Surface</a>.</p>
</div>
</div>
<a id="a1b3bfe945b80b46c38bcdec9a23f186a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b3bfe945b80b46c38bcdec9a23f186a">&#9670;&nbsp;</a></span>IsPlanar()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsPlanar </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> *&#160;</td>
<td class="paramname"><em>plane</em> = <code>nullptr</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em> = <code>ON_ZERO_TOLERANCE</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Test a surface to see if it is planar. Parameters: plane - [out] if not nullptr and true is returned, the plane parameters are filled in. tolerance - [in] tolerance to use when checking Returns: true if there is a plane such that the maximum distance from the surface to the plane is &lt;= tolerance. Remarks: Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#ae72f5823aecfe07f1fd086a2e1deebc2">ON_Surface::IsPlanar</a>. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#ae72f5823aecfe07f1fd086a2e1deebc2">ON_Surface</a>.</p>
</div>
</div>
<a id="a2fd565672d2aa4d2b872b687f2494390"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fd565672d2aa4d2b872b687f2494390">&#9670;&nbsp;</a></span>IsRational()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsRational </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a66f251083e34c28fc54ff4bd784988c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66f251083e34c28fc54ff4bd784988c8">&#9670;&nbsp;</a></span>IsSingular()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsSingular </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#ad72300a940e9460fd427fc6235aed9fb">ON_Surface</a>.</p>
</div>
</div>
<a id="afa03ebd61918b3018798008fec11b7bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa03ebd61918b3018798008fec11b7bf">&#9670;&nbsp;</a></span>IsValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::IsValid </td>
<td>(</td>
<td class="paramtype">class <a class="el" href="../../d2/da3/class_o_n___text_log.html">ON_TextLog</a> *&#160;</td>
<td class="paramname"><em>text_log</em> = <code>nullptr</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="../../d9/d7b/class_o_n___object.html">ON_Object</a> overrides. </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#adf87e5ba0d9939dfabbb9f421b9d2b3b">ON_Geometry</a>.</p>
</div>
</div>
<a id="abc21244a4f5e5cfdd89b00977a2f5dd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc21244a4f5e5cfdd89b00977a2f5dd2">&#9670;&nbsp;</a></span>Knot() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double ON_NurbsSurface::Knot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>knot_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">knot_index</td><td>knot index ( &gt;= 0 and &lt; Order + CV_count - 2 ) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2e8b07cb873e8bde9b43278489605b0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e8b07cb873e8bde9b43278489605b0f">&#9670;&nbsp;</a></span>Knot() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const double* ON_NurbsSurface::Knot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>knot[] array dir 0 = "s", 1 = "t" </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="abeb58413cad037f95a3b52275c3e1dc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abeb58413cad037f95a3b52275c3e1dc4">&#9670;&nbsp;</a></span>KnotCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::KnotCount </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>total number of knots in knot vector dir 0 = "s", 1 = "t" </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0fd4940b38643ba4a06152e0f31c864f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fd4940b38643ba4a06152e0f31c864f">&#9670;&nbsp;</a></span>KnotMultiplicity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::KnotMultiplicity </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>knot_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">knot_index</td><td>knot index ( &gt;= 0 and &lt; Order + CV_count - 2 ) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3207b92ddacacd9a8bef38df04fb739c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3207b92ddacacd9a8bef38df04fb739c">&#9670;&nbsp;</a></span>MakeClampedUniformKnotVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::MakeClampedUniformKnotVector </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>delta</em> = <code>1.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Make knot vector a clamped uniform knot vector based on the current values of m_order and m_cv_count. Does not change values of control vertices. Parameters: dir - [in] 0 = u knots, 1 = v knots delta - <a href="../../&gt;0.0">in</a> knot spacing. Returns: true if successful. Remarks: Allocates m_knot[] if it is not big enough. See Also: ON_MakeClampedUniformKnotVector </p>
</div>
</div>
<a id="aef3b4b936e48234a8298a469953ccc58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef3b4b936e48234a8298a469953ccc58">&#9670;&nbsp;</a></span>MakeDeformable()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::MakeDeformable </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#ac3d5cb708edca66a4a6c1992299329a3">ON_Geometry::MakeDeformable()</a> override </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#ac3d5cb708edca66a4a6c1992299329a3">ON_Geometry</a>.</p>
</div>
</div>
<a id="a4b18ab01f81fc11de75c4c2b122147bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b18ab01f81fc11de75c4c2b122147bf">&#9670;&nbsp;</a></span>MakeNonRational()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::MakeNonRational </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a02fa21cf4c7dba8caf902cce6bde28c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02fa21cf4c7dba8caf902cce6bde28c0">&#9670;&nbsp;</a></span>MakePeriodicUniformKnotVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::MakePeriodicUniformKnotVector </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>delta</em> = <code>1.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Make knot vector a periodic uniform knot vector based on the current values of m_order and m_cv_count. Does not change values of control vertices. Parameters: dir - [in] 0 = u knots, 1 = v knots delta - <a href="../../&gt;0.0">in</a> knot spacing. Returns: true if successful. Remarks: Allocates m_knot[] if it is not big enough. See Also: ON_MakePeriodicUniformKnotVector </p>
</div>
</div>
<a id="a392ceb785d90a077ab09c914694542b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a392ceb785d90a077ab09c914694542b0">&#9670;&nbsp;</a></span>MakeRational()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::MakeRational </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae7c56b7fdf47eb66fb68ac6af116118d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7c56b7fdf47eb66fb68ac6af116118d">&#9670;&nbsp;</a></span>New() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* ON_NurbsSurface::New </td>
<td>(</td>
<td class="paramname"></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>Description: Use <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ae7c56b7fdf47eb66fb68ac6af116118d">ON_NurbsSurface::New</a>(...) instead of new <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>(...) Returns: Pointer to an <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>. Destroy by calling delete. Remarks: See static ON_Brep* <a class="el" href="../../d9/d96/class_o_n___brep.html#acced23d3a7d4bc67e1f9c49161e821ad">ON_Brep::New()</a> for details. </p>
</div>
</div>
<a id="ac0265f58fd87855241d2bb8f2b51b816"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0265f58fd87855241d2bb8f2b51b816">&#9670;&nbsp;</a></span>New() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* ON_NurbsSurface::New </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td>
<td class="paramname"><em>nurbs_surface</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">
</div>
</div>
<a id="a2d1ba213cb5ac7c4221b6c8ea0a4a17f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d1ba213cb5ac7c4221b6c8ea0a4a17f">&#9670;&nbsp;</a></span>New() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* ON_NurbsSurface::New </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;&#160;</td>
<td class="paramname"><em>bezier_surface</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">
</div>
</div>
<a id="a6039855b826d62f93663444560d24c3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6039855b826d62f93663444560d24c3f">&#9670;&nbsp;</a></span>New() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* ON_NurbsSurface::New </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dimension</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>bIsRational</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>order1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_count1</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">
</div>
</div>
<a id="a15f3caadc8f0d009599a6be71e1a106b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15f3caadc8f0d009599a6be71e1a106b">&#9670;&nbsp;</a></span>Offset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a>* ON_NurbsSurface::Offset </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>offset_distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>max_deviation</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Offset surface. Parameters: offset_distance - [in] offset distance tolerance - [in] Some surfaces do not have an exact offset that can be represented using the same class of surface definition. In that case, the tolerance specifies the desired accuracy. max_deviation - [out] If this parameter is not nullptr, the maximum deviation from the returned offset to the true offset is returned here. This deviation is zero except for cases where an exact offset cannot be computed using the same class of surface definition. Returns: Offset surface. </p>
</div>
</div>
<a id="a971cf852f14319d74bf127deafccaa17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a971cf852f14319d74bf127deafccaa17">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>&amp; ON_NurbsSurface::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5bc4bf66c137fb22d86e6f709d751eb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bc4bf66c137fb22d86e6f709d751eb7">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>&amp; ON_NurbsSurface::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d7/dc7/class_o_n___bezier_surface.html">ON_BezierSurface</a> &amp;&#160;</td>
<td class="paramname"><em>bezier_surface</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Set NURBS surface equal to bezier surface with domain [0,1]x[0,1]. Parameters: bezier_surface - [in] </p>
</div>
</div>
<a id="a1e39b054e274b4315d3cf4c5fb84e5f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e39b054e274b4315d3cf4c5fb84e5f9">&#9670;&nbsp;</a></span>Order()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::Order </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a38284671127a33e47b114e398cdd4cef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38284671127a33e47b114e398cdd4cef">&#9670;&nbsp;</a></span>Read()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;&#160;</td>
<td class="paramname"><em>binary_archive</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a025b86c1da38eb51f66d6260b1141ac3">ON_BinaryArchive::ReadObject()</a>. Parameters: binary_archive - archive to read from Returns: Returns true if the read is successful. Remarks: Use <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a025b86c1da38eb51f66d6260b1141ac3">ON_BinaryArchive::ReadObject()</a> to read objects. This <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a38284671127a33e47b114e398cdd4cef">Read()</a> function should read the objects definition back into its data members.</p>
<p>The default implementation of this virtual function returns false and does nothing. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">binary_archive</td><td>open binary file </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../d9/d7b/class_o_n___object.html#a09ac9742ead91dd8f9cdd579bcbfed10">ON_Object</a>.</p>
</div>
</div>
<a id="af6db9c41b8ea214a41fd8eeefde26ff9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6db9c41b8ea214a41fd8eeefde26ff9">&#9670;&nbsp;</a></span>ReserveCVCapacity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ReserveCVCapacity </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>cv_array_capacity</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cv_array_capacity</td><td>returns false if allocation fails does not change m_order or m_cv_count minimum capacity of m_cv[] array </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2b36cd526174887c9ef6ae993a9538df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b36cd526174887c9ef6ae993a9538df">&#9670;&nbsp;</a></span>ReserveKnotCapacity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ReserveKnotCapacity </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>knot_array_capacity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tools for managing CV and knot memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>returns false if allocation fails does not change m_order or m_cv_count dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">knot_array_capacity</td><td>minimum capacity of m_knot[] array </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab4d311b70c74d96d5a97997caadd906b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4d311b70c74d96d5a97997caadd906b">&#9670;&nbsp;</a></span>Reverse()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Reverse </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#a42238365821cec5dfd38785a2a196404">ON_Surface</a>.</p>
</div>
</div>
<a id="aef843df42000aa458a43af8aa28fe932"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef843df42000aa458a43af8aa28fe932">&#9670;&nbsp;</a></span>SetClampedGrevilleKnotVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetClampedGrevilleKnotVector </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>g_stride</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double *&#160;</td>
<td class="paramname"><em>g</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir </td></tr>
<tr><td class="paramname">g_stride</td><td>g_stride </td></tr>
<tr><td class="paramname">g</td><td>g[], CVCount(dir) many Greville abcissa </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac3f7544f2005d2f9a56801843057e33b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3f7544f2005d2f9a56801843057e33b">&#9670;&nbsp;</a></span>SetCV() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ON::point_style&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double *&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>set a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>value of control vertex </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acc598bb20933551f957228090231dd45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc598bb20933551f957228090231dd45">&#9670;&nbsp;</a></span>SetCV() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>set a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>value of control vertex If NURBS is rational, weight will be set to 1. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5fab7aefc0db4414783e704169fb88ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fab7aefc0db4414783e704169fb88ff">&#9670;&nbsp;</a></span>SetCV() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCV </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>set a single control vertex </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">cv</td><td>value of control vertex </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1344218127cfffe0dbcfc8cc97f5d264"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1344218127cfffe0dbcfc8cc97f5d264">&#9670;&nbsp;</a></span>SetCVColumn() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCVColumn </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>col_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">col_index</td><td>Sets CV( col_index, * ) col_index &gt;= 0 and &lt; m_cv_count[0] </td></tr>
<tr><td class="paramname">cv</td><td>value of control vertex If NURBS is rational, weight will be set to 1. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2206f0c3db72a657636fb7f537449e65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2206f0c3db72a657636fb7f537449e65">&#9670;&nbsp;</a></span>SetCVColumn() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCVColumn </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>col_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v_stride</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double *&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">col_index</td><td>Sets CV( col_index, * ) col_index &gt;= 0 and &lt; m_cv_count[0] </td></tr>
<tr><td class="paramname">v_stride</td><td>v stride </td></tr>
<tr><td class="paramname">v</td><td>v[] = values (same dim and is_rat as surface) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a224030b32b349653816067c653cca489"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a224030b32b349653816067c653cca489">&#9670;&nbsp;</a></span>SetCVRow() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCVRow </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>row_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d2/d35/class_o_n__3d_point.html">ON_3dPoint</a> &amp;&#160;</td>
<td class="paramname"><em>cv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">row_index</td><td>Sets CV( *, row_index ) row_index &gt;= 0 and &lt; m_cv_count[1] </td></tr>
<tr><td class="paramname">cv</td><td>value of control vertex If NURBS is rational, weight will be set to 1. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aaadc532f8c141514e56ca3e08f965dfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaadc532f8c141514e56ca3e08f965dfd">&#9670;&nbsp;</a></span>SetCVRow() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetCVRow </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>row_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v_stride</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double *&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">row_index</td><td>Sets CV( *, row_index ) row_index &gt;= 0 and &lt; m_cv_count[1] </td></tr>
<tr><td class="paramname">v_stride</td><td>v stride </td></tr>
<tr><td class="paramname">v</td><td>v[] = values (same dim and is_rat as surface) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0851338729e5aeefa612650ae023da9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0851338729e5aeefa612650ae023da9e">&#9670;&nbsp;</a></span>SetDomain()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetDomain </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>t1</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> overrides. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>0 sets first parameter's domain, 1 gets second parameter's domain </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#ae7bf4108db56427aeb833e3dd6ad6f57">ON_Surface</a>.</p>
</div>
</div>
<a id="a0299eeabf02ffa85aa814eaed4b6326c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0299eeabf02ffa85aa814eaed4b6326c">&#9670;&nbsp;</a></span>SetKnot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetKnot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>knot_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>knot_value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">knot_index</td><td>knot index ( 0 to KnotCount - 1 ) </td></tr>
<tr><td class="paramname">knot_value</td><td>value for knot </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0cf958671a37c72fb25fea6ec2d6cbfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cf958671a37c72fb25fea6ec2d6cbfc">&#9670;&nbsp;</a></span>SetPeriodicGrevilleKnotVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetPeriodicGrevilleKnotVector </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>g_stride</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double *&#160;</td>
<td class="paramname"><em>g</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir </td></tr>
<tr><td class="paramname">g_stride</td><td>g_stride </td></tr>
<tr><td class="paramname">g</td><td>g[], Greville abcissa </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aaa52ddefeb0a32574f2f2b5ac22a5378"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa52ddefeb0a32574f2f2b5ac22a5378">&#9670;&nbsp;</a></span>SetWeight()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SetWeight </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>weight</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Set value of control vertex weight. If surface is non-rational, it will be converted to rational. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
<tr><td class="paramname">weight</td><td>value of control point weight </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a15201baa278c14beb628a68eb6685593"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15201baa278c14beb628a68eb6685593">&#9670;&nbsp;</a></span>SizeOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int ON_NurbsSurface::SizeOf </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>virtual <a class="el" href="../../d9/d7b/class_o_n___object.html#a0299df21bfed90d7b5bfb24cdcf5e6c1">ON_Object::SizeOf</a> override </p>
<p>Reimplemented from <a class="el" href="../../d9/d7b/class_o_n___object.html#a0299df21bfed90d7b5bfb24cdcf5e6c1">ON_Object</a>.</p>
</div>
</div>
<a id="a1c8fb14eb3d6584e0fc83588d7573687"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c8fb14eb3d6584e0fc83588d7573687">&#9670;&nbsp;</a></span>SpanCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::SpanCount </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>number of smooth spans in curve </p>
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#ac9b0d48e7470d0b6c12bd29ad299f093">ON_Surface</a>.</p>
</div>
</div>
<a id="a0b854a026aec20be6ca115375963dd6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b854a026aec20be6ca115375963dd6f">&#9670;&nbsp;</a></span>Split()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Split </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&amp;&#160;</td>
<td class="paramname"><em>west_or_south_side</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../da/da0/class_o_n___surface.html">ON_Surface</a> *&amp;&#160;</td>
<td class="paramname"><em>east_or_north_side</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Splits (divides) the surface into two parts at the specified parameter. Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a7aa8df2f579c5547324a42f284bcbc6c">ON_Surface::Split</a>.</p>
<p>Parameters: dir - [in] 0 The surface is split vertically. The "west" side is returned in "west_or_south_side" and the "east" side is returned in "east_or_north_side". 1 The surface is split horizontally. The "south" side is returned in "west_or_south_side" and the "north" side is returned in "east_or_north_side". c - [in] value of constant parameter in interval returned by Domain(dir) west_or_south_side - [out] west/south portion of surface returned here east_or_north_side - [out] east/north portion of surface returned here</p>
<p>Example: </p><pre class="fragment"> ON_NurbsSurface srf = ...;
int dir = 1;
ON_NurbsSurface* south_side = 0;
ON_NurbsSurface* north_side = 0;
srf.Split( dir, srf.Domain(dir).Mid() south_side, north_side );</pre>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#a7aa8df2f579c5547324a42f284bcbc6c">ON_Surface</a>.</p>
</div>
</div>
<a id="aaeff85add369a9f3858707ae26552688"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaeff85add369a9f3858707ae26552688">&#9670;&nbsp;</a></span>SuperfluousKnot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double ON_NurbsSurface::SuperfluousKnot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</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> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>dir 0 = "s", 1 = "t" </td></tr>
<tr><td class="paramname">end</td><td>0 = start, 1 = end </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a476d01f18dfeb261bee75831727756e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a476d01f18dfeb261bee75831727756e4">&#9670;&nbsp;</a></span>SwapCoordinates()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::SwapCoordinates </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Swaps object coordinate values with indices i and j.</p>
<p>Parameters: i - [in] coordinate index j - [in] coordinate index</p>
<p>Remarks: The default implementation uses the virtual <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9f9ad68b7da808c24e6a52e5aa82009d">Transform()</a> function to calculate the result. If you are creating an object where <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9f9ad68b7da808c24e6a52e5aa82009d">Transform()</a> is slow, coordinate swapping will be frequently used, and coordinate swapping can be quickly accomplished, then override this function.</p>
<p>Example: </p><pre class="fragment"> ON_Point point(7,8,9);
point.SwapCoordinates(0,2);
///&lt; point = (9,8,7) </pre> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">j</td><td>indices of coords to swap </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#a737d7b1433104a39298629931e899cd4">ON_Geometry</a>.</p>
</div>
</div>
<a id="aaadeb20fcf980674f010f3242d9697dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaadeb20fcf980674f010f3242d9697dc">&#9670;&nbsp;</a></span>TensorProduct()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::TensorProduct </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d3/d6a/class_o_n___nurbs_curve.html">ON_NurbsCurve</a> &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d3/d6a/class_o_n___nurbs_curve.html">ON_NurbsCurve</a> &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d6/d0b/class_o_n___tensor_product.html">ON_TensorProduct</a> &amp;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a tensor product nurbs surface with srf(s,t) = T(A(s),B(t));. </p>
</div>
</div>
<a id="a9f9ad68b7da808c24e6a52e5aa82009d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f9ad68b7da808c24e6a52e5aa82009d">&#9670;&nbsp;</a></span>Transform()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Transform </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> &amp;&#160;</td>
<td class="paramname"><em>xform</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Transforms the object.</p>
<p>Parameters: xform - [in] transformation to apply to object. If xform.IsSimilarity() is zero, then you may want to call MakeSquishy() before calling Transform.</p>
<p>Remarks: When overriding this function, be sure to include a call to <a class="el" href="../../d9/d7b/class_o_n___object.html#a881bd2f0d8515adba1c42c578bcb7052">ON_Object::TransformUserData()</a> which takes care of transforming any <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> that may be attached to the object.</p>
<p>See Also: <a class="el" href="../../df/de0/class_o_n___geometry.html#af156cd098b9e68fab5f32e76b1e274e2">ON_Geometry::IsDeformable()</a>;</p>
<p>Remarks: Classes derived from <a class="el" href="../../df/de0/class_o_n___geometry.html">ON_Geometry</a> should call <a class="el" href="../../df/de0/class_o_n___geometry.html#add710872e89bc29e1ed1321b3e70b1b1">ON_Geometry::Transform()</a> to handle user data transformations and then transform their definition. </p>
<p>Reimplemented from <a class="el" href="../../df/de0/class_o_n___geometry.html#add710872e89bc29e1ed1321b3e70b1b1">ON_Geometry</a>.</p>
</div>
</div>
<a id="aa4dec1e5c3a027fa2eb348f8380ede45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4dec1e5c3a027fa2eb348f8380ede45">&#9670;&nbsp;</a></span>Transpose()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Transpose </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>transpose surface parameterization (swap "s" and "t") </p>
<p>Implements <a class="el" href="../../da/da0/class_o_n___surface.html#a6c02248d5c3280246e2732a14d84ca58">ON_Surface</a>.</p>
</div>
</div>
<a id="a7cd3c5ab731342531cc1b872b40420b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cd3c5ab731342531cc1b872b40420b1">&#9670;&nbsp;</a></span>Trim()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Trim </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../dc/dc7/class_o_n___interval.html">ON_Interval</a> &amp;&#160;</td>
<td class="paramname"><em>domain</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Removes the portions of the surface outside of the specified interval. Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#ab88b3c29cccf29717a83ee349e2d85d7">ON_Surface::Trim</a>.</p>
<p>Parameters: dir - [in] 0 The domain specifies an sub-interval of Domain(0) (the first surface parameter). 1 The domain specifies an sub-interval of Domain(1) (the second surface parameter). domain - [in] interval of the surface to keep. If dir is 0, then the portions of the surface with parameters (s,t) satisfying s &lt; Domain(0).Min() or s &gt; Domain(0).Max() are trimmed away. If dir is 1, then the portions of the surface with parameters (s,t) satisfying t &lt; Domain(1).Min() or t &gt; Domain(1).Max() are trimmed away. </p>
<p>Reimplemented from <a class="el" href="../../da/da0/class_o_n___surface.html#ab88b3c29cccf29717a83ee349e2d85d7">ON_Surface</a>.</p>
</div>
</div>
<a id="a813b7e85c052fc11a2b8aaa9a519bdc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a813b7e85c052fc11a2b8aaa9a519bdc9">&#9670;&nbsp;</a></span>Weight()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double ON_NurbsSurface::Weight </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>get value of control vertex weight </td></tr>
<tr><td class="paramname">j</td><td>CV index ( 0 &lt;= i &lt;= CVCount(0), 0 &lt;= j &lt;= CVCount(1) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a33cdca32f2bb2e41d795e2a7d38a4b26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33cdca32f2bb2e41d795e2a7d38a4b26">&#9670;&nbsp;</a></span>Write()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::Write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../db/d16/class_o_n___binary_archive.html">ON_BinaryArchive</a> &amp;&#160;</td>
<td class="paramname"><em>binary_archive</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a33187abe5d04ac52c41d7a798e664f3b" title="writes object definition ">ON_BinaryArchive::WriteObject()</a>. Parameters: binary_archive - archive to write to Returns: Returns true if the write is successful. Remarks: Use <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a33187abe5d04ac52c41d7a798e664f3b" title="writes object definition ">ON_BinaryArchive::WriteObject()</a> to write objects. This <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a33cdca32f2bb2e41d795e2a7d38a4b26">Write()</a> function should just write the specific definition of this object. It should not write and any chunk typecode or length information.</p>
<p>The default implementation of this virtual function returns false and does nothing. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">binary_archive</td><td>open binary file </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../d9/d7b/class_o_n___object.html#a16eb9ab6bf0d0a614655cf9cd055871a">ON_Object</a>.</p>
</div>
</div>
<a id="a68dad07282fafb8221a2c7d27628efcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68dad07282fafb8221a2c7d27628efcb">&#9670;&nbsp;</a></span>ZeroCVs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_NurbsSurface::ZeroCVs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>zeros all CVs (any weights set to 1); </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a3f61e32dfe140a0b8b0d66818680a588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f61e32dfe140a0b8b0d66818680a588">&#9670;&nbsp;</a></span>m_cv</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double* ON_NurbsSurface::m_cv</td>
</tr>
</table>
</div><div class="memdoc">
<p>Control points. If m_is_rat is false, then control point is </p><pre class="fragment"> ( CV(i)[0], ..., CV(i)[m_dim-1] ).
</pre><p>If m_is_rat is true, then the control point is stored in HOMOGENEOUS form and is </p><pre class="fragment"> [ CV(i)[0], ..., CV(i)[m_dim] ].</pre>
</div>
</div>
<a id="a3ff7bb039957ea793e5beb16c1b91ac1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ff7bb039957ea793e5beb16c1b91ac1">&#9670;&nbsp;</a></span>m_cv_capacity</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_cv_capacity</td>
</tr>
</table>
</div><div class="memdoc">
<p>If m_cv_capacity &gt; 0, then m_cv[] is an array of at least m_cv_capacity doubles whose memory is managed by the <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> class using rhmalloc(), onrealloc(), and rhfree(). If m_cv_capacity is 0 and m_cv is not nullptr, then m_cv[] is assumed to be big enough for any requested operation and m_cv[] is not deleted by the destructor. </p>
</div>
</div>
<a id="ae2dba852eb1992aff1d0d2c16f564637"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2dba852eb1992aff1d0d2c16f564637">&#9670;&nbsp;</a></span>m_cv_count</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_cv_count[2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>number of control vertices ( &gt;= order ) </p>
</div>
</div>
<a id="a97c43a3b0127f656d3e33e2773f8add9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97c43a3b0127f656d3e33e2773f8add9">&#9670;&nbsp;</a></span>m_cv_stride</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_cv_stride[2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>control vertex net memory </p>
<p>The pointer to start of "CV[i]" is m_cv + i*m_cv_stride. </p>
</div>
</div>
<a id="a376717f188808c291a3d4ead4e7f4dbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a376717f188808c291a3d4ead4e7f4dbb">&#9670;&nbsp;</a></span>m_dim</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_dim</td>
</tr>
</table>
</div><div class="memdoc">
<p>Implementation. </p>
<p>NOTE: These members are left "public" so that expert users may efficiently create NURBS curves using the default constructor and borrow the knot and CV arrays from their native NURBS representation. No technical support will be provided for users who access these members directly. If you can't get your stuff to work, then use the constructor with the arguments and the <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a0299eeabf02ffa85aa814eaed4b6326c">SetKnot()</a> and <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ac3f7544f2005d2f9a56801843057e33b">SetCV()</a> functions to fill in the arrays. (&gt;=1) </p>
</div>
</div>
<a id="a5f6f676b9e7e8d6a126a7290e05cb6ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f6f676b9e7e8d6a126a7290e05cb6ce">&#9670;&nbsp;</a></span>m_is_rat</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_is_rat</td>
</tr>
</table>
</div><div class="memdoc">
<p>1 for rational B-splines. (Control vertices use homogeneous form.) 0 for non-rational B-splines. (Control verticies do not have a weight coordinate.) </p>
</div>
</div>
<a id="a40e2cbc5678faa481eeb12593ce7ba46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40e2cbc5678faa481eeb12593ce7ba46">&#9670;&nbsp;</a></span>m_knot</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double* ON_NurbsSurface::m_knot[2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Knot vector. ( The knot vector has length m_order+m_cv_count-2. ) </p>
</div>
</div>
<a id="af1892611802082537ba4b606ab77c202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1892611802082537ba4b606ab77c202">&#9670;&nbsp;</a></span>m_knot_capacity</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_knot_capacity[2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>knot vector memory </p>
<p>If m_knot_capacity &gt; 0, then m_knot[] is an array of at least m_knot_capacity doubles whose memory is managed by the <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> class using rhmalloc(), onrealloc(), and rhfree(). If m_knot_capacity is 0 and m_knot is not nullptr, then m_knot[] is assumed to be big enough for any requested operation and m_knot[] is not deleted by the destructor. </p>
</div>
</div>
<a id="a3a6086d7f17b76dbae376a5bfa226f52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a6086d7f17b76dbae376a5bfa226f52">&#9670;&nbsp;</a></span>m_order</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_NurbsSurface::m_order[2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>order = degree+1 (&gt;=2) </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Jan 26 2018 04:54:32 for openNURBS SDK Help by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>