373 lines
88 KiB
HTML
373 lines
88 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_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">sdf_tree.h</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<a href="sdf__tree_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="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="sdf__primitives_8h.html">vde/sdf/sdf_primitives.h</a>"</span></div>
|
||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="sdf__operations_8h.html">vde/sdf/sdf_operations.h</a>"</span></div>
|
||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="point_8h.html">vde/core/point.h</a>"</span></div>
|
||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <memory></span></div>
|
||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <string></span></div>
|
||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <vector></span></div>
|
||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespacevde_1_1sdf.html">vde::sdf</a> {</div>
|
||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">using</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">core::Point3D</a>;</div>
|
||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">using</span> <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">core::Vector3D</a>;</div>
|
||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Forward declaration</span></div>
|
||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">class </span>SdfNode;</div>
|
||
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d"> 48</a></span> <span class="keyword">using</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> = std::shared_ptr<SdfNode>;</div>
|
||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
||
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1"> 60</a></span> <span class="keyword">enum class</span> <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">SdfOp</a> : uint8_t {</div>
|
||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Primitives</span></div>
|
||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7095f057db3fefa7325ad93a04e14fd">Sphere</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3cfce651e667ab85486dd42a8185f98a">Box</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaa93268be1d4bdbd54161ce80ebbcd4a">RoundBox</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a5c22b826138634df6ddf1e22fdb7e66e">Torus</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a4880c0f12c06dd6d142e7a40b041bf1a">Capsule</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a2ec2c2961c7ce5a114d969c1f562a563">Cylinder</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1acd2c8bc6e5f1ea17c918ccaf89660104">Cone</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0d3adee051531c15b3509b4d4d75ce7b">Plane</a>,</div>
|
||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aeee5397cecd880d16ef7244819aa383d">Ellipsoid</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6902c1182f48fb6ef52bcaf772a0a497">TriangularPrism</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a353772bb59a548d2ebe04618d4771f2e">HexPrism</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a97e7c9a7d06eac006a28bf05467fcc8b">Link</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0e9bb3a0eff96690b1e9badd73b99219">Wedge</a>,</div>
|
||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Boolean CSG</span></div>
|
||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaef12e903e606a4895a16b393bfdec8c">Union</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa06d31c2ee920b4d53e8c9c06d90ba24">Intersection</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a28ed2ac6c29f64a3692c956004b8ff7a">Difference</a>,</div>
|
||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a80e758c6bbd5c38be05d5feee002a83e">SmoothUnion</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3ccde23d9a8f92e5e5f7c782079cded7">SmoothIntersection</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a75005e4bb7beb34ecfe5067ccba5a958">SmoothDifference</a>,</div>
|
||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// Modifiers</span></div>
|
||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7f41fc1412ad2ee75e9b2635d3b9d5c">Round</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8eaa10d1a33a28200a7c7684919b66c7">Onion</a>,</div>
|
||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Domain transforms</span></div>
|
||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a7020426cfb0a204051be4b3053d2acc8">Repeat</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8ee36c9c42f877feee31aaf4b0883546">MirrorX</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ac81ac223c7946d2dd3872e591c6988f5">MirrorY</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6824e17f0c6d79093e95c24c80af97f6">MirrorZ</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adeccbe4e9083c3b5f7cd2632722765bb">Translate</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8d2de5368588552fbae54044ac5c7b3d">Rotate</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a85a7cd587d6142dbfc1a4de05af7b75d">Scale</a>,</div>
|
||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa80d865c12c4d5d9986c33ae4390e1f6">Twist</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adcef3e264a0eecc2a9eadd4478c67a1f">Bend</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a1aaedf458e4a63162c7771e2bd8c1ff7">Elongate</a>, <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a14da42d903ea0348b07f70e0ac73fa34">CheapBend</a>,</div>
|
||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// Displacement</span></div>
|
||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a508f64e1623cf34c9040a219077301ba">Displace</a></div>
|
||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div>
|
||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html"> 100</a></span> <span class="keyword">struct </span><a class="code" href="structvde_1_1sdf_1_1SdfParams.html">SdfParams</a> {</div>
|
||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// ── Primitive parameters ──</span></div>
|
||
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a760d4fbf2cd25017427ce04603eefd73"> 102</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a760d4fbf2cd25017427ce04603eefd73">radius</a> = 1.0; </div>
|
||
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a504abb24b59d5b16fb34453fba033b50"> 103</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a504abb24b59d5b16fb34453fba033b50">extents</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(1, 1, 1); </div>
|
||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a28799acdc10136cb7aa5c5f28b8faa5d"> 104</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a28799acdc10136cb7aa5c5f28b8faa5d">pt_a</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0, -1, 0); </div>
|
||
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a49b083433d14965d24253423b42183c5"> 105</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a49b083433d14965d24253423b42183c5">pt_b</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0, 1, 0); </div>
|
||
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a6cee29181d03f880b7ded4114c5d579d"> 106</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a6cee29181d03f880b7ded4114c5d579d">major_radius</a> = 1.0; </div>
|
||
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a2aecc5c15b0cd00545d917850ea9f4ae"> 107</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a2aecc5c15b0cd00545d917850ea9f4ae">minor_radius</a> = 0.3; </div>
|
||
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a0f2982663961743f67586cf2dab834fc"> 108</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a0f2982663961743f67586cf2dab834fc">angle_rad</a> = 0.5; </div>
|
||
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#aa8f6e831e3d458cc5331bcb5cf0aca7a"> 109</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#aa8f6e831e3d458cc5331bcb5cf0aca7a">height</a> = 2.0; </div>
|
||
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a706914d404026bd7e56e2189ffd0c569"> 110</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a706914d404026bd7e56e2189ffd0c569">thickness</a> = 0.1; </div>
|
||
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a1b8aae16cabe8d6bc48791c04bfd76eb"> 111</a></span>  <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">Vector3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a1b8aae16cabe8d6bc48791c04bfd76eb">normal</a> = <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">Vector3D</a>(0, 1, 0); </div>
|
||
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#adc57313e2d7166c7c7d6e8d3d85401f3"> 112</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#adc57313e2d7166c7c7d6e8d3d85401f3">offset</a> = 0.0; </div>
|
||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// ── Operation parameters ──</span></div>
|
||
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a5eb41fe0a1195fd82fe44152895f817a"> 115</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a5eb41fe0a1195fd82fe44152895f817a">blend_k</a> = 0.2; </div>
|
||
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#aff4edc45464d4ae56f9535ddd19d0ebc"> 116</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#aff4edc45464d4ae56f9535ddd19d0ebc">amount</a> = 0.5; </div>
|
||
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#aba9169119b31ca1bbbde5daef364a824"> 117</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#aba9169119b31ca1bbbde5daef364a824">amplitude</a> = 0.1; </div>
|
||
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#af79a6d085579d32a669860b9547e9a5b"> 118</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#af79a6d085579d32a669860b9547e9a5b">frequency</a> = 1.0; </div>
|
||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#ab0704cc4f1aa746c071741b8d3797db7"> 119</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#ab0704cc4f1aa746c071741b8d3797db7">repeat_cell</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(2, 2, 2); </div>
|
||
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#a719c51f05137b17a6212a704f60df74c"> 120</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#a719c51f05137b17a6212a704f60df74c">translate_offset</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0, 0, 0); </div>
|
||
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfParams.html#ae653a432ea03eab100148acb91e859cd"> 121</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfParams.html#ae653a432ea03eab100148acb91e859cd">scale_factors</a> = <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(1, 1, 1); </div>
|
||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> };</div>
|
||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
|
||
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html"> 138</a></span> <span class="keyword">class </span><a class="code" href="classvde_1_1sdf_1_1SdfNode.html">SdfNode</a> {</div>
|
||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">public</span>:</div>
|
||
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a2101f4cd1fe1501bfbc3eb01d2d41b7a"> 140</a></span>  <a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">SdfOp</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a2101f4cd1fe1501bfbc3eb01d2d41b7a">op</a>; </div>
|
||
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#af2fa935cf472d0342004899bb026948b"> 141</a></span>  <a class="code" href="structvde_1_1sdf_1_1SdfParams.html">SdfParams</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#af2fa935cf472d0342004899bb026948b">params</a>; </div>
|
||
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#adbc6ef724b470accb19ec89d401c15d2"> 142</a></span>  std::vector<SdfNodePtr> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#adbc6ef724b470accb19ec89d401c15d2">children</a>; </div>
|
||
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a490f682beb59248e6a8dafef33a1351e"> 143</a></span>  std::string <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a490f682beb59248e6a8dafef33a1351e">name</a>; </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>  <span class="comment">// ── Primitive factories ──</span></div>
|
||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
||
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a16d3b639322d4a665e71ab43fe8434eb"> 148</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a16d3b639322d4a665e71ab43fe8434eb">sphere</a>(<span class="keywordtype">double</span> r);</div>
|
||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a1496b0260273ed9d2d924a8653870eeb"> 151</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a1496b0260273ed9d2d924a8653870eeb">box</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& half_extents);</div>
|
||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
||
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a1fe12d760980bdc5d14518beaa028bb9"> 154</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a1fe12d760980bdc5d14518beaa028bb9">round_box</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& half_extents, <span class="keywordtype">double</span> r);</div>
|
||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
||
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a40b93f8a746aacb45ceea5692a1c86f3"> 157</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a40b93f8a746aacb45ceea5692a1c86f3">cylinder</a>(<span class="keywordtype">double</span> r, <span class="keywordtype">double</span> h);</div>
|
||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#aedf6cf743d580f31c6de061e963fe6ba"> 160</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#aedf6cf743d580f31c6de061e963fe6ba">torus</a>(<span class="keywordtype">double</span> major_r, <span class="keywordtype">double</span> minor_r);</div>
|
||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
||
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a675480c096c5736ae52eef3edd96c9d1"> 163</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a675480c096c5736ae52eef3edd96c9d1">capsule</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& a, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& b, <span class="keywordtype">double</span> r);</div>
|
||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
||
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#ab7df9528d921c258dbab0a58e8b8f14f"> 166</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#ab7df9528d921c258dbab0a58e8b8f14f">cone</a>(<span class="keywordtype">double</span> angle_rad, <span class="keywordtype">double</span> h);</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_1sdf_1_1SdfNode.html#a6ee1ebca74ca3477c46328dbc5d352e5"> 169</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a6ee1ebca74ca3477c46328dbc5d352e5">plane</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">Vector3D</a>& normal, <span class="keywordtype">double</span> offset);</div>
|
||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
||
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#af91df19df212ae7e49c361548050c80c"> 172</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#af91df19df212ae7e49c361548050c80c">ellipsoid</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& radii);</div>
|
||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
||
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a535419dd0ff9bdbf1ca2c478e7d1fb06"> 175</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a535419dd0ff9bdbf1ca2c478e7d1fb06">triangular_prism</a>(<span class="keywordtype">double</span> h);</div>
|
||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a5b8dbaea6851931748e8839131c94c7e"> 178</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a5b8dbaea6851931748e8839131c94c7e">hex_prism</a>(<span class="keywordtype">double</span> h);</div>
|
||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
||
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a5ec23a2962891d329b16ca55bae76f69"> 181</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a5ec23a2962891d329b16ca55bae76f69">link</a>(<span class="keywordtype">double</span> r, <span class="keywordtype">double</span> length, <span class="keywordtype">double</span> thickness);</div>
|
||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
||
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a6f02fba6c0fad7d9bbb9488f55a39781"> 184</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a6f02fba6c0fad7d9bbb9488f55a39781">wedge</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& extents);</div>
|
||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
|
||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// ── Boolean CSG factories (two children) ──</span></div>
|
||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
|
||
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#aa07a64ef52e92a5b3d78da3822b84f68"> 189</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#aa07a64ef52e92a5b3d78da3822b84f68">op_union</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b);</div>
|
||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
||
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a2f4c5fd04ad2f8189cdc870c103d37f8"> 192</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a2f4c5fd04ad2f8189cdc870c103d37f8">op_intersection</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b);</div>
|
||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
||
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a3b60c2cc16e9227d0e6b7f2ac5fe0d79"> 195</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a3b60c2cc16e9227d0e6b7f2ac5fe0d79">op_difference</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b);</div>
|
||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
||
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#ab0ab8ea44deb6758a2368881f75be887"> 198</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#ab0ab8ea44deb6758a2368881f75be887">smooth_union</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b, <span class="keywordtype">double</span> k);</div>
|
||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div>
|
||
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a247eb701eb8bd4d73c9655eaeedfe8b4"> 201</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a247eb701eb8bd4d73c9655eaeedfe8b4">smooth_intersection</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b, <span class="keywordtype">double</span> k);</div>
|
||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
|
||
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#ae12ebb0f8ab9e0af8f82359a528c7b9f"> 204</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#ae12ebb0f8ab9e0af8f82359a528c7b9f">smooth_difference</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> a, <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> b, <span class="keywordtype">double</span> k);</div>
|
||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// ── Modifier factories (one child) ──</span></div>
|
||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
||
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a86c9a3919f907c78785f6d348a9bd491"> 209</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a86c9a3919f907c78785f6d348a9bd491">round</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> r);</div>
|
||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
||
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#af6d47f8b5264618f982a4fd56928826f"> 212</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#af6d47f8b5264618f982a4fd56928826f">onion</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> thickness);</div>
|
||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
|
||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// ── Domain transform factories (one child) ──</span></div>
|
||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
||
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#acf81d1025273d14f269204ad5dea4c07"> 217</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#acf81d1025273d14f269204ad5dea4c07">repeat</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& cell);</div>
|
||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
||
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#acaa223f67e00918c35606ebc4f321f36"> 220</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#acaa223f67e00918c35606ebc4f321f36">mirror_x</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child);</div>
|
||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
||
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a25886eb80a70a4572bb5426cd49714f9"> 223</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a25886eb80a70a4572bb5426cd49714f9">mirror_y</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child);</div>
|
||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
||
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a4b2258e979415f50ef1cb1f9932896b3"> 226</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a4b2258e979415f50ef1cb1f9932896b3">mirror_z</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child);</div>
|
||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
||
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a42dce89f95014bdf1cf9cec696f12eb8"> 229</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a42dce89f95014bdf1cf9cec696f12eb8">translate</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& offset);</div>
|
||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
|
||
<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a248bd2e4d04dcf48d18be1a37e0a7191"> 232</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a248bd2e4d04dcf48d18be1a37e0a7191">rotate</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> angle_rad);</div>
|
||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
|
||
<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a152ab0faaf971186cd2e24ebb5ecd120"> 235</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a152ab0faaf971186cd2e24ebb5ecd120">scale</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& factors);</div>
|
||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
|
||
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#ad8c56a74327269439bd223511c23c2f6"> 238</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#ad8c56a74327269439bd223511c23c2f6">twist</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> amount);</div>
|
||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
||
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a1234f49d65f073d9243cad4cb1a0550f"> 241</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a1234f49d65f073d9243cad4cb1a0550f">bend</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> amount);</div>
|
||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
||
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#acca7ee38f76735bd1099b1f7012dfdfd"> 244</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#acca7ee38f76735bd1099b1f7012dfdfd">elongate</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& h);</div>
|
||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
||
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a56a0f33b5d64e3633463cfc70368206a"> 247</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a56a0f33b5d64e3633463cfc70368206a">cheap_bend</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> amount);</div>
|
||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
||
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a6b5ca7b5e4a4b7c525e8dd2b6096bed0"> 250</a></span>  <span class="keyword">static</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a6b5ca7b5e4a4b7c525e8dd2b6096bed0">displace</a>(<a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a> child, <span class="keywordtype">double</span> amplitude, <span class="keywordtype">double</span> frequency);</div>
|
||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Fn></div>
|
||
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#ad546c349c0b0b459e899a8fb47d5c392"> 267</a></span>  <span class="keywordtype">void</span> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#ad546c349c0b0b459e899a8fb47d5c392">visit</a>(Fn&& fn) {</div>
|
||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  fn(*<span class="keyword">this</span>);</div>
|
||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& c : <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#adbc6ef724b470accb19ec89d401c15d2">children</a>) c->visit(std::forward<Fn>(fn));</div>
|
||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div>
|
||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  </div>
|
||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Fn></div>
|
||
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a747ab57aa413aa8da85a3ce77bd580de"> 279</a></span>  <span class="keywordtype">void</span> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a747ab57aa413aa8da85a3ce77bd580de">visit</a>(Fn&& fn)<span class="keyword"> const </span>{</div>
|
||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  fn(*<span class="keyword">this</span>);</div>
|
||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& c : <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#adbc6ef724b470accb19ec89d401c15d2">children</a>) c->visit(std::forward<Fn>(fn));</div>
|
||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
|
||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">public</span>:</div>
|
||
<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classvde_1_1sdf_1_1SdfNode.html#a110ea1ad7bed07fd4e3a68b5f5db10dd"> 289</a></span>  <span class="keyword">explicit</span> <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a110ea1ad7bed07fd4e3a68b5f5db10dd">SdfNode</a>(<a class="code" href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1">SdfOp</a> o) : <a class="code" href="classvde_1_1sdf_1_1SdfNode.html#a2101f4cd1fe1501bfbc3eb01d2d41b7a">op</a>(o) {}</div>
|
||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> };</div>
|
||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
||
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365"> 314</a></span> [[nodiscard]] <span class="keywordtype">double</span> <a class="code" href="namespacevde_1_1sdf.html#a30bd88dc6f714962cb14ec76a5ca5365">evaluate</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a>& root, <span class="keyword">const</span> <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>& p);</div>
|
||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
|
||
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d"> 330</a></span> [[nodiscard]] <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="namespacevde_1_1sdf.html#ae6bcbe30bdd5180fd6cb7a6818969c4d">estimate_bounds</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a>& root, <span class="keywordtype">double</span> margin = 1.0);</div>
|
||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
||
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfBBox.html"> 337</a></span> <span class="keyword">struct </span><a class="code" href="structvde_1_1sdf_1_1SdfBBox.html">SdfBBox</a> {</div>
|
||
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfBBox.html#aa7458f07e4e3ec09e4a05c4b1529218d"> 338</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfBBox.html#aa7458f07e4e3ec09e4a05c4b1529218d">min</a>; </div>
|
||
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="structvde_1_1sdf_1_1SdfBBox.html#a4bb507271494ca7a9576b4af3b7f49a9"> 339</a></span>  <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a> <a class="code" href="structvde_1_1sdf_1_1SdfBBox.html#a4bb507271494ca7a9576b4af3b7f49a9">max</a>; </div>
|
||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> };</div>
|
||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  </div>
|
||
<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb"> 357</a></span> [[nodiscard]] <a class="code" href="structvde_1_1sdf_1_1SdfBBox.html">SdfBBox</a> <a class="code" href="namespacevde_1_1sdf.html#a06d4ae274cd858e331cf56f497a545bb">estimate_bbox</a>(<span class="keyword">const</span> <a class="code" href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">SdfNodePtr</a>& root, <span class="keywordtype">double</span> margin = 1.0);</div>
|
||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  </div>
|
||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> } <span class="comment">// namespace vde::sdf</span></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html">vde::sdf::SdfNode</a></div><div class="ttdoc">SDF 表达式树节点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00138">sdf_tree.h:138</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a110ea1ad7bed07fd4e3a68b5f5db10dd"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a110ea1ad7bed07fd4e3a68b5f5db10dd">vde::sdf::SdfNode::SdfNode</a></div><div class="ttdeci">SdfNode(SdfOp o)</div><div class="ttdoc">构造 SDF 节点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00289">sdf_tree.h:289</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a1234f49d65f073d9243cad4cb1a0550f"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a1234f49d65f073d9243cad4cb1a0550f">vde::sdf::SdfNode::bend</a></div><div class="ttdeci">static SdfNodePtr bend(SdfNodePtr child, double amount)</div><div class="ttdoc">创建弯曲节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a1496b0260273ed9d2d924a8653870eeb"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a1496b0260273ed9d2d924a8653870eeb">vde::sdf::SdfNode::box</a></div><div class="ttdeci">static SdfNodePtr box(const Point3D &half_extents)</div><div class="ttdoc">创建轴对齐长方体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a152ab0faaf971186cd2e24ebb5ecd120"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a152ab0faaf971186cd2e24ebb5ecd120">vde::sdf::SdfNode::scale</a></div><div class="ttdeci">static SdfNodePtr scale(SdfNodePtr child, const Point3D &factors)</div><div class="ttdoc">创建缩放节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a16d3b639322d4a665e71ab43fe8434eb"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a16d3b639322d4a665e71ab43fe8434eb">vde::sdf::SdfNode::sphere</a></div><div class="ttdeci">static SdfNodePtr sphere(double r)</div><div class="ttdoc">创建球体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a1fe12d760980bdc5d14518beaa028bb9"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a1fe12d760980bdc5d14518beaa028bb9">vde::sdf::SdfNode::round_box</a></div><div class="ttdeci">static SdfNodePtr round_box(const Point3D &half_extents, double r)</div><div class="ttdoc">创建圆角长方体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a2101f4cd1fe1501bfbc3eb01d2d41b7a"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a2101f4cd1fe1501bfbc3eb01d2d41b7a">vde::sdf::SdfNode::op</a></div><div class="ttdeci">SdfOp op</div><div class="ttdoc">操作类型</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00140">sdf_tree.h:140</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a247eb701eb8bd4d73c9655eaeedfe8b4"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a247eb701eb8bd4d73c9655eaeedfe8b4">vde::sdf::SdfNode::smooth_intersection</a></div><div class="ttdeci">static SdfNodePtr smooth_intersection(SdfNodePtr a, SdfNodePtr b, double k)</div><div class="ttdoc">创建平滑交集节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a248bd2e4d04dcf48d18be1a37e0a7191"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a248bd2e4d04dcf48d18be1a37e0a7191">vde::sdf::SdfNode::rotate</a></div><div class="ttdeci">static SdfNodePtr rotate(SdfNodePtr child, double angle_rad)</div><div class="ttdoc">创建旋转节点(绕 Y 轴)</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a25886eb80a70a4572bb5426cd49714f9"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a25886eb80a70a4572bb5426cd49714f9">vde::sdf::SdfNode::mirror_y</a></div><div class="ttdeci">static SdfNodePtr mirror_y(SdfNodePtr child)</div><div class="ttdoc">创建 Y 镜像节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a2f4c5fd04ad2f8189cdc870c103d37f8"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a2f4c5fd04ad2f8189cdc870c103d37f8">vde::sdf::SdfNode::op_intersection</a></div><div class="ttdeci">static SdfNodePtr op_intersection(SdfNodePtr a, SdfNodePtr b)</div><div class="ttdoc">创建交集节点: A ∩ B</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a3b60c2cc16e9227d0e6b7f2ac5fe0d79"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a3b60c2cc16e9227d0e6b7f2ac5fe0d79">vde::sdf::SdfNode::op_difference</a></div><div class="ttdeci">static SdfNodePtr op_difference(SdfNodePtr a, SdfNodePtr b)</div><div class="ttdoc">创建差集节点: A \ B</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a40b93f8a746aacb45ceea5692a1c86f3"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a40b93f8a746aacb45ceea5692a1c86f3">vde::sdf::SdfNode::cylinder</a></div><div class="ttdeci">static SdfNodePtr cylinder(double r, double h)</div><div class="ttdoc">创建圆柱体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a42dce89f95014bdf1cf9cec696f12eb8"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a42dce89f95014bdf1cf9cec696f12eb8">vde::sdf::SdfNode::translate</a></div><div class="ttdeci">static SdfNodePtr translate(SdfNodePtr child, const Point3D &offset)</div><div class="ttdoc">创建平移节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a490f682beb59248e6a8dafef33a1351e"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a490f682beb59248e6a8dafef33a1351e">vde::sdf::SdfNode::name</a></div><div class="ttdeci">std::string name</div><div class="ttdoc">节点名(调试用)</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00143">sdf_tree.h:143</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a4b2258e979415f50ef1cb1f9932896b3"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a4b2258e979415f50ef1cb1f9932896b3">vde::sdf::SdfNode::mirror_z</a></div><div class="ttdeci">static SdfNodePtr mirror_z(SdfNodePtr child)</div><div class="ttdoc">创建 Z 镜像节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a535419dd0ff9bdbf1ca2c478e7d1fb06"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a535419dd0ff9bdbf1ca2c478e7d1fb06">vde::sdf::SdfNode::triangular_prism</a></div><div class="ttdeci">static SdfNodePtr triangular_prism(double h)</div><div class="ttdoc">创建三角棱柱节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a56a0f33b5d64e3633463cfc70368206a"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a56a0f33b5d64e3633463cfc70368206a">vde::sdf::SdfNode::cheap_bend</a></div><div class="ttdeci">static SdfNodePtr cheap_bend(SdfNodePtr child, double amount)</div><div class="ttdoc">创建简化弯曲节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a5b8dbaea6851931748e8839131c94c7e"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a5b8dbaea6851931748e8839131c94c7e">vde::sdf::SdfNode::hex_prism</a></div><div class="ttdeci">static SdfNodePtr hex_prism(double h)</div><div class="ttdoc">创建六棱柱节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a5ec23a2962891d329b16ca55bae76f69"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a5ec23a2962891d329b16ca55bae76f69">vde::sdf::SdfNode::link</a></div><div class="ttdeci">static SdfNodePtr link(double r, double length, double thickness)</div><div class="ttdoc">创建双环链接节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a675480c096c5736ae52eef3edd96c9d1"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a675480c096c5736ae52eef3edd96c9d1">vde::sdf::SdfNode::capsule</a></div><div class="ttdeci">static SdfNodePtr capsule(const Point3D &a, const Point3D &b, double r)</div><div class="ttdoc">创建胶囊体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a6b5ca7b5e4a4b7c525e8dd2b6096bed0"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a6b5ca7b5e4a4b7c525e8dd2b6096bed0">vde::sdf::SdfNode::displace</a></div><div class="ttdeci">static SdfNodePtr displace(SdfNodePtr child, double amplitude, double frequency)</div><div class="ttdoc">创建位移扰动节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a6ee1ebca74ca3477c46328dbc5d352e5"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a6ee1ebca74ca3477c46328dbc5d352e5">vde::sdf::SdfNode::plane</a></div><div class="ttdeci">static SdfNodePtr plane(const Vector3D &normal, double offset)</div><div class="ttdoc">创建平面节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a6f02fba6c0fad7d9bbb9488f55a39781"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a6f02fba6c0fad7d9bbb9488f55a39781">vde::sdf::SdfNode::wedge</a></div><div class="ttdeci">static SdfNodePtr wedge(const Point3D &extents)</div><div class="ttdoc">创建楔形体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a747ab57aa413aa8da85a3ce77bd580de"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a747ab57aa413aa8da85a3ce77bd580de">vde::sdf::SdfNode::visit</a></div><div class="ttdeci">void visit(Fn &&fn) const</div><div class="ttdoc">前序遍历(const 版本)</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00279">sdf_tree.h:279</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_a86c9a3919f907c78785f6d348a9bd491"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#a86c9a3919f907c78785f6d348a9bd491">vde::sdf::SdfNode::round</a></div><div class="ttdeci">static SdfNodePtr round(SdfNodePtr child, double r)</div><div class="ttdoc">创建圆角偏移节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_aa07a64ef52e92a5b3d78da3822b84f68"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#aa07a64ef52e92a5b3d78da3822b84f68">vde::sdf::SdfNode::op_union</a></div><div class="ttdeci">static SdfNodePtr op_union(SdfNodePtr a, SdfNodePtr b)</div><div class="ttdoc">创建并集节点: A ∪ B</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_ab0ab8ea44deb6758a2368881f75be887"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#ab0ab8ea44deb6758a2368881f75be887">vde::sdf::SdfNode::smooth_union</a></div><div class="ttdeci">static SdfNodePtr smooth_union(SdfNodePtr a, SdfNodePtr b, double k)</div><div class="ttdoc">创建平滑并集节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_ab7df9528d921c258dbab0a58e8b8f14f"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#ab7df9528d921c258dbab0a58e8b8f14f">vde::sdf::SdfNode::cone</a></div><div class="ttdeci">static SdfNodePtr cone(double angle_rad, double h)</div><div class="ttdoc">创建圆锥台节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_acaa223f67e00918c35606ebc4f321f36"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#acaa223f67e00918c35606ebc4f321f36">vde::sdf::SdfNode::mirror_x</a></div><div class="ttdeci">static SdfNodePtr mirror_x(SdfNodePtr child)</div><div class="ttdoc">创建 X 镜像节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_acca7ee38f76735bd1099b1f7012dfdfd"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#acca7ee38f76735bd1099b1f7012dfdfd">vde::sdf::SdfNode::elongate</a></div><div class="ttdeci">static SdfNodePtr elongate(SdfNodePtr child, const Point3D &h)</div><div class="ttdoc">创建拉伸节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_acf81d1025273d14f269204ad5dea4c07"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#acf81d1025273d14f269204ad5dea4c07">vde::sdf::SdfNode::repeat</a></div><div class="ttdeci">static SdfNodePtr repeat(SdfNodePtr child, const Point3D &cell)</div><div class="ttdoc">创建周期重复节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_ad546c349c0b0b459e899a8fb47d5c392"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#ad546c349c0b0b459e899a8fb47d5c392">vde::sdf::SdfNode::visit</a></div><div class="ttdeci">void visit(Fn &&fn)</div><div class="ttdoc">前序遍历所有节点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00267">sdf_tree.h:267</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_ad8c56a74327269439bd223511c23c2f6"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#ad8c56a74327269439bd223511c23c2f6">vde::sdf::SdfNode::twist</a></div><div class="ttdeci">static SdfNodePtr twist(SdfNodePtr child, double amount)</div><div class="ttdoc">创建扭曲节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_adbc6ef724b470accb19ec89d401c15d2"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#adbc6ef724b470accb19ec89d401c15d2">vde::sdf::SdfNode::children</a></div><div class="ttdeci">std::vector< SdfNodePtr > children</div><div class="ttdoc">子节点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00142">sdf_tree.h:142</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_ae12ebb0f8ab9e0af8f82359a528c7b9f"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#ae12ebb0f8ab9e0af8f82359a528c7b9f">vde::sdf::SdfNode::smooth_difference</a></div><div class="ttdeci">static SdfNodePtr smooth_difference(SdfNodePtr a, SdfNodePtr b, double k)</div><div class="ttdoc">创建平滑差集节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_aedf6cf743d580f31c6de061e963fe6ba"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#aedf6cf743d580f31c6de061e963fe6ba">vde::sdf::SdfNode::torus</a></div><div class="ttdeci">static SdfNodePtr torus(double major_r, double minor_r)</div><div class="ttdoc">创建圆环体节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_af2fa935cf472d0342004899bb026948b"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#af2fa935cf472d0342004899bb026948b">vde::sdf::SdfNode::params</a></div><div class="ttdeci">SdfParams params</div><div class="ttdoc">参数值</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00141">sdf_tree.h:141</a></div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_af6d47f8b5264618f982a4fd56928826f"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#af6d47f8b5264618f982a4fd56928826f">vde::sdf::SdfNode::onion</a></div><div class="ttdeci">static SdfNodePtr onion(SdfNodePtr child, double thickness)</div><div class="ttdoc">创建壳层修饰节点</div></div>
|
||
<div class="ttc" id="aclassvde_1_1sdf_1_1SdfNode_html_af91df19df212ae7e49c361548050c80c"><div class="ttname"><a href="classvde_1_1sdf_1_1SdfNode.html#af91df19df212ae7e49c361548050c80c">vde::sdf::SdfNode::ellipsoid</a></div><div class="ttdeci">static SdfNodePtr ellipsoid(const Point3D &radii)</div><div class="ttdoc">创建椭球体节点</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_1sdf_html"><div class="ttname"><a href="namespacevde_1_1sdf.html">vde::sdf</a></div><div class="ttdef"><b>Definition:</b> <a href="sdf__gradient_8h_source.html#l00032">sdf_gradient.h:32</a></div></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_a8fdcf277d6327c0b1413373ae82f9d5d"><div class="ttname"><a href="namespacevde_1_1sdf.html#a8fdcf277d6327c0b1413373ae82f9d5d">vde::sdf::SdfNodePtr</a></div><div class="ttdeci">std::shared_ptr< SdfNode > SdfNodePtr</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00048">sdf_tree.h:48</a></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_a9ba4992806c82a0737f72c23bd0b76a1a0d3adee051531c15b3509b4d4d75ce7b"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0d3adee051531c15b3509b4d4d75ce7b">vde::sdf::SdfOp::Plane</a></div><div class="ttdeci">@ Plane</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a0e9bb3a0eff96690b1e9badd73b99219"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a0e9bb3a0eff96690b1e9badd73b99219">vde::sdf::SdfOp::Wedge</a></div><div class="ttdeci">@ Wedge</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a14da42d903ea0348b07f70e0ac73fa34"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a14da42d903ea0348b07f70e0ac73fa34">vde::sdf::SdfOp::CheapBend</a></div><div class="ttdeci">@ CheapBend</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a1aaedf458e4a63162c7771e2bd8c1ff7"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a1aaedf458e4a63162c7771e2bd8c1ff7">vde::sdf::SdfOp::Elongate</a></div><div class="ttdeci">@ Elongate</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a28ed2ac6c29f64a3692c956004b8ff7a"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a28ed2ac6c29f64a3692c956004b8ff7a">vde::sdf::SdfOp::Difference</a></div><div class="ttdeci">@ Difference</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a2ec2c2961c7ce5a114d969c1f562a563"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a2ec2c2961c7ce5a114d969c1f562a563">vde::sdf::SdfOp::Cylinder</a></div><div class="ttdeci">@ Cylinder</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a353772bb59a548d2ebe04618d4771f2e"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a353772bb59a548d2ebe04618d4771f2e">vde::sdf::SdfOp::HexPrism</a></div><div class="ttdeci">@ HexPrism</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a3ccde23d9a8f92e5e5f7c782079cded7"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3ccde23d9a8f92e5e5f7c782079cded7">vde::sdf::SdfOp::SmoothIntersection</a></div><div class="ttdeci">@ SmoothIntersection</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a3cfce651e667ab85486dd42a8185f98a"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a3cfce651e667ab85486dd42a8185f98a">vde::sdf::SdfOp::Box</a></div><div class="ttdeci">@ Box</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a4880c0f12c06dd6d142e7a40b041bf1a"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a4880c0f12c06dd6d142e7a40b041bf1a">vde::sdf::SdfOp::Capsule</a></div><div class="ttdeci">@ Capsule</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a508f64e1623cf34c9040a219077301ba"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a508f64e1623cf34c9040a219077301ba">vde::sdf::SdfOp::Displace</a></div><div class="ttdeci">@ Displace</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a5c22b826138634df6ddf1e22fdb7e66e"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a5c22b826138634df6ddf1e22fdb7e66e">vde::sdf::SdfOp::Torus</a></div><div class="ttdeci">@ Torus</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a6824e17f0c6d79093e95c24c80af97f6"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6824e17f0c6d79093e95c24c80af97f6">vde::sdf::SdfOp::MirrorZ</a></div><div class="ttdeci">@ MirrorZ</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a6902c1182f48fb6ef52bcaf772a0a497"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a6902c1182f48fb6ef52bcaf772a0a497">vde::sdf::SdfOp::TriangularPrism</a></div><div class="ttdeci">@ TriangularPrism</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a7020426cfb0a204051be4b3053d2acc8"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a7020426cfb0a204051be4b3053d2acc8">vde::sdf::SdfOp::Repeat</a></div><div class="ttdeci">@ Repeat</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a75005e4bb7beb34ecfe5067ccba5a958"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a75005e4bb7beb34ecfe5067ccba5a958">vde::sdf::SdfOp::SmoothDifference</a></div><div class="ttdeci">@ SmoothDifference</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a80e758c6bbd5c38be05d5feee002a83e"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a80e758c6bbd5c38be05d5feee002a83e">vde::sdf::SdfOp::SmoothUnion</a></div><div class="ttdeci">@ SmoothUnion</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a85a7cd587d6142dbfc1a4de05af7b75d"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a85a7cd587d6142dbfc1a4de05af7b75d">vde::sdf::SdfOp::Scale</a></div><div class="ttdeci">@ Scale</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a8d2de5368588552fbae54044ac5c7b3d"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8d2de5368588552fbae54044ac5c7b3d">vde::sdf::SdfOp::Rotate</a></div><div class="ttdeci">@ Rotate</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a8eaa10d1a33a28200a7c7684919b66c7"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8eaa10d1a33a28200a7c7684919b66c7">vde::sdf::SdfOp::Onion</a></div><div class="ttdeci">@ Onion</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a8ee36c9c42f877feee31aaf4b0883546"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a8ee36c9c42f877feee31aaf4b0883546">vde::sdf::SdfOp::MirrorX</a></div><div class="ttdeci">@ MirrorX</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1a97e7c9a7d06eac006a28bf05467fcc8b"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1a97e7c9a7d06eac006a28bf05467fcc8b">vde::sdf::SdfOp::Link</a></div><div class="ttdeci">@ Link</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1aa06d31c2ee920b4d53e8c9c06d90ba24"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa06d31c2ee920b4d53e8c9c06d90ba24">vde::sdf::SdfOp::Intersection</a></div><div class="ttdeci">@ Intersection</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1aa80d865c12c4d5d9986c33ae4390e1f6"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aa80d865c12c4d5d9986c33ae4390e1f6">vde::sdf::SdfOp::Twist</a></div><div class="ttdeci">@ Twist</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1aaa93268be1d4bdbd54161ce80ebbcd4a"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaa93268be1d4bdbd54161ce80ebbcd4a">vde::sdf::SdfOp::RoundBox</a></div><div class="ttdeci">@ RoundBox</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1aaef12e903e606a4895a16b393bfdec8c"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aaef12e903e606a4895a16b393bfdec8c">vde::sdf::SdfOp::Union</a></div><div class="ttdeci">@ Union</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1ab7095f057db3fefa7325ad93a04e14fd"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7095f057db3fefa7325ad93a04e14fd">vde::sdf::SdfOp::Sphere</a></div><div class="ttdeci">@ Sphere</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1ab7f41fc1412ad2ee75e9b2635d3b9d5c"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ab7f41fc1412ad2ee75e9b2635d3b9d5c">vde::sdf::SdfOp::Round</a></div><div class="ttdeci">@ Round</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1ac81ac223c7946d2dd3872e591c6988f5"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1ac81ac223c7946d2dd3872e591c6988f5">vde::sdf::SdfOp::MirrorY</a></div><div class="ttdeci">@ MirrorY</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1acd2c8bc6e5f1ea17c918ccaf89660104"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1acd2c8bc6e5f1ea17c918ccaf89660104">vde::sdf::SdfOp::Cone</a></div><div class="ttdeci">@ Cone</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1adcef3e264a0eecc2a9eadd4478c67a1f"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adcef3e264a0eecc2a9eadd4478c67a1f">vde::sdf::SdfOp::Bend</a></div><div class="ttdeci">@ Bend</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1adeccbe4e9083c3b5f7cd2632722765bb"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1adeccbe4e9083c3b5f7cd2632722765bb">vde::sdf::SdfOp::Translate</a></div><div class="ttdeci">@ Translate</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a9ba4992806c82a0737f72c23bd0b76a1aeee5397cecd880d16ef7244819aa383d"><div class="ttname"><a href="namespacevde_1_1sdf.html#a9ba4992806c82a0737f72c23bd0b76a1aeee5397cecd880d16ef7244819aa383d">vde::sdf::SdfOp::Ellipsoid</a></div><div class="ttdeci">@ Ellipsoid</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 class="ttc" id="apoint_8h_html"><div class="ttname"><a href="point_8h.html">point.h</a></div></div>
|
||
<div class="ttc" id="asdf__operations_8h_html"><div class="ttname"><a href="sdf__operations_8h.html">sdf_operations.h</a></div><div class="ttdoc">SDF 布尔运算、修饰算子与域变形</div></div>
|
||
<div class="ttc" id="asdf__primitives_8h_html"><div class="ttname"><a href="sdf__primitives_8h.html">sdf_primitives.h</a></div><div class="ttdoc">有符号距离函数(SDF)基础图元</div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfBBox_html"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfBBox.html">vde::sdf::SdfBBox</a></div><div class="ttdoc">SDF 树的包围盒(AABB)</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00337">sdf_tree.h:337</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfBBox_html_a4bb507271494ca7a9576b4af3b7f49a9"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfBBox.html#a4bb507271494ca7a9576b4af3b7f49a9">vde::sdf::SdfBBox::max</a></div><div class="ttdeci">Point3D max</div><div class="ttdoc">最大角点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00339">sdf_tree.h:339</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfBBox_html_aa7458f07e4e3ec09e4a05c4b1529218d"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfBBox.html#aa7458f07e4e3ec09e4a05c4b1529218d">vde::sdf::SdfBBox::min</a></div><div class="ttdeci">Point3D min</div><div class="ttdoc">最小角点</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00338">sdf_tree.h:338</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html">vde::sdf::SdfParams</a></div><div class="ttdoc">SDF 节点参数联合体</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00100">sdf_tree.h:100</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a0f2982663961743f67586cf2dab834fc"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a0f2982663961743f67586cf2dab834fc">vde::sdf::SdfParams::angle_rad</a></div><div class="ttdeci">double angle_rad</div><div class="ttdoc">锥体半角(弧度)</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00108">sdf_tree.h:108</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a1b8aae16cabe8d6bc48791c04bfd76eb"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a1b8aae16cabe8d6bc48791c04bfd76eb">vde::sdf::SdfParams::normal</a></div><div class="ttdeci">Vector3D normal</div><div class="ttdoc">平面法向量</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00111">sdf_tree.h:111</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a28799acdc10136cb7aa5c5f28b8faa5d"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a28799acdc10136cb7aa5c5f28b8faa5d">vde::sdf::SdfParams::pt_a</a></div><div class="ttdeci">Point3D pt_a</div><div class="ttdoc">胶囊端点 A</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00104">sdf_tree.h:104</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a2aecc5c15b0cd00545d917850ea9f4ae"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a2aecc5c15b0cd00545d917850ea9f4ae">vde::sdf::SdfParams::minor_radius</a></div><div class="ttdeci">double minor_radius</div><div class="ttdoc">圆环副半径</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00107">sdf_tree.h:107</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a49b083433d14965d24253423b42183c5"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a49b083433d14965d24253423b42183c5">vde::sdf::SdfParams::pt_b</a></div><div class="ttdeci">Point3D pt_b</div><div class="ttdoc">胶囊端点 B</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00105">sdf_tree.h:105</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a504abb24b59d5b16fb34453fba033b50"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a504abb24b59d5b16fb34453fba033b50">vde::sdf::SdfParams::extents</a></div><div class="ttdeci">Point3D extents</div><div class="ttdoc">盒子的半边长</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00103">sdf_tree.h:103</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a5eb41fe0a1195fd82fe44152895f817a"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a5eb41fe0a1195fd82fe44152895f817a">vde::sdf::SdfParams::blend_k</a></div><div class="ttdeci">double blend_k</div><div class="ttdoc">平滑 CSG 混合参数</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00115">sdf_tree.h:115</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a6cee29181d03f880b7ded4114c5d579d"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a6cee29181d03f880b7ded4114c5d579d">vde::sdf::SdfParams::major_radius</a></div><div class="ttdeci">double major_radius</div><div class="ttdoc">圆环主半径</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00106">sdf_tree.h:106</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a706914d404026bd7e56e2189ffd0c569"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a706914d404026bd7e56e2189ffd0c569">vde::sdf::SdfParams::thickness</a></div><div class="ttdeci">double thickness</div><div class="ttdoc">壳层厚度(Onion)</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00110">sdf_tree.h:110</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a719c51f05137b17a6212a704f60df74c"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a719c51f05137b17a6212a704f60df74c">vde::sdf::SdfParams::translate_offset</a></div><div class="ttdeci">Point3D translate_offset</div><div class="ttdoc">平移量</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00120">sdf_tree.h:120</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_a760d4fbf2cd25017427ce04603eefd73"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#a760d4fbf2cd25017427ce04603eefd73">vde::sdf::SdfParams::radius</a></div><div class="ttdeci">double radius</div><div class="ttdoc">球体/圆柱/胶囊/圆角半径</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00102">sdf_tree.h:102</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_aa8f6e831e3d458cc5331bcb5cf0aca7a"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#aa8f6e831e3d458cc5331bcb5cf0aca7a">vde::sdf::SdfParams::height</a></div><div class="ttdeci">double height</div><div class="ttdoc">柱体/锥体/挤出高度</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00109">sdf_tree.h:109</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_ab0704cc4f1aa746c071741b8d3797db7"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#ab0704cc4f1aa746c071741b8d3797db7">vde::sdf::SdfParams::repeat_cell</a></div><div class="ttdeci">Point3D repeat_cell</div><div class="ttdoc">重复晶格尺寸</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00119">sdf_tree.h:119</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_aba9169119b31ca1bbbde5daef364a824"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#aba9169119b31ca1bbbde5daef364a824">vde::sdf::SdfParams::amplitude</a></div><div class="ttdeci">double amplitude</div><div class="ttdoc">位移扰动幅值</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00117">sdf_tree.h:117</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_adc57313e2d7166c7c7d6e8d3d85401f3"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#adc57313e2d7166c7c7d6e8d3d85401f3">vde::sdf::SdfParams::offset</a></div><div class="ttdeci">double offset</div><div class="ttdoc">平面偏移 / 通用偏移</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00112">sdf_tree.h:112</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_ae653a432ea03eab100148acb91e859cd"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#ae653a432ea03eab100148acb91e859cd">vde::sdf::SdfParams::scale_factors</a></div><div class="ttdeci">Point3D scale_factors</div><div class="ttdoc">缩放因子</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00121">sdf_tree.h:121</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_af79a6d085579d32a669860b9547e9a5b"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#af79a6d085579d32a669860b9547e9a5b">vde::sdf::SdfParams::frequency</a></div><div class="ttdeci">double frequency</div><div class="ttdoc">位移扰动频率</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00118">sdf_tree.h:118</a></div></div>
|
||
<div class="ttc" id="astructvde_1_1sdf_1_1SdfParams_html_aff4edc45464d4ae56f9535ddd19d0ebc"><div class="ttname"><a href="structvde_1_1sdf_1_1SdfParams.html#aff4edc45464d4ae56f9535ddd19d0ebc">vde::sdf::SdfParams::amount</a></div><div class="ttdeci">double amount</div><div class="ttdoc">扭曲/弯曲量</div><div class="ttdef"><b>Definition:</b> <a href="sdf__tree_8h_source.html#l00116">sdf_tree.h:116</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_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>
|