versor  3.0
C++11 library for Geometric algebra
Classes | Typedefs | Functions | Variables
vsr::cga Namespace Reference

3D Conformal Geometric Algebra Namespace More...

Classes

class  Bennett
 The bennett 4 bar linkage. More...
 
class  Chain
 A sequence of spatial Frames. More...
 
struct  Constrain
 Methods for Evaluating Constrained Points using Intersections of Sphere-based Distances. More...
 
struct  Construct
 constructive syntactic sugar for making geometric elements More...
 
class  CoupledTwist
 Coupled Twist Shape Generation x, y, z (after Rosenhahn et al) More...
 
struct  CyclideQuad
 Cylclidic Net (four tangent frames) More...
 
struct  Cylindrical
 
struct  DistancePtr
 Holds a pointer to a source, and has a radius t, the operator() generates a dual sphere at source with radius t. More...
 
struct  Flat
 3D operations on Flat types More...
 
struct  Fold
 
class  Frame
 Orthonormal Frame composed from a Position and Orientation. More...
 
struct  Gen
 Generators and Logarithms Optimized for 3D Conformal Geometric Algebra. More...
 
struct  Helical
 
class  HopfFiber
 

Hopf Fibration More...

 
struct  Joint
 
struct  NCyclide
 
class  NTwist
 GENERIC n-TWIST mechanism. More...
 
struct  Op
 Extraction of axis-angle orientation and 3D position features from Multivectors. More...
 
class  Pantograph
 PANTOGRAPH for scissor-like kinematics. More...
 
struct  Planar
 
struct  Prismatic
 
struct  Revolute
 
struct  Rig
 Rig has n spherical constraints to satisfy (try using fabrik solver here) More...
 
struct  Rig2
 A Rigid Contraint Node set by Two Distance Pointers. More...
 
struct  Rig3
 
struct  Rigid
 A Rigid Constraint Node set by Three Distance Pointers. More...
 
struct  Rigid2
 
struct  RigidNode
 Generic Rigid Constraint Node. More...
 
struct  Round
 3D operations on Round types (Points, Point Pairs, Circles, Spheres) More...
 
struct  Shape
 
struct  Simplicial
 
struct  Simplicial2
 
struct  Spherical
 
struct  Tangent
 3D operations on Tangent types More...
 
struct  TangentFrame
 Frame Tangent to Surface. More...
 
struct  TorusKnot
 
class  Twist
 Decomposed Dual Line (As a Bivector and Direction Vector to it ) More...
 

Typedefs

using Sca = NSca< 5 >
 Scalar
 
using Vec = NVec< 5 >
 Vector
 
using Biv = NBiv< 5 >
 Bivector
 
using Rot = NRot< 5 >
 Rotor
 
using Tri = NTri< 5 >
 Trivector
 
using Ori = NOri< 5 >
 Origin
 
using Inf = NInf< 5 >
 Infinity
 
using Mnk = NMnk< 5 >
 Minkowski
 
using Pss = NPss< 5 >
 Pseudoscalar
 
using Pnt = NPnt< 5 >
 Point
 
using Par = NPar< 5 >
 Pair
 
using Cir = NCir< 5 >
 Circle
 
using Sph = NSph< 5 >
 Sphere
 
using Dls = NDls< 5 >
 DualSphere
 
using Flp = NFlp< 5 >
 FlatPoint
 
using Dll = NDll< 5 >
 DualLine
 
using Lin = NLin< 5 >
 Line
 
using Dlp = NDlp< 5 >
 DualPlane
 
using Pln = NPln< 5 >
 Plane
 
using Drv = NDrv< 5 >
 DirectionVector
 
using Tnv = NTnv< 5 >
 TangentVector
 
using Drb = NDrb< 5 >
 DirectionBivector
 
using Tnb = NTnb< 5 >
 TangentBivector
 
using Drt = NDrt< 5 >
 DirectionTrivector
 
using Tnt = NTnt< 5 >
 TangentTrivector
 
using Trs = NTrs< 5 >
 Translator
 
using Mot = NMot< 5 >
 Motor
 
using Trv = NTrv< 5 >
 Transversor
 
using Bst = NBst< 5 >
 Boost
 
using Con = NCon< 5 >
 ConformalRotor
 
using Dil = NDil< 5 >
 Dilator
 
using Tsd = NTsd< 5 >
 TranslatedDilator
 
typedef Sca Scalar
 0-blade: \(s=1\) More...
 
typedef Vec Vector
 Euclidean 1-blade: \(\boldsymbol{x}=\{e_1,e_2,e_3\}\)
 
typedef Biv Bivector
 Euclidean 2-blade: \(\boldsymbol{B}=\{e_{12},e_{13},e_{23}\}\)
 
typedef Tri Trivector
 Euclidean 3-blade: \(\boldsymbol{I_3}=\{e_{123}\}\)
 
typedef Rot Rotor
 Euclidean Rotor (Quaternionic): \(R=\{1,e_{12},e_{13},e_{23}\}\)
 
typedef Ori Origin
 Null Origin Blade: \(n_o\)
 
typedef Inf Infinity
 Null Infinity Blade: \(n_\infty\)
 
typedef Mnk Minkowski
 Minkowski Plane: \(E=n_o\wedge n_\infty\)
 
typedef Pss Pseudoscalar
 Tangent Pseudoscalar 5-blade: \(I=e_{123} \wedge n_o \wedge n_\infty\)
 
typedef Pnt Point
 Null Vector \(p=\{e_1,e_2,e_3,n_o,n_\infty\}\)
 
typedef 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\}\)
 
typedef Cir Circle
 Direct Circle 3-blade \(\kappa=p_a \wedge p_b \wedge p_c\)
 
