versor  3.0
C++11 library for Geometric algebra
vsr_cga2D_types.h
1 #ifndef VSR_CGA2D_TYPES_INCLUDED
2 #define VSR_CGA2D_TYPES_INCLUDED
3 
5 #include "detail/vsr_generic_op.h"
6 
7 namespace vsr{ namespace cga2D {
8 
9 // namespace types {
10 
11 
12  //2D CONFORMAL
13  // typedef Ne<4,1> e1;
14  // typedef Ne<4,2> e2;
15  // typedef Ne<4,3> e3;
16 
17  typedef NSca<4> Sca;
18  typedef NVec<4> Vec;
19  typedef NBiv<4> Biv;
20  typedef NTri<4> Tri;
21  typedef NRot<4> Rot;
22 
23  typedef NOri<4> Ori; //Origin
24  typedef NInf<4> Inf; //Infinity
25  typedef NMnk<4> Mnk; //E Plane
26  typedef NPss<4> Pss; //E Plane
27 
28  typedef NPnt<4> Pnt; //Homogenous Point in 3D
29  typedef Pnt Dls; //Dual Sphere
30 
31  typedef NPar<4> Par; //Point Pair
32  typedef NCir<4> Cir; //Circle
33  typedef NSph<4> Sph; //Sphere
34 
35  typedef NDrv<4> Drv; //Direction Vector
36  typedef NTnv<4> Tnv; //Tangent Vector
37  typedef NDrb<4> Drb; //Direction Bivector
38  typedef NTnb<4> Tnb; //Tangent Bivector
39  typedef NDrt<4> Drt; //Direction Trivector
40  typedef NTnt<4> Tnt; //Tangent Trivector
41 
42  typedef NDll<4> Dll; //Dual Line
43  typedef NLin<4> Lin; //Dual Line
44  typedef NFlp<4> Flp; //Flat Point
45  typedef decltype( Flp().dual() ) Dfp; //Dual Flat Point
46  typedef NPln<4> Pln; //Plane
47  typedef NDlp<4> Dlp; //Plane
48 
49  typedef NTrs<4> Trs; //Translator
50  typedef NMot<4> Mot; //Motor
51  typedef NTrv<4> Trv; //Transversor
52  typedef NBst<4> Bst; //Boost
53  typedef NDil<4> Dil; //Dilator
54  typedef NTsd<4> Tsd; //Translated Dilator
55 
56  //FULL NAMES
57  typedef Sca Scalar;
58  typedef Biv Bivector;
59  typedef Tri Trivector ;
60  typedef Rot Rotor;
61  typedef Ori Origin;
62  typedef Inf Infinity;
63  typedef Mnk Minkowski;
64  typedef Pss Pseudoscalar;
65  typedef Pnt Point;
66  typedef Par Pair;
67  typedef Cir Circle;
68  typedef Sph Sphere;
69  typedef Pnt DualSphere;
70  typedef Drv DirectionVector;
71  typedef Drb DirectionBivector;
72  typedef Drt DirectionTrivector;
73  typedef Tnv TangentVector;
74  typedef Tnb TangentBivector;
75  typedef Tnt TangentTrivector;
76  typedef Dll DualLine;
77  typedef Lin Line;
78  typedef Flp FlatPoint;
79  typedef Dfp DualFlatPoint;
80  typedef Pln Plane;
81  typedef Dlp DualPlane;
82  typedef Trs Translator;
83  typedef Mot Motor;
84  typedef Trv Transversor;
85  typedef Bst Boost;
86  typedef Dil Dilator;
87  typedef Tsd TranslatedDilator;
88 
89  // } //types::
90 
91  //using namespace vsr::cga2D::types;
92 
93  template<class V>
94  inline Point point(const V& v){
95  return nga::Round::null( v[0], v[1] );
96  }
97 
98  Point circle(VSR_PRECISION x, VSR_PRECISION y, VSR_PRECISION rad){
99  return nga::Round::dls( Vec(x,y), rad );
100  }
101 
102  Pair meet( const Line& lin, const Circle& cir){
103  return ( lin.dual() ^ cir.dual() ).dual();
104  }
105 
106 } } // vsr::cga2D
107 
108 #endif
NPln< 5 > Pln
Plane
Definition: vsr_cga3D_types.h:82
Dlp DualPlane
Dual Plane \(\boldsymbol{n}+n_\infty\)
Definition: vsr_cga3D_types.h:143
static constexpr GAPnt< A > null(const Multivector< A, B > &v)
Null Point from Arbitrary Multivector.
Definition: vsr_generic_op.h:548
Dil Dilator
Dilation relative to Origin \(1+E\)
Definition: vsr_cga3D_types.h:149
NDil< 5 > Dil
Dilator
Definition: vsr_cga3D_types.h:96
NDlp< 5 > Dlp
DualPlane
Definition: vsr_cga3D_types.h:81
Trv Transversor
Transversion at the Origin \(1-\boldsymbol{v}n_o\)
Definition: vsr_cga3D_types.h:146
NDrv< 5 > Drv
DirectionVector
Definition: vsr_cga3D_types.h:84
Tsd TranslatedDilator
Dilation relative to some point p \(e^{p \wedge n_\infty}\)
Definition: vsr_cga3D_types.h:150
static auto dls(VSR_PRECISION r, T...v) -> NPnt< sizeof...(T)+2 >
Dual Sphere from Radius FIRST and Coordinate Center.
Definition: vsr_generic_op.h:586
NCir< 5 > Cir
Circle
Definition: vsr_cga3D_types.h:74
Par Pair
Point Pair 2-blade \(\tau=p_a \wedge p_b=\{e_{12},e_{13},e_{23},e_{1}n_o,e_{2}n_o,e_{3}n_o,e_{1}n_\infty,e_{2}n_\infty,e_{3}n_\infty,n_{o}n_\infty\}\)
Definition: vsr_cga3D_types.h:129
NDls< 5 > Dls
DualSphere
Definition: vsr_cga3D_types.h:76
Tnb TangentBivector
Tangent Bivector \(\boldsymbol{B}n_o\)
Definition: vsr_cga3D_types.h:137
Rot Rotor
Euclidean Rotor (Quaternionic): \(R=\{1,e_{12},e_{13},e_{23}\}\)
Definition: vsr_cga3D_types.h:123
NOri< 5 > Ori
Origin
Definition: vsr_cga3D_types.h:67
NLin< 5 > Lin
Line
Definition: vsr_cga3D_types.h:80
Biv Bivector
Euclidean 2-blade: \(\boldsymbol{B}=\{e_{12},e_{13},e_{23}\}\)
Definition: vsr_cga3D_types.h:121
Inf Infinity
Null Infinity Blade: \(n_\infty\)
Definition: vsr_cga3D_types.h:125
Flp FlatPoint
Flat Point \(p \wedge n_\infty\)
Definition: vsr_cga3D_types.h:141
Mnk Minkowski
Minkowski Plane: \(E=n_o\wedge n_\infty\)
Definition: vsr_cga3D_types.h:126
Tnv TangentVector
Tangent Vector \(\boldsymbol{x}n_o\)
Definition: vsr_cga3D_types.h:136
core namespaced operations that are metric-agnostic
Drt DirectionTrivector
Direction Bivector \(\boldsymbol{I}n_\infty\)
Definition: vsr_cga3D_types.h:135
NTnt< 5 > Tnt
TangentTrivector
Definition: vsr_cga3D_types.h:89
NPar< 5 > Par
Pair
Definition: vsr_cga3D_types.h:73
NBst< 5 > Bst
Boost
Definition: vsr_cga3D_types.h:94
Cir Circle
Direct Circle 3-blade \(\kappa=p_a \wedge p_b \wedge p_c\)
Definition: vsr_cga3D_types.h:130
NDll< 5 > Dll
DualLine
Definition: vsr_cga3D_types.h:79
Drv DirectionVector
Direction Vector \(\boldsymbol{v}n_\infty\)
Definition: vsr_cga3D_types.h:133
NPss< 5 > Pss
Pseudoscalar
Definition: vsr_cga3D_types.h:70
NTnb< 5 > Tnb
TangentBivector
Definition: vsr_cga3D_types.h:87
Tri Trivector
Euclidean 3-blade: \(\boldsymbol{I_3}=\{e_{123}\}\)
Definition: vsr_cga3D_types.h:122
NInf< 5 > Inf
Infinity
Definition: vsr_cga3D_types.h:68
Bst Boost
Homogenous Transversion \(e^\tau=\mbox{cosh}(\tau)-\mbox{sinh}(\tau)\)
Definition: vsr_cga3D_types.h:147
Pln Plane
Direct Plane \(p_a \wedge p_b \wedge p_c \wedge n_\infty\)
Definition: vsr_cga3D_types.h:142
Pnt Point
Null Vector \(p=\{e_1,e_2,e_3,n_o,n_\infty\}\)
Definition: vsr_cga3D_types.h:128
Trs Translator
Translating Rotor \(1-\boldsymbol{v}n_\infty\)
Definition: vsr_cga3D_types.h:144
NFlp< 5 > Flp
FlatPoint
Definition: vsr_cga3D_types.h:78
Sca Scalar
0-blade: \(s=1\)
Definition: vsr_cga3D_types.h:119
Pnt DualSphere
Same Type as Point \(\sigma\)
Definition: vsr_cga3D_types.h:132
the versor library namespace
Definition: vsr_algebra.h:29
Drb DirectionBivector
Direction Bivector \(\boldsymbol{B}n_\infty\)
Definition: vsr_cga3D_types.h:134
NMnk< 5 > Mnk
Minkowski
Definition: vsr_cga3D_types.h:69
NTsd< 5 > Tsd
TranslatedDilator
Definition: vsr_cga3D_types.h:97
Tnt TangentTrivector
Tangent Trivector \(\boldsymbol{I}n_o\)
Definition: vsr_cga3D_types.h:138
NDrb< 5 > Drb
DirectionBivector
Definition: vsr_cga3D_types.h:86
Dll DualLine
Dual Line bivector \(\lambda=\boldsymbol{B}+\boldsymbol{x}n_\infty\)
Definition: vsr_cga3D_types.h:139
NBiv< 5 > Biv
Bivector
Definition: vsr_cga3D_types.h:63
Lin Line
Direct Line Trivector \(p_a \wedge p_b \wedge n_\infty\)
Definition: vsr_cga3D_types.h:140
NPnt< 5 > Pnt
Point
Definition: vsr_cga3D_types.h:72
Pss Pseudoscalar
Tangent Pseudoscalar 5-blade: \(I=e_{123} \wedge n_o \wedge n_\infty\)
Definition: vsr_cga3D_types.h:127
NDrt< 5 > Drt
DirectionTrivector
Definition: vsr_cga3D_types.h:88
NTrs< 5 > Trs
Translator
Definition: vsr_cga3D_types.h:91
Mot Motor
Twisting Rotor \(e^\lambda\)
Definition: vsr_cga3D_types.h:145
NTri< 5 > Tri
Trivector
Definition: vsr_cga3D_types.h:65
NSph< 5 > Sph
Sphere
Definition: vsr_cga3D_types.h:75
NTrv< 5 > Trv
Transversor
Definition: vsr_cga3D_types.h:93
NTnv< 5 > Tnv
TangentVector
Definition: vsr_cga3D_types.h:85
NMot< 5 > Mot
Motor
Definition: vsr_cga3D_types.h:92
generic multivector class, templated on a geometric algebra and a field
Sph Sphere
Direct Sphere 4-blade \(\Sigma=p_a \wedge p_b \wedge p_c \wedge p_d\)
Definition: vsr_cga3D_types.h:131
NRot< 5 > Rot
Rotor
Definition: vsr_cga3D_types.h:64
Ori Origin
Null Origin Blade: \(n_o\)
Definition: vsr_cga3D_types.h:124