LabeledPointCloudMerger.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package VisionX::ArmarXObjects::LabeledPointCloudMerger
17 * @author Rainer Kartmann ( rainer dot kartmann at kit dot edu )
18 * @date 2019
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22
23#pragma once
24
25
26#include <pcl/point_types.h>
27
28#include <IceUtil/Time.h>
29
31#include <ArmarXCore/interface/observers/ObserverInterface.h>
32// #include <RobotAPI/libraries/core/visualization/DebugDrawerTopic.h>
33
36
37namespace visionx
38{
39
40 /**
41 * @class LabeledPointCloudMergerPropertyDefinitions
42 * @brief Property definitions of `LabeledPointCloudMerger`.
43 */
50
51 /**
52 * @defgroup Component-LabeledPointCloudMerger LabeledPointCloudMerger
53 * @ingroup VisionX-Components
54 * Merges several unlabeled and labeled point clouds from different
55 * providers into one labeled point cloud. Unlabeled point clouds
56 * receive constant labels (which do not already occur in other point
57 * clouds).
58 *
59 * @class LabeledPointCloudMerger
60 * @ingroup Component-LabeledPointCloudMerger
61 * @brief Brief description of class LabeledPointCloudMerger.
62 *
63 * Detailed description of class LabeledPointCloudMerger.
64 */
66 {
67 /// The used point type.
68 using PointT = pcl::PointXYZRGBL;
69
70 public:
71 /// @see armarx::ManagedIceObject::getDefaultName()
72 std::string getDefaultName() const override;
73
74
75 protected:
76 /// @see visionx::PointCloudProcessor::onInitPointCloudProcessor()
77 void onInitPointCloudProcessor() override;
78
79 /// @see visionx::PointCloudProcessor::onConnectPointCloudProcessor()
80 void onConnectPointCloudProcessor() override;
81
82 /// @see visionx::PointCloudProcessor::onDisconnectPointCloudProcessor()
83 void onDisconnectPointCloudProcessor() override;
84
85 /// @see visionx::PointCloudProcessor::onExitPointCloudProcessor()
86 void onExitPointCloudProcessor() override;
87
88
89 /// @see visionx::PointCloudProcessor::process()
90 void process() override;
91
92
93 /// @see PropertyUser::createPropertyDefinitions()
95
96
97 private:
99 // armarx::DebugDrawerTopic debugDrawer;
100
101 IceUtil::Time providerWaitTime;
102
104 };
105} // namespace visionx
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Brief description of class LabeledPointCloudMerger.
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
std::string getDefaultName() const override
Merges several labeled or unlabeled point clouds into one labeled point cloud.
The PointCloudProcessor class provides an interface for access to PointCloudProviders via Ice and sha...
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
ArmarX headers.