VR-Vantage 3.0 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Attributes
ssPlacement Class Reference

SigSim position and orientation base class. More...

Public Member Functions

 ssPlacement ()
 constructor
virtual ~ssPlacement ()
 destructor
void geocentricToGeodeticOrientation (double geocX, double geocY, double geocZ, double geocH, double geocP, double geocR, double &geodH, double &geodP, double &geodR)
 description: convert from geocentric orientation (body FRD w.r.t.
void geodeticToGeocentricOrientation (double geocX, double geocY, double geocZ, double geodH, double geodP, double geodR, double &geocH, double &geocP, double &geocR)
 description: convert from geodetic orientation (body FRD w.r.t.
::ellipsoidgetEllipsoid ()
 return pointer to the ellipsoid used for SigSim calculations double a = distance [m] of ellipsoid surface from ellipsoid center along direction to prime meridian at equator double b = distance [m] of ellipsoid surface from ellipsoid center along direction to east longitudinal meridian at equator double c = distance [m] of ellipsoid surface from ellipsoid center along direction to North geodetic pole int naxes = Number of axes actually used: 1=sphere (a=b=c, fill c at least); 2=biaxial ellipsoid ((a=b)!=c, fill b and c at least; 3=triaxial ellipsoid (a!=b!=c, fill all).
void GetRelativeLOS (double geoCentricPos1[3], double geoCentricOrient1[3], double geoCentricPos2[3], double geoCentricOrient2[3], double *relativeLOS)
 Gets the LOS angles and relative roll between two geocentric frames.
bool loadSigSimTrackfile (const char *dataDirectory, const char *trackFilename)
 load a SigSim style trackfile
::TRACKgetTrack ()
 return pointer to track data, or NULL if empty
unsigned int getNumTracks ()
 return the number of tracks
void setTrackGeodeticPos (double lat, double lon, double alt)
 set current track geodetic position (radians, radians, meters)
void getTrackGeodeticPos (double &lat, double &lon, double &alt)
 return current track geodetic position (radians, radians, meters)
void setTrackGeodeticRot (double h, double p, double r)
 set current body FRD orientation relative to local NED coords (radians)
double * setTrackGeodeticRot ()
 return current body FRD orientation relative to local NED coords (radians)

Protected Attributes

::ellipsoid m_ellipsoid
 ellipsoid model for SigSim coordinate conversions
::TRACKm_track
 trajectory object
unsigned int m_numTracks
 number of tracks read in
double m_trackGeodeticRot [3]
 latest geodetic orientation in radians about FRD (h,p,r order) from track file
double m_trackLatitude
 latest geodetic latitude from track file in radians, -PI/2=SouthPole, PI/2=NorthPole
double m_trackLongitude
 latest geodetic longitude from track file in radians, 0=Prime Meridian, 2*PI-(small amount)=(small amount) West of Prime Meridian
double m_trackAltitude
 latest geodetic altitude from track file in meters, above ellipsoid

Detailed Description

SigSim position and orientation base class.

Used to perform orientation transformations using SigSim API.

Constructor & Destructor Documentation

ssPlacement::ssPlacement ( )

constructor

virtual ssPlacement::~ssPlacement ( )
virtual

destructor

Returns
virtual

Member Function Documentation

void ssPlacement::geocentricToGeodeticOrientation ( double  geocX,
double  geocY,
double  geocZ,
double  geocH,
double  geocP,
double  geocR,
double &  geodH,
double &  geodP,
double &  geodR 
)

description: convert from geocentric orientation (body FRD w.r.t.

global XYZ=GCC) to geodetic orientation (body FRD w.r.t. local NED)

param: geocX - geocentric X coordinate in meters = distance [m] away from ellipsoid center along direction to prime meridian
param: geocY - geocentric Y coordinate in meters = distance [m] away from ellipsoid center along direction to east longitudinal meridian
param: geocZ - geocentric Z coordinate in meters = distance [m] away from ellipsoid center along direction to North geodetic pole
param: geocH - geocentric heading in radians = yaw = angle [rad] of 1st rotation : clockwise about body +z axis
param: geocP - geocentric pitch in radians = angle [rad] of 2nd rotation : clockwise about new body +y axis
param: geocR - geocentric roll in radians = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis
param: &geodH - geodetic heading in radians = yaw = angle [rad] of 1st rotation : clockwise about body +z axis (output)
param: &geodP - geodetic pitch in radians = angle [rad] of 2nd rotation : clockwise about new body +y axis (output)
param: &geodR - geodetic roll in radians = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis (output)

void ssPlacement::geodeticToGeocentricOrientation ( double  geocX,
double  geocY,
double  geocZ,
double  geodH,
double  geodP,
double  geodR,
double &  geocH,
double &  geocP,
double &  geocR 
)

description: convert from geodetic orientation (body FRD w.r.t.

local NED) to geocentric orientation (body FRD w.r.t. global XYZ=GCC)

param: geocX - geocentric X coordinate in meters = distance [m] away from ellipsoid center along direction to prime meridian
param: geocY - geocentric Y coordinate in meters = distance [m] away from ellipsoid center along direction to east longitudinal meridian
param: geocZ - geocentric Z coordinate in meters = distance [m] away from ellipsoid center along direction to North geodetic pole
param: geodH - geodetic heading in radians = yaw = angle [rad] of 1st rotation : clockwise about body +z axis
param: geodP - geodetic pitch in radians = angle [rad] of 2nd rotation : clockwise about new body +y axis
param: geodR - geodetic roll in radians = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis
param: &geocH - geocentric heading in radians = yaw = angle [rad] of 1st rotation : clockwise about body +z axis (output)
param: &geocP - geocentric pitch in radians = angle [rad] of 2nd rotation : clockwise about new body +y axis (output)
param: &geocR - geocentric roll in radians = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis (output)

::ellipsoid* ssPlacement::getEllipsoid ( )

return pointer to the ellipsoid used for SigSim calculations double a = distance [m] of ellipsoid surface from ellipsoid center along direction to prime meridian at equator double b = distance [m] of ellipsoid surface from ellipsoid center along direction to east longitudinal meridian at equator double c = distance [m] of ellipsoid surface from ellipsoid center along direction to North geodetic pole int naxes = Number of axes actually used: 1=sphere (a=b=c, fill c at least); 2=biaxial ellipsoid ((a=b)!=c, fill b and c at least; 3=triaxial ellipsoid (a!=b!=c, fill all).

Returns
ellipsoid - ellipsoid model for SigSim coordinate conversions
void ssPlacement::GetRelativeLOS ( double  geoCentricPos1[3],
double  geoCentricOrient1[3],
double  geoCentricPos2[3],
double  geoCentricOrient2[3],
double *  relativeLOS 
)

Gets the LOS angles and relative roll between two geocentric frames.

Parameters
geoCentricPos1
geoCentricOrient1
geoCentricPos2
geoCentricOrient2
relativeLOS
bool ssPlacement::loadSigSimTrackfile ( const char *  dataDirectory,
const char *  trackFilename 
)

load a SigSim style trackfile

Parameters
dataDirectory
trackFilename
Returns
bool
::TRACK* ssPlacement::getTrack ( )

return pointer to track data, or NULL if empty

Returns
TRACK - track data
unsigned int ssPlacement::getNumTracks ( )

return the number of tracks

Returns
unsigned int
void ssPlacement::setTrackGeodeticPos ( double  lat,
double  lon,
double  alt 
)

set current track geodetic position (radians, radians, meters)

Parameters
latin radians, -PI/2=SouthPole, PI/2=NorthPole
lonin radians, 0=Prime Meridian, 2*PI-(small amount)=(small amount) West of Prime Meridian
altin meters, above ellipsoid
void ssPlacement::getTrackGeodeticPos ( double &  lat,
double &  lon,
double &  alt 
)

return current track geodetic position (radians, radians, meters)

Parameters
latin radians, -PI/2=SouthPole, PI/2=NorthPole
lonin radians, 0=Prime Meridian, 2*PI-(small amount)=(small amount) West of Prime Meridian
altin meters, above ellipsoid
void ssPlacement::setTrackGeodeticRot ( double  h,
double  p,
double  r 
)

set current body FRD orientation relative to local NED coords (radians)

Parameters
h= angle [rad] of 1st rotation : clockwise about body +z axis
p= angle [rad] of 2nd rotation : clockwise about new body +y axis
r= angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis
double* ssPlacement::setTrackGeodeticRot ( )

return current body FRD orientation relative to local NED coords (radians)

Returns
double *

Member Data Documentation

::ellipsoid ssPlacement::m_ellipsoid
protected

ellipsoid model for SigSim coordinate conversions

::TRACK* ssPlacement::m_track
protected

trajectory object

unsigned int ssPlacement::m_numTracks
protected

number of tracks read in

double ssPlacement::m_trackGeodeticRot[3]
protected

latest geodetic orientation in radians about FRD (h,p,r order) from track file

double ssPlacement::m_trackLatitude
protected

latest geodetic latitude from track file in radians, -PI/2=SouthPole, PI/2=NorthPole

double ssPlacement::m_trackLongitude
protected

latest geodetic longitude from track file in radians, 0=Prime Meridian, 2*PI-(small amount)=(small amount) West of Prime Meridian

double ssPlacement::m_trackAltitude
protected

latest geodetic altitude from track file in meters, above ellipsoid


The documentation for this class was generated from the following file:


Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)