From be4b46000a9a9f29d79b2e939c0669f6ddf0c59f Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 27 Apr 2013 02:01:11 +0200 Subject: Fixed important selection bug when changing to cusp nodes (bzr r11950.1.109) --- src/ui/tool/path-manipulator.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/ui/tool/path-manipulator.cpp') diff --git a/src/ui/tool/path-manipulator.cpp b/src/ui/tool/path-manipulator.cpp index 9da27e807..cad794860 100644 --- a/src/ui/tool/path-manipulator.cpp +++ b/src/ui/tool/path-manipulator.cpp @@ -1239,9 +1239,11 @@ Geom::Point PathManipulator::BSplineHandleReposition(Handle *h,double pos){ lineInsideNodes->moveto(n->position()); lineInsideNodes->lineto(nextNode->position()); SBasisInsideNodes = lineInsideNodes->first_segment()->toSBasis(); + n->bsplineWeight = pos; ret = SBasisInsideNodes.valueAt(pos); ret = Geom::Point(ret[X] + 0.0001,ret[Y] + 0.0001); }else{ + n->bsplineWeight = 0.0000; ret = n->position(); } return ret; @@ -1257,8 +1259,8 @@ void PathManipulator::BSplineNodeHandlesReposition(Node *n){ prevPos = BSplineHandlePosition(prevNode->front()); if(nextNode) nextPos = BSplineHandlePosition(nextNode->back()); - n->front()->setPosition(BSplineHandleReposition(n->front(),n->bsplineWeight)); - n->back()->setPosition(BSplineHandleReposition(n->back(),n->bsplineWeight)); + n->front()->setPosition(BSplineHandleReposition(n->front())); + n->back()->setPosition(BSplineHandleReposition(n->back())); if(prevNode) prevNode->front()->setPosition(BSplineHandleReposition(prevNode->front(),prevPos)); if(nextNode) -- cgit v1.2.3