Home | History | Annotate | Download | only in effects
      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 SkDiscretePathEffect_DEFINED
     11 #define SkDiscretePathEffect_DEFINED
     12 
     13 #include "SkPathEffect.h"
     14 
     15 /** \class SkDiscretePathEffect
     16 
     17     This path effect chops a path into discrete segments, and randomly displaces them.
     18 */
     19 class SkDiscretePathEffect : public SkPathEffect {
     20 public:
     21     /** Break the path into segments of segLength length, and randomly move the endpoints
     22         away from the original path by a maximum of deviation.
     23         Note: works on filled or framed paths
     24     */
     25     SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
     26 
     27     // overrides for SkPathEffect
     28     //  This method is not exported to java.
     29     virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
     30 
     31     // overrides for SkFlattenable
     32     //  This method is not exported to java.
     33     virtual Factory getFactory();
     34     //  This method is not exported to java.
     35     virtual void flatten(SkFlattenableWriteBuffer&);
     36 
     37     static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
     38 
     39     SK_DECLARE_FLATTENABLE_REGISTRAR()
     40 
     41 protected:
     42     SkDiscretePathEffect(SkFlattenableReadBuffer&);
     43 
     44 private:
     45     SkScalar fSegLength, fPerterb;
     46 
     47     typedef SkPathEffect INHERITED;
     48 };
     49 
     50 #endif
     51 
     52