00001 #ifndef _FACETSGROUPBASE_HPP_
00002 #define _FACETSGROUPBASE_HPP_
00003
00004 #include <vector>
00005 #include "facetsmap/types.hpp"
00006 #include "facetsmap/repere.hpp"
00007
00008 namespace jafar {
00009 namespace facetsmap {
00010 class FacetsGroupBase {
00012 friend std::ostream& operator<< (std::ostream& , const FacetsGroupBase&);
00013 public:
00014 inline FacetsGroupBase(int time) : m_repere(), m_time(time) {}
00019 ~FacetsGroupBase();
00020 public:
00021 int time() { return m_time; };
00025 bool add(jafar::facetsmap::Facet* f);
00030 vFacets_it remove(const vFacets_it& it);
00034 void changeRepere(jafar::facetsmap::Repere* r);
00035 inline const jafar::facetsmap::Repere* repere() const { return m_repere; }
00036 inline jafar::facetsmap::Repere* repere() { return m_repere; }
00037 inline int size() const { return m_groups.size(); };
00038 inline vFacets_cit begin() const { return m_groups.begin(); };
00039 inline vFacets_it begin() { return m_groups.begin(); };
00040 inline vFacets_cit end() const { return m_groups.end(); };
00041 inline vFacets_it end() { return m_groups.end(); };
00042 private:
00043 vFacets m_groups;
00044 Repere* m_repere;
00045 int m_time;
00046 };
00047 }
00048 }
00049
00050 #endif