Point Cloud Library (PCL)
1.15.1
Toggle main menu visibility
Loading...
Searching...
No Matches
pcl
registration
correspondence_sorting.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Point Cloud Library (PCL) - www.pointclouds.org
5
* Copyright (c) 2010, Willow Garage, Inc.
6
* Copyright (c) 2012-, Open Perception, Inc.
7
*
8
* All rights reserved.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
*
14
* * Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* * Redistributions in binary form must reproduce the above
17
* copyright notice, this list of conditions and the following
18
* disclaimer in the documentation and/or other materials provided
19
* with the distribution.
20
* * Neither the name of the copyright holder(s) nor the names of its
21
* contributors may be used to endorse or promote products derived
22
* from this software without specific prior written permission.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
36
*
37
* $Id$
38
*
39
*/
40
41
#pragma once
42
43
#if defined __GNUC__
44
#pragma GCC system_header
45
#endif
46
47
#include <pcl/registration/correspondence_types.h>
48
49
namespace
pcl
{
50
namespace
registration
{
51
/** @b sortCorrespondencesByQueryIndex : a functor for sorting correspondences by query
52
* index \author Dirk Holz \ingroup registration
53
*/
54
struct
sortCorrespondencesByQueryIndex
{
55
using
first_argument_type
=
pcl::Correspondence
;
56
using
second_argument_type
=
pcl::Correspondence
;
57
using
result_type
= bool;
58
bool
59
operator()
(
pcl::Correspondence
a,
pcl::Correspondence
b)
60
{
61
return
(a.
index_query
< b.
index_query
);
62
}
63
};
64
65
/** @b sortCorrespondencesByMatchIndex : a functor for sorting correspondences by match
66
* index \author Dirk Holz \ingroup registration
67
*/
68
struct
sortCorrespondencesByMatchIndex
{
69
using
first_argument_type
=
pcl::Correspondence
;
70
using
second_argument_type
=
pcl::Correspondence
;
71
using
result_type
= bool;
72
bool
73
operator()
(
pcl::Correspondence
a,
pcl::Correspondence
b)
74
{
75
return
(a.
index_match
< b.
index_match
);
76
}
77
};
78
79
/** @b sortCorrespondencesByDistance : a functor for sorting correspondences by distance
80
* \author Dirk Holz
81
* \ingroup registration
82
*/
83
struct
sortCorrespondencesByDistance
{
84
using
first_argument_type
=
pcl::Correspondence
;
85
using
second_argument_type
=
pcl::Correspondence
;
86
using
result_type
= bool;
87
bool
88
operator()
(
pcl::Correspondence
a,
pcl::Correspondence
b)
89
{
90
return
(a.
distance
< b.
distance
);
91
}
92
};
93
94
/** @b sortCorrespondencesByQueryIndexAndDistance : a functor for sorting
95
* correspondences by query index _and_ distance \author Dirk Holz \ingroup registration
96
*/
97
struct
sortCorrespondencesByQueryIndexAndDistance
{
98
using
first_argument_type
=
pcl::Correspondence
;
99
using
second_argument_type
=
pcl::Correspondence
;
100
using
result_type
= bool;
101
inline
bool
102
operator()
(
pcl::Correspondence
a,
pcl::Correspondence
b)
103
{
104
if
(a.
index_query
< b.
index_query
)
105
return
(
true
);
106
else
if
((a.
index_query
== b.
index_query
) && (a.
distance
< b.
distance
))
107
return
(
true
);
108
return
(
false
);
109
}
110
};
111
112
/** @b sortCorrespondencesByMatchIndexAndDistance : a functor for sorting
113
* correspondences by match index _and_ distance \author Dirk Holz \ingroup registration
114
*/
115
struct
sortCorrespondencesByMatchIndexAndDistance
{
116
using
first_argument_type
=
pcl::Correspondence
;
117
using
second_argument_type
=
pcl::Correspondence
;
118
using
result_type
= bool;
119
inline
bool
120
operator()
(
pcl::Correspondence
a,
pcl::Correspondence
b)
121
{
122
if
(a.
index_match
< b.
index_match
)
123
return
(
true
);
124
else
if
((a.
index_match
== b.
index_match
) && (a.
distance
< b.
distance
))
125
return
(
true
);
126
return
(
false
);
127
}
128
};
129
130
}
// namespace registration
131
}
// namespace pcl
pcl::registration
Definition
convergence_criteria.h:46
pcl
Definition
convolution.h:46
pcl::Correspondence
Correspondence represents a match between two entities (e.g., points, descriptors,...
Definition
correspondence.h:61
pcl::Correspondence::index_query
index_t index_query
Index of the query (source) point.
Definition
correspondence.h:63
pcl::Correspondence::distance
float distance
Definition
correspondence.h:69
pcl::Correspondence::index_match
index_t index_match
Index of the matching (target) point.
Definition
correspondence.h:65
pcl::registration::sortCorrespondencesByDistance
sortCorrespondencesByDistance : a functor for sorting correspondences by distance
Definition
correspondence_sorting.h:83
pcl::registration::sortCorrespondencesByDistance::first_argument_type
pcl::Correspondence first_argument_type
Definition
correspondence_sorting.h:84
pcl::registration::sortCorrespondencesByDistance::second_argument_type
pcl::Correspondence second_argument_type
Definition
correspondence_sorting.h:85
pcl::registration::sortCorrespondencesByDistance::operator()
bool operator()(pcl::Correspondence a, pcl::Correspondence b)
Definition
correspondence_sorting.h:88
pcl::registration::sortCorrespondencesByDistance::result_type
bool result_type
Definition
correspondence_sorting.h:86
pcl::registration::sortCorrespondencesByMatchIndexAndDistance
sortCorrespondencesByMatchIndexAndDistance : a functor for sorting correspondences by match index and...
Definition
correspondence_sorting.h:115
pcl::registration::sortCorrespondencesByMatchIndexAndDistance::second_argument_type
pcl::Correspondence second_argument_type
Definition
correspondence_sorting.h:117
pcl::registration::sortCorrespondencesByMatchIndexAndDistance::operator()
bool operator()(pcl::Correspondence a, pcl::Correspondence b)
Definition
correspondence_sorting.h:120
pcl::registration::sortCorrespondencesByMatchIndexAndDistance::first_argument_type
pcl::Correspondence first_argument_type
Definition
correspondence_sorting.h:116
pcl::registration::sortCorrespondencesByMatchIndexAndDistance::result_type
bool result_type
Definition
correspondence_sorting.h:118
pcl::registration::sortCorrespondencesByMatchIndex
sortCorrespondencesByMatchIndex : a functor for sorting correspondences by match index
Definition
correspondence_sorting.h:68
pcl::registration::sortCorrespondencesByMatchIndex::operator()
bool operator()(pcl::Correspondence a, pcl::Correspondence b)
Definition
correspondence_sorting.h:73
pcl::registration::sortCorrespondencesByMatchIndex::second_argument_type
pcl::Correspondence second_argument_type
Definition
correspondence_sorting.h:70
pcl::registration::sortCorrespondencesByMatchIndex::result_type
bool result_type
Definition
correspondence_sorting.h:71
pcl::registration::sortCorrespondencesByMatchIndex::first_argument_type
pcl::Correspondence first_argument_type
Definition
correspondence_sorting.h:69
pcl::registration::sortCorrespondencesByQueryIndexAndDistance
sortCorrespondencesByQueryIndexAndDistance : a functor for sorting correspondences by query index and...
Definition
correspondence_sorting.h:97
pcl::registration::sortCorrespondencesByQueryIndexAndDistance::first_argument_type
pcl::Correspondence first_argument_type
Definition
correspondence_sorting.h:98
pcl::registration::sortCorrespondencesByQueryIndexAndDistance::second_argument_type
pcl::Correspondence second_argument_type
Definition
correspondence_sorting.h:99
pcl::registration::sortCorrespondencesByQueryIndexAndDistance::result_type
bool result_type
Definition
correspondence_sorting.h:100
pcl::registration::sortCorrespondencesByQueryIndexAndDistance::operator()
bool operator()(pcl::Correspondence a, pcl::Correspondence b)
Definition
correspondence_sorting.h:102
pcl::registration::sortCorrespondencesByQueryIndex
sortCorrespondencesByQueryIndex : a functor for sorting correspondences by query index
Definition
correspondence_sorting.h:54
pcl::registration::sortCorrespondencesByQueryIndex::second_argument_type
pcl::Correspondence second_argument_type
Definition
correspondence_sorting.h:56
pcl::registration::sortCorrespondencesByQueryIndex::operator()
bool operator()(pcl::Correspondence a, pcl::Correspondence b)
Definition
correspondence_sorting.h:59
pcl::registration::sortCorrespondencesByQueryIndex::first_argument_type
pcl::Correspondence first_argument_type
Definition
correspondence_sorting.h:55
pcl::registration::sortCorrespondencesByQueryIndex::result_type
bool result_type
Definition
correspondence_sorting.h:57