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