chromium/ui/gfx/geometry/transform_operations.h

// Copyright 2013 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_TRANSFORM_OPERATIONS_H_
#define UI_GFX_GEOMETRY_TRANSFORM_OPERATIONS_H_

#include <memory>
#include <optional>
#include <unordered_map>
#include <vector>

#include "base/check_op.h"
#include "base/gtest_prod_util.h"
#include "ui/gfx/geometry/geometry_skia_export.h"
#include "ui/gfx/geometry/transform.h"
#include "ui/gfx/geometry/transform_operation.h"

namespace gfx {

class BoxF;
struct DecomposedTransform;

// Transform operations are a decomposed transformation matrix. It can be
// applied to obtain a Transform at any time, and can be blended
// intelligently with other transform operations, so long as they represent the
// same decomposition. For example, if we have a transform that is made up of
// a rotation followed by skew, it can be blended intelligently with another
// transform made up of a rotation followed by a skew. Blending is possible if
// we have two dissimilar sets of transform operations, but the effect may not
// be what was intended. For more information, see the comments for the blend
// function below.
class GEOMETRY_SKIA_EXPORT TransformOperations {};

}  // namespace gfx

#endif  // UI_GFX_GEOMETRY_TRANSFORM_OPERATIONS_H_