Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

Analytical Geometry
[Mathematics]

representation of analytical geometry functions, using the classes: TAngle, TCircle3, TLine3, TPlane3, TSphere3, TVector3. More...

Functions

template<typename T>
getDeterminant_ (const T *m, Size dim) throw ()
 Subroutine to get the determinant of any matrix.
template<typename T>
getDeterminant (const T *m, Size dim) throw ()
 Get the determinant of any matrix.
template<typename T>
getDeterminant2 (const T *m) throw ()
 Get the determinant of an 2x2 matrix.
template<typename T>
getDeterminant2 (const T &m00, const T &m01, const T &m10, const T &m11) throw ()
 Get the determinant of an 2x2 matrix.
template<typename T>
getDeterminant3 (const T *m) throw ()
 Get the determinant of an 3x3 matrix.
template<typename T>
getDeterminant3 (const T &m00, const T &m01, const T &m02, const T &m10, const T &m11, const T &m12, const T &m20, const T &m21, const T &m22) throw ()
 Get the determinant of an 3x3 matrix.
template<typename T>
bool SolveSystem (const T *m, T *x, const Size dim) throw ()
 Solve a system of linear equations.
template<typename T>
bool SolveSystem2 (const T &a1, const T &b1, const T &c1, const T &a2, const T &b2, const T &c2, T &x1, T &x2) throw ()
 Solve a system of two equations of the form $a_1 x_1 + b_1 x_2 = c_1$ and $a_2 x_1 + b_2 x_2 = c_2$.
template<typename T>
short SolveQuadraticEquation (const T &a, const T &b, const T &c, T &x1, T &x2) throw ()
 Solve a quadratic equation of the form a $x^2 + b x + c = 0$.
template<typename T>
TVector3< T > GetPartition (const TVector3< T > &a, const TVector3< T > &b) throw ()
 Get the partition of two vectors.
template<typename T>
TVector3< T > GetPartition (const TVector3< T > &a, const TVector3< T > &b, const T &r, const T &s) throw (Exception::DivisionByZero)
 Get the partition of two vectors, calculated with two ratio factors.
template<typename T>
GetDistance (const TVector3< T > &a, const TVector3< T > &b) throw ()
 Get the distance between two points.
template<typename T>
GetDistance (const TLine3< T > &line, const TVector3< T > &point) throw (Exception::DivisionByZero)
 Get the distance between a line and a point.
template<typename T>
GetDistance (const TVector3< T > &point, const TLine3< T > &line) throw (Exception::DivisionByZero)
 Get the distance between a point and a line.
template<typename T>
GetDistance (const TLine3< T > &a, const TLine3< T > &b) throw (Exception::DivisionByZero)
 Get the distance between two lines.
template<typename T>
GetDistance (const TVector3< T > &point, const TPlane3< T > &plane) throw (Exception::DivisionByZero)
 Get the distance between a point and a plane.
template<typename T>
GetDistance (const TPlane3< T > &plane, const TVector3< T > &point) throw (Exception::DivisionByZero)
 Get the distance between a plane and a point.
template<typename T>
GetDistance (const TLine3< T > &line, const TPlane3< T > &plane) throw (Exception::DivisionByZero)
 Get the distance between a line and a plane.
template<typename T>
GetDistance (const TPlane3< T > &plane, const TLine3< T > &line) throw (Exception::DivisionByZero)
 Get the distance between a plane and a line.
template<typename T>
GetDistance (const TPlane3< T > &a, const TPlane3< T > &b) throw (Exception::DivisionByZero)
 Get the distance between two planes.
template<typename T>
bool GetAngle (const TVector3< T > &a, const TVector3< T > &b, TAngle< T > &intersection_angle)
 Get the angle between two Vector3.
template<typename T>
bool GetAngle (const TLine3< T > &a, const TLine3< T > &b, TAngle< T > &intersection_angle) throw ()
 Get the angle between two lines.
