Spec-Zone.ru › PointCloudLibrary

Octree класс облака точек Подробнее...

#include <pcl/octree/octree_pointcloud.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Открытые типы

using Base = OctreeT
using LeafNode = typename OctreeT::LeafNode
using BranchNode = typename OctreeT::BranchNode
using IndicesPtr = shared_ptr< Indices >
using IndicesConstPtr = shared_ptr< const Indices >
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using SingleBuffer = OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeBase< LeafContainerT > >
using Ptr = shared_ptr< OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
using ConstPtr = shared_ptr< const OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
using AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
using AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
- Открытые типы, унаследованные от pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
using OctreeT = OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
using BranchNode = OctreeBranchNode< OctreeContainerEmpty >
using LeafNode = OctreeLeafNode< OctreeContainerPointIndices >
using BranchContainer = OctreeContainerEmpty
using LeafContainer = OctreeContainerPointIndices
using Iterator = OctreeDepthFirstIterator< OctreeT >
using ConstIterator = OctreeDepthFirstIterator< const OctreeT >
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using ConstDepthFirstIterator = OctreeDepthFirstIterator< const OctreeT >
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using ConstBreadthFirstIterator = OctreeBreadthFirstIterator< const OctreeT >
using FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
using ConstFixedDepthIterator = OctreeFixedDepthIterator< const OctreeT >
using LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using ConstLeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< const OctreeT >

Открытые функции-члены

