![]() |
Pangolin
Header-only C++20 plane computational geometry library
|
#include "shape/convex.hpp"#include <algorithm>#include <vector>#include <cassert>#include <compare>#include <concepts>#include <cstddef>#include <functional>#include <iterator>#include <limits>#include <optional>#include <ostream>#include <ranges>#include <span>#include <type_traits>#include <utility>#include <variant>Go to the source code of this file.
Classes | |
| struct | pgl::MonotoneChain< PointType_, TLabel, Storage > |
| Weakly x-monotone polyline stored by lexicographically sorted vertices. More... | |
| class | pgl::MonotoneChain< PointType_, TLabel, Storage >::BoundaryIterator< Oriented > |
| Forward iterator over the (optionally oriented) chain edges. More... | |
Namespaces | |
| namespace | pgl |
Typedefs | |
| template<class PointType = Point<>, class Label = NoLabel> | |
| using | pgl::MonotoneChainView = MonotoneChain<PointType, Label, std::span<const PointType>> |
| A non-owning MonotoneChain that views an external, already canonical (sorted, duplicate-free) contiguous range of vertices. | |
Functions | |
| pgl::MonotoneChain () -> MonotoneChain< Point<>, NoLabel > | |
| template<std::ranges::input_range Range> requires detail::is_point_v<std::ranges::range_value_t<Range>> | |
| pgl::MonotoneChain (Range &&) -> MonotoneChain< std::remove_cvref_t< std::ranges::range_value_t< Range > >, NoLabel > | |
| template<std::ranges::input_range Range> requires detail::is_point_v<std::ranges::range_value_t<Range>> | |
| pgl::MonotoneChain (Range &&, bool) -> MonotoneChain< std::remove_cvref_t< std::ranges::range_value_t< Range > >, NoLabel > | |
| template<class Number> requires (!detail::is_point_v<Number>) | |
| pgl::MonotoneChain (std::initializer_list< Number >) -> MonotoneChain< Point< Number >, NoLabel > | |
| template<class Number> requires (!detail::is_point_v<Number>) | |
| pgl::MonotoneChain (std::initializer_list< Number >, bool) -> MonotoneChain< Point< Number >, NoLabel > | |
| template<class PointType, class LabelType, class Storage, class TranslationNumber, class TranslationLabel> | |
| constexpr auto | pgl::operator- (const MonotoneChain< PointType, LabelType, Storage > &chain, const Point< TranslationNumber, TranslationLabel > &translation) |
| template<class PointType, class LabelType, class Storage, class Scalar> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator* (const MonotoneChain< PointType, LabelType, Storage > &chain, const Scalar &scalar) |
| template<class Scalar, class PointType, class LabelType, class Storage> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator* (const Scalar &scalar, const MonotoneChain< PointType, LabelType, Storage > &chain) |
| template<class PointType, class LabelType, class Storage, class Scalar> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator/ (const MonotoneChain< PointType, LabelType, Storage > &chain, const Scalar &scalar) |
| template<class PointType, class LabelType, class Storage> | |
| std::ostream & | pgl::operator<< (std::ostream &stream, const MonotoneChain< PointType, LabelType, Storage > &chain) |
| Streams a MonotoneChain as MonotoneChain[(P1),(P2),(P3),...]. | |