Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / pathops / SkPathWriter.h
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 SkPathWriter_DEFINED
8 #define SkPathWriter_DEFINED
9
10 #include "SkPath.h"
11
12 class SkPathWriter {
13 public:
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     bool isEmpty() const { return fEmpty; }
24     void lineTo();
25     const SkPath* nativePath() const;
26     void nudge();
27     void quadTo(const SkPoint& pt1, const SkPoint& pt2);
28     bool someAssemblyRequired() const;
29
30 private:
31     bool changedSlopes(const SkPoint& pt) const;
32     void moveTo();
33
34     SkPath* fPathPtr;
35     SkPoint fDefer[2];
36     SkPoint fFirstPt;
37     int fCloses;
38     int fMoves;
39     bool fEmpty;
40     bool fHasMove;
41     bool fMoved;
42 };
43
44 #endif /* defined(__PathOps__SkPathWriter__) */