marker_detection_display.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2016, Lukas Pfeifhofer <lukas.pfeifhofer@devlabs.pro>
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *
00008  * 1. Redistributions of source code must retain the above copyright notice,
00009  * this list of conditions and the following disclaimer.
00010  *
00011  * 2. Redistributions in binary form must reproduce the above copyright notice,
00012  * this list of conditions and the following disclaimer in the documentation
00013  * and/or other materials provided with the distribution.
00014  *
00015  * 3. Neither the name of the copyright holder nor the names of its contributors
00016  * may be used to endorse or promote products derived from this software without
00017  * specific prior written permission.
00018  *
00019  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00020  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00021  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00022  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
00023  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00024  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00025  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00026  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00027  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00028  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00029  * POSSIBILITY OF SUCH DAMAGE.
00030  */
00031 
00032 #ifndef MARKER_DETECTION_DISPLAY_H
00033 #define MARKER_DETECTION_DISPLAY_H
00034 
00035 #ifndef Q_MOC_RUN
00036 
00037 #include <marker_msgs/MarkerDetection.h>
00038 #include <rviz/message_filter_display.h>
00039 #include <boost/circular_buffer.hpp>
00040 
00041 #endif
00042 
00043 #include <rviz/properties/enum_property.h>
00044 
00045 namespace Ogre {
00046     class SceneNode;
00047 }
00048 
00049 namespace rviz {
00050     class ColorProperty;
00051 
00052     class EnumProperty;
00053 
00054     class FloatProperty;
00055 
00056     class IntProperty;
00057 }
00058 
00059 // All the source in this plugin is in its own namespace.  This is not
00060 // required but is good practice.
00061 namespace marker_rviz_plugin {
00062 
00063     class MarkerDetectionVisual;
00064 
00065 // Here we declare our new subclass of rviz::Display.  Every display
00066 // which can be listed in the "Displays" panel is a subclass of
00067 // rviz::Display.
00068     class MarkerDetectionDisplay : public rviz::MessageFilterDisplay<marker_msgs::MarkerDetection> {
00069     Q_OBJECT
00070     public:
00071         // Constructor.  pluginlib::ClassLoader creates instances by calling
00072         // the default constructor, so make sure you have one.
00073         MarkerDetectionDisplay();
00074 
00075         virtual ~MarkerDetectionDisplay();
00076 
00077         // Overrides of protected virtual functions from Display.  As much
00078         // as possible, when Displays are not enabled, they should not be
00079         // subscribed to incoming data and should not show anything in the
00080         // 3D view.  These functions are where these connections are made
00081         // and broken.
00082     protected:
00083         virtual void onInitialize();
00084 
00085         // A helper to clear this display back to the initial state.
00086         virtual void reset();
00087 
00088         // These Qt slots get connected to signals indicating changes in the user-editable properties.
00089     private Q_SLOTS:
00090 
00091         void updateVisual();
00092 
00093 
00094     private:
00095         // Function to handle an incoming ROS message.
00096         void processMessage(const marker_msgs::MarkerDetection::ConstPtr &msg);
00097 
00098         rviz::BoolProperty *_showAxesProperty;
00099         rviz::BoolProperty *_showMarkerProperty;
00100         rviz::BoolProperty *_showLabelProperty;
00101         rviz::ColorProperty* _colourLabelProperty;
00102         rviz::FloatProperty *_markerSizeProperty;
00103 
00104         MarkerDetectionVisual *_visual;
00105     };
00106 
00107 } // end namespace marker_rviz_plugin
00108 
00109 #endif // MARKER_DETECTION_DISPLAY_H
00110 // %EndTag(FULL_SOURCE)%


marker_rviz_plugin
Author(s): Markus Bader, Lukas Pfeifhofer, Markus Macsek
autogenerated on Wed Nov 9 2016 04:02:20