ext/h3/src/src/h3lib/include/faceijk.h in h3-3.4.4 vs ext/h3/src/src/h3lib/include/faceijk.h in h3-3.5.0

- old
+ new

@@ -1,7 +1,7 @@ /* - * Copyright 2016-2018 Uber Technologies, Inc. + * Copyright 2016-2019 Uber Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * @@ -48,29 +48,41 @@ } FaceOrientIJK; extern const GeoCoord faceCenterGeo[NUM_ICOSA_FACES]; // indexes for faceNeighbors table -/** Invalid faceNeighbors table direction */ -#define INVALID -1 -/** Center faceNeighbors table direction */ -#define CENTER 0 /** IJ quadrant faceNeighbors table direction */ #define IJ 1 /** KI quadrant faceNeighbors table direction */ #define KI 2 /** JK quadrant faceNeighbors table direction */ #define JK 3 +/** Invalid face index */ +#define INVALID_FACE -1 + +/** Digit representing overage type */ +typedef enum { + /** No overage (on original face) */ + NO_OVERAGE = 0, + /** On face edge (only occurs on substrate grids) */ + FACE_EDGE = 1, + /** Overage on new face interior */ + NEW_FACE = 2 +} Overage; + // Internal functions void _geoToFaceIjk(const GeoCoord* g, int res, FaceIJK* h); void _geoToHex2d(const GeoCoord* g, int res, int* face, Vec2d* v); void _faceIjkToGeo(const FaceIJK* h, int res, GeoCoord* g); void _faceIjkToGeoBoundary(const FaceIJK* h, int res, int isPentagon, GeoBoundary* g); void _faceIjkPentToGeoBoundary(const FaceIJK* h, int res, GeoBoundary* g); +void _faceIjkToVerts(FaceIJK* fijk, int* res, FaceIJK* fijkVerts); +void _faceIjkPentToVerts(FaceIJK* fijk, int* res, FaceIJK* fijkVerts); void _hex2dToGeo(const Vec2d* v, int face, int res, int substrate, GeoCoord* g); -int _adjustOverageClassII(FaceIJK* fijk, int res, int pentLeading4, - int substrate); +Overage _adjustOverageClassII(FaceIJK* fijk, int res, int pentLeading4, + int substrate); +Overage _adjustPentVertOverage(FaceIJK* fijk, int res); #endif