Main MRPT website
>
C++ reference for MRPT 1.9.9
mrpt
maps
CPointCloudFilterBase.h
Go to the documentation of this file.
1
/* +------------------------------------------------------------------------+
2
| Mobile Robot Programming Toolkit (MRPT) |
3
| http://www.mrpt.org/ |
4
| |
5
| Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6
| See: http://www.mrpt.org/Authors - All rights reserved. |
7
| Released under BSD License. See details in http://www.mrpt.org/License |
8
+------------------------------------------------------------------------+ */
9
#pragma once
10
11
#include <
mrpt/system/datetime.h
>
12
#include <vector>
13
#include <memory>
14
15
namespace
mrpt
16
{
17
namespace
poses
18
{
19
class
CPose3D;
20
}
21
namespace
maps
22
{
23
class
CPointsMap;
24
}
25
26
namespace
maps
27
{
28
/** Virtual base class for all point-cloud filtering algorithm. See derived
29
* classes for implementations.
30
* \sa CPointsMap
31
* \ingroup mrpt_maps_grp
32
*/
33
class
CPointCloudFilterBase
34
{
35
public
:
36
using
Ptr
= std::shared_ptr<CPointCloudFilterBase>;
37
CPointCloudFilterBase
();
38
virtual
~CPointCloudFilterBase
();
39
40
struct
TExtraFilterParams
41
{
42
/** If a pointer is provided to a user-given container, the list of
43
* points to be deleted will be marked here with `true`. */
44
std::vector<bool>*
out_deletion_mask
;
45
/** (Default:false) If true, only `out_deletion_mask` is filled in, but
46
* the filtered-out points will be not actually removed. */
47
bool
do_not_delete
;
48
49
TExtraFilterParams
();
50
};
51
52
/** Apply the filtering algorithm to the pointcloud. */
53
virtual
void
filter
(
54
/** [in,out] The input pointcloud, which will be modified upon
55
return after filtering. */
56
mrpt::maps::CPointsMap
* inout_pointcloud,
57
/** [in] The timestamp of the input pointcloud */
58
const
mrpt::system::TTimeStamp
pc_timestamp,
59
/** [in] If nullptr, the PC is assumed to be given in global
60
coordinates. Otherwise, it will be transformed from local
61
coordinates to global using this transformation. */
62
const
mrpt::poses::CPose3D
& pc_reference_pose,
63
/** [in,out] additional in/out parameters */
64
TExtraFilterParams
*
params
=
nullptr
) = 0;
65
};
66
}
67
}
// End of namespace
mrpt::maps::CPointCloudFilterBase::Ptr
std::shared_ptr< CPointCloudFilterBase > Ptr
Definition:
CPointCloudFilterBase.h:36
mrpt::maps::CPointCloudFilterBase::TExtraFilterParams::do_not_delete
bool do_not_delete
(Default:false) If true, only out_deletion_mask is filled in, but the filtered-out points will be not...
Definition:
CPointCloudFilterBase.h:47
mrpt::maps::CPointsMap
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors.
Definition:
CPointsMap.h:64
mrpt::maps::CPointCloudFilterBase::TExtraFilterParams
Definition:
CPointCloudFilterBase.h:40
mrpt
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Definition:
CKalmanFilterCapable.h:30
mrpt::maps::CPointCloudFilterBase::TExtraFilterParams::TExtraFilterParams
TExtraFilterParams()
Definition:
CPointCloudFilterBase.cpp:18
mrpt::system::TTimeStamp
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1,...
Definition:
datetime.h:31
mrpt::maps::CPointCloudFilterBase
Virtual base class for all point-cloud filtering algorithm.
Definition:
CPointCloudFilterBase.h:33
mrpt::poses::CPose3D
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition:
CPose3D.h:88
mrpt::maps::CPointCloudFilterBase::~CPointCloudFilterBase
virtual ~CPointCloudFilterBase()
Definition:
CPointCloudFilterBase.cpp:17
mrpt::maps::CPointCloudFilterBase::CPointCloudFilterBase
CPointCloudFilterBase()
Definition:
CPointCloudFilterBase.cpp:16
mrpt::maps::CPointCloudFilterBase::TExtraFilterParams::out_deletion_mask
std::vector< bool > * out_deletion_mask
If a pointer is provided to a user-given container, the list of points to be deleted will be marked h...
Definition:
CPointCloudFilterBase.h:44
mrpt::maps::CPointCloudFilterBase::filter
virtual void filter(mrpt::maps::CPointsMap *inout_pointcloud, const mrpt::system::TTimeStamp pc_timestamp, const mrpt::poses::CPose3D &pc_reference_pose, TExtraFilterParams *params=nullptr)=0
Apply the filtering algorithm to the pointcloud.
params
GLenum const GLfloat * params
Definition:
glext.h:3534
datetime.h
Page generated by
Doxygen 1.8.17
for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST