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