template<typename T>
bool GetAngle (const TPlane3< T > &plane, const TVector3< T > &vector, TAngle< T > &intersection_angle) throw ()
 Get the angle between a plane and a Vector3.
template<typename T>
bool GetAngle (const TVector3< T > &vector, const TPlane3< T > &plane, TAngle< T > &intersection_angle) throw ()
 Get the angle between a vector3 and a plane.
template<typename T>
bool GetAngle (const TPlane3< T > &plane, const TLine3< T > &line, TAngle< T > &intersection_angle) throw ()
 Get the angle between a plane and a line.
template<typename T>
bool GetAngle (const TLine3< T > &line, const TPlane3< T > &plane, TAngle< T > &intersection_angle) throw ()
 Get the angle between a line and a plane.
template<typename T>
bool GetAngle (const TPlane3< T > &a, const TPlane3< T > &b, TAngle< T > &intersection_angle) throw ()
 Get the angle between two planes.
template<typename T>
bool GetIntersection (const TLine3< T > &a, const TLine3< T > &b, TVector3< T > &point) throw ()
 Get the intersection point between two lines.
template<typename T>
bool GetIntersection (const TPlane3< T > &plane, const TLine3< T > &line, TVector3< T > &intersection_point) throw ()
 Get the intersection point between a plane and a line.
template<typename T>
bool GetIntersection (const TLine3< T > &line, const TPlane3< T > &plane, TVector3< T > &intersection_point) throw ()
 Get the intersection point between a line and a plane.
template<typename T>
bool GetIntersection (const TPlane3< T > &plane1, const TPlane3< T > &plane2, TLine3< T > &line) throw ()
 Get the intersection line between two planes.
template<typename T>
bool GetIntersection (const TSphere3< T > &sphere, const TLine3< T > &line, TVector3< T > &intersection_point1, TVector3< T > &intersection_point2) throw ()
 Get the intersection point between a sphere and a line.
template<typename T>
bool GetIntersection (const TLine3< T > &line, const TSphere3< T > &sphere, TVector3< T > &intersection_point1, TVector3< T > &intersection_point2) throw ()
 Get the intersection point between a line and a sphere.
template<typename T>
bool GetIntersection (const TSphere3< T > &sphere, const TPlane3< T > &plane, TCircle3< T > &intersection_circle) throw ()
 Get the intersection circle between a sphere and a plane.
template<typename T>
bool GetIntersection (const TPlane3< T > &plane, const TSphere3< T > &sphere, TCircle3< T > &intersection_circle) throw ()
 Get the intersection circle between a plane and a sphere.
template<typename T>
bool GetIntersection (const TSphere3< T > &a, const TSphere3< T > &b, TCircle3< T > &intersection_circle) throw ()
 Get the intersection circle between two spheres.
template<class T>
bool GetIntersection (const TSphere3< T > &s1, const TSphere3< T > &s2, const TSphere3< T > &s3, TVector3< T > &p1, TVector3< T > &p2, bool test=true) throw ()
 Get the intersection points between three spheres.
template<typename T>
bool isCollinear (const TVector3< T > &a, const TVector3< T > &b) throw ()
 Test whether two vector3 are collinear.
template<typename T>
bool isComplanar (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c) throw ()
 Test whether three vector3 are complanar.
template<typename T>
bool isComplanar (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c, const TVector3< T > &d) throw ()
 Test whether four vector3 are complanar.
template<typename T>
bool isOrthogonal (const TVector3< T > &a, const TVector3< T > &b) throw ()
 Test whether two vector3 are orthogonal.
template<typename T>
bool isOrthogonal (const TVector3< T > &vector, const TLine3< T > &line) throw ()
 Test whether a vector3 and a line are orthogonal.
template<typename T>
bool isOrthogonal (const TLine3< T > &line, const TVector3< T > &vector) throw ()
 Test whether a line and a vector3 are orthogonal.
