8 #ifndef SkPathMeasure_DEFINED
9 #define SkPathMeasure_DEFINED
11 #include "../private/SkTDArray.h"
35 void setPath(
const SkPath*,
bool forceClosed);
47 bool SK_WARN_UNUSED_RESULT getPosTan(SkScalar distance,
SkPoint* position,
51 kGetPosition_MatrixFlag = 0x01,
52 kGetTangent_MatrixFlag = 0x02,
53 kGetPosAndTan_MatrixFlag = kGetPosition_MatrixFlag | kGetTangent_MatrixFlag
61 bool SK_WARN_UNUSED_RESULT getMatrix(SkScalar distance,
SkMatrix* matrix,
62 MatrixFlags flags = kGetPosAndTan_MatrixFlag);
70 bool getSegment(SkScalar startD, SkScalar stopD,
SkPath* dst,
bool startWithMoveTo);
97 unsigned fTValue : 30;
101 SkScalar getScalarT()
const;
103 SkTDArray<Segment> fSegments;
104 SkTDArray<SkPoint> fPts;
108 void buildSegments();
109 SkScalar compute_quad_segs(
const SkPoint pts[3], SkScalar distance,
110 int mint,
int maxt,
int ptIndex);
111 SkScalar compute_conic_segs(
const SkConic&, SkScalar distance,
112 int mint,
const SkPoint& minPt,
113 int maxt,
const SkPoint& maxPt,
int ptIndex);
114 SkScalar compute_cubic_segs(
const SkPoint pts[3], SkScalar distance,
115 int mint,
int maxt,
int ptIndex);
116 const Segment* distanceToSegment(SkScalar distance, SkScalar* t);
117 bool quad_too_curvy(
const SkPoint pts[3]);
119 bool cheap_dist_exceeds_limit(
const SkPoint& pt, SkScalar x, SkScalar y);
120 bool cubic_too_curvy(
const SkPoint pts[4]);
The SkPath class encapsulates compound (multiple contour) geometric paths consisting of straight line...
Definition: SkPath.h:25
Definition: SkPoint.h:156
The SkMatrix class holds a 3x3 matrix for transforming coordinates.
Definition: SkMatrix.h:28
Definition: SkPathMeasure.h:94
Iterate through all of the segments (lines, quadratics, cubics) of each contours in a path...
Definition: SkPath.h:972
Definition: SkPathMeasure.h:16