public BezierSubdivision Next() // Next index at current level { var next = new BezierSubdivision(new List <Vector2>(Points), Level, Index + 1); next.ScaleLeft(2); next.Reverse(); return(next); }
public BezierSubdivision Parent() // Parent subdivision (inverse of BezierSubdivide) { var parent = new BezierSubdivision(new List <Vector2>(Points), Level - 1, Index >> 1); if ((Index & 1) == 0) { parent.ScaleRight(2); } else { parent.ScaleLeft(-1); } return(parent); }