/* * Copyright (c) 2022, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::SVG { class SVGEllipseElement final : public SVGGeometryElement { WEB_PLATFORM_OBJECT(SVGEllipseElement, SVGGeometryElement); GC_DECLARE_ALLOCATOR(SVGEllipseElement); public: virtual ~SVGEllipseElement() override = default; virtual void attribute_changed(FlyString const& name, Optional const& old_value, Optional const& value, Optional const& namespace_) override; virtual Gfx::Path get_path(CSSPixelSize viewport_size) override; GC::Ref cx() const; GC::Ref cy() const; GC::Ref rx() const; GC::Ref ry() const; private: SVGEllipseElement(DOM::Document&, DOM::QualifiedName); virtual void initialize(JS::Realm&) override; Optional m_center_x; Optional m_center_y; Optional m_radius_x; Optional m_radius_y; }; }