+ double TileToPosition(int t) const noexcept { return double(t) - Radius(); }
+ int PositionToTile(double p) const noexcept { return int(p + Radius()); }
+
+ // tile coordinates of position on surface
+ glm::ivec2 SurfacePosition(int surface, const glm::dvec3 &) const noexcept;
+ // height of point over surface
+ double SurfaceElevation(int surface, const glm::dvec3 &) const noexcept;
+ // center point of tile on surface at elevation
+ glm::dvec3 TileCenter(int surface, int x, int y, double elevation = 0.0) const noexcept;
+
+ void BuildVAO(const Set<TileType> &);