C4 Engine
C4 Engine API Documentation

class Flector4D

Defined in:  TSFlector3D.h
The Flector4D class encapsulates a 4D reflection operator (flector). For more information about flectors, see the projective geometric algebra website.
Definition

class Flector4D

Member Functions
Flector4D::Set Sets all eight components of a flector.
Flector4D::Unitize Unitizes the weight of a flector.
Flector4D::MakeTransflection Returns a flector that represents a translation and a reflection.
Flector4D::MakeRotoreflection Returns a flector that represents a rotation and a reflection.
Flector4D::GetTransformMatrix Converts a flector to its corresponding 4 × 4 matrix.
Flector4D::GetInverseTransformMatrix Converts a flector to the inverse of its corresponding 4 × 4 matrix.
Flector4D::GetTransformMatrices Converts a flector to its corresponding 4 × 4 matrix and its inverse simultaneously.
Flector4D::SetTransformMatrix Converts a 4 × 4 matrix to its corresponding flector.
Constructor

Flector4D();

Flector4D(float sx, float sy, float sz, float sw, float hx, float hy, float hz, float hw);

Flector4D(const Vector4D& v, const Plane3D& g);

Flector4D(const Point3D& p, const Plane3D& g);

explicit Flector4D(const Vector4D& v);

explicit Flector4D(const Point3D& p);

explicit Flector4D(const Plane3D& g);

Parameters
sx,sy,sz,sw The values of the e1, e2, e3, and e4 coordinates.
hx,hy,hz,hw The values of the e234, e314, e124, and e321 coordinates.
g A plane whose entries are copied to the e234, e314, e124, and e321 coordinates.
v A vector whose entries are copied to the e1, e2, e3, and e4 coordinates.
p A point whose entries are copied to the e1, e2, and e3 coordinates.
Description
The Flector4D class encapsulates a reflection operator (flector) in the 4D projective geometric algebra. It has the general form sxe1 + sye2 + sze3 + swe4 + hxe234 + hye314 + hze124 + hwe321.

The default constructor leaves the components of the flector undefined. If the vector v and plane g are specified, then their coordinates are assigned to the vector part and trivector part of the flector, respectively. If only one of the vector v and plane g are specified, then the other part is set to zero. If the point p is specified, then its w coordinate is assumed to be one.
Overloaded Operators
Flector4D& operator *=(float n); Multiplies by the scalar n.
Flector4D& operator /=(float n); Multiplies by the inverse of the scalar n.
Nonmember Operations
bool operator ==(const Flector4D& a, const Flector4D& b); Returns a boolean value indicating whether the two flectors a and b are equal.
bool operator !=(const Flector4D& a, const Flector4D& b); Returns a boolean value indicating whether the two flectors a and b are not equal.
Flector4D operator ~(const Flector4D& F); Returns the antireverse of the flector F.
Flector4D operator -(const Flector4D& F); Returns the negation of the flector F.
Flector4D operator *(const Flector4D& F, float n); Returns the product of the flector F and the scalar n.
Flector4D operator *(float n, const Flector4D& F); Returns the product of the flector F and the scalar n.
Flector4D operator /(const Flector4D& F, float n); Returns the product of the flector G and the inverse of the scalar n.
Motor4D operator *(const Flector4D& a, const Flector4D& b); Returns the geometric antiproduct of the flectors a and b, producing a motor.
Flector4D operator *(const Flector4D& a, const Motor4D& b); Returns the geometric antiproduct of the flector a and the motor b, producing a flector.
Flector4D operator *(const Motor4D& a, const Flector4D& b); Returns the geometric antiproduct of the motor a and the flector b, producing a flector.
float BulkNorm(const Flector4D& F); Returns the bulk norm of the flector F.
float WeightNorm(const Flector4D& F); Returns the weight norm of the flector F.
Vector3D Transform(const Vector3D& v, const Flector4D& F); Transforms the vector v with the flector F.
Bivector3D Transform(const Bivector3D& v, const Flector4D& F); Transforms the bivector v with the flector F.
Point3D Transform(const Point3D& p, const Flector4D& F); Transforms the point p with the flector F.
Line3D Transform(const Line3D& l, const Flector4D& F); Transforms the line l with the flector F.
Plane3D Transform(const Plane3D& g, const Flector4D& F); Transforms the plane g with the flector F.
See Also

Motor4D

Point3D

Line3D

Plane3D