1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2006 The Android Open Source Project 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef SkDiscretePathEffect_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define SkDiscretePathEffect_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPathEffect.h" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker /** \class SkDiscretePathEffect 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker This path effect chops a path into discrete segments, and randomly displaces them. 16*c8dee2aaSAndroid Build Coastguard Worker */ 17*c8dee2aaSAndroid Build Coastguard Worker class SK_API SkDiscretePathEffect { 18*c8dee2aaSAndroid Build Coastguard Worker public: 19*c8dee2aaSAndroid Build Coastguard Worker /** Break the path into segments of segLength length, and randomly move the endpoints 20*c8dee2aaSAndroid Build Coastguard Worker away from the original path by a maximum of deviation. 21*c8dee2aaSAndroid Build Coastguard Worker Note: works on filled or framed paths 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker @param seedAssist This is a caller-supplied seedAssist that modifies 24*c8dee2aaSAndroid Build Coastguard Worker the seed value that is used to randomize the path 25*c8dee2aaSAndroid Build Coastguard Worker segments' endpoints. If not supplied it defaults to 0, 26*c8dee2aaSAndroid Build Coastguard Worker in which case filtering a path multiple times will 27*c8dee2aaSAndroid Build Coastguard Worker result in the same set of segments (this is useful for 28*c8dee2aaSAndroid Build Coastguard Worker testing). If a caller does not want this behaviour 29*c8dee2aaSAndroid Build Coastguard Worker they can pass in a different seedAssist to get a 30*c8dee2aaSAndroid Build Coastguard Worker different set of path segments. 31*c8dee2aaSAndroid Build Coastguard Worker */ 32*c8dee2aaSAndroid Build Coastguard Worker static sk_sp<SkPathEffect> Make(SkScalar segLength, SkScalar dev, uint32_t seedAssist = 0); 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard Worker static void RegisterFlattenables(); 35*c8dee2aaSAndroid Build Coastguard Worker }; 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Worker #endif 38