text: // Copyright 2019 The Fuchsia Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef SRC_GRAPHICS_LIB_COMPUTE_TESTS_COMMON_SVG_SVG_BOUNDS_H_
  #define SRC_GRAPHICS_LIB_COMPUTE_TESTS_COMMON_SVG_SVG_BOUNDS_H_
  
  #include "svg/svg.h"
  #include "tests/common/affine_transform.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  // Return an estimate of the bounds of an SVG document, after an optional
  // affine transform is applied to its input geometry. |svg| is the input svg
  // document and |transform| is NULL or a pointer to an affine transform.
  // On exit, sets |*xmin|, |*ymin|, |*xmax| and |*ymax| to appropriate values.
  //
  // Note that an empty document will return values where
  // |*xmin > *xmax && *ymin > *ymax|.
  //
  extern void
  svg_estimate_bounds(const struct svg *         svg,
                      const affine_transform_t * transform,
                      double *                   xmin,
                      double *                   ymin,
                      double *                   xmax,
                      double *                   ymax);
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif  // SRC_GRAPHICS_LIB_COMPUTE_TESTS_COMMON_SVG_SVG_BOUNDS_H_
  