in src/h3lib/lib/h3Index.c [757:781]
int _h3ToFaceIjkWithInitializedFijk(H3Index h, FaceIJK* fijk) {
CoordIJK* ijk = &fijk->coord;
int res = H3_GET_RESOLUTION(h);
// center base cell hierarchy is entirely on this face
int possibleOverage = 1;
if (!_isBaseCellPentagon(H3_GET_BASE_CELL(h)) &&
(res == 0 ||
(fijk->coord.i == 0 && fijk->coord.j == 0 && fijk->coord.k == 0)))
possibleOverage = 0;
for (int r = 1; r <= res; r++) {
if (isResClassIII(r)) {
// Class III == rotate ccw
_downAp7(ijk);
} else {
// Class II == rotate cw
_downAp7r(ijk);
}
_neighbor(ijk, H3_GET_INDEX_DIGIT(h, r));
}
return possibleOverage;
}