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