public static S2CellId fromFaceIJ(int face,int i,int j){
  long n[]={0,face << (POS_BITS - 33)};
  int bits=(face & SWAP_MASK);
  for (int k=7; k >= 0; --k) {
    bits=getBits(n,i,j,k,bits);
  }
  S2CellId s=new S2CellId((((n[1] << 32) + n[0]) << 1) + 1);
  return s;
}

public static S2CellId fromFaceIJ ( int face , int i , int j ) { long n [ ] = { 0 , face << ( POS_BITS - 33 ) } ; int bits = ( face & SWAP_MASK ) ; for ( int k = 7 ; k >= 0 ; -- k ) { bits = getBits ( n , i , j , k , bits ) ; } S2CellId s = new S2CellId ( ( ( ( n [ 1 ] << 32 ) + n [ 0 ] ) << 1 ) + 1 ) ; return s ; }
return a leaf cell given its cube face ( range 0 . . 5 ) and i - and j - coordinates ( see s2 . h ) .
