OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ThickLine Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Line.hpp>

Inheritance diagram for Slic3r::ThickLine:
Collaboration diagram for Slic3r::ThickLine:

Public Types

using Scalar = Point::Scalar

Public Member Functions

 ThickLine ()
 ThickLine (const Point &a, const Point &b)
 ThickLine (const Point &a, const Point &b, double wa, double wb)
 operator Lines () const
void scale (double factor)
void translate (const Point &v)
void translate (double x, double y)
void rotate (double angle, const Point &center)
void reverse ()
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

double a_width
double b_width
Point a
Point b

Static Public Attributes

static const constexpr int Dim = 2

Detailed Description

Member Typedef Documentation

◆ Scalar

using Slic3r::Line::Scalar = Point::Scalar
inherited

Constructor & Destructor Documentation

◆ ThickLine() [1/3]

Slic3r::ThickLine::ThickLine ( )
inline
208: a_width(0), b_width(0) {}
double b_width
Definition Line.hpp:212
double a_width
Definition Line.hpp:212

References a_width, and b_width.

◆ ThickLine() [2/3]

Slic3r::ThickLine::ThickLine ( const Point & a,
const Point & b )
inline
209: Line(a, b), a_width(0), b_width(0) {}
Point b
Definition Line.hpp:199
Point a
Definition Line.hpp:198
Line()
Definition Line.hpp:158

References Slic3r::Line::Line(), Slic3r::Line::a, a_width, Slic3r::Line::b, and b_width.

Here is the call graph for this function:

◆ ThickLine() [3/3]

Slic3r::ThickLine::ThickLine ( const Point & a,
const Point & b,
double wa,
double wb )
inline
210: Line(a, b), a_width(wa), b_width(wb) {}

References Slic3r::Line::Line(), Slic3r::Line::a, a_width, Slic3r::Line::b, and b_width.

Here is the call graph for this function:

Member Function Documentation

◆ atan2_()

double Slic3r::Line::atan2_ ( ) const
inlineinherited
179{ return atan2(this->b(1) - this->a(1), this->b(0) - this->a(0)); }

References a, and b.

Referenced by direction(), and orientation().

Here is the caller graph for this function:

◆ clip_with_bbox()

bool Slic3r::Line::clip_with_bbox ( const BoundingBox & bbox)
inherited
116{
117 Vec2d x0clip, x1clip;
118 bool result = Geometry::liang_barsky_line_clipping<double>(this->a.cast<double>(), this->b.cast<double>(), BoundingBoxf(bbox.min.cast<double>(), bbox.max.cast<double>()), x0clip, x1clip);
119 if (result) {
120 this->a = x0clip.cast<coord_t>();
121 this->b = x1clip.cast<coord_t>();
122 }
123 return result;
124}
int64_t coord_t
Definition libslic3r.h:48
bool liang_barsky_line_clipping(Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x0, Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x1, const BoundingBoxBase< Eigen::Matrix< T, 2, 1, Eigen::DontAlign > > &bbox)
Definition Geometry.hpp:272
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > Vec2d
Definition Point.hpp:67

