11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkStrokerPriv_DEFINED
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkStrokerPriv_DEFINED
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkStroke.h"
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CWX(x, y)   (-y)
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CWY(x, y)   (x)
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CCWX(x, y)  (y)
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CCWY(x, y)  (-x)
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CUBIC_ARC_FACTOR    ((SK_ScalarSqrt2 - SK_Scalar1) * 4 / 3)
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkStrokerPriv {
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic:
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    typedef void (*CapProc)(SkPath* path,
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                            const SkPoint& pivot,
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                            const SkVector& normal,
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                            const SkPoint& stop,
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                            SkPath* otherPath);
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    typedef void (*JoinProc)(SkPath* outer, SkPath* inner,
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             const SkVector& beforeUnitNormal,
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             const SkPoint& pivot,
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             const SkVector& afterUnitNormal,
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             SkScalar radius, SkScalar invMiterLimit,
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             bool prevIsLine, bool currIsLine);
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    static CapProc  CapFactory(SkPaint::Cap);
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    static JoinProc JoinFactory(SkPaint::Join);
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
43