Files
ViewDesignEngine/docs/api/vde__capi_8h_source.html
T

298 lines
54 KiB
HTML
Raw Normal View History

<!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/capi/vde_capi.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ViewDesignEngine
&#160;<span id="projectnumber">3.1.0</span>
</div>
<div id="projectbrief">高性能 CAD 计算几何引擎</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','搜索');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('vde__capi_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">vde_capi.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="vde__capi_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// 不透明句柄类型(在 vde.h 中已有前向声明)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef VDE_HANDLE_DEFINED</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6"> 57</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>VdeContext* <a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#ifndef VDE_MESH_HANDLE_DEFINED</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700"> 62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>VdeMesh* <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifndef VDE_CURVE_HANDLE_DEFINED</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>VdeCurve* <a class="code" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifndef VDE_SOLVER_HANDLE_DEFINED</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31"> 72</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>VdeSolver* <a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#ifndef VDE_BODY_HANDLE_DEFINED</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3"> 77</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>VdeBody* <a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// 引擎生命周期</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#af0565d3eee132efe7d6e8cee37e102df"> 98</a></span>&#160;<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> <a class="code" href="vde__capi_8h.html#af0565d3eee132efe7d6e8cee37e102df">vde_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aded4ee33d5564b05114ad605d003f34d"> 109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#aded4ee33d5564b05114ad605d003f34d">vde_destroy</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aa5eee51a9795e1c06826bf6ad6144e8d"> 120</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="vde__capi_8h.html#aa5eee51a9795e1c06826bf6ad6144e8d">vde_version</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a44fa58de60fbdf2b08956a4f4dd8a0aa"> 132</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="vde__capi_8h.html#a44fa58de60fbdf2b08956a4f4dd8a0aa">vde_last_error</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// 网格 I/O</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a3364eca094757a19af74398c66ab43f0"> 159</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a3364eca094757a19af74398c66ab43f0">vde_load_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keyword">const</span> <span class="keywordtype">char</span>* path);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a5b48ac40d7da443cc951d7c3bf8f6003"> 174</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#a5b48ac40d7da443cc951d7c3bf8f6003">vde_save_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh, <span class="keyword">const</span> <span class="keywordtype">char</span>* path, <span class="keyword">const</span> <span class="keywordtype">char</span>* format);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// 网格查询</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a7faf11c35d4994e668e08b16174ec71f"> 188</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="vde__capi_8h.html#a7faf11c35d4994e668e08b16174ec71f">vde_mesh_num_vertices</a>(<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aabd59a0d58b060cb34e4ae291e12b72b"> 198</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="vde__capi_8h.html#aabd59a0d58b060cb34e4ae291e12b72b">vde_mesh_num_faces</a>(<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a46332b2cafe166b1f3f769120d35e68e"> 213</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a46332b2cafe166b1f3f769120d35e68e">vde_mesh_get_vertex</a>(<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh, <span class="keywordtype">size_t</span> idx,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">double</span>* out_x, <span class="keywordtype">double</span>* out_y, <span class="keywordtype">double</span>* out_z);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a44f0de742779b37b5a1d4c4d926ee46c"> 227</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a44f0de742779b37b5a1d4c4d926ee46c">vde_mesh_get_bounds</a>(<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh,</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">double</span>* out_min_x, <span class="keywordtype">double</span>* out_min_y, <span class="keywordtype">double</span>* out_min_z,</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">double</span>* out_max_x, <span class="keywordtype">double</span>* out_max_y, <span class="keywordtype">double</span>* out_max_z);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#ad4763d4d03c112d2b5af3e268ff0b591"> 238</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#ad4763d4d03c112d2b5af3e268ff0b591">vde_mesh_free</a>(<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// 网格处理</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a77b1f5142fd90da486a5c139c3b14c16"> 261</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a77b1f5142fd90da486a5c139c3b14c16">vde_mesh_simplify</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh, <span class="keywordtype">double</span> target_ratio);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a46bd97beffa458984cbc323c65c7c238"> 275</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a46bd97beffa458984cbc323c65c7c238">vde_mesh_smooth</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh, <span class="keywordtype">int</span> iterations);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a3ce60d7da004c9b840d619a71ca39a8a"> 294</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a3ce60d7da004c9b840d619a71ca39a8a">vde_mesh_boolean</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> a, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> b, <span class="keywordtype">int</span> operation);</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment">// 曲线</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a2e622ea345565541cd5fef16e97ecec6"> 317</a></span>&#160;<a class="code" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a> <a class="code" href="vde__capi_8h.html#a2e622ea345565541cd5fef16e97ecec6">vde_curve_create_bezier</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keyword">const</span> <span class="keywordtype">double</span>* control_points,</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">int</span> num_points, <span class="keywordtype">int</span> dim);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a7cdf208a934eb1335beba7bcf98bb75d"> 331</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a7cdf208a934eb1335beba7bcf98bb75d">vde_curve_evaluate</a>(<a class="code" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a> curve, <span class="keywordtype">double</span> t,</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordtype">double</span>* out_x, <span class="keywordtype">double</span>* out_y, <span class="keywordtype">double</span>* out_z);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aec5aedf79c8a7f3ac64e92417118b735"> 342</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#aec5aedf79c8a7f3ac64e92417118b735">vde_curve_degree</a>(<a class="code" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a> curve);</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; </div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a8b1982d568ee1889beb9fac1cf19a71f"> 349</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a8b1982d568ee1889beb9fac1cf19a71f">vde_curve_free</a>(<a class="code" href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a> curve);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// 碰撞检测</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a6f79c7bc11d4bafcebe8d15846ab2b92"> 373</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#a6f79c7bc11d4bafcebe8d15846ab2b92">vde_collision_gjk_spheres</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx,</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordtype">double</span> cx1, <span class="keywordtype">double</span> cy1, <span class="keywordtype">double</span> cz1, <span class="keywordtype">double</span> r1,</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordtype">double</span> cx2, <span class="keywordtype">double</span> cy2, <span class="keywordtype">double</span> cz2, <span class="keywordtype">double</span> r2);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aee0d5d4340cff8a807222457f3fd4535"> 401</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#aee0d5d4340cff8a807222457f3fd4535">vde_collision_ray_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh,</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">double</span> ox, <span class="keywordtype">double</span> oy, <span class="keywordtype">double</span> oz,</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">double</span> dx, <span class="keywordtype">double</span> dy, <span class="keywordtype">double</span> dz,</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordtype">double</span>* out_t, <span class="keywordtype">double</span>* out_x, <span class="keywordtype">double</span>* out_y, <span class="keywordtype">double</span>* out_z);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; </div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment">// 约束求解器(二维草图)</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#af881dd70f559a3ff280b0047c2fcc8cd"> 419</a></span>&#160;<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> <a class="code" href="vde__capi_8h.html#af881dd70f559a3ff280b0047c2fcc8cd">vde_solver_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a665e2414e558165f136837ce95119f74"> 432</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#a665e2414e558165f136837ce95119f74">vde_solver_add_point</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">int</span> fixed);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a9cf4e2fc71bfa61073144147bf76c2e8"> 446</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#a9cf4e2fc71bfa61073144147bf76c2e8">vde_solver_add_line</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> p0, <span class="keywordtype">int</span> p1);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a73d39d4a953542e738faf6e337c6420c"> 458</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a73d39d4a953542e738faf6e337c6420c">vde_solver_add_distance_constraint</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> p0, <span class="keywordtype">int</span> p1, <span class="keywordtype">double</span> d);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a40107e23d391015f1e17e7ca94c81e73"> 469</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a40107e23d391015f1e17e7ca94c81e73">vde_solver_add_horizontal</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> line_id);</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a2a2e54cdbf87a46434219917d4ddcdc9"> 479</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a2a2e54cdbf87a46434219917d4ddcdc9">vde_solver_add_vertical</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> line_id);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#abe46983c28ce8d95adf263007ef93139"> 497</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="vde__capi_8h.html#abe46983c28ce8d95adf263007ef93139">vde_solver_solve</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> max_iter, <span class="keywordtype">double</span> tol);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aac74b82de9d0e220e11562207f35ecd5"> 509</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#aac74b82de9d0e220e11562207f35ecd5">vde_solver_get_point</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver, <span class="keywordtype">int</span> idx, <span class="keywordtype">double</span>* out_x, <span class="keywordtype">double</span>* out_y);</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; </div>
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a65aed874db7cbb21c67f93879530518d"> 516</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#a65aed874db7cbb21c67f93879530518d">vde_solver_free</a>(<a class="code" href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a> solver);</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="comment">// B-Rep 建模</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div>
<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#ad866e34e81dfbc4b6659c4801ec151cf"> 536</a></span>&#160;<a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a> <a class="code" href="vde__capi_8h.html#ad866e34e81dfbc4b6659c4801ec151cf">vde_body_create_box</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keywordtype">double</span> w, <span class="keywordtype">double</span> h, <span class="keywordtype">double</span> d);</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; </div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#ac185ef3588f08fd81c967ed488273073"> 551</a></span>&#160;<a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a> <a class="code" href="vde__capi_8h.html#ac185ef3588f08fd81c967ed488273073">vde_body_create_cylinder</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keywordtype">double</span> r, <span class="keywordtype">double</span> h, <span class="keywordtype">int</span> segs);</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; </div>
<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a7ce4dd06d08a30f3aaa6f6eacea06d19"> 562</a></span>&#160;<a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a> <a class="code" href="vde__capi_8h.html#a7ce4dd06d08a30f3aaa6f6eacea06d19">vde_body_create_sphere</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keywordtype">double</span> r, <span class="keywordtype">int</span> su, <span class="keywordtype">int</span> sv);</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a7ec446206a1c0364a11c5d6c743b09bc"> 582</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a7ec446206a1c0364a11c5d6c743b09bc">vde_body_to_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a> body, <span class="keywordtype">double</span> deflection);</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; </div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#abe8c82f56ff823dbb6af90ae5dd3b62f"> 589</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#abe8c82f56ff823dbb6af90ae5dd3b62f">vde_body_free</a>(<a class="code" href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a> body);</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; </div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment">// 序列化</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment">// ═══════════════════════════════════════════════════════════</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; </div>
<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#ac718cb38d742050b52f2dbeb82797842"> 617</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="vde__capi_8h.html#ac718cb38d742050b52f2dbeb82797842">vde_serialize_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> mesh, uint8_t** out_data);</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; </div>
<div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#a3370253bfb65769e93df74de498ff6ac"> 629</a></span>&#160;<a class="code" href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a> <a class="code" href="vde__capi_8h.html#a3370253bfb65769e93df74de498ff6ac">vde_deserialize_mesh</a>(<a class="code" href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a> ctx, <span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> len);</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; </div>
<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="vde__capi_8h.html#aee33bba95777766e2a2cad01bae90b9c"> 636</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="vde__capi_8h.html#aee33bba95777766e2a2cad01bae90b9c">vde_free_buffer</a>(uint8_t* ptr);</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; </div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;}</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="avde__capi_8h_html_a2a2e54cdbf87a46434219917d4ddcdc9"><div class="ttname"><a href="vde__capi_8h.html#a2a2e54cdbf87a46434219917d4ddcdc9">vde_solver_add_vertical</a></div><div class="ttdeci">void vde_solver_add_vertical(VdeSolverHandle solver, int line_id)</div><div class="ttdoc">添加垂直约束(线段垂直)</div></div>
<div class="ttc" id="avde__capi_8h_html_a2e622ea345565541cd5fef16e97ecec6"><div class="ttname"><a href="vde__capi_8h.html#a2e622ea345565541cd5fef16e97ecec6">vde_curve_create_bezier</a></div><div class="ttdeci">VdeCurveHandle vde_curve_create_bezier(VdeHandle ctx, const double *control_points, int num_points, int dim)</div><div class="ttdoc">创建 Bézier 曲线</div></div>
<div class="ttc" id="avde__capi_8h_html_a3364eca094757a19af74398c66ab43f0"><div class="ttname"><a href="vde__capi_8h.html#a3364eca094757a19af74398c66ab43f0">vde_load_mesh</a></div><div class="ttdeci">VdeMeshHandle vde_load_mesh(VdeHandle ctx, const char *path)</div><div class="ttdoc">从文件加载三角网格</div></div>
<div class="ttc" id="avde__capi_8h_html_a3370253bfb65769e93df74de498ff6ac"><div class="ttname"><a href="vde__capi_8h.html#a3370253bfb65769e93df74de498ff6ac">vde_deserialize_mesh</a></div><div class="ttdeci">VdeMeshHandle vde_deserialize_mesh(VdeHandle ctx, const uint8_t *data, size_t len)</div><div class="ttdoc">从二进制字节流反序列化为网格</div></div>
<div class="ttc" id="avde__capi_8h_html_a3a17900fada7dfe2be0874044ea56f31"><div class="ttname"><a href="vde__capi_8h.html#a3a17900fada7dfe2be0874044ea56f31">VdeSolverHandle</a></div><div class="ttdeci">struct VdeSolver * VdeSolverHandle</div><div class="ttdoc">约束求解器句柄 — 二维草图约束</div><div class="ttdef"><b>Definition:</b> <a href="vde__capi_8h_source.html#l00072">vde_capi.h:72</a></div></div>
<div class="ttc" id="avde__capi_8h_html_a3ce60d7da004c9b840d619a71ca39a8a"><div class="ttname"><a href="vde__capi_8h.html#a3ce60d7da004c9b840d619a71ca39a8a">vde_mesh_boolean</a></div><div class="ttdeci">VdeMeshHandle vde_mesh_boolean(VdeHandle ctx, VdeMeshHandle a, VdeMeshHandle b, int operation)</div><div class="ttdoc">网格布尔运算</div></div>
<div class="ttc" id="avde__capi_8h_html_a40107e23d391015f1e17e7ca94c81e73"><div class="ttname"><a href="vde__capi_8h.html#a40107e23d391015f1e17e7ca94c81e73">vde_solver_add_horizontal</a></div><div class="ttdeci">void vde_solver_add_horizontal(VdeSolverHandle solver, int line_id)</div><div class="ttdoc">添加水平约束(线段水平)</div></div>
<div class="ttc" id="avde__capi_8h_html_a44f0de742779b37b5a1d4c4d926ee46c"><div class="ttname"><a href="vde__capi_8h.html#a44f0de742779b37b5a1d4c4d926ee46c">vde_mesh_get_bounds</a></div><div class="ttdeci">void vde_mesh_get_bounds(VdeMeshHandle mesh, double *out_min_x, double *out_min_y, double *out_min_z, double *out_max_x, double *out_max_y, double *out_max_z)</div><div class="ttdoc">获取网格的轴对齐包围盒</div></div>
<div class="ttc" id="avde__capi_8h_html_a44fa58de60fbdf2b08956a4f4dd8a0aa"><div class="ttname"><a href="vde__capi_8h.html#a44fa58de60fbdf2b08956a4f4dd8a0aa">vde_last_error</a></div><div class="ttdeci">const char * vde_last_error(VdeHandle ctx)</div><div class="ttdoc">获取最后一次操作的错误描述</div></div>
<div class="ttc" id="avde__capi_8h_html_a46332b2cafe166b1f3f769120d35e68e"><div class="ttname"><a href="vde__capi_8h.html#a46332b2cafe166b1f3f769120d35e68e">vde_mesh_get_vertex</a></div><div class="ttdeci">void vde_mesh_get_vertex(VdeMeshHandle mesh, size_t idx, double *out_x, double *out_y, double *out_z)</div><div class="ttdoc">获取指定索引的顶点坐标</div></div>
<div class="ttc" id="avde__capi_8h_html_a46bd97beffa458984cbc323c65c7c238"><div class="ttname"><a href="vde__capi_8h.html#a46bd97beffa458984cbc323c65c7c238">vde_mesh_smooth</a></div><div class="ttdeci">VdeMeshHandle vde_mesh_smooth(VdeHandle ctx, VdeMeshHandle mesh, int iterations)</div><div class="ttdoc">网格平滑(Laplacian 或 Taubin 平滑)</div></div>
<div class="ttc" id="avde__capi_8h_html_a5b48ac40d7da443cc951d7c3bf8f6003"><div class="ttname"><a href="vde__capi_8h.html#a5b48ac40d7da443cc951d7c3bf8f6003">vde_save_mesh</a></div><div class="ttdeci">int vde_save_mesh(VdeHandle ctx, VdeMeshHandle mesh, const char *path, const char *format)</div><div class="ttdoc">将三角网格保存为文件</div></div>
<div class="ttc" id="avde__capi_8h_html_a5d25ac71389adcd7f6e974673cbe07c6"><div class="ttname"><a href="vde__capi_8h.html#a5d25ac71389adcd7f6e974673cbe07c6">VdeHandle</a></div><div class="ttdeci">struct VdeContext * VdeHandle</div><div class="ttdoc">引擎上下文句柄 — 管理错误状态和内部资源</div><div class="ttdef"><b>Definition:</b> <a href="vde__capi_8h_source.html#l00057">vde_capi.h:57</a></div></div>
<div class="ttc" id="avde__capi_8h_html_a612991cb0f7daa4036b555eecb5b1700"><div class="ttname"><a href="vde__capi_8h.html#a612991cb0f7daa4036b555eecb5b1700">VdeMeshHandle</a></div><div class="ttdeci">struct VdeMesh * VdeMeshHandle</div><div class="ttdoc">三角网格句柄 — 顶点+面集合</div><div class="ttdef"><b>Definition:</b> <a href="vde__capi_8h_source.html#l00062">vde_capi.h:62</a></div></div>
<div class="ttc" id="avde__capi_8h_html_a65aed874db7cbb21c67f93879530518d"><div class="ttname"><a href="vde__capi_8h.html#a65aed874db7cbb21c67f93879530518d">vde_solver_free</a></div><div class="ttdeci">void vde_solver_free(VdeSolverHandle solver)</div><div class="ttdoc">释放求解器句柄</div></div>
<div class="ttc" id="avde__capi_8h_html_a665e2414e558165f136837ce95119f74"><div class="ttname"><a href="vde__capi_8h.html#a665e2414e558165f136837ce95119f74">vde_solver_add_point</a></div><div class="ttdeci">int vde_solver_add_point(VdeSolverHandle solver, double x, double y, int fixed)</div><div class="ttdoc">向求解器添加点</div></div>
<div class="ttc" id="avde__capi_8h_html_a6f79c7bc11d4bafcebe8d15846ab2b92"><div class="ttname"><a href="vde__capi_8h.html#a6f79c7bc11d4bafcebe8d15846ab2b92">vde_collision_gjk_spheres</a></div><div class="ttdeci">int vde_collision_gjk_spheres(VdeHandle ctx, double cx1, double cy1, double cz1, double r1, double cx2, double cy2, double cz2, double r2)</div><div class="ttdoc">两球体碰撞检测(GJK 算法)</div></div>
<div class="ttc" id="avde__capi_8h_html_a73d39d4a953542e738faf6e337c6420c"><div class="ttname"><a href="vde__capi_8h.html#a73d39d4a953542e738faf6e337c6420c">vde_solver_add_distance_constraint</a></div><div class="ttdeci">void vde_solver_add_distance_constraint(VdeSolverHandle solver, int p0, int p1, double d)</div><div class="ttdoc">添加距离约束(两点之间)</div></div>
<div class="ttc" id="avde__capi_8h_html_a749b764a4e5406035946b13790a9a2f3"><div class="ttname"><a href="vde__capi_8h.html#a749b764a4e5406035946b13790a9a2f3">VdeBodyHandle</a></div><div class="ttdeci">struct VdeBody * VdeBodyHandle</div><div class="ttdoc">B-Rep 实体句柄 — 边界表示模型</div><div class="ttdef"><b>Definition:</b> <a href="vde__capi_8h_source.html#l00077">vde_capi.h:77</a></div></div>
<div class="ttc" id="avde__capi_8h_html_a77b1f5142fd90da486a5c139c3b14c16"><div class="ttname"><a href="vde__capi_8h.html#a77b1f5142fd90da486a5c139c3b14c16">vde_mesh_simplify</a></div><div class="ttdeci">VdeMeshHandle vde_mesh_simplify(VdeHandle ctx, VdeMeshHandle mesh, double target_ratio)</div><div class="ttdoc">网格简化</div></div>
<div class="ttc" id="avde__capi_8h_html_a7cdf208a934eb1335beba7bcf98bb75d"><div class="ttname"><a href="vde__capi_8h.html#a7cdf208a934eb1335beba7bcf98bb75d">vde_curve_evaluate</a></div><div class="ttdeci">void vde_curve_evaluate(VdeCurveHandle curve, double t, double *out_x, double *out_y, double *out_z)</div><div class="ttdoc">在参数 t 处求值曲线</div></div>
<div class="ttc" id="avde__capi_8h_html_a7ce4dd06d08a30f3aaa6f6eacea06d19"><div class="ttname"><a href="vde__capi_8h.html#a7ce4dd06d08a30f3aaa6f6eacea06d19">vde_body_create_sphere</a></div><div class="ttdeci">VdeBodyHandle vde_body_create_sphere(VdeHandle ctx, double r, int su, int sv)</div><div class="ttdoc">创建球体 B-Rep</div></div>
<div class="ttc" id="avde__capi_8h_html_a7ec446206a1c0364a11c5d6c743b09bc"><div class="ttname"><a href="vde__capi_8h.html#a7ec446206a1c0364a11c5d6c743b09bc">vde_body_to_mesh</a></div><div class="ttdeci">VdeMeshHandle vde_body_to_mesh(VdeHandle ctx, VdeBodyHandle body, double deflection)</div><div class="ttdoc">将 B-Rep 实体转换为三角网格</div></div>
<div class="ttc" id="avde__capi_8h_html_a7faf11c35d4994e668e08b16174ec71f"><div class="ttname"><a href="vde__capi_8h.html#a7faf11c35d4994e668e08b16174ec71f">vde_mesh_num_vertices</a></div><div class="ttdeci">size_t vde_mesh_num_vertices(VdeMeshHandle mesh)</div><div class="ttdoc">获取网格的顶点数量</div></div>
<div class="ttc" id="avde__capi_8h_html_a8b1982d568ee1889beb9fac1cf19a71f"><div class="ttname"><a href="vde__capi_8h.html#a8b1982d568ee1889beb9fac1cf19a71f">vde_curve_free</a></div><div class="ttdeci">void vde_curve_free(VdeCurveHandle curve)</div><div class="ttdoc">释放曲线句柄</div></div>
<div class="ttc" id="avde__capi_8h_html_a9cf4e2fc71bfa61073144147bf76c2e8"><div class="ttname"><a href="vde__capi_8h.html#a9cf4e2fc71bfa61073144147bf76c2e8">vde_solver_add_line</a></div><div class="ttdeci">int vde_solver_add_line(VdeSolverHandle solver, int p0, int p1)</div><div class="ttdoc">向求解器添加线段(由两个点定义)</div></div>
<div class="ttc" id="avde__capi_8h_html_aa5eee51a9795e1c06826bf6ad6144e8d"><div class="ttname"><a href="vde__capi_8h.html#aa5eee51a9795e1c06826bf6ad6144e8d">vde_version</a></div><div class="ttdeci">const char * vde_version(void)</div><div class="ttdoc">获取引擎版本字符串</div></div>
<div class="ttc" id="avde__capi_8h_html_aabd59a0d58b060cb34e4ae291e12b72b"><div class="ttname"><a href="vde__capi_8h.html#aabd59a0d58b060cb34e4ae291e12b72b">vde_mesh_num_faces</a></div><div class="ttdeci">size_t vde_mesh_num_faces(VdeMeshHandle mesh)</div><div class="ttdoc">获取网格的三角面数量</div></div>
<div class="ttc" id="avde__capi_8h_html_aac74b82de9d0e220e11562207f35ecd5"><div class="ttname"><a href="vde__capi_8h.html#aac74b82de9d0e220e11562207f35ecd5">vde_solver_get_point</a></div><div class="ttdeci">void vde_solver_get_point(VdeSolverHandle solver, int idx, double *out_x, double *out_y)</div><div class="ttdoc">获取求解后的点坐标</div></div>
<div class="ttc" id="avde__capi_8h_html_abe46983c28ce8d95adf263007ef93139"><div class="ttname"><a href="vde__capi_8h.html#abe46983c28ce8d95adf263007ef93139">vde_solver_solve</a></div><div class="ttdeci">int vde_solver_solve(VdeSolverHandle solver, int max_iter, double tol)</div><div class="ttdoc">求解约束系统</div></div>
<div class="ttc" id="avde__capi_8h_html_abe8c82f56ff823dbb6af90ae5dd3b62f"><div class="ttname"><a href="vde__capi_8h.html#abe8c82f56ff823dbb6af90ae5dd3b62f">vde_body_free</a></div><div class="ttdeci">void vde_body_free(VdeBodyHandle body)</div><div class="ttdoc">释放 B-Rep 实体句柄</div></div>
<div class="ttc" id="avde__capi_8h_html_ac185ef3588f08fd81c967ed488273073"><div class="ttname"><a href="vde__capi_8h.html#ac185ef3588f08fd81c967ed488273073">vde_body_create_cylinder</a></div><div class="ttdeci">VdeBodyHandle vde_body_create_cylinder(VdeHandle ctx, double r, double h, int segs)</div><div class="ttdoc">创建实心圆柱体 B-Rep</div></div>
<div class="ttc" id="avde__capi_8h_html_ac718cb38d742050b52f2dbeb82797842"><div class="ttname"><a href="vde__capi_8h.html#ac718cb38d742050b52f2dbeb82797842">vde_serialize_mesh</a></div><div class="ttdeci">size_t vde_serialize_mesh(VdeHandle ctx, VdeMeshHandle mesh, uint8_t **out_data)</div><div class="ttdoc">将网格序列化为二进制字节流</div></div>
<div class="ttc" id="avde__capi_8h_html_ad4763d4d03c112d2b5af3e268ff0b591"><div class="ttname"><a href="vde__capi_8h.html#ad4763d4d03c112d2b5af3e268ff0b591">vde_mesh_free</a></div><div class="ttdeci">void vde_mesh_free(VdeMeshHandle mesh)</div><div class="ttdoc">释放网格句柄及其资源</div></div>
<div class="ttc" id="avde__capi_8h_html_ad866e34e81dfbc4b6659c4801ec151cf"><div class="ttname"><a href="vde__capi_8h.html#ad866e34e81dfbc4b6659c4801ec151cf">vde_body_create_box</a></div><div class="ttdeci">VdeBodyHandle vde_body_create_box(VdeHandle ctx, double w, double h, double d)</div><div class="ttdoc">创建实心立方体 B-Rep</div></div>
<div class="ttc" id="avde__capi_8h_html_adbe99e0d601bba164d42b73d8d3f28f7"><div class="ttname"><a href="vde__capi_8h.html#adbe99e0d601bba164d42b73d8d3f28f7">VdeCurveHandle</a></div><div class="ttdeci">struct VdeCurve * VdeCurveHandle</div><div class="ttdoc">参数曲线句柄 — NURBS 曲线</div><div class="ttdef"><b>Definition:</b> <a href="vde__capi_8h_source.html#l00067">vde_capi.h:67</a></div></div>
<div class="ttc" id="avde__capi_8h_html_aded4ee33d5564b05114ad605d003f34d"><div class="ttname"><a href="vde__capi_8h.html#aded4ee33d5564b05114ad605d003f34d">vde_destroy</a></div><div class="ttdeci">void vde_destroy(VdeHandle ctx)</div><div class="ttdoc">销毁引擎上下文</div></div>
<div class="ttc" id="avde__capi_8h_html_aec5aedf79c8a7f3ac64e92417118b735"><div class="ttname"><a href="vde__capi_8h.html#aec5aedf79c8a7f3ac64e92417118b735">vde_curve_degree</a></div><div class="ttdeci">int vde_curve_degree(VdeCurveHandle curve)</div><div class="ttdoc">获取曲线的次数</div></div>
<div class="ttc" id="avde__capi_8h_html_aee0d5d4340cff8a807222457f3fd4535"><div class="ttname"><a href="vde__capi_8h.html#aee0d5d4340cff8a807222457f3fd4535">vde_collision_ray_mesh</a></div><div class="ttdeci">int vde_collision_ray_mesh(VdeHandle ctx, VdeMeshHandle mesh, double ox, double oy, double oz, double dx, double dy, double dz, double *out_t, double *out_x, double *out_y, double *out_z)</div><div class="ttdoc">射线与网格的最近交点查询</div></div>
<div class="ttc" id="avde__capi_8h_html_aee33bba95777766e2a2cad01bae90b9c"><div class="ttname"><a href="vde__capi_8h.html#aee33bba95777766e2a2cad01bae90b9c">vde_free_buffer</a></div><div class="ttdeci">void vde_free_buffer(uint8_t *ptr)</div><div class="ttdoc">释放由 vde_serialize_mesh 分配的缓冲区</div></div>
<div class="ttc" id="avde__capi_8h_html_af0565d3eee132efe7d6e8cee37e102df"><div class="ttname"><a href="vde__capi_8h.html#af0565d3eee132efe7d6e8cee37e102df">vde_create</a></div><div class="ttdeci">VdeHandle vde_create(void)</div><div class="ttdoc">创建 ViewDesignEngine 上下文</div></div>
<div class="ttc" id="avde__capi_8h_html_af881dd70f559a3ff280b0047c2fcc8cd"><div class="ttname"><a href="vde__capi_8h.html#af881dd70f559a3ff280b0047c2fcc8cd">vde_solver_create</a></div><div class="ttdeci">VdeSolverHandle vde_solver_create(void)</div><div class="ttdoc">创建二维约束求解器</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_d2ea29e3315af068d63f97d54519c375.html">capi</a></li><li class="navelem"><a class="el" href="vde__capi_8h.html">vde_capi.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>