versor  3.0
C++11 library for Geometric algebra
Static Public Member Functions | List of all members
vsr::cga::Round Struct Reference

3D operations on Round types (Points, Point Pairs, Circles, Spheres) More...

#include <vsr_cga3D_round.h>

Static Public Member Functions

static DualSphere surround (const Pair &s)
 Dual Surround of a Direct or Dual Pair. More...
 
static DualSphere surround (const Circle &s)
 Dual Surround of a Direct or Dual Circle. More...
 
template<class A >
static DualSphere sur (const A &s)
 Dual Surround of a Direct or Dual Round Element (Shorthand) More...
 
static Pair produce (const DualSphere &dls, const Vec &v)
 Pair From DualSphere and Euclidean subspace Bivector Note: Result will be imaginary if input DualSphere is real . More...
 
static Circle produce (const DualSphere &dls, const Biv &b)
 Circle From DualSphere and Euclidean subspace Bivector Note: Result will be imaginary if input DualSphere is real . More...
 
static DualSphere at (const Point &c, const Point &p)
 Dual Round from Center and Point on Surface. More...
 
static Point point (const DualSphere &dls, const Vec &flat)
 Direct Point From Dual Sphere and Euclidean Carrier Flat. More...
 
static Vec vec (const Circle &c, VSR_PRECISION theta=0)
 Euclidean Vector of Circle at theta. More...
 
static Pair pair (const Circle &c, VSR_PRECISION t)
 Point Pair on Direct Circle at angle t. More...
 
static Point point (const Circle &c, VSR_PRECISION t)
 Point on Circle at angle t. More...
 
static Point null (const Vec &v)
 Null Point from a vec.
 
static Point null (const Point &v)
 Null Point from a Point.
 
static Point null (VSR_PRECISION x, VSR_PRECISION y, VSR_PRECISION z)
 Or Null Point from Coordinates (x,y,z,...)
 
static Point point (VSR_PRECISION x, VSR_PRECISION y, VSR_PRECISION z)
 Null Point from Coordinates.
 
static DualSphere dualSphere (VSR_PRECISION r, VSR_PRECISION x, VSR_PRECISION y, VSR_PRECISION z)
 Dual Sphere from Coordinate Center. More...
 
static DualSphere dls (VSR_PRECISION r, VSR_PRECISION x, VSR_PRECISION y, VSR_PRECISION z)
 Dual Sphere from Coordinate Center (shorthand) More...
 
static DualSphere dls (const Vec &v, VSR_PRECISION r=1.0)
 Dual Sphere from Element FIRST and Radius. More...
 
static DualSphere sphere (const Point &v, VSR_PRECISION r=1.0)
 Dual Sphere from Element FIRST and Radius. More...
 
static DualSphere dls (const Point &p, VSR_PRECISION r=1.0)
 Dual Sphere from Point and Radius (faster) More...
 
static Point center (const DualSphere &s)
 Simple Center of A Round (not normalized – use loc or location method instead) More...
 
static Point center (const Pair &s)
 Simple Center of A Round (not normalized – use loc or location method instead) More...
 
static Point center (const Circle &s)
 Simple Center of A Round (not normalized – use loc or location method instead) More...
 
static Point center (const Sphere &s)
 Simple Center of A Round (not normalized – use loc or location method instead) More...
 
template<class A >
static Point cen (const A &s)
 Simple Center of a Round Element (shorthand) More...
 
template<class A >
static Point location (const A &s)
 Location (normalized) of A Round Element (normalized) (Shorthand) More...
 
template<class A >
static Point loc (const A &s)
 Location (normalizd) of a Round Element (shorthand) More...
 
static VSR_PRECISION size (const DualSphere &s, bool bDual=true)
 Squared Size of a DualSphere (result could be negative) More...
 
static VSR_PRECISION size (const Pair &s, bool bDual=true)
 Squared Size of a Point Pair (result could be negative) More...
 
static VSR_PRECISION size (const Circle &s, bool bDual=false)
 Squared Size of a Circle (result could be negative) More...
 
static VSR_PRECISION size (const Sphere &s, bool bDual=false)
 Squared Size of a Sphere (result could be negative) More...
 
static VSR_PRECISION dsize (const Point &dls)
 Squared Size of Normalized Dual Sphere (faster than general case) More...
 
static VSR_PRECISION radius (const DualSphere &s)
 Radius of DualSphere.
 
static VSR_PRECISION radius (const Pair &s)
 Radius of Pair.
 
static VSR_PRECISION radius (const Circle &s)
 Radius of Circle.
 
static VSR_PRECISION radius (const Sphere &s)
 Radius ofSphere.
 
template<class T >
static VSR_PRECISION rad (const T &t)
 Squared Size of a DualSphere (result could be negative) More...
 