OctreePointCloud (const double resolution_arg)
Конструктор октодерева облака точек. Подробнее...
void setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
Задать указатель на входной набор данных. Подробнее...
IndicesConstPtr const getIndices () const
Получить указатель на используемый вектор индексов. Подробнее...
PointCloudConstPtr getInputCloud () const
Получить указатель на входной набор облака точек. Подробнее...
void setEpsilon (double eps)
Задать точность поиска эпсилон (границу погрешности) для поиска ближайших соседей. Подробнее...
double getEpsilon () const
Получить точность поиска эпсилон (границу погрешности) для поиска ближайших соседей. Подробнее...
void setResolution (double resolution_arg)
Задать/изменить разрешение вокселей октодерева. Подробнее...
double getResolution () const
Получить разрешение вокселей октодерева. Подробнее...
uindex_t getTreeDepth () const
Получить максимальную глубину октодерева. Подробнее...
void addPointsFromInputCloud ()
Добавить точки из входного облака точек в октодерево. Подробнее...
void addPointFromCloud (uindex_t point_idx_arg, IndicesPtr indices_arg)
Добавить в октодерево точку с заданным индексом из входного облака точек. Подробнее...
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
Одновременно добавить точку в октодерево и входное облако точек. Подробнее...
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
Одновременно добавить точку в октодерево и входное облако точек. Подробнее...
bool isVoxelOccupiedAtPoint (const PointT &point_arg) const
Проверить, существует ли воксель в заданной точке. Подробнее...
void deleteTree ()
Удалить структуру октодерева и его листовые узлы. Подробнее...
bool isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const
Проверить, существует ли воксель в точке с заданными координатами. Подробнее...
bool isVoxelOccupiedAtPoint (const index_t &point_idx_arg) const
Проверить, существует ли воксель в заданной точке входного облака. Подробнее...
uindex_t getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const
Получить вектор PointT с центрами всех занятых вокселей. Подробнее...
uindex_t getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2)
Получить вектор PointT с центрами вокселей, пересекаемых отрезком. Подробнее...
void deleteVoxelAtPoint (const PointT &point_arg)
Удалить листовой узел / воксель в заданной точке. Подробнее...
void deleteVoxelAtPoint (const index_t &point_idx_arg)
Удалить листовой узел / воксель в заданной точке входного облака. Подробнее...
void defineBoundingBox ()
Определить размеры набора данных облака точек и задать соответствующую ограничивающую рамку октодерева. Подробнее...
void defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg)
Задать ограничивающую рамку октодерева. Подробнее...
void defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg)
Задать ограничивающую рамку октодерева. Подробнее...
void defineBoundingBox (const double cubeLen_arg)
Задать кубическую ограничивающую рамку октодерева. Подробнее...
void getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const
Получить ограничивающую рамку октодерева. Подробнее...
double getVoxelSquaredDiameter (uindex_t tree_depth_arg) const
Вычислить квадрат диаметра вокселя на заданной глубине дерева. Подробнее...
double getVoxelSquaredDiameter () const
Вычислить квадрат диаметра вокселя на уровне листьев. Подробнее...
double getVoxelSquaredSideLen (uindex_t tree_depth_arg) const
Вычислить квадрат длины стороны куба-вокселя на заданной глубине дерева. Подробнее...
double getVoxelSquaredSideLen () const
Вычислить квадрат длины стороны куба-вокселя на уровне листьев. Подробнее...
void getVoxelBounds (const OctreeIteratorBase< OctreeT > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Вычислить границы текущего вокселя итератора октодерева. Подробнее...
void enableDynamicDepth (std::size_t maxObjsPerLeaf)
Включить динамическую структуру октодерева. Подробнее...
- Открытые функции-члены, унаследованные от pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
Iterator begin (uindex_t max_depth_arg=0u)
ConstIterator begin (uindex_t max_depth_arg=0u) const
ConstIterator cbegin (uindex_t max_depth_arg=0u) const
const Iterator end ()
const ConstIterator end () const
const ConstIterator cend () const
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u)
ConstLeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u) const
const LeafNodeDepthFirstIterator leaf_depth_end ()
const ConstLeafNodeDepthFirstIterator leaf_depth_end () const
DepthFirstIterator depth_begin (uindex_t max_depth_arg=0u)
ConstDepthFirstIterator depth_begin (uindex_t max_depth_arg=0u) const
const DepthFirstIterator depth_end ()
const ConstDepthFirstIterator depth_end () const
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u)
ConstBreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u) const
const BreadthFirstIterator breadth_end ()
const ConstBreadthFirstIterator breadth_end () const
FixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u)
ConstFixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u) const
const FixedDepthIterator fixed_depth_end ()
const ConstFixedDepthIterator fixed_depth_end () const
LeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u)
ConstLeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u) const
const LeafNodeBreadthFirstIterator leaf_breadth_end ()
const ConstLeafNodeBreadthFirstIterator leaf_breadth_end () const
OctreeBase ()
Конструктор без параметров. Подробнее...
OctreeBase (const OctreeBase &source)
Конструктор копирования. Подробнее...
virtual ~OctreeBase ()
Деструктор без параметров. Подробнее...
OctreeBase & operator= (const OctreeBase &source)
Оператор копирующего присваивания. Подробнее...
void setMaxVoxelIndex (uindex_t max_voxel_index_arg)
Задать максимальное количество вокселей на измерение. Подробнее...
void setTreeDepth (uindex_t max_depth_arg)
Задать максимальную глубину октодерева. Подробнее...
uindex_t getTreeDepth () const
Получить максимальную глубину октодерева. Подробнее...
OctreeContainerPointIndices * createLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Создать новый листовой узел в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
OctreeContainerPointIndices * findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
Найти листовой узел в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
bool existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
Проверить наличие листового узла в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
void removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Удалить листовой узел в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
std::size_t getLeafCount () const
Вернуть количество существующих листовых узлов в октодереве. Подробнее...
std::size_t getBranchCount () const
Вернуть количество существующих узлов ветвления в октодереве. Подробнее...
void deleteTree ()
Удалить структуру октодерева и его листовые узлы. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg) const
Сериализовать октодерево в выходной двоичный вектор, описывающий структуру его узлов ветвления. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg) const
Сериализовать октодерево в выходной двоичный вектор, описывающий структуру его узлов ветвления, и поместить все элементы LeafContainerT, хранящиеся в октодереве, в вектор. Подробнее...
void serializeLeafs (std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
Вывести вектор всех элементов LeafContainerT, хранящихся в листовых узлах октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_input_arg)
Десериализовать вектор с двоичным описанием октодерева и создать соответствующую структуру октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
Десериализовать двоичное описание октодерева и создать соответствующую структуру октодерева. Подробнее...
tr>

Защищённые функции-члены

