diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp
index b2aa0ce6bc1e9877242de5f3697a7a90048c410f..fe25fa418f5ad29b1f9179ee1eda0fa5ab35af9c 100644 (file)
--- a/src/conn-avoid-ref.cpp
+++ b/src/conn-avoid-ref.cpp
#include "libavoid/router.h"
#include "libavoid/connector.h"
#include "libavoid/geomtypes.h"
+#include "libavoid/shape.h"
#include "xml/node.h"
#include "document.h"
#include "desktop.h"
const bool routerInstanceExists = (item->document->router != NULL);
if (shapeRef && routerInstanceExists) {
- Router *router = shapeRef->router();
- router->removeShape(shapeRef);
+ // Deleting the shapeRef will remove it completely from
+ // an existing Router instance.
delete shapeRef;
}
shapeRef = NULL;
{
g_assert(shapeRef);
- router->removeShape(shapeRef);
+ // Deleting the shapeRef will remove it completely from
+ // an existing Router instance.
delete shapeRef;
shapeRef = NULL;
}
GSList *list = NULL;
Avoid::IntList shapes;
- GQuark shapeId = g_quark_from_string(item->id);
+ GQuark shapeId = g_quark_from_string(item->getId());
item->document->router->attachedShapes(shapes, shapeId, type);
Avoid::IntList::iterator finish = shapes.end();
GSList *list = NULL;
Avoid::IntList conns;
- GQuark shapeId = g_quark_from_string(item->id);
+ GQuark shapeId = g_quark_from_string(item->getId());
item->document->router->attachedConns(conns, shapeId, type);
Avoid::IntList::iterator finish = conns.end();
g_assert(item);
Geom::Point pos;
const Geom::Matrix& transform = sp_item_i2doc_affine(item);
- // TODO investigate why this was asking for the active desktop:
- SPDesktop *desktop = inkscape_active_desktop();
if ( type == ConnPointDefault )
{
{
Geom::Path::const_iterator cit = pit->begin();
while (cit != pit->end())
+ {
+ if (cit == pit->begin())
+ {
+ poly_points.push_back(cit->initialPoint());
+ }
+
if (dynamic_cast<Geom::CubicBezier const*>(&*cit))
{
at += seg_size;
poly_points.push_back(cit->finalPoint());
++cit;
}
+ }
++pit;
}
return poly_points;
prev_parallel_hull_edge.origin(hull_edge.origin()+hull_edge.versor().ccw()*spacing);
prev_parallel_hull_edge.versor(hull_edge.versor());
int hull_size = hull.boundary.size();
- for (int i = 0; i <= hull_size; ++i)
+ for (int i = 0; i < hull_size; ++i)
{
hull_edge.setBy2Points(hull[i], hull[i+1]);
Geom::Line parallel_hull_edge;