#include "SkMatrix.h"
Go to the source code of this file.
#define kSkBuildQuadArcStorage 17 |
Maximum number of points needed in the quadPoints[] parameter for SkBuildQuadArc()
Definition at line 143 of file SkGeometry.h.
enum SkRotationDirection |
Definition at line 135 of file SkGeometry.h.
int SkBuildQuadArc | ( | const SkVector & | unitStart, | |
const SkVector & | unitStop, | |||
SkRotationDirection | , | |||
const SkMatrix * | matrix, | |||
SkPoint | quadPoints[] | |||
) |
Given 2 unit vectors and a rotation direction, fill out the specified array of points with quadratic segments. Return is the number of points written to, which will be { 0, 3, 5, 7, ... kSkBuildQuadArcStorage }
matrix, if not null, is appled to the points before they are returned.
Given a src cubic bezier, chop it at the specified t value, where 0 < t < 1, and return the two new cubics in dst: dst[0..3] and dst[3..6]
Given a src cubic bezier, chop it at the specified t == 1/2, The new cubics are returned in dst[0..3] and dst[3..6]
Return 1 for no chop, or 2 for having chopped the cubic at its inflection point.
Given 4 points on a cubic bezier, chop it into 1, 2, 3 beziers such that the resulting beziers are monotonic in Y. This is called by the scan converter. Depending on what is returned, dst[] is treated as follows 1 dst[0..3] is the original cubic 2 dst[0..3] and dst[3..6] are the two new cubics 3 dst[0..3], dst[3..6], dst[6..9] are the three new cubics If dst == null, it is ignored and only the count is returned.
Given a src quadratic bezier, chop it at the specified t value, where 0 < t < 1, and return the two new quadratics in dst: dst[0..2] and dst[2..4]
Given a src quadratic bezier, chop it at the specified t == 1/2, The new quads are returned in dst[0..2] and dst[2..4]
Given 3 points on a quadratic bezier, divide it into 2 quadratics if the point of maximum curvature exists on the quad segment. Depending on what is returned, dst[] is treated as follows 1 dst[0..2] is the original quad 2 dst[0..2] and dst[2..4] are the two new quads If dst == null, it is ignored and only the count is returned.
Given 3 points on a quadratic bezier, chop it into 1, 2 beziers such that the resulting beziers are monotonic in Y. This is called by the scan converter. Depending on what is returned, dst[] is treated as follows 1 dst[0..2] is the original quad 2 dst[0..2] and dst[2..4] are the two new quads If dst == null, it is ignored and only the count is returned.
void SkEvalCubicAt | ( | const SkPoint | src[4], | |
SkScalar | t, | |||
SkPoint * | locOrNull, | |||
SkVector * | tangentOrNull, | |||
SkVector * | curvatureOrNull | |||
) |
Set pt to the point on the src cubic specified by t. t must be 0 <= t <= 1.0
Set pt to the point on the src quadratic specified by t. t must be 0 <= t <= 1.0
Given the 4 coefficients for a cubic bezier (either X or Y values), look for extrema, and return the number of t-values that are found that represent these extrema. If the cubic has no extrema betwee (0..1) exclusive, the function returns 0. Returned count tValues[] 0 ignored 1 0 < tValues[0] < 1 2 0 < tValues[0] < tValues[1] < 1
Given a cubic bezier, return 0, 1, or 2 t-values that represent the inflection points.
Given the 3 coefficients for a quadratic bezier (either X or Y values), look for extrema, and return the number of t-values that are found that represent these extrema. If the quadratic has no extrema betwee (0..1) exclusive, the function returns 0. Returned count tValues[] 0 ignored 1 0 < tValues[0] < 1
Given a quadratic equation Ax^2 + Bx + C = 0, return 0, 1, 2 roots for the equation.