Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
lpe-bendpath.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef INKSCAPE_LPE_BENDPATH_H
3#define INKSCAPE_LPE_BENDPATH_H
4
5/*
6 * Inkscape::LPEPathAlongPath
7 *
8 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
9 * Copyright (C) Steren Giannini 2008 <steren.giannini@gmail.com>
10 *
11 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
12 */
13
14#include "live_effects/effect.h"
18
19#include <2geom/sbasis.h>
23#include <2geom/d2.h>
24#include <2geom/piecewise.h>
25
27
28namespace Inkscape {
29namespace UI {
30namespace Toolbar {
31class PencilToolbar;
32}
33} // namespace UI
34namespace LivePathEffect {
35
36namespace BeP {
37class KnotHolderEntityWidthBendPath;
38}
39
40//for Bend path on group : we need information concerning the group Bounding box
42public:
44 ~LPEBendPath() override;
45
46 void doBeforeEffect (SPLPEItem const* lpeitem) override;
47 bool doOnOpen(SPLPEItem const *lpeitem) override;
49 void resetDefaults(SPItem const* item) override;
50 void transform_multiply(Geom::Affine const &postmul, bool set) override;
51 void addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector<Geom::PathVector> &hp_vec) override;
52 void addKnotHolderEntities(KnotHolder * knotholder, SPItem * item) override;
53
55
58
59protected:
62private:
70
72
73 LPEBendPath(const LPEBendPath&) = delete;
75};
76
77}; //namespace LivePathEffect
78}; //namespace Inkscape
79
80#endif
Conversion between Bezier control points and SBasis curves.
3x3 matrix representing an affine transformation.
Definition affine.h:70
Adaptor that creates 2D functions from 1D ones.
Definition d2.h:55
Sequence of subpaths.
Definition pathvector.h:122
Function defined as discrete pieces.
Definition piecewise.h:71
LPEBendPath & operator=(const LPEBendPath &)=delete
friend class BeP::KnotHolderEntityWidthBendPath
void resetDefaults(SPItem const *item) override
Sets all parameters to their default values and writes them to SVG.
LPEBendPath(const LPEBendPath &)=delete
void transform_multiply(Geom::Affine const &postmul, bool set) override
Overridden function to apply transforms for example to powerstroke, jointtype or tapperstroke.
Geom::Piecewise< Geom::D2< Geom::SBasis > > uskeleton
Geom::Piecewise< Geom::D2< Geom::SBasis > > n
void doBeforeEffect(SPLPEItem const *lpeitem) override
Is performed each time before the effect is updated.
bool doOnOpen(SPLPEItem const *lpeitem) override
Is performed on load document or revert If the item is fixed legacy return true.
Geom::Piecewise< Geom::D2< Geom::SBasis > > doEffect_pwd2(Geom::Piecewise< Geom::D2< Geom::SBasis > > const &pwd2_in) override
void addKnotHolderEntities(KnotHolder *knotholder, SPItem *item) override
void addCanvasIndicators(SPLPEItem const *, std::vector< Geom::PathVector > &hp_vec) override
Add possible canvas indicators (i.e., helperpaths other than the original path) to hp_vec This functi...
Base class for all tool toolbars.
Definition toolbar.h:72
Base class for visual SVG elements.
Definition sp-item.h:109
Lifts one dimensional objects into 2D.
SPItem * item
Helper class to stream background task notifications as a series of messages.
Piecewise function class.
two-dimensional geometric operators.
Conversion between SBasis and Bezier basis polynomials.
Polynomial in symmetric power basis (S-basis)