/* * Copyright (c) 2024, MacDue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::Layout { class SVGClipBox final : public SVGBox { GC_CELL(SVGClipBox, SVGBox); GC_DECLARE_ALLOCATOR(SVGClipBox); public: SVGClipBox(DOM::Document&, SVG::SVGClipPathElement&, GC::Ref); virtual ~SVGClipBox() override = default; SVG::SVGClipPathElement& dom_node() { return as(SVGBox::dom_node()); } SVG::SVGClipPathElement const& dom_node() const { return as(SVGBox::dom_node()); } virtual GC::Ptr create_paintable() const override; private: virtual bool is_svg_clip_box() const final { return true; } }; template<> inline bool Node::fast_is() const { return is_svg_clip_box(); } }