|
The Vish Visualization Shell 0.3
Vish
|
A three-dimensional Bi-Vector which is span by two vectors to define a plane. More...
#include <elementary/eagle/PhysicalSpace.hpp>
Public Member Functions | |
| bivector () | |
| Default constructor, sets all elements to zero. | |
| template<OperatorID_t CompType> | |
| bivector (const bivector &l, const bivector &r, const Operator< CompType > &C) | |
| Generic Computational Constructor for operations on two bi-vectors. | |
| template<OperatorID_t CompType> | |
| bivector (const bivector &l, const double &scalar, const Operator< CompType > &C) | |
| Generic Computational Constructor for operations on bi-vector and scalar. | |
| template<OperatorID_t CompType> | |
| bivector (const double &scalar, const bivector &l, const Operator< CompType > &C) | |
| Generic Computational Constructor for operations on scalar and bi-vector. | |
| bivector (const vector &a, const vector &b) | |
| Construct bivector from two vectors (numerically equivalent to the cross product) | |
| bivector (double x, double y, double z) | |
| Component-wise construction of a bivector. | |
| bivector | inv () const |
| Compute the inverse bivector. | |
| vector | operator() (const vector &v) const |
| Compute UvU, which is a 90 degree rotation of the vector v along the plane U. | |
| vector | operator* () const |
| Star operator, yields the vector that is dual to this bi-vector. | |
| bivector | operator+ (const bivector &r) const |
| Addition operator. | |
| bivector | operator- () const |
| Unary minus. | |
| bivector | operator- (const bivector &r) const |
| Subtraction operator. | |
| bivector | unit () const |
| Yield a bivector of unit area. | |
Friends | |
| double | dot (const bivector &a, const bivector &b) |
| Inner product of two bivectors (note: this actually involves an implicit metric!) | |
| bivector | operator* (const bivector &v, double r) |
| Scale bivector. | |
| bivector | operator* (double r, const bivector &b) |
| Scale bivector. | |
| bivector | operator/ (const bivector &b, double r) |
| Divide bivector by scalar. | |
A three-dimensional Bi-Vector which is span by two vectors to define a plane.
It is represented by three numbers, like a vector, but has different algebraic properties.
Bi-vectors are useful specify rotations. The sum of a bivector and a scalar yields a rotor, which can be applied to any object such as a vector (sweeping a direction) or another bivector (sweeping a plane).
A bi-vector is constructed from two vectors:
The wedge operator of two vectors also yields a bi-vector and is the same operation:
Alternatively the bivector can be setup by explicit specification of its component, which corresponds to a normal vector. Given a bivector, the associated normal vector can be retrieved using the star operator: