#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/SurfaceMesh.hpp>
◆ SurfaceMesh() [1/2]
| Slic3r::SurfaceMesh::SurfaceMesh |
( |
const indexed_triangle_set & | its | ) |
|
|
inlineexplicit |
◆ SurfaceMesh() [2/2]
| Slic3r::SurfaceMesh::SurfaceMesh |
( |
const SurfaceMesh & | | ) |
|
|
delete |
◆ degree() [1/2]
| size_t Slic3r::SurfaceMesh::degree |
( |
Face_index | f | ) |
const |
|
inline |
142 {
143 size_t total = 0;
144 for (unsigned char i=0; i<3; ++i) {
145 size_t d =
degree(Vertex_index(
f, i));
146 if (d == 0)
147 return 0;
148 total += d;
149 }
150 assert(total - 6 >= 0);
151 return total - 6;
152 }
size_t degree(Vertex_index v) const
Definition SurfaceMesh.hpp:123
static double f(double x, double z_sin, double z_cos, bool vertical, bool flip)
Definition FillGyroid.cpp:124
References degree(), and Slic3r::f().
◆ degree() [2/2]
124 {
125
126
127
128 Halfedge_index h_first =
halfedge(v);
129 boost::container::small_vector<Halfedge_index, 10> he_visited;
132 while (! h.is_invalid() && h != h_first) {
133 he_visited.emplace_back(h);
135 if (std::find(he_visited.begin(), he_visited.end(), h) == he_visited.end())
136 return 0;
138 }
139 return h.is_invalid() ? 0 :
degree - 1;
140 }
Halfedge_index halfedge(Vertex_index v) const
Definition SurfaceMesh.hpp:74
Halfedge_index next_around_target(Halfedge_index h) const
Definition SurfaceMesh.hpp:97
References degree(), halfedge(), Slic3r::Halfedge_index::is_invalid(), and next_around_target().
Referenced by degree(), and degree().
◆ face()
◆ get_face_neighbors()
| Vec3i32 Slic3r::SurfaceMesh::get_face_neighbors |
( |
Face_index | face_id | ) |
const |
|
inline |
◆ halfedge() [1/3]
◆ halfedge() [2/3]
102 {
104 assert(! hi.is_invalid());
105
106 const Vertex_index orig_target = this->
target(hi);
107 Vertex_index current_target = orig_target;
108
111 if (hi.is_invalid())
112 break;
113 current_target = this->
target(hi);
115 return Halfedge_index();
116 }
117
118 return hi;
119 }
Vertex_index source(Halfedge_index h) const
Definition SurfaceMesh.hpp:68
Halfedge_index next_around_source(Halfedge_index h) const
Definition SurfaceMesh.hpp:99
Vertex_index target(Halfedge_index h) const
Definition SurfaceMesh.hpp:69
bool is_same_vertex(const Vertex_index &a, const Vertex_index &b) const
Definition SurfaceMesh.hpp:156
References Slic3r::Halfedge_index::is_invalid(), is_same_vertex(), next_around_source(), source(), and target().
◆ halfedge() [3/3]
◆ is_border()
◆ is_same_vertex()
◆ next()
◆ next_around_source()
◆ next_around_target()
◆ operator=()
◆ opposite()
76 {
77 if (h.is_invalid())
78 return h;
79
81 Halfedge_index h_candidate =
halfedge(Face_index(face_idx));
82
83 if (h_candidate.is_invalid())
84 return Halfedge_index();
85
86 for (int i=0; i<3; ++i) {
88
90 return h_candidate;
91 }
92 h_candidate =
next(h_candidate);
93 }
94 return Halfedge_index();
95 }
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(), and prev_around_target().
◆ point()
| const stl_vertex & Slic3r::SurfaceMesh::point |
( |
Vertex_index | v | ) |
const |
|
inline |
◆ prev()
◆ prev_around_source()
Halfedge_index prev(Halfedge_index h) const
Definition SurfaceMesh.hpp:73
References opposite(), and prev().
◆ prev_around_target()
◆ source()
◆ target()
◆ m_face_neighbors
| const std::vector<Vec3i32> Slic3r::SurfaceMesh::m_face_neighbors |
|
private |
◆ m_its
| const indexed_triangle_set& Slic3r::SurfaceMesh::m_its |
|
private |
The documentation for this class was generated from the following file: