1 /*
2  * Copyright 2012 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #ifndef PathOpsTestCommon_DEFINED
8 #define PathOpsTestCommon_DEFINED
9 
10 #include "include/private/SkTArray.h"
11 #include "src/pathops/SkPathOpsQuad.h"
12 
13 struct SkPathOpsBounds;
14 
15 struct QuadPts {
16     static const int kPointCount = 3;
17     SkDPoint fPts[kPointCount];
18 };
19 
20 struct ConicPts {
21     QuadPts fPts;
22     SkScalar fWeight;
23 };
24 
25 struct CubicPts {
26     static const int kPointCount = 4;
27     SkDPoint fPts[kPointCount];
28 };
29 
30 void CubicPathToQuads(const SkPath& cubicPath, SkPath* quadPath);
31 void CubicPathToSimple(const SkPath& cubicPath, SkPath* simplePath);
32 void CubicToQuads(const SkDCubic& cubic, double precision, SkTArray<SkDQuad, true>& quads);
33 bool ValidBounds(const SkPathOpsBounds& );
34 bool ValidConic(const SkDConic& cubic);
35 bool ValidCubic(const SkDCubic& cubic);
36 bool ValidLine(const SkDLine& line);
37 bool ValidPoint(const SkDPoint& pt);
38 bool ValidPoints(const SkPoint* pts, int count);
39 bool ValidQuad(const SkDQuad& quad);
40 bool ValidVector(const SkDVector& v);
41 
42 #endif
43