Files
ViewDesignEngine/docs/api/brep__validate_8h_source.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

155 lines
19 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_validate.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__validate_8h_source.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="headertitle">
<div class="title">brep_validate.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="brep__validate_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="brep_8h.html">vde/brep/brep.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacevde_1_1brep.html">vde::brep</a> {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html"> 40</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structvde_1_1brep_1_1ValidationResult.html">ValidationResult</a> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a80b253d38e53c4ce6c246d825cc1abb8"> 42</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a80b253d38e53c4ce6c246d825cc1abb8">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a6715d4fbdc9e497858f6c8aeaeb8505b"> 45</a></span>&#160; std::vector&lt;std::string&gt; <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a6715d4fbdc9e497858f6c8aeaeb8505b">errors</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a0e875948b5956f08f31d8b6fc7ef87a2"> 48</a></span>&#160; std::vector&lt;std::string&gt; <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a0e875948b5956f08f31d8b6fc7ef87a2">warnings</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#aedd90589f11e487e90b9e7dd6a7fb871"> 51</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#aedd90589f11e487e90b9e7dd6a7fb871">watertightness</a> = 1.0;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#ad585bd58db1491c485032f509e02a3b4"> 54</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#ad585bd58db1491c485032f509e02a3b4">self_intersection_free</a> = 1.0;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#ab3404e425ca5b4150c221ad882a14be5"> 57</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#ab3404e425ca5b4150c221ad882a14be5">min_edge_length</a> = std::numeric_limits&lt;double&gt;::max();</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#acc79aaf8a37d689fd3e6c53e2422b28d"> 60</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#acc79aaf8a37d689fd3e6c53e2422b28d">max_edge_length</a> = 0.0;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#af9035c9a9f1b6b47900b9f43c5462cd0"> 63</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#af9035c9a9f1b6b47900b9f43c5462cd0">non_manifold_edges</a> = 0;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a5dae2583718558602eed5a30bbedd8e5"> 66</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a5dae2583718558602eed5a30bbedd8e5">dangling_edges</a> = 0;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a3d904198e7b5c4d8cd7b56ab962ecb16"> 69</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a3d904198e7b5c4d8cd7b56ab962ecb16">inconsistent_orientations</a> = 0;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#a00df182352f8fe308330051c958e4640"> 72</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#a00df182352f8fe308330051c958e4640">total_edges</a> = 0;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structvde_1_1brep_1_1ValidationResult.html#aba3c76888fa54f0359e3019a539663a2"> 75</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1brep_1_1ValidationResult.html#aba3c76888fa54f0359e3019a539663a2">total_faces</a> = 0;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f"> 110</a></span>&#160;[[nodiscard]] <a class="code" href="structvde_1_1brep_1_1ValidationResult.html">ValidationResult</a> <a class="code" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">validate</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a>&amp; body);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;} <span class="comment">// namespace vde::brep</span></div>
<div class="ttc" id="abrep_8h_html"><div class="ttname"><a href="brep_8h.html">brep.h</a></div><div class="ttdoc">边界表示(B-Rep)核心数据结构</div></div>
<div class="ttc" id="aclassvde_1_1brep_1_1BrepModel_html"><div class="ttname"><a href="classvde_1_1brep_1_1BrepModel.html">vde::brep::BrepModel</a></div><div class="ttdoc">B-Rep 模型</div><div class="ttdef"><b>Definition:</b> <a href="brep_8h_source.html#l00177">brep.h:177</a></div></div>
<div class="ttc" id="anamespacevde_1_1brep_html"><div class="ttname"><a href="namespacevde_1_1brep.html">vde::brep</a></div><div class="ttdef"><b>Definition:</b> <a href="brep_8h_source.html#l00054">brep.h:54</a></div></div>
<div class="ttc" id="anamespacevde_1_1brep_html_acb612097bfb5e886285f2227dcc9216f"><div class="ttname"><a href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">vde::brep::validate</a></div><div class="ttdeci">ValidationResult validate(const BrepModel &amp;body)</div><div class="ttdoc">对 BrepModel 执行综合验证</div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html">vde::brep::ValidationResult</a></div><div class="ttdoc">B-Rep 模型的综合验证结果</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00040">brep_validate.h:40</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a00df182352f8fe308330051c958e4640"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a00df182352f8fe308330051c958e4640">vde::brep::ValidationResult::total_edges</a></div><div class="ttdeci">size_t total_edges</div><div class="ttdoc">总边数</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00072">brep_validate.h:72</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a0e875948b5956f08f31d8b6fc7ef87a2"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a0e875948b5956f08f31d8b6fc7ef87a2">vde::brep::ValidationResult::warnings</a></div><div class="ttdeci">std::vector&lt; std::string &gt; warnings</div><div class="ttdoc">警告信息列表(不影响 valid</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00048">brep_validate.h:48</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a3d904198e7b5c4d8cd7b56ab962ecb16"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a3d904198e7b5c4d8cd7b56ab962ecb16">vde::brep::ValidationResult::inconsistent_orientations</a></div><div class="ttdeci">size_t inconsistent_orientations</div><div class="ttdoc">方向不一致的面数</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00069">brep_validate.h:69</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a5dae2583718558602eed5a30bbedd8e5"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a5dae2583718558602eed5a30bbedd8e5">vde::brep::ValidationResult::dangling_edges</a></div><div class="ttdeci">size_t dangling_edges</div><div class="ttdoc">悬挂边数(无相邻面的边)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00066">brep_validate.h:66</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a6715d4fbdc9e497858f6c8aeaeb8505b"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a6715d4fbdc9e497858f6c8aeaeb8505b">vde::brep::ValidationResult::errors</a></div><div class="ttdeci">std::vector&lt; std::string &gt; errors</div><div class="ttdoc">错误信息列表(导致 valid = false</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00045">brep_validate.h:45</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_a80b253d38e53c4ce6c246d825cc1abb8"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#a80b253d38e53c4ce6c246d825cc1abb8">vde::brep::ValidationResult::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdoc">是否通过所有必要检查</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00042">brep_validate.h:42</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_ab3404e425ca5b4150c221ad882a14be5"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#ab3404e425ca5b4150c221ad882a14be5">vde::brep::ValidationResult::min_edge_length</a></div><div class="ttdeci">double min_edge_length</div><div class="ttdoc">最短边的长度(用于检测退化边)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00057">brep_validate.h:57</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_aba3c76888fa54f0359e3019a539663a2"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#aba3c76888fa54f0359e3019a539663a2">vde::brep::ValidationResult::total_faces</a></div><div class="ttdeci">size_t total_faces</div><div class="ttdoc">总面数</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00075">brep_validate.h:75</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_acc79aaf8a37d689fd3e6c53e2422b28d"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#acc79aaf8a37d689fd3e6c53e2422b28d">vde::brep::ValidationResult::max_edge_length</a></div><div class="ttdeci">double max_edge_length</div><div class="ttdoc">最长边的长度(用于检测超长边)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00060">brep_validate.h:60</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_ad585bd58db1491c485032f509e02a3b4"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#ad585bd58db1491c485032f509e02a3b4">vde::brep::ValidationResult::self_intersection_free</a></div><div class="ttdeci">double self_intersection_free</div><div class="ttdoc">无自交比率:不与其他面内部相交的面对比例(1.0 = 无自交)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00054">brep_validate.h:54</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_aedd90589f11e487e90b9e7dd6a7fb871"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#aedd90589f11e487e90b9e7dd6a7fb871">vde::brep::ValidationResult::watertightness</a></div><div class="ttdeci">double watertightness</div><div class="ttdoc">水密性比率:恰好有 2 个相邻面的边的比例(1.0 = 完美水密)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00051">brep_validate.h:51</a></div></div>
<div class="ttc" id="astructvde_1_1brep_1_1ValidationResult_html_af9035c9a9f1b6b47900b9f43c5462cd0"><div class="ttname"><a href="structvde_1_1brep_1_1ValidationResult.html#af9035c9a9f1b6b47900b9f43c5462cd0">vde::brep::ValidationResult::non_manifold_edges</a></div><div class="ttdeci">size_t non_manifold_edges</div><div class="ttdoc">非流形边数(相邻面 ≠ 2 的边)</div><div class="ttdef"><b>Definition:</b> <a href="brep__validate_8h_source.html#l00063">brep_validate.h:63</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_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__validate_8h.html">brep_validate.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>