1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /* Authors:
3  * Liam P White
4  *
5  * Copyright (C) 2014 Authors
6  *
7  * Released under GNU GPL v2+, read the file COPYING for more information
8  */
9 
10 #ifndef INKSCAPE_LPE_JOINTYPE_H
11 #define INKSCAPE_LPE_JOINTYPE_H
12 
13 #include "live_effects/effect.h"
14 #include "live_effects/parameter/parameter.h"
15 #include "live_effects/parameter/point.h"
16 #include "live_effects/parameter/enum.h"
17 
18 namespace Inkscape {
19 namespace LivePathEffect {
20 
21 class LPEJoinType : public Effect {
22 public:
23     LPEJoinType(LivePathEffectObject *lpeobject);
24     ~LPEJoinType() override;
25 
26     void doOnApply(SPLPEItem const* lpeitem) override;
27     void doOnRemove(SPLPEItem const* lpeitem) override;
28     void transform_multiply(Geom::Affine const &postmul, bool set) override;
29     Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override;
30 
31 private:
32     LPEJoinType(const LPEJoinType&) = delete;
33     LPEJoinType& operator=(const LPEJoinType&) = delete;
34 
35     ScalarParam line_width;
36     EnumParam<unsigned> linecap_type;
37     EnumParam<unsigned> linejoin_type;
38     //ScalarParam start_lean;
39     //ScalarParam end_lean;
40     ScalarParam miter_limit;
41     BoolParam attempt_force_join;
42 };
43 
44 } //namespace LivePathEffect
45 } //namespace Inkscape
46 
47 #endif
48 
49 /*
50   Local Variables:
51   mode:c++
52   c-file-style:"stroustrup"
53   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
54   indent-tabs-mode:nil
55   fill-column:99
56   End:
57 */
58 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8 :
59