Classes |
class | fmat::QuaternionT< R > |
| Quaternions can be more efficient and more stable for a series of rotations than a corresponding 3x3 matrix, also more compact storage. More...
|
struct | fmat::fmat_internal::transformOps< R1, R2 > |
| Expanded calculations to facilitate optimized compilation of these operations for TransformT. More...
|
class | fmat::TransformT< R > |
| Efficient computation of affine transform operations. More...
|
Namespaces |
namespace | fmat |
| fixed-size matrix routines for high performance with small allocations
|
namespace | fmat::fmat_internal |
Typedefs |
typedef QuaternionT | fmat::Quaternion |
typedef TransformT | fmat::Transform |
Functions |
template<typename R > |
Matrix< 2, 2, R > | fmat::rotation2DT (R rad) |
| returns 2x2 rotation matrix (i.e. implied rotation about Z), for angle rad in radians
|
Matrix< 2, 2, fmatReal > | fmat::rotation2D (fmatReal rad) |
| returns 2x2 rotation matrix for angle rad (in radians) about Z axis
|
template<size_t N, typename R > |
Matrix< N, N, R > | fmat::rotationXN (R rad) |
| returns NxN rotation matrix for angle rad (in radians) about X axis (only uses upper 3x3)
|
Matrix< 3, 3, fmatReal > | fmat::rotationX (fmatReal rad) |
| returns 3x3 rotation matrix for angle rad (in radians) about X axis
|
template<size_t N, typename R > |
Matrix< N, N, R > | fmat::rotationYN (R rad) |
| returns NxN rotation matrix for angle rad (in radians) about Y axis (only uses upper 3x3)
|
Matrix< 3, 3, fmatReal > | fmat::rotationY (fmatReal rad) |
| returns 3x3 rotation matrix for angle rad (in radians) about Z axis
|
template<size_t N, typename R > |
Matrix< N, N, R > | fmat::rotationZN (R rad) |
| returns NxN rotation matrix for angle rad (in radians) about Z axis (only uses upper 2x2)
|
Matrix< 3, 3, fmatReal > | fmat::rotationZ (fmatReal rad) |
| returns 3x3 rotation matrix for angle rad (in radians) about Z axis
|
template<class Ra , class Rb > |
QuaternionT< typename
fmat_internal::promotion_trait
< Ra, Rb >::type > | fmat::crossProduct (const QuaternionT< Ra > &p, const QuaternionT< Rb > &q) |
| returns the rotation needed to transform p into q (this is the core of a 'slerp' implementation)
|
template<typename R > |
QuaternionT< R > | fmat::invert (const QuaternionT< R > &q) |
template<typename R > |
Matrix< 4, 4, R > | fmat::invertTransform (const Matrix< 4, 4, R > &t) |
| invert the matrix, taking advantage of known structure:
|
template<typename R > |
TransformT< R > | fmat::invert (const TransformT< R > &m) |
template<typename R > |
Column< 3, R > | fmat::ypr (const QuaternionT< R > &q) |
| Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order).
|
template<typename R > |
Column< 3, R > | fmat::ypr (const TransformT< R > &m) |
| Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order).
|
template<template< size_t, size_t, typename R > class M, typename R > |
Column< 3, typename
fmat_internal::unconst< R >
::type > | fmat::ypr (const M< 3, 3, R > &m) |
| Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order).
|
template<typename R > |
Column< 2, R > | fmat::segmentIntersection (const Column< 2, R > &p1, const Column< 2, R > &d1, const Column< 2, R > &p2, const Column< 2, R > &d2) |
| Returns the scaling factors for d1 and d2 through p1 and p2 respectively to reach common intersection.
|
template<typename R > |
R | fmat::rayIntersection (const Column< 2, R > &p1, const Column< 2, R > &d1, const Column< 2, R > &p2, const Column< 2, R > &d2) |
| Returns the scaling factor of d1 from p1 to reach intersection of d2 through p2.
|
template<typename R > |
Column< 2, R > | fmat::lineIntersection (const Column< 2, R > &p1, const Column< 2, R > &d1, const Column< 2, R > &p2, const Column< 2, R > &d2) |
| Returns the point of intersection of d1 through p1 and d2 through p2.
|
template<template< size_t, typename R > class V, typename R > |
Column< 2, typename V< 2, R >
::out_t > | fmat::normalLeft (const V< 2, R > &v) |
| Returns the orthogonal left vector (rotate by 90°).
|
template<template< size_t, typename R > class V, typename R > |
Column< 2, typename V< 2, R >
::out_t > | fmat::normalRight (const V< 2, R > &v) |
| Returns the orthogonal right vector (rotate by -90°).
|
Provides data structures and algorithms for spatial operations.