![]() |
Pangolin
Header-only C++20 plane computational geometry library
|
One bit per cell over a fixed rectangular window of the integer grid. More...
#include "algorithm/polyominoes.hpp"#include <algorithm>#include <array>#include <bit>#include <cassert>#include <cmath>#include <compare>#include <concepts>#include <cstddef>#include <cstdint>#include <functional>#include <iterator>#include <optional>#include <ranges>#include <span>#include <stdexcept>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| class | pgl::BitMatrix< TPointType > |
| A bit per cell of a rectangular window of the integer grid. More... | |
| class | pgl::BitMatrix< TPointType >::Iterator |
| Forward iterator over the set cells, in row-major order. More... | |
Namespaces | |
| namespace | pgl |
Enumerations | |
| enum class | pgl::GridAdjacency { pgl::edge , pgl::vertex } |
| Which grid cells count as neighbors. More... | |
Functions | |
| template<class PointType> | |
| BitMatrix< PointType > | pgl::operator+ (const PointType &vector, const BitMatrix< PointType > &matrix) |
| Returns the same cells translated by a vector. | |
| template<class PointType> | |
| pgl::BitMatrix (PointType, int, int) -> BitMatrix< PointType > | |
| template<class PointType, class LabelType> | |
| pgl::BitMatrix (const Rectangle< PointType, LabelType > &) -> BitMatrix< PointType > | |
| template<class PointType, class LabelType> | |
| pgl::BitMatrix (const PolygonWithHoles< PointType, LabelType > &) -> BitMatrix< PointType > | |
| template<class PointType, class LabelType> | |
| pgl::BitMatrix (const Polygon< PointType, LabelType > &) -> BitMatrix< PointType > | |
| template<class PointType, class LabelType> | |
| pgl::BitMatrix (const PolygonSet< PointType, LabelType > &) -> BitMatrix< PointType > | |
| template<std::ranges::input_range Range> requires (detail::is_point_v<std::remove_cvref_t<std::ranges::range_value_t<Range>>> && !AnyShapeConcept<std::remove_cvref_t <Range>> && !detail::is_bit_matrix_v<std::remove_cvref_t<Range>>) | |
| pgl::BitMatrix (Range &&) -> BitMatrix< std::remove_cvref_t< std::ranges::range_value_t< Range > > > | |
| template<class PointType, class ShapeType> | |
| BitMatrix< PointType > | pgl::outerRaster (const ShapeType &shape, const Rectangle< PointType > &window) |
| Rasterizes a shape into the cells it meets: its outer approximation. | |
| template<class PointType, class ShapeType> | |
| BitMatrix< PointType > | pgl::innerRaster (const ShapeType &shape, const Rectangle< PointType > &window) |
| Rasterizes a shape into the cells it covers: its inner approximation. | |
| template<class PointType = Point<int>, class ShapeType> requires std::signed_integral< std::remove_cvref_t<decltype(std::declval<const ShapeType&>().bbox().min().x())>> | |
| BitMatrix< PointType > | pgl::outerRaster (const ShapeType &shape) |
| Rasterizes a bounded shape over its own bounding box. | |
| template<class PointType = Point<int>, class ShapeType> requires std::signed_integral< std::remove_cvref_t<decltype(std::declval<const ShapeType&>().bbox().min().x())>> | |
| BitMatrix< PointType > | pgl::innerRaster (const ShapeType &shape) |
| Rasterizes a bounded shape over its own bounding box. | |
One bit per cell over a fixed rectangular window of the integer grid.