![]() |
Pangolin
Header-only C++20 plane computational geometry library
|
Public declaration of pgl::Rectangle. More...
#include "shape/ray.hpp"#include <array>#include <cassert>#include <concepts>#include <cstddef>#include <iterator>#include <ostream>#include <ranges>#include <stdexcept>#include <type_traits>#include <optional>#include <vector>#include <utility>#include <variant>Go to the source code of this file.
Classes | |
| struct | pgl::Rectangle< PointType_, TLabel > |
| Axis-aligned rectangle stored by minimum and maximum corners. More... | |
| class | pgl::Rectangle< PointType_, TLabel >::CornerIterator |
| Forward iterator over the four corners in counterclockwise order. More... | |
| class | pgl::Rectangle< PointType_, TLabel >::BoundaryIterator< Oriented > |
| Forward iterator over the four rectangle boundary edges. More... | |
Namespaces | |
| namespace | pgl |
Functions | |
| pgl::Rectangle () -> Rectangle< Point<>, NoLabel > | |
| template<class PointType> | |
| pgl::Rectangle (PointType, PointType) -> Rectangle< PointType, NoLabel > | |
| template<class Number> | |
| pgl::Rectangle (Number, Number, Number, Number) -> Rectangle< Point< Number >, NoLabel > | |
| template<std::ranges::input_range Range> requires detail::is_point_v<std::ranges::range_value_t<Range>> | |
| pgl::Rectangle (Range &&) -> Rectangle< std::remove_cvref_t< std::ranges::range_value_t< Range > >, NoLabel > | |
| template<class PointType, class LabelType, class TranslationNumber, class TranslationLabel> | |
| constexpr auto | pgl::operator- (const Rectangle< PointType, LabelType > &rectangle, const Point< TranslationNumber, TranslationLabel > &translation) |
| Translates a rectangle by the opposite of a point. | |
| template<class PointType, class LabelType, class Scalar> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator* (const Rectangle< PointType, LabelType > &rectangle, const Scalar &scalar) |
| Scales a rectangle by a scalar. | |
| template<class Scalar, class PointType, class LabelType> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator* (const Scalar &scalar, const Rectangle< PointType, LabelType > &rectangle) |
| Scales a rectangle by a scalar written on the left. | |
| template<class PointType, class LabelType, class Scalar> requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) | |
| constexpr auto | pgl::operator/ (const Rectangle< PointType, LabelType > &rectangle, const Scalar &scalar) |
| Divides both rectangle corners by a scalar. | |
| template<class PointType, class LabelType> | |
| std::ostream & | pgl::operator<< (std::ostream &stream, const Rectangle< PointType, LabelType > &rectangle) |
| Streams a rectangle as [min,max], or as [] when it is empty. | |
Public declaration of pgl::Rectangle.
Rectangles are axis-aligned finite 2D boxes used both as shapes and as exact bounding boxes for other finite geometry.