void bboxNormalization()

in h3_bbox.c [294:311]


void bboxNormalization(const BBox *a, const BBox *b,
                       LongitudeNormalization *aNormalization,
                       LongitudeNormalization *bNormalization) {
    bool aIsTransmeridian = bboxIsTransmeridian(a);
    bool bIsTransmeridian = bboxIsTransmeridian(b);
    bool aToBTrendsEast = a->west - b->east < b->west - a->east;
    // If neither is transmeridian, no normalization.
    // If both are transmeridian, normalize east by convention.
    // If one is transmeridian and one is not, normalize toward the other.
    *aNormalization = !aIsTransmeridian  ? NORMALIZE_NONE
                      : bIsTransmeridian ? NORMALIZE_EAST
                      : aToBTrendsEast   ? NORMALIZE_EAST
                                         : NORMALIZE_WEST;
    *bNormalization = !bIsTransmeridian  ? NORMALIZE_NONE
                      : aIsTransmeridian ? NORMALIZE_EAST
                      : aToBTrendsEast   ? NORMALIZE_WEST
                                         : NORMALIZE_EAST;
}