00001 00004 #ifndef __COMBI_MAP_GEN__ 00005 #define __COMBI_MAP_GEN__ 00006 00007 #include <list_label.hh> 00008 #include <tab_dart.hh> 00009 #include "combi_map.hh" 00010 00011 class pyramid; 00012 00013 typedef list_label::iterator vertex_iterator; 00014 00016 class combi_map_gen: public combi_map 00017 { 00018 public: 00020 pyramid *pyr; 00022 tab_dart sig; 00024 tab_dart alph; 00026 tab_dart m; 00028 tab_label m_1; 00030 list_label vertex_set; 00032 int nb_edge; 00034 unsigned long background; 00035 00037 combi_map_gen(pyramid *P):pyr(P),nb_edge(0),background(0) 00038 {} 00040 virtual ~combi_map_gen() 00041 {} 00043 virtual dart sigma(dart d) const 00044 { 00045 return sig(d); 00046 } 00048 virtual dart alpha(dart d) const 00049 { 00050 return alph(d); 00051 } 00053 virtual int give_nb_edge() const 00054 { 00055 return nb_edge; 00056 } 00058 unsigned long give_background() const 00059 { 00060 return background; 00061 } 00063 int give_nb_vertices() const 00064 { 00065 return vertex_set.give_cardinal(); 00066 } 00067 }; 00068 00069 00070 #endif // __COMBI_MAP_GEN__