template<typename T>
bool isOrthogonal (const TLine3< T > &a, const TLine3< T > &b) throw ()
 Test whether two lines are orthogonal.
template<typename T>
bool isOrthogonal (const TVector3< T > &vector, const TPlane3< T > &plane) throw ()
 Test whether a vector3 and a plane are orthogonal.
template<typename T>
bool isOrthogonal (const TPlane3< T > &plane, const TVector3< T > &vector) throw ()
 Test whether a plane and a vector3 are orthogonal.
template<typename T>
bool isOrthogonal (const TPlane3< T > &a, const TPlane3< T > &b) throw ()
 Test whether two planes are orthogonal.
template<typename T>
bool isIntersecting (const TVector3< T > &point, const TLine3< T > &line) throw ()
 Test whether a line is intersecting a point.
template<typename T>
bool isIntersecting (const TLine3< T > &line, const TVector3< T > &point) throw ()
 Test whether a line is intersecting a point.
template<typename T>
bool isIntersecting (const TLine3< T > &a, const TLine3< T > &b) throw ()
 Test whether two lines are intersecting.
template<typename T>
bool isIntersecting (const TVector3< T > &point, const TPlane3< T > &plane) throw ()
 Test whether a point lies in a plane.
template<typename T>
bool isIntersecting (const TPlane3< T > &plane, const TVector3< T > &point) throw ()
 Test whether a point lies in a plane.
template<typename T>
bool isIntersecting (const TLine3< T > &line, const TPlane3< T > &plane) throw ()
 Test whether a line is intersecting a plane.
template<typename T>
bool isIntersecting (const TPlane3< T > &plane, const TLine3< T > &line) throw ()
 Test whether a plane is intersecting a line.
template<typename T>
bool isIntersecting (const TPlane3< T > &a, const TPlane3< T > &b) throw ()
 Test whether two planes are intersecting.
template<typename T>
bool isParallel (const TLine3< T > &line, const TPlane3< T > &plane) throw ()
 Test whether a line and a plane are parallel.
template<typename T>
bool isParallel (const TPlane3< T > &plane, const TLine3< T > &line) throw ()
 Test whether a plane and a line are parallel.
template<typename T>
bool isParallel (const TPlane3< T > &a, const TPlane3< T > &b) throw ()
 Test whether two planes are parallel.
template<typename T>
TAngle< T > getOrientedAngle (const T &ax, const T &ay, const T &az, const T &bx, const T &by, const T &bz, const T &nx, const T &ny, const T &nz) throw (Exception::DivisionByZero)
 Return the oriented angle of two vectors with a normal vector.
template<typename T>
TAngle< T > getOrientedAngle (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &normal) throw (Exception::DivisionByZero)
 Return the oriented angle of two vectors with a normal vector.
template<typename T>
TAngle< T > getTorsionAngle (const T &ax, const T &ay, const T &az, const T &bx, const T &by, const T &bz, const T &cx, const T &cy, const T &cz, const T &dx, const T &dy, const T &dz) throw (Exception::DivisionByZero)
 Return the torsion angle of four points to each other.

Detailed Description

representation of analytical geometry functions, using the classes: TAngle, TCircle3, TLine3, TPlane3, TSphere3, TVector3.


Function Documentation

template<typename T>
bool GetAngle const TPlane3< T > &  a,
const TPlane3< T > &  b,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between two planes.

Parameters:
a the first plane
b the second plane
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TLine3< T > &  line,
const TPlane3< T > &  plane,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between a line and a plane.

Parameters:
line the line
plane the plane
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TPlane3< T > &  plane,
const TLine3< T > &  line,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between a plane and a line.

Parameters:
plane the plane
line the line
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TVector3< T > &  vector,
const TPlane3< T > &  plane,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between a vector3 and a plane.

Parameters:
vector the vector3
plane the plane
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TPlane3< T > &  plane,
const TVector3< T > &  vector,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between a plane and a Vector3.

