11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */ 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkDiscretePathEffect_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkDiscretePathEffect_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPathEffect.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/** \class SkDiscretePathEffect 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project This path effect chops a path into discrete segments, and randomly displaces them. 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project*/ 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDiscretePathEffect : public SkPathEffect { 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project /** Break the path into segments of segLength length, and randomly move the endpoints 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project away from the original path by a maximum of deviation. 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project Note: works on filled or framed paths 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */ 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDiscretePathEffect(SkScalar segLength, SkScalar deviation); 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // overrides for SkPathEffect 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // This method is not exported to java. 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width); 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // overrides for SkFlattenable 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // This method is not exported to java. 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual Factory getFactory(); 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // This method is not exported to java. 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void flatten(SkFlattenableWriteBuffer&); 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SK_DECLARE_FLATTENABLE_REGISTRAR() 401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected: 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDiscretePathEffect(SkFlattenableReadBuffer&); 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScalar fSegLength, fPerterb; 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkPathEffect INHERITED; 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 52