virtual void addPointIdx (uindex_t point_idx_arg)
Добавляет точку по индексу из входного набора облака точек в октодерево. Подробнее...
void expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask)
Добавляет точку по индексу из входного набора облака точек в октодерево. Подробнее...
const PointT & getPointByIndex (uindex_t index_arg) const
Возвращает точку по индексу из входного набора облака точек. Подробнее...
LeafContainerT * findLeafAtPoint (const PointT &point_arg) const
Находит листовой узел октодерева в заданной точке. Подробнее...
void getKeyBitSize ()
Задаёт параметры ключа октодерева и его глубину на основе ограничивающего параллелепипеда. Подробнее...
void adoptBoundingBoxToPoint (const PointT &point_idx_arg)
Расширяет ограничивающий параллелепипед/октодерево, пока точка не окажется внутри. Подробнее...
bool isPointWithinBoundingBox (const PointT &point_idx_arg) const
Проверяет, находится ли заданная точка внутри ограничивающего параллелепипеда октодерева. Подробнее...
void genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
Создаёт ключ октодерева для вокселя в заданной точке. Подробнее...
void genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const
Создаёт ключ октодерева для вокселя в заданной точке. Подробнее...
virtual bool genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const
Виртуальный метод для создания ключа октодерева по заданному индексу точки. Подробнее...
void genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
Создаёт точку в центре вокселя листового узла. Подробнее...
void genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, PointT &point_arg) const
Создаёт точку в центре вокселя октодерева на заданном уровне дерева. Подробнее...
void genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Вычисляет границы вокселя октодерева по ключу октодерева и аргументам глубины дерева. Подробнее...
uindex_t getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const
Рекурсивно обходит дерево, находит все листовые узлы и возвращает вектор центров вокселей. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
OctreeContainerPointIndices * createLeaf (const OctreeKey &key_arg)
Создаёт листовой узел. Подробнее...
OctreeContainerPointIndices * findLeaf (const OctreeKey &key_arg) const
Находит листовой узел. Подробнее...
bool existLeaf (const OctreeKey &key_arg) const
Проверяет, существует ли листовой узел в октодереве. Подробнее...
void removeLeaf (const OctreeKey &key_arg)
Удаляет листовой узел из октодерева. Подробнее...
OctreeNode * getRootNode () const
Возвращает корневой узел. Подробнее...
bool branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Проверяет, указывает ли ветвь на определённый дочерний узел. Подробнее...
OctreeNode * getBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Возвращает указатель на дочерний узел с индексом child_idx. Подробнее...
void setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
Назначает ветви новый дочерний узел. Подробнее...
char getBranchBitPattern (const BranchNode &branch_arg) const
Формирует битовый шаблон, отражающий наличие указателей на дочерние узлы. Подробнее...
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Удаляет дочерний узел и все его дочерние узлы из октодерева. Подробнее...
void deleteBranch (BranchNode &branch_arg)
Удаляет ветвь и все её дочерние узлы из октодерева. Подробнее...
BranchNode * createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создаёт и добавляет новую дочернюю ветвь в класс ветви. Подробнее...
LeafNode * createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создаёт и добавляет новый дочерний листовой узел в класс ветви. Подробнее...
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
Создаёт листовой узел по ключу октодерева. Подробнее...
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, OctreeContainerPointIndices *&result_arg) const
Рекурсивно ищет заданный листовой узел и возвращает указатель на него. Подробнее...
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
Рекурсивно ищет и удаляет листовой узел. Подробнее...
void serializeTreeRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< OctreeContainerPointIndices * > *leaf_container_vector_arg) const
Рекурсивно обходит октодерево и формирует его двоичное описание вместе с вектором LeafContainerT листовых узлов. Подробнее...
void deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_end_arg)
Рекурсивный метод десериализации структуры октодерева. Подробнее...
virtual void serializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &) const
Функция обратного вызова, выполняемая для каждого листового узла при сериализации. Подробнее...
virtual void deserializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &)
Функция обратного вызова, выполняемая для каждого листового узла при десериализации. Подробнее...
bool octreeCanResize () const
Проверяет, может ли октодерево динамически изменять свою глубину. Подробнее...

Защищённые атрибуты

PointCloudConstPtr input_
Указатель на входной набор данных облака точек. Подробнее...
IndicesConstPtr indices_
Указатель на вектор используемых индексов точек. Подробнее...
double epsilon_ {0.0}
Точность эпсилон (граница погрешности) при поиске ближайших соседей. Подробнее...
double resolution_
Разрешение октодерева. Подробнее...
double min_x_ {0.0}
double max_x_
double min_y_ {0.0}
double max_y_
double min_z_ {0.0}
double max_z_
bool bounding_box_defined_ {false}
Флаг, указывающий, задана ли ограничивающая рамка октодерева. Подробнее...
std::size_t max_objs_per_leaf_ {0}
Количество объектов DataT в листовом узле до разветвления. Подробнее...
- унаследованные от pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
std::size_t leaf_count_
Количество листовых узлов
Подробнее...
std::size_t branch_count_
Количество узлов-ветвей
Подробнее...
BranchNode * root_node_
Указатель на корневой узел-ветвь октодерева
Подробнее...
uindex_t depth_mask_
Маска глубины, основанная на глубине октодерева
Подробнее...
uindex_t octree_depth_
Глубина октодерева. Подробнее...
bool dynamic_depth_enabled_
Включает dynamic_depth. Подробнее...
OctreeKey max_key_
Диапазон ключей Подробнее...

Подробное описание

template<typename PointT, typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
class pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >

Класс облака точек Octree