Parameters:
plane the plane
vector the Vector3
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TLine3< T > &  a,
const TLine3< T > &  b,
TAngle< T > &  intersection_angle
throw ()
 

Get the angle between two lines.

Parameters:
a the first line
b the second line
intersection_angle the resulting angle
Returns:
bool, true if an angle can be calculated, otherwise false

template<typename T>
bool GetAngle const TVector3< T > &  a,
const TVector3< T > &  b,
TAngle< T > &  intersection_angle
 

Get the angle between two Vector3.

Parameters:
a the first vector
b the second vector
intersection_angle the resulting angle
Returns:
bool, always true

template<typename T>
T getDeterminant const T *  m,
Size  dim
throw ()
 

Get the determinant of any matrix.

Parameters:
m pointer to matrix
dim dimension of the matrix

template<typename T>
T getDeterminant2 const T &  m00,
const T &  m01,
const T &  m10,
const T &  m11
throw ()
 

Get the determinant of an 2x2 matrix.

Parameters:
m00 first value of the matrix
m01 second value of the matrix
m10 third value of the matrix
m11 fourth value of the matrix

template<typename T>
T getDeterminant2 const T *  m  )  throw ()
 

Get the determinant of an 2x2 matrix.

Parameters:
m pointer to matrix

template<typename T>
T getDeterminant3 const T &  m00,
const T &  m01,
const T &  m02,
const T &  m10,
const T &  m11,
const T &  m12,
const T &  m20,
const T &  m21,
const T &  m22
throw ()
 

Get the determinant of an 3x3 matrix.

Parameters:
m00,m01,m02,m10,m11,m12,m20,m21,m22 the elements of the matrix

template<typename T>
T getDeterminant3 const T *  m  )  throw ()
 

Get the determinant of an 3x3 matrix.

Parameters:
m pointer to matrix

template<typename T>
T getDeterminant_ const T *  m,
Size  dim
throw ()
 

Subroutine to get the determinant of any matrix.

Direct usage of this function should be avoided. Instead use T getDeterminant(const T* m, Size dim)

Parameters:
m pointer to matrix
dim dimension of the matrix

template<typename T>
T GetDistance const TPlane3< T > &  a,
const TPlane3< T > &  b
throw (Exception::DivisionByZero)
 

Get the distance between two planes.

Parameters:
a the first plane
b the second plane
Returns:
T the distance

template<typename T>
T GetDistance const TPlane3< T > &  plane,
const TLine3< T > &  line
throw (Exception::DivisionByZero)
 

Get the distance between a plane and a line.

Parameters:
plane the plane
line the line
Returns:
T the distance

template<typename T>
T GetDistance const TLine3< T > &  line,
const TPlane3< T > &  plane
throw (Exception::DivisionByZero)
 

Get the distance between a line and a plane.

Parameters:
line the line
plane the plane
Returns:
T the distance

template<typename T>
T GetDistance const TPlane3< T > &  plane,
const TVector3< T > &  point
throw (Exception::DivisionByZero)
 

Get the distance between a plane and a point.

Parameters:
plane the plane
point the point
Returns:
T the distance

template<typename T>
T GetDistance const TVector3< T > &  point,
const TPlane3< T > &  plane
throw (Exception::DivisionByZero)
 

Get the distance between a point and a plane.

Parameters:
point the point
plane the plane
Returns:
T the distance

template<typename T>
T GetDistance const TLine3< T > &  a,
const TLine3< T > &  b
throw (Exception::DivisionByZero)
 

Get the distance between two lines.

Parameters:
a the first line
b the second line
Returns:
T the distance

template<typename T>
T GetDistance const TVector3< T > &  point,
const TLine3< T > &  line
throw (Exception::DivisionByZero)
 

Get the distance between a point and a line.

Parameters:
point the point
line the line
Returns:
T the distance

template<typename T>
T GetDistance const TLine3< T > &  line,
const TVector3< T > &  point
throw (Exception::DivisionByZero)
 

