/* * Copyright 2023 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkBezierCurves_DEFINED #define SkBezierCurves_DEFINED #include "include/private/base/SkSpan_impl.h" #include <array> struct SkPoint; /** * Utilities for dealing with cubic Bézier curves. These have a start XY * point, an end XY point, and two control XY points in between. They take * a parameter t which is between 0 and 1 (inclusive) which is used to * interpolate between the start and end points, via a route dictated by * the control points, and return a new XY point. * * We store a Bézier curve as an array of 8 floats or doubles, where * the even indices are the X coordinates, and the odd indices are the Y * coordinates. */ class SkBezierCubic { … }; class SkBezierQuad { … }; #endif // SkBezierCurves_DEFINED