Примечание
Реализация октодерева для облаков точек. В листовых узлах октодерева хранятся только индексы (без копирования данных).
Класс облака точек с октодеревом необходимо инициализировать разрешением вокселей. Ограничивающая рамка автоматически подстраивается
под размер облака точек или может быть задана заранее.
Примечание: глубина дерева определяется разрешением и размерами ограничивающей рамки октодерева.
Параметры шаблона
PointT тип точек, используемых в облаке точек
LeafContainerT контейнер листового узла
BranchContainerT контейнер узла-ветви
OctreeT реализация октодерева
Автор
Julius Kammerl * (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Определение в строке 72 файла octree_pointcloud.h.

Документация typedef-членов

AlignedPointTVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointTVector = std::vector<PointT, Eigen::aligned_allocator<PointT> >

Определение в строке 107 файла octree_pointcloud.h.

AlignedPointXYZVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointXYZVector = std::vector<PointXYZ, Eigen::aligned_allocator<PointXYZ> >

Определение в строке 108 файла octree_pointcloud.h.

Base

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Base = OctreeT

Определение в строке 74 файла octree_pointcloud.h.

BranchNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::BranchNode = typename OctreeT::BranchNode

Определение в строке 77 файла octree_pointcloud.h.

ConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::ConstPtr = shared_ptr< const OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Определение в строке 103 файла octree_pointcloud.h.

IndicesConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesConstPtr = shared_ptr<const Indices>

Определение в строке 86 файла octree_pointcloud.h.

IndicesPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesPtr = shared_ptr<Indices>

Определение в строке 85 файла octree_pointcloud.h.

LeafNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::LeafNode = typename OctreeT::LeafNode

Определение в строке 76 файла octree_pointcloud.h.

PointCloud

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloud = pcl::PointCloud<PointT>

Определение в строке 88 файла octree_pointcloud.h.

PointCloudConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Определение в строке 90 файла octree_pointcloud.h.

PointCloudPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudPtr = typename PointCloud::Ptr

Определение в строке 89 файла octree_pointcloud.h.

Ptr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Ptr = shared_ptr<OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Определение в строке 101 файла octree_pointcloud.h.

SingleBuffer

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::SingleBuffer = OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeBase<LeafContainerT> >

Определение в строке 93 файла octree_pointcloud.h.

Документация конструкторов и деструкторов

OctreePointCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::OctreePointCloud ( const double resolution_arg )

Конструктор октодерева облака точек.

Параметры
[in] resolution_arg разрешение октодерева на самом нижнем уровне

Определение в строке 53 файла octree_pointcloud.hpp.

Документация функций-членов

addPointFromCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointFromCloud ( uindex_t point_idx_arg,
IndicesPtr indices_arg
)

Добавляет точку с указанным индексом из входного облака точек в октодерево.

Индекс также добавляется в вектор индексов.

Параметры
[in] point_idx_arg индекс добавляемой точки
[in] indices_arg указатель на вектор индексов набора данных (задаётся с помощью setInputCloud)

Определение в строке 105 файла octree_pointcloud.hpp.

addPointIdx()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointIdx ( uindex_t point_idx_arg )
protectedvirtual

Добавляет точку по индексу из входного набора данных облака точек в октодерево.

Параметры
[in] point_idx_arg индекс добавляемой точки в наборе данных, заданном с помощью setInputCloud

Переопределено в pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >, pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT > и pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >.

Определение в строке 635 файла octree_pointcloud.hpp.

Ссылки: pcl::octree::OctreeKey::getChildIdxWithDepthMask().

Используется в pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >::addPointIdx().

addPointsFromInputCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud

Добавляет точки из входного облака точек в октодерево.

Определение в строке 76 файла octree_pointcloud.hpp.

Используется в pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::addPointsFromInputCloud(), pcl::applyMorphologicalOperator(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature(), pcl::TextureMapping< PointInT >::removeOccludedPoints() и pcl::TextureMapping< PointInT >::showOcclusions().

addPointToCloud() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointToCloud ( const PointT & point_arg,
PointCloudPtr cloud_arg
)

Одновременно добавляет точку в октодерево и входное облако точек.

Параметры
[in] point_arg добавляемая точка
[in] cloud_arg указатель на входной набор данных облака точек (заданный с помощью setInputCloud)

Определение в строке 119 файла octree_pointcloud.hpp.

addPointToCloud() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointToCloud ( const PointT & point_arg,
PointCloudPtr cloud_arg,
IndicesPtr indices_arg
)

Одновременно добавляет точку в октодерево и входное облако точек.

Соответствующий индекс добавляется в вектор индексов.

Параметры
[in] point_arg добавляемая точка
[in] cloud_arg указатель на входной набор данных облака точек (заданный с помощью setInputCloud)
[in] indices_arg указатель на вектор индексов набора данных (заданный с помощью setInputCloud)

Определение в строке 135 файла octree_pointcloud.hpp.

adoptBoundingBoxToPoint()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::adoptBoundingBoxToPoint ( const PointT & point_idx_arg )
protected

Увеличивает ограничивающий параллелепипед/октодерево, пока точка не окажется внутри.

Параметры
[in] point_idx_arg точка, которая должна находиться внутри ограничивающего параллелепипеда;

Определение в строке 492 файла octree_pointcloud.hpp.

defineBoundingBox() [1/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox

Определяет размеры набора данных облака точек и задаёт соответствующий ограничивающий параллелепипед для октодерева.

Определение в строке 330 файла octree_pointcloud.hpp.

Используется в pcl::TextureMapping< PointInT >::removeOccludedPoints() и pcl::TextureMapping< PointInT >::showOcclusions().

defineBoundingBox() [2/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double cubeLen_arg )

Задаёт куб ограничивающего параллелепипеда для октодерева.

Примечание
Нижний угол ограничивающего параллелепипеда устанавливается в точку (0, 0, 0)
Ограничивающий параллелепипед нельзя изменить после добавления элементов в октодерево.
Параметры
[in] cubeLen_arg длина стороны куба ограничивающего параллелепипеда.

Определение в строке 438 файла octree_pointcloud.hpp.

defineBoundingBox() [3/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double max_x_arg,
const double max_y_arg,
const double max_z_arg
)

Задаёт ограничивающий параллелепипед для октодерева.

Примечание
Нижняя точка ограничивающего параллелепипеда устанавливается в точку (0, 0, 0)
Ограничивающий параллелепипед нельзя изменить после добавления элементов в октодерево.
Параметры
[in] max_x_arg координата X верхнего угла ограничивающего параллелепипеда
[in] max_y_arg координата Y верхнего угла ограничивающего параллелепипеда
[in] max_z_arg координата Z верхнего угла ограничивающего параллелепипеда

Определение в строке 405 файла octree_pointcloud.hpp.

defineBoundingBox() [4/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double min_x_arg,
const double min_y_arg,
const double min_z_arg,
const double max_x_arg,
const double max_y_arg,
const double max_z_arg
)

Задаёт ограничивающий параллелепипед для октодерева.

Примечание
Ограничивающий параллелепипед нельзя изменить после добавления элементов в октодерево.
Параметры
[in] min_x_arg координата X нижнего угла ограничивающего параллелепипеда
[in] min_y_arg координата Y нижнего угла ограничивающего параллелепипеда
[in] min_z_arg координата Z нижнего угла ограничивающего параллелепипеда
[in] max_x_arg координата X верхнего угла ограничивающего параллелепипеда
[in] max_y_arg координата Y верхнего угла ограничивающего параллелепипеда
[in] max_z_arg координата Z верхнего угла ограничивающего параллелепипеда

Определение в строке 369 файла octree_pointcloud.hpp.

deleteTree()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree ( )
inline

Удаляет структуру октодерева и его листовые узлы.

Определение в строке 240 файла octree_pointcloud.h.

Ссылки: pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::bounding_box_defined_, pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteTree(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_x_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_y_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_z_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_x_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_y_ и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_z_.

deleteVoxelAtPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const index_t & point_idx_arg )

Удаляет листовой узел / воксель, соответствующий заданной точке входного облака.

Параметры
[in] point_idx_arg индекс точки, указывающей на удаляемый воксель.

Определение в строке 234 файла octree_pointcloud.hpp.

deleteVoxelAtPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const PointT & point_arg )

Удаляет листовой узел / воксель, соответствующий заданной точке.

Параметры
[in] point_arg точка, указывающая на удаляемый воксель.

Определение в строке 213 файла octree_pointcloud.hpp.

enableDynamicDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::enableDynamicDepth ( std::size_t maxObjsPerLeaf )
inline

Включает динамическую структуру октодерева.

Примечание
Листовые узлы располагаются как можно ближе к корню и расширяются только в том случае, если число объектов DataT в листовом узле превышает фиксированный предел.
Параметры
maxObjsPerLeaf максимальное число объектов DataT на лист

Определение в строке 421 файла octree_pointcloud.h.

Ссылки на pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::dynamic_depth_enabled_, pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::leaf_count_ и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_objs_per_leaf_.

expandLeafNode()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::expandLeafNode ( LeafNode * leaf_node,
BranchNode * parent_branch,
unsigned char child_idx,
uindex_t depth_mask
)
protected

Добавляет точку с указанным индексом из входного набора данных облака точек в октодерево.

Параметры
[in] leaf_node расширяемый узел
[in] parent_branch родительская ветвь расширяемого листового узла
[in] child_idx индекс дочернего узла листового узла (в родительской ветви)
[in] depth_mask маска глубины расширяемого листового узла

Определение в строке 585 файла octree_pointcloud.hpp.

findLeafAtPoint()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
LeafContainerT* pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::findLeafAtPoint ( const PointT & point_arg ) const
inlineprotected

Находит листовой узел октодерева в заданной точке.

Параметры
[in] point_arg точка запроса
Возвращает
указатель на листовой узел. Если листовой узел не существует, указатель равен 0.

Определение в строке 466 файла octree_pointcloud.h.

Ссылки на pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint().

genLeafNodeCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey ( const OctreeKey & key_arg,
PointT & point_arg
) const
protected

Создает точку в центре вокселя листового узла.

Параметры
[in] key_arg ключ октодерева, задающий адрес листового узла.
[out] point_arg ссылка на точку, в которую записывается центр вокселя листового узла

Определение в строке 823 файла octree_pointcloud.hpp.

Ссылки на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

genOctreeKeyForDataT()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyForDataT ( const index_t & data_arg,
OctreeKey & key_arg
) const
protectedvirtual

Виртуальный метод для создания ключа октодерева по заданному индексу точки.

Примечание
Этот метод позволяет назначать индексы листовым узлам во время десериализации октодерева.
Параметры
[in] data_arg значение индекса, представляющее точку в наборе данных, заданном с помощью setInputCloud
[out] key_arg ссылка, в которую записывается ключ октодерева
Возвращает
"true" — ключи октодерева можно назначить

Определение в строке 806 файла octree_pointcloud.hpp.

genOctreeKeyforPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const double point_x_arg,
const double point_y_arg,
const double point_z_arg,
OctreeKey & key_arg
) const
protected

Создает ключ октодерева для вокселя в заданной точке.

Параметры
[in] point_x_arg координата X точки, задающей адрес вокселя
[in] point_y_arg координата Y точки, задающей адрес вокселя
[in] point_z_arg координата Z точки, задающей адрес вокселя
[out] key_arg ссылка, в которую записывается ключ октодерева

Определение в строке 784 файла octree_pointcloud.hpp.

genOctreeKeyforPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const PointT & point_arg,
OctreeKey & key_arg
) const
protected

