SkPathWriter.h revision 3284017a60ea4fc3dc5b95838ba0c301ee1e4e8d
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
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;
28
29private:
30    bool changedSlopes(const SkPoint& pt) const;
31    void moveTo();
32
33    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__) */
45