#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/ExPolygon.hpp>
Public Member Functions | |
| ExPolygon ()=default | |
| ExPolygon (const ExPolygon &other)=default | |
| ExPolygon (ExPolygon &&other)=default | |
| ExPolygon (const Polygon &contour) | |
| ExPolygon (Polygon &&contour) | |
| ExPolygon (const Points &contour) | |
| ExPolygon (Points &&contour) | |
| ExPolygon (const Polygon &contour, const Polygon &hole) | |
| ExPolygon (Polygon &&contour, Polygon &&hole) | |
| ExPolygon (const Points &contour, const Points &hole) | |
| ExPolygon (Points &&contour, Polygon &&hole) | |
| ExPolygon (std::initializer_list< Point > contour) | |
| ExPolygon (std::initializer_list< Point > contour, std::initializer_list< Point > hole) | |
| ExPolygon & | operator= (const ExPolygon &other)=default |
| ExPolygon & | operator= (ExPolygon &&other)=default |
| void | clear () |
| void | scale (double factor) |
| void | scale (double factor_x, double factor_y) |
| void | translate (double x, double y) |
| void | translate (const Point &vector) |
| void | rotate (double angle) |
| void | rotate (double angle, const Point ¢er) |
| double | area () const |
| bool | empty () const |
| bool | is_valid () const |
| void | douglas_peucker (double tolerance) |
| bool | contains (const Line &line) const |
| bool | contains (const Polyline &polyline) const |
| bool | contains (const Polylines &polylines) const |
| bool | contains (const Point &point, bool border_result=true) const |
| bool | on_boundary (const Point &point, double eps) const |
| Point | point_projection (const Point &point) const |
| void | symmetric_y (const coord_t &y_axis) |
| bool | overlaps (const ExPolygon &other) const |
| void | simplify_p (double tolerance, Polygons *polygons) const |
| Polygons | simplify_p (double tolerance) const |
| ExPolygons | simplify (double tolerance) const |
| void | simplify (double tolerance, ExPolygons *expolygons) const |
| void | medial_axis (double min_width, double max_width, ThickPolylines *polylines) const |
| void | medial_axis (double min_width, double max_width, Polylines *polylines) const |
| Polylines | medial_axis (double min_width, double max_width) const |
| Lines | lines () const |
| size_t | num_contours () const |
| Polygon & | contour_or_hole (size_t idx) |
| const Polygon & | contour_or_hole (size_t idx) const |
Public Attributes | |
| Polygon | contour |
| Polygons | holes |
|
default |
Referenced by ExPolygon(), ExPolygon(), operator=(), operator=(), and overlaps().
|
default |
|
default |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
| double Slic3r::ExPolygon::area | ( | ) | const |
References contour, and holes.
Referenced by Slic3r::Surface::area(), Slic3r::detect_overhangs(), Slic3r::elephant_foot_compensation(), and Slic3r::tree_supports_generate_paths().
|
inline |
| bool Slic3r::ExPolygon::contains | ( | const Line & | line | ) | const |
References Slic3r::Line::a, Slic3r::Line::b, and contains().
Referenced by Slic3r::FillLine::_fill_surface_single(), contains(), Slic3r::generate_spiral_insets(), Slic3r::is_inside_ex(), Slic3r::GUI::MeshClipper::is_projection_inside_cut(), Slic3r::GCode::needs_retraction(), and overlaps().
| bool Slic3r::ExPolygon::contains | ( | const Point & | point, |
| bool | border_result = true ) const |
References Slic3r::Geometry::contains(), contour, and holes.
| bool Slic3r::ExPolygon::contains | ( | const Polyline & | polyline | ) | const |
References Slic3r::diff_pl(), Slic3r::get_extents(), Slic3r::BoundingBox::inflated(), and Slic3r::BoundingBoxBase< PointType, APointsType >::overlap().
| bool Slic3r::ExPolygon::contains | ( | const Polylines & | polylines | ) | const |
References Slic3r::debug_out_path(), Slic3r::diff_pl(), Slic3r::SVG::draw(), Slic3r::SVG::draw_outline(), Slic3r::get_extents(), and Slic3r::BoundingBoxBase< PointType, APointsType >::merge().
|
inline |
Referenced by Slic3r::Algorithm::expolygons_to_zpaths_expanded_opened(), point_projection(), and Slic3r::tree_supports_generate_paths().
|
inline |
| void Slic3r::ExPolygon::douglas_peucker | ( | double | tolerance | ) |
References contour, and holes.
Referenced by Slic3r::applyNegtiveVolumes().
|
inline |
References contour.
Referenced by Slic3r::sla::anonymous_namespace{Pad.cpp}::add_cavity(), Slic3r::avoid_object_remove_extra_small_parts(), Slic3r::sla::anonymous_namespace{Pad.cpp}::create_outer_pad_geometry(), and overlaps().
| bool Slic3r::ExPolygon::is_valid | ( | ) | const |
| Lines Slic3r::ExPolygon::lines | ( | ) | const |
|
inline |
References medial_axis().
| void Slic3r::ExPolygon::medial_axis | ( | double | min_width, |
| double | max_width, | ||
| Polylines * | polylines ) const |
References medial_axis().
| void Slic3r::ExPolygon::medial_axis | ( | double | min_width, |
| double | max_width, | ||
| ThickPolylines * | polylines ) const |
References Slic3r::Geometry::MedialAxis::build(), contour, Slic3r::ThickPolyline::endpoints, Slic3r::MultiPoint::first_point(), Slic3r::Polyline::last_point(), Slic3r::MultiPoint::length(), Slic3r::MultiPoint::points, Slic3r::ThickPolyline::reverse(), SCALED_EPSILON, and Slic3r::ThickPolyline::width.
Referenced by medial_axis(), and medial_axis().
|
inline |
Referenced by Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox(), Slic3r::Algorithm::expolygons_to_zpaths_expanded_opened(), point_projection(), and Slic3r::tree_supports_generate_paths().
| bool Slic3r::ExPolygon::on_boundary | ( | const Point & | point, |
| double | eps ) const |
| bool Slic3r::ExPolygon::overlaps | ( | const ExPolygon & | other | ) | const |
References ExPolygon(), contains(), contour, Slic3r::debug_out_path(), Slic3r::SVG::draw(), Slic3r::SVG::draw_outline(), empty(), Slic3r::get_extents(), Slic3r::intersection_pl(), Slic3r::BoundingBoxBase< PointType, APointsType >::merge(), and Slic3r::to_polylines().
Referenced by Slic3r::sla::SupportPointGenerator::Structure::overlaps().
References Slic3r::cast(), contour, contour_or_hole(), holes, num_contours(), and Slic3r::Polygon::point_projection().
| void Slic3r::ExPolygon::rotate | ( | double | angle | ) |
References Slic3r::angle(), contour, and holes.
Referenced by Slic3r::Fill3DHoneycomb::_fill_surface_single(), Slic3r::FillCrossHatch::_fill_surface_single(), Slic3r::FillGyroid::_fill_surface_single(), Slic3r::FillLine::_fill_surface_single(), Slic3r::FillPlanePath::_fill_surface_single(), Slic3r::FillTpmsD::_fill_surface_single(), Slic3r::FillTpmsFK::_fill_surface_single(), Slic3r::FillRectilinear::fill_surface_trapezoidal(), and Slic3r::arrangement::ArrangePolygon::transformed_poly().
| void Slic3r::ExPolygon::rotate | ( | double | angle, |
| const Point & | center ) |
References Slic3r::angle(), Slic3r::center(), contour, and holes.
| void Slic3r::ExPolygon::scale | ( | double | factor | ) |
References contour, and holes.
Referenced by Slic3r::GUI::MeshClipper::recalculate_triangles().
| void Slic3r::ExPolygon::scale | ( | double | factor_x, |
| double | factor_y ) |
| ExPolygons Slic3r::ExPolygon::simplify | ( | double | tolerance | ) | const |
References simplify_p(), and Slic3r::union_ex().
Referenced by Slic3r::elephant_foot_compensation(), and simplify().
| void Slic3r::ExPolygon::simplify | ( | double | tolerance, |
| ExPolygons * | expolygons ) const |
References Slic3r::append(), and simplify().
| Polygons Slic3r::ExPolygon::simplify_p | ( | double | tolerance | ) | const |
References Slic3r::MultiPoint::_douglas_peucker(), contour, holes, Slic3r::MultiPoint::points, and Slic3r::simplify_polygons().
| void Slic3r::ExPolygon::simplify_p | ( | double | tolerance, |
| Polygons * | polygons ) const |
References simplify_p().
Referenced by Slic3r::PerimeterGenerator::process_classic(), simplify(), and simplify_p().
| void Slic3r::ExPolygon::symmetric_y | ( | const coord_t & | y_axis | ) |
References contour, and holes.
Referenced by Slic3r::Layer::make_fills().
| void Slic3r::ExPolygon::translate | ( | const Point & | vector | ) |
|
inline |
References translate().
Referenced by Slic3r::FillPlanePath::_fill_surface_single(), anonymous_namespace{Emboss.cpp}::align_shape(), Slic3r::GUI::GLGizmoBrimEars::make_polygon(), Slic3r::GCode::needs_retraction(), Slic3r::arrangement::ArrangePolygon::transformed_poly(), translate(), Slic3r::VoxelUtils::walkAreas(), Slic3r::VoxelUtils::walkDilatedAreas(), and Slic3r::VoxelUtils::walkDilatedPolygons().
| Polygon Slic3r::ExPolygon::contour |
Referenced by ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), Slic3r::Fill3DHoneycomb::_fill_surface_single(), Slic3r::FillConcentric::_fill_surface_single(), Slic3r::FillConcentric::_fill_surface_single(), Slic3r::FillCrossHatch::_fill_surface_single(), Slic3r::FillGyroid::_fill_surface_single(), Slic3r::FillHoneycomb::_fill_surface_single(), Slic3r::FillLine::_fill_surface_single(), Slic3r::FillSpiralInset::_fill_surface_single(), Slic3r::FillSpiralInset::_fill_surface_single(), Slic3r::FillTpmsD::_fill_surface_single(), Slic3r::FillTpmsFK::_fill_surface_single(), Slic3r::Fill::_infill_direction(), Slic3r::Print::_make_skirt(), Slic3r::sla::anonymous_namespace{Pad.cpp}::add_cavity(), Slic3r::ImexArranger::add_keep_outs(), area(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::begin_points(), Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_expolygons(), Slic3r::GUI::PartPlate::calc_imex_zones(), clear(), Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox(), Slic3r::TimelapsePosPicker::collect_object_slices_data(), Slic3r::collect_slices_outer(), Slic3r::compSecondMoment(), Slic3r::Fill::connect_infill(), Slic3r::FillAdaptive::connect_lines_using_hooks(), contains(), Slic3r::contour(), Slic3r::contour_distance(), Slic3r::contour_distance2(), Slic3r::count_points(), Slic3r::EdgeGrid::Grid::create(), Slic3r::sla::anonymous_namespace{Pad.cpp}::create_outer_pad_geometry(), Slic3r::ImexArranger::crosses_keep_out(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::detour_around_obstacle(), Slic3r::Emboss::divide_segments_for_close_point(), douglas_peucker(), Slic3r::SVG::draw_outline(), Slic3r::draw_perimeters(), Slic3r::elephant_foot_compensation(), empty(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::end_points(), Slic3r::GUI::PartPlate::estimate_wipe_tower_polygon(), Slic3r::expoly_to_region(), Slic3r::GUI::expolygon_from_polygon(), Slic3r::expolygons_match(), Slic3r::ClipperZUtils::expolygons_to_zpaths(), priv::fill_polygon_distances(), Slic3r::FillRectilinear::fill_surface_by_multilines(), Slic3r::FillConcentricInternal::fill_surface_extrusion(), Slic3r::FillRectilinear::fill_surface_trapezoidal(), priv::find_close_point(), priv::find_closest_point_pair(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::for_each_expolygon_contour(), Slic3r::from_json(), Slic3r::GUI::PartPlate::generate_exclude_polygon(), Slic3r::GUI::PartPlate::generate_logo_polygon(), Slic3r::GUI::PartPlate::generate_print_polygon(), Slic3r::generate_tree_support_3D(), Slic3r::get_arrange_poly(), Slic3r::ModelInstance::get_arrange_polygon(), priv::get_closest_point_index(), Slic3r::get_extents(), Slic3r::get_extents(), Slic3r::get_extents_rotated(), Slic3r::PrintObject::get_first_layer_bbox(), anonymous_namespace{Emboss.cpp}::get_glyph(), Slic3r::TimelapsePosPicker::get_is_clear_to_x0(), Slic3r::has_duplicate_points(), Slic3r::GUI::PartPlate::imex_wipe_tower_hull(), is_valid(), Slic3r::SupportGridPattern::island_samples(), lines(), Slic3r::GUI::GLGizmoBrimEars::make_polygon(), medial_axis(), Slic3r::Algorithm::merge_expansions_into_expolygons(), Slic3r::move_inside_expoly(), on_boundary(), Slic3r::operator!=(), Slic3r::operator<<(), Slic3r::operator==(), overlaps(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::point_on_expolygon_boundary(), point_projection(), Slic3r::polygons_append(), Slic3r::precompute_expolygon_distances(), Slic3r::GUI::FillBedJob::prepare(), Slic3r::GUI::ArrangeJob::prepare_belt_regions(), Slic3r::GUI::PartPlateList::preprocess_exclude_areas(), Slic3r::GUI::PartPlateList::preprocess_nonprefered_areas(), Slic3r::arrangement::process_arrangeable(), Slic3r::PerimeterGenerator::process_no_bridge(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::PartPlate::render(), Slic3r::GUI::Bed_2D::repaint(), Slic3r::resample_expolygon(), rotate(), rotate(), Slic3r::CLI::run(), Slic3r::sla::sample_expolygon_boundary(), scale(), scale(), cereal::serialize(), boost::polygon::polygon_mutable_traits< Slic3r::ExPolygon >::set_points(), simplify_p(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::size(), Slic3r::solid_bodies(), Slic3r::straight_walls(), symmetric_y(), Slic3r::GluTessWrapper::tesselate3d(), priv::to_expoly(), Slic3r::to_json(), Slic3r::to_lines(), Slic3r::to_points(), Slic3r::to_polygon_ptrs(), Slic3r::to_polygons(), Slic3r::to_polylines(), Slic3r::top_level_expolygons(), translate(), Slic3r::tree_supports_generate_paths(), Slic3r::anonymous_namespace{Model.cpp}::triangulated_prism_footprints(), Slic3r::validate_expoly_orientation(), and Slic3r::variable_offset().
| Polygons Slic3r::ExPolygon::holes |
Referenced by ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), ExPolygon(), area(), boost::polygon::polygon_with_holes_traits< Slic3r::ExPolygon >::begin_holes(), Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_expolygons(), clear(), Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox(), Slic3r::collect_region_slices_by_type(), Slic3r::compSecondMoment(), Slic3r::Fill::connect_infill(), Slic3r::FillAdaptive::connect_lines_using_hooks(), contains(), Slic3r::contour_distance(), Slic3r::contour_distance2(), Slic3r::count_points(), Slic3r::EdgeGrid::Grid::create(), Slic3r::sla::anonymous_namespace{Pad.cpp}::create_outer_pad_geometry(), Slic3r::Emboss::divide_segments_for_close_point(), douglas_peucker(), Slic3r::SVG::draw_outline(), Slic3r::draw_perimeters(), Slic3r::elephant_foot_compensation(), boost::polygon::polygon_with_holes_traits< Slic3r::ExPolygon >::end_holes(), Slic3r::expoly_to_region(), Slic3r::expolygons_match(), Slic3r::ClipperZUtils::expolygons_to_zpaths(), priv::fill_polygon_distances(), priv::find_close_point(), priv::find_closest_point_pair(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::for_each_expolygon_contour(), Slic3r::from_json(), Slic3r::get_boundary_external(), priv::get_closest_point_index(), anonymous_namespace{Emboss.cpp}::get_glyph(), Slic3r::has_duplicate_points(), Slic3r::holes(), is_valid(), lines(), Slic3r::mark_boundary_segments_touching_infill(), on_boundary(), Slic3r::operator!=(), Slic3r::operator<<(), Slic3r::operator==(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::point_on_expolygon_boundary(), point_projection(), Slic3r::polygons_append(), Slic3r::precompute_expolygon_distances(), Slic3r::PerimeterGenerator::process_no_bridge(), Slic3r::resample_expolygon(), rotate(), rotate(), Slic3r::sla::sample_expolygon_boundary(), scale(), scale(), cereal::serialize(), boost::polygon::polygon_with_holes_mutable_traits< Slic3r::ExPolygon >::set_holes(), simplify_p(), boost::polygon::polygon_with_holes_traits< Slic3r::ExPolygon >::size_holes(), Slic3r::solid_bodies(), Slic3r::straight_walls(), symmetric_y(), Slic3r::GluTessWrapper::tesselate3d(), Slic3r::to_json(), Slic3r::to_lines(), Slic3r::to_points(), Slic3r::to_polygon_ptrs(), Slic3r::to_polygons(), Slic3r::to_polylines(), Slic3r::top_level_expolygons(), translate(), Slic3r::tree_supports_generate_paths(), Slic3r::validate_expoly_orientation(), Slic3r::variable_offset(), Slic3r::variable_offset_inner(), Slic3r::variable_offset_inner_ex(), Slic3r::variable_offset_outer(), and Slic3r::variable_offset_outer_ex().