1 #define INKSCAPE_LPE_DOEFFECT_STACK_CPP\r
2 \r
3 /*\r
4 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>\r
5 *\r
6 * Released under GNU GPL, read the file 'COPYING' for more information\r
7 */\r
8 \r
9 #include "live_effects/lpe-test-doEffect-stack.h"\r
10 \r
11 #include <2geom/piecewise.h>\r
12 #include <vector>\r
13 #include <libnr/n-art-bpath.h>\r
14 \r
15 namespace Inkscape {\r
16 namespace LivePathEffect {\r
17 \r
18 \r
19 LPEdoEffectStackTest::LPEdoEffectStackTest(LivePathEffectObject *lpeobject) :\r
20 Effect(lpeobject),\r
21 step(_("Stack step"), _(""), "step", &wr, this)\r
22 {\r
23 registerParameter( dynamic_cast<Parameter *>(&step) );\r
24 }\r
25 \r
26 LPEdoEffectStackTest::~LPEdoEffectStackTest()\r
27 {\r
28 \r
29 }\r
30 \r
31 void\r
32 LPEdoEffectStackTest::doEffect (SPCurve * curve)\r
33 {\r
34 if (step >= 1) {\r
35 Effect::doEffect(curve);\r
36 } else {\r
37 // return here\r
38 return;\r
39 }\r
40 }\r
41 \r
42 NArtBpath *\r
43 LPEdoEffectStackTest::doEffect (NArtBpath * path_in)\r
44 {\r
45 if (step >= 2) {\r
46 return Effect::doEffect(path_in);\r
47 } else {\r
48 // return here\r
49 NArtBpath *path_out;\r
50 \r
51 unsigned ret = 0;\r
52 while ( path_in[ret].code != NR_END ) {\r
53 ++ret;\r
54 }\r
55 unsigned len = ++ret;\r
56 \r
57 path_out = g_new(NArtBpath, len);\r
58 memcpy(path_out, path_in, len * sizeof(NArtBpath));\r
59 return path_out;\r
60 }\r
61 }\r
62 \r
63 std::vector<Geom::Path>\r
64 LPEdoEffectStackTest::doEffect (std::vector<Geom::Path> & path_in)\r
65 {\r
66 if (step >= 3) {\r
67 return Effect::doEffect(path_in);\r
68 } else {\r
69 // return here\r
70 std::vector<Geom::Path> path_out = path_in;\r
71 return path_out;\r
72 }\r
73 }\r
74 \r
75 Geom::Piecewise<Geom::D2<Geom::SBasis> > \r
76 LPEdoEffectStackTest::doEffect (Geom::Piecewise<Geom::D2<Geom::SBasis> > & pwd2_in)\r
77 {\r
78 Geom::Piecewise<Geom::D2<Geom::SBasis> > output = pwd2_in;\r
79 \r
80 return output;\r
81 }\r
82 \r
83 \r
84 } // namespace LivePathEffect\r
85 } /* namespace Inkscape */\r
86 \r
87 /*\r
88 Local Variables:\r
89 mode:c++\r
90 c-file-style:"stroustrup"\r
91 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))\r
92 indent-tabs-mode:nil\r
93 fill-column:99\r
94 End:\r
95 */\r
96 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :\r