blob: f90a580f5c569dba687f4ae9323d3925b4773e09 [file] [log] [blame]
caryclark@google.com07393ca2013-04-08 11:47:37 +00001/*
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 SkPathWriter_DEFINED
8#define SkPathWriter_DEFINED
9
10#include "SkPath.h"
11
12class SkPathWriter {
13public:
14 SkPathWriter(SkPath& path);
15 void close();
16 void cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkPoint& pt3);
17 void deferredLine(const SkPoint& pt);
18 void deferredMove(const SkPoint& pt);
19 void deferredMoveLine(const SkPoint& pt);
20 bool hasMove() const;
21 void init();
22 bool isClosed() const;
23 void lineTo();
24 const SkPath* nativePath() const;
25 void nudge();
26 void quadTo(const SkPoint& pt1, const SkPoint& pt2);
27 bool someAssemblyRequired() const;
skia.committer@gmail.com32840172013-04-09 07:01:27 +000028
caryclark@google.com07393ca2013-04-08 11:47:37 +000029private:
30 bool changedSlopes(const SkPoint& pt) const;
31 void moveTo();
skia.committer@gmail.com32840172013-04-09 07:01:27 +000032
caryclark@google.com07393ca2013-04-08 11:47:37 +000033 SkPath* fPathPtr;
34 SkPoint fDefer[2];
35 SkPoint fFirstPt;
36 int fCloses;
37 int fMoves;
38 bool fEmpty;
39 bool fHasMove;
40 bool fMoved;
41};
42
43
44#endif /* defined(__PathOps__SkPathWriter__) */