Point Cloud Library (PCL)
1.15.1
Toggle main menu visibility
Loading...
Searching...
No Matches
pcl
octree
octree_pointcloud_singlepoint.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Point Cloud Library (PCL) - www.pointclouds.org
5
* Copyright (c) 2010-2011, Willow Garage, Inc.
6
*
7
* All rights reserved.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
*
13
* * Redistributions of source code must retain the above copyright
14
* notice, this list of conditions and the following disclaimer.
15
* * Redistributions in binary form must reproduce the above
16
* copyright notice, this list of conditions and the following
17
* disclaimer in the documentation and/or other materials provided
18
* with the distribution.
19
* * Neither the name of Willow Garage, Inc. nor the names of its
20
* contributors may be used to endorse or promote products derived
21
* from this software without specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
* POSSIBILITY OF SUCH DAMAGE.
35
*
36
* $Id$
37
*/
38
39
#pragma once
40
41
#include <pcl/octree/octree_pointcloud.h>
42
43
namespace
pcl
{
44
namespace
octree
{
45
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
46
/** \brief @b Octree pointcloud single point class
47
* \note This pointcloud octree class generate an octrees from a point cloud
48
* (zero-copy). Every leaf node contains a single point index from the dataset given by
49
* \a setInputCloud.
50
* \note The octree pointcloud is initialized with its voxel resolution. Its bounding
51
* box is automatically adjusted or can be predefined.
52
* \tparam PointT type of point used in pointcloud
53
* \ingroup octree
54
* \author Julius Kammerl (julius@kammerl.de)
55
*/
56
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
57
template
<
typename
PointT,
58
typename
LeafContainerT =
OctreeContainerPointIndex
,
59
typename
BranchContainerT =
OctreeContainerEmpty
,
60
typename
OctreeT =
OctreeBase<LeafContainerT, BranchContainerT>
>
61
62
class
OctreePointCloudSinglePoint
63
:
public
OctreePointCloud
<PointT, LeafContainerT, BranchContainerT, OctreeT> {
64
65
public
:
66
// public typedefs for single/double buffering
67
using
SingleBuffer
=
68
OctreePointCloudSinglePoint
<PointT,
69
LeafContainerT,
70
BranchContainerT,
71
OctreeBase<LeafContainerT, BranchContainerT>
>;
72
// typedef OctreePointCloudSinglePoint<PointT, LeafContainerT, BranchContainerT,
73
// Octree2BufBase<int, LeafContainerT, BranchContainerT> > DoubleBuffer;
74
75
/** \brief Constructor.
76
* \param resolution_arg: octree resolution at lowest octree level
77
* */
78
OctreePointCloudSinglePoint
(
const
double
resolution_arg)
79
:
OctreePointCloud
<PointT, LeafContainerT, BranchContainerT,
OctreeT
>(resolution_arg)
80
{}
81
82
/** \brief Empty class constructor. */
83
~OctreePointCloudSinglePoint
()
override
=
default
;
84
};
85
86
}
// namespace octree
87
}
// namespace pcl
88
89
// needed since OctreePointCloud is not instantiated with template parameters used above
90
#include <pcl/octree/impl/octree_pointcloud.hpp>
91
92
#define PCL_INSTANTIATE_OctreePointCloudSinglePoint(T) \
93
template class PCL_EXPORTS pcl::octree::OctreePointCloudSinglePoint<T>;
pcl::octree::OctreeBase
Octree class.
Definition
octree_base.h:62
pcl::octree::OctreeBase::OctreeT
OctreeBase< LeafContainerT, BranchContainerT > OctreeT
Definition
octree_base.h:64
pcl::octree::OctreeContainerEmpty
Octree container class that does not store any information.
Definition
octree_container.h:129
pcl::octree::OctreeContainerPointIndex
Octree container class that does store a single point index.
Definition
octree_container.h:183
pcl::octree::OctreePointCloud::OctreePointCloud
OctreePointCloud(const double resolution_arg)
Octree pointcloud constructor.
Definition
octree_pointcloud.hpp:54
pcl::octree::OctreePointCloudSinglePoint::OctreePointCloudSinglePoint
OctreePointCloudSinglePoint(const double resolution_arg)
Constructor.
Definition
octree_pointcloud_singlepoint.h:78
pcl::octree::OctreePointCloudSinglePoint::~OctreePointCloudSinglePoint
~OctreePointCloudSinglePoint() override=default
Empty class constructor.
pcl::octree::OctreePointCloudSinglePoint::SingleBuffer
OctreePointCloudSinglePoint< PointT, LeafContainerT, BranchContainerT, OctreeBase< LeafContainerT, BranchContainerT > > SingleBuffer
Definition
octree_pointcloud_singlepoint.h:67
pcl::octree
Definition
color_coding.h:47
pcl
Definition
convolution.h:46