1 2 /* 3 * Copyright 2006 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 #ifndef SkStrokerPriv_DEFINED 11 #define SkStrokerPriv_DEFINED 12 13 #include "SkStroke.h" 14 15 #define CWX(x, y) (-y) 16 #define CWY(x, y) (x) 17 #define CCWX(x, y) (y) 18 #define CCWY(x, y) (-x) 19 20 #define CUBIC_ARC_FACTOR ((SK_ScalarSqrt2 - SK_Scalar1) * 4 / 3) 21 22 class SkStrokerPriv { 23 public: 24 typedef void (*CapProc)(SkPath* path, 25 const SkPoint& pivot, 26 const SkVector& normal, 27 const SkPoint& stop, 28 SkPath* otherPath); 29 30 typedef void (*JoinProc)(SkPath* outer, SkPath* inner, 31 const SkVector& beforeUnitNormal, 32 const SkPoint& pivot, 33 const SkVector& afterUnitNormal, 34 SkScalar radius, SkScalar invMiterLimit, 35 bool prevIsLine, bool currIsLine); 36 37 static CapProc CapFactory(SkPaint::Cap); 38 static JoinProc JoinFactory(SkPaint::Join); 39 }; 40 41 #endif 42