1 /* 2 * Copyright 2014 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 8 #ifndef SkArcToPathEffect_DEFINED 9 #define SkArcToPathEffect_DEFINED 10 11 #include "SkPathEffect.h" 12 13 class SK_API SkArcToPathEffect : public SkPathEffect { 14 public: 15 /** radius must be > 0 to have an effect. It specifies the distance from each corner 16 that should be "rounded". 17 */ Create(SkScalar radius)18 static SkPathEffect* Create(SkScalar radius) { 19 if (radius <= 0) { 20 return NULL; 21 } 22 return new SkArcToPathEffect(radius); 23 } 24 25 bool filterPath(SkPath* dst, const SkPath& src, SkStrokeRec*, const SkRect*) const override; 26 27 SK_TO_STRING_OVERRIDE() 28 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkArcToPathEffect) 29 30 protected: 31 explicit SkArcToPathEffect(SkScalar radius); 32 void flatten(SkWriteBuffer&) const override; 33 34 private: 35 SkScalar fRadius; 36 37 typedef SkPathEffect INHERITED; 38 }; 39 40 #endif 41