SkDiscretePathEffect.h revision ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e
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 39protected: 40 SkDiscretePathEffect(SkFlattenableReadBuffer&); 41 42private: 43 SkScalar fSegLength, fPerterb; 44 45 typedef SkPathEffect INHERITED; 46}; 47 48#endif 49 50