268 lines
24 KiB
HTML
268 lines
24 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/sdf/sdf_tree.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('sdf__tree_8h.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="summary">
|
||
<a href="#nested-classes">类</a> |
|
||
<a href="#namespaces">命名空间</a> |
|
||
<a href="#typedef-members">类型定义</a> |
|
||
<a href="#enum-members">枚举</a> |
|
||
<a href="#func-members">函数</a> </div>
|
||
<div class="headertitle">
|
||
<div class="title">sdf_tree.h 文件参考<div class="ingroups"><a class="el" href="group__sdf.html">SDF 模块 (vde::sdf)</a></div></div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
|
||
<p>SDF 表达式树结构
|
||
<a href="#details">更多...</a></p>
|
||
<div class="textblock"><code>#include "<a class="el" href="sdf__primitives_8h_source.html">vde/sdf/sdf_primitives.h</a>"</code><br />
|
||
<code>#include "<a class="el" href="sdf__operations_8h_source.html">vde/sdf/sdf_operations.h</a>"</code><br />
|
||
<code>#include "<a class="el" href="point_8h_source.html">vde/core/point.h</a>"</code><br />
|
||
<code>#include <memory></code><br />
|
||
<code>#include <string></code><br />
|
||
<code>#include <vector></code><br />
|
||
</div><div class="textblock"><div class="dynheader">
|
||
sdf_tree.h 的引用(Include)关系图:</div>
|
||
<div class="dyncontent">
|
||
<div class="center"><img src="sdf__tree_8h__incl.png" border="0" usemap="#ainclude_2vde_2sdf_2sdf__tree_8h" alt=""/></div>
|
||
<map name="ainclude_2vde_2sdf_2sdf__tree_8h" id="ainclude_2vde_2sdf_2sdf__tree_8h">
|
||
<area shape="rect" title="SDF 表达式树结构" alt="" coords="641,5,787,47"/>
|
||
<area shape="rect" href="sdf__primitives_8h.html" title="有符号距离函数(SDF)基础图元" alt="" coords="562,95,741,121"/>
|
||
<area shape="rect" href="point_8h.html" title=" " alt="" coords="331,169,457,196"/>
|
||
<area shape="rect" title=" " alt="" coords="667,333,729,360"/>
|
||
<area shape="rect" href="sdf__operations_8h.html" title="SDF 布尔运算、修饰算子与域变形" alt="" coords="355,95,537,121"/>
|
||
<area shape="rect" title=" " alt="" coords="815,95,893,121"/>
|
||
<area shape="rect" title=" " alt="" coords="917,95,975,121"/>
|
||
<area shape="rect" title=" " alt="" coords="499,333,561,360"/>
|
||
<area shape="rect" title=" " alt="" coords="567,169,653,196"/>
|
||
<area shape="rect" href="math__types_8h.html" title=" " alt="" coords="112,244,271,285"/>
|
||
<area shape="rect" href="tolerance_8h.html" title=" " alt="" coords="295,251,493,278"/>
|
||
<area shape="rect" title=" " alt="" coords="251,333,343,360"/>
|
||
<area shape="rect" title=" " alt="" coords="5,333,132,360"/>
|
||
<area shape="rect" title=" " alt="" coords="156,333,227,360"/>
|
||
<area shape="rect" title=" " alt="" coords="367,333,426,360"/>
|
||
</map>
|
||
</div>
|
||
</div><div class="textblock"><div class="dynheader">
|
||
此图展示该文件直接或间接的被哪些文件引用了:</div>
|
||
<div class="dyncontent">
|
||
<div class="center"><img src="sdf__tree_8h__dep__incl.png" border="0" usemap="#ainclude_2vde_2sdf_2sdf__tree_8hdep" alt=""/></div>
|
||
<map name="ainclude_2vde_2sdf_2sdf__tree_8hdep" id="ainclude_2vde_2sdf_2sdf__tree_8hdep">
|
||
<area shape="rect" title="SDF 表达式树结构" alt="" coords="175,5,320,47"/>
|
||
<area shape="rect" href="sdf__optimize_8h.html" title="基于梯度的 SDF 形状优化" alt="" coords="5,95,151,136"/>
|
||
<area shape="rect" href="sdf__to__mesh_8h.html" title="SDF 到三角网格的转换" alt="" coords="175,95,320,136"/>
|
||
<area shape="rect" href="sdf__torch_8h.html" title="SDF 批量求值与梯度计算(CPU 后端)" alt="" coords="344,95,489,136"/>
|
||
</map>
|
||
</div>
|
||
</div>
|
||
<p><a href="sdf__tree_8h_source.html">浏览源代码.</a></p>
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||
类</h2></td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1sdf_1_1SdfParams.html">vde::sdf::SdfParams</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">SDF 节点参数联合体 <a href="structvde_1_1sdf_1_1SdfParams.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1sdf_1_1SdfNode.html">vde::sdf::SdfNode</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">SDF 表达式树节点 <a href="classvde_1_1sdf_1_1SdfNode.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1sdf_1_1SdfBBox.html">vde::sdf::SdfBBox</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">SDF 树的包围盒(AABB) <a href="structvde_1_1sdf_1_1SdfBBox.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||
命名空间</h2></td></tr>
|
||
<tr class="memitem:namespacevde"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde.html">vde</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:namespacevde_1_1sdf"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html">vde::sdf</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||
类型定义</h2></td></tr>
|
||
<tr class="memitem:a8fdcf277d6327c0b1413373ae82f9d5d"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">vde::sdf::SdfNodePtr</a> = std::shared_ptr< SdfNode ></td></tr>
|
||
<tr class="separator:a8fdcf277d6327c0b1413373ae82f9d5d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||
枚举</h2></td></tr>
|
||
<tr class="memitem:a9ba4992806c82a0737f72c23bd0b76a1"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">vde::sdf::SdfOp</a> : uint8_t { <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7095f057db3fefa7325ad93a04e14fd">vde::sdf::Sphere</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3cfce651e667ab85486dd42a8185f98a">vde::sdf::Box</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaa93268be1d4bdbd54161ce80ebbcd4a">vde::sdf::RoundBox</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a5c22b826138634df6ddf1e22fdb7e66e">vde::sdf::Torus</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a4880c0f12c06dd6d142e7a40b041bf1a">vde::sdf::Capsule</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a2ec2c2961c7ce5a114d969c1f562a563">vde::sdf::Cylinder</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1acd2c8bc6e5f1ea17c918ccaf89660104">vde::sdf::Cone</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0d3adee051531c15b3509b4d4d75ce7b">vde::sdf::Plane</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aeee5397cecd880d16ef7244819aa383d">vde::sdf::Ellipsoid</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6902c1182f48fb6ef52bcaf772a0a497">vde::sdf::TriangularPrism</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a353772bb59a548d2ebe04618d4771f2e">vde::sdf::HexPrism</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a97e7c9a7d06eac006a28bf05467fcc8b">vde::sdf::Link</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0e9bb3a0eff96690b1e9badd73b99219">vde::sdf::Wedge</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaef12e903e606a4895a16b393bfdec8c">vde::sdf::Union</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa06d31c2ee920b4d53e8c9c06d90ba24">vde::sdf::Intersection</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a28ed2ac6c29f64a3692c956004b8ff7a">vde::sdf::Difference</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a80e758c6bbd5c38be05d5feee002a83e">vde::sdf::SmoothUnion</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3ccde23d9a8f92e5e5f7c782079cded7">vde::sdf::SmoothIntersection</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a75005e4bb7beb34ecfe5067ccba5a958">vde::sdf::SmoothDifference</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7f41fc1412ad2ee75e9b2635d3b9d5c">vde::sdf::Round</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8eaa10d1a33a28200a7c7684919b66c7">vde::sdf::Onion</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a7020426cfb0a204051be4b3053d2acc8">vde::sdf::Repeat</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8ee36c9c42f877feee31aaf4b0883546">vde::sdf::MirrorX</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ac81ac223c7946d2dd3872e591c6988f5">vde::sdf::MirrorY</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6824e17f0c6d79093e95c24c80af97f6">vde::sdf::MirrorZ</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adeccbe4e9083c3b5f7cd2632722765bb">vde::sdf::Translate</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8d2de5368588552fbae54044ac5c7b3d">vde::sdf::Rotate</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a85a7cd587d6142dbfc1a4de05af7b75d">vde::sdf::Scale</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa80d865c12c4d5d9986c33ae4390e1f6">vde::sdf::Twist</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adcef3e264a0eecc2a9eadd4478c67a1f">vde::sdf::Bend</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a1aaedf458e4a63162c7771e2bd8c1ff7">vde::sdf::Elongate</a>
|
||
, <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a14da42d903ea0348b07f70e0ac73fa34">vde::sdf::CheapBend</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a508f64e1623cf34c9040a219077301ba">vde::sdf::Displace</a>
|
||
<br />
|
||
}</td></tr>
|
||
<tr class="memdesc:a9ba4992806c82a0737f72c23bd0b76a1"><td class="mdescLeft"> </td><td class="mdescRight">CSG 树的所有节点类型 <a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">更多...</a><br /></td></tr>
|
||
<tr class="separator:a9ba4992806c82a0737f72c23bd0b76a1"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||
函数</h2></td></tr>
|
||
<tr class="memitem:a30bd88dc6f714962cb14ec76a5ca5365"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">vde::sdf::evaluate</a> (const SdfNodePtr &root, const Point3D &p)</td></tr>
|
||
<tr class="memdesc:a30bd88dc6f714962cb14ec76a5ca5365"><td class="mdescLeft"> </td><td class="mdescRight">在空间点 p 处求值 SDF 树 <a href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">更多...</a><br /></td></tr>
|
||
<tr class="separator:a30bd88dc6f714962cb14ec76a5ca5365"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae6bcbe30bdd5180fd6cb7a6818969c4d"><td class="memItemLeft" align="right" valign="top">Point3D </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d">vde::sdf::estimate_bounds</a> (const SdfNodePtr &root, double margin=1.0)</td></tr>
|
||
<tr class="memdesc:ae6bcbe30bdd5180fd6cb7a6818969c4d"><td class="mdescLeft"> </td><td class="mdescRight">估算 SDF 树的包围半尺寸 <a href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d">更多...</a><br /></td></tr>
|
||
<tr class="separator:ae6bcbe30bdd5180fd6cb7a6818969c4d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a06d4ae274cd858e331cf56f497a545bb"><td class="memItemLeft" align="right" valign="top">SdfBBox </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb">vde::sdf::estimate_bbox</a> (const SdfNodePtr &root, double margin=1.0)</td></tr>
|
||
<tr class="memdesc:a06d4ae274cd858e331cf56f497a545bb"><td class="mdescLeft"> </td><td class="mdescRight">估算 SDF 树的完整轴对齐包围盒 <a href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb">更多...</a><br /></td></tr>
|
||
<tr class="separator:a06d4ae274cd858e331cf56f497a545bb"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
|
||
<div class="textblock"><p>SDF 表达式树结构 </p>
|
||
<p>将 SDF 原语和 CSG 操作以树形数据结构表示,支持树遍历、求值和包围盒估算。</p>
|
||
<h2><a class="anchor" id="autotoc_md35"></a>
|
||
架构层级</h2>
|
||
<div class="fragment"><div class="line">SdfNode (树节点) — 单节点,含操作类型+参数+子节点</div>
|
||
<div class="line"> ├─ <span class="keyword">enum</span> <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">SdfOp</a> — 操作枚举(图元/CSG/修饰/变形)</div>
|
||
<div class="line"> ├─ <span class="keyword">struct </span>SdfParams — 参数联合体</div>
|
||
<div class="line"> ├─ 静态工厂方法 — 创建各类型节点</div>
|
||
<div class="line"> └─ visit() — 前序遍历</div>
|
||
<div class="line"> </div>
|
||
<div class="line"><a class="code" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">evaluate</a>() — 递归求值</div>
|
||
<div class="line"><a class="code" href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d">estimate_bounds</a>() / <a class="code" href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb">estimate_bbox</a>() — 包围盒估算</div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a06d4ae274cd858e331cf56f497a545bb"><div class="ttname"><a href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb">vde::sdf::estimate_bbox</a></div><div class="ttdeci">SdfBBox estimate_bbox(const SdfNodePtr &root, double margin=1.0)</div><div class="ttdoc">估算 SDF 树的完整轴对齐包围盒</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a30bd88dc6f714962cb14ec76a5ca5365"><div class="ttname"><a href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">vde::sdf::evaluate</a></div><div class="ttdeci">double evaluate(const SdfNodePtr &root, const Point3D &p)</div><div class="ttdoc">在空间点 p 处求值 SDF 树</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">vde::sdf::SdfOp</a></div><div class="ttdeci">SdfOp</div><div class="ttdoc">CSG 树的所有节点类型</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00060">sdf_tree.h:60</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_ae6bcbe30bdd5180fd6cb7a6818969c4d"><div class="ttname"><a href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d">vde::sdf::estimate_bounds</a></div><div class="ttdeci">Point3D estimate_bounds(const SdfNodePtr &root, double margin=1.0)</div><div class="ttdoc">估算 SDF 树的包围半尺寸</div></div>
|
||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md36"></a>
|
||
使用模式</h2>
|
||
<p>通过静态工厂方法构建节点树,然后调用 <a class="el" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365" title="在空间点 p 处求值 SDF 树">evaluate()</a> 进行求值:</p>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> root = <a class="code" href="namespacevde_1_1sdf.html#a93c4506583db122c5b657d39d6d2bb62">SdfNode::op_union</a>(</div>
|
||
<div class="line"> <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">SdfNode::sphere</a>(1.0),</div>
|
||
<div class="line"> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">SdfNode::box</a>(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0.5, 0.5, 0.5))</div>
|
||
<div class="line">);</div>
|
||
<div class="line"><span class="keywordtype">double</span> d = <a class="code" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">evaluate</a>(root, <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(1.0, 0.0, 0.0));</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_1sdf_html_a380ebfe1b3b65d5ecc4efcb946b21834"><div class="ttname"><a href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">vde::sdf::box</a></div><div class="ttdeci">double box(const Point3D &p, const Point3D &half_extents)</div><div class="ttdoc">轴对齐立方体的 SDF</div><div class="ttdef"><b>Definition:</b> <a href="sdf__primitives_8h_source.html#l00096">sdf_primitives.h:96</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a93c4506583db122c5b657d39d6d2bb62"><div class="ttname"><a href="namespacevde_1_1sdf.html#a93c4506583db122c5b657d39d6d2bb62">vde::sdf::op_union</a></div><div class="ttdeci">double op_union(double d1, double d2)</div><div class="ttdoc">布尔并集: A ∪ B</div><div class="ttdef"><b>Definition:</b> <a href="sdf__operations_8h_source.html#l00048">sdf_operations.h:48</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_ab544a3ebc4c0844b322b73bbbe4efb3f"><div class="ttname"><a href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">vde::sdf::sphere</a></div><div class="ttdeci">double sphere(const Point3D &p, double radius)</div><div class="ttdoc">球体的 SDF</div><div class="ttdef"><b>Definition:</b> <a href="sdf__primitives_8h_source.html#l00068">sdf_primitives.h:68</a></div></div>
|
||
</div><!-- fragment -->
|
||
<p class="definition">在文件 <a class="el" href="sdf__tree_8h_source.html">sdf_tree.h</a> 中定义.</p>
|
||
</div></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_865941a50ed007925fcdd14642daadc9.html">sdf</a></li><li class="navelem"><a class="el" href="sdf__tree_8h.html">sdf_tree.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>
|