Files
ViewDesignEngine/docs/api/classvde_1_1spatial_1_1KDTree.html
T
茂之钳 2f111edcd5
CI / Build & Test (push) Failing after 33s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
docs: generated API documentation (483 pages)
2026-07-24 11:55:47 +00:00

495 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ViewDesignEngine: vde::spatial::KDTree&lt; T &gt; 模板类 参考</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('classvde_1_1spatial_1_1KDTree.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes"></a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="classvde_1_1spatial_1_1KDTree-members.html">所有成员列表</a> </div>
<div class="headertitle">
<div class="title">vde::spatial::KDTree&lt; T &gt; 模板类 参考</div> </div>
</div><!--header-->
<div class="contents">
<p>k-d 树空间索引
<a href="classvde_1_1spatial_1_1KDTree.html#details">更多...</a></p>
<p><code>#include &lt;<a class="el" href="kd__tree_8h_source.html">kd_tree.h</a>&gt;</code></p>
<div class="dynheader">
类 vde::spatial::KDTree&lt; T &gt; 继承关系图:</div>
<div class="dyncontent">
<div class="center"><img src="classvde_1_1spatial_1_1KDTree__inherit__graph.png" border="0" usemap="#avde_1_1spatial_1_1KDTree_3_01T_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="avde_1_1spatial_1_1KDTree_3_01T_01_4_inherit__map" id="avde_1_1spatial_1_1KDTree_3_01T_01_4_inherit__map">
<area shape="rect" title="k&#45;d 树空间索引" alt="" coords="23,80,213,107"/>
<area shape="rect" href="classvde_1_1spatial_1_1SpatialIndex.html" title="空间索引抽象基类" alt="" coords="5,5,231,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">图例</a>]</span></center></div>
<div class="dynheader">
vde::spatial::KDTree&lt; T &gt; 的协作图:</div>
<div class="dyncontent">
<div class="center"><img src="classvde_1_1spatial_1_1KDTree__coll__graph.png" border="0" usemap="#avde_1_1spatial_1_1KDTree_3_01T_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="avde_1_1spatial_1_1KDTree_3_01T_01_4_coll__map" id="avde_1_1spatial_1_1KDTree_3_01T_01_4_coll__map">
<area shape="rect" title="k&#45;d 树空间索引" alt="" coords="23,80,213,107"/>
<area shape="rect" href="classvde_1_1spatial_1_1SpatialIndex.html" title="空间索引抽象基类" alt="" coords="5,5,231,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">图例</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:af4f05befd943a75678ae774f488dc02e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#af4f05befd943a75678ae774f488dc02e">build</a> (const std::vector&lt; T &gt; &amp;items) override</td></tr>
<tr class="memdesc:af4f05befd943a75678ae774f488dc02e"><td class="mdescLeft">&#160;</td><td class="mdescRight">批量构建 k-d 树 <a href="classvde_1_1spatial_1_1KDTree.html#af4f05befd943a75678ae774f488dc02e">更多...</a><br /></td></tr>
<tr class="separator:af4f05befd943a75678ae774f488dc02e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c17d9ce3f29ded0066736ff44a057fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a4c17d9ce3f29ded0066736ff44a057fb">insert</a> (const T &amp;item) override</td></tr>
<tr class="memdesc:a4c17d9ce3f29ded0066736ff44a057fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">插入单个对象 <a href="classvde_1_1spatial_1_1KDTree.html#a4c17d9ce3f29ded0066736ff44a057fb">更多...</a><br /></td></tr>
<tr class="separator:a4c17d9ce3f29ded0066736ff44a057fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b217b60d51468d18f7e0a15defa02e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a4b217b60d51468d18f7e0a15defa02e7">remove</a> (const T &amp;item) override</td></tr>
<tr class="memdesc:a4b217b60d51468d18f7e0a15defa02e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除对象 <a href="classvde_1_1spatial_1_1KDTree.html#a4b217b60d51468d18f7e0a15defa02e7">更多...</a><br /></td></tr>
<tr class="separator:a4b217b60d51468d18f7e0a15defa02e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a379b11a29bec58d541a6d7457a955ac4"><td class="memItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a379b11a29bec58d541a6d7457a955ac4">query_range</a> (const AABB3D &amp;range) const override</td></tr>
<tr class="memdesc:a379b11a29bec58d541a6d7457a955ac4"><td class="mdescLeft">&#160;</td><td class="mdescRight">范围查询 <a href="classvde_1_1spatial_1_1KDTree.html#a379b11a29bec58d541a6d7457a955ac4">更多...</a><br /></td></tr>
<tr class="separator:a379b11a29bec58d541a6d7457a955ac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a808f7a199ca2046a51bfd85c6dfbaa1e"><td class="memItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a808f7a199ca2046a51bfd85c6dfbaa1e">query_knn</a> (const Point3D &amp;point, size_t k) const override</td></tr>
<tr class="memdesc:a808f7a199ca2046a51bfd85c6dfbaa1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">K 近邻查询 <a href="classvde_1_1spatial_1_1KDTree.html#a808f7a199ca2046a51bfd85c6dfbaa1e">更多...</a><br /></td></tr>
<tr class="separator:a808f7a199ca2046a51bfd85c6dfbaa1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24899ae6305ff7ebc0899736adcf7ff4"><td class="memItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a24899ae6305ff7ebc0899736adcf7ff4">query_ray</a> (const Ray3Dd &amp;ray) const override</td></tr>
<tr class="memdesc:a24899ae6305ff7ebc0899736adcf7ff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">射线查询 <a href="classvde_1_1spatial_1_1KDTree.html#a24899ae6305ff7ebc0899736adcf7ff4">更多...</a><br /></td></tr>
<tr class="separator:a24899ae6305ff7ebc0899736adcf7ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2ad26d117fc2abe05cf3ea4a2303bce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#ac2ad26d117fc2abe05cf3ea4a2303bce">clear</a> () override</td></tr>
<tr class="memdesc:ac2ad26d117fc2abe05cf3ea4a2303bce"><td class="mdescLeft">&#160;</td><td class="mdescRight">清空 k-d 树 <a href="classvde_1_1spatial_1_1KDTree.html#ac2ad26d117fc2abe05cf3ea4a2303bce">更多...</a><br /></td></tr>
<tr class="separator:ac2ad26d117fc2abe05cf3ea4a2303bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e33bb4e110b7006f095644aa8532ed2"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1KDTree.html#a2e33bb4e110b7006f095644aa8532ed2">size</a> () const override</td></tr>
<tr class="memdesc:a2e33bb4e110b7006f095644aa8532ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">对象数量 <a href="classvde_1_1spatial_1_1KDTree.html#a2e33bb4e110b7006f095644aa8532ed2">更多...</a><br /></td></tr>
<tr class="separator:a2e33bb4e110b7006f095644aa8532ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classvde_1_1spatial_1_1SpatialIndex"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvde_1_1spatial_1_1SpatialIndex')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html">vde::spatial::SpatialIndex&lt; T &gt;</a></td></tr>
<tr class="memitem:ab27637c0122a9fd82ebc12598db496f1 inherit pub_methods_classvde_1_1spatial_1_1SpatialIndex"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#ab27637c0122a9fd82ebc12598db496f1">~SpatialIndex</a> ()=default</td></tr>
<tr class="separator:ab27637c0122a9fd82ebc12598db496f1 inherit pub_methods_classvde_1_1spatial_1_1SpatialIndex"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class vde::spatial::KDTree&lt; T &gt;</h3>
<p>k-d 树空间索引 </p>
<p>在每一层选择一个坐标轴,以该轴上中位数为分割面, 将空间划分为两个半空间,递归构建二叉树。</p>
<p>构建: O(n log n) 使用中位数分区 范围查询: O(n^(11/d) + k)3D 下约为 O(n^(2/3) + k) KNN 查询: O(log n) 平均,最坏 O(n) 射线查询: O(n^(2/3) + k) 近似</p>
<dl class="tparams"><dt>模板参数</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>被索引的空间对象类型</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>k-d 树在维度约 2~6 时效率最佳。三维场景中, <a class="el" href="classvde_1_1spatial_1_1BVH.html" title="包围盒层次结构 — 三角形网格加速结构">BVH</a> 对于射线查询更高效,Octree 对于均匀体数据更优。</dd></dl>
<div class="fragment"><div class="line">KDTree&lt;Point3D&gt; kdtree;</div>
<div class="line">kdtree.build(points);</div>
<div class="line"><span class="keyword">auto</span> nearest = kdtree.query_knn(query_point, 1);</div>
<div class="line"><span class="keyword">auto</span> in_range = kdtree.query_range(AABB3D::from_minmax(min, max));</div>
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html" title="空间索引抽象基类">SpatialIndex</a>, <a class="el" href="classvde_1_1spatial_1_1BVH.html" title="包围盒层次结构 — 三角形网格加速结构">BVH</a>, <a class="el" href="classvde_1_1spatial_1_1Octree.html" title="八叉树空间索引">Octree</a> </dd></dl>
<p class="definition">在文件 <a class="el" href="kd__tree_8h_source.html">kd_tree.h</a><a class="el" href="kd__tree_8h_source.html#l00048">48</a> 行定义.</p>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="af4f05befd943a75678ae774f488dc02e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4f05befd943a75678ae774f488dc02e">&#9670;&nbsp;</a></span>build()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::build </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>items</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>批量构建 k-d 树 </p>
<p>递归选择分裂轴和分裂点进行自顶向下构建。 构建复杂度 O(n log n)。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">items</td><td>待索引的对象数组 </td></tr>
</table>
</dd>
</dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#a3cc8e80b3f92fbb5766094066a120364">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="ac2ad26d117fc2abe05cf3ea4a2303bce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2ad26d117fc2abe05cf3ea4a2303bce">&#9670;&nbsp;</a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::clear </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>清空 k-d 树 </p>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#a609143536e3307d5bacaf21cb19c0840">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a4c17d9ce3f29ded0066736ff44a057fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c17d9ce3f29ded0066736ff44a057fb">&#9670;&nbsp;</a></span>insert()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::insert </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>item</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>插入单个对象 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>待插入的空间对象 </td></tr>
</table>
</dd>
</dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#ad494ecb8a0178a8bedddfd0278b39162">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a808f7a199ca2046a51bfd85c6dfbaa1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a808f7a199ca2046a51bfd85c6dfbaa1e">&#9670;&nbsp;</a></span>query_knn()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;T&gt; <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::query_knn </td>
<td>(</td>
<td class="paramtype">const Point3D &amp;&#160;</td>
<td class="paramname"><em>point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>k</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>K 近邻查询 </p>
<p>最优优先搜索:从根节点出发,使用优先队列按距离剪枝。 平均 O(log n),最坏 O(n)。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">point</td><td>查询点 </td></tr>
<tr><td class="paramname">k</td><td>返回数量 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>最近的 k 个对象 </dd></dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#afae94f2d82bf75c2096c409809735381">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a379b11a29bec58d541a6d7457a955ac4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a379b11a29bec58d541a6d7457a955ac4">&#9670;&nbsp;</a></span>query_range()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;T&gt; <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::query_range </td>
<td>(</td>
<td class="paramtype">const AABB3D &amp;&#160;</td>
<td class="paramname"><em>range</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>范围查询 </p>
<p>遍历与查询 AABB 相交的 kd 树节点。</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">range</td><td>查询包围盒 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>与 range 相交的对象列表 </dd></dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#acaddc825aeb513861587e070ed222584">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a24899ae6305ff7ebc0899736adcf7ff4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24899ae6305ff7ebc0899736adcf7ff4">&#9670;&nbsp;</a></span>query_ray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;T&gt; <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::query_ray </td>
<td>(</td>
<td class="paramtype">const Ray3Dd &amp;&#160;</td>
<td class="paramname"><em>ray</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>射线查询 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">ray</td><td>查询射线 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>与射线相交的对象列表 </dd></dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#ac3bd96db5d118856a25081d9b8820225">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a4b217b60d51468d18f7e0a15defa02e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b217b60d51468d18f7e0a15defa02e7">&#9670;&nbsp;</a></span>remove()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::remove </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>item</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>删除对象 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>待删除的空间对象 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>删除成功返回 true </dd></dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#a135664f598eae21a922ceead3a60d5ab">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
</div>
</div>
<a id="a2e33bb4e110b7006f095644aa8532ed2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e33bb4e110b7006f095644aa8532ed2">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classvde_1_1spatial_1_1KDTree.html">vde::spatial::KDTree</a>&lt; T &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>对象数量 </p>
<dl class="section return"><dt>返回</dt><dd>当前索引的对象总数 </dd></dl>
<p>实现了 <a class="el" href="classvde_1_1spatial_1_1SpatialIndex.html#ae972c151054589684f24b53ec08a99d1">vde::spatial::SpatialIndex&lt; T &gt;</a>.</p>
<p class="definition">在文件 <a class="el" href="kd__tree_8h_source.html">kd_tree.h</a><a class="el" href="kd__tree_8h_source.html#l00115">115</a> 行定义.</p>
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>include/vde/spatial/<a class="el" href="kd__tree_8h_source.html">kd_tree.h</a></li>
</ul>
</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="namespacevde.html">vde</a></li><li class="navelem"><a class="el" href="namespacevde_1_1spatial.html">spatial</a></li><li class="navelem"><a class="el" href="classvde_1_1spatial_1_1KDTree.html">KDTree</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>