Exterior Product

group ext

(meet.hpp)

The exterior product between two basis elements extinguishes if the two operands share any common index. Otherwise, the element produced is equivalent to the union of the subspaces. A sign flip is introduced if the concatenation of the element indices is an odd permutation of the cyclic basis representation. The exterior product extends to general multivectors by linearity.

Meeting two planes

    kln::plane p1{x1, y1, z1, d1};
    kln::plane p2{x2, y2, z2, d2};

    // l lies at the intersection of p1 and p2.
    kln::line l = p1 ^ p2;

Meeting a line and a plane

    kln::plane p1{x, y, z, d};
    kln::line l2{mx, my, mz, dx, dy, dz};

    // p2 lies at the intersection of p1 and l2.
    kln::point p2 = p1 ^ l2;

Summary

Members Descriptions
public line KLN_VEC_CALL operator^(plane a,plane b) noexcept
public point KLN_VEC_CALL operator^(plane a,branch b) noexcept
public point KLN_VEC_CALL operator^(branch b,plane a) noexcept
public point KLN_VEC_CALL operator^(plane a,ideal_line b) noexcept
public point KLN_VEC_CALL operator^(ideal_line b,plane a) noexcept
public point KLN_VEC_CALL operator^(plane a,line b) noexcept
public point KLN_VEC_CALL operator^(line b,plane a) noexcept
public dual KLN_VEC_CALL operator^(plane a,point b) noexcept
public dual KLN_VEC_CALL operator^(point b,plane a) noexcept
public dual KLN_VEC_CALL operator^(branch a,ideal_line b) noexcept
public dual KLN_VEC_CALL operator^(ideal_line b,branch a) noexcept
public dual KLN_VEC_CALL operator^(line a,line b) noexcept
public dual KLN_VEC_CALL operator^(line a,ideal_line b) noexcept
public dual KLN_VEC_CALL operator^(ideal_line b,line a) noexcept
public dual KLN_VEC_CALL operator^(line a,branch b) noexcept
public dual KLN_VEC_CALL operator^(branch b,line a) noexcept

Members

line KLN_VEC_CALL operator^(plane a,plane b) noexcept

point KLN_VEC_CALL operator^(plane a,branch b) noexcept

point KLN_VEC_CALL operator^(branch b,plane a) noexcept

point KLN_VEC_CALL operator^(plane a,ideal_line b) noexcept

point KLN_VEC_CALL operator^(ideal_line b,plane a) noexcept

point KLN_VEC_CALL operator^(plane a,line b) noexcept

point KLN_VEC_CALL operator^(line b,plane a) noexcept

dual KLN_VEC_CALL operator^(plane a,point b) noexcept

dual KLN_VEC_CALL operator^(point b,plane a) noexcept

dual KLN_VEC_CALL operator^(branch a,ideal_line b) noexcept

dual KLN_VEC_CALL operator^(ideal_line b,branch a) noexcept

dual KLN_VEC_CALL operator^(line a,line b) noexcept

dual KLN_VEC_CALL operator^(line a,ideal_line b) noexcept

dual KLN_VEC_CALL operator^(ideal_line b,line a) noexcept

dual KLN_VEC_CALL operator^(line a,branch b) noexcept

dual KLN_VEC_CALL operator^(branch b,line a) noexcept