Files
ViewDesignEngine/docs/api/mesh__quality_8h_source.html
T

254 lines
50 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: include/vde/mesh/mesh_quality.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('mesh__quality_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">mesh_quality.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="mesh__quality_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="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="halfedge__mesh_8h.html">vde/mesh/halfedge_mesh.h</a>&quot;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacevde_1_1mesh.html">vde::mesh</a> {</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">using</span> <a class="code" href="namespacevde_1_1core.html#a78483c599a40e4f333418667a77e3862">core::Point2D</a>;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">using</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">core::Point3D</a>;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">using</span> <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">core::Vector3D</a>;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Triangle quality</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html"> 21</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structvde_1_1mesh_1_1MeshQuality.html">MeshQuality</a> {</div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html#a7bb5cd35d3f0cbe5432cd0a0c5862d8b"> 22</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1MeshQuality.html#a7bb5cd35d3f0cbe5432cd0a0c5862d8b">min_angle_deg</a> = 0; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html#a800b3f1eafa7bc36e8fbc8cf55e4093c"> 23</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1MeshQuality.html#a800b3f1eafa7bc36e8fbc8cf55e4093c">max_angle_deg</a> = 0; </div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html#a1fbcc03c452f34d0f59b61c2096e6764"> 24</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1MeshQuality.html#a1fbcc03c452f34d0f59b61c2096e6764">avg_aspect_ratio</a> = 0; </div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html#a1bf033869311c4aee9fa02ca1c5408c5"> 25</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1MeshQuality.html#a1bf033869311c4aee9fa02ca1c5408c5">max_aspect_ratio</a> = 0; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1MeshQuality.html#aae2127606b0aa7df16357a2d3a20e5fb"> 26</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1MeshQuality.html#aae2127606b0aa7df16357a2d3a20e5fb">degenerate_faces</a> = 0; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="group__mesh.html#ga38aa79a2a2e09c4657531dcc18934e4e"> 49</a></span>&#160;<a class="code" href="structvde_1_1mesh_1_1MeshQuality.html">MeshQuality</a> <a class="code" href="group__mesh.html#ga38aa79a2a2e09c4657531dcc18934e4e">evaluate_mesh_quality</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1mesh_1_1HalfedgeMesh.html">HalfedgeMesh</a>&amp; mesh);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Tetrahedron quality</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html"> 59</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structvde_1_1mesh_1_1TetQuality.html">TetQuality</a> {</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#ac0ab49a80daa659f6f279551f760d87c"> 60</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#ac0ab49a80daa659f6f279551f760d87c">min_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#af8086a5de8d20d57ec9a52ad2150735b"> 61</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#af8086a5de8d20d57ec9a52ad2150735b">max_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#a986f0bcf7f20819e8473596b55d65f3a"> 62</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#a986f0bcf7f20819e8473596b55d65f3a">avg_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#a8e9bac2b44d90286e16be3d9a07d8138"> 63</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#a8e9bac2b44d90286e16be3d9a07d8138">min_dihedral_deg</a> = 0.0; </div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#ae0bbc17c79ff6797c46103aef43c05a0"> 64</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#ae0bbc17c79ff6797c46103aef43c05a0">max_dihedral_deg</a> = 0.0; </div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#ae4d18dc02cf97cac2441788e5e30b4a6"> 65</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#ae4d18dc02cf97cac2441788e5e30b4a6">max_aspect_ratio</a> = 0.0; </div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#afd8249c99d4b1be50290e4bfafb2b06c"> 66</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#afd8249c99d4b1be50290e4bfafb2b06c">degenerate_tets</a> = 0; </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1TetQuality.html#aaa648913492c6291a0ca698cd0adcacc"> 67</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1TetQuality.html#aaa648913492c6291a0ca698cd0adcacc">total_tets</a> = 0; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__mesh.html#ga6b4eec2fa0e1818ae4e0108e892d5f86"> 82</a></span>&#160;<a class="code" href="structvde_1_1mesh_1_1TetQuality.html">TetQuality</a> <a class="code" href="group__mesh.html#ga6b4eec2fa0e1818ae4e0108e892d5f86">evaluate_tet_quality</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1mesh_1_1HalfedgeMesh.html">HalfedgeMesh</a>&amp; mesh);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// Generic element quality</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="group__mesh.html#gab584f2ea8e883f4c53ad72d8b1f4059c"> 92</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="group__mesh.html#gab584f2ea8e883f4c53ad72d8b1f4059c">ElementType</a> {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059cab8c4c2cd6e0f11e2fbb894caeaeccef3">Tri</a>, </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059cae9017664588010860a92ceb5f8fcb824">Quad</a>, </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059ca36a04c4c21d4024e5a8cb138fc249d78">Tet</a>, </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059ca92640bd72988395b326c888614f8937a">Hex</a> </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html"> 103</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structvde_1_1mesh_1_1ElemQuality.html">ElemQuality</a> {</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html#ae445c17c8d7e579dea56dca3d76755a6"> 104</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1ElemQuality.html#ae445c17c8d7e579dea56dca3d76755a6">min_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html#a22ec7d903cd3e040df69856506ed5112"> 105</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1ElemQuality.html#a22ec7d903cd3e040df69856506ed5112">max_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html#a1ba2eb45006485702e399657930a099c"> 106</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1ElemQuality.html#a1ba2eb45006485702e399657930a099c">avg_jacobian</a> = 0.0; </div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html#aa07f9dd65a22565f370cd20daf823b49"> 107</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1ElemQuality.html#aa07f9dd65a22565f370cd20daf823b49">total_elements</a> = 0; </div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1ElemQuality.html#ad656657ba371c10fa17ab59ae6013e6d"> 108</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1ElemQuality.html#ad656657ba371c10fa17ab59ae6013e6d">degenerate</a> = 0; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;};</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="group__mesh.html#gac1cc5a3b53625ea8b233f7dbf9f009c5"> 121</a></span>&#160;<a class="code" href="structvde_1_1mesh_1_1ElemQuality.html">ElemQuality</a> <a class="code" href="group__mesh.html#gac1cc5a3b53625ea8b233f7dbf9f009c5">evaluate_element_quality</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1mesh_1_1HalfedgeMesh.html">HalfedgeMesh</a>&amp; mesh, <a class="code" href="group__mesh.html#gab584f2ea8e883f4c53ad72d8b1f4059c">ElementType</a> type);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// Quality report</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html"> 131</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structvde_1_1mesh_1_1QualityReport.html">QualityReport</a> {</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#a7a2ff324b6c555f475ad98807599a234"> 132</a></span>&#160; std::string <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a7a2ff324b6c555f475ad98807599a234">element_type</a>; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#a17ba167baac395c38f886e7d8909ea5c"> 134</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a17ba167baac395c38f886e7d8909ea5c">total</a> = 0; </div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#aef032be88092914d423653a8c6c6c5e9"> 135</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#aef032be88092914d423653a8c6c6c5e9">degenerate</a> = 0; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#a16d1549a4b2ca0f122ab1eca27647e74"> 138</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a16d1549a4b2ca0f122ab1eca27647e74">kBins</a> = 10;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#a16f2db6169e508fe45985a1d4f5926a2"> 139</a></span>&#160; std::array&lt;size_t, kBins&gt; <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a16f2db6169e508fe45985a1d4f5926a2">histogram</a>{};</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#ae2d72bde340f399e724ad3aa0663e9d9"> 142</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#ae2d72bde340f399e724ad3aa0663e9d9">grade_A</a> = 0, <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a937b715a9489e7a43b60b23bd754fcb8">grade_B</a> = 0, <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a05db4d642cdb555a61a55ae8ed648b0a">grade_C</a> = 0, <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a4b07f0c28c44bc114a8860aef5d70571">grade_D</a> = 0, <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#af262e9b330f7d54cf2caef29aa6b1c5d">grade_F</a> = 0;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#a93f129309ddc47163e423c261c5ed43c"> 144</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#a93f129309ddc47163e423c261c5ed43c">min_quality</a> = 0.0; </div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#abb768fe9567694be81b6f7ed1386af75"> 145</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#abb768fe9567694be81b6f7ed1386af75">max_quality</a> = 0.0; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#ae3eac0c16760e59af16183778973fd72"> 146</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#ae3eac0c16760e59af16183778973fd72">avg_quality</a> = 0.0; </div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structvde_1_1mesh_1_1QualityReport.html#af8bd63f2567d414d4a9ae9b911499c0d"> 147</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structvde_1_1mesh_1_1QualityReport.html#af8bd63f2567d414d4a9ae9b911499c0d">stddev_quality</a> = 0.0; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="group__mesh.html#ga1b08d4770fb1870f5a50d11981017970"> 166</a></span>&#160;<a class="code" href="structvde_1_1mesh_1_1QualityReport.html">QualityReport</a> <a class="code" href="group__mesh.html#ga1b08d4770fb1870f5a50d11981017970">mesh_quality_report</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1mesh_1_1HalfedgeMesh.html">HalfedgeMesh</a>&amp; mesh);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__mesh.html#ga17256fc8a4833aa5702f06c2ffd3b070"> 178</a></span>&#160;<a class="code" href="structvde_1_1mesh_1_1QualityReport.html">QualityReport</a> <a class="code" href="group__mesh.html#ga17256fc8a4833aa5702f06c2ffd3b070">mesh_quality_report_tet</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1mesh_1_1HalfedgeMesh.html">HalfedgeMesh</a>&amp; mesh);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// Utility</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// ════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="group__mesh.html#gad1d22c2fdf308f1471636a5111053343"> 198</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="group__mesh.html#gad1d22c2fdf308f1471636a5111053343">tri_scaled_jacobian</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; a, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; b, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; c);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="group__mesh.html#ga757b9f18c66578733038aa4f438ec2a4"> 213</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="group__mesh.html#ga757b9f18c66578733038aa4f438ec2a4">tet_scaled_jacobian</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; a, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; b,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; c, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>&amp; d);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;} <span class="comment">// namespace vde::mesh</span></div>
<div class="ttc" id="aclassvde_1_1mesh_1_1HalfedgeMesh_html"><div class="ttname"><a href="classvde_1_1mesh_1_1HalfedgeMesh.html">vde::mesh::HalfedgeMesh</a></div><div class="ttdoc">半边数据结构三角网格</div><div class="ttdef"><b>Definition:</b> <a href="halfedge__mesh_8h_source.html#l00054">halfedge_mesh.h:54</a></div></div>
<div class="ttc" id="agroup__mesh_html_ga17256fc8a4833aa5702f06c2ffd3b070"><div class="ttname"><a href="group__mesh.html#ga17256fc8a4833aa5702f06c2ffd3b070">vde::mesh::mesh_quality_report_tet</a></div><div class="ttdeci">QualityReport mesh_quality_report_tet(const HalfedgeMesh &amp;mesh)</div><div class="ttdoc">生成四面体网格的完整质量报告</div></div>
<div class="ttc" id="agroup__mesh_html_ga1b08d4770fb1870f5a50d11981017970"><div class="ttname"><a href="group__mesh.html#ga1b08d4770fb1870f5a50d11981017970">vde::mesh::mesh_quality_report</a></div><div class="ttdeci">QualityReport mesh_quality_report(const HalfedgeMesh &amp;mesh)</div><div class="ttdoc">生成三角网格的完整质量报告</div></div>
<div class="ttc" id="agroup__mesh_html_ga38aa79a2a2e09c4657531dcc18934e4e"><div class="ttname"><a href="group__mesh.html#ga38aa79a2a2e09c4657531dcc18934e4e">vde::mesh::evaluate_mesh_quality</a></div><div class="ttdeci">MeshQuality evaluate_mesh_quality(const HalfedgeMesh &amp;mesh)</div><div class="ttdoc">评估三角网格质量</div></div>
<div class="ttc" id="agroup__mesh_html_ga6b4eec2fa0e1818ae4e0108e892d5f86"><div class="ttname"><a href="group__mesh.html#ga6b4eec2fa0e1818ae4e0108e892d5f86">vde::mesh::evaluate_tet_quality</a></div><div class="ttdeci">TetQuality evaluate_tet_quality(const HalfedgeMesh &amp;mesh)</div><div class="ttdoc">评估三角网格作为四面体边界的质量</div></div>
<div class="ttc" id="agroup__mesh_html_ga757b9f18c66578733038aa4f438ec2a4"><div class="ttname"><a href="group__mesh.html#ga757b9f18c66578733038aa4f438ec2a4">vde::mesh::tet_scaled_jacobian</a></div><div class="ttdeci">double tet_scaled_jacobian(const Point3D &amp;a, const Point3D &amp;b, const Point3D &amp;c, const Point3D &amp;d)</div><div class="ttdoc">四面体归一化 Jacobian</div></div>
<div class="ttc" id="agroup__mesh_html_gab584f2ea8e883f4c53ad72d8b1f4059c"><div class="ttname"><a href="group__mesh.html#gab584f2ea8e883f4c53ad72d8b1f4059c">vde::mesh::ElementType</a></div><div class="ttdeci">ElementType</div><div class="ttdoc">单元类型枚举</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00092">mesh_quality.h:92</a></div></div>
<div class="ttc" id="agroup__mesh_html_gac1cc5a3b53625ea8b233f7dbf9f009c5"><div class="ttname"><a href="group__mesh.html#gac1cc5a3b53625ea8b233f7dbf9f009c5">vde::mesh::evaluate_element_quality</a></div><div class="ttdeci">ElemQuality evaluate_element_quality(const HalfedgeMesh &amp;mesh, ElementType type)</div><div class="ttdoc">按单元类型分派的网格质量评估</div></div>
<div class="ttc" id="agroup__mesh_html_gad1d22c2fdf308f1471636a5111053343"><div class="ttname"><a href="group__mesh.html#gad1d22c2fdf308f1471636a5111053343">vde::mesh::tri_scaled_jacobian</a></div><div class="ttdeci">double tri_scaled_jacobian(const Point3D &amp;a, const Point3D &amp;b, const Point3D &amp;c)</div><div class="ttdoc">三角形归一化 Jacobian</div></div>
<div class="ttc" id="agroup__mesh_html_ggab584f2ea8e883f4c53ad72d8b1f4059ca36a04c4c21d4024e5a8cb138fc249d78"><div class="ttname"><a href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059ca36a04c4c21d4024e5a8cb138fc249d78">vde::mesh::ElementType::Tet</a></div><div class="ttdeci">@ Tet</div><div class="ttdoc">四面体</div></div>
<div class="ttc" id="agroup__mesh_html_ggab584f2ea8e883f4c53ad72d8b1f4059ca92640bd72988395b326c888614f8937a"><div class="ttname"><a href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059ca92640bd72988395b326c888614f8937a">vde::mesh::ElementType::Hex</a></div><div class="ttdeci">@ Hex</div><div class="ttdoc">六面体(Stub</div></div>
<div class="ttc" id="agroup__mesh_html_ggab584f2ea8e883f4c53ad72d8b1f4059cab8c4c2cd6e0f11e2fbb894caeaeccef3"><div class="ttname"><a href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059cab8c4c2cd6e0f11e2fbb894caeaeccef3">vde::mesh::ElementType::Tri</a></div><div class="ttdeci">@ Tri</div><div class="ttdoc">三角形</div></div>
<div class="ttc" id="agroup__mesh_html_ggab584f2ea8e883f4c53ad72d8b1f4059cae9017664588010860a92ceb5f8fcb824"><div class="ttname"><a href="group__mesh.html#ggab584f2ea8e883f4c53ad72d8b1f4059cae9017664588010860a92ceb5f8fcb824">vde::mesh::ElementType::Quad</a></div><div class="ttdeci">@ Quad</div><div class="ttdoc">四边形(Stub</div></div>
<div class="ttc" id="ahalfedge__mesh_8h_html"><div class="ttname"><a href="halfedge__mesh_8h.html">halfedge_mesh.h</a></div></div>
<div class="ttc" id="anamespacevde_1_1core_html_a78483c599a40e4f333418667a77e3862"><div class="ttname"><a href="namespacevde_1_1core.html#a78483c599a40e4f333418667a77e3862">vde::core::Point2D</a></div><div class="ttdeci">foundation::Point2D Point2D</div><div class="ttdoc">双精度二维点(重新导出)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00029">point.h:29</a></div></div>
<div class="ttc" id="anamespacevde_1_1core_html_ab763c018d19e10e91a6c6d6ab2ccc8e0"><div class="ttname"><a href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">vde::core::Vector3D</a></div><div class="ttdeci">foundation::Vector3D Vector3D</div><div class="ttdoc">双精度三维向量(重新导出)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00049">point.h:49</a></div></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 class="ttc" id="anamespacevde_1_1mesh_html"><div class="ttname"><a href="namespacevde_1_1mesh.html">vde::mesh</a></div><div class="ttdef"><b>Definition:</b> <a href="alpha__shapes_8h_source.html#l00006">alpha_shapes.h:6</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html">vde::mesh::ElemQuality</a></div><div class="ttdoc">通用单元质量指标</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00103">mesh_quality.h:103</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html_a1ba2eb45006485702e399657930a099c"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html#a1ba2eb45006485702e399657930a099c">vde::mesh::ElemQuality::avg_jacobian</a></div><div class="ttdeci">double avg_jacobian</div><div class="ttdoc">平均归一化 Jacobian</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00106">mesh_quality.h:106</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html_a22ec7d903cd3e040df69856506ed5112"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html#a22ec7d903cd3e040df69856506ed5112">vde::mesh::ElemQuality::max_jacobian</a></div><div class="ttdeci">double max_jacobian</div><div class="ttdoc">最大归一化 Jacobian</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00105">mesh_quality.h:105</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html_aa07f9dd65a22565f370cd20daf823b49"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html#aa07f9dd65a22565f370cd20daf823b49">vde::mesh::ElemQuality::total_elements</a></div><div class="ttdeci">size_t total_elements</div><div class="ttdoc">单元总数</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00107">mesh_quality.h:107</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html_ad656657ba371c10fa17ab59ae6013e6d"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html#ad656657ba371c10fa17ab59ae6013e6d">vde::mesh::ElemQuality::degenerate</a></div><div class="ttdeci">size_t degenerate</div><div class="ttdoc">退化单元数</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00108">mesh_quality.h:108</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1ElemQuality_html_ae445c17c8d7e579dea56dca3d76755a6"><div class="ttname"><a href="structvde_1_1mesh_1_1ElemQuality.html#ae445c17c8d7e579dea56dca3d76755a6">vde::mesh::ElemQuality::min_jacobian</a></div><div class="ttdeci">double min_jacobian</div><div class="ttdoc">最小归一化 Jacobian</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00104">mesh_quality.h:104</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html">vde::mesh::MeshQuality</a></div><div class="ttdoc">三角网格质量指标</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00021">mesh_quality.h:21</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html_a1bf033869311c4aee9fa02ca1c5408c5"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html#a1bf033869311c4aee9fa02ca1c5408c5">vde::mesh::MeshQuality::max_aspect_ratio</a></div><div class="ttdeci">double max_aspect_ratio</div><div class="ttdoc">最大长宽比</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00025">mesh_quality.h:25</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html_a1fbcc03c452f34d0f59b61c2096e6764"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html#a1fbcc03c452f34d0f59b61c2096e6764">vde::mesh::MeshQuality::avg_aspect_ratio</a></div><div class="ttdeci">double avg_aspect_ratio</div><div class="ttdoc">平均长宽比(外接圆半径 / 最短边)</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00024">mesh_quality.h:24</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html_a7bb5cd35d3f0cbe5432cd0a0c5862d8b"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html#a7bb5cd35d3f0cbe5432cd0a0c5862d8b">vde::mesh::MeshQuality::min_angle_deg</a></div><div class="ttdeci">double min_angle_deg</div><div class="ttdoc">最小三角形内角(度),≥ 0</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00022">mesh_quality.h:22</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html_a800b3f1eafa7bc36e8fbc8cf55e4093c"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html#a800b3f1eafa7bc36e8fbc8cf55e4093c">vde::mesh::MeshQuality::max_angle_deg</a></div><div class="ttdeci">double max_angle_deg</div><div class="ttdoc">最大三角形内角(度),≤ 180</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00023">mesh_quality.h:23</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1MeshQuality_html_aae2127606b0aa7df16357a2d3a20e5fb"><div class="ttname"><a href="structvde_1_1mesh_1_1MeshQuality.html#aae2127606b0aa7df16357a2d3a20e5fb">vde::mesh::MeshQuality::degenerate_faces</a></div><div class="ttdeci">size_t degenerate_faces</div><div class="ttdoc">退化面数(面积 ≈ 0</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00026">mesh_quality.h:26</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html">vde::mesh::QualityReport</a></div><div class="ttdoc">详细质量报告</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00131">mesh_quality.h:131</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a05db4d642cdb555a61a55ae8ed648b0a"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a05db4d642cdb555a61a55ae8ed648b0a">vde::mesh::QualityReport::grade_C</a></div><div class="ttdeci">size_t grade_C</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00142">mesh_quality.h:142</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a16d1549a4b2ca0f122ab1eca27647e74"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a16d1549a4b2ca0f122ab1eca27647e74">vde::mesh::QualityReport::kBins</a></div><div class="ttdeci">static constexpr int kBins</div><div class="ttdoc">质量直方图(k=10 个区间,[0,0.1), [0.1,0.2), ..., [0.9,1.0]</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00138">mesh_quality.h:138</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a16f2db6169e508fe45985a1d4f5926a2"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a16f2db6169e508fe45985a1d4f5926a2">vde::mesh::QualityReport::histogram</a></div><div class="ttdeci">std::array&lt; size_t, kBins &gt; histogram</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00139">mesh_quality.h:139</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a17ba167baac395c38f886e7d8909ea5c"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a17ba167baac395c38f886e7d8909ea5c">vde::mesh::QualityReport::total</a></div><div class="ttdeci">size_t total</div><div class="ttdoc">单元总数</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00134">mesh_quality.h:134</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a4b07f0c28c44bc114a8860aef5d70571"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a4b07f0c28c44bc114a8860aef5d70571">vde::mesh::QualityReport::grade_D</a></div><div class="ttdeci">size_t grade_D</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00142">mesh_quality.h:142</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a7a2ff324b6c555f475ad98807599a234"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a7a2ff324b6c555f475ad98807599a234">vde::mesh::QualityReport::element_type</a></div><div class="ttdeci">std::string element_type</div><div class="ttdoc">&quot;triangle&quot;&quot;tetrahedron&quot;</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00132">mesh_quality.h:132</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a937b715a9489e7a43b60b23bd754fcb8"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a937b715a9489e7a43b60b23bd754fcb8">vde::mesh::QualityReport::grade_B</a></div><div class="ttdeci">size_t grade_B</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00142">mesh_quality.h:142</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_a93f129309ddc47163e423c261c5ed43c"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#a93f129309ddc47163e423c261c5ed43c">vde::mesh::QualityReport::min_quality</a></div><div class="ttdeci">double min_quality</div><div class="ttdoc">最低质量值</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00144">mesh_quality.h:144</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_abb768fe9567694be81b6f7ed1386af75"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#abb768fe9567694be81b6f7ed1386af75">vde::mesh::QualityReport::max_quality</a></div><div class="ttdeci">double max_quality</div><div class="ttdoc">最高质量值</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00145">mesh_quality.h:145</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_ae2d72bde340f399e724ad3aa0663e9d9"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#ae2d72bde340f399e724ad3aa0663e9d9">vde::mesh::QualityReport::grade_A</a></div><div class="ttdeci">size_t grade_A</div><div class="ttdoc">分级计数(A=优秀 B=良好 C=合格 D=差 F=不合格)</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00142">mesh_quality.h:142</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_ae3eac0c16760e59af16183778973fd72"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#ae3eac0c16760e59af16183778973fd72">vde::mesh::QualityReport::avg_quality</a></div><div class="ttdeci">double avg_quality</div><div class="ttdoc">平均质量值</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00146">mesh_quality.h:146</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_aef032be88092914d423653a8c6c6c5e9"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#aef032be88092914d423653a8c6c6c5e9">vde::mesh::QualityReport::degenerate</a></div><div class="ttdeci">size_t degenerate</div><div class="ttdoc">退化单元数</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00135">mesh_quality.h:135</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_af262e9b330f7d54cf2caef29aa6b1c5d"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#af262e9b330f7d54cf2caef29aa6b1c5d">vde::mesh::QualityReport::grade_F</a></div><div class="ttdeci">size_t grade_F</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00142">mesh_quality.h:142</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1QualityReport_html_af8bd63f2567d414d4a9ae9b911499c0d"><div class="ttname"><a href="structvde_1_1mesh_1_1QualityReport.html#af8bd63f2567d414d4a9ae9b911499c0d">vde::mesh::QualityReport::stddev_quality</a></div><div class="ttdeci">double stddev_quality</div><div class="ttdoc">质量标准差</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00147">mesh_quality.h:147</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html">vde::mesh::TetQuality</a></div><div class="ttdoc">四面体网格质量指标</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00059">mesh_quality.h:59</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_a8e9bac2b44d90286e16be3d9a07d8138"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#a8e9bac2b44d90286e16be3d9a07d8138">vde::mesh::TetQuality::min_dihedral_deg</a></div><div class="ttdeci">double min_dihedral_deg</div><div class="ttdoc">最小二面角(度),太小会导致刚度矩阵病态</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00063">mesh_quality.h:63</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_a986f0bcf7f20819e8473596b55d65f3a"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#a986f0bcf7f20819e8473596b55d65f3a">vde::mesh::TetQuality::avg_jacobian</a></div><div class="ttdeci">double avg_jacobian</div><div class="ttdoc">平均归一化 Jacobian</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00062">mesh_quality.h:62</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_aaa648913492c6291a0ca698cd0adcacc"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#aaa648913492c6291a0ca698cd0adcacc">vde::mesh::TetQuality::total_tets</a></div><div class="ttdeci">size_t total_tets</div><div class="ttdoc">四面体总数</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00067">mesh_quality.h:67</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_ac0ab49a80daa659f6f279551f760d87c"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#ac0ab49a80daa659f6f279551f760d87c">vde::mesh::TetQuality::min_jacobian</a></div><div class="ttdeci">double min_jacobian</div><div class="ttdoc">最小归一化 Jacobian [0, 1]0=退化 1=正四面体</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00060">mesh_quality.h:60</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_ae0bbc17c79ff6797c46103aef43c05a0"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#ae0bbc17c79ff6797c46103aef43c05a0">vde::mesh::TetQuality::max_dihedral_deg</a></div><div class="ttdeci">double max_dihedral_deg</div><div class="ttdoc">最大二面角(度),接近 180° 表示退化</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00064">mesh_quality.h:64</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_ae4d18dc02cf97cac2441788e5e30b4a6"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#ae4d18dc02cf97cac2441788e5e30b4a6">vde::mesh::TetQuality::max_aspect_ratio</a></div><div class="ttdeci">double max_aspect_ratio</div><div class="ttdoc">最大长宽比(外接球半径 / 最短边)</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00065">mesh_quality.h:65</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_af8086a5de8d20d57ec9a52ad2150735b"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#af8086a5de8d20d57ec9a52ad2150735b">vde::mesh::TetQuality::max_jacobian</a></div><div class="ttdeci">double max_jacobian</div><div class="ttdoc">最大归一化 Jacobian</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00061">mesh_quality.h:61</a></div></div>
<div class="ttc" id="astructvde_1_1mesh_1_1TetQuality_html_afd8249c99d4b1be50290e4bfafb2b06c"><div class="ttname"><a href="structvde_1_1mesh_1_1TetQuality.html#afd8249c99d4b1be50290e4bfafb2b06c">vde::mesh::TetQuality::degenerate_tets</a></div><div class="ttdeci">size_t degenerate_tets</div><div class="ttdoc">退化四面体数(体积 ≈ 0 或 Jacobian ≈ 0</div><div class="ttdef"><b>Definition:</b> <a href="mesh__quality_8h_source.html#l00066">mesh_quality.h:66</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_f4e462c25acfa80a10069fa7c0aea698.html">mesh</a></li><li class="navelem"><a class="el" href="mesh__quality_8h.html">mesh_quality.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>