|
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
|