#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/platform/transforms/transform_operations.h"
#include <algorithm>
#include "third_party/blink/renderer/platform/geometry/blend.h"
#include "third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h"
#include "third_party/blink/renderer/platform/transforms/matrix_3d_transform_operation.h"
#include "third_party/blink/renderer/platform/transforms/rotate_transform_operation.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "ui/gfx/geometry/box_f.h"
namespace blink {
namespace {
ApplyCallback;
TransformOperations ApplyFunctionToMatchingPrefix(
ApplyCallback apply_cb,
const TransformOperations& from,
const TransformOperations& to,
wtf_size_t matching_prefix_length,
bool* success) { … }
}
bool TransformOperations::operator==(const TransformOperations& o) const { … }
void TransformOperations::ApplyRemaining(const gfx::SizeF& border_box_size,
wtf_size_t start,
gfx::Transform& t) const { … }
TransformOperation::BoxSizeDependency TransformOperations::BoxSizeDependencies(
wtf_size_t start) const { … }
wtf_size_t TransformOperations::MatchingPrefixLength(
const TransformOperations& other) const { … }
TransformOperation*
TransformOperations::BlendRemainingByUsingMatrixInterpolation(
const TransformOperations& from,
wtf_size_t matching_prefix_length,
double progress,
BoxSizeDependentMatrixBlending box_size_dependent) const { … }
TransformOperations TransformOperations::Blend(
const TransformOperations& from,
double progress,
BoxSizeDependentMatrixBlending box_size_dependent) const { … }
TransformOperations TransformOperations::Accumulate(
const TransformOperations& to) const { … }
static void FindCandidatesInPlane(double px,
double py,
double nz,
double* candidates,
int* num_candidates) { … }
static void BoundingBoxForArc(const gfx::Point3F& point,
const RotateTransformOperation& from_transform,
const RotateTransformOperation& to_transform,
double min_progress,
double max_progress,
gfx::BoxF& box) { … }
bool TransformOperations::BlendedBoundsForBox(const gfx::BoxF& box,
const TransformOperations& from,
const double& min_progress,
const double& max_progress,
gfx::BoxF* bounds) const { … }
TransformOperations TransformOperations::Add(
const TransformOperations& addend) const { … }
TransformOperations TransformOperations::Zoom(double factor) const { … }
}