#include <src/libslic3r/SurfaceMesh.hpp>
◆ SurfaceMesh() [1/2]
59 {}
const indexed_triangle_set & m_its
Definition SurfaceMesh.hpp:158
const std::vector< Vec3i > m_face_neighbors
Definition SurfaceMesh.hpp:157
std::vector< Vec3i > its_face_neighbors_par(const indexed_triangle_set &its)
Definition TriangleMesh.cpp:1525
◆ SurfaceMesh() [2/2]
◆ degree() [1/2]
| size_t Slic3r::SurfaceMesh::degree |
( |
Face_index |
f | ) |
const |
|
inline |
137 {
138 size_t total = 0;
139 for (unsigned char i=0; i<3; ++i) {
140 size_t d =
degree(Vertex_index(
f, i));
141 if (d == 0)
142 return 0;
144 }
145 assert(total - 6 >= 0);
146 return total - 6;
147 }
size_t degree(Vertex_index v) const
Definition SurfaceMesh.hpp:118
static double f(double x, double z_sin, double z_cos, bool vertical, bool flip)
Definition FillGyroid.cpp:12
References degree(), and Slic3r::f().
◆ degree() [2/2]
119 {
120
121
122
123 Halfedge_index h_first =
halfedge(v);
124 boost::container::small_vector<Halfedge_index, 10> he_visited;
127 while (! h.is_invalid() && h != h_first) {
128 he_visited.emplace_back(h);
130 if (std::find(he_visited.begin(), he_visited.end(), h) == he_visited.end())
131 return 0;
133 }
134 return h.is_invalid() ? 0 :
degree - 1;
135 }
Halfedge_index halfedge(Vertex_index v) const
Definition SurfaceMesh.hpp:69
Halfedge_index next_around_target(Halfedge_index h) const
Definition SurfaceMesh.hpp:92
References degree(), halfedge(), Slic3r::Halfedge_index::is_invalid(), and next_around_target().
Referenced by degree(), and degree().
◆ face()
◆ get_face_neighbors()
| Vec3i Slic3r::SurfaceMesh::get_face_neighbors |
( |
Face_index |
face_id | ) |
const |
|
inline |
◆ halfedge() [1/3]
◆ halfedge() [2/3]
97 {
99 assert(! hi.is_invalid());
100
101 const Vertex_index orig_target = this->
target(hi);
102 Vertex_index current_target = orig_target;
103
106 if (hi.is_invalid())
107 break;
108 current_target = this->
target(hi);
110 return Halfedge_index();
111 }
112
113 return hi;
114 }
Vertex_index source(Halfedge_index h) const
Definition SurfaceMesh.hpp:63
Halfedge_index next_around_source(Halfedge_index h) const
Definition SurfaceMesh.hpp:94
Vertex_index target(Halfedge_index h) const
Definition SurfaceMesh.hpp:64
bool is_same_vertex(const Vertex_index &a, const Vertex_index &b) const
Definition SurfaceMesh.hpp:151
unsigned char m_vertex_idx
Definition SurfaceMesh.hpp:49
Face_index m_face
Definition SurfaceMesh.hpp:48
References Slic3r::Halfedge_index::is_invalid(), is_same_vertex(), Slic3r::Vertex_index::m_face, Slic3r::Vertex_index::m_vertex_idx, next_around_source(), source(), and target().
◆ halfedge() [3/3]
◆ is_border()
◆ is_same_vertex()
◆ next()
◆ next_around_source()
◆ next_around_target()
◆ operator=()
◆ opposite()
71 {
72 if (h.is_invalid())
73 return h;
74
76 Halfedge_index h_candidate =
halfedge(Face_index(face_idx));
77
78 if (h_candidate.is_invalid())
79 return Halfedge_index();
80
81 for (int i=0; i<3; ++i) {
83
85 return h_candidate;
86 }
87 h_candidate =
next(h_candidate);
88 }
89 return Halfedge_index();
90 }
References halfedge(), Slic3r::Halfedge_index::is_invalid(), is_same_vertex(), Slic3r::Halfedge_index::m_face, m_face_neighbors, Slic3r::Halfedge_index::m_side, next(), source(), and target().
Referenced by next_around_source(), next_around_target(), prev_around_source(), prev_around_target(), and Slic3r::Measure::MeasuringImpl::update_planes().
◆ point()
◆ prev()
◆ prev_around_source()
Halfedge_index prev(Halfedge_index h) const
Definition SurfaceMesh.hpp:68
References opposite(), and prev().
◆ prev_around_target()
◆ source()
◆ target()
◆ m_face_neighbors
| const std::vector<Vec3i> Slic3r::SurfaceMesh::m_face_neighbors |
|
private |
◆ m_its
The documentation for this class was generated from the following file: