23 #include <tulip/Face.h> 
   25 #include <tulip/Node.h> 
   26 #include <tulip/Edge.h> 
   30 #include <tulip/MutableContainer.h> 
   32 #ifndef DOXYGEN_NOTFOR_USER 
   38 class TLP_SCOPE Ordering {
 
   41   typedef struct FaceAndPos_ {
 
   47   std::vector<edge> getDummyEdges() {
 
   51   Ordering(PlanarConMap * G, PluginProgress* pluginProgress = 0,
 
   52            int minProgress = 0, 
int deltaProgress = 0, 
int maxProgress = 0);
 
   55   inline size_t size() {
 
   58   inline std::vector<node> operator[](
const unsigned int i)
 const {
 
   61   inline std::vector<node>& operator[](
const unsigned int i) {
 
   66   std::vector<std::vector<node> > _data;
 
   68   MutableContainer<int> oute;
 
   69   MutableContainer<int> outv;
 
   70   MutableContainer<bool> visitedNodes;
 
   71   MutableContainer<bool> visitedFaces;
 
   72   MutableContainer<bool> markedFaces;
 
   73   MutableContainer<int> seqP;
 
   74   MutableContainer<bool> isOuterFace;
 
   75   MutableContainer<bool> contour;
 
   76   MutableContainer<bool> is_selectable;
 
   77   MutableContainer<bool> is_selectable_visited;
 
   78   MutableContainer<bool> is_selectable_face;
 
   79   MutableContainer<bool> is_selectable_visited_face;
 
   80   MutableContainer<node> left;
 
   81   MutableContainer<node> right;
 
   83   FaceAndPos minMarkedFace ;
 
   86   std::vector<edge> dummy_edge;
 
   88   node getLastOfQ(Face f, node prec, node n, edge e);
 
   89   node getLastOfP(Face f, node prec, node n,edge e);
 
   90   std::vector<node> getPathFrom(std::vector<node> fn, 
int from);
 
   93   void updateOutAndVisitedFaces(Face f);
 
   94   void updateContourLeftRight(node prec, node n, edge e, node last);
 
   95   void updateNewSelectableNodes(node node_f, node no_tmp2,edge ed_tmp, node node_last,std::vector<Face> v_faces, 
bool one_face = 
false, 
bool was_visited = 
false, 
bool selection_face = 
false);
 
   96   void updateSelectableFaces(std::vector<Face> v_faces);
 
  100   void setMinMarkedFace(Face f);
 
  102   struct augmentableAndNodes_ getAugAndNodes(Face f);
 
  103   void augment(Face f, node prec, node n, node prec_last, node last, 
int nbNewFace, 
bool pair);
 
  104   void selectAndUpdate(Face f);
 
  105   void selectAndUpdate(node n);
 
  106   bool isSelectable(node n);
 
  109   void init_v1(std::vector<node> fn);
 
  110   void init_selectableNodes();
 
  111   void init_selectableFaces();
 
  112   void init_outv_oute();
 
  114   void init_outerface();