/*
thot package for statistical machine translation
Copyright (C) 2013 Daniel Ortiz-Mart\'inez

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 3
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program; If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

//--------------- Include files --------------------------------------

//--------------- CellID struct
struct CellID
{
  unsigned char x;
  unsigned char y;
  unsigned int z;

  bool operator==(const CellID& right) const
  {
    if (x == right.x && y == right.y && z == right.z)
      return true;
    else
      return false;
  }

  bool operator!=(const CellID& right) const
  {
    return !(*this == right);
  }

  bool operator<(const CellID& right) const
  {
    if (x < right.x)
      return true;
    if (right.x < x)
      return false;
    if (y < right.y)
      return true;
    if (right.y < y)
      return false;
    if (z < right.z)
      return true;
    if (right.z < z)
      return false;
    return false;
  }
};

