00001 /******************************************************************************* 00002 * NewLaserDataPainter.h 00003 * 00004 * (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 * 00007 * Additional information: 00008 * $Id: $ 00009 *******************************************************************************/ 00010 00011 #ifndef NewLaserDataPainter_H 00012 #define NewLaserDataPainter_H 00013 00014 #include <QtOpenGL> 00015 #include <vector> 00016 00017 #include <sensor_msgs/LaserScan.h> 00018 00019 #include "PainterPlugin.h" 00020 #include "Vec.h" 00021 00027 class NewLaserDataPainter: public PainterPlugin 00028 { 00029 Q_OBJECT 00030 00031 public: 00032 00034 NewLaserDataPainter(); 00035 00037 ~NewLaserDataPainter(); 00038 00040 virtual void paint ( float next2DLayer ); 00041 00042 void updateData(const sensor_msgs::LaserScan::ConstPtr& msg); 00043 00044 public slots: 00045 00047 // virtual void processMessage ( Message* newMessage ); 00048 00049 private: 00050 00052 std::vector<BaseLib::Math::Vec3f> m_WorldPoints; 00054 std::vector<float> m_Ranges; 00056 float m_RangeMax; 00058 unsigned int m_NumLaserPoints; 00060 bool m_FirstScan; 00062 std::vector<BaseLib::Math::Vec3f> m_UnitLaserDirections; 00064 float m_ScaleFactor; 00065 }; 00066 00067 #endif