ProjGeom 1.0.11
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
PgObject< Point, Line > Struct Template Reference

Projective Point/Line (int64_t specialization) More...

#include <pg_object.hpp>

Public Types

using Dual = Line
 

Public Member Functions

constexpr PgObject (std::array< int64_t, 3 > coord)
 Construct a new Pg Object object.
 
constexpr auto aux () const -> Line
 Return the dual object (auxiliary line/point).
 
constexpr auto dot (const Line &other) const -> int64_t
 Dot product with the dual object.
 
constexpr auto incident (const Line &other) const -> bool
 Check incidence with the dual object.
 
constexpr auto meet (const Point &rhs) const -> Line
 Meet (intersection) with another point to form a line.
 

Static Public Member Functions

static constexpr auto parametrize (const int64_t &lambda_val, const Point &pt_p, const int64_t &mu_val, const Point &pt_q) -> Point
 Homogeneous parametrization of point or line.
 

Public Attributes

std::array< int64_t, 3 > coord
 

Friends

constexpr auto operator== (const Point &lhs, const Point &rhs) -> bool
 Equal to.
 
constexpr auto operator!= (const Point &lhs, const Point &rhs) -> bool
 Not equal to.
 

Detailed Description

template<typename Point, typename Line>
struct PgObject< Point, Line >

Projective Point/Line (int64_t specialization)

Template Parameters
Point
Line

Member Typedef Documentation

◆ Dual

template<typename Point , typename Line >
using PgObject< Point, Line >::Dual = Line

Constructor & Destructor Documentation

◆ PgObject()

template<typename Point , typename Line >
constexpr PgObject< Point, Line >::PgObject ( std::array< int64_t, 3 >  coord)
inlineexplicitconstexpr

Construct a new Pg Object object.

Parameters
[in]coordHomogeneous coordinate

Member Function Documentation

◆ aux()

template<typename Point , typename Line >
constexpr auto PgObject< Point, Line >::aux ( ) const -> Line
inlineconstexpr

Return the dual object (auxiliary line/point).

Returns
Line

◆ dot()

template<typename Point , typename Line >
constexpr auto PgObject< Point, Line >::dot ( const Line &  other) const -> int64_t
inlineconstexpr

Dot product with the dual object.

\[ a \cdot b = a_x b_x + a_y b_y + a_z b_z \]

Parameters
[in]other
Returns
int64_t

◆ incident()

template<typename Point , typename Line >
constexpr auto PgObject< Point, Line >::incident ( const Line &  other) const -> bool
inlineconstexpr

Check incidence with the dual object.

Parameters
[in]other
Returns
true
false

◆ meet()

template<typename Point , typename Line >
constexpr auto PgObject< Point, Line >::meet ( const Point &  rhs) const -> Line
inlineconstexpr

Meet (intersection) with another point to form a line.

\[ l = p \times q \]

Parameters
[in]rhs
Returns
Line

◆ parametrize()

template<typename Point , typename Line >
static constexpr auto PgObject< Point, Line >::parametrize ( const int64_t &  lambda_val,
const Point &  pt_p,
const int64_t &  mu_val,
const Point &  pt_q 
) -> Point
inlinestaticconstexpr

Homogeneous parametrization of point or line.

\[ \lambda p + \mu q \]

Parameters
[in]lambda
[in]pt_p
[in]mu
[in]pt_q
Returns
Point

Friends And Related Symbol Documentation

◆ operator!=

template<typename Point , typename Line >
constexpr auto operator!= ( const Point &  lhs,
const Point &  rhs 
) -> bool
friend

Not equal to.

Parameters
[in]lhs
[in]rhs
Returns
true
false

◆ operator==

template<typename Point , typename Line >
constexpr auto operator== ( const Point &  lhs,
const Point &  rhs 
) -> bool
friend

Equal to.

Parameters
[in]lhs
[in]rhs
Returns
true
false

Member Data Documentation

◆ coord

template<typename Point , typename Line >
std::array<int64_t, 3> PgObject< Point, Line >::coord

The documentation for this struct was generated from the following file: