23 #include <tulip/Face.h> 24 #include <tulip/Node.h> 25 #include <tulip/Edge.h> 27 #include <tulip/MutableContainer.h> 33 class TLP_SCOPE Ordering {
35 typedef struct FaceAndPos_ {
41 std::vector<edge> getDummyEdges() {
45 Ordering(PlanarConMap *G, PluginProgress *pluginProgress =
nullptr,
int minProgress = 0,
46 int deltaProgress = 0,
int maxProgress = 0);
49 inline size_t size() {
52 inline std::vector<node> operator[](
const unsigned int i)
const {
55 inline std::vector<node> &operator[](
const unsigned int i) {
60 std::vector<std::vector<node>> _data;
62 MutableContainer<int> oute;
63 MutableContainer<int> outv;
64 MutableContainer<bool> visitedNodes;
65 MutableContainer<bool> visitedFaces;
66 MutableContainer<bool> markedFaces;
67 MutableContainer<int> seqP;
68 MutableContainer<bool> isOuterFace;
69 MutableContainer<bool> contour;
70 MutableContainer<bool> is_selectable;
71 MutableContainer<bool> is_selectable_visited;
72 MutableContainer<bool> is_selectable_face;
73 MutableContainer<bool> is_selectable_visited_face;
74 MutableContainer<node> left;
75 MutableContainer<node> right;
77 FaceAndPos minMarkedFace;
80 std::vector<edge> dummy_edge;
82 node getLastOfQ(Face f, node prec, node n, edge e);
83 node getLastOfP(Face f, node prec, node n, edge e);
84 std::vector<node> getPathFrom(std::vector<node> fn,
int from);
87 void updateOutAndVisitedFaces(Face f);
88 void updateContourLeftRight(node prec, node n, edge e, node last);
89 void updateNewSelectableNodes(node node_f, node no_tmp2, edge ed_tmp, node node_last,
90 std::vector<Face> v_faces,
bool one_face =
false,
91 bool was_visited =
false,
bool selection_face =
false);
92 void updateSelectableFaces(std::vector<Face> v_faces);
96 void setMinMarkedFace(Face f);
98 struct augmentableAndNodes_ getAugAndNodes(Face f);
99 void augment(Face f, node prec, node n, node prec_last, node last,
int nbNewFace,
bool pair);
100 void selectAndUpdate(Face f);
101 void selectAndUpdate(node n);
102 bool isSelectable(node n);
105 void init_v1(std::vector<node> fn);
106 void init_selectableNodes();
107 void init_selectableFaces();
108 void init_outv_oute();
110 void init_outerface();