• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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;
isEmpty()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__) */
45