int main(int argc, char *argv[]) { Generator generator; int index; std::string input = ""; std::string plate = "xy"; while ((index = getopt(argc, argv, "yze:o:f:Z:O:r:a:n")) != -1) { switch (index) { case 'n': generator.circleDetection = false; break; case 'r': { auto parts = split(std::string(optarg), ':'); if (parts.size() == 3) { generator.setRepeat(parts[0], atoi(parts[1].c_str()), atof(parts[2].c_str())); } } break; case 'a': generator.setAreaTreshold(atof(optarg)); break; case 'O': generator.setPOffset(atof(optarg)); break; case 'f': generator.setOutputFormat(std::string(optarg)); break; case 'z': plate = "xz"; break; case 'y': plate = "yz"; break; case 'e': { auto parts = split(std::string(optarg), ':'); if (parts.size() != 2) usage(); generator.addEngravure(atof(parts[0].c_str()), parts[1]); } break; case 'o': generator.setOutput(std::string(optarg)); break; case 'Z': generator.setZExtra(atof(optarg)); break; } } if (optind != argc) { generator.openSTL(std::string(argv[optind]), plate); } else { usage(); } generator.run(); }