ProjGeom 1.0.11
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
proj_plane.hpp File Reference
#include <array>
#include <cassert>
#include <tuple>
#include "proj_plane_concepts.h"
Include dependency graph for proj_plane.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  fun::Involution< Point, Line >
 
class  fun::involution_generic< Point, Line >
 Generic involution class for projective planes. More...
 

Namespaces

namespace  fun
 

Typedefs

template<typename Point >
using fun::Triple = std::array< Point, 3 >
 Type alias for an array of three points (a triangle)
 

Functions

template<typename Point , typename Line >
requires ProjectivePlane<Point, Line>
constexpr auto fun::incident (const Point &pt_p, const Line &ln_l) -> bool
 The code snippet is defining a function named incident that checks if a point pt_p is incident to a line ln_l in a projective plane. The function uses the dot method of the Point class and compares it to zero to determine if the point is incident to the line. The function returns a boolean value indicating whether the point is incident to the line or not.
 
template<typename Line , typename... Args>
requires (ProjectivePlanePrim<Line, Args> && ...)
constexpr auto fun::coincident (const Line &ln_l, const Args &... pt_r) -> bool
 Coincident.
 
template<ProjectivePlanePrim2 Point>
constexpr auto fun::tri_dual (const Triple< Point > &triangle)
 Compute the dual triangle (sides as points).
 
template<ProjectivePlanePrim2 Point, typename Fn >
constexpr auto fun::tri_func (Fn &&func, const Triple< Point > &triangle)
 Apply a binary function to all pairs of triangle vertices.
 
template<ProjectivePlanePrim2 Point>
constexpr auto fun::persp (const Triple< Point > &tri1, const Triple< Point > &tri2) -> bool
 return whether two triangles are perspective
 
template<ProjectivePlane2 Point>
constexpr auto fun::harm_conj (const Point &A, const Point &B, const Point &C) -> Point
 Compute the harmonic conjugate of three collinear points.
 
template<ProjectivePlaneGeneric2 _Point>
constexpr auto fun::harm_conj (const _Point &A, const _Point &B, const _Point &C) -> _Point
 Compute the harmonic conjugate (generic version).
 
template<ProjectivePlane2 Point>
constexpr auto fun::is_harmonic (const Point &A, const Point &B, const Point &C, const Point &D) -> bool
 Check if four points form a harmonic range.
 
template<ProjectivePlanePrim2 Point>
void fun::check_pappus (const Triple< Point > &coline1, const Triple< Point > &coline2)
 Check Pappus Theorem for two sets of collinear points.
 
template<ProjectivePlanePrim2 Point>
void fun::check_desargue (const Triple< Point > &tri1, const Triple< Point > &tri2)
 Check Desargues' theorem for two triangles.
 

Detailed Description

This is a C++ Library header.