1f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com/*
25bb6825f10d64834ad1d1d967f590aebae285360epoger@google.com * Copyright 2006 The Android Open Source Project
3f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com *
45bb6825f10d64834ad1d1d967f590aebae285360epoger@google.com * Use of this source code is governed by a BSD-style license that can be
55bb6825f10d64834ad1d1d967f590aebae285360epoger@google.com * found in the LICENSE file.
6f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com */
7f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
8f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com#ifndef SkDiscretePathEffect_DEFINED
9f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com#define SkDiscretePathEffect_DEFINED
10f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
11f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com#include "SkPathEffect.h"
12f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
13f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com/** \class SkDiscretePathEffect
14f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
15f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    This path effect chops a path into discrete segments, and randomly displaces them.
16f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com*/
17eaf935f2f1b039070f873f51b49b377900f8f197tfarina@chromium.orgclass SK_API SkDiscretePathEffect : public SkPathEffect {
18f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.compublic:
19f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    /** Break the path into segments of segLength length, and randomly move the endpoints
20f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com        away from the original path by a maximum of deviation.
21f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com        Note: works on filled or framed paths
22f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    */
23f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
24f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
2533e336e86f278da68b8006b6702eb4526f6312dbreed@google.com    virtual bool filterPath(SkPath* dst, const SkPath& src,
26018c2aa47afabd03fc0a00fdbe8a1edc9779bb4freed@google.com                            SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
27f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
2814f592f823cedde633bf7d468c3a14b02ee56674djsollen@google.com    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
29655f68d1a2e34b4cfbc64e54e268372d8d1aa372reed@google.com
30f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.comprotected:
31f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    SkDiscretePathEffect(SkFlattenableReadBuffer&);
32e133d6ad314603114c7ef80423391f65cbb599d7djsollen@google.com    virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
33f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
34f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.comprivate:
35f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    SkScalar fSegLength, fPerterb;
361fde19f3b72345b473a1a9bd64729237a388813frmistry@google.com
37f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com    typedef SkPathEffect INHERITED;
38f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com};
39f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com
40f0d6bf5df07d5ce620678074da0c05aacc28e44reed@android.com#endif
41