ambient_sound_display_groovy.h
Go to the documentation of this file.
00001 #ifndef __AMBIENT_SOUND_DISPLAY__
00002 #define __AMBIENT_SOUND_DISPLAY__
00003 
00004 #ifndef Q_MOC_RUN  // See: https://bugreports.qt-project.org/browse/QTBUG-22829
00005 #include <message_filters/subscriber.h>
00006 #include <tf/message_filter.h>
00007 #include <jsk_hark_msgs/HarkPower.h>
00008 #include <ambient_sound_visual.h>
00009 #include <boost/circular_buffer.hpp>
00010 #include <rviz/message_filter_display.h>
00011 #endif
00012 
00013 namespace Ogre
00014 {
00015 class SceneNode;
00016 }
00017 
00018 namespace rviz
00019 {
00020     class ColorProperty;
00021     class FloatProperty;
00022     class IntProperty;
00023     class ROSTopicStringProperty;
00024 }
00025 
00026 // All the source in this plugin is in its own namespace.  This is not
00027 // required but is good practice.
00028 namespace jsk_rviz_plugins
00029 {
00030 
00031 class AmbientSoundVisual;
00032 
00033 //class AmbientSoundDisplay: public rviz::Display
00034 class AmbientSoundDisplay: public rviz::MessageFilterDisplay<jsk_hark_msgs::HarkPower>
00035 {
00036 Q_OBJECT
00037 public:
00038   // Constructor.  pluginlib::ClassLoader creates instances by calling
00039   // the default constructor, so make sure you have one.
00040   AmbientSoundDisplay();
00041   virtual ~AmbientSoundDisplay();
00042 
00043   // Overrides of public virtual functions from the Display class.
00044   virtual void onInitialize();
00045   //virtual void fixedFrameChanged();
00046   virtual void reset();
00047   //virtual void createProperties();
00048 
00049   // Setter and getter functions for user-editable properties.
00050 /*
00051   void setTopic(const std::string& topic);
00052   const std::string& getTopic() { return topic_; }
00053 
00054   void setColor( const rviz::Color& color );
00055   const rviz::Color& getColor() { return color_; }
00056 
00057   void setAlpha( float alpha );
00058   float getAlpha() { return alpha_; }
00059 
00060   void setHistoryLength( int history_length );
00061   int getHistoryLength() const { return history_length_; }
00062 
00063   void setWidth( float width );
00064   float getWidth() const { return width_; }
00065 
00066   void setScale( float scale );
00067   float getScale() const { return scale_; }
00068 
00069   void setBias( float bias );
00070   float getBias() const { return bias_; }
00071 
00072   void setGrad( float grad );
00073   float getGrad() const { return grad_; }
00074 */
00075 
00076   // Overrides of protected virtual functions from Display.  As much
00077   // as possible, when Displays are not enabled, they should not be
00078   // subscribed to incoming data and should not show anything in the
00079   // 3D view.  These functions are where these connections are made
00080   // and broken.
00081 /*
00082   protected:
00083     virtual void onEnable();
00084     virtual void onDisable();
00085 */
00086 
00087 private Q_SLOTS:
00088   void updateColorAndAlpha();
00089   void updateAppearance();
00090   void updateHistoryLength();
00091   bool validateFloats( const jsk_hark_msgs::HarkPower& );
00092 
00093   // Function to handle an incoming ROS message.
00094 private:
00095   //void incomingMessage( const jsk_hark_msgs::HarkPower::ConstPtr& msg );
00096   void processMessage( const jsk_hark_msgs::HarkPower::ConstPtr& msg );
00097 
00098   // Internal helpers which do the work of subscribing and
00099   // unsubscribing from the ROS topic.
00100 //  void subscribe();
00101 //  void unsubscribe();
00102 
00103   // A helper to clear this display back to the initial state.
00104   //void clear();
00105 
00106   // Helper function to apply color and alpha to all visuals.
00107 
00108   // Storage for the list of visuals.  This display supports an
00109   // adjustable history length, so we need one visual per history
00110   // item.
00111   //boost::circular_buffer<AmbientSoundVisual*> visuals_;
00112   boost::circular_buffer<boost::shared_ptr<AmbientSoundVisual> > visuals_;
00113 
00114   // A node in the Ogre scene tree to be the parent of all our visuals.
00115   //Ogre::SceneNode* scene_node_;
00116 
00117   // Data input: Subscriber and tf message filter.
00118   //message_filters::Subscriber<jsk_hark_msgs::HarkPower> sub_;
00119   //tf::MessageFilter<jsk_hark_msgs::HarkPower>* tf_filter_;
00120   //int messages_received_;
00121 
00122   // User-editable property variables.
00123 /*
00124   rviz::Color color_;
00125   std::string topic_;
00126   float alpha_;
00127   int history_length_;
00128   float width_,scale_,bias_,grad_;
00129 */
00130 
00131   // Property objects for user-editable properties.
00132   rviz::ColorProperty *color_property_;
00133   rviz::ROSTopicStringProperty *topic_property_;
00134   rviz::FloatProperty *alpha_property_;
00135   rviz::IntProperty *history_length_property_;
00136   rviz::FloatProperty *width_property_;
00137   rviz::FloatProperty *scale_property_;
00138   rviz::FloatProperty *bias_property_;
00139   rviz::FloatProperty *grad_property_;
00140 };
00141 // END_TUTORIAL
00142 
00143 } // end namespace jsk_rviz_plugins
00144 
00145 #endif // __AMBIENT_SOUND_DISPLAY__
00146 // %EndTag(FULL_SOURCE)%


jsk_rviz_plugins
Author(s): Kei Okada , Yohei Kakiuchi , Shohei Fujii , Ryohei Ueda
autogenerated on Sun Sep 13 2015 22:29:03