/* * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::Painting { class SVGPathPaintable final : public SVGGraphicsPaintable { JS_CELL(SVGPathPaintable, SVGGraphicsPaintable); public: static JS::NonnullGCPtr create(Layout::SVGGraphicsBox const&); virtual TraversalDecision hit_test(CSSPixelPoint, HitTestType, Function const& callback) const override; virtual void paint(PaintContext&, PaintPhase) const override; Layout::SVGGraphicsBox const& layout_box() const; void set_computed_path(Gfx::Path path) { m_computed_path = move(path); } Optional const& computed_path() const { return m_computed_path; } protected: SVGPathPaintable(Layout::SVGGraphicsBox const&); Optional m_computed_path = {}; }; }