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

254 lines
50 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/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>