chromium/ui/gfx/geometry/point_f.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_GFX_GEOMETRY_POINT_F_H_
#define UI_GFX_GEOMETRY_POINT_F_H_

#include <iosfwd>
#include <string>
#include <tuple>

#include "build/build_config.h"
#include "ui/gfx/geometry/geometry_export.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/vector2d_f.h"

#if BUILDFLAG(IS_APPLE)
struct CGPoint;
#endif

namespace perfetto {
class TracedValue;
}
namespace gfx {

// A floating version of gfx::Point.
class GEOMETRY_EXPORT PointF {};

constexpr bool operator==(const PointF& lhs, const PointF& rhs) {}

constexpr bool operator!=(const PointF& lhs, const PointF& rhs) {}

constexpr PointF operator+(const PointF& lhs, const Vector2dF& rhs) {}

constexpr PointF operator-(const PointF& lhs, const Vector2dF& rhs) {}

inline Vector2dF operator-(const PointF& lhs, const PointF& rhs) {}

inline PointF PointAtOffsetFromOrigin(const Vector2dF& offset_from_origin) {}

GEOMETRY_EXPORT PointF ScalePoint(const PointF& p,
                                  float x_scale,
                                  float y_scale);

inline PointF ScalePoint(const PointF& p, float scale) {}

inline PointF TransposePoint(const PointF& p) {}

// This is declared here for use in gtest-based unit tests but is defined in
// the //ui/gfx:test_support target. Depend on that to use this in your unit
// test. This should not be used in production code - call ToString() instead.
void PrintTo(const PointF& point, ::std::ostream* os);

}  // namespace gfx

#endif  // UI_GFX_GEOMETRY_POINT_F_H_