mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-01 13:44:21 +00:00
LibGfx: Add relative to last point mode to Path::append_path()
This commit is contained in:
parent
702ff7eb46
commit
d62d5079f4
|
@ -417,6 +417,19 @@ Path Path::copy_transformed(Gfx::AffineTransform const& transform) const
|
|||
return result;
|
||||
}
|
||||
|
||||
void Path::append_path(Path const& path, AppendRelativeToLastPoint relative_to_last_point)
|
||||
{
|
||||
auto previous_last_point = last_point();
|
||||
auto new_points_start = m_points.size();
|
||||
m_commands.extend(path.m_commands);
|
||||
m_points.extend(path.m_points);
|
||||
if (relative_to_last_point == AppendRelativeToLastPoint::Yes) {
|
||||
for (size_t i = new_points_start; i < m_points.size(); i++)
|
||||
m_points[i] += previous_last_point;
|
||||
}
|
||||
invalidate_split_lines();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
struct RoundTrip {
|
||||
RoundTrip(ReadonlySpan<T> span)
|
||||
|
|
|
@ -227,12 +227,12 @@ public:
|
|||
return m_split_lines->bounding_box;
|
||||
}
|
||||
|
||||
void append_path(Path const& path)
|
||||
{
|
||||
m_commands.extend(path.m_commands);
|
||||
m_points.extend(path.m_points);
|
||||
invalidate_split_lines();
|
||||
}
|
||||
enum class AppendRelativeToLastPoint {
|
||||
Yes,
|
||||
No
|
||||
};
|
||||
|
||||
void append_path(Path const& path, AppendRelativeToLastPoint = AppendRelativeToLastPoint::No);
|
||||
|
||||
ByteString to_byte_string() const;
|
||||
|
||||
|
|
Loading…
Reference in a new issue