Files
ViewDesignEngine/docs/api/classvde_1_1brep_1_1BrepModel.html
T

1031 lines
51 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ViewDesignEngine: vde::brep::BrepModel类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ViewDesignEngine
&#160;<span id="projectnumber">3.1.0</span>
</div>
<div id="projectbrief">高性能 CAD 计算几何引擎</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','搜索');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classvde_1_1brep_1_1BrepModel.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="classvde_1_1brep_1_1BrepModel-members.html">所有成员列表</a> </div>
<div class="headertitle">
<div class="title">vde::brep::BrepModel类 参考</div> </div>
</div><!--header-->
<div class="contents">
<p>B-Rep 模型
<a href="classvde_1_1brep_1_1BrepModel.html#details">更多...</a></p>
<p><code>#include &lt;<a class="el" href="brep_8h_source.html">brep.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a7d1ecd95609c94fa88535166b1c51672"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a7d1ecd95609c94fa88535166b1c51672">BrepModel</a> ()=default</td></tr>
<tr class="separator:a7d1ecd95609c94fa88535166b1c51672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e76826b69c28df2c895512333d003e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a9e76826b69c28df2c895512333d003e6">add_vertex</a> (const Point3D &amp;p)</td></tr>
<tr class="memdesc:a9e76826b69c28df2c895512333d003e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加顶点 <a href="classvde_1_1brep_1_1BrepModel.html#a9e76826b69c28df2c895512333d003e6">更多...</a><br /></td></tr>
<tr class="separator:a9e76826b69c28df2c895512333d003e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c20a9c2383526607b317c93da4e8dfe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a9c20a9c2383526607b317c93da4e8dfe">add_edge</a> (int v0, int v1)</td></tr>
<tr class="memdesc:a9c20a9c2383526607b317c93da4e8dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加直线边 <a href="classvde_1_1brep_1_1BrepModel.html#a9c20a9c2383526607b317c93da4e8dfe">更多...</a><br /></td></tr>
<tr class="separator:a9c20a9c2383526607b317c93da4e8dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d010962da8dcb68ff55021e5fa3b2a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a88d010962da8dcb68ff55021e5fa3b2a">add_edge</a> (int v0, int v1, const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &amp;curve)</td></tr>
<tr class="memdesc:a88d010962da8dcb68ff55021e5fa3b2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加曲线边 <a href="classvde_1_1brep_1_1BrepModel.html#a88d010962da8dcb68ff55021e5fa3b2a">更多...</a><br /></td></tr>
<tr class="separator:a88d010962da8dcb68ff55021e5fa3b2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed200b1b14c7c75e8b2c14d724346270"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#aed200b1b14c7c75e8b2c14d724346270">add_loop</a> (const std::vector&lt; int &gt; &amp;edges, bool outer=true)</td></tr>
<tr class="memdesc:aed200b1b14c7c75e8b2c14d724346270"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加环 <a href="classvde_1_1brep_1_1BrepModel.html#aed200b1b14c7c75e8b2c14d724346270">更多...</a><br /></td></tr>
<tr class="separator:aed200b1b14c7c75e8b2c14d724346270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44b9a85f1ad532c5cd07d67aa6674cdb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a44b9a85f1ad532c5cd07d67aa6674cdb">add_face</a> (int surface_id, const std::vector&lt; int &gt; &amp;loops)</td></tr>
<tr class="memdesc:a44b9a85f1ad532c5cd07d67aa6674cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加面 <a href="classvde_1_1brep_1_1BrepModel.html#a44b9a85f1ad532c5cd07d67aa6674cdb">更多...</a><br /></td></tr>
<tr class="separator:a44b9a85f1ad532c5cd07d67aa6674cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17893a81300978999efb5db495badf3f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a17893a81300978999efb5db495badf3f">add_shell</a> (const std::vector&lt; int &gt; &amp;faces, bool closed=true)</td></tr>
<tr class="memdesc:a17893a81300978999efb5db495badf3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加壳 <a href="classvde_1_1brep_1_1BrepModel.html#a17893a81300978999efb5db495badf3f">更多...</a><br /></td></tr>
<tr class="separator:a17893a81300978999efb5db495badf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9b926330ae35a75f29d615206737fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a6f9b926330ae35a75f29d615206737fe">add_body</a> (const std::vector&lt; int &gt; &amp;shells, const std::string &amp;name=&quot;&quot;)</td></tr>
<tr class="memdesc:a6f9b926330ae35a75f29d615206737fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加体 <a href="classvde_1_1brep_1_1BrepModel.html#a6f9b926330ae35a75f29d615206737fe">更多...</a><br /></td></tr>
<tr class="separator:a6f9b926330ae35a75f29d615206737fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbef82c30113989bfb3107e143d16cfb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#afbef82c30113989bfb3107e143d16cfb">add_surface</a> (const <a class="el" href="classvde_1_1curves_1_1NurbsSurface.html">curves::NurbsSurface</a> &amp;surf)</td></tr>
<tr class="memdesc:afbef82c30113989bfb3107e143d16cfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">添加 NURBS 曲面 <a href="classvde_1_1brep_1_1BrepModel.html#afbef82c30113989bfb3107e143d16cfb">更多...</a><br /></td></tr>
<tr class="separator:afbef82c30113989bfb3107e143d16cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5768a93843e06429ca418479e5692f1d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a5768a93843e06429ca418479e5692f1d">num_vertices</a> () const</td></tr>
<tr class="memdesc:a5768a93843e06429ca418479e5692f1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">顶点数量 <a href="classvde_1_1brep_1_1BrepModel.html#a5768a93843e06429ca418479e5692f1d">更多...</a><br /></td></tr>
<tr class="separator:a5768a93843e06429ca418479e5692f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab157c6eb13ecd81137388265e97b7215"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#ab157c6eb13ecd81137388265e97b7215">num_edges</a> () const</td></tr>
<tr class="memdesc:ab157c6eb13ecd81137388265e97b7215"><td class="mdescLeft">&#160;</td><td class="mdescRight">边数量 <a href="classvde_1_1brep_1_1BrepModel.html#ab157c6eb13ecd81137388265e97b7215">更多...</a><br /></td></tr>
<tr class="separator:ab157c6eb13ecd81137388265e97b7215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab202efbf35826406df1fc4cada91c19c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#ab202efbf35826406df1fc4cada91c19c">num_faces</a> () const</td></tr>
<tr class="memdesc:ab202efbf35826406df1fc4cada91c19c"><td class="mdescLeft">&#160;</td><td class="mdescRight">面数量 <a href="classvde_1_1brep_1_1BrepModel.html#ab202efbf35826406df1fc4cada91c19c">更多...</a><br /></td></tr>
<tr class="separator:ab202efbf35826406df1fc4cada91c19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a466ad65cfb9c69ff0bb0aa292bf4996d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a466ad65cfb9c69ff0bb0aa292bf4996d">num_bodies</a> () const</td></tr>
<tr class="memdesc:a466ad65cfb9c69ff0bb0aa292bf4996d"><td class="mdescLeft">&#160;</td><td class="mdescRight">体数量 <a href="classvde_1_1brep_1_1BrepModel.html#a466ad65cfb9c69ff0bb0aa292bf4996d">更多...</a><br /></td></tr>
<tr class="separator:a466ad65cfb9c69ff0bb0aa292bf4996d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af571065b0efbcb72540a71ae24113a29"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#af571065b0efbcb72540a71ae24113a29">num_surfaces</a> () const</td></tr>
<tr class="memdesc:af571065b0efbcb72540a71ae24113a29"><td class="mdescLeft">&#160;</td><td class="mdescRight">曲面数量 <a href="classvde_1_1brep_1_1BrepModel.html#af571065b0efbcb72540a71ae24113a29">更多...</a><br /></td></tr>
<tr class="separator:af571065b0efbcb72540a71ae24113a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adca4ecc4190da95419d61f7426573e2d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvde_1_1brep_1_1TopoVertex.html">TopoVertex</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#adca4ecc4190da95419d61f7426573e2d">vertex</a> (int id) const</td></tr>
<tr class="memdesc:adca4ecc4190da95419d61f7426573e2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">按数组索引访问顶点 <a href="classvde_1_1brep_1_1BrepModel.html#adca4ecc4190da95419d61f7426573e2d">更多...</a><br /></td></tr>
<tr class="separator:adca4ecc4190da95419d61f7426573e2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8049b8f53489d7c460147b54784542e6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvde_1_1brep_1_1TopoVertex.html">TopoVertex</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a8049b8f53489d7c460147b54784542e6">vertex_by_id</a> (int id) const</td></tr>
<tr class="memdesc:a8049b8f53489d7c460147b54784542e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">按唯一 ID 访问顶点(适用于边数据中的 ID 引用) <a href="classvde_1_1brep_1_1BrepModel.html#a8049b8f53489d7c460147b54784542e6">更多...</a><br /></td></tr>
<tr class="separator:a8049b8f53489d7c460147b54784542e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bcc4ed7d364a05b2e50e133928f22e2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvde_1_1brep_1_1TopoEdge.html">TopoEdge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a0bcc4ed7d364a05b2e50e133928f22e2">edge</a> (int id) const</td></tr>
<tr class="memdesc:a0bcc4ed7d364a05b2e50e133928f22e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">按数组索引访问边 <a href="classvde_1_1brep_1_1BrepModel.html#a0bcc4ed7d364a05b2e50e133928f22e2">更多...</a><br /></td></tr>
<tr class="separator:a0bcc4ed7d364a05b2e50e133928f22e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae583d160026418fc5ade04126a8615c3"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvde_1_1brep_1_1TopoFace.html">TopoFace</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#ae583d160026418fc5ade04126a8615c3">face</a> (int id) const</td></tr>
<tr class="memdesc:ae583d160026418fc5ade04126a8615c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">按数组索引访问面 <a href="classvde_1_1brep_1_1BrepModel.html#ae583d160026418fc5ade04126a8615c3">更多...</a><br /></td></tr>
<tr class="separator:ae583d160026418fc5ade04126a8615c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef8551588ed95e736b4b50abc03fb9b5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classvde_1_1curves_1_1NurbsSurface.html">curves::NurbsSurface</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#aef8551588ed95e736b4b50abc03fb9b5">surface</a> (int id) const</td></tr>
<tr class="memdesc:aef8551588ed95e736b4b50abc03fb9b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">按数组索引访问曲面 <a href="classvde_1_1brep_1_1BrepModel.html#aef8551588ed95e736b4b50abc03fb9b5">更多...</a><br /></td></tr>
<tr class="separator:aef8551588ed95e736b4b50abc03fb9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51def78dc475fc0c218e5e131f3bf286"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvde_1_1brep_1_1TopoLoop.html">TopoLoop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a51def78dc475fc0c218e5e131f3bf286">loop_by_id</a> (int id) const</td></tr>
<tr class="memdesc:a51def78dc475fc0c218e5e131f3bf286"><td class="mdescLeft">&#160;</td><td class="mdescRight">按唯一 ID 访问环 <a href="classvde_1_1brep_1_1BrepModel.html#a51def78dc475fc0c218e5e131f3bf286">更多...</a><br /></td></tr>
<tr class="separator:a51def78dc475fc0c218e5e131f3bf286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15cb723042a98c50e317fd74c9b37260"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="structvde_1_1brep_1_1TopoLoop.html">TopoLoop</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a15cb723042a98c50e317fd74c9b37260">all_loops</a> () const</td></tr>
<tr class="memdesc:a15cb723042a98c50e317fd74c9b37260"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取所有环的只读引用 <a href="classvde_1_1brep_1_1BrepModel.html#a15cb723042a98c50e317fd74c9b37260">更多...</a><br /></td></tr>
<tr class="separator:a15cb723042a98c50e317fd74c9b37260"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a877d26a68d990e509ab7ce4503ee2475"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacevde_1_1core.html#a5e6679209cad0695e1b9d088c4b0e224">core::AABB3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a877d26a68d990e509ab7ce4503ee2475">bounds</a> () const</td></tr>
<tr class="memdesc:a877d26a68d990e509ab7ce4503ee2475"><td class="mdescLeft">&#160;</td><td class="mdescRight">计算模型的轴对齐包围盒 <a href="classvde_1_1brep_1_1BrepModel.html#a877d26a68d990e509ab7ce4503ee2475">更多...</a><br /></td></tr>
<tr class="separator:a877d26a68d990e509ab7ce4503ee2475"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c7273fff65281e8ce2353808b8e84ed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a1c7273fff65281e8ce2353808b8e84ed">is_valid</a> () const</td></tr>
<tr class="memdesc:a1c7273fff65281e8ce2353808b8e84ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">检查模型有效性(快速版本) <a href="classvde_1_1brep_1_1BrepModel.html#a1c7273fff65281e8ce2353808b8e84ed">更多...</a><br /></td></tr>
<tr class="separator:a1c7273fff65281e8ce2353808b8e84ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3499a6dd3a531cc4df59b2ffa4fa98f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1mesh_1_1HalfedgeMesh.html">mesh::HalfedgeMesh</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a3499a6dd3a531cc4df59b2ffa4fa98f2">to_mesh</a> (double deflection=0.01) const</td></tr>
<tr class="memdesc:a3499a6dd3a531cc4df59b2ffa4fa98f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">将 B-Rep 模型 tessellate 为三角网格 <a href="classvde_1_1brep_1_1BrepModel.html#a3499a6dd3a531cc4df59b2ffa4fa98f2">更多...</a><br /></td></tr>
<tr class="separator:a3499a6dd3a531cc4df59b2ffa4fa98f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0d546ea8d18f0c5607c34b10f269823"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#ac0d546ea8d18f0c5607c34b10f269823">face_edges</a> (int face_id) const</td></tr>
<tr class="memdesc:ac0d546ea8d18f0c5607c34b10f269823"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取面的所有边 <a href="classvde_1_1brep_1_1BrepModel.html#ac0d546ea8d18f0c5607c34b10f269823">更多...</a><br /></td></tr>
<tr class="separator:ac0d546ea8d18f0c5607c34b10f269823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4f59f590f5c055c0f04bc7e33f63f4"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#afd4f59f590f5c055c0f04bc7e33f63f4">edge_faces</a> (int edge_id) const</td></tr>
<tr class="memdesc:afd4f59f590f5c055c0f04bc7e33f63f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取边的所有相邻面 <a href="classvde_1_1brep_1_1BrepModel.html#afd4f59f590f5c055c0f04bc7e33f63f4">更多...</a><br /></td></tr>
<tr class="separator:afd4f59f590f5c055c0f04bc7e33f63f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e9201043ff1167ba310aefaf46cddc6"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a1e9201043ff1167ba310aefaf46cddc6">vertex_edges</a> (int vertex_id) const</td></tr>
<tr class="memdesc:a1e9201043ff1167ba310aefaf46cddc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取顶点的所有相邻边 <a href="classvde_1_1brep_1_1BrepModel.html#a1e9201043ff1167ba310aefaf46cddc6">更多...</a><br /></td></tr>
<tr class="separator:a1e9201043ff1167ba310aefaf46cddc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>B-Rep 模型 </p>
<p>完整的三维边界表示模型,包含几何和拓扑数据。</p>
<h2><a class="anchor" id="autotoc_md3"></a>
主要职责</h2>
<ul>
<li><b>构建</b>: 通过 add_* 方法从底层构建拓扑结构</li>
<li><b>查询</b>: 获取顶点、面、边及它们的拓扑关系</li>
<li><b>导出</b>: 转换为三角网格(用于渲染)或导出到文件格式</li>
<li><b>验证</b>: 检查水密性和拓扑一致性</li>
</ul>
<h2><a class="anchor" id="autotoc_md4"></a>
容差约定</h2>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">容差 </th><th class="markdownTableHeadNone">典型值 </th><th class="markdownTableHeadNone">用途 </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">顶点容差 </td><td class="markdownTableBodyNone">1e-6 </td><td class="markdownTableBodyNone">判断两点是否视为同一点 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">边曲线容差 </td><td class="markdownTableBodyNone">1e-5 </td><td class="markdownTableBodyNone">曲线拟合精度 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">tessellation </td><td class="markdownTableBodyNone">0.01 </td><td class="markdownTableBodyNone">曲面转网格的弦高误差 </td></tr>
</table>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="brep__validate_8h.html" title="B-Rep 模型综合验证">brep_validate.h</a> 验证 </dd>
<dd>
<a class="el" href="modeling_8h.html" title="高层 B-Rep 建模 API">modeling.h</a> 高层建模 API </dd>
<dd>
<a class="el" href="brep__boolean_8h.html" title="B-Rep 级别的布尔运算">brep_boolean.h</a> 布尔运算 </dd></dl>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00177">177</a> 行定义.</p>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a7d1ecd95609c94fa88535166b1c51672"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d1ecd95609c94fa88535166b1c51672">&#9670;&nbsp;</a></span>BrepModel()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">vde::brep::BrepModel::BrepModel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a6f9b926330ae35a75f29d615206737fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f9b926330ae35a75f29d615206737fe">&#9670;&nbsp;</a></span>add_body()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_body </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>shells</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em> = <code>&quot;&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加体 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">shells</td><td>壳 ID 列表 </td></tr>
<tr><td class="paramname">name</td><td>体名称 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新体的 ID </dd></dl>
</div>
</div>
<a id="a9c20a9c2383526607b317c93da4e8dfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c20a9c2383526607b317c93da4e8dfe">&#9670;&nbsp;</a></span>add_edge() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_edge </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加直线边 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">v0</td><td>起点顶点 ID </td></tr>
<tr><td class="paramname">v1</td><td>终点顶点 ID </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新边的 ID </dd></dl>
</div>
</div>
<a id="a88d010962da8dcb68ff55021e5fa3b2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88d010962da8dcb68ff55021e5fa3b2a">&#9670;&nbsp;</a></span>add_edge() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_edge </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &amp;&#160;</td>
<td class="paramname"><em>curve</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加曲线边 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">v0</td><td>起点顶点 ID </td></tr>
<tr><td class="paramname">v1</td><td>终点顶点 ID </td></tr>
<tr><td class="paramname">curve</td><td>边的几何曲线 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新边的 ID </dd></dl>
</div>
</div>
<a id="a44b9a85f1ad532c5cd07d67aa6674cdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44b9a85f1ad532c5cd07d67aa6674cdb">&#9670;&nbsp;</a></span>add_face()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_face </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>surface_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>loops</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加面 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">surface_id</td><td>关联曲面 ID </td></tr>
<tr><td class="paramname">loops</td><td>环 ID 列表 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新面的 ID </dd></dl>
</div>
</div>
<a id="aed200b1b14c7c75e8b2c14d724346270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed200b1b14c7c75e8b2c14d724346270">&#9670;&nbsp;</a></span>add_loop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_loop </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>edges</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>outer</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加环 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">edges</td><td>环中边的 ID 序列(顺序连接) </td></tr>
<tr><td class="paramname">outer</td><td>true = 外环, false = 内环 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新环的 ID </dd></dl>
</div>
</div>
<a id="a17893a81300978999efb5db495badf3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17893a81300978999efb5db495badf3f">&#9670;&nbsp;</a></span>add_shell()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_shell </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>faces</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>closed</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加壳 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">faces</td><td>面 ID 列表 </td></tr>
<tr><td class="paramname">closed</td><td>是否为封闭壳 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新壳的 ID </dd></dl>
</div>
</div>
<a id="afbef82c30113989bfb3107e143d16cfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbef82c30113989bfb3107e143d16cfb">&#9670;&nbsp;</a></span>add_surface()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_surface </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsSurface.html">curves::NurbsSurface</a> &amp;&#160;</td>
<td class="paramname"><em>surf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加 NURBS 曲面 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">surf</td><td>NURBS 曲面定义 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新曲面的 ID </dd></dl>
</div>
</div>
<a id="a9e76826b69c28df2c895512333d003e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e76826b69c28df2c895512333d003e6">&#9670;&nbsp;</a></span>add_vertex()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vde::brep::BrepModel::add_vertex </td>
<td>(</td>
<td class="paramtype">const Point3D &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>添加顶点 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>顶点坐标 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>新顶点的 ID </dd></dl>
</div>
</div>
<a id="a15cb723042a98c50e317fd74c9b37260"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15cb723042a98c50e317fd74c9b37260">&#9670;&nbsp;</a></span>all_loops()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;<a class="el" href="structvde_1_1brep_1_1TopoLoop.html">TopoLoop</a>&gt;&amp; vde::brep::BrepModel::all_loops </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>获取所有环的只读引用 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00282">282</a> 行定义.</p>
</div>
</div>
<a id="a877d26a68d990e509ab7ce4503ee2475"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a877d26a68d990e509ab7ce4503ee2475">&#9670;&nbsp;</a></span>bounds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacevde_1_1core.html#a5e6679209cad0695e1b9d088c4b0e224">core::AABB3D</a> vde::brep::BrepModel::bounds </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>计算模型的轴对齐包围盒 </p>
<p>遍历所有顶点,取最小/最大坐标。</p>
<dl class="section return"><dt>返回</dt><dd>包围盒(AABB </dd></dl>
</div>
</div>
<a id="a0bcc4ed7d364a05b2e50e133928f22e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0bcc4ed7d364a05b2e50e133928f22e2">&#9670;&nbsp;</a></span>edge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structvde_1_1brep_1_1TopoEdge.html">TopoEdge</a>&amp; vde::brep::BrepModel::edge </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>按数组索引访问边 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00270">270</a> 行定义.</p>
</div>
</div>
<a id="afd4f59f590f5c055c0f04bc7e33f63f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd4f59f590f5c055c0f04bc7e33f63f4">&#9670;&nbsp;</a></span>edge_faces()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int&gt; vde::brep::BrepModel::edge_faces </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>edge_id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取边的所有相邻面 </p>
<p>反向查找:哪些面包含此边。 在流形网格中每条边应有恰好 2 个相邻面。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">edge_id</td><td>边 ID </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>相邻面 ID 列表 </dd></dl>
</div>
</div>
<a id="ae583d160026418fc5ade04126a8615c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae583d160026418fc5ade04126a8615c3">&#9670;&nbsp;</a></span>face()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structvde_1_1brep_1_1TopoFace.html">TopoFace</a>&amp; vde::brep::BrepModel::face </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>按数组索引访问面 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00273">273</a> 行定义.</p>
</div>
</div>
<a id="ac0d546ea8d18f0c5607c34b10f269823"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0d546ea8d18f0c5607c34b10f269823">&#9670;&nbsp;</a></span>face_edges()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int&gt; vde::brep::BrepModel::face_edges </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>face_id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取面的所有边 </p>
<p>展开面的所有环,收集其中包含的边 ID。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">face_id</td><td>面 ID </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>边 ID 列表(去重) </dd></dl>
</div>
</div>
<a id="a1c7273fff65281e8ce2353808b8e84ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c7273fff65281e8ce2353808b8e84ed">&#9670;&nbsp;</a></span>is_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool vde::brep::BrepModel::is_valid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>检查模型有效性(快速版本) </p>
<p>进行基本检查:是否有顶点/边/面,ID 引用是否有效。 完整验证请使用 <a class="el" href="brep__validate_8h.html" title="B-Rep 模型综合验证">brep_validate.h</a> 中的 <a class="el" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f" title="对 BrepModel 执行综合验证">validate()</a></p>
<dl class="section return"><dt>返回</dt><dd>true 如果模型通过基本检查</dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f" title="对 BrepModel 执行综合验证">validate()</a> 完整验证(水密性、方向一致性等) </dd></dl>
</div>
</div>
<a id="a51def78dc475fc0c218e5e131f3bf286"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51def78dc475fc0c218e5e131f3bf286">&#9670;&nbsp;</a></span>loop_by_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structvde_1_1brep_1_1TopoLoop.html">TopoLoop</a>&amp; vde::brep::BrepModel::loop_by_id </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>按唯一 ID 访问环 </p>
</div>
</div>
<a id="a466ad65cfb9c69ff0bb0aa292bf4996d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a466ad65cfb9c69ff0bb0aa292bf4996d">&#9670;&nbsp;</a></span>num_bodies()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t vde::brep::BrepModel::num_bodies </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>体数量 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00256">256</a> 行定义.</p>
</div>
</div>
<a id="ab157c6eb13ecd81137388265e97b7215"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab157c6eb13ecd81137388265e97b7215">&#9670;&nbsp;</a></span>num_edges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t vde::brep::BrepModel::num_edges </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>边数量 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00250">250</a> 行定义.</p>
</div>
</div>
<a id="ab202efbf35826406df1fc4cada91c19c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab202efbf35826406df1fc4cada91c19c">&#9670;&nbsp;</a></span>num_faces()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t vde::brep::BrepModel::num_faces </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>面数量 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00253">253</a> 行定义.</p>
</div>
</div>
<a id="af571065b0efbcb72540a71ae24113a29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af571065b0efbcb72540a71ae24113a29">&#9670;&nbsp;</a></span>num_surfaces()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t vde::brep::BrepModel::num_surfaces </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>曲面数量 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00259">259</a> 行定义.</p>
</div>
</div>
<a id="a5768a93843e06429ca418479e5692f1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5768a93843e06429ca418479e5692f1d">&#9670;&nbsp;</a></span>num_vertices()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t vde::brep::BrepModel::num_vertices </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>顶点数量 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00247">247</a> 行定义.</p>
</div>
</div>
<a id="aef8551588ed95e736b4b50abc03fb9b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef8551588ed95e736b4b50abc03fb9b5">&#9670;&nbsp;</a></span>surface()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classvde_1_1curves_1_1NurbsSurface.html">curves::NurbsSurface</a>&amp; vde::brep::BrepModel::surface </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>按数组索引访问曲面 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00276">276</a> 行定义.</p>
</div>
</div>
<a id="a3499a6dd3a531cc4df59b2ffa4fa98f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3499a6dd3a531cc4df59b2ffa4fa98f2">&#9670;&nbsp;</a></span>to_mesh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classvde_1_1mesh_1_1HalfedgeMesh.html">mesh::HalfedgeMesh</a> vde::brep::BrepModel::to_mesh </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>deflection</em> = <code>0.01</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>将 B-Rep 模型 tessellate 为三角网格 </p>
<p>所有曲面和曲线以给定的弦高误差 tessellate 为三角形。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">deflection</td><td>弦高误差(控制 tessellation 精度,默认 0.01 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>HalfedgeMesh 三角网格</dd></dl>
<dl class="section note"><dt>注解</dt><dd>deflection 越小网格越精细,但三角形数量显著增加。 </dd></dl>
</div>
</div>
<a id="adca4ecc4190da95419d61f7426573e2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adca4ecc4190da95419d61f7426573e2d">&#9670;&nbsp;</a></span>vertex()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structvde_1_1brep_1_1TopoVertex.html">TopoVertex</a>&amp; vde::brep::BrepModel::vertex </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>按数组索引访问顶点 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a><a class="el" href="brep_8h_source.html#l00264">264</a> 行定义.</p>
</div>
</div>
<a id="a8049b8f53489d7c460147b54784542e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8049b8f53489d7c460147b54784542e6">&#9670;&nbsp;</a></span>vertex_by_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structvde_1_1brep_1_1TopoVertex.html">TopoVertex</a>&amp; vde::brep::BrepModel::vertex_by_id </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>按唯一 ID 访问顶点(适用于边数据中的 ID 引用) </p>
</div>
</div>
<a id="a1e9201043ff1167ba310aefaf46cddc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e9201043ff1167ba310aefaf46cddc6">&#9670;&nbsp;</a></span>vertex_edges()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int&gt; vde::brep::BrepModel::vertex_edges </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>vertex_id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取顶点的所有相邻边 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">vertex_id</td><td>顶点 ID </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>相邻边 ID 列表 </dd></dl>
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>include/vde/brep/<a class="el" href="brep_8h_source.html">brep.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacevde.html">vde</a></li><li class="navelem"><a class="el" href="namespacevde_1_1brep.html">brep</a></li><li class="navelem"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a></li>
<li class="footer">生成于 2026年 七月 24日 星期五 11:21:23 , 为 ViewDesignEngine使用 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>