chromium/cc/base/math_util.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.

#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
#pragma allow_unsafe_buffers
#endif

#ifndef CC_BASE_MATH_UTIL_H_
#define CC_BASE_MATH_UTIL_H_

#include <algorithm>
#include <cmath>
#include <limits>

#include "base/check.h"
#include "build/build_config.h"
#include "cc/base/base_export.h"
#include "third_party/skia/include/core/SkM44.h"
#include "third_party/skia/include/core/SkScalar.h"
#include "ui/gfx/geometry/box_f.h"
#include "ui/gfx/geometry/point3_f.h"
#include "ui/gfx/geometry/point_f.h"

namespace base {
class Value;
namespace trace_event {
class TracedValue;
}
}  // namespace base

namespace gfx {
class QuadF;
class Rect;
class RectF;
class RRectF;
class Size;
class SizeF;
class Transform;
class Vector2dF;
class Vector2d;
class Vector3dF;
class LinearGradient;
}  // namespace gfx

namespace cc {

struct HomogeneousCoordinate {};

class CC_BASE_EXPORT MathUtil {};

class CC_BASE_EXPORT ScopedSubnormalFloatDisabler {};

}  // namespace cc

#endif  // CC_BASE_MATH_UTIL_H_