2 * Copyright 2006 The Android Open Source Project
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #ifndef SkDiscretePathEffect_DEFINED
9 #define SkDiscretePathEffect_DEFINED
11 #include "SkPathEffect.h"
13 /** \class SkDiscretePathEffect
15 This path effect chops a path into discrete segments, and randomly displaces them.
17 class SK_API SkDiscretePathEffect : public SkPathEffect {
19 /** Break the path into segments of segLength length, and randomly move the endpoints
20 away from the original path by a maximum of deviation.
21 Note: works on filled or framed paths
23 SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
25 virtual bool filterPath(SkPath* dst, const SkPath& src,
26 SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
28 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
31 SkDiscretePathEffect(SkReadBuffer&);
32 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
35 SkScalar fSegLength, fPerterb;
37 typedef SkPathEffect INHERITED;