bool RSpline::reverse() { int k; for(k = 0; k < controlPoints.size()/2; k++) { controlPoints.swap(k,controlPoints.size()-(1+k)); } for(k = 0; k < fitPoints.size()/2; k++) { fitPoints.swap(k,fitPoints.size()-(1+k)); } double t; int i, j; for(i = 0, j = knotVector.size()-1; i <= j; i++, j--) { t = knotVector[i]; knotVector[i] = -knotVector[j]; knotVector[j] = -t; } RVector ts = tangentStart; tangentStart = tangentEnd.getNegated(); tangentEnd = ts.getNegated(); update(); return true; }