Get the distance between a line and a point.

Parameters:
line the line
point the point
Returns:
T the distance

template<typename T>
T GetDistance const TVector3< T > &  a,
const TVector3< T > &  b
throw ()
 

Get the distance between two points.

Parameters:
a the first point
b the second point
Returns:
T the distance

template<class T>
bool GetIntersection const TSphere3< T > &  s1,
const TSphere3< T > &  s2,
const TSphere3< T > &  s3,
TVector3< T > &  p1,
TVector3< T > &  p2,
bool  test = true
throw ()
 

Get the intersection points between three spheres.

Parameters:
s1 the first sphere
s2 the second sphere
s3 the third sphere
p1 the first intersection point
p2 the second intersection point
test 
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TSphere3< T > &  a,
const TSphere3< T > &  b,
TCircle3< T > &  intersection_circle
throw ()
 

Get the intersection circle between two spheres.

This methods returns false, if the two spheres are identical, since then no intersection circle exists.

Parameters:
a the first sphere
b the second sphere
intersection_circle the intersection circle
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TPlane3< T > &  plane,
const TSphere3< T > &  sphere,
TCircle3< T > &  intersection_circle
throw ()
 

Get the intersection circle between a plane and a sphere.

Parameters:
plane the plane
sphere the sphere
intersection_circle the intersection circle
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TSphere3< T > &  sphere,
const TPlane3< T > &  plane,
TCircle3< T > &  intersection_circle
throw ()
 

Get the intersection circle between a sphere and a plane.

Parameters:
sphere the sphere
plane the plane
intersection_circle the intersection circle
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TLine3< T > &  line,
const TSphere3< T > &  sphere,
TVector3< T > &  intersection_point1,
TVector3< T > &  intersection_point2
throw ()
 

Get the intersection point between a line and a sphere.

Parameters:
line the line
sphere the sphere
intersection_point1 the first intersection point
intersection_point2 the second intersection point
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TSphere3< T > &  sphere,
const TLine3< T > &  line,
TVector3< T > &  intersection_point1,
TVector3< T > &  intersection_point2
throw ()
 

Get the intersection point between a sphere and a line.

Parameters:
sphere the sphere
line the line
intersection_point1 the first intersection point
intersection_point2 the second intersection point
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TPlane3< T > &  plane1,
const TPlane3< T > &  plane2,
TLine3< T > &  line
throw ()
 

Get the intersection line between two planes.

Parameters:
plane1 the first plane
plane2 the second plane
line the resulting intersection
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TLine3< T > &  line,
const TPlane3< T > &  plane,
TVector3< T > &  intersection_point
throw ()
 

Get the intersection point between a line and a plane.

Parameters:
line the line
plane the plane
intersection_point the resulting intersection
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TPlane3< T > &  plane,
const TLine3< T > &  line,
TVector3< T > &  intersection_point
throw ()
 

Get the intersection point between a plane and a line.

Parameters:
plane the plane
line the line
intersection_point the resulting intersection
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
bool GetIntersection const TLine3< T > &  a,
const TLine3< T > &  b,
TVector3< T > &  point
throw ()
 

Get the intersection point between two lines.

Parameters:
a the first line
b the second line
point the resulting intersection
Returns:
bool, true if an intersection can be calculated, otherwise false

template<typename T>
TAngle<T> getOrientedAngle const TVector3< T > &  a,
const TVector3< T > &  b,
const TVector3< T > &  normal
throw (Exception::DivisionByZero)
 

Return the oriented angle of two vectors with a normal vector.

template<typename T>
TAngle<T> getOrientedAngle const T &  ax,
const T &  ay,
const T &  az,
const T &  bx,
const T &  by,
const T &  bz,
const T &  nx,
const T &  ny,
const T &  nz
throw (Exception::DivisionByZero)
 

Return the oriented angle of two vectors with a normal vector.