References a, b, Slic3r::Geometry::liang_barsky_line_clipping(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, and Slic3r::BoundingBoxBase< PointType, APointsType >::min.

Here is the call graph for this function:

◆ direction()

double Slic3r::Line::direction ( ) const
inherited
66{
67 double atan2 = this->atan2_();
68 return (fabs(atan2 - PI) < EPSILON) ? 0
69 : (atan2 < 0) ? (atan2 + PI)
70 : atan2;
71}
#define EPSILON
Definition ColorUtils.cpp:64
double atan2_() const
Definition Line.hpp:179
static constexpr double PI
Definition libslic3r.h:81

References atan2_(), EPSILON, and PI.

Referenced by Slic3r::BridgeDetector::bridge_direction_candidates(), Slic3r::Polyline::is_straight(), parallel_to(), and perpendicular_to().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance_to() [1/2]

double Slic3r::Line::distance_to ( const Point & point) const
inlineinherited
172{ return distance_to(point, this->a, this->b); }
double distance_to(const Point &point) const
Definition Line.hpp:172

References a, b, and distance_to().

Referenced by distance_to(), Slic3r::remove_collinear(), Slic3r::segment_is_supported(), and Slic3r::Geometry::MedialAxis::validate_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance_to() [2/2]

double Slic3r::Line::distance_to ( const Point & point,
const Point & a,
const Point & b )
inlinestaticinherited
191{ return sqrt(distance_to_squared(point, a, b)); }
double distance_to_squared(const Point &point) const
Definition Line.hpp:170

References a, b, and distance_to_squared().

Here is the call graph for this function:

◆ distance_to_infinite()

double Slic3r::Line::distance_to_infinite ( const Point & point,
const Point & a,
const Point & b )
inlinestaticinherited
196{ return sqrt(distance_to_infinite_squared(point, a, b)); }
double distance_to_infinite_squared(const Point &point, Point *closest_point) const
Definition Line.hpp:173

References a, b, and distance_to_infinite_squared().

Referenced by Slic3r::Arachne::ExtrusionLine::simplify(), and Slic3r::Arachne::simplify().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance_to_infinite_squared() [1/2]

double Slic3r::Line::distance_to_infinite_squared ( const Point & point,
const Point & a,
const Point & b )
inlinestaticinherited
double distance_to_infinite_squared(const L &line, const Vec< Dim< L >, Scalar< L > > &point, Vec< Dim< L >, Scalar< L > > *closest_point)
Definition Line.hpp:91
Mat< N, 1, T > Vec
Definition Point.hpp:48

References Line(), a, b, and Slic3r::line_alg::distance_to_infinite_squared().

Here is the call graph for this function:

◆ distance_to_infinite_squared() [2/2]

double Slic3r::Line::distance_to_infinite_squared ( const Point & point,
Point * closest_point ) const
inlineinherited
173{ return line_alg::distance_to_infinite_squared(*this, point, closest_point); }

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance_to_squared() [1/3]

double Slic3r::Line::distance_to_squared ( const Point & point) const
inlineinherited
170{ return distance_to_squared(point, this->a, this->b); }

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance_to_squared() [2/3]

double Slic3r::Line::distance_to_squared ( const Point & point,
const Point & a,
const Point & b )
inlinestaticinherited
double distance_to_squared(const L &line, const Vec< Dim< L >, Scalar< L > > &point, Vec< Dim< L >, Scalar< L > > *nearest_point)
Definition Line.hpp:46

References Line(), a, b, and Slic3r::line_alg::distance_to_squared().

Here is the call graph for this function:

◆ distance_to_squared() [3/3]

double Slic3r::Line::distance_to_squared ( const Point & point,
Point * closest_point ) const
inlineinherited
171{ return line_alg::distance_to_squared(*this, point, closest_point); }

References Slic3r::line_alg::distance_to_squared().

Here is the call graph for this function:

◆ extend()

void Slic3r::Line::extend ( double offset)
inherited
127{
128 Vector offset_vector = (offset * this->vector().cast<double>().normalized()).cast<coord_t>();
129 this->a -= offset_vector;
130 this->b += offset_vector;
131}
Vector vector() const
Definition Line.hpp:182
Point Vector
Definition Point.hpp:42
Slic3r::Polygons offset(const Slic3r::Polygon &polygon, const float delta, JoinType joinType, double miterLimit)
Definition ClipperUtils.cpp:582
auto cast(const BoundingBoxBase< Tin > &b)
Definition BoundingBox.hpp:299

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersection()

bool Slic3r::Line::intersection ( const Line & line,
Point * intersection ) const
inherited
111{
112 return line_alg::intersection(*this, l2, intersection);
113}
bool intersection(const Line &line, Point *intersection) const
Definition Line.cpp:110
bool intersection(const L &l1, const L &l2, Vec< Dim< L >, Scalar< L > > *intersection_pt)
Definition Line.hpp:126
T l2(const boost::geometry::model::d2::point_xy< T > &v)
Definition ExtrusionSimulator.cpp:177

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersection_infinite()

bool Slic3r::Line::intersection_infinite ( const Line & other,
Point * point ) const
inherited
28{
29 Vec2d a1 = this->a.cast<double>();
30 Vec2d v12 = (other.a - this->a).cast<double>();
31 Vec2d v1 = (this->b - this->a).cast<double>();
32 Vec2d v2 = (other.b - other.a).cast<double>();
33 double denom = cross2(v1, v2);
34 if (std::fabs(denom) < EPSILON)
35 return false;
36 double t1 = cross2(v12, v2) / denom;
37 Vec2d result = (a1 + t1 * v1);
38 if (result.x() > double(std::numeric_limits<coord_t>::max()) || result.x() < double(std::numeric_limits<coord_t>::lowest()) ||
39 result.y() > double(std::numeric_limits<coord_t>::max()) || result.y() < double(std::numeric_limits<coord_t>::lowest())) {
40 // Intersection has at least one of the coordinates much bigger (or smaller) than coord_t maximum value (or minimum).
41 // So it can not be stored into the Point without integer overflows. That could mean that input lines are parallel or near parallel.
42 return false;
43 }
44 *point = (result).cast<coord_t>();
45 return true;
46}
int32_t cross2(const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v1, const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v2)=delete

References Line(), a, b, Slic3r::cast(), Slic3r::cross2(), and EPSILON.

Referenced by Slic3r::Arachne::ExtrusionLine::simplify(), and Slic3r::Arachne::simplify().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ length()

◆ midpoint()

Point Slic3r::Line::midpoint ( ) const
inlineinherited
167{ return (this->a + this->b) / 2; }

References a, and b.

◆ normal()

Vector Slic3r::Line::normal ( ) const
inlineinherited
183{ return Vector((this->b(1) - this->a(1)), -(this->b(0) - this->a(0))); }

References a, and b.

Referenced by Slic3r::avoid_perimeters_inner(), and Slic3r::thick_lines_to_geometry().

Here is the caller graph for this function:

◆ operator Lines()

Slic3r::Line::operator Lines ( ) const
inlineexplicitinherited
160{ Lines lines; lines.emplace_back(*this); return lines; }
std::vector< Line > Lines
Definition Line.hpp:20

◆ operator==()

bool Slic3r::Line::operator== ( const Line & rhs) const
inlineinherited
169{ return this->a == rhs.a && this->b == rhs.b; }

References Line(), a, and b.

Here is the call graph for this function:

◆ orientation()

double Slic3r::Line::orientation ( ) const
inherited
59{
60 double angle = this->atan2_();
61 if (angle < 0) angle = 2*PI + angle;
62 return angle;
63}
double angle(const Eigen::MatrixBase< Derived > &v1, const Eigen::MatrixBase< Derived2 > &v2)
Definition Point.hpp:138

References Slic3r::angle(), atan2_(), and PI.

Referenced by Slic3r::Geometry::MedialAxis::validate_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ overlap()

bool Slic3r::Line::overlap ( const Line & line,
double & overlap_length ) const
inherited
85{
86 if (!this->parallel_to(line)) return false;
87 Line line_(this->a, line.a);
88 if (line_.length() > scaled(EPSILON) && !this->parallel_to(line_)) return false;
89 coord_t a_min = std::min(this->a.x(), this->b.x());
90 coord_t a_max = std::max(this->a.x(), this->b.x());
91 coord_t b_min = std::min(line.a.x(), line.b.x());
92 coord_t b_max = std::max(line.a.x(), line.b.x());
93 if (a_min>b_max||a_max<b_min) return false;
94 overlap_length = std::max((coord_t)0, std::min(a_max, b_max) - std::max(a_min, b_min));
95 overlap_length /= ((double) a_max - a_min) / this->length();
96 return true;
97}
double length() const
Definition Line.hpp:166
bool parallel_to(double angle) const
Definition Line.cpp:73
BoundingBox scaled(const BoundingBoxf &bb)
Definition BoundingBox.hpp:284

References Line(), a, b, EPSILON, length(), parallel_to(), and Slic3r::scaled().

Referenced by Slic3r::ConflictChecker::line_intersect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_to() [1/2]

bool Slic3r::Line::parallel_to ( const Line & line) const
inherited
79{
80 const Vec2d v1 = (this->b - this->a).cast<double>();
81 const Vec2d v2 = (line.b - line.a).cast<double>();
82 return sqr(cross2(v1, v2)) < sqr(EPSILON) * v1.squaredNorm() * v2.squaredNorm();
83}
constexpr T sqr(T x)
Definition libslic3r.h:301

References Line(), a, b, Slic3r::cast(), Slic3r::cross2(), EPSILON, and Slic3r::sqr().

Here is the call graph for this function:

◆ parallel_to() [2/2]

bool Slic3r::Line::parallel_to ( double angle) const
inherited
74{
76}
double direction() const
Definition Line.cpp:65
bool directions_parallel(double angle1, double angle2, double max_diff)
Definition Geometry.cpp:40

References Slic3r::angle(), direction(), and Slic3r::Geometry::directions_parallel().

Referenced by overlap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ perp_distance_to()

double Slic3r::Line::perp_distance_to ( const Point & point) const
inherited
49{
50 const Line &line = *this;
51 const Vec2d v = (line.b - line.a).cast<double>();
52 const Vec2d va = (point - line.a).cast<double>();
53 if (line.a == line.b)
54 return va.norm();
55 return std::abs(cross2(v, va)) / v.norm();
56}

References Line(), a, b, Slic3r::cast(), and Slic3r::cross2().

Here is the call graph for this function:

◆ perpendicular_to() [1/2]

bool Slic3r::Line::perpendicular_to ( const Line & line) const
inherited
104{
105 const Vec2d v1 = (this->b - this->a).cast<double>();
106 const Vec2d v2 = (line.b - line.a).cast<double>();
107 return sqr(v1.dot(v2)) < sqr(EPSILON) * v1.squaredNorm() * v2.squaredNorm();
108}

References Line(), a, b, Slic3r::cast(), EPSILON, and Slic3r::sqr().

Here is the call graph for this function:

◆ perpendicular_to() [2/2]

bool Slic3r::Line::perpendicular_to ( double angle) const
inherited
99{
101}
bool directions_perpendicular(double angle1, double angle2, double max_diff)
Definition Geometry.cpp:47

References Slic3r::angle(), direction(), and Slic3r::Geometry::directions_perpendicular().

Here is the call graph for this function:

◆ reverse()

void Slic3r::Line::reverse ( )
inlineinherited
165{ std::swap(this->a, this->b); }

References a, and b.

Referenced by Slic3r::PaintedLineVisitor::operator()().

Here is the caller graph for this function:

◆ rotate()

void Slic3r::Line::rotate ( double angle,
const Point & center )
inlineinherited
164{ this->a.rotate(angle, center); this->b.rotate(angle, center); }
void center(ExPolygonsWithIds &e)
Definition Emboss.cpp:1382

References a, Slic3r::angle(), b, and Slic3r::center().

Here is the call graph for this function:

◆ scale()

void Slic3r::Line::scale ( double factor)
inlineinherited
161{ this->a *= factor; this->b *= factor; }

References a, and b.

◆ translate() [1/2]

void Slic3r::Line::translate ( const Point & v)
inlineinherited
162{ this->a += v; this->b += v; }

References a, and b.

Referenced by Slic3r::FillAdaptive::connect_lines_using_hooks(), Slic3r::FillAdaptive::create_offset_line(), Slic3r::WipeTower2::generate_rib_polygon(), and Slic3r::WipeTower::generate_rib_polygon().

Here is the caller graph for this function:

◆ translate() [2/2]

void Slic3r::Line::translate ( double x,
double y )
inlineinherited
163{ this->translate(Point(x, y)); }
void translate(const Point &v)
Definition Line.hpp:162
Kernel::Point_3 Point
Definition MeshRepair.cpp:81

References translate().

Referenced by translate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vector()

Vector Slic3r::Line::vector ( ) const
inlineinherited
182{ return this->b - this->a; }

References a, and b.

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().

Here is the caller graph for this function:

Member Data Documentation

◆ a

Point Slic3r::Line::a
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().

◆ a_width

◆ b

Point Slic3r::Line::b
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().

◆ b_width

◆ Dim

const constexpr int Slic3r::Line::Dim = 2
staticconstexprinherited

The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Line.hpp