Пример #1
0
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;
}