template<typename T>
TVector3<T> GetPartition const TVector3< T > &  a,
const TVector3< T > &  b,
const T &  r,
const T &  s
throw (Exception::DivisionByZero)
 

Get the partition of two vectors, calculated with two ratio factors.

Parameters:
a the first vector
b the second vector
r the ratio factor of the first vector
s the ratio factor of the second vector
Returns:
TVector3 the partition

template<typename T>
TVector3<T> GetPartition const TVector3< T > &  a,
const TVector3< T > &  b
throw ()
 

Get the partition of two vectors.

Parameters:
a the first vector
b the second vector
Returns:
TVector3 the partition

template<typename T>
TAngle<T> getTorsionAngle const T &  ax,
const T &  ay,
const T &  az,
const T &  bx,
const T &  by,
const T &  bz,
const T &  cx,
const T &  cy,
const T &  cz,
const T &  dx,
const T &  dy,
const T &  dz
throw (Exception::DivisionByZero)
 

Return the torsion angle of four points to each other.

Parameters:
ax 1. vector x component
ay 1. vector y component
az 1. vector z component
bx 2. vector x component
by 2. vector y component
bz 2. vector z component
cx 3. vector x component
cy 3. vector y component
cz 3. vector z component
dx 4. vector x component
dy 4. vector y component
dz 4. vector z component
Returns:
TAngle the torsion angle

template<typename T>
bool isCollinear const TVector3< T > &  a,
const TVector3< T > &  b
throw ()
 

Test whether two vector3 are collinear.

Parameters:
a the first vector3
b the second vector3
Returns:
bool, true or false

template<typename T>
bool isComplanar const TVector3< T > &  a,
const TVector3< T > &  b,
const TVector3< T > &  c,
const TVector3< T > &  d
throw ()
 

Test whether four vector3 are complanar.

Parameters:
a the first vector3
b the second vector3
c the third vector3
d the fourth vector3
Returns:
bool, true or false

template<typename T>
bool isComplanar const TVector3< T > &  a,
const TVector3< T > &  b,
const TVector3< T > &  c
throw ()
 

Test whether three vector3 are complanar.

Parameters:
a the first vector3
b the second vector3
c the third vector3
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TPlane3< T > &  a,
const TPlane3< T > &  b
throw ()
 

Test whether two planes are intersecting.

Parameters:
a the first plane
b the second plane
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TPlane3< T > &  plane,
const TLine3< T > &  line
throw ()
 

Test whether a plane is intersecting a line.

Parameters:
plane the plane
line the line
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TLine3< T > &  line,
const TPlane3< T > &  plane
throw ()
 

Test whether a line is intersecting a plane.

Parameters:
line the line
plane the plane
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TPlane3< T > &  plane,
const TVector3< T > &  point
throw ()
 

Test whether a point lies in a plane.

Parameters:
plane the plane
point the point
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TVector3< T > &  point,
const TPlane3< T > &  plane
throw ()
 

Test whether a point lies in a plane.

Parameters:
point the point
plane the plane
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TLine3< T > &  a,
const TLine3< T > &  b
throw ()
 

Test whether two lines are intersecting.

Parameters:
a the first line
b the second line
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TLine3< T > &  line,
const TVector3< T > &  point
throw ()
 

Test whether a line is intersecting a point.

Parameters:
line the line
point the point
Returns:
bool, true or false

template<typename T>
bool isIntersecting const TVector3< T > &  point,
const TLine3< T > &  line
throw ()
 

Test whether a line is intersecting a point.

Parameters:
point the point
line the line
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TPlane3< T > &  a,
const TPlane3< T > &  b
throw ()
 

Test whether two planes are orthogonal.

Parameters:
a the first plane
b the second plane
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TPlane3< T > &  plane,
const TVector3< T > &  vector
throw ()
 

Test whether a plane and a vector3 are orthogonal.

Parameters:
plane the plane
vector the vector3
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TVector3< T > &  vector,
const TPlane3< T > &  plane
throw ()
 

