SkDiscretePathEffect.h revision d26147adbbdca85f07dff432025afee0c8614387
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*/ 19class SkDiscretePathEffect : public SkPathEffect { 20public: 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 41protected: 42 SkDiscretePathEffect(SkFlattenableReadBuffer&); 43 44private: 45 SkScalar fSegLength, fPerterb; 46 47 typedef SkPathEffect INHERITED; 48}; 49 50#endif 51 52