/* * Copyright (c) 2025, Tim Ledbetter * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Web::SVG { // https://www.w3.org/TR/filter-effects-1/#svgfemorphologyelement class SVGFEMorphologyElement final : public SVGElement , public SVGFilterPrimitiveStandardAttributes { WEB_PLATFORM_OBJECT(SVGFEMorphologyElement, SVGElement); GC_DECLARE_ALLOCATOR(SVGFEMorphologyElement); public: virtual ~SVGFEMorphologyElement() override = default; GC::Ref in1(); GC::Ref operator_for_bindings(); Gfx::MorphologyOperator morphology_operator() { return m_morphology_operator; } GC::Ref radius_x(); GC::Ref radius_y(); private: SVGFEMorphologyElement(DOM::Document&, DOM::QualifiedName); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; virtual void attribute_changed(FlyString const& name, Optional const& old_value, Optional const& new_value, Optional const& namespace_) override; GC::Ptr m_in1; Gfx::MorphologyOperator m_morphology_operator { Gfx::MorphologyOperator::Erode }; GC::Ptr m_radius_x; GC::Ptr m_radius_y; }; }