/** \file
* LPE knot effect implementation, see lpe-knot.cpp.
*/
/* Authors:
* Jean-Francois Barraud <jf.barraud@gmail.com>
* Johan Engelen <j.b.c.engelen@alumnus.utwente.nl>
*
* Copyright (C) Authors 2007-2012
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef INKSCAPE_LPE_KNOT_H
#define INKSCAPE_LPE_KNOT_H
#include "sp-item-group.h"
#include "live_effects/effect.h"
#include "live_effects/lpegroupbbox.h"
#include "live_effects/parameter/parameter.h"
#include "live_effects/parameter/array.h"
//#include "live_effects/parameter/path.h"
#include "live_effects/parameter/bool.h"
#include "2geom/crossing.h"
// CrossingPoint, CrossingPoints:
// "point oriented" storage of crossing data (needed to find crossing nearest to a click, etc...)
//TODO: evaluate how lpeknot-specific that is? Should something like this exist in 2geom?
struct CrossingPoint {
unsigned i, j; //paths components meeting in this point.
};
CrossingPoints(Geom::CrossingSet const &cs, Geom::PathVector const &path);//for self crossings only!
};
}
/* the knotholder entity classes must be declared friends */
void updateSwitcher();
std::vector<double> gstroke_widths;//the collection of all the stroke widths in the object or group.
//UI: please, someone, help me to improve this!!
};
} //namespace LivePathEffect
} //namespace Inkscape
#endif