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();