![]() |
Prusa Slicer 2.6.0
|
Classes | |
| struct | ArrangeParams |
| struct | ArrangePolygon |
| Input/Output structure for the arrange() function. The poly field will not be modified during arrangement. Instead, the translation and rotation fields will mark the needed transformation for the polygon to be in the arranged position. These can also be set to an initial offset and rotation. More... | |
| class | AutoArranger |
| class | CircleBed |
| A geometry abstraction for a circular print bed. Similarly to BoundingBox. More... | |
| struct | InfiniteBed |
| Representing an unbounded bed. More... | |
| struct | IrregularBed |
| struct | RectangleBed |
| struct | SegmentedRectangleBed |
Typedefs | |
| using | Item = _Item< ExPolygon > |
| using | Box = _Box< Point > |
| using | Circle = _Circle< Point > |
| using | Segment = _Segment< Point > |
| using | MultiPolygon = ExPolygons |
| using | SpatElement = std::pair< Box, unsigned > |
| using | SpatIndex = bgi::rtree< SpatElement, bgi::rstar< 16, 4 > > |
| using | ItemGroup = std::vector< std::reference_wrapper< Item > > |
| using | ArrangeBed = boost::variant< InfiniteBed, RectangleBed, CircleBed, SegmentedRectangleBed, IrregularBed > |
| using | ArrangePolygons = std::vector< ArrangePolygon > |
Enumerations | |
| enum class | Pivots { Center , TopLeft , BottomLeft , BottomRight , TopRight } |
Variables | |
| const double | BIG_ITEM_TRESHOLD = 0.02 |
| static const constexpr int | UNARRANGED = -1 |
| A logical bed representing an object not being arranged. Either the arrange has not yet successfully run on this ArrangePolygon or it could not fit the object due to overly large size or invalid geometry. | |
| struct Slic3r::arrangement::IrregularBed |
| struct Slic3r::arrangement::RectangleBed |
| using Slic3r::arrangement::ArrangeBed = typedef boost::variant<InfiniteBed, RectangleBed, CircleBed, SegmentedRectangleBed, IrregularBed> |
| using Slic3r::arrangement::ArrangePolygons = typedef std::vector<ArrangePolygon> |
| using Slic3r::arrangement::Box = typedef _Box<Point> |
| using Slic3r::arrangement::Circle = typedef _Circle<Point> |
| using Slic3r::arrangement::Item = typedef _Item<ExPolygon> |
| using Slic3r::arrangement::ItemGroup = typedef std::vector<std::reference_wrapper<Item> > |
| using Slic3r::arrangement::MultiPolygon = typedef ExPolygons |
| using Slic3r::arrangement::Segment = typedef _Segment<Point> |
| using Slic3r::arrangement::SpatElement = typedef std::pair<Box, unsigned> |
| using Slic3r::arrangement::SpatIndex = typedef bgi::rtree< SpatElement, bgi::rstar<16, 4> > |
|
strong |
| Enumerator | |
|---|---|
| Center | |
| TopLeft | |
| BottomLeft | |
| BottomRight | |
| TopRight | |
| void Slic3r::arrangement::_arrange | ( | std::vector< Item > & | shapes, |
| std::vector< Item > & | excludes, | ||
| const BinT & | bin, | ||
| const ArrangeParams & | params, | ||
| std::function< void(unsigned)> | progressfn, | ||
| std::function< bool()> | stopfn | ||
| ) |
References _arrange(), Slic3r::arrangement::ArrangeParams::allow_rotations, fit_into_box_rotation(), min_area_boundingbox_rotation(), Slic3r::arrangement::ArrangeParams::min_bed_distance, Slic3r::arrangement::ArrangeParams::min_obj_distance, and remove_large_items().
Referenced by _arrange(), and arrange().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
| void Slic3r::arrangement::arrange | ( | ArrangePolygons & | arrangables, |
| const ArrangePolygons & | excludes, | ||
| const BedT & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
References _arrange(), arrange(), EPSILON, process_arrangeable(), Slic3r::arrangement::ArrangeParams::progressind, Slic3r::scaled(), Slic3r::arrangement::ArrangeParams::stopcondition, and to_nestbin().
Here is the call graph for this function:
|
inline |
References arrange().
Here is the call graph for this function:| template void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const BoundingBox & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
| template void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const CircleBed & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
| template void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const InfiniteBed & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
|
inline |
References arrange(), Slic3r::ExPolygon::contour, and Slic3r::arrangement::IrregularBed::poly.
Here is the call graph for this function:| void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const Points & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
References arrange(), and to_arrange_bed().
Referenced by arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), Slic3r::arrange_objects(), Slic3r::duplicate(), Slic3r::GUI::ArrangeJob::process(), and Slic3r::GUI::FillBedJob::process().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const Points & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
References arrange(), and to_arrange_bed().
Referenced by arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), arrange(), Slic3r::arrange_objects(), Slic3r::duplicate(), Slic3r::GUI::ArrangeJob::process(), and Slic3r::GUI::FillBedJob::process().
Here is the call graph for this function:
Here is the caller graph for this function:| template void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const Polygon & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
|
inline |
References arrange(), and Slic3r::arrangement::RectangleBed::bb.
Here is the call graph for this function:| void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const SegmentedRectangleBed & | bed, | ||
| const ArrangeParams & | params | ||
| ) |
References Slic3r::arrangement::ArrangeParams::alignment, arrange(), Slic3r::arrangement::SegmentedRectangleBed::bb, Slic3r::BoundingBoxBase< PointType, APointsType >::center(), Slic3r::get_extents(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, Slic3r::arrangement::ArrangeParams::min_bed_distance, Slic3r::BoundingBoxBase< PointType, APointsType >::offset(), Slic3r::scaled(), Slic3r::arrangement::SegmentedRectangleBed::segments, Slic3r::BoundingBoxBase< PointType, APointsType >::translate(), and Slic3r::unscaled().
Here is the call graph for this function:| void Slic3r::arrangement::arrange | ( | ArrangePolygons & | items, |
| const ArrangePolygons & | excludes, | ||
| const TBed & | bed, | ||
| const ArrangeParams & | params = {} |
||
| ) |
Arranges the input polygons.
WARNING: Currently, only convex polygons are supported by the libnest2d library which is used to do the arrangement. This might change in the future this is why the interface contains a general polygon capable to have holes.
| items | Input vector of ArrangePolygons. The transformation, rotation and bin_idx fields will be changed after the call finished and can be used to apply the result on the input polygon. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References bounding_box().
Here is the call graph for this function:
|
inline |
| BoundingBox Slic3r::arrangement::bounding_box | ( | const InfiniteBed & | bed | ) |
References Slic3r::arrangement::InfiniteBed::center, Slic3r::BoundingBoxBase< PointType, APointsType >::max, and Slic3r::BoundingBoxBase< PointType, APointsType >::min.
Referenced by bounding_box().
Here is the caller graph for this function:
|
inline |
|
inline |
References Slic3r::area(), call_with_bed(), poly_area(), Slic3r::arrangement::CircleBed::radius(), and to_circle().
Referenced by call_with_bed(), and to_arrange_bed().
Here is the call graph for this function:
Here is the caller graph for this function:References distance_to().
Referenced by distance_to(), and to_circle().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::arrangement::fill_config | ( | PConf & | pcfg, |
| const ArrangeParams & | params | ||
| ) |
References Slic3r::arrangement::ArrangeParams::accuracy, Slic3r::arrangement::ArrangeParams::alignment, Slic3r::arrangement::ArrangeParams::allow_rotations, BottomLeft, BottomRight, Center, Slic3r::arrangement::ArrangeParams::parallel, PI, TopLeft, and TopRight.
Referenced by Slic3r::arrangement::AutoArranger< TBin >::AutoArranger().
Here is the caller graph for this function:| Radians Slic3r::arrangement::fit_into_box_rotation | ( | const S & | sh, |
| const _Box< TPoint< S > > & | box | ||
| ) |
References fit_into_box_rotation().
Referenced by _arrange(), and fit_into_box_rotation().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References libnest2d::_Box< P >::area(), libnest2d::shapelike::boundingBox(), and Slic3r::diff().
Here is the call graph for this function:
|
inline |
References height(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, and Slic3r::BoundingBoxBase< PointType, APointsType >::min.
Referenced by area(), and height().
Here is the call graph for this function:
Here is the caller graph for this function:References Slic3r::area(), is_box(), and poly_area().
Referenced by Slic3r::GUI::GLCanvas3D::_render_arrange_menu(), and is_box().
Here is the call graph for this function:
Here is the caller graph for this function:References min_area_boundingbox_rotation().
Referenced by _arrange(), and min_area_boundingbox_rotation().
Here is the call graph for this function:
Here is the caller graph for this function:References Slic3r::Polygon::area(), and poly_area().
Referenced by call_with_bed(), is_box(), and poly_area().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References Slic3r::arrangement::ArrangePolygon::bed_idx, Slic3r::ExPolygon::contour, libnest2d::_Item< RawShape >::inflate(), Slic3r::arrangement::ArrangePolygon::inflation, Slic3r::arrangement::ArrangePolygon::poly, Slic3r::arrangement::ArrangePolygon::priority, process_arrangeable(), Slic3r::arrangement::ArrangePolygon::rotation, and Slic3r::arrangement::ArrangePolygon::translation.
Referenced by arrange(), and process_arrangeable().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::arrangement::remove_large_items | ( | std::vector< Item > & | items, |
| Bin && | bin | ||
| ) |
References remove_large_items().
Referenced by _arrange(), and remove_large_items().
Here is the call graph for this function:
Here is the caller graph for this function:| ArrangeBed Slic3r::arrangement::to_arrange_bed | ( | const Points & | bedpts | ) |
References call_with_bed(), and to_arrange_bed().
Referenced by arrange(), Slic3r::get_bed_shape(), Slic3r::GUI::FillBedJob::prepare(), and to_arrange_bed().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References distance_to(), SCALED_EPSILON, and to_circle().
Referenced by call_with_bed(), and to_circle().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, to_nestbin(), Slic3r::X, and Slic3r::Y.
Referenced by arrange(), to_nestbin(), to_nestbin(), to_nestbin(), and to_nestbin().
Here is the call graph for this function:
Here is the caller graph for this function:References Slic3r::Circle, and to_nestbin().
Here is the call graph for this function:
|
inline |
References Slic3r::arrangement::InfiniteBed::center, and to_nestbin().
Here is the call graph for this function:
|
inline |
References Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, and width().
Referenced by area(), and width().
Here is the call graph for this function:
Here is the caller graph for this function:| const double Slic3r::arrangement::BIG_ITEM_TRESHOLD = 0.02 |
|
staticconstexpr |
A logical bed representing an object not being arranged. Either the arrange has not yet successfully run on this ArrangePolygon or it could not fit the object due to overly large size or invalid geometry.
Referenced by Slic3r::GUI::assign_logical_beds(), Slic3r::GUI::FillBedJob::finalize(), Slic3r::arrangement::ArrangePolygon::is_arranged(), and Slic3r::GUI::FillBedJob::prepare().