1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-18 21:02:07 +00:00

LibGfx: Make Gfx::Path const-correct internally (segment list)

This commit is contained in:
Andreas Kling 2023-02-19 23:32:36 +01:00
parent 485958bb6f
commit ca44b26b2a
2 changed files with 4 additions and 4 deletions

View file

@ -291,7 +291,7 @@ void Path::segmentize_path()
break; break;
} }
case Segment::Type::QuadraticBezierCurveTo: { case Segment::Type::QuadraticBezierCurveTo: {
auto control = static_cast<QuadraticBezierCurveSegment&>(segment).through(); auto control = static_cast<QuadraticBezierCurveSegment const&>(segment).through();
Painter::for_each_line_segment_on_bezier_curve(control, cursor, segment.point(), [&](FloatPoint p0, FloatPoint p1) { Painter::for_each_line_segment_on_bezier_curve(control, cursor, segment.point(), [&](FloatPoint p0, FloatPoint p1) {
add_line(p0, p1); add_line(p0, p1);
}); });
@ -309,7 +309,7 @@ void Path::segmentize_path()
break; break;
} }
case Segment::Type::EllipticalArcTo: { case Segment::Type::EllipticalArcTo: {
auto& arc = static_cast<EllipticalArcSegment&>(segment); auto& arc = static_cast<EllipticalArcSegment const&>(segment);
Painter::for_each_line_segment_on_elliptical_arc(cursor, arc.point(), arc.center(), arc.radii(), arc.x_axis_rotation(), arc.theta_1(), arc.theta_delta(), [&](FloatPoint p0, FloatPoint p1) { Painter::for_each_line_segment_on_elliptical_arc(cursor, arc.point(), arc.center(), arc.radii(), arc.x_axis_rotation(), arc.theta_1(), arc.theta_delta(), [&](FloatPoint p0, FloatPoint p1) {
add_line(p0, p1); add_line(p0, p1);
}); });

View file

@ -218,7 +218,7 @@ public:
float x; float x;
}; };
NonnullRefPtrVector<Segment> const& segments() const { return m_segments; } NonnullRefPtrVector<Segment const> const& segments() const { return m_segments; }
auto& split_lines() const auto& split_lines() const
{ {
if (!m_split_lines.has_value()) { if (!m_split_lines.has_value()) {
@ -268,7 +268,7 @@ private:
m_segments.append(adopt_ref(*new T(forward<Args>(args)...))); m_segments.append(adopt_ref(*new T(forward<Args>(args)...)));
} }
NonnullRefPtrVector<Segment> m_segments {}; NonnullRefPtrVector<Segment const> m_segments {};
Optional<Vector<SplitLineSegment>> m_split_lines {}; Optional<Vector<SplitLineSegment>> m_split_lines {};
Optional<Gfx::FloatRect> m_bounding_box; Optional<Gfx::FloatRect> m_bounding_box;