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