48 vector<Index>::iterator starting_iterator = next(vertices.begin());
49 Index min_vertex_index =
50 min_element(starting_iterator, vertices.end()) - vertices.begin();
51 if (vertices.front() > vertices.at(min_vertex_index)) {
52 rotate(vertices.begin(), vertices.begin() + min_vertex_index,
55 vertices.push_back(vertices.front());
87 size_t length = vertices.size();
88 size_t max_index = length / 2;
89 for (
size_t index = 0; index < max_index; ++index) {
90 if (vertices.at(index) < vertices.at(length - 1 - index)) {
92 }
else if (vertices.at(index) > vertices.at(length - 1 - index)) {
100 assert(vertices.size() >= 2 &&
101 "Edge vertices must consist of at least two vertices.");
106 if (vertices.back() == vertices.front() && vertices.size() > 2) {
111 reverse(vertices.begin(), vertices.end());
118 for (
size_t index = 0; index < (
vertices_.size() - 1); ++index) {
126 vector<Index>::const_iterator vertex_iterator =
128 return vertex_iterator !=
vertices_.end();
135 for (
size_t index = 0; index <
vertices_.size(); ++index) {
144 return !(*
this == edge);
160 for (
size_t index = 0; index <
vertices_.size(); ++index) {
172 return (*
this < edge || *
this == edge);
176 return !(*
this <= edge);
180 return !(*
this < edge);
184 os <<
"Vertices" << endl;
base class for all analysis tools