| /* |
| * 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 conicTo(const SkPoint& pt1, const SkPoint& pt2, SkScalar weight); |
| 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__) */ |