TransformPublisherDisplay.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016, Bielefeld University, CITEC
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Willow Garage, Inc. nor the names of its
14  * contributors may be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27  * POSSIBILITY OF SUCH DAMAGE.
28  *
29  * Author: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
30  */
31 
32 #pragma once
33 
34 #include <rviz/display.h>
35 #include <ros/ros.h>
36 #include <visualization_msgs/InteractiveMarker.h>
37 #include <visualization_msgs/InteractiveMarkerFeedback.h>
38 #include <geometry_msgs/PoseStamped.h>
39 #include <tf2/buffer_core.h>
40 
41 // forward declarations of classes
42 namespace rviz {
43 class Property;
44 class StringProperty;
45 class BoolProperty;
46 class FloatProperty;
47 class VectorProperty;
48 class TfFrameProperty;
49 class EnumProperty;
50 
51 class InteractiveMarker;
52 } // namespace rviz
53 
55 
56 namespace agni_tf_tools {
57 
58 class RotationProperty;
59 
61 {
62  Q_OBJECT
63 
64 public:
66  ~TransformPublisherDisplay() override;
67 
68  void reset() override;
69 
70 protected:
71  void onInitialize() override;
72  void onEnable() override;
73  void onDisable() override;
74  void update(float wall_dt, float ros_dt) override;
75 
76  void addFrameControls(visualization_msgs::InteractiveMarker& im, double scale, bool interactive);
77  void add6DOFControls(visualization_msgs::InteractiveMarker& im);
78  bool createInteractiveMarker(int type);
79  bool fillPoseStamped(std_msgs::Header& header, geometry_msgs::Pose& pose);
80 
81 protected Q_SLOTS:
82  void setStatus(rviz::StatusProperty::Level level, const QString& name, const QString& text) override;
83  void
84  setStatusStd(rviz::StatusProperty::Level /*level*/, const std::string& name, const std::string& text);
85  void onRefFrameChanged();
86  void onAdaptTransformChanged();
87  void onFramesChanged();
88  void onTransformChanged();
89  void onMarkerFeedback(visualization_msgs::InteractiveMarkerFeedback& feedback);
90  void onBroadcastEnableChanged();
91  void onMarkerTypeChanged();
92  void onMarkerScaleChanged();
93 
94 private:
95  // properties
101  std::string prev_parent_frame_;
105 
106  // tf publisher
110 
111  // interactive marker stuff
114 };
115 
116 } // namespace agni_tf_tools
uint32_t TransformableCallbackHandle
tf2::TransformableCallbackHandle tf_callback_handle_
void update(const std::string &key, const XmlRpc::XmlRpcValue &v)
tf2::TransformableRequestHandle tf_request_handle_
boost::shared_ptr< rviz::InteractiveMarker > imarker_
uint64_t TransformableRequestHandle


agni_tf_tools
Author(s): Robert Haschke
autogenerated on Tue Apr 13 2021 02:29:55