![]() |
Prusa Slicer 2.6.0
|
#include <src/libslic3r/TriangleSelector.hpp>
Inheritance diagram for Slic3r::TriangleSelector:
Collaboration diagram for Slic3r::TriangleSelector:Classes | |
| class | Capsule2D |
| class | Capsule3D |
| class | Circle |
| struct | ClippingPlane |
| class | Cursor |
| class | DoublePointCursor |
| class | SinglePointCursor |
| class | Sphere |
| class | Triangle |
| struct | Vertex |
Public Types | |
| enum | CursorType { CIRCLE , SPHERE , POINTER } |
Public Member Functions | |
| std::pair< std::vector< Vec3i >, std::vector< Vec3i > > | precompute_all_neighbors () const |
| void | precompute_all_neighbors_recursive (int facet_idx, const Vec3i &neighbors, const Vec3i &neighbors_propagated, std::vector< Vec3i > &neighbors_out, std::vector< Vec3i > &neighbors_normal_out) const |
| void | set_edge_limit (float edge_limit) |
| TriangleSelector (const TriangleMesh &mesh) | |
| int | select_unsplit_triangle (const Vec3f &hit, int facet_idx) const |
| int | select_unsplit_triangle (const Vec3f &hit, int facet_idx, const Vec3i &neighbors) const |
| void | select_patch (int facet_start, std::unique_ptr< Cursor > &&cursor, EnforcerBlockerType new_state, const Transform3d &trafo_no_translate, bool triangle_splitting, float highlight_by_angle_deg=0.f) |
| void | seed_fill_select_triangles (const Vec3f &hit, int facet_start, const Transform3d &trafo_no_translate, const ClippingPlane &clp, float seed_fill_angle, float highlight_by_angle_deg=0.f, bool force_reselection=false) |
| void | bucket_fill_select_triangles (const Vec3f &hit, int facet_start, const ClippingPlane &clp, bool propagate, bool force_reselection=false) |
| bool | has_facets (EnforcerBlockerType state) const |
| int | num_facets (EnforcerBlockerType state) const |
| indexed_triangle_set | get_facets (EnforcerBlockerType state) const |
| indexed_triangle_set | get_facets_strict (EnforcerBlockerType state) const |
| std::vector< Vec2i > | get_seed_fill_contour () const |
| void | set_facet (int facet_idx, EnforcerBlockerType state) |
| void | reset () |
| void | garbage_collect () |
| std::pair< std::vector< std::pair< int, int > >, std::vector< bool > > | serialize () const |
| void | deserialize (const std::pair< std::vector< std::pair< int, int > >, std::vector< bool > > &data, bool needs_reset=true) |
| void | seed_fill_unselect_all_triangles () |
| void | seed_fill_apply_on_triangles (EnforcerBlockerType new_state) |
Static Public Member Functions | |
| static bool | has_facets (const std::pair< std::vector< std::pair< int, int > >, std::vector< bool > > &data, EnforcerBlockerType test_state) |
Protected Attributes | |
| std::vector< Vertex > | m_vertices |
| std::vector< Triangle > | m_triangles |
| const TriangleMesh & | m_mesh |
| const std::vector< Vec3i > | m_neighbors |
| const std::vector< Vec3f > | m_face_normals |
| int | m_invalid_triangles |
| float | m_edge_limit_sqr = 1.f |
| int | m_orig_size_vertices = 0 |
| int | m_orig_size_indices = 0 |
| std::unique_ptr< Cursor > | m_cursor |
| float | m_old_cursor_radius_sqr = 0 |
Private Types | |
| enum class | Partition { First , Second } |
Private Member Functions | |
| bool | select_triangle (int facet_idx, EnforcerBlockerType type, bool triangle_splitting) |
| bool | select_triangle_recursive (int facet_idx, const Vec3i &neighbors, EnforcerBlockerType type, bool triangle_splitting) |
| void | undivide_triangle (int facet_idx) |
| void | split_triangle (int facet_idx, const Vec3i &neighbors) |
| void | remove_useless_children (int facet_idx) |
| bool | is_facet_clipped (int facet_idx, const ClippingPlane &clp) const |
| int | push_triangle (int a, int b, int c, int source_triangle, EnforcerBlockerType state=EnforcerBlockerType{0}) |
| void | perform_split (int facet_idx, const Vec3i &neighbors, EnforcerBlockerType old_state) |
| Vec3i | child_neighbors (const Triangle &tr, const Vec3i &neighbors, int child_idx) const |
| Vec3i | child_neighbors_propagated (const Triangle &tr, const Vec3i &neighbors_propagated, int child_idx, const Vec3i &child_neighbors) const |
| int | neighbor_child (const Triangle &tr, int vertexi, int vertexj, Partition partition) const |
| int | neighbor_child (int itriangle, int vertexi, int vertexj, Partition partition) const |
| int | triangle_midpoint (const Triangle &tr, int vertexi, int vertexj) const |
| int | triangle_midpoint (int itriangle, int vertexi, int vertexj) const |
| int | triangle_midpoint_or_allocate (int itriangle, int vertexi, int vertexj) |
| std::pair< int, int > | triangle_subtriangles (int itriangle, int vertexi, int vertexj) const |
| void | append_touching_subtriangles (int itriangle, int vertexi, int vertexj, std::vector< int > &touching_subtriangles_out) const |
| void | append_touching_edges (int itriangle, int vertexi, int vertexj, std::vector< Vec2i > &touching_edges_out) const |
| bool | verify_triangle_neighbors (const Triangle &tr, const Vec3i &neighbors) const |
| bool | verify_triangle_midpoints (const Triangle &tr) const |
| void | get_facets_strict_recursive (const Triangle &tr, const Vec3i &neighbors, EnforcerBlockerType state, std::vector< stl_triangle_vertex_indices > &out_triangles) const |
| void | get_facets_split_by_tjoints (const Vec3i &vertices, const Vec3i &neighbors, std::vector< stl_triangle_vertex_indices > &out_triangles) const |
| void | get_seed_fill_contour_recursive (int facet_idx, const Vec3i &neighbors, const Vec3i &neighbors_propagated, std::vector< Vec2i > &edges_out) const |
Static Private Member Functions | |
| static std::pair< int, int > | triangle_subtriangles (const Triangle &tr, int vertexi, int vertexj) |
Private Attributes | |
| int | m_free_triangles_head { -1 } |
| int | m_free_vertices_head { -1 } |
|
strongprivate |
|
explicit |
References reset().
Here is the call graph for this function:
|
private |
References append_touching_edges(), First, m_triangles, Second, triangle_midpoint(), and triangle_subtriangles().
Referenced by append_touching_edges(), and get_seed_fill_contour_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References append_touching_subtriangles(), First, m_triangles, Second, triangle_midpoint(), and triangle_subtriangles().
Referenced by append_touching_subtriangles(), and bucket_fill_select_triangles().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::bucket_fill_select_triangles | ( | const Vec3f & | hit, |
| int | facet_start, | ||
| const ClippingPlane & | clp, | ||
| bool | propagate, | ||
| bool | force_reselection = false |
||
| ) |
References append_touching_subtriangles(), Slic3r::TriangleSelector::ClippingPlane::is_active(), is_facet_clipped(), m_triangles, precompute_all_neighbors(), seed_fill_unselect_all_triangles(), select_unsplit_triangle(), and verify_triangle_neighbors().
Here is the call graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, First, m_triangles, neighbor_child(), Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Second, Slic3r::TriangleSelector::Triangle::special_side(), verify_triangle_neighbors(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by child_neighbors_propagated(), deserialize(), get_seed_fill_contour_recursive(), perform_split(), and precompute_all_neighbors_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References child_neighbors(), Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), and Slic3r::TriangleSelector::Triangle::special_side().
Here is the call graph for this function:| void Slic3r::TriangleSelector::deserialize | ( | const std::pair< std::vector< std::pair< int, int > >, std::vector< bool > > & | data, |
| bool | needs_reset = true |
||
| ) |
References child_neighbors(), Slic3r::TriangleSelector::Triangle::children, indexed_triangle_set::indices, Slic3r::TriangleMesh::its, m_mesh, m_neighbors, m_triangles, m_vertices, Slic3r::NONE, perform_split(), reset(), and indexed_triangle_set::vertices.
Referenced by Slic3r::FacetsAnnotation::get_facets(), and Slic3r::FacetsAnnotation::get_facets_strict().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::garbage_collect | ( | ) |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::is_split(), m_free_triangles_head, m_free_vertices_head, m_invalid_triangles, m_orig_size_indices, m_orig_size_vertices, m_triangles, m_vertices, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Triangle::valid(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by select_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:| indexed_triangle_set Slic3r::TriangleSelector::get_facets | ( | EnforcerBlockerType | state | ) | const |
References indexed_triangle_set::indices, m_triangles, m_vertices, and indexed_triangle_set::vertices.
Referenced by Slic3r::FacetsAnnotation::get_facets().
Here is the caller graph for this function:
|
private |
References First, get_facets_split_by_tjoints(), neighbor_child(), Slic3r::next_idx_modulo(), Second, and triangle_midpoint().
Referenced by get_facets_split_by_tjoints(), and get_facets_strict_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:| indexed_triangle_set Slic3r::TriangleSelector::get_facets_strict | ( | EnforcerBlockerType | state | ) | const |
References get_facets_strict_recursive(), indexed_triangle_set::indices, m_neighbors, m_orig_size_indices, m_triangles, m_vertices, and indexed_triangle_set::vertices.
Referenced by Slic3r::FacetsAnnotation::get_facets_strict().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, get_facets_split_by_tjoints(), get_facets_strict_recursive(), Slic3r::TriangleSelector::Triangle::get_state(), Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by get_facets_strict(), and get_facets_strict_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< Vec2i > Slic3r::TriangleSelector::get_seed_fill_contour | ( | ) | const |
References get_seed_fill_contour_recursive(), m_neighbors, m_orig_size_indices, m_triangles, and verify_triangle_neighbors().
Referenced by Slic3r::GUI::TriangleSelectorGUI::update_paint_contour().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References append_touching_edges(), child_neighbors(), Slic3r::TriangleSelector::Triangle::children, get_seed_fill_contour_recursive(), Slic3r::TriangleSelector::Triangle::is_selected_by_seed_fill(), Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Triangle::valid(), and verify_triangle_neighbors().
Referenced by get_seed_fill_contour(), and get_seed_fill_contour_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| bool Slic3r::TriangleSelector::has_facets | ( | EnforcerBlockerType | state | ) | const |
References m_triangles.
|
private |
References Slic3r::TriangleSelector::ClippingPlane::is_active(), Slic3r::TriangleSelector::ClippingPlane::is_mesh_point_clipped(), m_triangles, and m_vertices.
Referenced by bucket_fill_select_triangles(), and seed_fill_select_triangles().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, First, m_triangles, neighbor_child(), Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Triangle::special_side(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by child_neighbors(), get_facets_split_by_tjoints(), neighbor_child(), and neighbor_child().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References m_triangles, and neighbor_child().
Here is the call graph for this function:| int Slic3r::TriangleSelector::num_facets | ( | EnforcerBlockerType | state | ) | const |
References m_triangles.
|
private |
References child_neighbors(), Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, Slic3r::next_highest_power_of_2(), Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::prev_idx_modulo(), push_triangle(), Slic3r::TriangleSelector::Triangle::source_triangle, Slic3r::TriangleSelector::Triangle::special_side(), triangle_midpoint_or_allocate(), verify_triangle_neighbors(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by deserialize(), and split_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:| std::pair< std::vector< Vec3i >, std::vector< Vec3i > > Slic3r::TriangleSelector::precompute_all_neighbors | ( | ) | const |
References m_neighbors, m_orig_size_indices, m_triangles, precompute_all_neighbors_recursive(), and verify_triangle_neighbors().
Referenced by bucket_fill_select_triangles().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::precompute_all_neighbors_recursive | ( | int | facet_idx, |
| const Vec3i & | neighbors, | ||
| const Vec3i & | neighbors_propagated, | ||
| std::vector< Vec3i > & | neighbors_out, | ||
| std::vector< Vec3i > & | neighbors_normal_out | ||
| ) | const |
References child_neighbors(), Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), precompute_all_neighbors_recursive(), Slic3r::TriangleSelector::Triangle::valid(), and verify_triangle_neighbors().
Referenced by precompute_all_neighbors(), and precompute_all_neighbors_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References m_free_triangles_head, m_invalid_triangles, m_triangles, and m_vertices.
Referenced by perform_split(), and reset().
Here is the caller graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, Slic3r::NONE, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), remove_useless_children(), Slic3r::TriangleSelector::Triangle::set_state(), and undivide_triangle().
Referenced by remove_useless_children(), seed_fill_apply_on_triangles(), and select_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::reset | ( | ) |
References indexed_triangle_set::indices, Slic3r::TriangleMesh::its, m_free_triangles_head, m_free_vertices_head, m_invalid_triangles, m_mesh, m_orig_size_indices, m_orig_size_vertices, m_triangles, m_vertices, push_triangle(), and indexed_triangle_set::vertices.
Referenced by TriangleSelector(), and deserialize().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::seed_fill_apply_on_triangles | ( | EnforcerBlockerType | new_state | ) |
References m_triangles, and remove_useless_children().
Here is the call graph for this function:| void Slic3r::TriangleSelector::seed_fill_select_triangles | ( | const Vec3f & | hit, |
| int | facet_start, | ||
| const Transform3d & | trafo_no_translate, | ||
| const ClippingPlane & | clp, | ||
| float | seed_fill_angle, | ||
| float | highlight_by_angle_deg = 0.f, |
||
| bool | force_reselection = false |
||
| ) |
References cos(), Slic3r::Geometry::deg2rad(), EPSILON, Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::inverse(), Slic3r::TriangleSelector::ClippingPlane::is_active(), is_facet_clipped(), m_face_normals, m_neighbors, m_orig_size_indices, m_triangles, seed_fill_unselect_all_triangles(), and select_unsplit_triangle().
Here is the call graph for this function:| void Slic3r::TriangleSelector::seed_fill_unselect_all_triangles | ( | ) |
References m_triangles.
Referenced by bucket_fill_select_triangles(), and seed_fill_select_triangles().
Here is the caller graph for this function:| void Slic3r::TriangleSelector::select_patch | ( | int | facet_start, |
| std::unique_ptr< Cursor > && | cursor, | ||
| EnforcerBlockerType | new_state, | ||
| const Transform3d & | trafo_no_translate, | ||
| bool | triangle_splitting, | ||
| float | highlight_by_angle_deg = 0.f |
||
| ) |
References cos(), Slic3r::Geometry::deg2rad(), Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::inverse(), m_cursor, m_face_normals, m_neighbors, m_old_cursor_radius_sqr, m_orig_size_indices, m_triangles, select_triangle(), and set_edge_limit().
Referenced by Slic3r::TriangleSelectorWrapper::enforce_spot().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References garbage_collect(), m_invalid_triangles, m_neighbors, m_triangles, remove_useless_children(), select_triangle_recursive(), and verify_triangle_neighbors().
Referenced by select_patch().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::get_state(), Slic3r::TriangleSelector::Triangle::is_split(), m_cursor, m_triangles, m_vertices, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), select_triangle_recursive(), Slic3r::TriangleSelector::Triangle::set_state(), split_triangle(), undivide_triangle(), Slic3r::TriangleSelector::Triangle::valid(), and verify_triangle_neighbors().
Referenced by select_triangle(), and select_triangle_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:References m_neighbors, m_triangles, select_unsplit_triangle(), and verify_triangle_neighbors().
Referenced by bucket_fill_select_triangles(), seed_fill_select_triangles(), select_unsplit_triangle(), and select_unsplit_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:| int Slic3r::TriangleSelector::select_unsplit_triangle | ( | const Vec3f & | hit, |
| int | facet_idx, | ||
| const Vec3i & | neighbors | ||
| ) | const |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::is_point_inside_triangle(), Slic3r::TriangleSelector::Triangle::is_split(), m_triangles, m_vertices, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), select_unsplit_triangle(), Slic3r::TriangleSelector::Triangle::valid(), and verify_triangle_neighbors().
Here is the call graph for this function:| std::pair< std::vector< std::pair< int, int > >, std::vector< bool > > Slic3r::TriangleSelector::serialize | ( | ) | const |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::get_state(), Slic3r::TriangleSelector::Triangle::is_split(), m_orig_size_indices, m_triangles, Slic3r::NONE, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), serialize(), and Slic3r::TriangleSelector::Triangle::special_side().
Referenced by Slic3r::FacetsAnnotation::set().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::TriangleSelector::set_edge_limit | ( | float | edge_limit | ) |
References m_edge_limit_sqr.
Referenced by select_patch().
Here is the caller graph for this function:| void Slic3r::TriangleSelector::set_facet | ( | int | facet_idx, |
| EnforcerBlockerType | state | ||
| ) |
References m_orig_size_indices, m_triangles, and undivide_triangle().
Here is the call graph for this function:References Slic3r::TriangleSelector::Triangle::get_state(), m_cursor, m_edge_limit_sqr, m_triangles, m_vertices, perform_split(), Slic3r::TriangleSelector::Triangle::set_division(), verify_triangle_neighbors(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by select_triangle_recursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, m_triangles, Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Triangle::special_side(), triangle_midpoint(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by append_touching_edges(), append_touching_subtriangles(), get_facets_split_by_tjoints(), triangle_midpoint(), triangle_midpoint(), triangle_midpoint_or_allocate(), and verify_triangle_midpoints().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References m_triangles, and triangle_midpoint().
Here is the call graph for this function:
|
private |
References EPSILON, m_free_vertices_head, m_vertices, and triangle_midpoint().
Referenced by perform_split().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::next_idx_modulo(), Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Triangle::special_side(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by append_touching_edges(), append_touching_subtriangles(), and triangle_subtriangles().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References m_triangles, and triangle_subtriangles().
Here is the call graph for this function:
|
private |
References Slic3r::TriangleSelector::Triangle::children, Slic3r::TriangleSelector::Triangle::is_split(), m_free_triangles_head, m_free_vertices_head, m_invalid_triangles, m_triangles, Slic3r::TriangleSelector::Triangle::m_valid, m_vertices, Slic3r::TriangleSelector::Triangle::number_of_split_sides(), Slic3r::TriangleSelector::Vertex::ref_cnt, Slic3r::TriangleSelector::Triangle::set_division(), undivide_triangle(), Slic3r::TriangleSelector::Triangle::valid(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by remove_useless_children(), select_triangle_recursive(), set_facet(), and undivide_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:References EPSILON, m_vertices, Slic3r::next_idx_modulo(), triangle_midpoint(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by verify_triangle_neighbors().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References m_triangles, Slic3r::next_idx_modulo(), Slic3r::prev_idx_modulo(), verify_triangle_midpoints(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by bucket_fill_select_triangles(), child_neighbors(), get_seed_fill_contour(), get_seed_fill_contour_recursive(), perform_split(), precompute_all_neighbors(), precompute_all_neighbors_recursive(), select_triangle(), select_triangle_recursive(), select_unsplit_triangle(), select_unsplit_triangle(), and split_triangle().
Here is the call graph for this function:
Here is the caller graph for this function:
|
protected |
Referenced by select_patch(), select_triangle_recursive(), and split_triangle().
|
protected |
Referenced by set_edge_limit(), and split_triangle().
Referenced by seed_fill_select_triangles(), and select_patch().
|
private |
Referenced by garbage_collect(), push_triangle(), reset(), and undivide_triangle().
|
private |
Referenced by garbage_collect(), reset(), triangle_midpoint_or_allocate(), and undivide_triangle().
|
protected |
Referenced by garbage_collect(), push_triangle(), reset(), select_triangle(), and undivide_triangle().
|
protected |
Referenced by deserialize(), and reset().
|
protected |
Referenced by select_patch().
|
protected |
|
protected |
Referenced by garbage_collect(), and reset().
|
protected |
Referenced by append_touching_edges(), append_touching_subtriangles(), bucket_fill_select_triangles(), child_neighbors(), deserialize(), garbage_collect(), get_facets(), get_facets_strict(), get_facets_strict_recursive(), get_seed_fill_contour(), get_seed_fill_contour_recursive(), has_facets(), is_facet_clipped(), neighbor_child(), neighbor_child(), num_facets(), perform_split(), precompute_all_neighbors(), precompute_all_neighbors_recursive(), push_triangle(), remove_useless_children(), reset(), seed_fill_apply_on_triangles(), seed_fill_select_triangles(), seed_fill_unselect_all_triangles(), select_patch(), select_triangle(), select_triangle_recursive(), select_unsplit_triangle(), select_unsplit_triangle(), serialize(), set_facet(), split_triangle(), triangle_midpoint(), triangle_midpoint(), triangle_subtriangles(), undivide_triangle(), Slic3r::GUI::TriangleSelectorMmGui::update_render_data(), and verify_triangle_neighbors().
|
protected |
Referenced by deserialize(), garbage_collect(), get_facets(), get_facets_strict(), is_facet_clipped(), push_triangle(), reset(), select_triangle_recursive(), select_unsplit_triangle(), split_triangle(), triangle_midpoint_or_allocate(), undivide_triangle(), Slic3r::GUI::TriangleSelectorGUI::update_paint_contour(), Slic3r::GUI::TriangleSelectorMmGui::update_render_data(), and verify_triangle_midpoints().