Files
opennurbs/6/de/ddc/class_o_n___nurbs_surface.html
Bozo 832ccb5c1a Publish!
Generated from v6.0.11315.11111-test14
2018-02-03 11:08:49 -08:00

4188 lines
277 KiB
HTML

<!-- HTML header for doxygen 1.8.13-->
<!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="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../customdoxygen.css" rel="stylesheet" type="text/css"/>
<!-- bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- smartmenus -->
<link href="../../jquery.smartmenus.bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="../../jquery.smartmenus.js"></script>
<script type="text/javascript" src="../../jquery.smartmenus.bootstrap.js"></script>
</head>
<body>
<!-- <div class="version-banner">
Go back to the <a href="/">main site</a>...
</div> -->
<div class="container">
<!-- navbar -->
<nav class="navbar navbar-default">
<div class="container-fluid">
<a class="navbar-brand" href="#">openNURBS SDK Help</a>
<div class="navbar-collapse collapse" id="main-nav-placeholder">
<!-- <p class="navbar-text navbar-right">v6.0</p> -->
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a class="dropdown-toggle" href="#">v6.0 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Latest (6.x)</a></li>
<li class="disabled"><a href="#">WIP (7.x)</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="page-content">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('../../',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common..." alt="ON_Geometry" shape="rect" coords="0,56,117,80"/>
<area href="../../d9/d7b/class_o_n___object.html" title="Pure virtual base class for all classes that must provide runtime class id or support object level 3D..." 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="memdesc:a14220b779665eb0fda3dc3bf92ee2131"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the surface is closed in direction dir, then modify it so that the seam is at parameter t in the dir direction. <a href="#a14220b779665eb0fda3dc3bf92ee2131">More...</a><br /></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="memdesc:a55b5fceffc4dad612d7e412e30d89ec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collapse the side of a NURBS surface to a single point. <a href="#a55b5fceffc4dad612d7e412e30d89ec0">More...</a><br /></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="memdesc:a0264c6375c25a44dfc5e60b12bfb427d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a NURBS surface bispan into a bezier surface. <a href="#a0264c6375c25a44dfc5e60b12bfb427d">More...</a><br /></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="memdesc:aabbd32c811bdec94b045c768c17e0af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a cone surface from a curve to a point. <a href="#aabbd32c811bdec94b045c768c17e0af8">More...</a><br /></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="memdesc:a812cbdf97a35fe72fcda47a47a9735ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a ruled surface from two curves. <a href="#a812cbdf97a35fe72fcda47a47a9735ef">More...</a><br /></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="memdesc:a001f37ab72cc20d32efa2765fa01dc69"><td class="mdescLeft">&#160;</td><td class="mdescRight">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; ). <a href="#a001f37ab72cc20d32efa2765fa01dc69">More...</a><br /></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="memdesc:aeb3ec30dc98a6f67d52806faaf4288ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the style of control vertices in the m_cv array. <a href="#aeb3ec30dc98a6f67d52806faaf4288ac">More...</a><br /></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" title="Returns a CRC calculated from the information that defines the object. This CRC can be used as a quic...">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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">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">Creates a text dump of the object. <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="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="memdesc:a3d7fe573af5a8c6187606b8c99f975fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Where possible, analytically extends surface to include domain. <a href="#a3d7fe573af5a8c6187606b8c99f975fb">More...</a><br /></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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">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="memdesc:ac56289f02a839e0169e19914c5090b7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for a derivatitive, tangent, or curvature discontinuity. <a href="#ac56289f02a839e0169e19914c5090b7b">More...</a><br /></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="memdesc:a185695ea61e4584e918acfa8e6d79069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a NURBS surface representation of this surface. <a href="#a185695ea61e4584e918acfa8e6d79069">More...</a><br /></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="memdesc:acbdaca07107f754f512c53e2e3deba91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle. <a href="#acbdaca07107f754f512c53e2e3deba91">More...</a><br /></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="memdesc:a739ab763ce240a6b244221289a812193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is there a NURBS surface representation of this surface. <a href="#a739ab763ce240a6b244221289a812193">More...</a><br /></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="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="memdesc:a4eaae948cb0fa8b7be23c549cd5d620d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test continuity at a surface parameter value. <a href="#a4eaae948cb0fa8b7be23c549cd5d620d">More...</a><br /></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="memdesc:a44333bc7946699fa6dd3805f6095da95"><td class="mdescLeft">&#160;</td><td class="mdescRight">See if this and other are same NURBS geometry. <a href="#a44333bc7946699fa6dd3805f6095da95">More...</a><br /></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="memdesc:af3597179ee98894aa1a55ccbb0a79e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get isoparametric curve. Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a91faf7314053e7ebb3ebf12663647f5a" title="Get isoparametric curve. ">ON_Surface::IsoCurve</a>. <a href="#af3597179ee98894aa1a55ccbb0a79e72">More...</a><br /></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="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="memdesc:a1b3bfe945b80b46c38bcdec9a23f186a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test a surface to see if it is planar. <a href="#a1b3bfe945b80b46c38bcdec9a23f186a">More...</a><br /></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" title="Pure virtual base class for all classes that must provide runtime class id or support object level 3D...">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="memdesc:a3207b92ddacacd9a8bef38df04fb739c"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="#a3207b92ddacacd9a8bef38df04fb739c">More...</a><br /></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" title="If possible, converts the object into a form that can be accuratly modified with &quot;squishy&quot; transforma...">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="memdesc:a02fa21cf4c7dba8caf902cce6bde28c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="#a02fa21cf4c7dba8caf902cce6bde28c0">More...</a><br /></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="memdesc:a15f3caadc8f0d009599a6be71e1a106b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset surface. <a href="#a15f3caadc8f0d009599a6be71e1a106b">More...</a><br /></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="memdesc:a5bc4bf66c137fb22d86e6f709d751eb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set NURBS surface equal to bezier surface with domain [0,1]x[0,1]. <a href="#a5bc4bf66c137fb22d86e6f709d751eb7">More...</a><br /></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="memdesc:a38284671127a33e47b114e398cdd4cef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a025b86c1da38eb51f66d6260b1141ac3" title="Reads and object from a 3dm archive; ">ON_BinaryArchive::ReadObject()</a>. <a href="#a38284671127a33e47b114e398cdd4cef">More...</a><br /></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="memdesc:aaa52ddefeb0a32574f2f2b5ac22a5378"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set value of control vertex weight. If surface is non-rational, it will be converted to rational. <a href="#aaa52ddefeb0a32574f2f2b5ac22a5378">More...</a><br /></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="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="memdesc:a0b854a026aec20be6ca115375963dd6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">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" title="Splits (divides) the surface into two parts at the specified parameter. ">ON_Surface::Split</a>. <a href="#a0b854a026aec20be6ca115375963dd6f">More...</a><br /></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="memdesc:a476d01f18dfeb261bee75831727756e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps object coordinate values with indices i and j. <a href="#a476d01f18dfeb261bee75831727756e4">More...</a><br /></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="memdesc:a9f9ad68b7da808c24e6a52e5aa82009d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms the object. <a href="#a9f9ad68b7da808c24e6a52e5aa82009d">More...</a><br /></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="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="memdesc:a7cd3c5ab731342531cc1b872b40420b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">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" title="Removes the portions of the surface outside of the specified interval. ">ON_Surface::Trim</a>. <a href="#a7cd3c5ab731342531cc1b872b40420b1">More...</a><br /></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="memdesc:a33cdca32f2bb2e41d795e2a7d38a4b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a33187abe5d04ac52c41d7a798e664f3b">ON_BinaryArchive::WriteObject()</a>. <a href="#a33cdca32f2bb2e41d795e2a7d38a4b26">More...</a><br /></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="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="memdesc:afefc2174838a78fe1cbab26ca8e250c9 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overrides virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#a84b28eb33d34c71913b9cd16f8ecab50" title="Query an object to see if it has an ON_Brep form. Result: Returns true if the virtual ON_Geometry::Br...">ON_Geometry::HasBrepForm</a>. Uses ON_Brep::Create( ON_Surface&amp;* ) to create a brep form. The surface is copied for use in the returned brep. <a href="../../da/da0/class_o_n___surface.html#afefc2174838a78fe1cbab26ca8e250c9">More...</a><br /></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" title="Expert user function. If you are using openNURBS in its default configuration to read and write 3dm a...">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="memdesc:aedab1803231d9ff212afa3f360826dfc inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a duplicate of the surface. <a href="../../da/da0/class_o_n___surface.html#aedab1803231d9ff212afa3f360826dfc">More...</a><br /></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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">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="memdesc:ac4fd9454c44389114b7e5f8b5348a449 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overrides virtual <a class="el" href="../../df/de0/class_o_n___geometry.html#a84b28eb33d34c71913b9cd16f8ecab50" title="Query an object to see if it has an ON_Brep form. Result: Returns true if the virtual ON_Geometry::Br...">ON_Geometry::HasBrepForm</a> and returns true. Result: Returns true. <a href="../../da/da0/class_o_n___surface.html#ac4fd9454c44389114b7e5f8b5348a449">More...</a><br /></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="memdesc:aace2e16046b66d9f85150616a30fb8df inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if a surface parameter value is at a seam. <a href="../../da/da0/class_o_n___surface.html#aace2e16046b66d9f85150616a30fb8df">More...</a><br /></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="memdesc:a7cf580f73c666fdf8898e88f1f5842d1 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if a surface parameter value is at a singularity. <a href="../../da/da0/class_o_n___surface.html#a7cf580f73c666fdf8898e88f1f5842d1">More...</a><br /></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="memdesc:abc4fa6cff9ae3617a3d64dbbb34a0e50 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the surface is a portion of a cone. <a href="../../da/da0/class_o_n___surface.html#abc4fa6cff9ae3617a3d64dbbb34a0e50">More...</a><br /></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="memdesc:afa2b7070ae8c79bf6a0e85b4f8839286 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the surface is a portion of a cylinder. <a href="../../da/da0/class_o_n___surface.html#afa2b7070ae8c79bf6a0e85b4f8839286">More...</a><br /></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="memdesc:a130a84dc24cd70540a3ec24a72310847 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test a 2d curve to see if it is iso parameteric in the surface's parameter space. <a href="../../da/da0/class_o_n___surface.html#a130a84dc24cd70540a3ec24a72310847">More...</a><br /></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="memdesc:a87d67a07468c45f62b31c6bc654e4faf inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test a 2d bounding box to see if it is iso parameteric in the surface's parameter space. <a href="../../da/da0/class_o_n___surface.html#a87d67a07468c45f62b31c6bc654e4faf">More...</a><br /></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="memdesc:a0ef4fd9b48a12f3401f98796177528d5 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the surface is a portion of a sphere. <a href="../../da/da0/class_o_n___surface.html#a0ef4fd9b48a12f3401f98796177528d5">More...</a><br /></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="memdesc:a25e486e43f7b3059ba65daf12a68be87 inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the surface is a portion of a torus. <a href="../../da/da0/class_o_n___surface.html#a25e486e43f7b3059ba65daf12a68be87">More...</a><br /></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="memdesc:a9c25021d3304fea40d3cfe9b4fb1a58e inherit pub_methods_class_o_n___surface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a NURBS surface representation of this surface. <a href="../../da/da0/class_o_n___surface.html#a9c25021d3304fea40d3cfe9b4fb1a58e">More...</a><br /></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" title="Useful for switch statements that need to differentiate between basic object types like points...">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="memdesc:ab1acdd7f0c350da696b402a9ac5edce0 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get object's 3d axis aligned bounding box. <a href="../../df/de0/class_o_n___geometry.html#ab1acdd7f0c350da696b402a9ac5edce0">More...</a><br /></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="memdesc:af8dfbd8534986bbd327a6ad812e374be inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Some objects cache bounding box information. If you modify an object, then call <a class="el" href="../../df/de0/class_o_n___geometry.html#af8dfbd8534986bbd327a6ad812e374be" title="Some objects cache bounding box information. If you modify an object, then call ClearBoundingBox() to...">ClearBoundingBox()</a> to inform the object that any cached bounding boxes are invalid. <a href="../../df/de0/class_o_n___geometry.html#af8dfbd8534986bbd327a6ad812e374be">More...</a><br /></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="memdesc:a20e5d1aeada9545127329a8699c702b9 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this piece of geometry is a component in something larger, like an <a class="el" href="../../dd/de8/class_o_n___brep_edge.html" title="Brep edge information is stored in ON_BrepEdge classes. ON_Brep.m_E[] is an array of all the edges in...">ON_BrepEdge</a> in an <a class="el" href="../../d9/d96/class_o_n___brep.html">ON_Brep</a>, then this function returns the component index. <a href="../../df/de0/class_o_n___geometry.html#a20e5d1aeada9545127329a8699c702b9">More...</a><br /></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="memdesc:a7259b0a7e7c663e55345788411352075 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get object's 3d axis aligned bounding box or the union of the input box with the object's bounding box. <a href="../../df/de0/class_o_n___geometry.html#a7259b0a7e7c663e55345788411352075">More...</a><br /></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="memdesc:ac123c564ea7a43c4406ac78954cf5266 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get corners of object's 3d axis aligned bounding box or the union of the input box with the object's bounding box. <a href="../../df/de0/class_o_n___geometry.html#ac123c564ea7a43c4406ac78954cf5266">More...</a><br /></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="memdesc:ab59968e400d15d016517b7b4f2e32ea4 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get tight bounding box. <a href="../../df/de0/class_o_n___geometry.html#ab59968e400d15d016517b7b4f2e32ea4">More...</a><br /></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="memdesc:a3c8306ab6d43886453a056160429bc0a inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule). <a href="../../df/de0/class_o_n___geometry.html#a3c8306ab6d43886453a056160429bc0a">More...</a><br /></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="memdesc:af49629d8d427ee579d9b28c1e25818e0 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule). <a href="../../df/de0/class_o_n___geometry.html#af49629d8d427ee579d9b28c1e25818e0">More...</a><br /></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="memdesc:a1b847d6dcda412468ab59f06328b2619 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales the object by the specified facotor. The scale is centered at the origin. <a href="../../df/de0/class_o_n___geometry.html#a1b847d6dcda412468ab59f06328b2619">More...</a><br /></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="memdesc:a3b47e669fde50b5223a8017863598e89 inherit pub_methods_class_o_n___geometry"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates the object along the specified vector. <a href="../../df/de0/class_o_n___geometry.html#a3b47e669fde50b5223a8017863598e89">More...</a><br /></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="memdesc:a8a1cfab63437a2d03cc50fdc6734f2a5 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. <a href="../../d9/d7b/class_o_n___object.html#a8a1cfab63437a2d03cc50fdc6734f2a5">More...</a><br /></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="memdesc:ad5432b341051664c185b10712a6e5b79 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach user data to an object. <a href="../../d9/d7b/class_o_n___object.html#ad5432b341051664c185b10712a6e5b79">More...</a><br /></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="memdesc:a27893ff72ca7abbe985f8b5f4ccd900e inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all active level component states to <a class="el" href="../../d9/d12/class_o_n___component_status.html#ae267cd5d4088c8a033fa348d30227223">ON_ComponentStatus::NoneSet</a>. <a href="../../d9/d7b/class_o_n___object.html#a27893ff72ca7abbe985f8b5f4ccd900e">More...</a><br /></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="memdesc:a1af75ebe418edff4a11985f8fca7d83b inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the specified states on every component. <a href="../../d9/d7b/class_o_n___object.html#a1af75ebe418edff4a11985f8fca7d83b">More...</a><br /></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="memdesc:aeadf76a46f3f1a661bbf41e1b754fe89 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear states on an individual component. <a href="../../d9/d7b/class_o_n___object.html#aeadf76a46f3f1a661bbf41e1b754fe89">More...</a><br /></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="memdesc:ad044157e5c1efde9fce1c6ccf6e81ff3 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expert user tool that copies user data items with positive values of <a class="el" href="../../d5/d55/class_o_n___user_data.html#ac025400e9bff35c899ed85ba1b0a52e4">ON_UserData.m_userdata_copycount</a> from source_object to "this. <a href="../../d9/d7b/class_o_n___object.html#ad044157e5c1efde9fce1c6ccf6e81ff3">More...</a><br /></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="memdesc:a58958333257eba5575a6a1b09c366c1b inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls CopyUserData(source_object,ON_Object::UserDataConflictResolution::source_object). <a href="../../d9/d7b/class_o_n___object.html#a58958333257eba5575a6a1b09c366c1b">More...</a><br /></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="memdesc:aa67be7d8cc76ec82ae22a30093ecf98f inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the portions of the object identified in ci_list[]. <a href="../../d9/d7b/class_o_n___object.html#aa67be7d8cc76ec82ae22a30093ecf98f">More...</a><br /></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="memdesc:a1dbb0eff3b2287152b40991b3afca9ee inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove user data from an object. <a href="../../d9/d7b/class_o_n___object.html#a1dbb0eff3b2287152b40991b3afca9ee">More...</a><br /></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="memdesc:ad265ca0da2d751edaa9d2b5ab2540c6a inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets m_user_data_list = 0. <a href="../../d9/d7b/class_o_n___object.html#ad265ca0da2d751edaa9d2b5ab2540c6a">More...</a><br /></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="memdesc:adb43bb324c44740c4bc2932e2f95c835 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">User data is stored as a linked list of <a class="el" href="../../d5/d55/class_o_n___user_data.html">ON_UserData</a> classes. FirstUserData gets the first item in the linked list. This is the most recent item attached using <a class="el" href="../../d9/d7b/class_o_n___object.html#ad5432b341051664c185b10712a6e5b79" title="Attach user data to an object. ">AttachUserData()</a>. Remark: To iterate through all the user data on an object, call <a class="el" href="../../d9/d7b/class_o_n___object.html#adb43bb324c44740c4bc2932e2f95c835" title="User data is stored as a linked list of ON_UserData classes. FirstUserData gets the first item in the...">FirstUserData()</a> and then use <a class="el" href="../../d5/d55/class_o_n___user_data.html#a5e5a0d01e000319e0b37b340752613d8">ON_UserData::Next()</a> to traverse the list. <a href="../../d9/d7b/class_o_n___object.html#adb43bb324c44740c4bc2932e2f95c835">More...</a><br /></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="memdesc:a29f8d609e22008680581c6ca72ac47df inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to user data. <a href="../../d9/d7b/class_o_n___object.html#a29f8d609e22008680581c6ca72ac47df">More...</a><br /></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="memdesc:ab40b5e89b4766299e415593b31a3849c inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get user string from the object. <a href="../../d9/d7b/class_o_n___object.html#ab40b5e89b4766299e415593b31a3849c">More...</a><br /></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="memdesc:ac285fba1506b2b9b821e3655582939c4 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of all user string keys on the object. <a href="../../d9/d7b/class_o_n___object.html#ac285fba1506b2b9b821e3655582939c4">More...</a><br /></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="memdesc:a004ab49490f69fcdc7681919c3837a33 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of all user strings on the object. <a href="../../d9/d7b/class_o_n___object.html#a004ab49490f69fcdc7681919c3837a33">More...</a><br /></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="memdesc:afe5367058a90545e81cd79b78103175d inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level tool to test if an object is derived from a specified class. <a href="../../d9/d7b/class_o_n___object.html#afe5367058a90545e81cd79b78103175d">More...</a><br /></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="memdesc:a609192fbafecbe4be3136d8cb4dce882 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. <a href="../../d9/d7b/class_o_n___object.html#a609192fbafecbe4be3136d8cb4dce882">More...</a><br /></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="memdesc:ae0674ccb79b6333e4b3c8e95ee10dd73 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="../../d9/d7b/class_o_n___object.html#ae0674ccb79b6333e4b3c8e95ee10dd73" title="The MemoryRelocate() function is called when an object&#39;s location in memory is changed. For example, if an object resides in a chunk of memory that is grown by calling a realloc that has to allocate a new chunk and copy the contents of the old chunk to the new chunk, then the location of the object&#39;s memory changes. In practice this happens when classes derived from ON_Object are stored in dynamic arrays, like the default implementation of ON_ObjectArray&lt;&gt;&#39;s that use realloc to grow the dynamic array. ">MemoryRelocate()</a> function is called when an object's location in memory is changed. For example, if an object resides in a chunk of memory that is grown by calling a realloc that has to allocate a new chunk and copy the contents of the old chunk to the new chunk, then the location of the object's memory changes. In practice this happens when classes derived from <a class="el" href="../../d9/d7b/class_o_n___object.html" title="Pure virtual base class for all classes that must provide runtime class id or support object level 3D...">ON_Object</a> are stored in dynamic arrays, like the default implementation of ON_ObjectArray&lt;&gt;'s that use realloc to grow the dynamic array. <a href="../../d9/d7b/class_o_n___object.html#ae0674ccb79b6333e4b3c8e95ee10dd73">More...</a><br /></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="memdesc:a21c508d3b53458e252adbcd29e62ed09 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">All objects in an opennurbs model have an id ( ON_Layer.m_layer_id, ON_Font.m_font_id, ON_Material.m_material_id, <a class="el" href="../../d0/d52/class_o_n__3dm_object_attributes.html#a806a85052b002c45021650e3b97e2018">ON_3dmObjectAttributes.m_uuid</a> ). <a href="../../d9/d7b/class_o_n___object.html#a21c508d3b53458e252adbcd29e62ed09">More...</a><br /></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="memdesc:a78b4ecb2eb36641e1ee6b4fc6129606e inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expert user tool that moves user data items from source_object to "this. <a href="../../d9/d7b/class_o_n___object.html#a78b4ecb2eb36641e1ee6b4fc6129606e">More...</a><br /></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="memdesc:a54a891ae2cb2a25008a7a39cb19dfcea inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls MoveUserData(source_object,ON_Object::UserDataConflictResolution::source_object,true). <a href="../../d9/d7b/class_o_n___object.html#a54a891ae2cb2a25008a7a39cb19dfcea">More...</a><br /></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="memdesc:a88b61cafc0024ecb7a4bd22da2718680 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d9/d7b/class_o_n___object.html#a88b61cafc0024ecb7a4bd22da2718680" title="PurgeUserData() removes all user data from object. ">PurgeUserData()</a> removes all user data from object. <a href="../../d9/d7b/class_o_n___object.html#a88b61cafc0024ecb7a4bd22da2718680">More...</a><br /></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="memdesc:ab728c0576fd5913bc1575b74997bddb5 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set states on an individual component. <a href="../../d9/d7b/class_o_n___object.html#ab728c0576fd5913bc1575b74997bddb5">More...</a><br /></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="memdesc:a589f1fdc28f6259d1bd22bdedc9c4c76 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy status settings to an individual component. <a href="../../d9/d7b/class_o_n___object.html#a589f1fdc28f6259d1bd22bdedc9c4c76">More...</a><br /></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="memdesc:a074dc9e9b919853919564793c37f5143 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a user string to the object. This information will perisist through copy construction, operator=, and file IO. <a href="../../d9/d7b/class_o_n___object.html#a074dc9e9b919853919564793c37f5143">More...</a><br /></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="memdesc:a7234af898c307a2c2f7931db7e627592 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append entries to the user string list <a href="../../d9/d7b/class_o_n___object.html#a7234af898c307a2c2f7931db7e627592">More...</a><br /></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="memdesc:a881bd2f0d8515adba1c42c578bcb7052 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Objects derived from <a class="el" href="../../df/de0/class_o_n___geometry.html" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">ON_Geometry</a> must call <a class="el" href="../../d9/d7b/class_o_n___object.html#a881bd2f0d8515adba1c42c578bcb7052" title="Objects derived from ON_Geometry must call TransformUserData() in their Transform() member function...">TransformUserData()</a> in their Transform() member function. <a href="../../d9/d7b/class_o_n___object.html#a881bd2f0d8515adba1c42c578bcb7052">More...</a><br /></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="memdesc:a82188bbf97bbd149ac6fcb7cd8e989d1 inherit pub_methods_class_o_n___object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses the destination_manifest to update references to other components. This is typically done when a component's references came from a "source" context and are being updated to the "destination" context. For example, inserting one model into another when index, id, and name conflicts need to be resolved at the time of insertion. <a href="../../d9/d7b/class_o_n___object.html#a82188bbf97bbd149ac6fcb7cd8e989d1">More...</a><br /></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="memdesc:ae7c56b7fdf47eb66fb68ac6af116118d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ae7c56b7fdf47eb66fb68ac6af116118d" title="Use ON_NurbsSurface::New(...) instead of new ON_NurbsSurface(...) ">ON_NurbsSurface::New</a>(...) instead of new <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>(...) <a href="#ae7c56b7fdf47eb66fb68ac6af116118d">More...</a><br /></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="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="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 />
}<tr class="memdesc:a7f520e987ffa14e71b06493340f9956c"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a userdata item is copied or moved from a source object to a destination object, the <a class="el" href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956c" title="When a userdata item is copied or moved from a source object to a destination object, the ON_Object::UserDataConflictResolution enum values specify how conficts are resolved. Remark: A userdata item &quot;conflict&quot; occurs when both the destination and source object have a user data item with the same value of ON_UserData::m_userdata_uuid. ">ON_Object::UserDataConflictResolution</a> enum values specify how conficts are resolved. Remark: A userdata item "conflict" occurs when both the destination and source object have a user data item with the same value of <a class="el" href="../../d5/d55/class_o_n___user_data.html#a9bc044ba84a529fe2195d8f8a817fda2" title="This uuid is the value that must be passed to ON_Object::GetUserData() to retrieve this piece of user...">ON_UserData::m_userdata_uuid</a>. <a href="../../d9/d7b/class_o_n___object.html#a7f520e987ffa14e71b06493340f9956c">More...</a><br /></td></tr>
</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">
</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">
</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>If the surface is closed in direction dir, then modify it so that the seam is at parameter t in the dir direction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] must be 0 or 1</td></tr>
<tr><td class="paramname">t</td><td>[in] dir parameter of seam, must have Domain(dir).Includes(t). The resulting surface domain in the dir direction will start at t.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
</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">
</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>Collapse the side of a NURBS surface to a single point. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">side</td><td>[in] 0 = south west, 1 = south east, 2 = north east, 3 = north west</td></tr>
<tr><td class="paramname">point</td><td>[in] point to collapse to. If point is <a class="el" href="../../d2/d35/class_o_n__3d_point.html#aa68906e3e7650b01ce88c527f6088d7d">ON_3dPoint::UnsetPoint</a>, the the current location of the start of the side is used.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if successful. </dd></dl>
<p>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">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>[in] zero based control point index</td></tr>
<tr><td class="paramname">j</td><td>[in] zero based control point index</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Control point as an <a class="el" href="../../d9/db1/class_o_n__4d_point.html">ON_4dPoint</a>. </dd></dl>
<p>If i, j, or the nurbs surface is not valid, then <a class="el" href="../../d9/db1/class_o_n__4d_point.html#a83f0c10fc5a0eb0d8929a66c5131e150">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>Get the maximum length of a nurb surface's control polygon rows and/or columns </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] 0 to get "u" direction length, 1 to get "v" direction length</td></tr>
<tr><td class="paramname">length</td><td>[out] maximum length of a polygon "row" in the specified direction</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
</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>Convert a NURBS surface bispan into a bezier surface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">span_index0</td><td>[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]</td></tr>
<tr><td class="paramname">span_index1</td><td>[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]</td></tr>
<tr><td class="paramname">bezier_surface</td><td>[out] bezier surface returned here</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful false if input is not valid </dd></dl>
</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">
</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>Create a cone surface from a curve to a point. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">apex_point</td><td>[in]</td></tr>
<tr><td class="paramname">curve</td><td>[in]</td></tr>
<tr><td class="paramname">curve_domain</td><td>[in] if not nullptr, then this is a subdomain of curve to use for the ruled surface.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>table 0 failure 1 success - parameterization is exact 2 success - parameterization is not exact </dd></dl>
<p>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>Create a ruled surface from two curves. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">curveA</td><td>[in] (must have same NURBS form knots as curveB)</td></tr>
<tr><td class="paramname">curveB</td><td>[in] (must have same NURBS form knots as curveA)</td></tr>
<tr><td class="paramname">curveA_domain</td><td>[in] if not nullptr, then this is a subdomain of curveA to use for the ruled surface.</td></tr>
<tr><td class="paramname">curveB_domain</td><td>[in] if not nullptr, then this is a subdomain of curveA to use for the ruled surface.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>table 0 failure 1 success - parameterization is exact 2 success - parameterization is not exact </dd></dl>
<p>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>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; ). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>[in] (0 &lt;= i &lt; m_cv_count[0])</td></tr>
<tr><td class="paramname">j</td><td>[in] (0 &lt;= j &lt; m_cv_count[1])</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to control vertex. </dd></dl>
<p>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" title="Returns the style of control vertices in the m_cv array. ">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>Returns the style of control vertices in the m_cv array. </p>
<dl class="section return"><dt>Returns</dt><dd>table ON::not_rational m_is_rat is false ON::homogeneous_rational m_is_rat is true </dd></dl>
</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" title="Returns a CRC calculated from the information that defines the object. This CRC can be used as a quic...">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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">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>Creates a text dump of the object. </p>
<p><a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a74d364c467258afb3550ab265a3d8c50" title="Creates a text dump of the object. ">Dump()</a> is intended for debugging and is not suitable for creating high quality text descriptions of an object.</p>
<p>The default implementations of this virtual function prints the class's name. </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">
</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>
<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>Where possible, analytically extends surface to include domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] 0 new Domain(0) will include domain. (the first surface parameter). 1 new Domain(1) will include domain. (the second surface parameter).</td></tr>
<tr><td class="paramname">domain</td><td>[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,</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
<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" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">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">
</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">
</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">
</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">
</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>Search for a derivatitive, tangent, or curvature discontinuity. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] If 0, then "u" parameter is checked. If 1, then the "v" parameter is checked.</td></tr>
<tr><td class="paramname">c</td><td>[in] type of continity to test for.</td></tr>
<tr><td class="paramname">t0</td><td>[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.</td></tr>
<tr><td class="paramname">t1</td><td>[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.</td></tr>
<tr><td class="paramname">t</td><td>[out] if a discontinuity is found, then *t reports the parameter at the discontinuity.</td></tr>
<tr><td class="paramname">hint</td><td>[in/out] if GetNextDiscontinuity will be called repeatedly, passing a "hint" with initial value *hint=0 will increase the speed of the search.</td></tr>
<tr><td class="paramname">dtype</td><td>[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.</td></tr>
<tr><td class="paramname">cos_angle_tolerance</td><td>[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.</td></tr>
<tr><td class="paramname">curvature_tolerance</td><td>[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.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><p class="startdd">Parametric continuity tests c = (C0_continuous, ..., G2_continuous): </p><pre class="fragment">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.
</pre><p class="enddd">Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): </p><pre class="fragment">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 (IsClosed()=false) are locus
discontinuous at the ends of their domains. All closed
curves (IsClosed()=true) are at least C0_locus_continuous at
the ends of their domains.
</pre> </dd></dl>
<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"><em>nurbs_surface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em> = <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>Get a NURBS surface representation of this surface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nurbs_surface</td><td>[out] NURBS representation returned here</td></tr>
<tr><td class="paramname">tolerance</td><td>[in] tolerance to use when creating NURBS representation.</td></tr>
<tr><td class="paramname">s_subdomain</td><td>[in] if not nullptr, then the NURBS representation for this portion of the surface is returned.</td></tr>
<tr><td class="paramname">t_subdomain</td><td>[in] if not nullptr, then the NURBS representation for this portion of the surface is returned.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 unable to create NURBS representation with desired accuracy. 1 success - returned NURBS parameterization matches the surface's to wthe desired accuracy 2 success - returned NURBS point locus matches the surface's to the desired accuracy and the domain of the NURBS surface is correct. On However, This surface's parameterization and the NURBS surface parameterization may not match to the desired accuracy. This situation happens when getting NURBS representations of surfaces that have a transendental parameterization like spheres, cylinders, and cones. </dd></dl>
<p>This is a low-level virtual function. If you do not need the parameterization information provided by the return code, then <a class="el" href="../../da/da0/class_o_n___surface.html#a9c25021d3304fea40d3cfe9b4fb1a58e" title="Get a NURBS surface representation of this surface. ">ON_Surface::NurbsSurface</a> may be easier to use. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../da/da0/class_o_n___surface.html#a9c25021d3304fea40d3cfe9b4fb1a58e" title="Get a NURBS surface representation of this surface. ">ON_Surface::NurbsSurface</a></dd></dl>
<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>Get an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">width</td><td>[out] (corresponds to the first surface parameter)</td></tr>
<tr><td class="paramname">height</td><td>[out] (corresponds to the first surface parameter)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
<p>overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a92b4795bd65f16952895c05319c75128" title="Get an estimate of the size of the rectangle that would be created if the 3d surface where flattened ...">ON_Surface::GetSurfaceSize</a> </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">
</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>Is there a NURBS surface representation of this surface. </p>
<dl class="section return"><dt>Returns</dt><dd>0 unable to create NURBS representation with desired accuracy. 1 success - NURBS parameterization matches the surface's 2 success - NURBS point locus matches the surface's and the domain of the NURBS surface is correct. However, This surface's parameterization and the NURBS surface parameterization may not match. This situation happens when getting NURBS representations of surfaces that have a transendental parameterization like spheres, cylinders, and cones. </dd></dl>
<p>This is a low-level virtual function. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../da/da0/class_o_n___surface.html#a4c4be57a220937dbf697548f3505a693" title="Get a NURBS surface representation of this surface. ">ON_Surface::GetNurbForm</a>, <a class="el" href="../../da/da0/class_o_n___surface.html#a9c25021d3304fea40d3cfe9b4fb1a58e" title="Get a NURBS surface representation of this surface. ">ON_Surface::NurbsSurface</a></dd></dl>
<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">
</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">
</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">
</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">
</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>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>Test continuity at a surface parameter value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>[in] continuity to test for</td></tr>
<tr><td class="paramname">s</td><td>[in] surface parameter to test</td></tr>
<tr><td class="paramname">t</td><td>[in] surface parameter to test</td></tr>
<tr><td class="paramname">hint</td><td>[in] evaluation hint</td></tr>
<tr><td class="paramname">point_tolerance</td><td>[in] if the distance between two points is greater than point_tolerance, then the surface is not C0.</td></tr>
<tr><td class="paramname">d1_tolerance</td><td>[in] if the difference between two first derivatives is greater than d1_tolerance, then the surface is not C1.</td></tr>
<tr><td class="paramname">d2_tolerance</td><td>[in] if the difference between two second derivatives is greater than d2_tolerance, then the surface is not C2.</td></tr>
<tr><td class="paramname">cos_angle_tolerance</td><td>[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.</td></tr>
<tr><td class="paramname">curvature_tolerance</td><td>[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.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the surface has at least the c type continuity at the parameter t. </dd></dl>
<p>Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a5d3ac3b32555c7213b1c2b25705f3d47" title="Test continuity at a surface parameter value. ">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>See if this and other are same NURBS geometry. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>[in] other NURBS surface</td></tr>
<tr><td class="paramname">bIgnoreParameterization</td><td>[in] if true, parameterization and orientaion are ignored.</td></tr>
<tr><td class="paramname">tolerance</td><td>[in] tolerance to use when comparing control points.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if curves are tne same. </dd></dl>
</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>Get isoparametric curve. Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#a91faf7314053e7ebb3ebf12663647f5a" title="Get isoparametric curve. ">ON_Surface::IsoCurve</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[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) </td></tr>
<tr><td class="paramname">c</td><td>[in] value of constant parameter</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Isoparametric curve. </dd></dl>
<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>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>Test a surface to see if it is planar. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">plane</td><td>[out] if not nullptr and true is returned, the plane parameters are filled in.</td></tr>
<tr><td class="paramname">tolerance</td><td>[in] tolerance to use when checking</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if there is a plane such that the maximum distance from the surface to the plane is &lt;= tolerance. </dd></dl>
<p>Overrides virtual <a class="el" href="../../da/da0/class_o_n___surface.html#ae72f5823aecfe07f1fd086a2e1deebc2" title="Test a surface to see if it is planar. ">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" title="Pure virtual base class for all classes that must provide runtime class id or support object level 3D...">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">
</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">
</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">
</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">
</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>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] 0 = u knots, 1 = v knots</td></tr>
<tr><td class="paramname">delta</td><td><a href="../../&gt;0.0">in</a> knot spacing.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
<p>Allocates m_knot[] if it is not big enough. </p>
<dl class="section see"><dt>See also</dt><dd>ON_MakeClampedUniformKnotVector</dd></dl>
</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" title="If possible, converts the object into a form that can be accuratly modified with &quot;squishy&quot; transforma...">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>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[in] 0 = u knots, 1 = v knots</td></tr>
<tr><td class="paramname">delta</td><td><a href="../../&gt;0.0">in</a> knot spacing.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
<p>Allocates m_knot[] if it is not big enough. </p>
<dl class="section see"><dt>See also</dt><dd>ON_MakePeriodicUniformKnotVector</dd></dl>
</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>Use <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#ae7c56b7fdf47eb66fb68ac6af116118d" title="Use ON_NurbsSurface::New(...) instead of new ON_NurbsSurface(...) ">ON_NurbsSurface::New</a>(...) instead of new <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>(...) </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to an <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>. Destroy by calling delete. </dd></dl>
<p>See static ON_Brep* <a class="el" href="../../d9/d96/class_o_n___brep.html#acced23d3a7d4bc67e1f9c49161e821ad" title="Use ON_Brep::New() instead of new ON_Brep() when writing Rhino plug-ins (or when openNURBS is used as...">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>Offset surface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">offset_distance</td><td>[in] offset distance</td></tr>
<tr><td class="paramname">tolerance</td><td>[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.</td></tr>
<tr><td class="paramname">max_deviation</td><td>[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.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Offset surface. </dd></dl>
</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>Set NURBS surface equal to bezier surface with domain [0,1]x[0,1]. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bezier_surface</td><td>[in]</td></tr>
</table>
</dd>
</dl>
</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>Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a025b86c1da38eb51f66d6260b1141ac3" title="Reads and object from a 3dm archive; ">ON_BinaryArchive::ReadObject()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">binary_archive</td><td>archive to read from</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns true if the read is successful. </dd></dl>
<p>Use <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a025b86c1da38eb51f66d6260b1141ac3" title="Reads and object from a 3dm archive; ">ON_BinaryArchive::ReadObject()</a> to read objects. This <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a38284671127a33e47b114e398cdd4cef" title="Low level archive writing tool used by ON_BinaryArchive::ReadObject(). ">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>
<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">
</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>
</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">
</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">
</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">
</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">
</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">
</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">
</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">
</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">
</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>
<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">
</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">
</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>Set value of control vertex weight. If surface is non-rational, it will be converted to rational. </p>
</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>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>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" title="Splits (divides) the surface into two parts at the specified parameter. ">ON_Surface::Split</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[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".</td></tr>
<tr><td class="paramname">c</td><td>[in] value of constant parameter in interval returned by Domain(dir)</td></tr>
<tr><td class="paramname">west_or_south_side</td><td>[out] west/south portion of surface returned here</td></tr>
<tr><td class="paramname">east_or_north_side</td><td>[out] east/north portion of surface returned here </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line">@verbatim</div><div class="line"> <a class="code" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a> srf = ...;</div><div class="line"> <span class="keywordtype">int</span> dir = 1;</div><div class="line"> <a class="code" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* south_side = 0;</div><div class="line"> <a class="code" href="../../de/ddc/class_o_n___nurbs_surface.html">ON_NurbsSurface</a>* north_side = 0;</div><div class="line"> srf.<a class="code" href="../../de/ddc/class_o_n___nurbs_surface.html#a0b854a026aec20be6ca115375963dd6f">Split</a>( dir, srf.Domain(dir).Mid() south_side, north_side );</div><div class="line"><span class="keyword">@end</span>verbatim</div></div><!-- fragment -->
<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">
</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>Swaps object coordinate values with indices i and j. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>[in] coordinate index</td></tr>
<tr><td class="paramname">j</td><td>[in] coordinate index </td></tr>
</table>
</dd>
</dl>
<p>The default implementation uses the virtual <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a9f9ad68b7da808c24e6a52e5aa82009d" title="Transforms the object. ">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" title="Transforms the object. ">Transform()</a> is slow, coordinate swapping will be frequently used, and coordinate swapping can be quickly accomplished, then override this function.</p>
<div class="fragment"><div class="line">@verbatim</div><div class="line"> <a class="code" href="../../d0/d8d/class_o_n___point.html">ON_Point</a> point(7,8,9);</div><div class="line"> point.SwapCoordinates(0,2);</div><div class="line"> <span class="comment">// point = (9,8,7)</span></div><div class="line"><span class="keyword">@end</span>verbatim</div></div><!-- fragment -->
<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>Transforms the object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">xform</td><td>[in] transformation to apply to object. If xform.IsSimilarity() is zero, then you may want to call MakeSquishy() before calling Transform. </td></tr>
</table>
</dd>
</dl>
<p>Classes derived from <a class="el" href="../../df/de0/class_o_n___geometry.html" title="Base class for all geometry classes that must provide runtime class id. Provides interface for common...">ON_Geometry</a> should call <a class="el" href="../../df/de0/class_o_n___geometry.html#add710872e89bc29e1ed1321b3e70b1b1" title="Transforms the object. ">ON_Geometry::Transform()</a> to handle user data transformations and then transform their definition. </p>
<dl class="section see"><dt>See also</dt><dd>ON_Geometry::IsDeformable();, </dd></dl>
<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>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>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" title="Removes the portions of the surface outside of the specified interval. ">ON_Surface::Trim</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dir</td><td>[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).</td></tr>
<tr><td class="paramname">domain</td><td>[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.</td></tr>
</table>
</dd>
</dl>
<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">
</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>Low level archive writing tool used by <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a33187abe5d04ac52c41d7a798e664f3b">ON_BinaryArchive::WriteObject()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">binary_archive</td><td>archive to write to</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns true if the write is successful. </dd></dl>
<p>Use <a class="el" href="../../db/d16/class_o_n___binary_archive.html#a33187abe5d04ac52c41d7a798e664f3b">ON_BinaryArchive::WriteObject()</a> to write objects. This <a class="el" href="../../de/ddc/class_o_n___nurbs_surface.html#a33cdca32f2bb2e41d795e2a7d38a4b26" title="Low level archive writing tool used by ON_BinaryArchive::WriteObject(). ">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>
<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">
</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">
</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">
</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">
</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>
</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>
</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">
</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">
</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>
</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">
</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
</div> <!-- page-content -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Feb 3 2018 11:08:31 for openNURBS SDK Help by <a href="http://www.doxygen.org/index.html">
<!-- <img class="footer" src="../../doxygen.png" alt="doxygen"/> -->
Doxygen
</a> 1.8.13
</small></address>
</div> <!-- container -->
<!-- doxy-boot -->
<script type="text/javascript" src="../../doxy-boot.js"></script>
</body>
</html>