Functions | |
template<typename T > | |
BALL_INLINE T | BALL::getDeterminant_ (const T *m, Size dim) |
template<typename T > | |
T | BALL::getDeterminant (const T *m, Size dim) |
template<typename T > | |
BALL_INLINE T | BALL::getDeterminant2 (const T *m) |
template<typename T > | |
BALL_INLINE T | BALL::getDeterminant2 (const T &m00, const T &m01, const T &m10, const T &m11) |
template<typename T > | |
BALL_INLINE T | BALL::getDeterminant3 (const T *m) |
template<typename T > | |
BALL_INLINE T | BALL::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) |
template<typename T > | |
bool | BALL::SolveSystem (const T *m, T *x, const Size dim) |
template<typename T > | |
BALL_INLINE bool | BALL::SolveSystem2 (const T &a1, const T &b1, const T &c1, const T &a2, const T &b2, const T &c2, T &x1, T &x2) |
template<typename T > | |
short | BALL::SolveQuadraticEquation (const T &a, const T &b, const T &c, T &x1, T &x2) |
template<typename T > | |
BALL_INLINE TVector3< T > | BALL::GetPartition (const TVector3< T > &a, const TVector3< T > &b) |
template<typename T > | |
BALL_INLINE TVector3< T > | BALL::GetPartition (const TVector3< T > &a, const TVector3< T > &b, const T &r, const T &s) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TVector3< T > &a, const TVector3< T > &b) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TLine3< T > &line, const TVector3< T > &point) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TVector3< T > &point, const TLine3< T > &line) throw (Exception::DivisionByZero) |
template<typename T > | |
T | BALL::GetDistance (const TLine3< T > &a, const TLine3< T > &b) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TVector3< T > &point, const TPlane3< T > &plane) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TPlane3< T > &plane, const TVector3< T > &point) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TLine3< T > &line, const TPlane3< T > &plane) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TPlane3< T > &plane, const TLine3< T > &line) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE T | BALL::GetDistance (const TPlane3< T > &a, const TPlane3< T > &b) throw (Exception::DivisionByZero) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TVector3< T > &a, const TVector3< T > &b, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TLine3< T > &a, const TLine3< T > &b, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TPlane3< T > &plane, const TVector3< T > &vector, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TVector3< T > &vector, const TPlane3< T > &plane, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TPlane3< T > &plane, const TLine3< T > &line, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TLine3< T > &line, const TPlane3< T > &plane, TAngle< T > &intersection_angle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetAngle (const TPlane3< T > &a, const TPlane3< T > &b, TAngle< T > &intersection_angle) |
template<typename T > | |
bool | BALL::GetIntersection (const TLine3< T > &a, const TLine3< T > &b, TVector3< T > &point) |
template<typename T > | |
BALL_INLINE bool | BALL::GetIntersection (const TPlane3< T > &plane, const TLine3< T > &line, TVector3< T > &intersection_point) |
template<typename T > | |
BALL_INLINE bool | BALL::GetIntersection (const TLine3< T > &line, const TPlane3< T > &plane, TVector3< T > &intersection_point) |
template<typename T > | |
bool | BALL::GetIntersection (const TPlane3< T > &plane1, const TPlane3< T > &plane2, TLine3< T > &line) |
template<typename T > | |
bool | BALL::GetIntersection (const TSphere3< T > &sphere, const TLine3< T > &line, TVector3< T > &intersection_point1, TVector3< T > &intersection_point2) |
template<typename T > | |
BALL_INLINE bool | BALL::GetIntersection (const TLine3< T > &line, const TSphere3< T > &sphere, TVector3< T > &intersection_point1, TVector3< T > &intersection_point2) |
template<typename T > | |
bool | BALL::GetIntersection (const TSphere3< T > &sphere, const TPlane3< T > &plane, TCircle3< T > &intersection_circle) |
template<typename T > | |
BALL_INLINE bool | BALL::GetIntersection (const TPlane3< T > &plane, const TSphere3< T > &sphere, TCircle3< T > &intersection_circle) |
template<typename T > | |
bool | BALL::GetIntersection (const TSphere3< T > &a, const TSphere3< T > &b, TCircle3< T > &intersection_circle) |
template<class T > | |
bool | BALL::GetIntersection (const TSphere3< T > &s1, const TSphere3< T > &s2, const TSphere3< T > &s3, TVector3< T > &p1, TVector3< T > &p2, bool test=true) |
template<typename T > | |
BALL_INLINE bool | BALL::isCollinear (const TVector3< T > &a, const TVector3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isComplanar (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c) |
template<typename T > | |
BALL_INLINE bool | BALL::isComplanar (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c, const TVector3< T > &d) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TVector3< T > &a, const TVector3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TVector3< T > &vector, const TLine3< T > &line) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TLine3< T > &line, const TVector3< T > &vector) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TLine3< T > &a, const TLine3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TVector3< T > &vector, const TPlane3< T > &plane) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TPlane3< T > &plane, const TVector3< T > &vector) |
template<typename T > | |
BALL_INLINE bool | BALL::isOrthogonal (const TPlane3< T > &a, const TPlane3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TVector3< T > &point, const TLine3< T > &line) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TLine3< T > &line, const TVector3< T > &point) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TLine3< T > &a, const TLine3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TVector3< T > &point, const TPlane3< T > &plane) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TPlane3< T > &plane, const TVector3< T > &point) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TLine3< T > &line, const TPlane3< T > &plane) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TPlane3< T > &plane, const TLine3< T > &line) |
template<typename T > | |
BALL_INLINE bool | BALL::isIntersecting (const TPlane3< T > &a, const TPlane3< T > &b) |
template<typename T > | |
BALL_INLINE bool | BALL::isParallel (const TLine3< T > &line, const TPlane3< T > &plane) |
template<typename T > | |
BALL_INLINE bool | BALL::isParallel (const TPlane3< T > &plane, const TLine3< T > &line) |
template<typename T > | |
BALL_INLINE bool | BALL::isParallel (const TPlane3< T > &a, const TPlane3< T > &b) |
template<typename T > | |
TAngle< T > | BALL::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) |
template<typename T > | |
BALL_INLINE TAngle< T > | BALL::getOrientedAngle (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &normal) throw (Exception::DivisionByZero) |
template<typename T > | |
TAngle< T > | BALL::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) |
representation of analytical geometry functions, using the classes: TAngle, TCircle3, TLine3, TPlane3, TSphere3, TVector3.
BALL_INLINE bool BALL::GetAngle | ( | const TVector3< T > & | a, |
const TVector3< T > & | b, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between two Vector3.
a | the first vector |
b | the second vector |
intersection_angle | the resulting angle |
References BALL::TVector3< T >::getAngle(), BALL::TVector3< T >::getSquareLength(), and BALL::Maths::isZero().
Referenced by BALL::GetAngle().
BALL_INLINE bool BALL::GetAngle | ( | const TLine3< T > & | a, |
const TLine3< T > & | b, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between two lines.
a | the first line |
b | the second line |
intersection_angle | the resulting angle |
References BALL::Maths::abs(), BALL::TLine3< T >::d, and BALL::Maths::isZero().
BALL_INLINE bool BALL::GetAngle | ( | const TPlane3< T > & | plane, |
const TVector3< T > & | vector, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between a plane and a Vector3.
plane | the plane |
vector | the Vector3 |
intersection_angle | the resulting angle |
References BALL::Maths::abs(), BALL::TVector3< T >::getSquareLength(), BALL::Maths::isZero(), and BALL::TPlane3< T >::n.
BALL_INLINE bool BALL::GetAngle | ( | const TVector3< T > & | vector, |
const TPlane3< T > & | plane, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between a vector3 and a plane.
vector | the vector3 |
plane | the plane |
intersection_angle | the resulting angle |
References BALL::GetAngle().
BALL_INLINE bool BALL::GetAngle | ( | const TPlane3< T > & | plane, |
const TLine3< T > & | line, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between a plane and a line.
plane | the plane |
line | the line |
intersection_angle | the resulting angle |
References BALL::Maths::abs(), BALL::TLine3< T >::d, BALL::Maths::isZero(), and BALL::TPlane3< T >::n.
BALL_INLINE bool BALL::GetAngle | ( | const TLine3< T > & | line, |
const TPlane3< T > & | plane, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between a line and a plane.
line | the line |
plane | the plane |
intersection_angle | the resulting angle |
References BALL::GetAngle().
BALL_INLINE bool BALL::GetAngle | ( | const TPlane3< T > & | a, |
const TPlane3< T > & | b, | ||
TAngle< T > & | intersection_angle | ||
) |
Get the angle between two planes.
a | the first plane |
b | the second plane |
intersection_angle | the resulting angle |
References BALL::Maths::abs(), BALL::Maths::isZero(), and BALL::TPlane3< T >::n.
T BALL::getDeterminant | ( | const T * | m, |
Size | dim | ||
) |
Get the determinant of any matrix.
m | pointer to matrix |
dim | dimension of the matrix |
References BALL_CELL, and BALL::getDeterminant_().
Referenced by BALL::TMatrix4x4< T >::isRegular(), and BALL::TMatrix4x4< T >::isSingular().
BALL_INLINE T BALL::getDeterminant2 | ( | const T & | m00, |
const T & | m01, | ||
const T & | m10, | ||
const T & | m11 | ||
) |
Get the determinant of an 2x2 matrix.
m00 | first value of the matrix |
m01 | second value of the matrix |
m10 | third value of the matrix |
m11 | fourth value of the matrix |
BALL_INLINE T BALL::getDeterminant2 | ( | const T * | m | ) |
BALL_INLINE T BALL::getDeterminant3 | ( | const T * | m | ) |
BALL_INLINE T BALL::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 | ||
) |
Get the determinant of an 3x3 matrix.
m00,m01,m02,m10,m11,m12,m20,m21,m22 | the elements of the matrix |
BALL_INLINE T BALL::getDeterminant_ | ( | const T * | m, |
Size | dim | ||
) |
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)
m | pointer to matrix |
dim | dimension of the matrix |
References BALL::Constants::k.
Referenced by BALL::getDeterminant().
BALL_INLINE T BALL::GetDistance | ( | const TVector3< T > & | point, |
const TPlane3< T > & | plane | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a point and a plane.
point | the point |
plane | the plane |
References BALL::Maths::abs().
BALL_INLINE T BALL::GetDistance | ( | const TPlane3< T > & | plane, |
const TVector3< T > & | point | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a plane and a point.
plane | the plane |
point | the point |
References BALL::GetDistance().
BALL_INLINE T BALL::GetDistance | ( | const TLine3< T > & | line, |
const TPlane3< T > & | plane | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a line and a plane.
line | the line |
plane | the plane |
References BALL::Maths::abs().
BALL_INLINE T BALL::GetDistance | ( | const TPlane3< T > & | plane, |
const TLine3< T > & | line | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a plane and a line.
plane | the plane |
line | the line |
References BALL::GetDistance().
BALL_INLINE T BALL::GetDistance | ( | const TPlane3< T > & | a, |
const TPlane3< T > & | b | ||
) | throw (Exception::DivisionByZero) |
Get the distance between two planes.
a | the first plane |
b | the second plane |
References BALL::Maths::abs().
BALL_INLINE T BALL::GetDistance | ( | const TVector3< T > & | a, |
const TVector3< T > & | b | ||
) |
Get the distance between two points.
a | the first point |
b | the second point |
References BALL::TVector3< T >::x, BALL::TVector3< T >::y, and BALL::TVector3< T >::z.
Referenced by BALL::GetDistance(), BALL::GetIntersection(), and BALL::isIntersecting().
BALL_INLINE T BALL::GetDistance | ( | const TLine3< T > & | line, |
const TVector3< T > & | point | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a line and a point.
line | the line |
point | the point |
BALL_INLINE T BALL::GetDistance | ( | const TVector3< T > & | point, |
const TLine3< T > & | line | ||
) | throw (Exception::DivisionByZero) |
Get the distance between a point and a line.
point | the point |
line | the line |
References BALL::GetDistance().
T BALL::GetDistance | ( | const TLine3< T > & | a, |
const TLine3< T > & | b | ||
) | throw (Exception::DivisionByZero) |
Get the distance between two lines.
a | the first line |
b | the second line |
References BALL::Maths::abs(), BALL::TVector3< T >::getTripleProduct(), BALL::Maths::isNotZero(), and BALL::Maths::isZero().
bool BALL::GetIntersection | ( | const TSphere3< T > & | sphere, |
const TLine3< T > & | line, | ||
TVector3< T > & | intersection_point1, | ||
TVector3< T > & | intersection_point2 | ||
) |
Get the intersection point between a sphere and a line.
sphere | the sphere |
line | the line |
intersection_point1 | the first intersection point |
intersection_point2 | the second intersection point |
References BALL::TLine3< T >::d, BALL::TSphere3< T >::p, BALL::TLine3< T >::p, BALL::TSphere3< T >::radius, and BALL::SolveQuadraticEquation().
BALL_INLINE bool BALL::GetIntersection | ( | const TLine3< T > & | line, |
const TSphere3< T > & | sphere, | ||
TVector3< T > & | intersection_point1, | ||
TVector3< T > & | intersection_point2 | ||
) |
Get the intersection point between a line and a sphere.
line | the line |
sphere | the sphere |
intersection_point1 | the first intersection point |
intersection_point2 | the second intersection point |
References BALL::GetIntersection().
bool BALL::GetIntersection | ( | const TSphere3< T > & | sphere, |
const TPlane3< T > & | plane, | ||
TCircle3< T > & | intersection_circle | ||
) |
Get the intersection circle between a sphere and a plane.
sphere | the sphere |
plane | the plane |
intersection_circle | the intersection circle |
References BALL::GetDistance(), BALL::Maths::isEqual(), BALL::Maths::isGreater(), BALL::TPlane3< T >::n, BALL::TVector3< T >::normalize(), BALL::TSphere3< T >::p, BALL::TSphere3< T >::radius, and BALL::TCircle3< T >::set().
BALL_INLINE bool BALL::GetIntersection | ( | const TPlane3< T > & | plane, |
const TSphere3< T > & | sphere, | ||
TCircle3< T > & | intersection_circle | ||
) |
Get the intersection circle between a plane and a sphere.
plane | the plane |
sphere | the sphere |
intersection_circle | the intersection circle |
References BALL::GetIntersection().
bool BALL::GetIntersection | ( | const TSphere3< T > & | a, |
const TSphere3< T > & | b, | ||
TCircle3< T > & | intersection_circle | ||
) |
Get the intersection circle between two spheres. This methods returns false, if the two spheres are identical, since then no intersection circle exists.
a | the first sphere |
b | the second sphere |
intersection_circle | the intersection circle |
References BALL::Maths::abs(), BALL::Maths::isGreaterOrEqual(), BALL::Maths::isLess(), BALL::Maths::isZero(), BALL::TCircle3< T >::n, BALL::TCircle3< T >::p, BALL::TSphere3< T >::p, BALL::TCircle3< T >::radius, and BALL::TSphere3< T >::radius.
bool BALL::GetIntersection | ( | const TSphere3< T > & | s1, |
const TSphere3< T > & | s2, | ||
const TSphere3< T > & | s3, | ||
TVector3< T > & | p1, | ||
TVector3< T > & | p2, | ||
bool | test = true |
||
) |
Get the intersection points between three spheres.
s1 | the first sphere |
s2 | the second sphere |
s3 | the third sphere |
p1 | the first intersection point |
p2 | the second intersection point |
test |
References BALL::TLine3< T >::d, BALL::GetIntersection(), BALL::Maths::isNotEqual(), BALL::TLine3< T >::p, BALL::TSphere3< T >::p, BALL::TSphere3< T >::radius, and BALL::SolveQuadraticEquation().
bool BALL::GetIntersection | ( | const TLine3< T > & | a, |
const TLine3< T > & | b, | ||
TVector3< T > & | point | ||
) |
Get the intersection point between two lines.
a | the first line |
b | the second line |
point | the resulting intersection |
References BALL::TLine3< T >::d, BALL::Maths::isEqual(), BALL::TLine3< T >::p, BALL::TVector3< T >::set(), and BALL::SolveSystem2().
Referenced by BALL::GetIntersection().
BALL_INLINE bool BALL::GetIntersection | ( | const TPlane3< T > & | plane, |
const TLine3< T > & | line, | ||
TVector3< T > & | intersection_point | ||
) |
Get the intersection point between a plane and a line.
plane | the plane |
line | the line |
intersection_point | the resulting intersection |
References BALL::TLine3< T >::d, BALL::Maths::isZero(), BALL::TPlane3< T >::n, BALL::TPlane3< T >::p, BALL::TLine3< T >::p, and BALL::TVector3< T >::set().
BALL_INLINE bool BALL::GetIntersection | ( | const TLine3< T > & | line, |
const TPlane3< T > & | plane, | ||
TVector3< T > & | intersection_point | ||
) |
Get the intersection point between a line and a plane.
line | the line |
plane | the plane |
intersection_point | the resulting intersection |
References BALL::GetIntersection().
bool BALL::GetIntersection | ( | const TPlane3< T > & | plane1, |
const TPlane3< T > & | plane2, | ||
TLine3< T > & | line | ||
) |
Get the intersection line between two planes.
plane1 | the first plane |
plane2 | the second plane |
line | the resulting intersection |
References BALL::Constants::c, BALL::TLine3< T >::d, BALL::Maths::isZero(), BALL::TPlane3< T >::n, BALL::TLine3< T >::p, and BALL::TPlane3< T >::p.
BALL_INLINE TAngle<T> BALL::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.
References BALL::getOrientedAngle().
TAngle<T> BALL::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.
References BALL::Constants::PI.
Referenced by BALL::getOrientedAngle().
BALL_INLINE TVector3<T> BALL::GetPartition | ( | const TVector3< T > & | a, |
const TVector3< T > & | b | ||
) |
Get the partition of two vectors.
a | the first vector |
b | the second vector |
References BALL::TVector3< T >::x, BALL::TVector3< T >::y, and BALL::TVector3< T >::z.
BALL_INLINE TVector3<T> BALL::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.
a | the first vector |
b | the second vector |
r | the ratio factor of the first vector |
s | the ratio factor of the second vector |
TAngle<T> BALL::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.
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 |
References BALL::Constants::PI.
BALL_INLINE bool BALL::isCollinear | ( | const TVector3< T > & | a, |
const TVector3< T > & | b | ||
) |
Test whether two vector3 are collinear
a | the first vector3 |
b | the second vector3 |
Referenced by BALL::isOrthogonal(), and BALL::isParallel().
BALL_INLINE bool BALL::isComplanar | ( | const TVector3< T > & | a, |
const TVector3< T > & | b, | ||
const TVector3< T > & | c | ||
) |
Test whether three vector3 are complanar
a | the first vector3 |
b | the second vector3 |
c | the third vector3 |
References BALL::Maths::isZero().
Referenced by BALL::isComplanar().
BALL_INLINE bool BALL::isComplanar | ( | const TVector3< T > & | a, |
const TVector3< T > & | b, | ||
const TVector3< T > & | c, | ||
const TVector3< T > & | d | ||
) |
Test whether four vector3 are complanar
a | the first vector3 |
b | the second vector3 |
c | the third vector3 |
d | the fourth vector3 |
References BALL::isComplanar().
BALL_INLINE bool BALL::isIntersecting | ( | const TPlane3< T > & | plane, |
const TLine3< T > & | line | ||
) |
Test whether a plane is intersecting a line.
plane | the plane |
line | the line |
References BALL::isIntersecting().
BALL_INLINE bool BALL::isIntersecting | ( | const TLine3< T > & | line, |
const TVector3< T > & | point | ||
) |
Test whether a line is intersecting a point.
line | the line |
point | the point |
References BALL::isIntersecting().
BALL_INLINE bool BALL::isIntersecting | ( | const TVector3< T > & | point, |
const TPlane3< T > & | plane | ||
) |
Test whether a point lies in a plane.
point | the point |
plane | the plane |
References BALL::GetDistance(), and BALL::Maths::isZero().
BALL_INLINE bool BALL::isIntersecting | ( | const TPlane3< T > & | a, |
const TPlane3< T > & | b | ||
) |
Test whether two planes are intersecting.
a | the first plane |
b | the second plane |
References BALL::GetDistance(), and BALL::Maths::isZero().
BALL_INLINE bool BALL::isIntersecting | ( | const TLine3< T > & | line, |
const TPlane3< T > & | plane | ||
) |
Test whether a line is intersecting a plane.
line | the line |
plane | the plane |
References BALL::GetDistance(), and BALL::Maths::isZero().
BALL_INLINE bool BALL::isIntersecting | ( | const TVector3< T > & | point, |
const TLine3< T > & | line | ||
) |
Test whether a line is intersecting a point.
point | the point |
line | the line |
References BALL::GetDistance(), and BALL::Maths::isZero().
Referenced by BALL::isIntersecting().
BALL_INLINE bool BALL::isIntersecting | ( | const TLine3< T > & | a, |
const TLine3< T > & | b | ||
) |
Test whether two lines are intersecting.
a | the first line |
b | the second line |
References BALL::GetDistance(), and BALL::Maths::isZero().
BALL_INLINE bool BALL::isIntersecting | ( | const TPlane3< T > & | plane, |
const TVector3< T > & | point | ||
) |
Test whether a point lies in a plane.
plane | the plane |
point | the point |
References BALL::isIntersecting().
BALL_INLINE bool BALL::isOrthogonal | ( | const TVector3< T > & | vector, |
const TLine3< T > & | line | ||
) |
Test whether a vector3 and a line are orthogonal
vector | the vector |
line | the line |
References BALL::TLine3< T >::d, and BALL::Maths::isZero().
BALL_INLINE bool BALL::isOrthogonal | ( | const TPlane3< T > & | a, |
const TPlane3< T > & | b | ||
) |
Test whether two planes are orthogonal.
a | the first plane |
b | the second plane |
References BALL::Maths::isZero(), and BALL::TPlane3< T >::n.
BALL_INLINE bool BALL::isOrthogonal | ( | const TLine3< T > & | a, |
const TLine3< T > & | b | ||
) |
Test whether two lines are orthogonal.
a | the first line |
b | the second line |
References BALL::TLine3< T >::d, and BALL::Maths::isZero().
BALL_INLINE bool BALL::isOrthogonal | ( | const TVector3< T > & | vector, |
const TPlane3< T > & | plane | ||
) |
Test whether a vector3 and a plane are orthogonal.
vector | the vector3 |
plane | the plane |
References BALL::isCollinear(), and BALL::TPlane3< T >::n.
BALL_INLINE bool BALL::isOrthogonal | ( | const TPlane3< T > & | plane, |
const TVector3< T > & | vector | ||
) |
Test whether a plane and a vector3 are orthogonal.
plane | the plane |
vector | the vector3 |
References BALL::isOrthogonal().
BALL_INLINE bool BALL::isOrthogonal | ( | const TLine3< T > & | line, |
const TVector3< T > & | vector | ||
) |
Test whether a line and a vector3 are orthogonal
line | the line |
vector | the vector |
References BALL::isOrthogonal().
BALL_INLINE bool BALL::isOrthogonal | ( | const TVector3< T > & | a, |
const TVector3< T > & | b | ||
) |
Test whether two vector3 are orthogonal
a | the first vector3 |
b | the second vector3 |
References BALL::Maths::isZero().
Referenced by BALL::isOrthogonal(), and BALL::isParallel().
BALL_INLINE bool BALL::isParallel | ( | const TLine3< T > & | line, |
const TPlane3< T > & | plane | ||
) |
Test whether a line and a plane are parallel.
line | the line |
plane | the plane |
References BALL::TLine3< T >::d, BALL::isOrthogonal(), and BALL::TPlane3< T >::n.
Referenced by BALL::isParallel().
BALL_INLINE bool BALL::isParallel | ( | const TPlane3< T > & | plane, |
const TLine3< T > & | line | ||
) |
Test whether a plane and a line are parallel.
plane | the plane |
line | the line |
References BALL::isParallel().
BALL_INLINE bool BALL::isParallel | ( | const TPlane3< T > & | a, |
const TPlane3< T > & | b | ||
) |
Test whether two planes are parallel.
a | the first plane |
b | the second plane |
References BALL::isCollinear(), and BALL::TPlane3< T >::n.
short BALL::SolveQuadraticEquation | ( | const T & | a, |
const T & | b, | ||
const T & | c, | ||
T & | x1, | ||
T & | x2 | ||
) |
Solve a quadratic equation of the form a .
a | |
b | |
c | |
x1 | the first solution |
x2 | the second solution |
References BALL::Constants::c, BALL::Maths::isLess(), and BALL::Maths::isZero().
Referenced by BALL::GetIntersection().
bool BALL::SolveSystem | ( | const T * | m, |
T * | x, | ||
const Size | dim | ||
) |
Solve a system of linear equations. Given a system of linear equations
m
should point to a C-style array containing the x
points to a C-style array that will contain the solution vector x upon successful termination of the function. 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) |
true
if a solution is found References BALL_MATRIX_CELL, BALL::Maths::isLess(), BALL::Maths::isNan(), BALL::Maths::isZero(), and BALL::Constants::k.
BALL_INLINE bool BALL::SolveSystem2 | ( | const T & | a1, |
const T & | b1, | ||
const T & | c1, | ||
const T & | a2, | ||
const T & | b2, | ||
const T & | c2, | ||
T & | x1, | ||
T & | x2 | ||
) |
Solve a system of two equations of the form and
.
a1,b1,c1,a2,b2,c2 | constants of the system |
x1 | the first solution |
x2 | the second solution |
true
if a solution is found References BALL::Maths::isZero().
Referenced by BALL::GetIntersection().