in src/apps/filters/h3ToLocalIj.c [50:96]
int main(int argc, char* argv[]) {
H3Index origin = 0;
Arg helpArg = ARG_HELP;
Arg originArg = {
.names = {"-o", "--origin"},
.scanFormat = "%" PRIx64,
.valueName = "origin",
.value = &origin,
.required = true,
.helpText =
"Origin (anchoring index) for the local coordinate system."};
DEFINE_INDEX_ARG(index, indexArg);
Arg* args[] = {&helpArg, &originArg, &indexArg};
const int numArgs = 3;
const char* helpText = "Converts H3 indexes to local IJ coordinates";
if (parseArgs(argc, argv, numArgs, args, &helpArg, helpText)) {
return helpArg.found ? 0 : 1;
}
if (!H3_EXPORT(h3IsValid)(origin)) {
printHelp(stderr, argv[0], helpText, numArgs, args,
"Origin is invalid.", NULL);
return 1;
}
if (indexArg.found) {
doCell(index, origin);
} else {
// process the indexes on stdin
char buff[BUFF_SIZE];
while (1) {
// get an index from stdin
if (!fgets(buff, BUFF_SIZE, stdin)) {
if (feof(stdin))
break;
else
error("reading H3 index from stdin");
}
H3Index h3 = H3_EXPORT(stringToH3)(buff);
doCell(h3, origin);
}
}
}