Pangolin
Header-only C++20 plane computational geometry library
Loading...
Searching...
No Matches
triangle.hpp File Reference

Public declaration of pgl::Triangle. More...

#include "shape/rectangle.hpp"
#include <array>
#include <cassert>
#include <compare>
#include <concepts>
#include <cstddef>
#include <iterator>
#include <optional>
#include <vector>
#include <ostream>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  pgl::Triangle< PointType_, TLabel >
 Closed triangle stored by three vertices. More...
class  pgl::Triangle< PointType_, TLabel >::BoundaryIterator< Oriented >

Namespaces

namespace  pgl

Functions

 pgl::Triangle () -> Triangle< Point<>, NoLabel >
template<class PointType>
 pgl::Triangle (PointType, PointType, PointType) -> Triangle< PointType, NoLabel >
template<class PointType, class A>
 pgl::Triangle (PointType, PointType, PointType, A) -> Triangle< PointType, std::decay_t< A > >
template<class Number>
 pgl::Triangle (Number, Number, Number, Number, Number, Number) -> Triangle< Point< Number >, NoLabel >
template<class PointType, class LabelType, class TranslationNumber, class TranslationLabel>
constexpr auto pgl::operator- (const Triangle< PointType, LabelType > &triangle, const Point< TranslationNumber, TranslationLabel > &translation)
 Returns a copy of a triangle 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 Triangle< PointType, LabelType > &triangle, const Scalar &scalar)
 Returns a scaled copy of a triangle.
template<class Scalar, class PointType, class LabelType>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>)
constexpr auto pgl::operator* (const Scalar &scalar, const Triangle< PointType, LabelType > &triangle)
 Returns a scaled copy of a triangle with the scalar on the left.
template<class PointType, class LabelType, class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>)
constexpr auto pgl::operator/ (const Triangle< PointType, LabelType > &triangle, const Scalar &scalar)
 Returns a copy of a triangle divided by a scalar.
template<class PointType, class LabelType>
std::ostream & pgl::operator<< (std::ostream &stream, const Triangle< PointType, LabelType > &triangle)
 Streams a triangle as <abc>.

Detailed Description

Public declaration of pgl::Triangle.

Triangle is the smallest polygonal 2D primitive and anchors finite-area, vertex-based, and edge-based operations in the current library.