SkDiscretePathEffect.h revision ba28d03e94dc221d6a803bf2a84a420b9159255c
1740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 2740d490593e0de8732a697c9f77b90ddd463863bJordan Rose/* 3740d490593e0de8732a697c9f77b90ddd463863bJordan Rose * Copyright 2006 The Android Open Source Project 4740d490593e0de8732a697c9f77b90ddd463863bJordan Rose * 5740d490593e0de8732a697c9f77b90ddd463863bJordan Rose * Use of this source code is governed by a BSD-style license that can be 6740d490593e0de8732a697c9f77b90ddd463863bJordan Rose * found in the LICENSE file. 7740d490593e0de8732a697c9f77b90ddd463863bJordan Rose */ 8740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 9740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 10740d490593e0de8732a697c9f77b90ddd463863bJordan Rose#ifndef SkDiscretePathEffect_DEFINED 11740d490593e0de8732a697c9f77b90ddd463863bJordan Rose#define SkDiscretePathEffect_DEFINED 12740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 13740d490593e0de8732a697c9f77b90ddd463863bJordan Rose#include "SkPathEffect.h" 14740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 15740d490593e0de8732a697c9f77b90ddd463863bJordan Rose/** \class SkDiscretePathEffect 16740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 17740d490593e0de8732a697c9f77b90ddd463863bJordan Rose This path effect chops a path into discrete segments, and randomly displaces them. 18740d490593e0de8732a697c9f77b90ddd463863bJordan Rose*/ 19740d490593e0de8732a697c9f77b90ddd463863bJordan Roseclass SkDiscretePathEffect : public SkPathEffect { 20740d490593e0de8732a697c9f77b90ddd463863bJordan Rosepublic: 21740d490593e0de8732a697c9f77b90ddd463863bJordan Rose /** Break the path into segments of segLength length, and randomly move the endpoints 22740d490593e0de8732a697c9f77b90ddd463863bJordan Rose away from the original path by a maximum of deviation. 23de507eaf3cb54d3cb234dc14499c10ab3373d15fJordan Rose Note: works on filled or framed paths 24740d490593e0de8732a697c9f77b90ddd463863bJordan Rose */ 25740d490593e0de8732a697c9f77b90ddd463863bJordan Rose SkDiscretePathEffect(SkScalar segLength, SkScalar deviation); 26740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 27740d490593e0de8732a697c9f77b90ddd463863bJordan Rose // overrides for SkPathEffect 28740d490593e0de8732a697c9f77b90ddd463863bJordan Rose // This method is not exported to java. 29740d490593e0de8732a697c9f77b90ddd463863bJordan Rose virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width); 30740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 31740d490593e0de8732a697c9f77b90ddd463863bJordan Rose // overrides for SkFlattenable 32740d490593e0de8732a697c9f77b90ddd463863bJordan Rose // This method is not exported to java. 33740d490593e0de8732a697c9f77b90ddd463863bJordan Rose virtual void flatten(SkFlattenableWriteBuffer&); 34740d490593e0de8732a697c9f77b90ddd463863bJordan Rose SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect) 35740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 3670cbf3cc09eb21db1108396d30a414ea66d842ccJordan Roseprotected: 37740d490593e0de8732a697c9f77b90ddd463863bJordan Rose SkDiscretePathEffect(SkFlattenableReadBuffer&); 3870cbf3cc09eb21db1108396d30a414ea66d842ccJordan Rose 39cde8cdbd6a662c636164465ad309b5f17ff01064Jordan Roseprivate: 40cde8cdbd6a662c636164465ad309b5f17ff01064Jordan Rose SkScalar fSegLength, fPerterb; 41cde8cdbd6a662c636164465ad309b5f17ff01064Jordan Rose 42cde8cdbd6a662c636164465ad309b5f17ff01064Jordan Rose typedef SkPathEffect INHERITED; 43740d490593e0de8732a697c9f77b90ddd463863bJordan Rose}; 44740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 45740d490593e0de8732a697c9f77b90ddd463863bJordan Rose#endif 46740d490593e0de8732a697c9f77b90ddd463863bJordan Rose 47740d490593e0de8732a697c9f77b90ddd463863bJordan Rose