Home | History | Annotate | Download | only in effects
      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     */
     18     static SkPathEffect* Create(SkScalar radius) {
     19         if (radius <= 0) {
     20             return NULL;
     21         }
     22         return SkNEW_ARGS(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