![]() |
Prusa Slicer 2.6.0
|
Classes | |
| class | Builder |
| struct | Node |
| class | PointCloud |
| class | Properties |
| struct | TraverseReturnT |
Enumerations | |
| enum | PtType { LEAF , MESH , BED , JUNCTION , NONE } |
Functions | |
| void | build_tree (PointCloud &nodes, Builder &builder) |
| void | build_tree (const indexed_triangle_set &its, const std::vector< Node > &support_roots, Builder &builder, const Properties &properties) |
| ExPolygon | make_bed_poly (const indexed_triangle_set &its) |
| bool | is_occupied (const Node &n) |
| void | build_tree (const indexed_triangle_set &its, const std::vector< Node > &support_leafs, Builder &&builder, const Properties &properties={}) |
| std::optional< Vec3f > | find_merge_pt (const Vec3f &A, const Vec3f &B, float max_slope) |
| void | to_eigen_mesh (const indexed_triangle_set &its, Eigen::MatrixXd &V, Eigen::MatrixXi &F) |
| std::vector< Node > | sample_mesh (const indexed_triangle_set &its, double radius) |
| std::vector< Node > | sample_bed (const ExPolygons &bed, float z, double radius) |
| BoundingBox3Base< Vec3f > | get_support_cone_bb (const Vec3f &p, const Properties &props) |
| template<class PC , class Fn > | |
| void | traverse (PC &&pc, size_t root, Fn &&fn) |
| void | build_tree (PointCloud &&pc, Builder &builder) |
Variables | |
| template<class Fn > | |
| constexpr bool | IsTraverseFn = std::is_invocable_v<Fn, Node&> |
|
inline |
| void Slic3r::branchingtree::build_tree | ( | const indexed_triangle_set & | its, |
| const std::vector< Node > & | support_roots, | ||
| Builder & | builder, | ||
| const Properties & | properties | ||
| ) |
References build_tree().
Here is the call graph for this function:
|
inline |
| void Slic3r::branchingtree::build_tree | ( | PointCloud & | nodes, |
| Builder & | builder | ||
| ) |
References Slic3r::branchingtree::Builder::add_bridge(), Slic3r::branchingtree::Builder::add_ground_bridge(), Slic3r::branchingtree::Builder::add_merger(), Slic3r::branchingtree::Builder::add_mesh_bridge(), BED, dmax(), EPSILON, find_merge_pt(), Slic3r::branchingtree::PointCloud::foreach_reachable(), Slic3r::branchingtree::PointCloud::get(), Slic3r::branchingtree::PointCloud::get_queue_idx(), Slic3r::branchingtree::PointCloud::get_type(), Slic3r::branchingtree::Node::ID_NONE, Slic3r::branchingtree::PointCloud::insert_junction(), Slic3r::branchingtree::Builder::is_valid(), JUNCTION, LEAF, Slic3r::branchingtree::Node::left, Slic3r::branchingtree::PointCloud::mark_unreachable(), Slic3r::branchingtree::Properties::max_branch_length(), MESH, Slic3r::NaNf, Slic3r::branchingtree::PointCloud::next_junction_id(), NONE, Slic3r::branchingtree::Node::pos, Slic3r::branchingtree::PointCloud::properties(), Slic3r::branchingtree::Builder::report_unroutable(), Slic3r::branchingtree::Node::right, Slic3r::branchingtree::Node::Rmin, Slic3r::branchingtree::PointCloud::start_queue(), Slic3r::branchingtree::Builder::suggest_avoidance(), Slic3r::branchingtree::PointCloud::Unqueued, and Slic3r::branchingtree::Node::weight.
Referenced by build_tree(), build_tree(), and Slic3r::sla::create_branching_tree().
Here is the call graph for this function:
Here is the caller graph for this function:| std::optional< Vec3f > Slic3r::branchingtree::find_merge_pt | ( | const Vec3f & | A, |
| const Vec3f & | B, | ||
| float | max_slope | ||
| ) |
References Slic3r::sla::find_merge_pt().
Referenced by build_tree(), and Slic3r::branchingtree::PointCloud::get_distance().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References EPSILON, Slic3r::branchingtree::Properties::ground_level(), Slic3r::branchingtree::Properties::max_branch_length(), Slic3r::branchingtree::Properties::max_slope(), and PI.
Here is the call graph for this function:References Slic3r::branchingtree::Node::ID_NONE, Slic3r::branchingtree::Node::left, and Slic3r::branchingtree::Node::right.
| ExPolygon Slic3r::branchingtree::make_bed_poly | ( | const indexed_triangle_set & | its | ) |
References Slic3r::bounding_box(), make_bed_poly(), Slic3r::BoundingBoxBase< PointType, APointsType >::offset(), Slic3r::scaled(), Slic3r::to_2d(), and Eigen::half_impl::__half_raw::x.
Referenced by Slic3r::sla::create_branching_tree(), and make_bed_poly().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< Node > Slic3r::branchingtree::sample_bed | ( | const ExPolygons & | bed, |
| float | z, | ||
| double | radius | ||
| ) |
References indexed_triangle_set::indices, sample_mesh(), Slic3r::triangulate_expolygons_3d(), and indexed_triangle_set::vertices.
Referenced by Slic3r::sla::create_branching_tree().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< Node > Slic3r::branchingtree::sample_mesh | ( | const indexed_triangle_set & | its, |
| double | radius | ||
| ) |
References Slic3r::F, indexed_triangle_set::indices, PI, igl::random_points_on_mesh(), to_eigen_mesh(), and indexed_triangle_set::vertices.
Referenced by Slic3r::sla::create_branching_tree(), and sample_bed().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::branchingtree::to_eigen_mesh | ( | const indexed_triangle_set & | its, |
| Eigen::MatrixXd & | V, | ||
| Eigen::MatrixXi & | F | ||
| ) |
References Slic3r::F, indexed_triangle_set::indices, and indexed_triangle_set::vertices.
Referenced by sample_mesh().
Here is the caller graph for this function:| void Slic3r::branchingtree::traverse | ( | PC && | pc, |
| size_t | root, | ||
| Fn && | fn | ||
| ) |
References traverse().
Referenced by traverse().
Here is the call graph for this function:
Here is the caller graph for this function:
|
constexpr |