Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / include / effects / SkDiscretePathEffect.h
1 /*
2  * Copyright 2006 The Android Open Source Project
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 SkDiscretePathEffect_DEFINED
9 #define SkDiscretePathEffect_DEFINED
10
11 #include "SkPathEffect.h"
12
13 /** \class SkDiscretePathEffect
14
15     This path effect chops a path into discrete segments, and randomly displaces them.
16 */
17 class SK_API SkDiscretePathEffect : public SkPathEffect {
18 public:
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
22     */
23     SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
24
25     virtual bool filterPath(SkPath* dst, const SkPath& src,
26                             SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
27
28     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
29
30 protected:
31     SkDiscretePathEffect(SkReadBuffer&);
32     virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
33
34 private:
35     SkScalar fSegLength, fPerterb;
36
37     typedef SkPathEffect INHERITED;
38 };
39
40 #endif