Hoy Emma se sentía algo malita y no hemos salido. He aprovechado para jugar un poco con la versión SVN de
inkscape, porque quería probar la funcionalidad «spiro» (que había visto ya en el
screencast de Heathernx). Me he descargado el código, lo he configurado y lo he compilado sin problemas.
Sin embargo, al ejecutarlo, daba un error muy extraño. Probando un rato he encontrado una manera de arreglarlo, aunque no sé si es perfecta. El programa funciona sin problemas lo que he probado. Aquí pongo el patch por si alguien quiere probar:
$ svn diff
Index: src/live_effects/lpe-knot.cpp
===================================================================
--- src/live_effects/lpe-knot.cpp (revisión: 19971)
+++ src/live_effects/lpe-knot.cpp (copia de trabajo)
@@ -47,7 +47,7 @@
//remove an interval from an union of intervals.
//TODO: is it worth moving it to 2Geom?
static
-std::vector<Geom::Interval> complementOf(Geom::Interval I, std::vector<Geom::Interval> domain){
+std::vector<Geom::Interval> complementOf(Geom::Interval I, std::vector<Geom::Interval>& domain){
std::vector<Geom::Interval> ret;
double min = domain.front().min();
double max = domain.back().max();
Index: src/sp-item.cpp
===================================================================
--- src/sp-item.cpp (revisión: 19971)
+++ src/sp-item.cpp (copia de trabajo)
@@ -1129,7 +1129,9 @@
NR_ARENA_ITEM_SET_DATA(ai, item);
NRRect item_bbox;
sp_item_invoke_bbox(item, &item_bbox, Geom::identity(), TRUE, SPItem::GEOMETRIC_BBOX);
- boost::optional<Geom::Rect> i_bbox = item_bbox;
+ Geom::Rect r(Geom::Point(item_bbox.x0,item_bbox.y0),
+ Geom::Point( item_bbox.x1, item_bbox.y1));
+ boost::optional<Geom::Rect> i_bbox = r;
nr_arena_item_set_item_bbox(ai, i_bbox);
}
(
como fichero patch).
El primer cambio ha sido una optimización rápida que he visto (paso por referencia en vez de por copia del vector), y el segundo es para hacer que funcione.
Con esta versión, es muy sencillo realizar filigranas como la que hice en 1 minuto:

Al contrario de la versión 0.46 o las de desarrollo que había probado hasta ahora, los efectos del trayecto (a la derecha) se pueden almacenar, con lo que puedo añadir los splines de spiro y un patrón a lo largo del trayecto. Gran programa Inkscape. Me ha solucionado las figuras de la tesis y tantas otras cosas...
Me he dado cuenta de que no he puesto más datos de cómo descargar y compilar. Ahí van:
$ svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape
$ cd inkscape
$ patch -p0 < patch
patching file src/live_effects/lpe-knot.cpp
patching file src/sp-item.cpp
$ ./autogen.sh
$ ./configure --prefix=XXX
$ make -jY
$ make install
donde
XXX
es el directorio donde queráis instalarlo (por defecto
/usr/local
), e
Y
el número de proecesadores (cores) que queráis utilizar para compilar. Hacen falta bastantes librerías, por lo que habrá que ir instalándolas conforme las pida el script configure.
Actualización 6/10: Parece que ya han arreglado el falllo. El patch no es necesario, salvo quizá la primera parte, que es una optimización. Lo propondré como posible parche.