210 lines
33 KiB
HTML
210 lines
33 KiB
HTML
<!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
|
||
 <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&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&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&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> <span class="preprocessor">#pragma once</span></div>
|
||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include <Eigen/Core></span></div>
|
||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#include <cmath></span></div>
|
||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include <limits></span></div>
|
||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include <vector></span></div>
|
||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div>
|
||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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>  </div>
|
||
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1Tolerance.html"> 29</a></span> <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> <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>  <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>  <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>  : 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>  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>  </div>
|
||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// ── 判定 ──</span></div>
|
||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </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>  <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& a, <span class="keyword">const</span> Eigen::MatrixXd& b)<span class="keyword"> const </span>{</div>
|
||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">return</span> (a - b).norm() < absolute_;</div>
|
||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></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>  <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>  <span class="keywordflow">return</span> std::abs(value) < absolute_;</div>
|
||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
|
||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></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>  <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>  <span class="keywordflow">return</span> std::abs(a - b) < absolute_ + relative_ * std::max(std::abs(a), std::abs(b));</div>
|
||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </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>  <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>  <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>  <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>  <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>  </div>
|
||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// ── 分层容差:继承并收紧 ──</span></div>
|
||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </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>  <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>  <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>  }</div>
|
||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </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>  <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>  <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>  }</div>
|
||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </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>  <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>& a, <span class="keyword">const</span> <a class="code" href="classvde_1_1foundation_1_1Tolerance.html">Tolerance</a>& b) {</div>
|
||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <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>  std::min(a.relative_, b.relative_),</div>
|
||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  std::min(a.angular_, b.angular_),</div>
|
||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  std::min(a.snapping_, b.snapping_));</div>
|
||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div>
|
||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
|
||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// ── 全局实例 ──</span></div>
|
||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </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>  <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#a3f1fc754c6d4c43ac77545e0be2ce8b9">global</a>() { <span class="keywordflow">return</span> global_; }</div>
|
||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </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>  <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>& tol) { global_ = tol; }</div>
|
||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
|
||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// ── 默认建模容差等级 ──</span></div>
|
||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </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>  <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>  <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>  <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>  <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>  </div>
|
||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">double</span> absolute_;</div>
|
||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">double</span> relative_;</div>
|
||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordtype">double</span> angular_;</div>
|
||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">double</span> snapping_;</div>
|
||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <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> };</div>
|
||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
||
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classvde_1_1foundation_1_1ToleranceScope.html"> 201</a></span> <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> <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>  <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>& 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>  <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>  }</div>
|
||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </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>  <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>  </div>
|
||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <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> };</div>
|
||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
|
||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> } <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 &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 &a, const Tolerance &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 & 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 &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 &a, const Eigen::MatrixXd &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>
|