Point Cloud Library (PCL)
1.7.1
Main Page
Modules
Namespaces
Classes
features
include
pcl
features
ppfrgb.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Point Cloud Library (PCL) - www.pointclouds.org
5
* Copyright (c) 2012-, Open Perception, 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 the copyright holder(s) 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
*/
37
38
#ifndef PCL_PPFRGB_H_
39
#define PCL_PPFRGB_H_
40
41
#include <pcl/features/feature.h>
42
#include <pcl/features/boost.h>
43
44
namespace
pcl
45
{
46
template
<
typename
Po
int
InT,
typename
Po
int
NT,
typename
Po
int
OutT>
47
class
PPFRGBEstimation
:
public
FeatureFromNormals
<PointInT, PointNT, PointOutT>
48
{
49
public
:
50
using
PCLBase<PointInT>::indices_
;
51
using
Feature<PointInT, PointOutT>::input_
;
52
using
Feature<PointInT, PointOutT>::feature_name_
;
53
using
Feature<PointInT, PointOutT>::getClassName
;
54
using
FeatureFromNormals<PointInT, PointNT, PointOutT>::normals_
;
55
56
typedef
pcl::PointCloud<PointOutT>
PointCloudOut
;
57
58
/**
59
* \brief Empty Constructor
60
*/
61
PPFRGBEstimation
();
62
63
64
private
:
65
/** \brief The method called for actually doing the computations
66
* \param output the resulting point cloud (which should be of type pcl::PPFRGBSignature);
67
*/
68
void
69
computeFeature (
PointCloudOut
&output);
70
};
71
72
template
<
typename
Po
int
InT,
typename
Po
int
NT,
typename
Po
int
OutT>
73
class
PPFRGBRegionEstimation
:
public
FeatureFromNormals
<PointInT, PointNT, PointOutT>
74
{
75
public
:
76
typedef
boost::shared_ptr<PPFRGBRegionEstimation<PointInT, PointNT, PointOutT> >
Ptr
;
77
typedef
boost::shared_ptr<const PPFRGBRegionEstimation<PointInT, PointNT, PointOutT> >
ConstPtr
;
78
using
PCLBase<PointInT>::indices_
;
79
using
Feature<PointInT, PointOutT>::input_
;
80
using
Feature<PointInT, PointOutT>::feature_name_
;
81
using
Feature<PointInT, PointOutT>::search_radius_
;
82
using
Feature<PointInT, PointOutT>::tree_
;
83
using
Feature<PointInT, PointOutT>::getClassName
;
84
using
FeatureFromNormals<PointInT, PointNT, PointOutT>::normals_
;
85
86
typedef
pcl::PointCloud<PointOutT>
PointCloudOut
;
87
88
PPFRGBRegionEstimation
();
89
90
private
:
91
void
92
computeFeature (
PointCloudOut
&output);
93
};
94
}
95
96
#ifdef PCL_NO_PRECOMPILE
97
#include <pcl/features/impl/ppfrgb.hpp>
98
#endif
99
100
#endif // PCL_PPFRGB_H_