1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| void runPlotterScript(istream& input) { PenStyle style = {1, "black"}; bool is_up = true; double curx = 0.0, cury = 0.0; for (string line; getline(input, line); ) { Vector<string> opt = stringSplit(line, " "); opt[0] = toUpperCase(opt[0]); if (startsWith(opt[0], "PEND")) { is_up = false; } else if (startsWith(opt[0], "PENU")) { is_up = true; } else if (startsWith(opt[0], "MOVEA")) { if (!is_up) { drawLine(curx, cury, stringToReal(opt[1]), stringToReal(opt[2]), style); } curx = stringToReal(opt[1]), cury = stringToReal(opt[2]); } else if (startsWith(opt[0], "MOVER")) { if (!is_up) { drawLine(curx, cury, curx + stringToReal(opt[1]), cury + stringToReal(opt[2]), style); } curx = curx + stringToReal(opt[1]), cury = cury + stringToReal(opt[2]); } else if (startsWith(opt[0], "PENC")) { style.color = opt[1]; } else { style.width = stringToReal(opt[1]); } } }
|