summaryrefslogtreecommitdiffstats
path: root/src/live_effects/lpe-lattice2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/live_effects/lpe-lattice2.h')
-rw-r--r--src/live_effects/lpe-lattice2.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/live_effects/lpe-lattice2.h b/src/live_effects/lpe-lattice2.h
new file mode 100644
index 0000000..319a0dc
--- /dev/null
+++ b/src/live_effects/lpe-lattice2.h
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#ifndef INKSCAPE_LPE_LATTICE2_H
+#define INKSCAPE_LPE_LATTICE2_H
+
+/** \file
+ * LPE <lattice2> implementation, see lpe-lattice2.cpp.
+ */
+
+/*
+ * Authors:
+ * Johan Engelen
+ * Steren Giannini
+ * NoƩ Falzon
+ * Victor Navez
+ * ~suv
+ * Jabiertxo Arraiza
+ *
+ * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+
+#include "live_effects/effect.h"
+#include "live_effects/parameter/enum.h"
+#include "live_effects/parameter/point.h"
+#include "live_effects/lpegroupbbox.h"
+
+namespace Gtk {
+class Expander;
+}
+
+namespace Inkscape {
+namespace LivePathEffect {
+
+class LPELattice2 : public Effect, GroupBBoxEffect {
+public:
+
+ LPELattice2(LivePathEffectObject *lpeobject);
+ ~LPELattice2() override;
+
+ Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in) override;
+
+ void resetDefaults(SPItem const* item) override;
+
+ void doBeforeEffect(SPLPEItem const* lpeitem) override;
+
+ Gtk::Widget * newWidget() override;
+
+ void calculateCurve(Geom::Point a,Geom::Point b, SPCurve *c, bool horizontal, bool move);
+
+ void vertical(PointParam &paramA,PointParam &paramB, Geom::Line vert);
+
+ void horizontal(PointParam &paramA,PointParam &paramB,Geom::Line horiz);
+
+ void setDefaults();
+
+ void onExpanderChanged();
+
+ void resetGrid();
+
+protected:
+ void addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector<Geom::PathVector> &hp_vec) override;
+private:
+
+ BoolParam horizontal_mirror;
+ BoolParam vertical_mirror;
+ BoolParam perimetral;
+ BoolParam live_update;
+ PointParam grid_point_0;
+ PointParam grid_point_1;
+ PointParam grid_point_2;
+ PointParam grid_point_3;
+ PointParam grid_point_4;
+ PointParam grid_point_5;
+ PointParam grid_point_6;
+ PointParam grid_point_7;
+ PointParam grid_point_8x9;
+ PointParam grid_point_10x11;
+ PointParam grid_point_12;
+ PointParam grid_point_13;
+ PointParam grid_point_14;
+ PointParam grid_point_15;
+ PointParam grid_point_16;
+ PointParam grid_point_17;
+ PointParam grid_point_18;
+ PointParam grid_point_19;
+ PointParam grid_point_20x21;
+ PointParam grid_point_22x23;
+ PointParam grid_point_24x26;
+ PointParam grid_point_25x27;
+ PointParam grid_point_28x30;
+ PointParam grid_point_29x31;
+ PointParam grid_point_32x33x34x35;
+
+ bool expanded;
+ Gtk::Expander * expander;
+
+ LPELattice2(const LPELattice2&) = delete;
+ LPELattice2& operator=(const LPELattice2&) = delete;
+};
+
+} //namespace LivePathEffect
+} //namespace Inkscape
+
+#endif