![]() |
Prusa Slicer 2.6.0
|
#include <src/libslic3r/Fill/Lightning/Layer.hpp>
Collaboration diagram for Slic3r::FillLightning::Layer:Public Member Functions | |
| void | generateNewTrees (const Polygons ¤t_overhang, const Polygons ¤t_outlines, const BoundingBox ¤t_outlines_bbox, const EdgeGrid::Grid &outline_locator, coord_t supporting_radius, coord_t wall_supporting_radius, const std::function< void()> &throw_on_cancel_callback) |
| GroundingLocation | getBestGroundingLocation (const Point &unsupported_location, const Polygons ¤t_outlines, const BoundingBox ¤t_outlines_bbox, const EdgeGrid::Grid &outline_locator, coord_t supporting_radius, coord_t wall_supporting_radius, const SparseNodeGrid &tree_node_locator, const NodeSPtr &exclude_tree=nullptr) |
| bool | attach (const Point &unsupported_location, const GroundingLocation &ground, NodeSPtr &new_child, NodeSPtr &new_root) |
| void | reconnectRoots (std::vector< NodeSPtr > &to_be_reconnected_tree_roots, const Polygons ¤t_outlines, const BoundingBox ¤t_outlines_bbox, const EdgeGrid::Grid &outline_locator, coord_t supporting_radius, coord_t wall_supporting_radius) |
| Polylines | convertToLines (const Polygons &limit_to_outline, coord_t line_overlap) const |
| coord_t | getWeightedDistance (const Point &boundary_loc, const Point &unsupported_location) |
| void | fillLocator (SparseNodeGrid &tree_node_locator, const BoundingBox ¤t_outlines_bbox) |
Public Attributes | |
| std::vector< NodeSPtr > | tree_roots |
A layer of the lightning fill.
Contains the trees to be printed and propagated to the next layer below.
| bool Slic3r::FillLightning::Layer::attach | ( | const Point & | unsupported_location, |
| const GroundingLocation & | ground, | ||
| NodeSPtr & | new_child, | ||
| NodeSPtr & | new_root | ||
| ) |
| [out] | new_child | The new child node introduced |
| [out] | new_root | The new root node if one had been made |
References Slic3r::FillLightning::GroundingLocation::boundary_location, Slic3r::FillLightning::GroundingLocation::p(), and Slic3r::FillLightning::GroundingLocation::tree_node.
Referenced by generateNewTrees().
Here is the call graph for this function:
Here is the caller graph for this function:| Polylines Slic3r::FillLightning::Layer::convertToLines | ( | const Polygons & | limit_to_outline, |
| coord_t | line_overlap | ||
| ) | const |
References Slic3r::intersection_pl().
Referenced by Slic3r::FillLightning::Filler::_fill_surface_single().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::FillLightning::Layer::fillLocator | ( | SparseNodeGrid & | tree_node_locator, |
| const BoundingBox & | current_outlines_bbox | ||
| ) |
References Slic3r::FillLightning::to_grid_point(), tree_roots, and void().
Referenced by generateNewTrees().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::FillLightning::Layer::generateNewTrees | ( | const Polygons & | current_overhang, |
| const Polygons & | current_outlines, | ||
| const BoundingBox & | current_outlines_bbox, | ||
| const EdgeGrid::Grid & | outline_locator, | ||
| coord_t | supporting_radius, | ||
| coord_t | wall_supporting_radius, | ||
| const std::function< void()> & | throw_on_cancel_callback | ||
| ) |
References attach(), Slic3r::debug_out_path(), Slic3r::export_to_svg(), fillLocator(), getBestGroundingLocation(), Slic3r::FillLightning::GroundingLocation::p(), Slic3r::FillLightning::to_grid_point(), tree_roots, Slic3r::FillLightning::DistanceField::tryGetNextPoint(), and Slic3r::FillLightning::DistanceField::update().
Referenced by Slic3r::FillLightning::Generator::generateTrees().
Here is the call graph for this function:
Here is the caller graph for this function:| GroundingLocation Slic3r::FillLightning::Layer::getBestGroundingLocation | ( | const Point & | unsupported_location, |
| const Polygons & | current_outlines, | ||
| const BoundingBox & | current_outlines_bbox, | ||
| const EdgeGrid::Grid & | outline_locator, | ||
| coord_t | supporting_radius, | ||
| coord_t | wall_supporting_radius, | ||
| const SparseNodeGrid & | tree_node_locator, | ||
| const NodeSPtr & | exclude_tree = nullptr |
||
| ) |
Determine & connect to connection point in tree/outline.
| min_dist_from_boundary_for_tree | If the unsupported point is closer to the boundary than this then don't consider connecting it to a tree |
References Slic3r::contour(), Slic3r::line_alg::distance_to_squared(), getWeightedDistance(), Slic3r::FillLightning::locator_cell_size, Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, Slic3r::MultiPoint::points, Slic3r::range(), Slic3r::MultiPoint::size(), and Slic3r::FillLightning::to_grid_point().
Referenced by generateNewTrees().
Here is the call graph for this function:
Here is the caller graph for this function:| coord_t Slic3r::FillLightning::Layer::getWeightedDistance | ( | const Point & | boundary_loc, |
| const Point & | unsupported_location | ||
| ) |
| void Slic3r::FillLightning::Layer::reconnectRoots | ( | std::vector< NodeSPtr > & | to_be_reconnected_tree_roots, |
| const Polygons & | current_outlines, | ||
| const BoundingBox & | current_outlines_bbox, | ||
| const EdgeGrid::Grid & | outline_locator, | ||
| coord_t | supporting_radius, | ||
| coord_t | wall_supporting_radius | ||
| ) |
References Slic3r::FillLightning::GroundingLocation::boundary_location, Slic3r::FillLightning::lineSegmentPolygonsIntersection(), Slic3r::FillLightning::GroundingLocation::p(), Slic3r::EdgeGrid::Grid::resolution(), Slic3r::FillLightning::to_grid_point(), and Slic3r::FillLightning::GroundingLocation::tree_node.
Referenced by Slic3r::FillLightning::Generator::generateTrees().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector<NodeSPtr> Slic3r::FillLightning::Layer::tree_roots |
Referenced by fillLocator(), generateNewTrees(), and Slic3r::FillLightning::Generator::generateTrees().