//re-used in readShape to save GC
 protected internal override Point ReadShape(BytesRef term)
 {
     scanCell = grid.GetCell(term.bytes.ToByteArray(), term.offset, term.length, scanCell);
     if (scanCell.Level == grid.MaxLevels && !scanCell.IsLeaf())
     {
         return(scanCell.GetCenter());
     }
     return(null);
 }
        private Cell scanCell = null;//re-used in readShape to save GC

        protected internal override IPoint ReadShape(BytesRef term)
        {
            scanCell = grid.GetCell(term.Bytes, term.Offset, term.Length, scanCell);
            if (scanCell.Level == grid.MaxLevels && !scanCell.IsLeaf)
            {
                return(scanCell.Center);
            }
            return(null);
        }