/* * Copyright (c) 2026, Luke Wilde * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Web::SVG { class SVGFETurbulenceElement final : public SVGElement , public SVGFilterPrimitiveStandardAttributes { WEB_PLATFORM_OBJECT(SVGFETurbulenceElement, SVGElement); GC_DECLARE_ALLOCATOR(SVGFETurbulenceElement); public: enum class TurbulenceType { Unknown = 0, FractalNoise = 1, Turbulence = 2, }; enum class StitchType { Unknown = 0, Stitch = 1, NoStitch = 2, }; virtual ~SVGFETurbulenceElement() override = default; GC::Ref base_frequency_x(); GC::Ref base_frequency_y(); GC::Ref num_octaves(); GC::Ref seed(); GC::Ref stitch_tiles(); GC::Ref type(); protected: SVGFETurbulenceElement(DOM::Document&, DOM::QualifiedName); virtual void initialize(JS::Realm&) override; private: virtual void visit_edges(Cell::Visitor&) override; GC::Ptr m_base_frequency_x; GC::Ptr m_base_frequency_y; GC::Ptr m_num_octaves; GC::Ptr m_seed; GC::Ptr m_stitch_tiles; GC::Ptr m_type; }; }