MRPT  2.0.5
CPointCloudFilterBase.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #pragma once
10 
11 #include <mrpt/system/datetime.h>
12 #include <memory>
13 #include <vector>
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  */
34 {
35  public:
38  virtual ~CPointCloudFilterBase();
39 
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{nullptr};
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{false};
48 
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 } // namespace maps
67 } // namespace mrpt
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...
bool do_not_delete
(Default:false) If true, only out_deletion_mask is filled in, but the filtered-out points will be not...
mrpt::vision::TStereoCalibParams params
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
Definition: datetime.h:40
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...
Definition: CPointsMap.h:67
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.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:85
Virtual base class for all point-cloud filtering algorithm.



Page generated by Doxygen 1.8.14 for MRPT 2.0.5 Git: b26ce1112 Mon Jul 6 09:39:08 2020 +0200 at lun jul 6 09:45:13 CEST 2020