Создает ключ октодерева для вокселя в заданной точке.

Параметры
[in] point_arg точка, задающая адрес вокселя
[out] key_arg ссылка, в которую записывается ключ октодерева

Определение в строке 765 файла octree_pointcloud.hpp.

Ссылки на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::findLeafAtPoint().

genVoxelBoundsFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey ( const OctreeKey & key_arg,
uindex_t tree_depth_arg,
Eigen::Vector3f & min_pt,
Eigen::Vector3f & max_pt
) const
protected

Вычисляет границы вокселя октодерева по ключу октодерева и глубине дерева.

Параметры
[in] key_arg ключ октодерева, задающий адрес узла октодерева.
[in] tree_depth_arg глубина октодерева для запрашиваемого вокселя
[out] min_pt нижняя граница вокселя
[out] max_pt верхняя граница вокселя

Определение в строке 870 файла octree_pointcloud.hpp.

Ссылки на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelBounds().

genVoxelCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey ( const OctreeKey & key_arg,
uindex_t tree_depth_arg,
PointT & point_arg
) const
protected

Создает точку в центре вокселя октодерева на заданном уровне дерева.

Параметры
[in] key_arg ключ октодерева, задающий адрес узла октодерева.
[in] tree_depth_arg глубина октодерева для запрашиваемого вокселя
[out] point_arg ссылка, в которую записывается точка в центре листового узла

Определение в строке 841 файла octree_pointcloud.hpp.

Ссылки на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

getApproxIntersectedVoxelCentersBySegment()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getApproxIntersectedVoxelCentersBySegment ( const Eigen::Vector3f & origin,
const Eigen::Vector3f & end,
AlignedPointTVector & voxel_center_list,
float precision = 0.2

Возвращает вектор PointT с центрами вокселей, пересекаемых отрезком.

Это приближение фактически пересекаемых вокселей, полученное перемещением вдоль линии небольшими шагами. Воксели упорядочены от ближайшего к наиболее удаленному относительно начала координат.

Параметры
[in] origin начало отрезка
[in] end конец отрезка
[out] voxel_center_list результаты записываются в этот вектор элементов PointT
[in] precision определяет размер шага: step_size = octree_resolution x precision
Возвращает
число пересекаемых вокселей

Определение в строке 267 файла octree_pointcloud.hpp.

Используется в pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature().

getBoundingBox()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getBoundingBox ( double & min_x_arg,
double & min_y_arg,
double & min_z_arg,
double & max_x_arg,
double & max_y_arg,
double & max_z_arg

Возвращает ограничивающий параллелепипед октодерева.

Примечание
Ограничивающий параллелепипед нельзя изменить после добавления элементов в октодерево.
Параметры
[in] min_x_arg координата X нижнего угла ограничивающего параллелепипеда
[in] min_y_arg координата Y нижнего угла ограничивающего параллелепипеда
[in] min_z_arg координата Z нижнего угла ограничивающего параллелепипеда
[in] max_x_arg координата X верхнего угла ограничивающего параллелепипеда
[in] max_y_arg координата Y верхнего угла ограничивающего параллелепипеда
[in] max_z_arg координата Z верхнего угла ограничивающего параллелепипеда

Определение в строке 469 файла octree_pointcloud.hpp.

getEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getEpsilon ( ) const
inline

Возвращает точность epsilon поиска (границу погрешности) для поиска ближайших соседей.

Определение в строке 155 файла octree_pointcloud.h.

Ссылка на pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_.

getIndices()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
IndicesConstPtr const pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getIndices ( ) const
inline

Получить указатель на используемый вектор индексов.

Возвращает
указатель на используемый вектор индексов.

Определение в строке 128 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_.

getInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getInputCloud ( ) const
inline

Получить указатель на входной набор данных облака точек.

Возвращает
указатель на входной класс облака точек.

Определение в строке 137 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

getKeyBitSize()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getKeyBitSize
protected

Задать параметры ключа октодерева и его глубину на основе заданной ограничивающей рамки.

Определение в строке 697 файла octree_pointcloud.hpp.

См. также pcl::octree::OctreeKey::maxDepth.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution().

getOccupiedVoxelCenters()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters ( AlignedPointTVector & voxel_center_list_arg ) const

Получить вектор PointT с центрами всех занятых вокселей.

Параметры
[out] voxel_center_list_arg результаты записываются в этот вектор элементов PointT
Возвращает
количество занятых вокселей

Определение в строке 250 файла octree_pointcloud.hpp.

См. также pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

Используется в pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature().

getOccupiedVoxelCentersRecursive()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive ( const BranchNode * node_arg,
const OctreeKey & key_arg,
AlignedPointTVector & voxel_center_list_arg
) const
protected

Рекурсивно найти в дереве все листовые узлы и вернуть вектор центров вокселей.

Параметры
[in] node_arg текущий узел октодерева для исследования
[in] key_arg ключ октодерева, указывающий на листовой узел.
[out] voxel_center_list_arg результаты записываются в этот вектор элементов PointT
Возвращает
количество найденных вокселей

Определение в строке 934 файла octree_pointcloud.hpp.

См. также pcl::octree::BRANCH_NODE, pcl::octree::OctreeNode::getNodeType(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.

getPointByIndex()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
const PointT & pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getPointByIndex ( uindex_t index_arg ) const
protected

Получить точку по индексу из входного набора данных облака точек.

Параметры
[in] index_arg индекс точки в наборе данных, заданном с помощью setInputCloud
Возвращает
точка PointT из входного набора данных облака точек

Определение в строке 683 файла octree_pointcloud.hpp.

getResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getResolution ( ) const
inline

Получить разрешение вокселей октодерева.

Возвращает
разрешение вокселей на нижнем уровне дерева

Определение в строке 182 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_.

getTreeDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getTreeDepth ( ) const
inline

Получить максимальную глубину октодерева.

Возвращает
depth_arg: максимальная глубина октодерева

Определение в строке 191 файла octree_pointcloud.h.

См. также pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

getVoxelBounds()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelBounds ( const OctreeIteratorBase< OctreeT > & iterator,
Eigen::Vector3f & min_pt,
Eigen::Vector3f & max_pt
) const

Вычислить границы текущего вокселя итератора октодерева.

Параметры
[in] iterator итератор октодерева
[out] min_pt нижняя граница вокселя
[out] max_pt верхняя граница вокселя

Определение в строке 405 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey(), pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeDepth() и pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeKey().

getVoxelSquaredDiameter() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( ) const
inline

Вычислить квадрат диаметра вокселя на уровне листьев.

Возвращает
квадрат диаметра

Определение в строке 378 файла octree_pointcloud.h.

См. также pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

getVoxelSquaredDiameter() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( uindex_t tree_depth_arg ) const

Вычислить квадрат диаметра вокселя на заданной глубине дерева.

Параметры
[in] tree_depth_arg глубина/уровень в октодереве
Возвращает
квадрат диаметра

Определение в строке 921 файла octree_pointcloud.hpp.

getVoxelSquaredSideLen() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( ) const
inline

Вычислить квадрат длины стороны куба вокселя на уровне листьев.

Возвращает
квадрат длины стороны куба вокселя

Определение в строке 394 файла octree_pointcloud.h.

См. также pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

getVoxelSquaredSideLen() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( uindex_t tree_depth_arg ) const

Вычислить квадрат длины стороны куба вокселя на заданной глубине дерева.

Параметры
[in] tree_depth_arg глубина/уровень в октодереве
Возвращает
квадрат длины стороны куба вокселя

Определение в строке 900 файла octree_pointcloud.hpp.

isPointWithinBoundingBox()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox ( const PointT & point_idx_arg ) const
inlineprotected

Проверить, находится ли заданная точка внутри ограничивающей рамки октодерева.

Параметры
[in] point_idx_arg точка для проверки на выход за границы ограничивающей рамки
Возвращает
«true» — выхода за границы нет

Определение в строке 496 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_x_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_y_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_z_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_x_, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_y_ и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_z_.

isVoxelOccupiedAtPoint() [1/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const double point_x_arg,
const double point_y_arg,
const double point_z_arg
) const

Проверить, существует ли воксель в заданной точке.

Параметры
[in] point_x_arg координата X проверяемой точки
[in] point_y_arg координата Y проверяемой точки
[in] point_z_arg координата Z проверяемой точки
Возвращает
«true», если воксель существует; в противном случае — «false»

Определение в строке 192 файла octree_pointcloud.hpp.

isVoxelOccupiedAtPoint() [2/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const index_t & point_idx_arg ) const

Проверяет, существует ли воксель в заданной точке входного облака.

Параметры
[in] point_idx_arg точка для проверки
Возвращает
"true", если воксель существует; иначе — "false"

Определение в строке 176 файла octree_pointcloud.hpp.

isVoxelOccupiedAtPoint() [3/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const PointT & point_arg ) const

Проверяет, существует ли воксель в заданной точке.

Параметры
[in] point_arg точка для проверки
Возвращает
"true", если воксель существует; иначе — "false"

Определение в строке 154 файла octree_pointcloud.hpp.

setEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setEpsilon ( double eps )
inline

Задает точность эпсилон поиска (предел погрешности) для поиска ближайших соседей.

Параметры
[in] eps точность (предел погрешности) для поиска ближайших соседей

Определение в строке 147 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_.

setInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud ( const PointCloudConstPtr & cloud_arg,
const IndicesConstPtr & indices_arg = IndicesConstPtr()
)
inline

Задает указатель на входной набор данных.

Параметры
[in] cloud_arg константный общий указатель boost на сообщение PointCloud
[in] indices_arg подмножество индексов точек из cloud, которое будет использоваться; если равно 0, используется все облако точек

Определение в строке 117 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_ и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

Используется в pcl::applyMorphologicalOperator(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature(), pcl::TextureMapping< PointInT >::removeOccludedPoints() и pcl::TextureMapping< PointInT >::showOcclusions().

setResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution ( double resolution_arg )
inline

Задает или изменяет разрешение вокселей октодерева.

Параметры
[in] resolution_arg длина стороны вокселей на нижнем уровне дерева

Определение в строке 164 файла octree_pointcloud.h.

См. также pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getKeyBitSize(), pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::leaf_count_ и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_.

Документация данных-членов

bounding_box_defined_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::bounding_box_defined_ {false}
protected

Флаг, указывающий, задана ли для октодерева ограничивающая рамка.

Определение в строке 602 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree().

epsilon_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_ {0.0}
protected

Точность эпсилон (предел погрешности) для поиска ближайших соседей.

Определение в строке 586 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getEpsilon() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setEpsilon().

indices_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
IndicesConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_
protected

Указатель на вектор используемых индексов точек.

Определение в строке 583 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getIndices() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud().

input_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_
protected

Указатель на входной набор данных облака точек.

Определение в строке 580 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getInputCloud() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud().

max_objs_per_leaf_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
std::size_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_objs_per_leaf_ {0}
protected

Количество объектов DataT в листовом узле до разветвления.

Примечание
нулевое значение означает структуру октодерева с фиксированной/максимальной глубиной

Определение в строке 607 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::enableDynamicDepth().

max_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_x_
protected

Определение в строке 593 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

max_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_y_
protected

Определение в строке 596 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

max_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_z_
protected

Определение в строке 599 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

min_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_x_ {0.0}
protected

Определение в строке 592 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

min_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_y_ {0.0}
protected

Определение в строке 595 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

min_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_z_ {0.0}
protected

Определение в строке 598 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox().

resolution_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_
protected

Разрешение октодерева.

Определение в строке 589 файла octree_pointcloud.h.

Используется в pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getResolution() и pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution().


Документация по этому классу создана на основе следующих файлов:
  • pcl/octree/octree_pointcloud.h
  • pcl/octree/impl/octree_pointcloud.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API