Point Cloud Library (PCL)
1.11.1-dev
io
include
pcl
cuda
io
predicate.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2011, Willow Garage, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of Willow Garage, Inc. nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*
34
* $Id$
35
*
36
*/
37
38
#pragma once
39
40
//#if THRUST_DEVICE_COMPILER == THRUST_DEVICE_COMPILER_NVCC
41
//#undef __MMX__
42
#include <pcl/cuda/point_cloud.h>
43
#include <pcl/cuda/point_types.h>
44
//#else
45
//#endif
46
47
48
namespace
pcl
49
{
50
namespace
cuda
51
{
52
template
<
class
T>
53
struct
isNotZero
54
{
55
__inline__ __host__ __device__
bool
56
operator()
(T x) {
return
(x != 0); }
57
};
58
59
struct
isInlier
60
{
61
__inline__ __host__ __device__
bool
62
operator()
(
int
x) {
return
(x != -1); }
63
};
64
65
struct
isNotInlier
66
{
67
__inline__ __host__ __device__
bool
68
operator()
(
int
x) {
return
(x == -1); }
69
};
70
71
struct
SetColor
72
{
73
SetColor
(
const
OpenNIRGB
& color) :
color_
(color) {}
74
__inline__ __host__ __device__
void
75
operator()
(
PointXYZRGB
& point) { point.
rgb
.
r
=
color_
.
r
; point.
rgb
.
g
=
color_
.
g
; point.
rgb
.
b
=
color_
.
b
;}
76
OpenNIRGB
color_
;
77
};
78
79
struct
ChangeColor
80
{
81
ChangeColor
(
const
OpenNIRGB
& color) :
color_
(color) {}
82
__inline__ __host__ __device__
PointXYZRGB
&
83
operator()
(
PointXYZRGB
& point)
84
{
85
point.
rgb
.
r
=
color_
.
r
; point.
rgb
.
g
=
color_
.
g
; point.
rgb
.
b
=
color_
.
b
;
86
return
point;
87
}
88
OpenNIRGB
color_
;
89
};
90
91
}
// namespace
92
}
// namespace
pcl::cuda::ChangeColor::color_
OpenNIRGB color_
Definition:
predicate.h:88
pcl
Definition:
convolution.h:46
pcl::cuda::PointXYZRGB::rgb
RGB rgb
Definition:
point_types.h:65
pcl::cuda::OpenNIRGB::b
unsigned char b
Definition:
point_cloud.h:57
pcl::cuda::ChangeColor
Definition:
predicate.h:79
pcl::cuda::RGB::g
char g
Definition:
point_type_rgb.h:57
pcl::cuda::isNotZero::operator()
__inline__ __host__ __device__ bool operator()(T x)
Definition:
predicate.h:56
pcl::cuda::SetColor::color_
OpenNIRGB color_
Definition:
predicate.h:76
pcl::cuda::OpenNIRGB::g
unsigned char g
Definition:
point_cloud.h:57
pcl::cuda::isNotInlier::operator()
__inline__ __host__ __device__ bool operator()(int x)
Definition:
predicate.h:68
pcl::cuda::ChangeColor::operator()
__inline__ __host__ __device__ PointXYZRGB & operator()(PointXYZRGB &point)
Definition:
predicate.h:83
pcl::cuda::isNotInlier
Definition:
predicate.h:65
pcl::cuda::PointXYZRGB
Default point xyz-rgb structure.
Definition:
point_types.h:48
pcl::cuda::SetColor::operator()
__inline__ __host__ __device__ void operator()(PointXYZRGB &point)
Definition:
predicate.h:75
pcl::cuda::isInlier
Check if a certain tuple is a point inlier.
Definition:
predicate.h:59
pcl::cuda::SetColor::SetColor
SetColor(const OpenNIRGB &color)
Definition:
predicate.h:73
pcl::cuda::RGB::b
char b
Definition:
point_type_rgb.h:58
pcl::cuda::isNotZero
Definition:
predicate.h:53
pcl::cuda::isInlier::operator()
__inline__ __host__ __device__ bool operator()(int x)
Definition:
predicate.h:62
pcl::cuda::SetColor
Definition:
predicate.h:71
pcl::cuda::ChangeColor::ChangeColor
ChangeColor(const OpenNIRGB &color)
Definition:
predicate.h:81
pcl::cuda::RGB::r
char r
Definition:
point_type_rgb.h:56
pcl::cuda::OpenNIRGB::r
unsigned char r
Definition:
point_cloud.h:57
pcl::cuda::OpenNIRGB
Simple structure holding RGB data.
Definition:
point_cloud.h:55