Files
ViewDesignEngine/docs/api/brep_8h.html
T
茂之钳 2f111edcd5
CI / Build & Test (push) Failing after 33s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
docs: generated API documentation (483 pages)
2026-07-24 11:55:47 +00:00

237 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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: include/vde/brep/brep.h 文件参考</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('brep_8h.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="#nested-classes"></a> &#124;
<a href="#namespaces">命名空间</a> &#124;
<a href="#enum-members">枚举</a> </div>
<div class="headertitle">
<div class="title">brep.h 文件参考<div class="ingroups"><a class="el" href="group__brep.html">B-Rep 模块 (vde::brep)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>边界表示(B-Rep)核心数据结构
<a href="#details">更多...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="point_8h_source.html">vde/core/point.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="aabb_8h_source.html">vde/core/aabb.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="nurbs__curve_8h_source.html">vde/curves/nurbs_curve.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="nurbs__surface_8h_source.html">vde/curves/nurbs_surface.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="halfedge__mesh_8h_source.html">vde/mesh/halfedge_mesh.h</a>&quot;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
brep.h 的引用(Include)关系图:</div>
<div class="dyncontent">
<div class="center"><img src="brep_8h__incl.png" border="0" usemap="#ainclude_2vde_2brep_2brep_8h" alt=""/></div>
<map name="ainclude_2vde_2brep_2brep_8h" id="ainclude_2vde_2brep_2brep_8h">
<area shape="rect" title="边界表示(B&#45;Rep)核心数据结构" alt="" coords="637,5,811,32"/>
<area shape="rect" href="point_8h.html" title=" " alt="" coords="289,319,415,345"/>
<area shape="rect" title=" " alt="" coords="715,483,778,509"/>
<area shape="rect" href="aabb_8h.html" title=" " alt="" coords="90,237,217,263"/>
<area shape="rect" href="nurbs__curve_8h.html" title=" " alt="" coords="701,155,889,181"/>
<area shape="rect" href="nurbs__surface_8h.html" title=" " alt="" coords="551,80,751,107"/>
<area shape="rect" href="halfedge__mesh_8h.html" title=" " alt="" coords="292,155,495,181"/>
<area shape="rect" title=" " alt="" coords="1015,80,1092,107"/>
<area shape="rect" title=" " alt="" coords="1116,80,1175,107"/>
<area shape="rect" href="math__types_8h.html" title=" " alt="" coords="285,393,443,435"/>
<area shape="rect" href="tolerance_8h.html" title=" " alt="" coords="63,401,260,427"/>
<area shape="rect" title=" " alt="" coords="185,483,277,509"/>
<area shape="rect" title=" " alt="" coords="301,483,427,509"/>
<area shape="rect" title=" " alt="" coords="451,483,522,509"/>
<area shape="rect" title=" " alt="" coords="98,483,161,509"/>
<area shape="rect" title=" " alt="" coords="5,483,64,509"/>
<area shape="rect" title=" " alt="" coords="111,319,196,345"/>
<area shape="rect" href="bspline__curve_8h.html" title=" " alt="" coords="620,229,764,271"/>
<area shape="rect" title=" " alt="" coords="620,155,676,181"/>
<area shape="rect" title=" " alt="" coords="377,237,444,263"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
此图展示该文件直接或间接的被哪些文件引用了:</div>
<div class="dyncontent">
<div class="center"><img src="brep_8h__dep__incl.png" border="0" usemap="#ainclude_2vde_2brep_2brep_8hdep" alt=""/></div>
<map name="ainclude_2vde_2brep_2brep_8hdep" id="ainclude_2vde_2brep_2brep_8hdep">
<area shape="rect" title="边界表示(B&#45;Rep)核心数据结构" alt="" coords="662,5,837,32"/>
<area shape="rect" href="brep__boolean_8h.html" title="B&#45;Rep 级别的布尔运算" alt="" coords="5,80,168,121"/>
<area shape="rect" href="brep__validate_8h.html" title="B&#45;Rep 模型综合验证" alt="" coords="192,80,355,121"/>
<area shape="rect" href="iges__export_8h.html" title="IGES 文件导出(版本 5.3" alt="" coords="379,80,541,121"/>
<area shape="rect" href="iges__import_8h.html" title="IGES 文件导入(ANSI Y14.26M" alt="" coords="565,80,726,121"/>
<area shape="rect" href="modeling_8h.html" title="高层 B&#45;Rep 建模 API" alt="" coords="750,87,957,114"/>
<area shape="rect" href="step__export_8h.html" title="STEP 文件导出(ISO 10303&#45;214" alt="" coords="981,80,1144,121"/>
<area shape="rect" href="step__import_8h.html" title="STEP 文件导入(ISO 10303" alt="" coords="1168,80,1331,121"/>
<area shape="rect" href="io__gltf_8h.html" title=" " alt="" coords="1355,80,1525,121"/>
</map>
</div>
</div>
<p><a href="brep_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoVertex.html">vde::brep::TopoVertex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑顶点 <a href="structvde_1_1brep_1_1TopoVertex.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoEdge.html">vde::brep::TopoEdge</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑边 <a href="structvde_1_1brep_1_1TopoEdge.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoLoop.html">vde::brep::TopoLoop</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑环(Loop <a href="structvde_1_1brep_1_1TopoLoop.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoFace.html">vde::brep::TopoFace</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑面 <a href="structvde_1_1brep_1_1TopoFace.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoShell.html">vde::brep::TopoShell</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑壳 <a href="structvde_1_1brep_1_1TopoShell.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoBody.html">vde::brep::TopoBody</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">拓扑体 <a href="structvde_1_1brep_1_1TopoBody.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">vde::brep::BrepModel</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">B-Rep 模型 <a href="classvde_1_1brep_1_1BrepModel.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
命名空间</h2></td></tr>
<tr class="memitem:namespacevde"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde.html">vde</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacevde_1_1brep"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html">vde::brep</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a8aaf8a85c867b16fa7b082a296f3cffb"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffb">vde::brep::CurveType</a> { <br />
&#160;&#160;<a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba4803e6b9e63dabf04de980788d6a13c4">vde::brep::Line</a>
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba30954d90085f6eaaf5817917fc5fecb3">vde::brep::Circle</a>
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba31aa08a905ffdb74542a88cb7320c69d">vde::brep::Bezier</a>
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba828ce1e5157657c1792f0503c2d430db">vde::brep::BSpline</a>
, <br />
&#160;&#160;<a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffbae407f49a3a3e5006f4c62ef450560b06">vde::brep::Nurbs</a>
<br />
}</td></tr>
<tr class="memdesc:a8aaf8a85c867b16fa7b082a296f3cffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">边曲线类型枚举 <a href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffb">更多...</a><br /></td></tr>
<tr class="separator:a8aaf8a85c867b16fa7b082a296f3cffb"><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>B-RepBoundary Representation)是 CAD 系统中最常用的实体表示方法, 通过拓扑层次结构描述三维几何体的边界。</p>
<h2><a class="anchor" id="autotoc_md0"></a>
拓扑层次结构</h2>
<div class="fragment"><div class="line">Body (体) — 一个或多个封闭壳(含名称)</div>
<div class="line"> └─ Shell (壳) — 一组面的连续集合</div>
<div class="line"> └─ Face (面) — 曲面上由环界定的区域</div>
<div class="line"> └─ Loop (环) — 封闭的边界曲线(外环 + 内环/孔)</div>
<div class="line"> └─ Edge (边) — 曲面的边界段</div>
<div class="line"> └─ Vertex (顶点) — 边的端点</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md1"></a>
实体引用关系</h2>
<p>每个实体通过整数 ID 唯一标识。父实体通过 ID 向量引用子实体。 曲面(NURBS Surface)独立存储,由面通过 surface_id 引用。 曲线(NURBS Curve)作为边的几何定义存储。</p>
<h2><a class="anchor" id="autotoc_md2"></a>
使用模式</h2>
<div class="fragment"><div class="line">BrepModel model;</div>
<div class="line"><span class="comment">// 从顶点层开始构建</span></div>
<div class="line"><span class="keywordtype">int</span> v0 = model.add_vertex(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0, 0, 0));</div>
<div class="line"><span class="keywordtype">int</span> v1 = model.add_vertex(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(1, 0, 0));</div>
<div class="line"><span class="keywordtype">int</span> e0 = model.add_edge(v0, v1);</div>
<div class="line"><span class="keywordtype">int</span> loop0 = model.add_loop({e0});</div>
<div class="line"><span class="keywordtype">int</span> s0 = model.add_surface(plane_surface);</div>
<div class="line"><span class="keywordtype">int</span> f0 = model.add_face(s0, {loop0});</div>
<div class="line"><span class="keywordtype">int</span> shell0 = model.add_shell({f0});</div>
<div class="line"><span class="keywordtype">int</span> body0 = model.add_body({shell0}, <span class="stringliteral">&quot;MyPart&quot;</span>);</div>
<div class="ttc" id="anamespacevde_1_1core_html_ac6aed70c4b90d13f10217267cd7a1952"><div class="ttname"><a href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">vde::core::Point3D</a></div><div class="ttdeci">foundation::Point3D Point3D</div><div class="ttdoc">双精度三维点(重新导出)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00031">point.h:31</a></div></div>
</div><!-- fragment --><p>更常见的方式是使用 <a class="el" href="modeling_8h.html" title="高层 B-Rep 建模 API">modeling.h</a> 中的高层 APImake_box, extrude 等)。 </p>
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a> 中定义.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_36dfe8171299c47a6036082559f11ede.html">vde</a></li><li class="navelem"><a class="el" href="dir_205e212456d522bdac4a39ff7c3170ca.html">brep</a></li><li class="navelem"><a class="el" href="brep_8h.html">brep.h</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>