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