typedef Sph Sphere
 Direct Sphere 4-blade \(\Sigma=p_a \wedge p_b \wedge p_c \wedge p_d\)
 
typedef Pnt DualSphere
 Same Type as Point \(\sigma\)
 
typedef Drv DirectionVector
 Direction Vector \(\boldsymbol{v}n_\infty\)
 
typedef Drb DirectionBivector
 Direction Bivector \(\boldsymbol{B}n_\infty\)
 
typedef Drt DirectionTrivector
 Direction Bivector \(\boldsymbol{I}n_\infty\)
 
typedef Tnv TangentVector
 Tangent Vector \(\boldsymbol{x}n_o\)
 
typedef Tnb TangentBivector
 Tangent Bivector \(\boldsymbol{B}n_o\)
 
typedef Tnt TangentTrivector
 Tangent Trivector \(\boldsymbol{I}n_o\)
 
typedef Dll DualLine
 Dual Line bivector \(\lambda=\boldsymbol{B}+\boldsymbol{x}n_\infty\)
 
typedef Lin Line
 Direct Line Trivector \(p_a \wedge p_b \wedge n_\infty\)
 
typedef Flp FlatPoint
 Flat Point \(p \wedge n_\infty\)
 
typedef Pln Plane
 Direct Plane \(p_a \wedge p_b \wedge p_c \wedge n_\infty\)
 
typedef Dlp DualPlane
 Dual Plane \(\boldsymbol{n}+n_\infty\)
 
typedef Trs Translator
 Translating Rotor \(1-\boldsymbol{v}n_\infty\)
 
typedef Mot Motor
 Twisting Rotor \(e^\lambda\)
 
typedef Trv Transversor
 Transversion at the Origin \(1-\boldsymbol{v}n_o\)
 
typedef Bst Boost
 Homogenous Transversion \(e^\tau=\mbox{cosh}(\tau)-\mbox{sinh}(\tau)\)
 
typedef Con ConformalRotor
 General Conformal \(e^{\tau_a} e^{\tau_b}\);.
 
typedef Dil Dilator
 Dilation relative to Origin \(1+E\)
 
typedef Tsd TranslatedDilator
 Dilation relative to some point p \(e^{p \wedge n_\infty}\)
 

Functions

vector< Pointpoints (const Circle &k, int num, float theta=0, float phi=TWOPI)
 
ostream & operator<< (ostream &os, const Twist &t)
 

Variables

auto pointOnLine
 Point on line closest to another point v. More...
 
auto pointOnCircle
 a single point on circle c at theta t More...
 
auto pointsOnCircle
 n points on circle c More...
 
auto pairOnSphere
 a pair on dual sphere More...
 
auto pointOnSphere
 a single point on dual sphere s at theta t and phi p More...
 
auto pointsOnSphere
 many points on sphere (could use map func from gfx::data) More...
 

Detailed Description

3D Conformal Geometric Algebra Namespace

Variable Documentation

auto vsr::cga::pairOnSphere
Initial value:
= [](const DualSphere& s, VSR_PRECISION t, VSR_PRECISION p){
return Construct::pair(s, Vec::x.sp( Gen::rot(t,p) ) );
}
Pnt DualSphere
Same Type as Point \(\sigma\)
Definition: vsr_cga3D_types.h:132

a pair on dual sphere

auto vsr::cga::pointOnCircle
Initial value:
= [](const Circle& c, VSR_PRECISION t){
return Construct::point(c,t);
}
Cir Circle
Direct Circle 3-blade \(\kappa=p_a \wedge p_b \wedge p_c\)
Definition: vsr_cga3D_types.h:130

a single point on circle c at theta t

auto vsr::cga::pointOnLine
Initial value:
= []( const Line& lin, const Point& v){
return Round::null( Flat::loc( lin, v, false) );
}
Pnt Point
Null Vector \(p=\{e_1,e_2,e_3,n_o,n_\infty\}\)
Definition: vsr_cga3D_types.h:128
Lin Line
Direct Line Trivector \(p_a \wedge p_b \wedge n_\infty\)
Definition: vsr_cga3D_types.h:140

Point on line closest to another point v.

auto vsr::cga::pointOnSphere
Initial value:
= [](const DualSphere& s, VSR_PRECISION t, VSR_PRECISION p){
return Construct::pointA( pairOnSphere(s,t,p) ).null();
}
auto pairOnSphere
a pair on dual sphere
Definition: vsr_cga3D_op.h:558
Pnt DualSphere
Same Type as Point \(\sigma\)
Definition: vsr_cga3D_types.h:132

a single point on dual sphere s at theta t and phi p

auto vsr::cga::pointsOnCircle
Initial value:
= [](const Circle& c, int num){
vector<Point> out;
for (int i=0;i<=num;++i){
out.push_back(pointOnCircle(c, TWOPI*(float)i/num) );
}
return out;
}
Cir Circle
Direct Circle 3-blade \(\kappa=p_a \wedge p_b \wedge p_c\)
Definition: vsr_cga3D_types.h:130
auto pointOnCircle
a single point on circle c at theta t
Definition: vsr_cga3D_op.h:546

n points on circle c

auto vsr::cga::pointsOnSphere
Initial value:
= [](const DualSphere& s, int u, int v){
vector<Point> out;
for (int i = 0; i < u; ++i){
for (int j = 0; j < v; ++j){
float tu= TWOPI * i/u;
float tv = -PIOVERTWO + PI * j/v;
out.push_back( pointOnSphere(s,tu,tv) );
}
}
return out;
}
auto pointOnSphere
a single point on dual sphere s at theta t and phi p
Definition: vsr_cga3D_op.h:562
Pnt DualSphere
Same Type as Point \(\sigma\)
Definition: vsr_cga3D_types.h:132

many points on sphere (could use map func from gfx::data)