![]() |
Prusa Slicer 2.6.0
|
#include <src/libslic3r/SLA/DefaultSupportTree.hpp>
Collaboration diagram for Slic3r::sla::DefaultSupportTree:Public Member Functions | |
| DefaultSupportTree (SupportTreeBuilder &builder, const SupportableMesh &sm) | |
| void | add_pinheads () |
| void | classify () |
| void | routing_to_ground () |
| void | routing_to_model () |
| void | interconnect_pillars () |
| void | merge_result () |
Static Public Member Functions | |
| static bool | execute (SupportTreeBuilder &builder, const SupportableMesh &sm) |
Private Types | |
| using | PtIndices = std::vector< unsigned > |
Private Attributes | |
| const SupportableMesh & | m_sm |
| PtIndices | m_iheads |
| PtIndices | m_iheads_onmodel |
| std::map< unsigned, AABBMesh::hit_result > | m_head_to_ground_scans |
| Eigen::MatrixXd | m_support_nmls |
| std::vector< PtIndices > | m_pillar_clusters |
| SupportTreeBuilder & | m_builder |
| Eigen::MatrixXd | m_points |
| ThrowOnCancel | m_thr |
| PillarIndex | m_pillar_index |
| execution::BlockingMutex< ExecutionTBB > | m_bridge_mutex |
|
private |
| Slic3r::sla::DefaultSupportTree::DefaultSupportTree | ( | SupportTreeBuilder & | builder, |
| const SupportableMesh & | sm | ||
| ) |
References m_points, m_sm, and Slic3r::sla::SupportableMesh::pts.
References Slic3r::sla::SupportTreeBuilder::add_pillar_base(), Slic3r::sla::SupportTreeConfig::base_height_mm, Slic3r::sla::SupportTreeConfig::base_radius_mm, Slic3r::sla::SupportableMesh::cfg, m_builder, and m_sm.
Here is the call graph for this function:| void Slic3r::sla::DefaultSupportTree::add_pinheads | ( | ) |
References Slic3r::sla::SupportTreeBuilder::add_head(), Slic3r::sla::SupportTreeConfig::bridge_slope, Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::cluster(), Slic3r::sla::Head::dir, Slic3r::AABBMesh::hit_result::distance(), Slic3r::sla::SupportableMesh::emesh, Slic3r::execution::for_each(), Slic3r::sla::get_criteria(), Slic3r::sla::ground_level(), Slic3r::sla::SupportTreeConfig::head_back_radius_mm, Slic3r::sla::SupportTreeConfig::head_fallback_radius_mm, Slic3r::sla::SupportTreeConfig::head_front_radius_mm, Slic3r::sla::SupportTreeConfig::head_penetration_mm, Slic3r::sla::SupportTreeConfig::head_width_mm, Slic3r::sla::SupportTreeNode::id, input(), m_builder, m_iheads, m_points, m_sm, m_thr, Slic3r::execution::max_concurrency(), Slic3r::NaNd, Slic3r::sla::SupportTreeConfig::normal_cutoff_angle, Slic3r::normals(), Slic3r::opt::Optimizer< Method, Enable >::optimize(), PI, pinhead_mesh_intersect(), Slic3r::sla::SupportableMesh::pts, Slic3r::sla::Head::r_back_mm, Slic3r::opt::Optimizer< Method, Enable >::seed(), Slic3r::sla::suptree_ex_policy, Slic3r::opt::Optimizer< Method, Enable >::to_max(), void(), and Slic3r::sla::Head::width_mm.
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References bridge_mesh_intersect(), and Slic3r::AABBMesh::hit_result::distance().
Referenced by connect_to_nearpillar(), and interconnect().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References bridge_mesh_intersect(), Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::SupportTreeConfig::head_back_radius_mm, m_sm, and Slic3r::sla::SupportTreeConfig::safety_distance_mm.
Here is the call graph for this function:
|
private |
References Slic3r::sla::beam_mesh_hit(), Slic3r::sla::SupportableMesh::emesh, m_sm, and Slic3r::sla::suptree_ex_policy.
Referenced by bridge_mesh_distance(), bridge_mesh_intersect(), and classify().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::sla::DefaultSupportTree::classify | ( | ) |
References Slic3r::sla::SupportTreeConfig::base_radius_mm, bridge_mesh_intersect(), Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::cluster(), Slic3r::sla::distance(), Slic3r::sla::DOWN, Slic3r::sla::SupportTreeConfig::ground_facing_only, head(), Slic3r::sla::SupportTreeBuilder::head(), Slic3r::sla::Head::junction_point(), m_builder, m_head_to_ground_scans, m_iheads, m_iheads_onmodel, m_pillar_clusters, m_sm, m_thr, Slic3r::sla::SupportTreeConfig::max_bridge_length_mm, Slic3r::sla::SupportTreeConfig::max_bridges_on_pillar, and Slic3r::to_2d().
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References Slic3r::sla::PillarIndex::guarded_insert(), head(), m_builder, m_pillar_index, m_sm, Slic3r::sla::SupportTreeBuilder::pillar(), Slic3r::sla::search_ground_route(), and Slic3r::sla::suptree_ex_policy.
Referenced by routing_to_model().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::sla::SupportTreeBuilder::add_anchor(), Slic3r::sla::SupportTreeBuilder::add_pillar(), Slic3r::sla::SupportableMesh::cfg, Slic3r::AABBMesh::hit_result::distance(), Slic3r::sla::DOWN, Slic3r::sla::SupportableMesh::emesh, Slic3r::sla::Pillar::endpoint(), Slic3r::sla::PillarIndex::guarded_insert(), head(), Slic3r::sla::SupportTreeConfig::head_back_radius_mm, Slic3r::sla::SupportTreeConfig::head_penetration_mm, Slic3r::sla::SupportTreeNode::id, Slic3r::sla::SupportTreeNode::ID_UNSET, m_builder, m_head_to_ground_scans, m_pillar_index, m_sm, PI, Slic3r::sla::SupportTreeBuilder::pillar(), and Slic3r::AABBMesh::query_ray_hit().
Referenced by routing_to_model().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::sla::SupportTreeBuilder::add_bridge(), Slic3r::sla::SupportTreeBuilder::add_junction(), Slic3r::sla::SupportTreeBuilder::add_pillar(), bridge_mesh_distance(), Slic3r::sla::SupportTreeConfig::bridge_slope, Slic3r::sla::SupportTreeBuilder::bridgecount(), Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::dirv(), Slic3r::sla::distance(), Slic3r::sla::DOWN, Slic3r::sla::ground_level(), head(), Slic3r::sla::SupportTreeConfig::head_back_radius_mm, Slic3r::sla::SupportTreeBuilder::increment_bridges(), m_bridge_mutex, m_builder, m_sm, Slic3r::sla::SupportTreeConfig::max_bridge_length_mm, Slic3r::sla::SupportTreeConfig::max_bridges_on_pillar, Slic3r::sla::SupportTreeBuilder::pillar(), and Slic3r::to_2d().
Referenced by routing_to_ground(), and search_pillar_and_connect().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::sla::create_ground_pillar(), Slic3r::sla::PillarIndex::guarded_insert(), m_builder, m_pillar_index, m_sm, Slic3r::sla::SupportTreeBuilder::pillar(), Slic3r::sla::Junction::pos, Slic3r::sla::Junction::r, and Slic3r::sla::suptree_ex_policy.
Referenced by routing_to_ground().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References add_pinheads(), BEGIN, Slic3r::sla::SupportableMesh::cfg, classify(), Slic3r::sla::SupportTreeBuilder::ctl(), Slic3r::sla::SupportTreeConfig::ground_facing_only, interconnect_pillars(), merge_result(), Slic3r::sla::SupportableMesh::pts, routing_to_ground(), routing_to_model(), Slic3r::sla::JobController::statuscb, Slic3r::sla::JobController::stopcondition, and void().
Referenced by Slic3r::sla::create_default_tree().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Slic3r::sla::SupportTreeBuilder::add_crossbridge(), Slic3r::sla::SupportTreeConfig::base_height_mm, Slic3r::sla::SupportTreeConfig::base_radius_mm, bridge_mesh_distance(), Slic3r::sla::SupportTreeConfig::bridge_slope, Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::cross, Slic3r::sla::dirv(), Slic3r::sla::distance(), Slic3r::sla::dynamic, Slic3r::sla::Pillar::endpoint(), Slic3r::sla::ground_level(), Slic3r::sla::SupportTreeConfig::head_back_radius_mm, m_builder, m_sm, Slic3r::sla::SupportTreeConfig::max_pillar_link_distance_mm, Slic3r::sla::SupportTreeConfig::pillar_connection_mode, Slic3r::sla::Pillar::r_start, Slic3r::sla::Pillar::startpoint(), and Eigen::PlainObjectBase< Derived >::swap().
Here is the call graph for this function:| void Slic3r::sla::DefaultSupportTree::interconnect_pillars | ( | ) |
References Slic3r::sla::dirv(), Slic3r::sla::Pillar::endpoint(), EPSILON, Slic3r::sla::ground_level(), Slic3r::sla::Pillar::height, Slic3r::sla::SupportTreeNode::id, Slic3r::sla::Pillar::links, Slic3r::sla::pairhash(), PI, and Slic3r::sla::Pillar::r_start.
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References m_builder, and Slic3r::sla::SupportTreeBuilder::merged_mesh().
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References Slic3r::sla::SupportableMesh::cfg, Slic3r::sla::SupportTreeConfig::head_back_radius_mm, m_sm, pinhead_mesh_intersect(), and Slic3r::sla::SupportTreeConfig::safety_distance_mm.
Here is the call graph for this function:
|
private |
References Slic3r::sla::SupportableMesh::emesh, m_sm, Slic3r::sla::pinhead_mesh_hit(), and Slic3r::sla::suptree_ex_policy.
Referenced by add_pinheads(), and pinhead_mesh_intersect().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References Slic3r::sla::SupportableMesh::emesh, m_sm, and Slic3r::AABBMesh::query_ray_hit().
Here is the call graph for this function:| void Slic3r::sla::DefaultSupportTree::routing_to_ground | ( | ) |
References Slic3r::sla::cluster_centroid(), connect_to_nearpillar(), create_ground_pillar(), Slic3r::sla::Head::dir, Slic3r::sla::distance(), Slic3r::sla::SupportTreeBuilder::head(), Slic3r::sla::SupportTreeNode::id, Slic3r::sla::Head::junction(), Slic3r::sla::Head::junction_point(), m_builder, m_iheads_onmodel, m_pillar_clusters, m_pillar_index, m_points, m_thr, Slic3r::sla::PillarIndex::query(), and search_pillar_and_connect().
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::sla::DefaultSupportTree::routing_to_model | ( | ) |
References connect_to_ground(), connect_to_model_body(), Slic3r::execution::for_each(), head(), if(), m_iheads_onmodel, and Slic3r::sla::suptree_ex_policy.
Referenced by execute().
Here is the call graph for this function:
Here is the caller graph for this function:References connect_to_nearpillar(), Slic3r::sla::PointIndex::empty(), Slic3r::sla::ground_level(), Slic3r::sla::PillarIndex::guarded_clone(), Slic3r::sla::SupportTreeNode::ID_UNSET, Slic3r::sla::Head::junction_point(), m_builder, m_pillar_index, m_sm, m_thr, Slic3r::sla::PointIndex::nearest(), Slic3r::sla::SupportTreeBuilder::pillar(), Slic3r::sla::SupportTreeBuilder::pillarcount(), Slic3r::sla::Head::r_back_mm, and Slic3r::sla::PointIndex::remove().
Referenced by routing_to_ground().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References m_sm, Slic3r::sla::search_widening_path(), and Slic3r::sla::suptree_ex_policy.
Here is the call graph for this function:
|
private |
Referenced by connect_to_nearpillar().
|
private |
|
private |
Referenced by classify(), and connect_to_model_body().
|
private |
Referenced by add_pinheads(), and classify().
|
private |
Referenced by classify(), routing_to_ground(), and routing_to_model().
|
private |
Referenced by classify(), and routing_to_ground().
|
private |
|
private |
Referenced by DefaultSupportTree(), add_pinheads(), and routing_to_ground().
|
private |
Referenced by DefaultSupportTree(), add_pillar_base(), add_pinheads(), bridge_mesh_intersect(), bridge_mesh_intersect(), classify(), connect_to_ground(), connect_to_model_body(), connect_to_nearpillar(), create_ground_pillar(), interconnect(), pinhead_mesh_intersect(), pinhead_mesh_intersect(), ray_mesh_intersect(), search_pillar_and_connect(), and search_widening_path().
|
private |
|
private |
Referenced by add_pinheads(), classify(), routing_to_ground(), and search_pillar_and_connect().