![]() |
VR-Link API Documentation for HLA Evolved
|
The matrix library contains classes and functions for common math operations used in modeling and simulation. More...
Collaboration diagram for The VR-Link Math Library (matrix):Classes | |
| class | Dt3dBoundingVolume |
| A 3d bounding volume. More... | |
| class | Dt3dChord |
| A Dt3dChord is a finite line segment in 3-space, represented by its two 3d end points. More... | |
| class | Dt3dExtent |
| The Dt3dExtent represents an axis-aligned 3d bounding box. More... | |
| class | Dt4dPoint |
| Four-dimensional point, often used with homogeneous coordinates. More... | |
| class | DtCoordTransform |
| DtCoordTransform is used to transform locations, vectors and orientations from one Cartesian coordinate system to another. More... | |
| class | DtCoordTranslation |
| This class is used to translate between two points in Cartesian coordinate system. More... | |
| class | DtDirectedRotRate |
| Rotation rate given by single rate and axis of rotation. More... | |
| class | DtGeodeticCoord |
| Instances of DtGeodeticCoord are used to explicitly represent Geodetic coordinates. More... | |
| class | DtSpheroid |
| DtSpheroid represents an ellipsoid model of the earth. More... | |
| class | DtMapDatum |
| DtMapDatums represent a spheroid model of the earth, with a data shift to facilitate easy conversion to geocentric systems. More... | |
| class | DtReferenceEllipsoid |
| Instances of this class are used to store a particular mapDatum and perform useful calculations based on this map -- specifically it can be used to convert between geodetic and geocentric coordinates using the given reference ellipsoid (which is defined by a DtMapDatum). More... | |
| class | DtUtmCoord |
| Instances of DtUtmCoord are used to represent UTM coordinates. More... | |
| class | DtDegMinSec |
| DtDegMinSec is a flyweight data class used to represent a a complex location for latitude or longitude in Degrees, Minutes, Seconds, and Direction where positive direction is north and west. More... | |
| class | DtUtmReferencePoint |
| DtUtmReferencePoints are used to represent an independent reference point for a UTM coordinate system. More... | |
| class | DtDcm |
| DtDcms are used to represent orientation for an object. More... | |
| class | DtQuaternion |
| Quaternions are used to represent orientation of an object. More... | |
| class | DtTaitBryan |
| DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles. More... | |
| class | DtVector |
| DtVectors represent vectors in 3-d space, X, Y, Z. More... | |
| class | DtNetVector32 |
| A Network Byte Order layout using 32 bit floats for DtVector. More... | |
| class | DtNetVector64 |
| A Network Byte Order layout using 64 bit floats for DtVector. More... | |
Files | |
| file | 3dBoundingVolume.h |
This file declares Dt3dBoundingVolume. | |
| file | 3dChord.h |
This file declares Dt3dChord. | |
| file | 3dExtent.h |
This file declares Dt3dExtent. | |
| file | 3dPoint.h |
This file declares Dt3dPoint. | |
| file | 4dPoint.h |
This file declares Dt4dPoint. | |
| file | coordTransform.h |
This file provides a declaration for DtCoordTransform. | |
| file | coordTranslation.h |
This file provides a declaration of the class DtCoordTranslation. | |
| file | dcm.h |
This file is deprecated - please see vlDcm.h. | |
| file | directRotRate.h |
This file declares DtDirectedRotRate. | |
| file | Euler.h |
This file is deprecated - please see vlTaitBryan.h. | |
| file | geodCoord.h |
This file provides a definition of GeodeticCoords and several helper functions. | |
| file | LibMatrix.h |
This file exists to provide backwards compatibility only, and may be removed in a future release. | |
| file | mapDatum.h |
This file contains the declaration of the DtMapDatum class as well as commonly used DtMapDatums. | |
| file | mathTypes.h |
This file has been deprecated, please use vlMath.h. | |
| file | refEllipsoid.h |
This file contains the declaration of DtReferenceEllipsoid and several helper functions. | |
| file | taitBryan.h |
This file is deprecated - please see vlTaitBryan.h. | |
| file | topoCoord.h |
This file contains useful functions for geocentric to topographic conversions. | |
| file | utmCoord.h |
This file declares DtUtmCoord. | |
| file | utmRefPt.h |
This file declares DtDegMinSec and DtUtmReferencePoint. | |
| file | vlDcm.h |
This file declares DtDcm and several helper classes and functions. | |
| file | vlMath.h |
This file defines math constants and methods which may be useful in simulations. | |
| file | vlQuaternion.h |
This file contains the definition of DtQuaternion as well as many functions which operate on DtQuaternions. | |
| file | vlTaitBryan.h |
This file declares DtTaitBryan. | |
| file | vlVector.h |
This file declares DtVector. | |
Enumerations | |
| enum | DtVectorOffset { DtX, DtY, DtZ } |
| A simple enumeration to represent Vector Offsets. More... | |
Functions | |
| void | DtGocentricToMgFlatEarth (const DtVector &in, DtVector &out, const DtFloat64 &refLat, DtFloat64 &refLon) const |
| Preforms Multigen Flat Earth transforms from Geocentric Coordinates. | |
| void | DtEulerToEuler (const DtTaitBryan &in, const DtDcm &in2out, DtTaitBryan *out) |
| Given Euler angles with respect to reference frame "in", and the transformation matrix between frame "in" and frame "out", produce the Euler angles with respect to reference frame "out". | |
| std::ostream & | operator<< (std::ostream &str, const DtTaitBryan &sr) |
| DtVector | operator+ (const DtVector &v1, const DtVector &v2) |
| implements v1 + v2 | |
| DtVector | operator- (const DtVector &v1, const DtVector &v2) |
| implemented v1 - v2 | |
| void | DtVecScale (const DtVector &v, double scale_factor, DtVector &result) |
| void | DtVecNeg (const DtVector &v1, DtVector &result) |
| double | DtVecCosProd (const DtVector &v1, const DtVector &v2) |
| result = -vec | |
| double | DtVecBoxProd (const DtVector &v1, const DtVector &v2, const DtVector &v3) |
| sweep v1 to v2 to v3 | |
| void | DtVecDcmMul (const DtVector &v, const DtDcm &m, DtVector &result) |
| Multiplies a vector by a matrix and stores the result. | |
| void | DtVV_Product (const DtVector &a, const DtVector &b, DtDcm &ans) |
| double | DtVecInfNorm (const DtVector &v1) |
| void | DtVecInit (DtVector &v) |
| void | DtVecCopy (const DtVector &from, DtVector &to) |
| Initialize to all zeros. | |
| int | DtVecCheck (const DtVector &v) |
| void | DtVecNormalize (const DtVector &v, DtVector &result) |
| void | DtVecCrossProd (const DtVector &v1, const DtVector &v2, DtVector &result) |
| double | DtVecDotProd (const DtVector &v1, const DtVector &v2) |
| void | DtVecDump (const char *str, const DtVector &v) |
| void | DtVecSub (const DtVector &v1, const DtVector &v2, DtVector &result) |
| void | DtVecAdd (const DtVector &v1, const DtVector &v2, DtVector &result) |
| DtVector | DtVelocityFromAToB (const DtVector &a, const DtVector &b, double time) |
| DtVelocityFromAToB() Returns velocity you would need to be traveling at to get from point A to point B in t seconds. | |
| double | DtHeadingFromAToB (const DtVector &a, const DtVector &b) |
| Expects UTM coordinates. | |
| double | DtDistance (const DtVector &p1, const DtVector &p2) |
| double | DtDistSqr (const DtVector &p1, const DtVector &p2) |
Variables | |
| DtThreeIndex | DtLevi_Civita |
| void | DtEuler_to_BodyToRef (const DtTaitBryan &euler, DtDcm &body2ref) |
| void | DtEuler_to_RefToBody (const DtTaitBryan &euler, DtDcm &ref2body) |
| void | DtBodyToRef_to_Euler (const DtDcm &body2ref, DtTaitBryan *euler) |
| void | DtRefToBody_to_Euler (const DtDcm &ref2body, DtTaitBryan *euler) |
The matrix library contains classes and functions for common math operations used in modeling and simulation.
| enum DtVectorOffset |
| void DtBodyToRef_to_Euler | ( | const DtDcm & | body2ref, |
| DtTaitBryan * | euler | ||
| ) |
Given the transformation matrix that converts from a body frame to a reference frame (or visa-versa), produce the TaitBryan angles between the body and the reference frames.
| double DtDistance | ( | const DtVector & | p1, |
| const DtVector & | p2 | ||
| ) |
| void DtEuler_to_BodyToRef | ( | const DtTaitBryan & | euler, |
| DtDcm & | body2ref | ||
| ) |
Given TaitBryan angles between a body and a reference frame, produce the transformation matrix that converts from the body frame to the reference frame (or visa-versa).
| void DtEuler_to_RefToBody | ( | const DtTaitBryan & | euler, |
| DtDcm & | ref2body | ||
| ) |
Given TaitBryan angles between a body and a reference frame, produce the transformation matrix that converts from the body frame to the reference frame (or visa-versa).
| void DtEulerToEuler | ( | const DtTaitBryan & | in, |
| const DtDcm & | in2out, | ||
| DtTaitBryan * | out | ||
| ) |
Given Euler angles with respect to reference frame "in", and the transformation matrix between frame "in" and frame "out", produce the Euler angles with respect to reference frame "out".
| void DtGocentricToMgFlatEarth | ( | const DtVector & | in, |
| DtVector & | out, | ||
| const DtFloat64 & | refLat, | ||
| DtFloat64 & | refLon | ||
| ) | const [inline] |
Preforms Multigen Flat Earth transforms from Geocentric Coordinates.
The Multigen Flat Earth projection is a bit of a special case (its not treated in the same way a UTM projection is). It assumes the earth is spherical, with the radius given below. This function converts a given location from geocentric to flat-earth coordinates.
References DtGeodeticCoord::alt(), DtRad2Deg(), DtGeodeticCoord::lat(), DtGeodeticCoord::lon(), M_PI, DtGeodeticCoord::setGeocentric(), DtVector::setX(), DtVector::setY(), and DtVector::setZ().
| double DtHeadingFromAToB | ( | const DtVector & | a, |
| const DtVector & | b | ||
| ) |
Expects UTM coordinates.
Standing at point A, returns the heading along which you would need to be looking to be facing point B.
| void DtRefToBody_to_Euler | ( | const DtDcm & | ref2body, |
| DtTaitBryan * | euler | ||
| ) |
Given the transformation matrix that converts from a body frame to a reference frame (or visa-versa), produce the TaitBryan angles between the body and the reference frames.
| double DtVecBoxProd | ( | const DtVector & | v1, |
| const DtVector & | v2, | ||
| const DtVector & | v3 | ||
| ) |
sweep v1 to v2 to v3
| int DtVecCheck | ( | const DtVector & | v | ) |
Initialize to all zeros.
| double DtVecCosProd | ( | const DtVector & | v1, |
| const DtVector & | v2 | ||
| ) |
result = -vec
cos of angle between v1 and V2
| void DtVecCrossProd | ( | const DtVector & | v1, |
| const DtVector & | v2, | ||
| DtVector & | result | ||
| ) |
| void DtVecDcmMul | ( | const DtVector & | v, |
| const DtDcm & | m, | ||
| DtVector & | result | ||
| ) |
Multiplies a vector by a matrix and stores the result.
| double DtVecDotProd | ( | const DtVector & | v1, |
| const DtVector & | v2 | ||
| ) |
| double DtVecInfNorm | ( | const DtVector & | v1 | ) |
| void DtVecNormalize | ( | const DtVector & | v, |
| DtVector & | result | ||
| ) |
| void DtVecScale | ( | const DtVector & | v, |
| double | scale_factor, | ||
| DtVector & | result | ||
| ) |
| DtVector DtVelocityFromAToB | ( | const DtVector & | a, |
| const DtVector & | b, | ||
| double | time | ||
| ) |
DtVelocityFromAToB() Returns velocity you would need to be traveling at to get from point A to point B in t seconds.
Independent of coordinate system.
| void DtVV_Product | ( | const DtVector & | a, |
| const DtVector & | b, | ||
| DtDcm & | ans | ||
| ) |
| std::ostream& operator<< | ( | std::ostream & | str, |
| const DtTaitBryan & | sr | ||
| ) |