template<typename _P, typename _L, template<typename P, typename L> class Derived>
fun::ck struct

Template parameters
_P
_L
Derived

Public types

using point_t = _P
using line_t = _L
using cDer = const Derived<_P, _L>

Constructors, destructors, conversion operators

ck() constexpr noexcept
construct ck object

Public functions

auto is_perpendicular(const _L& l, const _L& m) const -> bool -> auto constexpr
is perpendicular
template<typename P, typename L = typename P::dual>
auto altitude(const P& p, const L& l) const -> L -> requires constexpr Projective_plane_prim<P, L> auto
altitude
auto tri_altitude(const Triple<P>& tri) const -> auto constexpr
altitudes of triangle
auto orthocenter(const Triple<P>& tri) const -> P -> auto constexpr
ortho-center
template<Projective_plane P>
auto reflect(const P& m) const -> auto
reflect
template<Projective_plane P>
auto tri_measure(const Triple<P>& tri) const -> auto constexpr
measure of triangle
auto quadrance(const _P& p, const _P& q) const -> auto constexpr
quadrance between two points
auto spread(const _L& l, const _L& m) const -> auto constexpr
spread between two lines
auto tri_quadrance(const Triple<_P>& triangle) const -> auto constexpr
quadrances of triangle
auto tri_spread(const Triple<_L>& trilateral) const -> auto constexpr
spreads of triangle

Public variables

cDer& self

Function documentation

template<typename _P, typename _L, template<typename P, typename L> class Derived>
auto fun::ck<_P, _L, Derived>::is_perpendicular(const _L& l, const _L& m) const -> bool constexpr

is perpendicular

Parameters
in
in
Returns true

template<typename _P, typename _L, template<typename P, typename L> class Derived> template<typename P, typename L = typename P::dual>
requires constexpr Projective_plane_prim<P, L> auto fun::ck<_P, _L, Derived>::altitude(const P& p, const L& l) const -> L

altitude

Parameters
in
in
Returns L

template<typename _P, typename _L, template<typename P, typename L> class Derived> template<Projective_plane_prim2 P>
auto fun::ck<_P, _L, Derived>::tri_altitude(const Triple<P>& tri) const constexpr

altitudes of triangle

Parameters
tri in
Returns std::tuple

template<typename _P, typename _L, template<typename P, typename L> class Derived> template<Projective_plane_prim2 P>
auto fun::ck<_P, _L, Derived>::orthocenter(const Triple<P>& tri) const -> P constexpr

ortho-center

Parameters
tri in
Returns P

template<typename _P, typename _L, template<typename P, typename L> class Derived> template<Projective_plane P>
auto fun::ck<_P, _L, Derived>::reflect(const P& m) const

reflect

Parameters
in
Returns auto

template<typename _P, typename _L, template<typename P, typename L> class Derived> template<Projective_plane P>
auto fun::ck<_P, _L, Derived>::tri_measure(const Triple<P>& tri) const constexpr

measure of triangle

Parameters
tri in
Returns constexpr auto

template<typename _P, typename _L, template<typename P, typename L> class Derived>
auto fun::ck<_P, _L, Derived>::quadrance(const _P& p, const _P& q) const constexpr

quadrance between two points

Parameters
in
in
Returns constexpr auto

template<typename _P, typename _L, template<typename P, typename L> class Derived>
auto fun::ck<_P, _L, Derived>::spread(const _L& l, const _L& m) const constexpr

spread between two lines

Parameters
in
in
Returns constexpr auto

template<typename _P, typename _L, template<typename P, typename L> class Derived>
auto fun::ck<_P, _L, Derived>::tri_quadrance(const Triple<_P>& triangle) const constexpr

quadrances of triangle

Parameters
triangle in
Returns constexpr auto

template<typename _P, typename _L, template<typename P, typename L> class Derived>
auto fun::ck<_P, _L, Derived>::tri_spread(const Triple<_L>& trilateral) const constexpr

spreads of triangle

Parameters
trilateral in
Returns constexpr auto