VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs | Enumerations | Functions
vlDcm.h File Reference

This file declares DtDcm and several helper classes and functions. More...

Go to the source code of this file.

Classes

class  DtDcm
 DtDcms are used to represent orientation for an object. More...
 

Macros

#define vlDcm_inl
 include all inlined methods More...
 

Typedefs

typedef DtVector32 DtBodyRates
 Angular rotation about body X, Y, Z axes. More...
 
typedef const DtDcmDtConstDcm
 This typedef is deprecated, please do not use. More...
 
typedef DtDcmDtDcmRef
 This typedef is deprecated, please do not use. More...
 

Enumerations

enum  generic_mm_multflag { TRANSPOSE_NONE = 0, TRANSPOSE_M1 = 1, TRANSPOSE_M2 = 2, TRANSPOSE_M1_AND_M2 = 3 }
 Generic DcmDcm Multiply routine. More...
 

Functions

void DtDcmDcmRotAxis (const DtDcm &a2ref, const DtDcm &b2ref, DtVector &n)
 Direction Cosine Matrix routines. More...
 
void DtDcmDcmRotAxis (const DtDcm &a2ref, const DtDcm &b2ref, DtVector32 &n)
 
void DtDcmIdentInit (DtDcm &m)
 
void DtDcmFixMatrix (DtDcm &mat, int axis)
 make orthonormal, pick most important. axis More...
 
double DtDcmDeterminant (const DtDcm &m)
 
void DtDcmAdd (const DtDcm &m1, const DtDcm &m2, DtDcm &result)
 
void DtDcmSub (const DtDcm &m1, const DtDcm &m2, DtDcm &result)
 
void DtDcmDcmMul (const DtDcm &m1, const DtDcm &m2, DtDcm &result)
 
void DtDcmTranspose (const DtDcm &m, DtDcm &result)
 
void DtDcmAdjugate (const DtDcm &m, DtDcm &result)
 
void DtDcmInverse (const DtDcm &m, DtDcm &result)
 
double DtDcmDcmRotAngle (const DtDcm &a, const DtDcm &b, double precision=1e-12)
 
void DtM_Init (const DtDcm &input, DtDcm &result, int flag)
 Generic initialize matrix routines. More...
 
void DtSetSym (DtDcm &v, double aa, double ab, double ac, double bb, double bc, double cc)
 
void DtCreateCross (const DtVector &r, DtDcm &ans)
 
void DtCreateCross (const DtVector32 &r, DtDcm &ans)
 
void DtM (const DtVector &v, DtDcm &m)
 
void DtM (const DtVector32 &v, DtDcm &m)
 
void DtRotate (DtDcm &ans, const DtVector &direction, double theta)
 
void DtRotate (DtDcm &ans, const DtVector32 &direction, double theta)
 
void DtDcmScale (const DtDcm &mat, double scale_factor, DtDcm &result)
 Scales a DtDcm. More...
 
void DtDcmVecMul (const DtDcm &m, const DtVector &v, DtVector &result)
 
void DtDcmVecMul (const DtDcm &m, const DtVector32 &v, DtVector32 &result)
 
void DtDcmRotInit (DtDcm &m, double theta, int rot_axis)
 Initialize a DtDcm to be a rotation DtDcm. More...
 
void DtDcmRotInit2 (DtDcm &m, double sin_theta, int rot_axis)
 Initializes a DtDcm to be a rotation DtDcm. More...
 
void DtDcmTrigInit (DtDcm &m, double sin_theta, double cos_theta, int rot_axis)
 Initializes a DtDcm to be a rotation DtDcm. More...
 
void DtDcmForm (const double *axis, double angle, DtDcm &c, double *sin_ang, double *cos_ang)
 
void DtTbToMat (const DtTaitBryan &tb, DtDcm &HcW)
 Convert a TaitBryan to a DtDcm. More...
 
void DtDcmLevelInit (DtDcm &m, const DtVector &v)
 Takes a normalized vector and forms a DtDcm which will transform from a coordinate system whose Y axis is the input vector and whose X axis is parallel to the ground to the coordinate system the input vector is expressed in. More...
 
void DtDcmLevelInit (DtDcm &m, const DtVector32 &v)
 
void DtBodyToMat (DtBodyRates av, const DtDcm &HcW, DtDcm &cDot)
 Convert Body Rates to DCM. More...
 
DtDirectedRotRate DtDirectRotRate (const DtVector &pqr)
 Directed rotation rates. More...
 
DtDirectedRotRate DtDirectRotRate (const DtVector32 &pqr)
 
void DtMakeRotationDcm (const DtDirectedRotRate &drr, double dt, DtDcm &m)
 
double DtDcmDcmRotTrace (const DtDcm &a, const DtDcm &b)
 Returns the trace of the rotation DtDcm, R, between between matrices A and B. More...
 
double DtMM_Mult (const DtDcm &m1, const DtDcm &m2, DtDcm &result, generic_mm_multflag flag=TRANSPOSE_NONE)
 
void DtDcmDump (const char *str, const DtDcm &mat)
 This function is deprecated, please use DtDcm.print() More...
 
void DtDcmFromQuaternion (DtDcm &m, const DtQuaternion *q)
 This function is deprecated, please use DtDcm::(const DtQuaternion&q) instead. More...
 
int DtDcmCheck (const DtDcm &m)
 This method is deprecated, please use DtDcm::isOrthonormal. More...
 
void DtDcmCopy (const DtDcm &src, DtDcm &dest)
 This method is deprecated, please use the copy ctor, or assignment operator for DtDcm. More...
 
void DtDcmInit (DtDcm &m)
 This method is deprecated, please use dcm.setToZero() More...
 

Detailed Description

This file declares DtDcm and several helper classes and functions.

Macro Definition Documentation

#define vlDcm_inl

include all inlined methods

Typedef Documentation

Angular rotation about body X, Y, Z axes.

typedef const DtDcm& DtConstDcm

This typedef is deprecated, please do not use.

typedef DtDcm& DtDcmRef

This typedef is deprecated, please do not use.

Enumeration Type Documentation

Generic DcmDcm Multiply routine.

Enumerator
TRANSPOSE_NONE 
TRANSPOSE_M1 
TRANSPOSE_M2 
TRANSPOSE_M1_AND_M2 

Function Documentation

void DtBodyToMat ( DtBodyRates  av,
const DtDcm HcW,
DtDcm cDot 
)

Convert Body Rates to DCM.

Body rates p,q,r are about X,Y,Z respectively. They are expected in radians per second. Direction Cosine matrix; From Hull to World

void DtCreateCross ( const DtVector r,
DtDcm ans 
)
void DtCreateCross ( const DtVector32 r,
DtDcm ans 
)
void DtDcmAdd ( const DtDcm m1,
const DtDcm m2,
DtDcm result 
)
void DtDcmAdjugate ( const DtDcm m,
DtDcm result 
)
int DtDcmCheck ( const DtDcm m)

This method is deprecated, please use DtDcm::isOrthonormal.

void DtDcmCopy ( const DtDcm src,
DtDcm dest 
)

This method is deprecated, please use the copy ctor, or assignment operator for DtDcm.

void DtDcmDcmMul ( const DtDcm m1,
const DtDcm m2,
DtDcm result 
)
double DtDcmDcmRotAngle ( const DtDcm a,
const DtDcm b,
double  precision = 1e-12 
)
void DtDcmDcmRotAxis ( const DtDcm a2ref,
const DtDcm b2ref,
DtVector n 
)

Direction Cosine Matrix routines.

void DtDcmDcmRotAxis ( const DtDcm a2ref,
const DtDcm b2ref,
DtVector32 n 
)
double DtDcmDcmRotTrace ( const DtDcm a,
const DtDcm b 
)

Returns the trace of the rotation DtDcm, R, between between matrices A and B.

If A is a DCM between frame body and world, and B is that same frame rotated through angle theta about an arbitrary axis, then trace of R [where B = A * R, or R = inv(A) * B] is 2 * cos(theta) + 1.

double DtDcmDeterminant ( const DtDcm m)
void DtDcmDump ( const char *  str,
const DtDcm mat 
)

This function is deprecated, please use DtDcm.print()

void DtDcmFixMatrix ( DtDcm mat,
int  axis 
)

make orthonormal, pick most important. axis

void DtDcmForm ( const double axis,
double  angle,
DtDcm c,
double sin_ang,
double cos_ang 
)
Parameters
sin_angis modified
cos_angis modified
void DtDcmFromQuaternion ( DtDcm m,
const DtQuaternion q 
)

This function is deprecated, please use DtDcm::(const DtQuaternion&q) instead.

void DtDcmIdentInit ( DtDcm m)
void DtDcmInit ( DtDcm m)

This method is deprecated, please use dcm.setToZero()

void DtDcmInverse ( const DtDcm m,
DtDcm result 
)
void DtDcmLevelInit ( DtDcm m,
const DtVector v 
)

Takes a normalized vector and forms a DtDcm which will transform from a coordinate system whose Y axis is the input vector and whose X axis is parallel to the ground to the coordinate system the input vector is expressed in.

void DtDcmLevelInit ( DtDcm m,
const DtVector32 v 
)
void DtDcmRotInit ( DtDcm m,
double  theta,
int  rot_axis 
)

Initialize a DtDcm to be a rotation DtDcm.

Rotation is counterclockwise when viewed along a positive axis.

void DtDcmRotInit2 ( DtDcm m,
double  sin_theta,
int  rot_axis 
)

Initializes a DtDcm to be a rotation DtDcm.

Rotation is counterclockwise when viewed along a positive axis. The sine of the angle is given, instead of the angle itself.

void DtDcmScale ( const DtDcm mat,
double  scale_factor,
DtDcm result 
)

Scales a DtDcm.

void DtDcmSub ( const DtDcm m1,
const DtDcm m2,
DtDcm result 
)
void DtDcmTranspose ( const DtDcm m,
DtDcm result 
)
void DtDcmTrigInit ( DtDcm m,
double  sin_theta,
double  cos_theta,
int  rot_axis 
)

Initializes a DtDcm to be a rotation DtDcm.

Rotation is counterclockwise when viewed along a positive axis. The sine of the angle is given, instead of the angle itself.

void DtDcmVecMul ( const DtDcm m,
const DtVector v,
DtVector result 
)
void DtDcmVecMul ( const DtDcm m,
const DtVector32 v,
DtVector32 result 
)
DtDirectedRotRate DtDirectRotRate ( const DtVector pqr)

Directed rotation rates.

DtDirectedRotRate DtDirectRotRate ( const DtVector32 pqr)
void DtM ( const DtVector v,
DtDcm m 
)
void DtM ( const DtVector32 v,
DtDcm m 
)
void DtM_Init ( const DtDcm input,
DtDcm result,
int  flag 
)

Generic initialize matrix routines.

void DtMakeRotationDcm ( const DtDirectedRotRate drr,
double  dt,
DtDcm m 
)
double DtMM_Mult ( const DtDcm m1,
const DtDcm m2,
DtDcm result,
generic_mm_multflag  flag = TRANSPOSE_NONE 
)
void DtRotate ( DtDcm ans,
const DtVector direction,
double  theta 
)
void DtRotate ( DtDcm ans,
const DtVector32 direction,
double  theta 
)
void DtSetSym ( DtDcm v,
double  aa,
double  ab,
double  ac,
double  bb,
double  bc,
double  cc 
)
void DtTbToMat ( const DtTaitBryan tb,
DtDcm HcW 
)

Convert a TaitBryan to a DtDcm.


Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)