Namespaces | |
| namespace | LinearAlg2D |
Classes | |
| class | BeadingStrategy |
| class | BeadingStrategyFactory |
| class | DistributedBeadingStrategy |
| class | LimitedBeadingStrategy |
| class | OuterWallInsetBeadingStrategy |
| class | RedistributeBeadingStrategy |
| class | WideningBeadingStrategy |
| class | SkeletalTrapezoidation |
| class | SkeletalTrapezoidationEdge |
| class | STHalfEdge |
| class | STHalfEdgeNode |
| class | SkeletalTrapezoidationGraph |
| class | SkeletalTrapezoidationJoint |
| struct | ExtrusionJunction |
| struct | ExtrusionLine |
| class | HalfEdgeNode |
| class | HalfEdge |
| class | HalfEdgeGraph |
| class | PathsPointIndex |
| struct | PolygonsPointIndexSegmentLocator |
| struct | PathsPointIndexLocator |
| class | PolygonsSegmentIndex |
| class | PolylineStitcher |
| class | SparseGrid |
| Sparse grid which can locate spatially nearby elements efficiently. More... | |
| class | SparseLineGrid |
| Sparse grid which can locate spatially nearby elements efficiently. More... | |
| class | SparsePointGrid |
| Sparse grid which can locate spatially nearby elements efficiently. More... | |
| class | SquareGrid |
| class | WallToolPathsParams |
| class | WallToolPaths |
Typedefs | |
| using | BeadingStrategyPtr = std::unique_ptr<BeadingStrategy> |
| using | VD = Slic3r::Geometry::VoronoiDiagram |
| using | LineJunctions = std::vector<ExtrusionJunction> |
| using | ExtrusionJunctions = std::vector<ExtrusionJunction> |
| using | VariableWidthLines = std::vector<ExtrusionLine> |
| using | PolygonsPointIndex = PathsPointIndex<Polygons> |
| typedef SparseLineGrid< PolygonsPointIndex, PolygonsPointIndexSegmentLocator > | LocToLineGrid |
Functions | |
| template<typename T> | |
| constexpr T | pi_div (const T div) |
| static Point | normal (const Point &p0, coord_t len) |
| Point | operator- (const ExtrusionJunction &a, const ExtrusionJunction &b) |
| const Point & | make_point (const ExtrusionJunction &ej) |
| coord_t | colinear_vertex_tolerance () |
| template<class PathType> | |
| static Slic3r::ThickPolyline | to_thick_polyline (const PathType &path) |
| static Polygon | to_polygon (const ExtrusionLine &line) |
| static Points | to_points (const ExtrusionLine &extrusion_line) |
| const Point & | make_point (const Point &p) |
| WallToolPathsParams | make_paths_params (const int layer_id, const PrintObjectConfig &print_object_config, const PrintConfig &print_config) |
| void | simplify (Polygon &thiss, const int64_t smallest_line_segment_squared, const int64_t allowed_error_distance_squared) |
| void | simplify (Polygons &thiss, const int64_t smallest_line_segment=scaled< coord_t >(0.01), const int64_t allowed_error_distance=scaled< coord_t >(0.005)) |
| std::unique_ptr< LocToLineGrid > | createLocToLineGrid (const Polygons &polygons, int square_size) |
| void | fixSelfIntersections (const coord_t epsilon, Polygons &thiss) |
| void | removeDegenerateVerts (Polygons &thiss) |
| void | removeSmallAreas (Polygons &thiss, const double min_area_size, const bool remove_holes) |
| void | removeColinearEdges (Polygon &poly, const double max_deviation_angle) |
| void | removeColinearEdges (Polygons &thiss, const double max_deviation_angle=0.0005) |
| template<typename T> | |
| bool | shorterThan (const T &shape, const coord_t check_length) |
| coord_t | meshfix_maximum_resolution () |
| coord_t | meshfix_maximum_deviation () |
| coord_t | meshfix_maximum_extrusion_area_deviation () |
Variables | |
| constexpr bool | fill_outline_gaps = true |
| class Slic3r::Arachne::HalfEdgeGraph |
| Class Members | ||
|---|---|---|
| typedef derived_edge_t | edge_t derived_edge_t | |
| typedef list< edge_t > | Edges std::list<edge_t> | |
| typedef derived_node_t | node_t derived_node_t | |
| typedef list< node_t > | Nodes std::list<node_t> | |
| Class Members | ||
|---|---|---|
| Edges | edges | |
| Nodes | nodes | |
| class Slic3r::Arachne::WallToolPathsParams |
| Class Members | ||
|---|---|---|
| bool | is_top_or_bottom_layer = false | |
| float | min_bead_width = 0.f | |
| float | min_feature_size = 0.f | |
| float | min_length_factor = 0.5f | |
| int | wall_distribution_count = 1 | |
| coord_t | wall_maximum_deviation = meshfix_maximum_deviation() | |
| coord_t | wall_maximum_resolution = meshfix_maximum_resolution() | |
| float | wall_transition_angle = 10.f | |
| float | wall_transition_filter_deviation = 0.f | |
| float | wall_transition_length = 0.f | |
| using Slic3r::Arachne::BeadingStrategyPtr = std::unique_ptr<BeadingStrategy> |
| using Slic3r::Arachne::ExtrusionJunctions = std::vector<ExtrusionJunction> |
| using Slic3r::Arachne::LineJunctions = std::vector<ExtrusionJunction> |
| typedef SparseLineGrid<PolygonsPointIndex, PolygonsPointIndexSegmentLocator> Slic3r::Arachne::LocToLineGrid |
| using Slic3r::Arachne::VariableWidthLines = std::vector<ExtrusionLine> |
|
inline |
References SCALED_EPSILON.
Referenced by Slic3r::Arachne::ExtrusionLine::simplify(), and simplify().
| std::unique_ptr< LocToLineGrid > Slic3r::Arachne::createLocToLineGrid | ( | const Polygons & | polygons, |
| int | square_size ) |
Referenced by fixSelfIntersections().
References Slic3r::cast(), createLocToLineGrid(), Slic3r::Arachne::LinearAlg2D::pointIsLeftOfLine(), Slic3r::scaled(), and Slic3r::sqr().
Referenced by Slic3r::Arachne::WallToolPaths::generate().
| WallToolPathsParams Slic3r::Arachne::make_paths_params | ( | const int | layer_id, |
| const PrintObjectConfig & | print_object_config, | ||
| const PrintConfig & | print_config ) |
References Slic3r::Arachne::WallToolPathsParams::is_top_or_bottom_layer, Slic3r::Arachne::WallToolPathsParams::min_bead_width, Slic3r::Arachne::WallToolPathsParams::min_feature_size, Slic3r::Arachne::WallToolPathsParams::min_length_factor, Slic3r::PrintObjectConfig, Slic3r::scaled(), Slic3r::Arachne::WallToolPathsParams::wall_distribution_count, Slic3r::Arachne::WallToolPathsParams::wall_maximum_deviation, Slic3r::Arachne::WallToolPathsParams::wall_maximum_resolution, Slic3r::Arachne::WallToolPathsParams::wall_transition_angle, Slic3r::Arachne::WallToolPathsParams::wall_transition_filter_deviation, and Slic3r::Arachne::WallToolPathsParams::wall_transition_length.
Referenced by Slic3r::PerimeterGenerator::printable_slices().
|
inline |
References Slic3r::Arachne::ExtrusionJunction::p.
Referenced by Slic3r::Arachne::PathsPointIndexLocator< Paths >::operator()(), Slic3r::Arachne::PathsPointIndex< Polygons >::p(), and Slic3r::Arachne::PolylineStitcher< Paths, Path, Junction >::stitch().
|
inline |
|
inline |
References Slic3r::scaled().
Referenced by Slic3r::Arachne::WallToolPaths::simplifyToolPaths().
|
inline |
Referenced by Slic3r::Arachne::SkeletalTrapezoidation::applyTransitions(), and Slic3r::Arachne::SkeletalTrapezoidation::generateExtraRibs().
|
inline |
References Slic3r::Arachne::ExtrusionJunction::p.
|
constexpr |
| void Slic3r::Arachne::removeColinearEdges | ( | Polygon & | poly, |
| const double | max_deviation_angle ) |
References Slic3r::angle(), Slic3r::Arachne::LinearAlg2D::getAngleLeft(), M_PI, Slic3r::MultiPoint::points, and Slic3r::MultiPoint::size().
Referenced by Slic3r::Arachne::WallToolPaths::generate(), and removeColinearEdges().
| void Slic3r::Arachne::removeColinearEdges | ( | Polygons & | thiss, |
| const double | max_deviation_angle = 0.0005 ) |
References removeColinearEdges().
| void Slic3r::Arachne::removeDegenerateVerts | ( | Polygons & | thiss | ) |
Removes overlapping consecutive line segments which don't delimit a positive area.
References Slic3r::MultiPoint::back(), Slic3r::cast(), Slic3r::MultiPoint::points, and Slic3r::MultiPoint::size().
Referenced by Slic3r::Arachne::WallToolPaths::generate().
| void Slic3r::Arachne::removeSmallAreas | ( | Polygons & | thiss, |
| const double | min_area_size, | ||
| const bool | remove_holes ) |
References Slic3r::area(), and Slic3r::Polygon::contains().
Referenced by Slic3r::Arachne::WallToolPaths::generate().
| bool Slic3r::Arachne::shorterThan | ( | const T & | shape, |
| const coord_t | check_length ) |
References Slic3r::cast(), and Slic3r::length().
Referenced by Slic3r::Arachne::WallToolPaths::removeSmallLines().
| void Slic3r::Arachne::simplify | ( | Polygon & | thiss, |
| const int64_t | smallest_line_segment_squared, | ||
| const int64_t | allowed_error_distance_squared ) |
References Slic3r::cast(), colinear_vertex_tolerance(), Slic3r::Line::distance_to_infinite(), Slic3r::Line::distance_to_infinite_squared(), Slic3r::MultiPoint::empty(), Slic3r::Line::intersection_infinite(), Slic3r::MultiPoint::points, Slic3r::scaled(), Slic3r::MultiPoint::size(), and Slic3r::sqr().
Referenced by Slic3r::Arachne::WallToolPaths::generate(), and simplify().
| void Slic3r::Arachne::simplify | ( | Polygons & | thiss, |
| const int64_t | smallest_line_segment = scaled<coord_t>(0.01), | ||
| const int64_t | allowed_error_distance = scaled<coord_t>(0.005) ) |
Removes vertices of the polygons to make sure that they are not too high resolution.
This removes points which are connected to line segments that are shorter than the smallest_line_segment, unless that would introduce a deviation in the contour of more than allowed_error_distance.
Criteria:
smallest_line_segment allowed_error_distance smallest_line_segment always remains unaltered (but their end points may change if it is connected to a small segment)Simplify uses a heuristic and doesn't neccesarily remove all removable vertices under the above criteria, but simplify may never violate these criteria. Unless the segments or the distance is smaller than the rounding error of 5 micron.
Vertices which introduce an error of less than 5 microns are removed anyway, even if the segments are longer than the smallest line segment. This makes sure that (practically) colinear line segments are joined into a single line segment.
| smallest_line_segment | Maximal length of removed line segments. |
| allowed_error_distance | If removing a vertex introduces a deviation from the original path that is more than this distance, the vertex may not be removed. |
References Slic3r::scaled(), and simplify().
|
static |
References Slic3r::Arachne::ExtrusionLine::junctions, and Slic3r::Arachne::ExtrusionJunction::p.
Referenced by Slic3r::Arachne::SkeletalTrapezoidation::constructFromPolygons().
|
inlinestatic |
References Slic3r::Arachne::ExtrusionLine::junctions, and Slic3r::MultiPoint::points.
|
inlinestatic |
References Slic3r::MultiPoint::points, and Slic3r::ThickPolyline::width.
Referenced by Slic3r::FillConcentric::_fill_surface_single(), Slic3r::FillSpiralInset::_fill_surface_single(), Slic3r::extrusion_paths_append(), Slic3r::extrusion_paths_append(), Slic3r::FillConcentricInternal::fill_surface_extrusion(), Slic3r::open_loop(), and Slic3r::traverse_loops().
|
constexpr |
Referenced by Slic3r::Arachne::WallToolPaths::WallToolPaths().