Home | History | Annotate | Download | only in pathops
      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__) */
     45