00001 00024 #ifndef CCNY_RGBD_FEATURE_HISTORY_H 00025 #define CCNY_RGBD_FEATURE_HISTORY_H 00026 00027 #include <vector> 00028 00029 #include "ccny_rgbd/rgbd_util.h" 00030 00031 namespace ccny_rgbd { 00032 00037 class FeatureHistory 00038 { 00039 typedef Eigen::aligned_allocator<PointCloudFeature> PointCloudFeatureAllocator; 00040 00041 public: 00042 00043 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00044 00047 FeatureHistory(); 00048 00052 void add(const PointCloudFeature& cloud); 00053 00056 void reset(); 00057 00063 inline bool isEmpty() const { return history_.empty(); } 00064 00069 inline void setCapacity(unsigned int capacity) { capacity_ = capacity; } 00070 00075 inline int getSize() const { return history_.size(); } 00076 00081 void getAll(PointCloudFeature& cloud); 00082 00083 private: 00084 00085 unsigned int index_; 00086 unsigned int capacity_; 00087 00089 std::vector<PointCloudFeature, PointCloudFeatureAllocator> history_; 00090 }; 00091 00092 } // namespace ccny_rgbd 00093 00094 #endif // CCNY_RGBD_FEATURE_HISTORY_H