SVGViewport.h 774 B

1234567891011121314151617181920212223242526272829
  1. /*
  2. * Copyright (c) 2024, MacDue <macdue@dueutil.tech>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Math.h>
  8. #include <LibWeb/SVG/AttributeParser.h>
  9. #include <LibWeb/SVG/ViewBox.h>
  10. namespace Web::SVG {
  11. class SVGViewport {
  12. public:
  13. virtual Optional<ViewBox> view_box() const = 0;
  14. virtual Optional<PreserveAspectRatio> preserve_aspect_ratio() const = 0;
  15. virtual ~SVGViewport() = default;
  16. };
  17. inline CSSPixels normalized_diagonal_length(CSSPixelSize viewport_size)
  18. {
  19. if (viewport_size.width() == viewport_size.height())
  20. return viewport_size.width();
  21. return sqrt((viewport_size.width() * viewport_size.width()) + (viewport_size.height() * viewport_size.height())) / CSSPixels::nearest_value_for(AK::Sqrt2<float>);
  22. }
  23. }