static void InvertPolygon(VertexStore myvxs, int start, int end) { int i; VertexCmd tmp_PathAndFlags = myvxs.GetCommand(start); --end; // Make "end" inclusive // Shift all commands to one position for (i = start; i < end; i++) { myvxs.ReplaceCommand(i, myvxs.GetCommand(i + 1)); } // Assign starting command to the ending command myvxs.ReplaceCommand(end, tmp_PathAndFlags); // Reverse the polygon while (end > start) { myvxs.SwapVertices(start++, end--); } }