Pangolin
Header-only C++20 plane computational geometry library
Loading...
Searching...
No Matches
polygonwithholes.hpp File Reference
#include "shape/halfplaneintersection.hpp"
#include <algorithm>
#include <cassert>
#include <compare>
#include <concepts>
#include <cstddef>
#include <iterator>
#include <optional>
#include <ostream>
#include <ranges>
#include <type_traits>
#include <utility>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

struct  pgl::PolygonWithHoles< PointType_, TLabel >
 Closed region bounded by one outer simple polygon minus disjoint polygonal holes. More...
class  pgl::PolygonWithHoles< PointType_, TLabel >::VertexIterator
 Forward iterator flattening the region's rings into one vertex sequence: the outer boundary, then each hole in canonical order. More...

Namespaces

namespace  pgl

Functions

 pgl::PolygonWithHoles () -> PolygonWithHoles< Point<>, NoLabel >
template<PolygonConcept OuterPolygon>
 pgl::PolygonWithHoles (OuterPolygon &&) -> PolygonWithHoles< typename std::remove_cvref_t< OuterPolygon >::PointType, NoLabel >
template<PolygonConcept OuterPolygon>
 pgl::PolygonWithHoles (OuterPolygon &&, bool) -> PolygonWithHoles< typename std::remove_cvref_t< OuterPolygon >::PointType, NoLabel >
template<PolygonConcept OuterPolygon, std::ranges::input_range HoleRange>
requires detail::is_polygon_v<std::ranges::range_value_t<HoleRange>>
 pgl::PolygonWithHoles (OuterPolygon &&, HoleRange &&) -> PolygonWithHoles< typename std::remove_cvref_t< OuterPolygon >::PointType, NoLabel >
template<PolygonConcept OuterPolygon, std::ranges::input_range HoleRange>
requires detail::is_polygon_v<std::ranges::range_value_t<HoleRange>>
 pgl::PolygonWithHoles (OuterPolygon &&, HoleRange &&, bool) -> PolygonWithHoles< typename std::remove_cvref_t< OuterPolygon >::PointType, NoLabel >
template<class PointType, class LabelType, class TranslationNumber, class TranslationLabel>
constexpr auto pgl::operator- (const PolygonWithHoles< PointType, LabelType > &region, const Point< TranslationNumber, TranslationLabel > &translation)
 Returns a copy of a region translated by the opposite point.
template<class PointType, class LabelType, class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>)
constexpr auto pgl::operator* (const PolygonWithHoles< PointType, LabelType > &region, const Scalar &scalar)
template<class Scalar, class PointType, class LabelType>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>)
constexpr auto pgl::operator* (const Scalar &scalar, const PolygonWithHoles< PointType, LabelType > &region)
template<class PointType, class LabelType, class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>)
constexpr auto pgl::operator/ (const PolygonWithHoles< PointType, LabelType > &region, const Scalar &scalar)
template<class PointType, class LabelType>
std::ostream & pgl::operator<< (std::ostream &stream, const PolygonWithHoles< PointType, LabelType > &region)
 Streams a region as PolygonWithHoles[outer,holes...].