00001 #ifndef _FACETS_MAP_HPP_
00002 #define _FACETS_MAP_HPP_
00003
00004 #include <vector>
00005
00006 #include "facetsmap/facetsanalyser.hpp"
00007
00008 namespace jafar {
00009 namespace facetsmap {
00010 class FacetsTracker;
00011 struct FacetObservation {
00012 int id;
00013 jblas::vec observation;
00014 };
00015 class FacetsMap : public FacetsAnalyser {
00016 public:
00017 public:
00018 FacetsMap( const FacetsParams* params, const jafar::camera::StereoBench& stereoBench);
00019 virtual ~FacetsMap() {};
00020 public:
00021 virtual void processImage(jblas::mat44& robotpos, jblas::mat44& robotmovement, const boost::numeric::ublas::bounded_matrix<double,4,4>& leftToRight, const jafar::image::Image& imgl, const jafar::image::Image& imgr, const jafar::camera::StereoBench& stereoBench, int time, bool updateFacet, std::map<int, jblas::vec > predictions);
00022 public:
00023 inline const std::vector<int>& suppressedAmers() const
00024 { return m_suppressedAmers; }
00025 inline const std::vector<FacetObservation>& newObservations() const
00026 { return m_newObservations; };
00027 inline const std::vector<FacetObservation>& observations() const
00028 { return m_observations; };
00029 void removeFacet( unsigned int id );
00030 private:
00031 std::vector<int> m_suppressedAmers;
00032 std::vector<FacetObservation> m_newObservations, m_observations;
00033 vFacets m_facetsSeenLastTime;
00034 vFacets m_facets;
00035 FacetsTracker* m_facetsTracker;
00036 };
00037 };
00038 };
00039
00040
00041 #endif