1 // SPDX-License-Identifier: GPL-2.0-or-later 2 #ifndef INKSCAPE_LPE_CURVESTITCH_H 3 #define INKSCAPE_LPE_CURVESTITCH_H 4 5 /** \file 6 * Implementation of the curve stitch effect, see lpe-curvestitch.cpp 7 */ 8 9 /* 10 * Authors: 11 * Johan Engelen 12 * 13 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl> 14 * 15 * Released under GNU GPL v2+, read the file 'COPYING' for more information. 16 */ 17 18 #include "live_effects/effect.h" 19 #include "live_effects/parameter/path.h" 20 #include "live_effects/parameter/parameter.h" 21 #include "live_effects/parameter/bool.h" 22 #include "live_effects/parameter/random.h" 23 24 namespace Inkscape { 25 namespace LivePathEffect { 26 27 class LPECurveStitch : public Effect { 28 public: 29 LPECurveStitch(LivePathEffectObject *lpeobject); 30 ~LPECurveStitch() override; 31 32 Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override; 33 34 void resetDefaults(SPItem const* item) override; 35 36 private: 37 PathParam strokepath; 38 ScalarParam nrofpaths; 39 RandomParam startpoint_edge_variation; 40 RandomParam startpoint_spacing_variation; 41 RandomParam endpoint_edge_variation; 42 RandomParam endpoint_spacing_variation; 43 ScalarParam prop_scale; 44 BoolParam scale_y_rel; 45 bool transformed; 46 47 LPECurveStitch(const LPECurveStitch&) = delete; 48 LPECurveStitch& operator=(const LPECurveStitch&) = delete; 49 }; 50 51 } //namespace LivePathEffect 52 } //namespace Inkscape 53 54 #endif 55