Home | History | Annotate | Download | only in tests
      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 "SkPathOpsQuad.h"
     11 #include "SkTArray.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