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

210 lines
33 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/foundation/tolerance.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('tolerance_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">tolerance.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="tolerance_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 &lt;Eigen/Core&gt;</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;limits&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacevde_1_1foundation.html">vde::foundation</a> {</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html"> 29</a></span>&#160;<span class="keyword">class </span><a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973"> 39</a></span>&#160; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973">Tolerance</a>(<span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#afdc814e932a1a2610482fdbdfb88f2c2">absolute</a> = 1e-6, <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a783f743648823386c5d049ac4400c19b">relative</a> = 1e-8,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a84f8a5b08a29dd694d94129d1fa45923">angular</a> = 1e-8, <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a2601217e10e5701c6623853ebb5f5e60">snapping</a> = 1e-4)</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; : absolute_(<a class="code" href="classvde_1_1foundation_1_1Tolerance.html#afdc814e932a1a2610482fdbdfb88f2c2">absolute</a>), relative_(<a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a783f743648823386c5d049ac4400c19b">relative</a>),</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; angular_(<a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a84f8a5b08a29dd694d94129d1fa45923">angular</a>), snapping_(<a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a2601217e10e5701c6623853ebb5f5e60">snapping</a>) {}</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// ── 判定 ──</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#abc5aeb60cfc99bd17d86470a3226d199"> 55</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#abc5aeb60cfc99bd17d86470a3226d199">points_equal</a>(<span class="keyword">const</span> Eigen::MatrixXd&amp; a, <span class="keyword">const</span> Eigen::MatrixXd&amp; b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> (a - b).norm() &lt; absolute_;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#ae66283860179011ae79028b7dc5dad53"> 66</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#ae66283860179011ae79028b7dc5dad53">is_zero</a>(T value)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> std::abs(value) &lt; absolute_;</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="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#ad9dae2c7a0f2feaf59acff38ba1fd83d"> 88</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#ad9dae2c7a0f2feaf59acff38ba1fd83d">equals</a>(T a, T b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> std::abs(a - b) &lt; absolute_ + relative_ * std::max(std::abs(a), std::abs(b));</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#afdc814e932a1a2610482fdbdfb88f2c2"> 93</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#afdc814e932a1a2610482fdbdfb88f2c2">absolute</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> absolute_; }</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a783f743648823386c5d049ac4400c19b"> 95</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a783f743648823386c5d049ac4400c19b">relative</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> relative_; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a84f8a5b08a29dd694d94129d1fa45923"> 97</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a84f8a5b08a29dd694d94129d1fa45923">angular</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> angular_; }</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a2601217e10e5701c6623853ebb5f5e60"> 99</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a2601217e10e5701c6623853ebb5f5e60">snapping</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> snapping_; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// ── 分层容差:继承并收紧 ──</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#ad6f7a044177d76a875634c3b29fa282e"> 116</a></span>&#160; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#ad6f7a044177d76a875634c3b29fa282e">tighten</a>(<span class="keywordtype">double</span> factor = 0.1)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973">Tolerance</a>(absolute_ * factor, relative_ * factor, angular_ * factor, snapping_ * factor);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a27ee3cffbc2062f8844677bf1b66a432"> 128</a></span>&#160; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a27ee3cffbc2062f8844677bf1b66a432">relax</a>(<span class="keywordtype">double</span> factor = 10.0)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973">Tolerance</a>(absolute_ * factor, relative_ * factor, angular_ * factor, snapping_ * factor);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a060ad7c46837134898df7ca4dc1b118a"> 139</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a060ad7c46837134898df7ca4dc1b118a">min</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>&amp; b) {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973">Tolerance</a>(std::min(a.absolute_, b.absolute_),</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; std::min(a.relative_, b.relative_),</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; std::min(a.angular_, b.angular_),</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; std::min(a.snapping_, b.snapping_));</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// ── 全局实例 ──</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a3f1fc754c6d4c43ac77545e0be2ce8b9"> 155</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>&amp; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a3f1fc754c6d4c43ac77545e0be2ce8b9">global</a>() { <span class="keywordflow">return</span> global_; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#aafc832ab4f6bade367e1a6d3512b4006"> 164</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#aafc832ab4f6bade367e1a6d3512b4006">set_global</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>&amp; tol) { global_ = tol; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// ── 默认建模容差等级 ──</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#abde6073630ffc820a5e34a4fc4862cbb"> 169</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#abde6073630ffc820a5e34a4fc4862cbb">Modeling</a>() { <span class="keywordflow">return</span> 1e-6; }</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#ab5ef829e28b2702707101094688cd068"> 171</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#ab5ef829e28b2702707101094688cd068">Fitting</a>() { <span class="keywordflow">return</span> 1e-3; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a0da11b92bf3a87429f85763769e7524e"> 173</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a0da11b92bf3a87429f85763769e7524e">Intersection</a>() { <span class="keywordflow">return</span> 1e-8; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html#a472f14003b3f54032873f83e4f00ae87"> 175</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#a472f14003b3f54032873f83e4f00ae87">Snapping</a>() { <span class="keywordflow">return</span> 1e-4; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">double</span> absolute_;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">double</span> relative_;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">double</span> angular_;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">double</span> snapping_;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">static</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> global_;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1ToleranceScope.html"> 201</a></span>&#160;<span class="keyword">class </span><a class="code" href="classvde_1_1foundation_1_1ToleranceScope.html">ToleranceScope</a> {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1ToleranceScope.html#abba3f2286645916b2466617f1e6eb820"> 210</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classvde_1_1foundation_1_1ToleranceScope.html#abba3f2286645916b2466617f1e6eb820">ToleranceScope</a>(<span class="keyword">const</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>&amp; tol) : previous_(<a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>::global()) {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#aafc832ab4f6bade367e1a6d3512b4006">Tolerance::set_global</a>(tol);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1ToleranceScope.html#aaf0ab7bd06234f1fa3c28fc271773250"> 217</a></span>&#160; <a class="code" href="classvde_1_1foundation_1_1ToleranceScope.html#aaf0ab7bd06234f1fa3c28fc271773250">~ToleranceScope</a>() { <a class="code" href="classvde_1_1foundation_1_1Tolerance.html#aafc832ab4f6bade367e1a6d3512b4006">Tolerance::set_global</a>(previous_); }</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a> previous_;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;};</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;} <span class="comment">// namespace vde::foundation</span></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1ToleranceScope_html"><div class="ttname"><a href="classvde_1_1foundation_1_1ToleranceScope.html">vde::foundation::ToleranceScope</a></div><div class="ttdoc">局部容差作用域(RAII</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00201">tolerance.h:201</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1ToleranceScope_html_aaf0ab7bd06234f1fa3c28fc271773250"><div class="ttname"><a href="classvde_1_1foundation_1_1ToleranceScope.html#aaf0ab7bd06234f1fa3c28fc271773250">vde::foundation::ToleranceScope::~ToleranceScope</a></div><div class="ttdeci">~ToleranceScope()</div><div class="ttdoc">退出容差作用域,恢复之前的全局容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00217">tolerance.h:217</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1ToleranceScope_html_abba3f2286645916b2466617f1e6eb820"><div class="ttname"><a href="classvde_1_1foundation_1_1ToleranceScope.html#abba3f2286645916b2466617f1e6eb820">vde::foundation::ToleranceScope::ToleranceScope</a></div><div class="ttdeci">ToleranceScope(const Tolerance &amp;tol)</div><div class="ttdoc">进入新的容差作用域</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00210">tolerance.h:210</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html">vde::foundation::Tolerance</a></div><div class="ttdoc">分层容差管理类</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00029">tolerance.h:29</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a060ad7c46837134898df7ca4dc1b118a"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a060ad7c46837134898df7ca4dc1b118a">vde::foundation::Tolerance::min</a></div><div class="ttdeci">static Tolerance min(const Tolerance &amp;a, const Tolerance &amp;b)</div><div class="ttdoc">合并两个容差,取更严格的(更小的)</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00139">tolerance.h:139</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a0da11b92bf3a87429f85763769e7524e"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a0da11b92bf3a87429f85763769e7524e">vde::foundation::Tolerance::Intersection</a></div><div class="ttdeci">static constexpr double Intersection()</div><div class="ttdoc">求交级精度 (1e-8):精确求交、布尔运算</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00173">tolerance.h:173</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a2601217e10e5701c6623853ebb5f5e60"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a2601217e10e5701c6623853ebb5f5e60">vde::foundation::Tolerance::snapping</a></div><div class="ttdeci">double snapping() const</div><div class="ttdoc">获取吸附容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00099">tolerance.h:99</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a27ee3cffbc2062f8844677bf1b66a432"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a27ee3cffbc2062f8844677bf1b66a432">vde::foundation::Tolerance::relax</a></div><div class="ttdeci">Tolerance relax(double factor=10.0) const</div><div class="ttdoc">放宽容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00128">tolerance.h:128</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a3c2445a16aa64efa6ccd61ea1ecb1973"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a3c2445a16aa64efa6ccd61ea1ecb1973">vde::foundation::Tolerance::Tolerance</a></div><div class="ttdeci">Tolerance(double absolute=1e-6, double relative=1e-8, double angular=1e-8, double snapping=1e-4)</div><div class="ttdoc">构造容差对象</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00039">tolerance.h:39</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a3f1fc754c6d4c43ac77545e0be2ce8b9"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a3f1fc754c6d4c43ac77545e0be2ce8b9">vde::foundation::Tolerance::global</a></div><div class="ttdeci">static Tolerance &amp; global()</div><div class="ttdoc">获取全局容差实例</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00155">tolerance.h:155</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a472f14003b3f54032873f83e4f00ae87"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a472f14003b3f54032873f83e4f00ae87">vde::foundation::Tolerance::Snapping</a></div><div class="ttdeci">static constexpr double Snapping()</div><div class="ttdoc">吸附级精度 (1e-4):点合并、顶点焊接</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00175">tolerance.h:175</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a783f743648823386c5d049ac4400c19b"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a783f743648823386c5d049ac4400c19b">vde::foundation::Tolerance::relative</a></div><div class="ttdeci">double relative() const</div><div class="ttdoc">获取相对容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00095">tolerance.h:95</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_a84f8a5b08a29dd694d94129d1fa45923"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#a84f8a5b08a29dd694d94129d1fa45923">vde::foundation::Tolerance::angular</a></div><div class="ttdeci">double angular() const</div><div class="ttdoc">获取角度容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00097">tolerance.h:97</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_aafc832ab4f6bade367e1a6d3512b4006"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#aafc832ab4f6bade367e1a6d3512b4006">vde::foundation::Tolerance::set_global</a></div><div class="ttdeci">static void set_global(const Tolerance &amp;tol)</div><div class="ttdoc">设置全局容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00164">tolerance.h:164</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_ab5ef829e28b2702707101094688cd068"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#ab5ef829e28b2702707101094688cd068">vde::foundation::Tolerance::Fitting</a></div><div class="ttdeci">static constexpr double Fitting()</div><div class="ttdoc">拟合级精度 (1e-3):曲面拟合、近似计算</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00171">tolerance.h:171</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_abc5aeb60cfc99bd17d86470a3226d199"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#abc5aeb60cfc99bd17d86470a3226d199">vde::foundation::Tolerance::points_equal</a></div><div class="ttdeci">bool points_equal(const Eigen::MatrixXd &amp;a, const Eigen::MatrixXd &amp;b) const</div><div class="ttdoc">判断两点是否相等(基于绝对容差)</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00055">tolerance.h:55</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_abde6073630ffc820a5e34a4fc4862cbb"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#abde6073630ffc820a5e34a4fc4862cbb">vde::foundation::Tolerance::Modeling</a></div><div class="ttdeci">static constexpr double Modeling()</div><div class="ttdoc">建模级精度 (1e-6):通用几何建模</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00169">tolerance.h:169</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_ad6f7a044177d76a875634c3b29fa282e"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#ad6f7a044177d76a875634c3b29fa282e">vde::foundation::Tolerance::tighten</a></div><div class="ttdeci">Tolerance tighten(double factor=0.1) const</div><div class="ttdoc">收紧容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00116">tolerance.h:116</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_ad9dae2c7a0f2feaf59acff38ba1fd83d"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#ad9dae2c7a0f2feaf59acff38ba1fd83d">vde::foundation::Tolerance::equals</a></div><div class="ttdeci">bool equals(T a, T b) const</div><div class="ttdoc">混合容差相等判断</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00088">tolerance.h:88</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_ae66283860179011ae79028b7dc5dad53"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#ae66283860179011ae79028b7dc5dad53">vde::foundation::Tolerance::is_zero</a></div><div class="ttdeci">bool is_zero(T value) const</div><div class="ttdoc">判断值是否接近零</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00066">tolerance.h:66</a></div></div>
<div class="ttc" id="aclassvde_1_1foundation_1_1Tolerance_html_afdc814e932a1a2610482fdbdfb88f2c2"><div class="ttname"><a href="classvde_1_1foundation_1_1Tolerance.html#afdc814e932a1a2610482fdbdfb88f2c2">vde::foundation::Tolerance::absolute</a></div><div class="ttdeci">double absolute() const</div><div class="ttdoc">获取绝对容差</div><div class="ttdef"><b>Definition:</b> <a href="tolerance_8h_source.html#l00093">tolerance.h:93</a></div></div>
<div class="ttc" id="anamespacevde_1_1foundation_html"><div class="ttname"><a href="namespacevde_1_1foundation.html">vde::foundation</a></div><div class="ttdoc">自适应双精度谓词后端(默认)</div><div class="ttdef"><b>Definition:</b> <a href="error__codes_8h_source.html#l00004">error_codes.h:4</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_0c2101f4fe537748a6dd635dd73c637a.html">foundation</a></li><li class="navelem"><a class="el" href="tolerance_8h.html">tolerance.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>