blob: 7d18d28dca11414b9865d06eaef6157fb3240945 [file] [log] [blame]
/*
* Copyright 2012 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef PathOpsTestCommon_DEFINED
#define PathOpsTestCommon_DEFINED
#include "include/core/SkScalar.h"
#include "include/private/base/SkTArray.h"
#include "src/pathops/SkPathOpsPoint.h"
class SkPath;
struct SkDConic;
struct SkDCubic;
struct SkDLine;
struct SkDQuad;
struct SkPathOpsBounds;
struct SkPoint;
struct QuadPts {
static const int kPointCount = 3;
SkDPoint fPts[kPointCount];
};
struct ConicPts {
QuadPts fPts;
SkScalar fWeight;
};
struct CubicPts {
static const int kPointCount = 4;
SkDPoint fPts[kPointCount];
};
void CubicPathToQuads(const SkPath& cubicPath, SkPath* quadPath);
void CubicPathToSimple(const SkPath& cubicPath, SkPath* simplePath);
void CubicToQuads(const SkDCubic& cubic, double precision, SkTArray<SkDQuad, true>& quads);
bool ValidBounds(const SkPathOpsBounds& );
bool ValidConic(const SkDConic& cubic);
bool ValidCubic(const SkDCubic& cubic);
bool ValidLine(const SkDLine& line);
bool ValidPoint(const SkDPoint& pt);
bool ValidPoints(const SkPoint* pts, int count);
bool ValidQuad(const SkDQuad& quad);
bool ValidVector(const SkDVector& v);
#endif