| /* | |
| * Copyright 2012 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkPathWriter_DEFINED | |
| #define SkPathWriter_DEFINED | |
| #include "SkPath.h" | |
| class SkPathWriter { | |
| public: | |
| SkPathWriter(SkPath& path); | |
| void close(); | |
| void cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkPoint& pt3); | |
| void deferredLine(const SkPoint& pt); | |
| void deferredMove(const SkPoint& pt); | |
| void deferredMoveLine(const SkPoint& pt); | |
| bool hasMove() const; | |
| void init(); | |
| bool isClosed() const; | |
| bool isEmpty() const { return fEmpty; } | |
| void lineTo(); | |
| const SkPath* nativePath() const; | |
| void nudge(); | |
| void quadTo(const SkPoint& pt1, const SkPoint& pt2); | |
| bool someAssemblyRequired() const; | |
| private: | |
| bool changedSlopes(const SkPoint& pt) const; | |
| void moveTo(); | |
| SkPath* fPathPtr; | |
| SkPoint fDefer[2]; | |
| SkPoint fFirstPt; | |
| int fCloses; | |
| int fMoves; | |
| bool fEmpty; | |
| bool fHasMove; | |
| bool fMoved; | |
| }; | |
| #endif /* defined(__PathOps__SkPathWriter__) */ |