#ifndef S2_S2CELLID_H_
#define S2_S2CELLID_H_
#include <cstddef>
#include <functional>
#include <iostream>
#include <string>
#include <vector>
#include "base/check_op.h"
#include "s2/_fpcontractoff.h"
#include "s2/r2.h"
#include "s2/r2rect.h"
#include "s2/s1angle.h"
#include "s2/s2coords.h"
#include "s2/util/bits/bits.h"
#ifdef _MSC_VER
#pragma warning(disable : 4146)
#endif
class S2LatLng;
class S2CellId { … };
inline bool operator==(S2CellId x, S2CellId y) { … }
inline bool operator!=(S2CellId x, S2CellId y) { … }
inline bool operator<(S2CellId x, S2CellId y) { … }
inline bool operator>(S2CellId x, S2CellId y) { … }
inline bool operator<=(S2CellId x, S2CellId y) { … }
inline bool operator>=(S2CellId x, S2CellId y) { … }
inline S2CellId S2CellId::FromFace(int face) { … }
inline S2CellId S2CellId::FromFacePosLevel(int face, uint64_t pos, int level) { … }
inline int S2CellId::GetCenterSiTi(int* psi, int* pti) const { … }
inline bool S2CellId::is_valid() const { … }
inline int S2CellId::face() const { … }
inline uint64_t S2CellId::pos() const { … }
inline int S2CellId::level() const { … }
inline int S2CellId::GetSizeIJ() const { … }
inline double S2CellId::GetSizeST() const { … }
inline int S2CellId::GetSizeIJ(int level) { … }
inline double S2CellId::GetSizeST(int level) { … }
inline bool S2CellId::is_leaf() const { … }
inline bool S2CellId::is_face() const { … }
inline int S2CellId::child_position() const { … }
inline int S2CellId::child_position(int level) const { … }
inline S2CellId S2CellId::range_min() const { … }
inline S2CellId S2CellId::range_max() const { … }
inline bool S2CellId::contains(S2CellId other) const { … }
inline bool S2CellId::intersects(S2CellId other) const { … }
inline S2CellId S2CellId::parent(int level) const { … }
inline S2CellId S2CellId::parent() const { … }
inline S2CellId S2CellId::child(int position) const { … }
inline S2CellId S2CellId::child_begin() const { … }
inline S2CellId S2CellId::child_begin(int level) const { … }
inline S2CellId S2CellId::child_end() const { … }
inline S2CellId S2CellId::child_end(int level) const { … }
inline S2CellId S2CellId::next() const { … }
inline S2CellId S2CellId::prev() const { … }
inline S2CellId S2CellId::next_wrap() const { … }
inline S2CellId S2CellId::prev_wrap() const { … }
inline S2CellId S2CellId::Begin(int level) { … }
inline S2CellId S2CellId::End(int level) { … }
std::ostream& operator<<(std::ostream& os, S2CellId id);
struct S2CellIdHash { … };
#endif