index b556efd88fd30f612d33ca351b40f0de4aa144b6..f1578d5bfdb0666803a04af2a9e975efbeb1a2d4 100644 (file)
/*
* Inkscape::LPEPathAlongPath
*
-* Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
+ * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
+ * Copyright (C) Steren Giannini 2008 <steren.giannini@gmail.com>
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include "live_effects/parameter/enum.h"
#include "live_effects/parameter/bool.h"
+#include <2geom/sbasis.h>
+#include <2geom/sbasis-geometric.h>
+#include <2geom/bezier-to-sbasis.h>
+#include <2geom/sbasis-to-bezier.h>
+#include <2geom/d2.h>
+#include <2geom/piecewise.h>
+
+#include "live_effects/lpegroupbbox.h"
+
namespace Inkscape {
namespace LivePathEffect {
-enum PAPCopyType {
- PAPCT_SINGLE = 0,
- PAPCT_SINGLE_STRETCHED,
- PAPCT_REPEATED,
- PAPCT_REPEATED_STRETCHED,
- PAPCT_END // This must be last
-};
-
-class LPEPathAlongPath : public Effect {
+//for Bend path on group : we need information concerning the group Bounding box
+class LPEPathAlongPath : public Effect, LivePathEffect_group_bbox {
public:
LPEPathAlongPath(LivePathEffectObject *lpeobject);
virtual ~LPEPathAlongPath();
+ virtual void doBeforeEffect (SPLPEItem *lpeitem);
+
virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > & pwd2_in);
virtual void resetDefaults(SPItem * item);
+ virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
+
private:
PathParam bend_path;
- //PathParam width_path;
- //ScalarParam width_path_range;
- EnumParam<PAPCopyType> copytype;
ScalarParam prop_scale;
BoolParam scale_y_rel;
BoolParam vertical_pattern;
+ bool groupSpecialBehavior;
+
void on_pattern_pasted();
LPEPathAlongPath(const LPEPathAlongPath&);