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