00001 00004 /***************************************************************************** 00005 ** Ifdefs 00006 *****************************************************************************/ 00007 00008 #ifndef qglv_OBJECTS_PARTICLES_HPP_ 00009 #define qglv_OBJECTS_PARTICLES_HPP_ 00010 00011 /***************************************************************************** 00012 ** Includes 00013 *****************************************************************************/ 00014 00015 #include <memory> 00016 #include <sophus/se3.hpp> 00017 #include <vector> 00018 00019 /***************************************************************************** 00020 ** Namespaces 00021 *****************************************************************************/ 00022 00023 namespace qglv { 00024 00025 /***************************************************************************** 00026 ** Edges 00027 *****************************************************************************/ 00028 00034 class Particles { 00035 00036 public: 00037 Particles(); 00038 virtual ~Particles(); 00039 void add( std::vector< Sophus::SE3f > & newTransforms ); 00040 void draw(); 00041 void clear(); 00042 bool empty(); 00043 00044 private: 00045 virtual void _glGenLists(); 00046 bool updated; 00047 int gl_id; 00049 00050 std::vector< Sophus::SE3f > T; 00051 }; 00052 00053 00054 00055 /***************************************************************************** 00056 ** Typedefs 00057 *****************************************************************************/ 00058 00059 typedef std::shared_ptr<Particles> ParticlesPtr; 00060 00061 00062 } // namespace qglv 00063 00064 #endif /* qglv_OBJECTS_PARTICLES_HPP_ */