Public Types | |
| enum class | FacetEdgeType { General , Top , Bottom , TopBottom , Horizontal , Slab } |
| enum | { EDGE0_NO_NEIGHBOR = 0x001 , EDGE1_NO_NEIGHBOR = 0x002 , EDGE2_NO_NEIGHBOR = 0x004 , EDGE0_FOLD = 0x010 , EDGE1_FOLD = 0x020 , EDGE2_FOLD = 0x040 , NO_SEED = 0x100 , SKIP = 0x200 } |
| enum class | Source { BottomPlane , TopPlane , Slab } |
| using | Scalar = Point::Scalar |
Public Member Functions | |
| IntersectionLine ()=default | |
| bool | skip () const |
| void | set_skip () |
| bool | is_seed_candidate () const |
| void | set_no_seed (bool set) |
| void | reverse () |
| operator Lines () const | |
| void | scale (double factor) |
| void | translate (const Point &v) |
| void | translate (double x, double y) |
| void | rotate (double angle, const Point ¢er) |
| double | length () const |
| Point | midpoint () const |
| bool | intersection_infinite (const Line &other, Point *point) const |
| bool | operator== (const Line &rhs) const |
| double | distance_to_squared (const Point &point) const |
| double | distance_to_squared (const Point &point, Point *closest_point) const |
| double | distance_to (const Point &point) const |
| double | distance_to_infinite_squared (const Point &point, Point *closest_point) const |
| double | perp_distance_to (const Point &point) const |
| bool | parallel_to (double angle) const |
| bool | parallel_to (const Line &line) const |
| bool | perpendicular_to (double angle) const |
| bool | perpendicular_to (const Line &line) const |
| double | atan2_ () const |
| double | orientation () const |
| double | direction () const |
| Vector | vector () const |
| Vector | normal () const |
| bool | intersection (const Line &line, Point *intersection) const |
| bool | clip_with_bbox (const BoundingBox &bbox) |
| void | extend (double offset) |
| bool | overlap (const Line &line, double &overlap_length) const |
Static Public Member Functions | |
| static double | distance_to_squared (const Point &point, const Point &a, const Point &b) |
| static double | distance_to (const Point &point, const Point &a, const Point &b) |
| static double | distance_to_infinite_squared (const Point &point, const Point &a, const Point &b) |
| static double | distance_to_infinite (const Point &point, const Point &a, const Point &b) |
Public Attributes | |
| int | a_id { -1 } |
| int | b_id { -1 } |
| int | edge_a_id { -1 } |
| int | edge_b_id { -1 } |
| FacetEdgeType | edge_type { FacetEdgeType::General } |
| uint32_t | flags { 0 } |
| Source | source { Source::BottomPlane } |
| Point | a |
| Point | b |
Static Public Attributes | |
| static const constexpr int | Dim = 2 |
|
inherited |
| anonymous enum |
| Enumerator | |
|---|---|
| EDGE0_NO_NEIGHBOR | |
| EDGE1_NO_NEIGHBOR | |
| EDGE2_NO_NEIGHBOR | |
| EDGE0_FOLD | |
| EDGE1_FOLD | |
| EDGE2_FOLD | |
| NO_SEED | |
| SKIP | |
|
strong |
| Enumerator | |
|---|---|
| General | |
| Top | |
| Bottom | |
| TopBottom | |
| Horizontal | |
| Slab | |
|
strong |
|
default |
|
inlineinherited |
|
inherited |
References a, b, Slic3r::Geometry::liang_barsky_line_clipping(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, and Slic3r::BoundingBoxBase< PointType, APointsType >::min.
|
inherited |
References atan2_(), EPSILON, and PI.
Referenced by Slic3r::BridgeDetector::bridge_direction_candidates(), Slic3r::Polyline::is_straight(), parallel_to(), and perpendicular_to().
|
inlineinherited |
References a, b, and distance_to().
Referenced by distance_to(), Slic3r::remove_collinear(), Slic3r::segment_is_supported(), and Slic3r::Geometry::MedialAxis::validate_edge().
|
inlinestaticinherited |
References a, b, and distance_to_squared().
|
inlinestaticinherited |
References a, b, and distance_to_infinite_squared().
Referenced by Slic3r::Arachne::ExtrusionLine::simplify(), and Slic3r::Arachne::simplify().
|
inlinestaticinherited |
References Line(), a, b, and Slic3r::line_alg::distance_to_infinite_squared().
|
inlineinherited |
References Slic3r::line_alg::distance_to_infinite_squared().
Referenced by Slic3r::Geometry::VoronoiUtils::discretize_parabola(), distance_to_infinite(), Slic3r::Arachne::SkeletalTrapezoidationGraph::makeRib(), Slic3r::Arachne::ExtrusionLine::simplify(), and Slic3r::Arachne::simplify().
|
inlineinherited |
References a, b, and distance_to_squared().
Referenced by Slic3r::MultiPoint::_douglas_peucker(), Slic3r::FillAdaptive::connect_lines_using_hooks(), distance_to(), distance_to_squared(), Slic3r::initial_connector_is_clear(), Slic3r::Arachne::SkeletalTrapezoidationGraph::insertRib(), Slic3r::PaintedLineVisitor::operator()(), Slic3r::restore_source_path_order(), Slic3r::GCodeWriter::spiral_lift_fits_printable_area(), Slic3r::FillLightning::Node::straighten(), and Slic3r::support_offset_at_start().
|
inlinestaticinherited |
References Line(), a, b, and Slic3r::line_alg::distance_to_squared().
|
inlineinherited |
|
inherited |
References a, b, Slic3r::cast(), Slic3r::offset(), and vector().
Referenced by Slic3r::FillAdaptive::create_offset_line(), Slic3r::WipeTower2::generate_rib_polygon(), Slic3r::WipeTower::generate_rib_polygon(), and Slic3r::line_intersection_with_epsilon().
References Line(), intersection(), Slic3r::line_alg::intersection(), and Slic3r::l2().
Referenced by Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::Polygon::first_intersection(), intersection(), Slic3r::Polygon::intersection(), Slic3r::Polygon::intersections(), Slic3r::ConflictChecker::line_intersect(), and Slic3r::line_intersection_with_epsilon().
References Line(), a, b, Slic3r::cast(), Slic3r::cross2(), and EPSILON.
Referenced by Slic3r::Arachne::ExtrusionLine::simplify(), and Slic3r::Arachne::simplify().
|
inline |
|
inlineinherited |
Referenced by Slic3r::GCode::_extrude(), Slic3r::sla::ConcaveHull::add_connector_rectangles(), Slic3r::can_line_note_be_removed(), Slic3r::colorize_line(), Slic3r::BridgeDetector::detect_angle(), Slic3r::filter_colorized_polygon(), Slic3r::filter_painted_lines(), Slic3r::filter_vibrating_extrusions(), Slic3r::WipeTower2::generate_rib_polygon(), Slic3r::WipeTower::generate_rib_polygon(), Slic3r::PaintedLineVisitor::operator()(), overlap(), Slic3r::thick_lines_to_geometry(), Slic3r::thick_polyline_to_extrusion_paths_2(), Slic3r::thick_polyline_to_multi_path(), and Slic3r::AvoidCrossingPerimeters::travel_to().
|
inlineinherited |
|
inlineinherited |
Referenced by Slic3r::avoid_perimeters_inner(), and Slic3r::thick_lines_to_geometry().
|
inlineexplicitinherited |
|
inlineinherited |
|
inherited |
References Slic3r::angle(), atan2_(), and PI.
Referenced by Slic3r::Geometry::MedialAxis::validate_edge().
|
inherited |
References Line(), a, b, EPSILON, length(), parallel_to(), and Slic3r::scaled().
Referenced by Slic3r::ConflictChecker::line_intersect().
|
inherited |
References Line(), a, b, Slic3r::cast(), Slic3r::cross2(), EPSILON, and Slic3r::sqr().
|
inherited |
References Slic3r::angle(), direction(), and Slic3r::Geometry::directions_parallel().
Referenced by overlap().
|
inherited |
References Line(), a, b, Slic3r::cast(), and Slic3r::cross2().
|
inherited |
References Line(), a, b, Slic3r::cast(), EPSILON, and Slic3r::sqr().
|
inherited |
References Slic3r::angle(), direction(), and Slic3r::Geometry::directions_perpendicular().
|
inline |
References Slic3r::Line::a, a_id, Slic3r::Line::b, b_id, edge_a_id, and edge_b_id.
Referenced by Slic3r::slice_facet_with_slabs().
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inline |
Referenced by Slic3r::chain_lines_by_triangle_connectivity().
|
inline |
|
inlineinherited |
Referenced by Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::FillAdaptive::create_offset_line(), Slic3r::WipeTower2::generate_rib_polygon(), and Slic3r::WipeTower::generate_rib_polygon().
|
inlineinherited |
References translate().
Referenced by translate().
|
inlineinherited |
Referenced by Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::contours_simplified(), Slic3r::EdgeGrid::Grid::contours_simplified(), extend(), Slic3r::PaintedLineVisitor::operator()(), and Slic3r::thick_lines_to_geometry().
|
inherited |
Referenced by Slic3r::CurledLine::CurledLine(), Slic3r::CurledLine::CurledLine(), Line(), Slic3r::ThickLine::ThickLine(), Slic3r::ThickLine::ThickLine(), Slic3r::Voronoi::annotate_inside_outside(), Slic3r::any_expolygon_contains(), Slic3r::are_lines_overlapping_in_y_axes(), atan2_(), Slic3r::build_graph(), Slic3r::build_offset_polyline(), Slic3r::Point::ccw(), Slic3r::chain_lines(), Slic3r::chain_lines_by_triangle_connectivity(), clip_with_bbox(), Slic3r::anonymous_namespace{ExclusionVolumePathCheck.cpp}::collinear_segments_overlap(), Slic3r::colorize_line(), anonymous_namespace{IntersectionPoints.cpp}::compute_intersections(), Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::ExPolygon::contains(), Slic3r::Voronoi::contour_point(), Slic3r::Voronoi::contour_point(), libvgcode::convert_lines_to_vertices(), Slic3r::BridgeDetector::detect_angle(), Slic3r::Voronoi::detail::dist_to_site(), distance_to(), distance_to(), distance_to_infinite(), distance_to_infinite_squared(), distance_to_squared(), distance_to_squared(), Slic3r::Algorithm::do_split_line(), Slic3r::SVG::draw(), Slic3r::SVG::draw(), Slic3r::Voronoi::edge_offset_contour_intersections(), extend(), Slic3r::filter_painted_lines(), Slic3r::MultiPoint::first_intersection(), Slic3r::Polygon::first_intersection(), Slic3r::Geometry::foot_pt(), Slic3r::FillAdaptive::generate_infill_lines_recursive(), Slic3r::generate_rectange(), boost::polygon::segment_traits< Slic3r::ColoredLine >::get(), boost::polygon::segment_traits< Slic3r::Line >::get(), intersection_infinite(), Slic3r::Polygon::intersections(), Slic3r::is_point_closer_to_beginning_of_line(), Slic3r::join_close_ends(), length(), Slic3r::ConflictChecker::line_intersect(), Slic3r::Voronoi::detail::line_point_equal_distance_points(), Slic3r::RasterizationImpl::line_rasterization(), midpoint(), Slic3r::FillAdaptive::mk_rtree_seg(), Slic3r::need_wipe(), normal(), Slic3r::Voronoi::offset(), Slic3r::Voronoi::detail::on_site(), Slic3r::LineHash::operator()(), Slic3r::PaintedLineVisitor::operator()(), operator==(), Slic3r::Geometry::orientation_of_two_edges(), overlap(), Slic3r::anonymous_namespace{ExclusionVolumePathCheck.cpp}::overlaps_collinear_boundary(), parallel_to(), perp_distance_to(), perpendicular_to(), Slic3r::Algorithm::point_on_line(), Slic3r::Voronoi::detail::point_segment_dr_dl_thresholds(), Slic3r::Voronoi::detail::point_segment_skeleton_thresholds(), Slic3r::points_inside(), Slic3r::FillLightning::polygonCollidesWithLineSegment(), Slic3r::post_process_painted_lines(), Slic3r::project_line_on_line(), Slic3r::Point::projection_onto(), Slic3r::IntersectionLine::reverse(), reverse(), rotate(), scale(), Slic3r::Voronoi::signed_vertex_distances(), Slic3r::Voronoi::skeleton_edges_rough(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), Slic3r::slice_facet_with_slabs(), Slic3r::support_offset_at_start(), Slic3r::thick_lines_to_geometry(), Slic3r::thick_polyline_to_extrusion_paths_2(), Slic3r::thick_polyline_to_multi_path(), translate(), Slic3r::Geometry::MedialAxis::validate_edge(), vector(), Slic3r::Voronoi::debug::verify_twin_halfedges_successive(), and Slic3r::wipe_path_stays_on_material_side().
| int Slic3r::IntersectionLine::a_id { -1 } |
Referenced by Slic3r::chain_lines_by_triangle_connectivity(), Slic3r::cut_mesh(), reverse(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), and Slic3r::slice_facet_with_slabs().
|
inherited |
Referenced by Slic3r::CurledLine::CurledLine(), Slic3r::CurledLine::CurledLine(), Slic3r::FillAdaptive::Intersection::Intersection(), Line(), Slic3r::ThickLine::ThickLine(), Slic3r::ThickLine::ThickLine(), Slic3r::GCode::_extrude(), Slic3r::Voronoi::annotate_inside_outside(), Slic3r::any_expolygon_contains(), Slic3r::are_lines_overlapping_in_y_axes(), atan2_(), Slic3r::build_graph(), Slic3r::build_offset_polyline(), Slic3r::Point::ccw(), Slic3r::chain_lines(), Slic3r::chain_lines_by_triangle_connectivity(), clip_with_bbox(), Slic3r::anonymous_namespace{ExclusionVolumePathCheck.cpp}::collinear_segments_overlap(), Slic3r::colorize_line(), anonymous_namespace{IntersectionPoints.cpp}::compute_intersections(), Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::ExPolygon::contains(), Slic3r::Voronoi::contour_point(), Slic3r::Voronoi::contour_point(), libvgcode::convert_lines_to_vertices(), Slic3r::BridgeDetector::detect_angle(), Slic3r::Voronoi::detail::dist_to_site(), distance_to(), distance_to(), distance_to_infinite(), distance_to_infinite_squared(), distance_to_squared(), distance_to_squared(), Slic3r::Algorithm::do_split_line(), Slic3r::SVG::draw(), Slic3r::SVG::draw(), Slic3r::Voronoi::edge_offset_contour_intersections(), extend(), Slic3r::filter_painted_lines(), Slic3r::Polygon::first_intersection(), Slic3r::Geometry::foot_pt(), Slic3r::FillAdaptive::generate_infill_lines_recursive(), Slic3r::generate_rectange(), boost::polygon::segment_traits< Slic3r::ColoredLine >::get(), boost::polygon::segment_traits< Slic3r::Line >::get(), intersection_infinite(), Slic3r::Polygon::intersections(), Slic3r::is_point_closer_to_beginning_of_line(), Slic3r::join_close_ends(), length(), Slic3r::ConflictChecker::line_intersect(), Slic3r::Voronoi::detail::line_point_equal_distance_points(), Slic3r::RasterizationImpl::line_rasterization(), midpoint(), Slic3r::FillAdaptive::mk_rtree_seg(), Slic3r::need_wipe(), normal(), Slic3r::Voronoi::offset(), Slic3r::Voronoi::detail::on_site(), Slic3r::LineHash::operator()(), Slic3r::PaintedLineVisitor::operator()(), operator==(), Slic3r::Geometry::orientation_of_two_edges(), overlap(), Slic3r::anonymous_namespace{ExclusionVolumePathCheck.cpp}::overlaps_collinear_boundary(), parallel_to(), perp_distance_to(), perpendicular_to(), Slic3r::Algorithm::point_on_line(), Slic3r::Voronoi::detail::point_segment_dr_dl_thresholds(), Slic3r::Voronoi::detail::point_segment_skeleton_thresholds(), Slic3r::points_inside(), Slic3r::FillLightning::polygonCollidesWithLineSegment(), Slic3r::post_process_painted_lines(), Slic3r::project_line_on_line(), Slic3r::Point::projection_onto(), Slic3r::IntersectionLine::reverse(), reverse(), rotate(), scale(), Slic3r::Voronoi::signed_vertex_distances(), Slic3r::Voronoi::skeleton_edges_rough(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), Slic3r::slice_facet_with_slabs(), Slic3r::support_offset_at_start(), Slic3r::thick_lines_to_geometry(), Slic3r::thick_polyline_to_extrusion_paths_2(), Slic3r::thick_polyline_to_multi_path(), translate(), Slic3r::Geometry::MedialAxis::validate_edge(), vector(), Slic3r::Voronoi::debug::verify_twin_halfedges_successive(), and Slic3r::wipe_path_stays_on_material_side().
| int Slic3r::IntersectionLine::b_id { -1 } |
Referenced by Slic3r::chain_lines_by_triangle_connectivity(), Slic3r::cut_mesh(), reverse(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), and Slic3r::slice_facet_with_slabs().
|
staticconstexprinherited |
| int Slic3r::IntersectionLine::edge_a_id { -1 } |
Referenced by Slic3r::chain_lines_by_triangle_connectivity(), Slic3r::cut_mesh(), reverse(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), and Slic3r::slice_facet_with_slabs().
| int Slic3r::IntersectionLine::edge_b_id { -1 } |
Referenced by Slic3r::chain_lines_by_triangle_connectivity(), Slic3r::cut_mesh(), reverse(), Slic3r::slice_facet(), Slic3r::slice_facet_for_cut_mesh(), and Slic3r::slice_facet_with_slabs().
| FacetEdgeType Slic3r::IntersectionLine::edge_type { FacetEdgeType::General } |
| uint32_t Slic3r::IntersectionLine::flags { 0 } |
Referenced by is_seed_candidate(), set_no_seed(), set_skip(), and skip().
| Source Slic3r::IntersectionLine::source { Source::BottomPlane } |