Test whether a vector3 and a plane are orthogonal.

Parameters:
vector the vector3
plane the plane
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TLine3< T > &  a,
const TLine3< T > &  b
throw ()
 

Test whether two lines are orthogonal.

Parameters:
a the first line
b the second line
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TLine3< T > &  line,
const TVector3< T > &  vector
throw ()
 

Test whether a line and a vector3 are orthogonal.

Parameters:
line the line
vector the vector
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TVector3< T > &  vector,
const TLine3< T > &  line
throw ()
 

Test whether a vector3 and a line are orthogonal.

Parameters:
vector the vector
line the line
Returns:
bool, true or false

template<typename T>
bool isOrthogonal const TVector3< T > &  a,
const TVector3< T > &  b
throw ()
 

Test whether two vector3 are orthogonal.

Parameters:
a the first vector3
b the second vector3
Returns:
bool, true or false

template<typename T>
bool isParallel const TPlane3< T > &  a,
const TPlane3< T > &  b
throw ()
 

Test whether two planes are parallel.

Parameters:
a the first plane
b the second plane
Returns:
bool, true or false

template<typename T>
bool isParallel const TPlane3< T > &  plane,
const TLine3< T > &  line
throw ()
 

Test whether a plane and a line are parallel.

Parameters:
plane the plane
line the line
Returns:
bool, true or false

template<typename T>
bool isParallel const TLine3< T > &  line,
const TPlane3< T > &  plane
throw ()
 

Test whether a line and a plane are parallel.

Parameters:
line the line
plane the plane
Returns:
bool, true or false

template<typename T>
short SolveQuadraticEquation const T &  a,
const T &  b,
const T &  c,
T &  x1,
T &  x2
throw ()
 

Solve a quadratic equation of the form a $x^2 + b x + c = 0$.

Parameters:
a 
b 
c 
x1 the first solution
x2 the second solution
Returns:
short the number of solutions (0 - 2)

template<typename T>
bool SolveSystem const T *  m,
T *  x,
const Size  dim
throw ()
 

Solve a system of linear equations.

Given a system of linear equations

$ \begin{array}{ccccccccc} a_{1,1} x_1 & + & a_{1,2} x_2 & + & \ldots & + & a_{1,n} x_n & = & a_{1,(n+1)} \\ a_{2,1} x_1 & + & a_{2,2} x_2 & + & \ldots & + & a_{2,n} x_n & = & a_{2,(n+1)} \\ \vdots & & \vdots & & \ddots & & \vdots & & \vdots \\ a_{n,1} x_1 & + & a_{n,2} x_2 & + & \ldots & + & a_{n,n} x_n & = & a_{n,(n+1)} \\ \end{array} $
in matrix form, identify the solution $x = (x_1, x_2,\ldots x_N)$.
m should point to a C-style array containing the $n\times(n+1)$ matrix A.
The elements of A are row-ordered, i.e., they are ordered like this:
$ a_{1,1}, a_{1,2}, \cdot, a_{1,(n+1)}, a_{2,1}, \ldots a_{n,(n+1)} $
x points to a C-style array that will contain the solution vector x upon successful termination of the function.
If there is no solution or the system is under-determined, return false.
Parameters:
m pointer to the factors in the equations
x pointer in which the results are stored
dim the dimension of the equation system (number of variables)
Returns:
bool true if a solution is found

template<typename T>
bool SolveSystem2 const T &  a1,
const T &  b1,
const T &  c1,
const T &  a2,
const T &  b2,
const T &  c2,
T &  x1,
T &  x2
throw ()
 

Solve a system of two equations of the form $a_1 x_1 + b_1 x_2 = c_1$ and $a_2 x_1 + b_2 x_2 = c_2$.

Parameters:
a1,b1,c1,a2,b2,c2 constants of the system
x1 the first solution
x2 the second solution
Returns:
bool true if a solution is found