Blame boost/polygon/voronoi_geometry_type.hpp

Packit 58578d
// Boost.Polygon library voronoi_geometry_type.hpp header file
Packit 58578d
Packit 58578d
//          Copyright Andrii Sydorchuk 2010-2012.
Packit 58578d
// Distributed under the Boost Software License, Version 1.0.
Packit 58578d
//    (See accompanying file LICENSE_1_0.txt or copy at
Packit 58578d
//          http://www.boost.org/LICENSE_1_0.txt)
Packit 58578d
Packit 58578d
// See http://www.boost.org for updates, documentation, and revision history.
Packit 58578d
Packit 58578d
#ifndef BOOST_POLYGON_VORONOI_GEOMETRY_TYPE
Packit 58578d
#define BOOST_POLYGON_VORONOI_GEOMETRY_TYPE
Packit 58578d
Packit 58578d
#include <cstddef>
Packit 58578d
Packit 58578d
namespace boost {
Packit 58578d
namespace polygon {
Packit 58578d
// Represents topology type of the voronoi site.
Packit 58578d
enum GeometryCategory {
Packit 58578d
  GEOMETRY_CATEGORY_POINT = 0x0,
Packit 58578d
  GEOMETRY_CATEGORY_SEGMENT = 0x1
Packit 58578d
};
Packit 58578d
Packit 58578d
// Represents category of the input source that forms Voronoi cell.
Packit 58578d
enum SourceCategory {
Packit 58578d
  // Point subtypes.
Packit 58578d
  SOURCE_CATEGORY_SINGLE_POINT = 0x0,
Packit 58578d
  SOURCE_CATEGORY_SEGMENT_START_POINT = 0x1,
Packit 58578d
  SOURCE_CATEGORY_SEGMENT_END_POINT = 0x2,
Packit 58578d
Packit 58578d
  // Segment subtypes.
Packit 58578d
  SOURCE_CATEGORY_INITIAL_SEGMENT = 0x8,
Packit 58578d
  SOURCE_CATEGORY_REVERSE_SEGMENT = 0x9,
Packit 58578d
Packit 58578d
  SOURCE_CATEGORY_GEOMETRY_SHIFT = 0x3,
Packit 58578d
  SOURCE_CATEGORY_BITMASK = 0x1F
Packit 58578d
};
Packit 58578d
Packit 58578d
inline bool belongs(
Packit 58578d
    SourceCategory source_category,
Packit 58578d
    GeometryCategory geometry_category) {
Packit 58578d
  return (static_cast<std::size_t>(source_category) >>
Packit 58578d
              SOURCE_CATEGORY_GEOMETRY_SHIFT) ==
Packit 58578d
         static_cast<std::size_t>(geometry_category);
Packit 58578d
}
Packit 58578d
}  // polygon
Packit 58578d
}  // boost
Packit 58578d
Packit 58578d
#endif  // BOOST_POLYGON_VORONOI_GEOMETRY_TYPE