00001 #ifndef BRICS_OODL_LASERSCANNERDATA_H
00002 #define BRICS_OODL_LASERSCANNERDATA_H
00003
00004
00005 #include <vector>
00006 #include "generic/Units.hpp"
00007 namespace brics_oodl {
00008
00013 class LaserScannerData {
00014 public:
00015 LaserScannerData();
00016
00017 ~LaserScannerData();
00018
00019 void getMesasurementIterator(std::vector< quantity<length> >::iterator& rangesIterator, std::vector< quantity<plane_angle> >::iterator& rangeAnglesIterator);
00020
00021 void getMeasurements(std::vector< quantity<length> >& ranges, std::vector< quantity<plane_angle> >& rangeAngles) const;
00022
00023 void setMeasurements(const std::vector< quantity<length> >& ranges, const std::vector< quantity<plane_angle> >& rangeAngles);
00024
00025 void setMeasurements(double* ranges, double* rangeAngles, const unsigned int& numRanges, const boost::units::si::length& rangeUnit, const boost::units::si::plane_angle& angleUnit);
00026
00027 void setMeasurements(unsigned int* ranges, double* rangeAngles, const unsigned int& numRanges, const boost::units::si::length& rangeUnit, const boost::units::si::plane_angle& angleUnit);
00028
00029 void setMeasurements(const std::vector<double>& ranges, const std::vector<double>& rangeAngles, const boost::units::si::length& rangeUnit, const boost::units::si::plane_angle& angleUnit);
00030
00031 quantity<si::time> getTimeStamp() const;
00032
00033
00034 protected:
00035 std::vector< quantity<length> > ranges;
00036
00037 std::vector< quantity<plane_angle> > rangeAngles;
00038
00039 quantity<si::time> timestamp;
00040
00041 };
00042
00043 }
00044 #endif