template<class A >
static VSR_PRECISION curvature (const A &s)
 Curvature of Round. More...
 
template<class T >
static VSR_PRECISION cur (const T &t)
 Curvature of Round. More...
 
static VSR_PRECISION squaredDistance (const Point &a, const Point b)
 Squared distance between two points. More...
 
static VSR_PRECISION sqd (const Point &a, const Point b)
 Squared distance between two points.
 
static VSR_PRECISION distance (const Point &a, const Point b)
 Distance between points a and b.
 
static VSR_PRECISION dist (const Point &a, const Point &b)
 Distance between points a and b (shorthand)
 
static std::vector< Pointsplit (const Pair &pp)
 Split Points from Point Pair. More...
 
static std::vector< PointsplitLocation (const Pair &pp)
 Split Points from Point Pair and normalize. More...
 
static Point split (const Pair &pp, bool bFirst)
 Split a point pair and return one. More...
 
static std::vector< Pointsplit (const Circle &nc)
 Split A Circle into its dual point pair poles.
 
static DirectionVector direction (const Pair &p)
 Direction of a Pair. More...
 
static DirectionBivector direction (const Circle &c)
 Direction of a Circle. More...
 
static DirectionBivector direction (const Sphere &c)
 Direction of a Sphere. More...
 
template<class A >
static auto dir (const A &s) -> decltype(direction(s))
 Direction of Round Element (shorthand) More...
 
static Line carrier (const Pair &p)
 Carrier Flat of Pair. More...
 
static Plane carrier (const Circle &c)
 Carrier Flat of Circle. More...
 
template<class A >
static auto car (const A &s) -> decltype(carrier(s))
 Carrier Flat of Direct? Round Element (Shorthand) More...
 

Detailed Description

3D operations on Round types (Points, Point Pairs, Circles, Spheres)

3D CGA Template Specializations of ND functions found in vsr::nga::Round Note: the ND functions are inlined and can be used instead, but using these will speed up compile times since they are precompiled into libvsr.a

See also
Round for a list of Multivector Types on which these methods operate
vsr::nga::Round for the Generic n-dimensional implementation details

Member Function Documentation

static DualSphere vsr::cga::Round::at ( const Point c,
const Point p 
)
static

Dual Round from Center and Point on Surface.

Parameters
cPoint at center
pPoint on surface
static Line vsr::cga::Round::carrier ( const Pair p)
static

Carrier Flat of Pair.

Parameters
pvsr::cga::Pair
See also
nga::Round::carrier for Generic implementation
static Plane vsr::cga::Round::carrier ( const Circle c)
static

Carrier Flat of Circle.

Parameters
cvsr::cga::Circle
See also
nga::Round::carrier for Generic implementation
static Point vsr::cga::Round::center ( const DualSphere s)
static

Simple Center of A Round (not normalized – use loc or location method instead)

See also
nga::Round::center for Generic case
static Point vsr::cga::Round::center ( const Pair s)
static

Simple Center of A Round (not normalized – use loc or location method instead)

See also
nga::Round::center for Generic case
static Point vsr::cga::Round::center ( const Circle s)
static

Simple Center of A Round (not normalized – use loc or location method instead)

See also
nga::Round::center for Generic case
static Point vsr::cga::Round::center ( const Sphere s)
static

Simple Center of A Round (not normalized – use loc or location method instead)

See also
nga::Round::center for Generic case
template<class T >
static VSR_PRECISION vsr::cga::Round::cur ( const T &  t)
inlinestatic

Curvature of Round.

Parameters
RoundElement
template<class A >
static VSR_PRECISION vsr::cga::Round::curvature ( const A &  s)
inlinestatic

Curvature of Round.

Parameters
RoundElement
static DualSphere vsr::cga::Round::dls ( VSR_PRECISION  r,
VSR_PRECISION  x,
VSR_PRECISION  y,
VSR_PRECISION  z 
)
inlinestatic

Dual Sphere from Coordinate Center (shorthand)

static DualSphere vsr::cga::Round::dls ( const Vec v,
VSR_PRECISION  r = 1.0 
)
static

Dual Sphere from Element FIRST and Radius.

Parameters
vvsr::cga::Vec (function will take first 3 weights)
Radius(enter a negative radius for an imaginary sphere)
static DualSphere vsr::cga::Round::dls ( const Point p,
VSR_PRECISION  r = 1.0 
)
static

Dual Sphere from Point and Radius (faster)

Parameters
Point
Radius(enter a negative radius for an imaginary sphere)
static VSR_PRECISION vsr::cga::Round::dsize ( const Point dls)
static

Squared Size of Normalized Dual Sphere (faster than general case)

