7 #include "nanoflann.hpp" 23 size_t res = vertices.size();
29 if (dim == 0)
return vertices[idx].position().x();
30 if (dim == 1)
return vertices[idx].position().y();
31 if (dim == 2)
return vertices[idx].position().z();
36 bool kdtree_get_bbox(BBOX &bb)
const 44 typedef nanoflann::KDTreeSingleIndexAdaptor<
45 nanoflann::L2_Simple_Adaptor<float, VerticesAdaptor>,
66 QOpenGLBuffer* m_vertexBuffer = NULL;
67 bool modified =
false;
78 QString
name()
const override {
return "PointCloudRenderer"; };
80 QOpenGLShaderProgram* shader = NULL;
86 void onRender(OpenGLFunctions* gl, glm::mat4 projection, glm::mat4 view, glm::mat4 model)
override;
89 void setVertices(
const std::vector<Vertex>& vertices);
97 size_t nearestSearch(QVector3D pos);
100 std::vector<size_t> nearestSearch(QVector3D pos,
int k);
103 std::vector<Vertex> getVertices();
std::vector< Vertex > vertices
存储要访问的顶点数据
Definition: PointCloudRenderer.h:17
Definition: Renderer.h:18
QString name() const override
"PointCloudRenderer"
Definition: PointCloudRenderer.h:78
点云渲染器
Definition: PointCloudRenderer.h:57
float kdtree_get_pt(const size_t idx, int dim) const
返回顶点数据
Definition: PointCloudRenderer.h:28
kd_tree_t * kdtree
指向kdtree索引的指针
Definition: PointCloudRenderer.h:72
nanoflann的kd树接口实现
Definition: PointCloudRenderer.h:14
size_t kdtree_get_point_count() const
返回顶点数量
Definition: PointCloudRenderer.h:22