#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Polygon.hpp>
Public Types | |
| using | iterator = Points::iterator |
| using | const_iterator = Points::const_iterator |
Public Member Functions | |
| Polygon ()=default | |
| Polygon (const Points &points) | |
| Polygon (std::initializer_list< Point > points) | |
| Polygon (const Polygon &other) | |
| Polygon (Polygon &&other) noexcept | |
| Polygon & | operator= (const Polygon &other) |
| Polygon & | operator= (Polygon &&other) noexcept |
| Point & | operator[] (Points::size_type idx) |
| const Point & | operator[] (Points::size_type idx) const |
| const Point & | last_point () const |
| double | length () const |
| Lines | lines () const |
| Polyline | split_at_vertex (const Point &point) const |
| Polyline | split_at_index (int index) const |
| Polyline | split_at_first_point () const |
| Points | equally_spaced_points (double distance) const |
| double | area () const |
| bool | is_counter_clockwise () const |
| bool | is_clockwise () const |
| bool | make_counter_clockwise () |
| bool | make_clockwise () |
| bool | is_valid () const |
| void | douglas_peucker (double tolerance) |
| bool | contains (const Point &point) const |
| bool | on_boundary (const Point &point, double eps) const |
| Polygons | simplify (double tolerance) const |
| void | densify (float min_length, std::vector< float > *lengths=nullptr) |
| void | triangulate_convex (Polygons *polygons) const |
| Point | centroid () const |
| bool | intersection (const Line &line, Point *intersection) const |
| bool | first_intersection (const Line &line, Point *intersection) const |
| bool | intersections (const Line &line, Points *intersections) const |
| bool | overlaps (const Polygons &other) const |
| Points | convex_points (double angle_threshold=0.) const |
| Points | concave_points (double angle_threshold=0.) const |
| Point | point_projection (const Point &point) const |
| std::vector< float > | parameter_by_length () const |
| Polygon | transform (const Transform3d &trafo) const |
| 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 cos_angle, double sin_angle) |
| void | rotate (double angle, const Point ¢er) |
| void | reverse () |
| const Point & | front () const |
| const Point & | back () const |
| const Point & | first_point () const |
| size_t | size () const |
| bool | empty () const |
| int | find_point (const Point &point) const |
| int | find_point (const Point &point, const double scaled_epsilon) const |
| bool | has_boundary_point (const Point &point) const |
| int | closest_point_index (const Point &point) const |
| const Point * | closest_point (const Point &point) const |
| double | distance_to (const Point &point) const |
| BoundingBox | bounding_box () const |
| bool | has_duplicate_points () const |
| bool | remove_duplicate_points () |
| void | clear () |
| void | append (const Point &point) |
| void | append (const Points &src) |
| void | append (const Points::const_iterator &begin, const Points::const_iterator &end) |
| void | append (Points &&src) |
| void | symmetric_y (const coord_t &y_axis) |
| auto | begin () |
| auto | begin () const |
| auto | end () |
| auto | end () const |
| auto | cbegin () const |
| auto | cend () const |
Static Public Member Functions | |
| static Polygon | new_scale (const std::vector< Vec2d > &points) |
| static double | area (const Points &pts) |
| static Points | _douglas_peucker (const Points &points, const double tolerance) |
| static Points | visivalingam (const Points &pts, const double tolerance) |
| static Points | concave_hull_2d (const Points &pts, const double tolerence) |
| static double | minimumDistanceBetweenLinesDefinedByPoints (const Points &A, const Points &B) |
| Calculates the minimum distance between two lines defined by sets of points. | |
Public Attributes | |
| Points | points |
Static Private Member Functions | |
| static double | squaredDistanceToLineSegment (const Point &p, const Point &v, const Point &w) |
| Calculates the squared distance between a point and a line segment defined by two points. | |
| using Slic3r::Polygon::const_iterator = Points::const_iterator |
| using Slic3r::Polygon::iterator = Points::iterator |
|
default |
Referenced by Polygon(), Polygon(), new_scale(), operator=(), operator=(), simplify(), transform(), and triangulate_convex().
|
inlineexplicit |
References Slic3r::MultiPoint::MultiPoint(), and Slic3r::MultiPoint::points.
|
inline |
References Slic3r::MultiPoint::MultiPoint(), and Slic3r::MultiPoint::points.
|
inline |
References Slic3r::MultiPoint::MultiPoint(), Polygon(), and Slic3r::MultiPoint::points.
|
inlinenoexcept |
References Polygon().
|
staticinherited |
References Slic3r::debug_out_path(), Slic3r::Line::distance_to_squared(), Slic3r::SVG::draw(), Slic3r::BoundingBoxBase< PointType, APointsType >::merge(), and scale_.
Referenced by Slic3r::ArcFitter::do_arc_fitting_and_simplify(), Slic3r::Polygon::douglas_peucker(), Slic3r::GUI::GLGizmoBrimEars::generate_points(), Slic3r::GUI::GLGizmoBrimEars::get_detection_radius_max(), Slic3r::make_brim_ears_auto(), Slic3r::polygons_simplify(), Slic3r::Polygon::simplify(), Slic3r::Polyline::simplify(), Slic3r::ExPolygon::simplify_p(), and Slic3r::Geometry::simplify_polygons().
|
inlineinherited |
Referenced by Slic3r::GCode::_do_export(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append_before(), Slic3r::GUI::PartPlate::calc_imex_zones(), Slic3r::TreeSupport::draw_circles(), Slic3r::GUI::PartPlate::generate_exclude_polygon(), Slic3r::GUI::PartPlate::generate_logo_polygon(), Slic3r::GUI::PartPlate::generate_print_polygon(), Slic3r::GUI::PartPlateList::preprocess_exclude_areas(), Slic3r::GUI::PartPlate::render(), Slic3r::GUI::Bed_2D::repaint(), Slic3r::GCode::set_object_info(), and Slic3r::VoxelUtils::toPolygon().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
| double Slic3r::Polygon::area | ( | ) | const |
References area(), and Slic3r::MultiPoint::points.
Referenced by area(), is_counter_clockwise(), and Slic3r::polygons_simplify().
|
static |
References Slic3r::cross2(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::GCode::_do_export(), Slic3r::bed_exclusion_arrange_polygon(), Slic3r::compSecondMoment(), Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_chull_rotations(), Slic3r::WipeTower::its_make_rib_brim(), Slic3r::WipeTower::its_make_rib_tower(), Slic3r::anonymous_namespace{PrintConfig.cpp}::parse_exclude_polygon_points(), Slic3r::arrangement::poly_area(), Slic3r::GUI::FillBedJob::prepare(), and triangulate_convex().
|
inlineinherited |
Referenced by Slic3r::Arachne::removeDegenerateVerts(), Slic3r::FillLightning::Node::removeJunctionOverlap(), Slic3r::GCode::travel_to(), and Slic3r::tree_supports_generate_paths().
|
inlineinherited |
References points.
Referenced by append(), Slic3r::Polyline::append(), Slic3r::generate_transform_pattern(), and Slic3r::Polyline::split_at_index().
|
inlineinherited |
|
inherited |
References points.
Referenced by 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::GCodeProcessor::check_multi_extruder_gcode_valid(), Slic3r::compacted_wipe_tower_clearance(), Slic3r::compacted_wipe_tower_zone(), Slic3r::FillConcentricInternal::fill_surface_extrusion(), Slic3r::GUI::PartPlate::get_build_volume(), Slic3r::get_extents(), Slic3r::arrangement::get_shrink_bedpts(), Slic3r::GUI::FillBedJob::prepare(), Slic3r::GUI::Bed_2D::repaint(), Slic3r::GUI::GLCanvas3D::update_compacted_wipe_tower_clearance(), and Slic3r::arrangement::update_selected_items_inflation().
|
inlineinherited |
|
inlineinherited |
| Point Slic3r::Polygon::centroid | ( | ) | const |
References Slic3r::cross2(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::compSecondMoment(), anonymous_namespace{EmbossJob.cpp}::find_closest(), Slic3r::generate_spiral_insets(), anonymous_namespace{EmbossJob.cpp}::CreateObjectJob::process(), and Slic3r::GUI::MeshClipper::recalculate_triangles().
|
inlineinherited |
Referenced by Slic3r::Polyline::clear().
References closest_point_index().
Referenced by distance_to().
|
inlineinherited |
References Slic3r::cast().
Referenced by closest_point(), and Slic3r::remove_points_from_polygon().
|
staticinherited |
| Points Slic3r::Polygon::concave_points | ( | double | angle_threshold = 0. | ) | const |
References Slic3r::cross2(), Slic3r::filter_convex_concave_points_by_angle_threshold(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::GUI::GLGizmoBrimEars::generate_points(), and Slic3r::make_brim_ears_auto().
|
inline |
References Slic3r::Geometry::contains().
Referenced by Slic3r::generate_spiral_insets(), Slic3r::GUI::GLCanvas3D::get_empty_cells(), anonymous_namespace{EmbossJob.cpp}::CreateObjectJob::process(), Slic3r::PerimeterGenerator::process_classic(), Slic3r::Arachne::removeSmallAreas(), and Slic3r::ExclusionVolumePathChecker::segment_intersects_region().
| Points Slic3r::Polygon::convex_points | ( | double | angle_threshold = 0. | ) | const |
References Slic3r::cross2(), Slic3r::filter_convex_concave_points_by_angle_threshold(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::GUI::GLGizmoBrimEars::generate_points(), and Slic3r::make_brim_ears_auto().
| void Slic3r::Polygon::densify | ( | float | min_length, |
| std::vector< float > * | lengths = nullptr ) |
References Slic3r::diff(), parameter_by_length(), and Slic3r::MultiPoint::points.
|
inlineinherited |
References closest_point().
| void Slic3r::Polygon::douglas_peucker | ( | double | tolerance | ) |
References Slic3r::MultiPoint::_douglas_peucker(), and Slic3r::MultiPoint::points.
|
inlineinherited |
References points.
Referenced by Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::Polyline::append_before(), Slic3r::append_path(), Slic3r::belt_brim_clip_leading_edge(), Slic3r::GCodeProcessor::check_multi_extruder_gcode_valid(), Slic3r::ExtrusionLoop::collect_polylines(), Slic3r::ExtrusionMultiPath::collect_polylines(), Slic3r::Fill::connect_base_support(), Slic3r::connect_brim_lines(), Slic3r::Fill::connect_infill(), Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::contour_distance(), Slic3r::EdgeGrid::Grid::create(), Slic3r::EdgeGrid::Grid::create(), anonymous_namespace{TextLines.cpp}::create_its(), Slic3r::GUI::GLCanvas3D::get_empty_cells(), anonymous_namespace{TextLines.cpp}::its_create_torus(), Slic3r::join_close_ends(), Slic3r::make_belt_brim(), Slic3r::Algorithm::merge_expansions_into_expolygons(), Slic3r::Polygon::overlaps(), Slic3r::Arachne::simplify(), Slic3r::take_ccw_full(), Slic3r::take_ccw_limited(), Slic3r::take_cw_full(), Slic3r::take_cw_limited(), anonymous_namespace{NSVGUtils.cpp}::to_dashes(), Slic3r::AvoidCrossingPerimeters::travel_to(), Slic3r::trim_loop(), Slic3r::GUI::GLCanvas3D::update_sequential_clearance(), and Slic3r::Wipe::wipe().
|
inlineinherited |
References points.
Referenced by append(), Slic3r::Polyline::append(), and Slic3r::generate_transform_pattern().
|
inlineinherited |
|
inline |
References Slic3r::Polyline::equally_spaced_points(), and split_at_first_point().
|
inherited |
References points.
Referenced by find_point(), Slic3r::Polyline::split_at(), and Slic3r::Polyline::split_at_length().
|
inherited |
References Slic3r::cast(), find_point(), and points.
References Slic3r::Line::a, Slic3r::Line::b, Slic3r::cast(), Slic3r::Line::intersection(), intersection(), and Slic3r::MultiPoint::points.
|
inlineinherited |
References front().
Referenced by Slic3r::FillPlanePath::_fill_surface_single(), Slic3r::Polyline::append_before(), Slic3r::Geometry::MedialAxis::build(), Slic3r::connect_brim_lines(), Slic3r::Polyline::equally_spaced_lines(), Slic3r::Polyline::equally_spaced_points(), Slic3r::LoopInterfaceProcessor::generate(), Slic3r::Polyline::is_straight(), Slic3r::material_side_support_lines(), Slic3r::ExPolygon::medial_axis(), Slic3r::need_wipe(), Slic3r::offset_wipe_path(), Slic3r::optimize_polylines_by_reversing(), Slic3r::PerimeterGenerator::process_classic(), Slic3r::reconnect_polylines(), Slic3r::restore_source_path_order(), Slic3r::sample_polyline_at_distance(), Slic3r::Polyline::split_at(), Slic3r::Polyline::split_at_index(), Slic3r::Polyline::split_at_length(), and Slic3r::support_offset_at_start().
|
inlineinherited |
Referenced by first_point(), Slic3r::Algorithm::merge_expansions_into_expolygons(), and Slic3r::precompute_expolygon_distances().
|
inherited |
References Slic3r::Geometry::dist(), Slic3r::Point::projection_onto(), and SCALED_EPSILON.
|
inherited |
References points.
Referenced by Slic3r::polylines_from_paths(), and Slic3r::traverse_graph_generate_polylines().
References Slic3r::Line::intersection(), intersection(), and Slic3r::MultiPoint::points.
Referenced by first_intersection(), intersection(), and intersections().
References Slic3r::Line::a, Slic3r::Line::b, Slic3r::Line::intersection(), intersection(), intersections(), and Slic3r::MultiPoint::points.
Referenced by intersections().
| bool Slic3r::Polygon::is_clockwise | ( | ) | const |
References is_counter_clockwise().
Referenced by Slic3r::ExtrusionLoop::is_clockwise(), Slic3r::ExtrusionLoop::make_counter_clockwise(), and Slic3r::sweep_ex().
| bool Slic3r::Polygon::is_counter_clockwise | ( | ) | const |
References area().
Referenced by Slic3r::GCode::extrude_loop(), Slic3r::find_spiral_start_corner(), is_clockwise(), Slic3r::ExtrusionLoop::is_counter_clockwise(), Slic3r::ExtrusionLoop::make_clockwise(), make_clockwise(), make_counter_clockwise(), Slic3r::arrangement::process_arrangeable(), simplify(), and Slic3r::validate_expoly_orientation().
|
inline |
References Slic3r::MultiPoint::points.
Referenced by Slic3r::GCodeProcessor::check_multi_extruder_gcode_valid().
|
inlinevirtual |
| double Slic3r::Polygon::length | ( | ) | const |
References Slic3r::MultiPoint::points.
Referenced by Slic3r::Print::_make_skirt().
|
virtual |
Implements Slic3r::MultiPoint.
References Slic3r::to_lines().
| bool Slic3r::Polygon::make_clockwise | ( | ) |
References is_counter_clockwise(), and Slic3r::MultiPoint::reverse().
Referenced by Slic3r::create_polyholes().
| bool Slic3r::Polygon::make_counter_clockwise | ( | ) |
References is_counter_clockwise(), and Slic3r::MultiPoint::reverse().
Referenced by Slic3r::anonymous_namespace{PrintConfig.cpp}::append_legacy_bed_exclude_regions(), Slic3r::GUI::PartPlate::check_outside(), Slic3r::GUI::expolygon_from_polygon(), Slic3r::GUI::PartPlate::generate_exclude_polygon(), Slic3r::ExclusionVolumeTravelAvoidance::init(), Slic3r::anonymous_namespace{PrintConfig.cpp}::parse_exclude_polygon_points(), Slic3r::PerimeterGenerator::process_classic(), Slic3r::PerimeterGenerator::process_no_bridge(), Slic3r::SeamPlacerImpl::process_perimeter_polygon(), Slic3r::anonymous_namespace{Model.cpp}::triangulated_prism_footprints(), and Slic3r::GUI::PartPlate::update_exclusion_volume_preview_models().
|
staticinherited |
Calculates the minimum distance between two lines defined by sets of points.
| A | The first set of points defining a polyline. |
| B | The second set of points defining a polyline. |
References squaredDistanceToLineSegment().
References Polygon(), Slic3r::Point::new_scale(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::BuildVolume::BuildVolume(), Slic3r::WipeTower2::WipeTower2(), Slic3r::GCodeProcessor::check_multi_extruder_gcode_valid(), Slic3r::GLVolumeCollection::check_wipe_tower_outside_state(), Slic3r::GUI::PartPlate::get_bounding_box_crd(), Slic3r::Print::get_extruder_printable_polygons(), Slic3r::Print::get_extruder_shared_printable_polygon(), Slic3r::Print::get_extruder_unprintable_polygons(), Slic3r::GUI::PartPlate::get_shared_printable_polygon(), Slic3r::make_counter_clockwise(), anonymous_namespace{OrcaSlicer_profile_validator.cpp}::place_wipe_tower(), Slic3r::GUI::Selection::scale_to_fit_print_volume(), Slic3r::GUI::Plater::priv::scaled_bed_shape_bb(), and Slic3r::GUI::Bed3D::update_bed_triangles().
|
inline |
References point_projection().
Referenced by Slic3r::anonymous_namespace{ClipperUtils.cpp}::path_encloses(), and Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::point_on_expolygon_boundary().
|
inline |
References Slic3r::MultiPoint::points.
|
inline |
References Slic3r::MultiPoint::points.
| bool Slic3r::Polygon::overlaps | ( | const Polygons & | other | ) | const |
References Slic3r::MultiPoint::empty(), Slic3r::intersection_pl(), and Slic3r::to_polylines().
| std::vector< float > Slic3r::Polygon::parameter_by_length | ( | ) | const |
References Slic3r::MultiPoint::points.
Referenced by densify().
References Slic3r::cast(), and Slic3r::MultiPoint::points.
Referenced by on_boundary(), and Slic3r::ExPolygon::point_projection().
|
inherited |
References points.
Referenced by Slic3r::ExPolygonWithOffset::ExPolygonWithOffset(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::polylines_from_paths(), Slic3r::WipeTower::rib_section(), Slic3r::rounding_polygon(), Slic3r::WipeTower::rounding_polygon(), Slic3r::smooth_polyline_corners(), and Slic3r::traverse_graph_generate_polylines().
|
inlineinherited |
Referenced by Slic3r::Polyline::append_before(), Slic3r::TreeSupport3D::calculateMachineBorderCollision(), anonymous_namespace{EmbossJob.cpp}::cut_surface_to_its(), Slic3r::Polygon::make_clockwise(), Slic3r::Polygon::make_counter_clockwise(), Slic3r::arrangement::process_arrangeable(), Slic3r::Polyline::reverse(), and Slic3r::sweep_ex().
|
inlineinherited |
References Slic3r::angle(), and rotate().
Referenced by Slic3r::ExPolygonWithOffset::ExPolygonWithOffset(), Slic3r::ExPolygonWithOffset::ExPolygonWithOffset(), Slic3r::FillHoneycomb::_fill_surface_single(), Slic3r::Print::_make_wipe_tower(), Slic3r::GUI::PartPlate::estimate_wipe_tower_polygon(), Slic3r::get_arrange_poly(), Slic3r::GUI::PartPlate::imex_wipe_tower_hull(), Slic3r::layered_print_cleareance_valid(), anonymous_namespace{OrcaSlicer_profile_validator.cpp}::place_wipe_tower(), rotate(), and Slic3r::ModelInstance::transform_polygon().
|
inherited |
References Slic3r::angle(), Slic3r::center(), and points.
|
inherited |
|
inherited |
References points.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_points_along_lines(), and Slic3r::ModelInstance::transform_polygon().
|
inherited |
| Polygons Slic3r::Polygon::simplify | ( | double | tolerance | ) | const |
References Polygon(), Slic3r::MultiPoint::_douglas_peucker(), is_counter_clockwise(), Slic3r::MultiPoint::points, and Slic3r::simplify_polygons().
Referenced by Slic3r::PerimeterGenerator::process_no_bridge().
|
inlineinherited |
References points.
Referenced by Slic3r::BuildVolume::BuildVolume(), Slic3r::GCode::_do_export(), Slic3r::FillPlanePath::_fill_surface_single(), Slic3r::add_extra_point(), Slic3r::any_expolygon_contains(), Slic3r::Polyline::append_before(), Slic3r::PreciseSeam::detail::append_exact_fragment(), Slic3r::Polyline::append_fitting_result_after_append_polyline(), Slic3r::PreciseSeam::detail::append_fragment(), Slic3r::PreciseSeam::detail::append_projected_fragment(), Slic3r::PreciseSeam::detail::bind_fragment(), Slic3r::SeamPlacerImpl::calculate_polygon_angles_at_vertices(), Slic3r::Polyline::clip_end(), Slic3r::Fill::connect_base_support(), Slic3r::Fill::connect_infill(), Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::contour_distance(), Slic3r::Geometry::convex_polygons_intersect(), Slic3r::create_boundary_infill_graph(), Slic3r::GUI::ImGuiWrapper::draw(), Slic3r::TreeSupport3D::ensure_maximum_distance_polyline(), Slic3r::Polyline::equally_spaced_lines(), Slic3r::PreciseSeam::extract_perimeter_segments(), Slic3r::find_first_different_vertex(), Slic3r::generate_transform_pattern(), priv::get_closest_point_index(), Slic3r::ClipperUtils::interior_point(), Slic3r::PreciseSeam::detail::interval_on_edge(), anonymous_namespace{TextLines.cpp}::its_create_torus(), Slic3r::WipeTower::its_make_rib_brim(), Slic3r::WipeTower::its_make_rib_tower(), Slic3r::mark_boundary_segments_overlapping_infill(), Slic3r::move_inside_expoly(), Slic3r::nearest_clear_wipe_tower_anchor(), Slic3r::need_wipe(), anonymous_namespace{Emboss.cpp}::point_in_distance(), anonymous_namespace{Emboss.cpp}::point_in_distance(), anonymous_namespace{Emboss.cpp}::point_in_reverse_distance(), Slic3r::polygons_match(), Slic3r::precompute_polygon_distances(), Slic3r::PreciseSeam::prepare_weak_modifier_segments(), Slic3r::arrangement::process_arrangeable(), Slic3r::SeamPlacerImpl::process_perimeter_polygon(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::remove_duplicates(), Slic3r::remove_points_from_polygon(), Slic3r::Arachne::removeColinearEdges(), Slic3r::Arachne::removeDegenerateVerts(), Slic3r::FillLightning::Node::removeJunctionOverlap(), Slic3r::resample_polygon(), Slic3r::Polyline::reverse(), Slic3r::Arachne::simplify(), Slic3r::smooth_outward(), Slic3r::smooth_outward(), Slic3r::smooth_polyline_corners(), Slic3r::PreciseSeam::detail::snap_cuts_to_adjacent_vertices(), Slic3r::Polyline::split_at_index(), Slic3r::take(), Slic3r::take_limited(), priv::to_expoly(), Slic3r::to_polyline(), Slic3r::GCode::travel_to(), Slic3r::tree_supports_generate_paths(), Slic3r::triangulate_wall(), Slic3r::trim_loop(), and Slic3r::GUI::PartPlate::wipe_tower_obstacles().
|
inline |
References split_at_index().
Referenced by Slic3r::Print::_make_skirt(), Slic3r::ExtrusionLoop::as_polyline(), equally_spaced_points(), Slic3r::PerimeterGenerator::process_classic(), and Slic3r::traverse_loops().
| Polyline Slic3r::Polygon::split_at_index | ( | int | index | ) | const |
References Slic3r::MultiPoint::points.
Referenced by Slic3r::open_loop(), Slic3r::remove_points_from_polygon(), split_at_first_point(), and split_at_vertex().
References Slic3r::MultiPoint::points, and split_at_index().
|
staticprivateinherited |
Calculates the squared distance between a point and a line segment defined by two points.
| p | The point. |
| v | The starting point of the line segment. |
| w | The ending point of the line segment. |
References Slic3r::dot(), and Slic3r::l2().
Referenced by minimumDistanceBetweenLinesDefinedByPoints().
|
inherited |
| Polygon Slic3r::Polygon::transform | ( | const Transform3d & | trafo | ) | const |
References Polygon(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::GUI::GLCanvas3D::get_empty_cells().
|
inherited |
|
inlineinherited |
References translate().
Referenced by Slic3r::Print::_make_wipe_tower(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_points_along_lines(), Slic3r::anonymous_namespace{ExclusionVolumeGeometry.cpp}::append_active_footprints(), Slic3r::GCodeProcessor::check_multi_extruder_gcode_valid(), Slic3r::GUI::PartPlate::check_outside(), Slic3r::compacted_tower_print_instance_hull(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), Slic3r::LinesBucket::curLines(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::WipeTower::finish_layer_new(), Slic3r::TreeSupport3D::generate_support_areas(), Slic3r::generate_transform_pattern(), Slic3r::get_arrange_poly(), anonymous_namespace{Emboss.cpp}::heal_dupl_inter(), Slic3r::GUI::PartPlate::imex_wipe_tower_hull(), Slic3r::ExclusionVolumeTravelAvoidance::init(), Slic3r::layered_print_cleareance_valid(), Slic3r::make_gyroid_waves(), Slic3r::makeEndPoints(), Slic3r::makeZigZag(), Slic3r::GCode::needs_retraction(), translate(), Slic3r::AvoidCrossingPerimeters::travel_to(), Slic3r::GUI::PartPlate::update_exclusion_volume_preview_models(), and Slic3r::GUI::PartPlate::wipe_tower_obstacles().
| void Slic3r::Polygon::triangulate_convex | ( | Polygons * | polygons | ) | const |
References Polygon(), area(), and Slic3r::MultiPoint::points.
|
staticinherited |
References Slic3r::area(), Slic3r::vis_node::area, Slic3r::cast(), Slic3r::cross2(), Slic3r::vis_node::next_idx, Slic3r::vis_node::prev_idx, and Slic3r::vis_node::pt_idx.
|
inherited |
Referenced by Slic3r::BuildVolume::BuildVolume(), Slic3r::ExPolygonsIndices::ExPolygonsIndices(), MultiPoint(), MultiPoint(), MultiPoint(), Slic3r::Polygon::Polygon(), Slic3r::Polygon::Polygon(), Slic3r::Polygon::Polygon(), Slic3r::Polyline::Polyline(), Slic3r::Polyline::Polyline(), Slic3r::Polyline::Polyline(), Slic3r::Polyline::Polyline(), Slic3r::GCode::_do_export(), Slic3r::FillConcentric::_fill_surface_single(), Slic3r::FillHoneycomb::_fill_surface_single(), Slic3r::FillPlanePath::_fill_surface_single(), Slic3r::Print::_make_skirt(), Slic3r::AreaMoments::add(), Slic3r::sla::ConcaveHull::add_connector_rectangles(), Slic3r::add_extra_point(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_points_along_lines(), Slic3r::addTops(), Slic3r::any_expolygon_contains(), Slic3r::Polyline::append(), Slic3r::Polyline::append(), Slic3r::PreciseSeam::detail::append_exact_fragment(), Slic3r::Polyline::append_fitting_result_after_append_points(), Slic3r::anonymous_namespace{PrintConfig.cpp}::append_legacy_bed_exclude_regions(), Slic3r::append_path(), Slic3r::append_path_point(), Slic3r::append_path_point(), Slic3r::PreciseSeam::detail::append_projected_fragment(), Slic3r::WipeTowerIntegration::append_tcr(), Slic3r::WipeTowerIntegration::append_tcr2(), Slic3r::Feature::FuzzySkin::apply_fuzzy_skin(), Slic3r::Feature::FuzzySkin::apply_fuzzy_skin(), Slic3r::Polygon::area(), Slic3r::Polygon::area(), Slic3r::ExtrusionMultiPath::as_polyline(), Slic3r::MutablePolygon::assign(), Slic3r::bed_exclusion_arrange_polygon(), begin(), begin(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::begin_points(), boost::polygon::polygon_traits< Slic3r::Polygon >::begin_points(), Slic3r::belt_brim_band_paths(), bounding_box(), Slic3r::Geometry::MedialAxis::build(), Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_attach_stray_holes(), Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_expolygons(), Slic3r::SeamPlacerImpl::calculate_polygon_angles_at_vertices(), cbegin(), cend(), Slic3r::Polygon::centroid(), Slic3r::chain_lines(), Slic3r::chamfer_polygon(), Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox(), Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox(), Slic3r::Polyline::clip_end(), Slic3r::clip_inner_walls_over_top(), Slic3r::clip_path_end(), Slic3r::Polyline::clip_start(), Slic3r::colored_points_to_polygon(), Slic3r::compacted_tower_print_instance_hull(), Slic3r::Print::compacted_wipe_tower_clearance_valid(), Slic3r::compacted_wipe_tower_zone(), Slic3r::Polygon::concave_points(), Slic3r::WipeTower2::cone_base_polygon(), Slic3r::Fill::connect_base_support(), Slic3r::connect_brim_lines(), Slic3r::Fill::connect_infill(), Slic3r::Fill::connect_infill(), Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::TimelapsePosPicker::construct_printable_area_by_printer(), Slic3r::contains(), Slic3r::contour_distance(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::contour_intersections(), Slic3r::contour_to_polygons(), Slic3r::Geometry::convex_hull(), Slic3r::ModelObject::convex_hull_2d(), Slic3r::Polygon::convex_points(), Slic3r::count_points(), Slic3r::EdgeGrid::Grid::create(), Slic3r::EdgeGrid::Grid::create(), Slic3r::create_boundary_infill_graph(), Slic3r::create_polyholes(), Slic3r::Polygon::densify(), Slic3r::diff(), Slic3r::diff_ex(), Slic3r::diff_ex(), Slic3r::diff_pl(), Slic3r::diff_pl(), Slic3r::Emboss::divide_segments_for_close_point(), Slic3r::Algorithm::do_split_line(), Slic3r::Polygon::douglas_peucker(), Slic3r::GUI::ImGuiWrapper::draw(), Slic3r::draw_perimeters(), Slic3r::emit_perimeter_prev_next_segment(), Slic3r::emit_perimeter_segment_on_vertical_line(), empty(), end(), end(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::end_points(), boost::polygon::polygon_traits< Slic3r::Polygon >::end_points(), Slic3r::TreeSupport3D::ensure_maximum_distance_polyline(), Slic3r::Polyline::equally_spaced_lines(), Slic3r::Polyline::equally_spaced_points(), Slic3r::estimated_wipe_tower_footprint(), Slic3r::evaluate_support_arch_cost(), Slic3r::evaluate_support_arches(), Slic3r::executable_path_length(), Slic3r::ClipperZUtils::expolygons_to_zpaths(), Slic3r::Polyline::extend_end(), Slic3r::PreciseSeam::extract_perimeter_segments(), Slic3r::extrusion_polyline_extents(), priv::fill_polygon_distances(), priv::fill_shape_distances(), Slic3r::FillConcentricInternal::fill_surface_extrusion(), Slic3r::FillRectilinear::fill_surface_trapezoidal(), priv::find_close_point(), Slic3r::find_first_different_vertex(), find_point(), find_point(), Slic3r::find_spiral_start_corner(), Slic3r::Polygon::first_intersection(), Slic3r::from_json(), Slic3r::from_json(), Slic3r::WipeTowerIntegration::generate_path_to_wipe_tower(), Slic3r::GUI::GLGizmoBrimEars::generate_points(), Slic3r::generate_rectange_polygon(), Slic3r::generate_spiral_insets(), Slic3r::generate_transform_pattern(), Slic3r::generate_tree_support_3D(), Slic3r::get_arrange_poly(), Slic3r::get_bed_shape(), Slic3r::get_bed_shape(), Slic3r::get_bed_shape_with_excluded_area(), Slic3r::GUI::GLGizmoBrimEars::get_detection_radius_max(), Slic3r::get_extents(), Slic3r::get_extents_rotated(), anonymous_namespace{Emboss.cpp}::get_glyph(), Slic3r::SVG::get_path_d(), Slic3r::get_polygon_vertex_inward_normal(), Slic3r::get_polygon_vertex_offset(), Slic3r::GUI::GLGizmoPainterBase::get_projected_mouse_positions(), Slic3r::get_shared_poly(), Slic3r::get_svg_profile(), Slic3r::has_duplicate_points(), Slic3r::has_duplicate_points(), has_duplicate_points(), Slic3r::FillAdaptive::has_no_collinear_lines(), Slic3r::Wipe::has_path(), Slic3r::imex_hull_violates_zones(), Slic3r::GUI::PartPlate::imex_wipe_tower_hull(), Slic3r::ExclusionVolumeTravelAvoidance::init(), Slic3r::GUI::init_exclusion_volume_prism_model(), Slic3r::initial_connector_is_clear(), priv::insert_edges(), priv::insert_edges(), Slic3r::PreciseSeam::insert_point_into_perimeter(), Slic3r::ClipperUtils::interior_point(), Slic3r::intersection(), Slic3r::Polygon::intersection(), Slic3r::intersection_pl(), Slic3r::intersection_pl(), Slic3r::intersection_pl(), Slic3r::Polygon::intersections(), Slic3r::ModelInstance::intersects_bed_exclude_region(), Slic3r::PreciseSeam::detail::interval_on_edge(), Slic3r::Polyline::is_closed(), Slic3r::Polygon::is_valid(), Slic3r::SupportGridPattern::island_samples(), anonymous_namespace{TextLines.cpp}::its_create_torus(), Slic3r::WipeTower::its_make_rib_tower(), Slic3r::join_close_ends(), Slic3r::Polygon::last_point(), Slic3r::Polyline::last_point(), Slic3r::layered_print_cleareance_valid(), Slic3r::Polyline::leftmost_point(), Slic3r::Polygon::length(), Slic3r::length_off_reference(), Slic3r::Polyline::lines(), Slic3r::loop_clip_length(), Slic3r::make_adaptive_infill_shells(), Slic3r::make_adaptive_tpms(), Slic3r::make_brim_ears(), Slic3r::make_brim_ears_auto(), Slic3r::make_circle_num_segments(), Slic3r::GUI::GLGizmoBrimEars::make_polygon(), Slic3r::make_wave(), Slic3r::makeEndPoints(), Slic3r::makeZigZag(), Slic3r::mark_boundary_segments_overlapping_infill(), Slic3r::material_side_support_lines(), Slic3r::ExPolygon::medial_axis(), Slic3r::modulate_extrusion_by_overlapping_layers(), Slic3r::move_inside_expoly(), Slic3r::FillAdaptive::multiline_paths(), Slic3r::nearest_clear_wipe_tower_anchor(), Slic3r::GCode::needs_retraction(), Slic3r::Polygon::new_scale(), Slic3r::Polyline::new_scale(), Slic3r::offset(), Slic3r::offset(), Slic3r::offset(), Slic3r::offset_wipe_path(), Slic3r::offset_wipe_path_toward_support(), Slic3r::open_loop(), Slic3r::operator!=(), Slic3r::operator!=(), Slic3r::operator<<(), operator=(), operator=(), Slic3r::Polygon::operator=(), Slic3r::Polygon::operator=(), Slic3r::Polyline::operator=(), Slic3r::Polyline::operator=(), Slic3r::operator==(), Slic3r::operator==(), Slic3r::Polygon::operator[](), Slic3r::Polygon::operator[](), Slic3r::Polyline::operator[](), Slic3r::Polyline::operator[](), Slic3r::Polygon::parameter_by_length(), Slic3r::anonymous_namespace{PrintConfig.cpp}::parse_exclude_polygon_points(), Slic3r::anonymous_namespace{ClipperUtils.cpp}::path_encloses(), Slic3r::patternPoints(), Slic3r::Polygon::point_projection(), Slic3r::MutablePolygon::polygon(), Slic3r::WipeTowerWriter::polygon(), Slic3r::polygon_segment_append(), Slic3r::polygon_segment_append_reversed(), Slic3r::polygon_to_string(), Slic3r::polygons_match(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::polyline_intersects_obstacles(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::polyline_length(), Slic3r::polylines_from_paths(), Slic3r::precompute_polygon_distances(), Slic3r::PreciseSeam::prepare_weak_modifier_segments(), Slic3r::GUI::PartPlateList::preprocess_exclude_areas(), Slic3r::Geometry::MedialAxis::process_edge_neighbors(), Slic3r::SeamPlacerImpl::process_perimeter_polygon(), Slic3r::reconnect_polylines(), Slic3r::PreciseSeam::refine_at_vertex(), remove_duplicate_points(), Slic3r::remove_points_from_polygon(), Slic3r::remove_same_neighbor(), Slic3r::remove_same_neighbor(), anonymous_namespace{Emboss.cpp}::remove_spikes_in_duplicates(), anonymous_namespace{Emboss.cpp}::remove_when_spike(), Slic3r::Arachne::removeColinearEdges(), Slic3r::Arachne::removeDegenerateVerts(), Slic3r::FillLightning::Node::removeJunctionOverlap(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::replace_segment(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::replacement_matches_original_segment(), Slic3r::resample_polygon(), Slic3r::Polyline::reset_to_linear_move(), Slic3r::restore_source_path_order(), Slic3r::WipeTower::rib_section(), rotate(), rotate(), Slic3r::rounding_polygon(), Slic3r::WipeTower::rounding_polygon(), Slic3r::rounding_rectangle(), Slic3r::ExclusionVolumeTravelAvoidance::route(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::routed_polyline_inside_bed(), Slic3r::sample_polyline_at_distance(), scale(), scale(), Slic3r::scale_polygon(), cereal::serialize(), boost::polygon::polygon_mutable_traits< Slic3r::ExPolygon >::set_points(), Slic3r::Model::setPrintSpeedTable(), Slic3r::Arachne::simplify(), Slic3r::Polygon::simplify(), Slic3r::Polyline::simplify(), Slic3r::Polyline::simplify_by_fitting_arc(), Slic3r::ExPolygon::simplify_p(), Slic3r::anonymous_namespace{ExclusionVolumeTravelAvoidance.cpp}::simplify_path(), Slic3r::Geometry::simplify_polygons(), boost::polygon::polygon_traits< Slic3r::ExPolygon >::size(), boost::polygon::polygon_traits< Slic3r::Polygon >::size(), size(), Slic3r::slice_region_by_vertical_lines(), Slic3r::smooth_polyline_corners(), Slic3r::PreciseSeam::detail::snap_cuts_to_adjacent_vertices(), Slic3r::solid_bodies(), Slic3r::Polyline::split_at(), Slic3r::Polygon::split_at_index(), Slic3r::Polyline::split_at_index(), Slic3r::Polyline::split_at_length(), Slic3r::Polygon::split_at_vertex(), Slic3r::Polyline::split_fitting_result_after_index(), Slic3r::Polyline::split_fitting_result_before_index(), Slic3r::ThickPolyline::start_at_index(), Slic3r::starts_by_backtracking(), Slic3r::store_wipe_path(), Slic3r::GUI::ImGuiWrapper::suggest_location(), Slic3r::support_offset_at_start(), Slic3r::sweep_ex(), symmetric_y(), Slic3r::take(), Slic3r::take_ccw_full(), Slic3r::take_ccw_limited(), Slic3r::take_cw_full(), Slic3r::take_cw_limited(), Slic3r::take_limited(), Slic3r::GluTessWrapper::tesselate3d(), Slic3r::ThickPolyline::thicklines(), anonymous_namespace{NSVGUtils.cpp}::to_dashes(), Slic3r::to_json(), Slic3r::to_json(), Slic3r::to_linesf(), Slic3r::to_points(), Slic3r::to_points(), Slic3r::Arachne::to_polygon(), Slic3r::to_polygon(), Slic3r::Polyline3::to_polyline(), Slic3r::to_polyline(), Slic3r::to_polyline(), Slic3r::to_polylines(), Slic3r::to_polylines(), Slic3r::to_polylines(), Slic3r::to_polylines(), Slic3r::to_polylines(), Slic3r::Arachne::to_thick_polyline(), Slic3r::top_level_expolygons(), Slic3r::Arachne::ExtrusionLine::toPolygon(), Slic3r::Polygon::transform(), translate(), Slic3r::translated_wipe_path(), Slic3r::AvoidCrossingPerimeters::travel_to(), Slic3r::GCode::travel_to(), Slic3r::WipeTowerIntegration::travel_to_tower_gap(), Slic3r::traverse_graph_generate_polylines(), Slic3r::traverse_loops(), Slic3r::traverse_pt_outside_in(), Slic3r::tree_supports_generate_paths(), Slic3r::Triangulation::triangulate(), Slic3r::Polygon::triangulate_convex(), Slic3r::triangulate_wall(), Slic3r::anonymous_namespace{Model.cpp}::triangulated_prism_footprints(), Slic3r::trim_loop(), Slic3r::unscale_polygon(), Slic3r::GUI::GLCanvas3D::update_compacted_wipe_tower_clearance(), Slic3r::GUI::GLCanvas3D::update_sequential_clearance(), Slic3r::Print::validate_compacted_wipe_tower_clearance(), Slic3r::TreeSupport3D::validate_range(), Slic3r::variable_offset(), Slic3r::Wipe::wipe(), Slic3r::wipe_path_stays_on_material_side(), and Slic3r::wipe_path_support_score().