Parameters
NormalizedDual Sphere
See also
vsr::nga::dsize
static DualSphere vsr::cga::Round::dualSphere ( VSR_PRECISION  r,
VSR_PRECISION  x,
VSR_PRECISION  y,
VSR_PRECISION  z 
)
static

Dual Sphere from Coordinate Center.

note that radius is first argument

Parameters
rRadius (enter a negative radius for an imaginary sphere)
3of coordinates
See also
vsr::nga::dualSphere
template<class A >
static Point vsr::cga::Round::location ( const A &  s)
inlinestatic

Location (normalized) of A Round Element (normalized) (Shorthand)

See also
nga::Round::location for Generic implementation
static Pair vsr::cga::Round::pair ( const Circle c,
VSR_PRECISION  t 
)
static

Point Pair on Direct Circle at angle t.

See also
vsr::nga::par_cir for the Generic implementation
static Point vsr::cga::Round::point ( const DualSphere dls,
const Vec flat 
)
static

Direct Point From Dual Sphere and Euclidean Carrier Flat.

See also
vsr::nga::pnt for the Generic implementation
static Point vsr::cga::Round::point ( const Circle c,
VSR_PRECISION  t 
)
static

Point on Circle at angle t.

See also
vsr::nga::pnt_cir for the Generic implementation
static Pair vsr::cga::Round::produce ( const DualSphere dls,
const Vec v 
)
static

Pair From DualSphere and Euclidean subspace Bivector Note: Result will be imaginary if input DualSphere is real .

Parameters
dlsDualSphere
vVector
Returns
Pair
See also
nga::Round::produce for Generic implementation
static Circle vsr::cga::Round::produce ( const DualSphere dls,
const Biv b 
)
static

Circle From DualSphere and Euclidean subspace Bivector Note: Result will be imaginary if input DualSphere is real .

Parameters
dlsDualSphere
bBivector
Returns
Circle
See also
nga::Round::produce for Generic implementation
template<class T >
static VSR_PRECISION vsr::cga::Round::rad ( const T &  t)
inlinestatic

Squared Size of a DualSphere (result could be negative)

Parameters
inputnormalized dual sphere
See also
vsr::nga::size for general case
static VSR_PRECISION vsr::cga::Round::size ( const DualSphere s,
bool  bDual = true 
)
static

Squared Size of a DualSphere (result could be negative)

Parameters
inputnormalized dual sphere
See also
vsr::nga::size for general case
static VSR_PRECISION vsr::cga::Round::size ( const Pair s,
bool  bDual = true 
)
static

Squared Size of a Point Pair (result could be negative)

Parameters
inputnormalized vsr::cga::Pair
See also
vsr::nga::size for general case
static VSR_PRECISION vsr::cga::Round::size ( const Circle s,
bool  bDual = false 
)
static

Squared Size of a Circle (result could be negative)

Parameters
inputnormalized vsr::cga::Circle
See also
vsr::nga::size for general case
static VSR_PRECISION vsr::cga::Round::size ( const Sphere s,
bool  bDual = false 
)
static

Squared Size of a Sphere (result could be negative)

Parameters
inputnormalized vsr::cga::Sphere
See also
vsr::nga::size for general case
static DualSphere vsr::cga::Round::sphere ( const Point v,
VSR_PRECISION  r = 1.0 
)
static

Dual Sphere from Element FIRST and Radius.

Parameters
Anyinput Multivector v (function will take first 3 weights)
Radius(enter a negative radius for an imaginary sphere)
static std::vector<Point> vsr::cga::Round::split ( const Pair pp)
static

Split Points from Point Pair.

Parameters
PointPairinput returns a vector<Pnt>
static Point vsr::cga::Round::split ( const Pair pp,
bool  bFirst 
)
static

Split a point pair and return one.

Parameters
ppPoint Pair
bFirstwhich one to return
static std::vector<Point> vsr::cga::Round::splitLocation ( const Pair pp)
static

Split Points from Point Pair and normalize.

Parameters
PointPairinput returns a vector<Pnt>
static VSR_PRECISION vsr::cga::Round::squaredDistance ( const Point a,
const Point  b 
)
static

Squared distance between two points.

See also
vsr::nga::squaredDistance
static DualSphere vsr::cga::Round::surround ( const Pair s)
static

Dual Surround of a Direct or Dual Pair.

See also
nga::Round::surround for Generic implementation
static DualSphere vsr::cga::Round::surround ( const Circle s)
static

Dual Surround of a Direct or Dual Circle.

See also
nga::Round::surround for Generic implementation
static Vec vsr::cga::Round::vec ( const Circle c,
VSR_PRECISION  theta = 0 
)
static

Euclidean Vector of Circle at theta.

See also
vsr::nga::vec for the Generic implementation

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