Eaagles::Simulation::Gimbal Class Reference

Inherits Eaagles::Simulation::System.

Inheritance diagram for Eaagles::Simulation::Gimbal:

Inheritance graph
[legend]
Collaboration diagram for Eaagles::Simulation::Gimbal:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Type {
  INVALID = -1, ANY = 0, NAVAID = 2, WAYPOINT = 3,
  AIRPORT = 10, RUNWAY = 11, ILS = 12, MECHANICAL,
  ELECTRONIC
}
enum  ServoMode { FREEZE_SERVO, RATE_SERVO, POSITION_SERVO }
enum  { AZ_IDX, ELEV_IDX, ROLL_IDX }

Public Member Functions

 Gimbal ()
bool isGimbalType (const Type tt) const
Type getGimbalType () const
ServoMode getServoMode () const
const osg::Vec3 & getPosition () const
LCreal getAzimuth () const
LCreal getElevation () const
LCreal getRoll () const
LCreal getAzimuthD () const
LCreal getElevationD () const
LCreal getRollD () const
virtual bool isPositioned (const LCreal tol=-1) const
virtual bool isAtLimits () const
const osg::Vec3 & getRates () const
LCreal getAzimuthRate () const
LCreal getElevationRate () const
LCreal getRollRate () const
bool isFastSlewMode () const
bool isSlowSlewMode () const
const osg::Vec3 & getCmdPosition () const
LCreal getCmdAz () const
LCreal getCmdElev () const
LCreal getCmdRoll () const
const osg::Vec3 & getCmdRates () const
LCreal getCmdAzRate () const
LCreal getCmdElevRate () const
LCreal getCmdRollRate () const
const osg::Vec3 & getLocation () const
const osg::Matrix & getMatrix () const
void getAzimuthLimits (LCreal *const leftLim, LCreal *const rightLim) const
void getElevationLimits (LCreal *const lowerLim, LCreal *const upperLim) const
void getRollLimits (LCreal *const lowerLim, LCreal *const upperLim) const
void getMaxRates (LCreal *const azMaxRate, LCreal *const ezMaxRate, LCreal *const rollMaxRate) const
virtual unsigned int processPlayersOfInterest (Basic::LcPairStream *const poi)
bool isTerrainOccultingEnabled () const
virtual bool setTerrainOccultingEnabled (const bool flg)
virtual bool setServoMode (const ServoMode m)
virtual bool setPosition (const LCreal azim, const LCreal elev)
virtual bool setPosition (const LCreal azim, const LCreal elev, const LCreal roll)
virtual bool setMaxRates (const LCreal azMaxRate, const LCreal ezMaxRate)
virtual bool setMaxRates (const LCreal azMaxRate, const LCreal ezMaxRate, const LCreal rollMaxRate)
virtual bool setCmdPos (const osg::Vec2 &p)
virtual bool setCmdPos (const osg::Vec3 &p)
virtual bool setCmdPos (const LCreal az, const LCreal el, const LCreal roll=0)
virtual bool setCmdRate (const osg::Vec2 &r)
virtual bool setCmdRate (const osg::Vec3 &r)
virtual bool setCmdRate (const LCreal azRate, const LCreal elRate)
virtual bool setCmdRate (const LCreal azRate, const LCreal elRate, const LCreal rollRate)
virtual bool setAzimuthLimits (const LCreal leftLim, const LCreal rightLim)
virtual bool setElevationLimits (const LCreal lowerLim, const LCreal upperLim)
virtual bool setRollLimits (const LCreal lowerLim, const LCreal upperLim)
virtual bool setLocation (const LCreal x, const LCreal y, const LCreal z)
virtual bool setFastSlewMode (const bool flg)
virtual bool onRfEmissionEvent (Emission *const)
virtual bool setSlotType (const Basic::LcString *const msg)
virtual bool setSlotLocation (const Basic::LcList *const msg)
virtual bool setSlotPosition (const Basic::LcList *const msg)
virtual bool setSlotPosAzimuth (const Basic::LcAngle *const msg)
virtual bool setSlotPosElevation (const Basic::LcAngle *const msg)
virtual bool setSlotPosRoll (const Basic::LcAngle *const msg)
virtual bool setSlotAzimuthLimits (const Basic::LcList *const msg)
virtual bool setSlotAzimuthLimitLeft (const Basic::LcAngle *const msg)
virtual bool setSlotAzimuthLimitRight (const Basic::LcAngle *const msg)
virtual bool setSlotElevationLimits (const Basic::LcList *const msg)
virtual bool setSlotElevationLower (const Basic::LcAngle *const msg)
virtual bool setSlotElevationUpper (const Basic::LcAngle *const msg)
virtual bool setSlotRollLimits (const Basic::LcList *const msg)
virtual bool setSlotRollLimitLower (const Basic::LcAngle *const msg)
virtual bool setSlotRollLimitUpper (const Basic::LcAngle *const msg)
virtual bool setSlotMaxRates (const Basic::LcList *const msg)
virtual bool setSlotMaxRateAzimuth (const Basic::LcAngle *const msg)
virtual bool setSlotMaxRateElevation (const Basic::LcAngle *const msg)
virtual bool setSlotMaxRateRoll (const Basic::LcAngle *const msg)
virtual bool setSlotCmdPos (const Basic::LcList *const msg)
virtual bool setSlotCmdPosAzimuth (const Basic::LcAngle *const msg)
virtual bool setSlotCmdPosElevation (const Basic::LcAngle *const msg)
virtual bool setSlotCmdPosRoll (const Basic::LcAngle *const msg)
virtual bool setSlotCmdRate (const Basic::LcList *const msg)
virtual bool setSlotCmdRateAzimuth (const Basic::LcAngle *const msg)
virtual bool setSlotCmdRateElevation (const Basic::LcAngle *const msg)
virtual bool setSlotCmdRateRoll (const Basic::LcAngle *const msg)
virtual bool setSlotTerrainOcculting (const Basic::LcNumber *const msg)
virtual bool event (const int event, Basic::LcObject *const obj=0)
virtual void reset ()

Static Public Member Functions

static void limitVec (osg::Vec2 &vec, const osg::Vec2 &lim)
static void limitVec (osg::Vec3 &vec, const osg::Vec3 &lim)
static void limitVec (osg::Vec2 &vec, const osg::Vec2 &ll, const osg::Vec2 &ul)
static void limitVec (osg::Vec3 &vec, const osg::Vec3 &ll, const osg::Vec3 &ul)

Static Public Attributes

static const unsigned int MAX_TARGETS = 1000

Protected Member Functions

virtual void servoController (const LCreal dt=0.0)
virtual bool setType (const Type rt)
virtual void updateMatrix ()
TdbgetCurrentTDB ()
virtual void dynamics (const LCreal dt)

Private Attributes

Type type
ServoMode servoMode
bool fastSlew
osg::Matrix mm
osg::Vec3 pos
osg::Vec3 rate
osg::Vec3 cmdPos
osg::Vec3 cmdRate
osg::Vec3 location
bool atLimit
osg::Vec3 maxRate
osg::Vec3 lowLimits
osg::Vec3 highLimits
osg::Vec3 initPos
osg::Vec3 initCmdPos
osg::Vec3 initCmdRate
bool terrainOcculting
Tdbtdb [3]

Static Private Attributes

static const LCreal defaultTolerance

Classes

class  Tdb
 as seen by this gimbal (seeker/antenna) More...

Detailed Description

Generic class for all gimbals, antennas, seekers, etc

    Notes:
      The matrix (see below) is a composite of this gimbal's angles and
      all of parent gimbals' angles. Therefore, this matrix transforms
      a vector to our player's coordinate system and not to a parent gimbal's
      coordinate system.

    Form name: Gimbal

    Slots:

       type              (Basic::LcString)  Physical gimbal type: "mechanical" or "electronic"

       location          (Basic::LcList)    Relative location vector (meters) [ x y z ]

       initPosition      (Basic::LcList)    Initial positon vector (radians) [ az el roll ]
       initPosAzimuth    (Basic::LcAngle)   Initial azimuth positon
       initPosElevation  (Basic::LcAngle)   Initial elevation positon
       "initPosRoll      (Basic::LcAngle)   Initial roll positon

       azimuthLimits     (Basic::LcList)    Lower & upper azimuth limits (radians) [ left right ][ range: -pi to pi; else unlimited ]
       azimuthLimitLeft  (Basic::LcAngle)   Left azimuth limit[ range: -pi to pi; else unlimited ]
       azimuthLimitRight (Basic::LcAngle)   Right azimuth limit[ range: -pi to pi; else unlimited ]
       elevationLimits   (Basic::LcList)    Lower & upper elevation limits (radians) [ lower upper ][ range: -pi to pi; else unlimited ]

       elevationLimitLower (Basic::LcAngle) Lower elevation limit[ range: -pi to pi; else unlimited ]
       elevationLimitUpper (Basic::LcAngle) Upper elevation limit[ range: -pi to pi; else unlimited ]

       rollLimits        (Basic::LcAngle)   Roll limit vector (radians) [ lower upper ][ range: -pi to pi; else unlimited ]
       rollLimitLower    (Basic::LcAngle)   Lower roll limit[ range: -pi to pi; else unlimited ]
       rollLimitUpper    (Basic::LcAngle)   Upper roll limit[ range: -pi to pi; else unlimited ]

       maxRates          (Basic::LcList)    Max mechanical rate vector (rad/sec) [ az el roll ]
       maxRateAzimuth    (Basic::LcAngle)   Max "mechanical" azimuth rate    (Basic::LcAngle/sec)
       maxRateElevation  (Basic::LcAngle)   Max "mechanical" elevation rate  (Basic::LcAngle/sec)
       maxRateRoll       (Basic::LcAngle)   Max "mechanical" roll rate       (Basic::LcAngle/sec)

       commandPosition   (Basic::LcList)    Commanded position vector (radians) [ az el roll ] (sets POSITION_SERVO)
       commandPosAzimuth (Basic::LcAngle)   Commanded azimtuh position    (sets POSITION_SERVO)
       commandPosElevation (Basic::LcAngle) Commanded elevation position  (sets POSITION_SERVO)
       commandPosRoll    (Basic::LcAngle)   Commanded roll position       (sets POSITION_SERVO)

       commandRates      (Basic::LcList)    Commanded rate vector (rad/sec) [ az el roll ] (sets RATE_SERVO)
       commandRateAzimuth (Basic::LcAngle)  Commanded azimuth rate     (Basic::LcAngle/sec) (sets RATE_SERVO)
       commandRateElevation (Basic::LcAngle) Commanded elevation rate  (Basic::LcAngle/sec) (sets RATE_SERVO)
       commandRateRoll   (Basic::LcAngle)   Commanded roll rate        (Basic::LcAngle/sec) (sets RATE_SERVO)

       terrainOcculting  (Basic::LcNumber)  Target terrain occulting enabled flag (default: false)

    Events:
       RF_EMISSION       (Emission)  Default handler: Pass emissions to subcomponents.
    /pre>


Member Enumeration Documentation

enum Eaagles::Simulation::Gimbal::Type

Servo type.

Enumerator:
INVALID 
ANY 
NAVAID 
WAYPOINT 
AIRPORT 
RUNWAY 
ILS 
MECHANICAL  Mechanical gimbal.
ELECTRONIC  Electronic servo (e.g., phased array).

enum Eaagles::Simulation::Gimbal::ServoMode

Servo Mode.

Enumerator:
FREEZE_SERVO  Servo is frozen.
RATE_SERVO  Rate servo.
POSITION_SERVO  Position servo.

anonymous enum

Position/velocy vector indexes.

Enumerator:
AZ_IDX  Azimuth index.
ELEV_IDX  Elevation index.
ROLL_IDX  Roll index.


Constructor & Destructor Documentation

Eaagles::Simulation::Gimbal::Gimbal (  ) 

Public section.


Member Function Documentation

bool Eaagles::Simulation::Gimbal::isGimbalType ( const Type  tt  )  const [inline]

Returns 'true' if servo is of type 'tt'.

Type Eaagles::Simulation::Gimbal::getGimbalType (  )  const [inline]

Returns the type of servo: { MECHANICAL, ELECTRONIC }.

ServoMode Eaagles::Simulation::Gimbal::getServoMode (  )  const [inline]

Returns the servo mode: { FREEZE_SERVO, RATE_SERVO, POSITION_SERVO }.

const osg::Vec3& Eaagles::Simulation::Gimbal::getPosition (  )  const [inline]

Returns the current position vector [ az el roll ] (radians).

LCreal Eaagles::Simulation::Gimbal::getAzimuth (  )  const [inline]

Returns current azimuth position (rad).

LCreal Eaagles::Simulation::Gimbal::getElevation (  )  const [inline]

Returns current elevation position (rad).

LCreal Eaagles::Simulation::Gimbal::getRoll (  )  const [inline]

Returns current roll position (rad).

LCreal Eaagles::Simulation::Gimbal::getAzimuthD (  )  const

Returns current azimuth position (deg).

LCreal Eaagles::Simulation::Gimbal::getElevationD (  )  const

Returns current elevation position (deg).

LCreal Eaagles::Simulation::Gimbal::getRollD (  )  const

Returns current roll position (deg).

bool Eaagles::Simulation::Gimbal::isPositioned ( const LCreal  tol = -1  )  const [virtual]

Returns true if the gimbal position is at the commanded position, with a position tolerance of 'tol' radians. The default tolerance is 1/10th of a degree.

bool Eaagles::Simulation::Gimbal::isAtLimits (  )  const [virtual]

Returns true if the gimbal is at a 'phyisical' limit.

const osg::Vec3& Eaagles::Simulation::Gimbal::getRates (  )  const [inline]

Returns the current rate vector (rad/sec).

LCreal Eaagles::Simulation::Gimbal::getAzimuthRate (  )  const [inline]

Returns current azimuth rate (rad/sec).

LCreal Eaagles::Simulation::Gimbal::getElevationRate (  )  const [inline]

Returns current elevation rate (rad/sec).

LCreal Eaagles::Simulation::Gimbal::getRollRate (  )  const [inline]

Returns current roll rate (rad/sec).

bool Eaagles::Simulation::Gimbal::isFastSlewMode (  )  const [inline]

Returns true if the servo is the 'fast' slewing mode.

bool Eaagles::Simulation::Gimbal::isSlowSlewMode (  )  const [inline]

Returns true if the servo is the 'slow' slewing mode.

const osg::Vec3& Eaagles::Simulation::Gimbal::getCmdPosition (  )  const [inline]

Returns the commanded position vector [ az el roll ] (radians).

LCreal Eaagles::Simulation::Gimbal::getCmdAz (  )  const [inline]

Returns commanded azimuth position (rad).

LCreal Eaagles::Simulation::Gimbal::getCmdElev (  )  const [inline]

Returns commanded elevation position (rad).

LCreal Eaagles::Simulation::Gimbal::getCmdRoll (  )  const [inline]

Returns commanded roll position (rad).

const osg::Vec3& Eaagles::Simulation::Gimbal::getCmdRates (  )  const [inline]

Returns the current rate vector (rad/sec).

Returns the commanded position vector (radians)

LCreal Eaagles::Simulation::Gimbal::getCmdAzRate (  )  const [inline]

Returns commanded azimuth rate (rad/sec).

LCreal Eaagles::Simulation::Gimbal::getCmdElevRate (  )  const [inline]

Returns commanded elevation rate (rad/sec).

LCreal Eaagles::Simulation::Gimbal::getCmdRollRate (  )  const [inline]

Returns commanded roll rate (rad/sec).

const osg::Vec3& Eaagles::Simulation::Gimbal::getLocation (  )  const [inline]

Returns the location vector of the gimbal on it's parent container (meters).

const osg::Matrix& Eaagles::Simulation::Gimbal::getMatrix (  )  const [inline]

Returns the gimbal's rotational matrix. Used to transform a vector between the gimbal's and player's coordinate systems. (see note above)

void Eaagles::Simulation::Gimbal::getAzimuthLimits ( LCreal *const   leftLim,
LCreal *const   rightLim 
) const

Get the 'physical' gimbals limits (radians) Returns the physical azimuth limits (rad)

void Eaagles::Simulation::Gimbal::getElevationLimits ( LCreal *const   lowerLim,
LCreal *const   upperLim 
) const

Returns the physical elevation limits (rad).

void Eaagles::Simulation::Gimbal::getRollLimits ( LCreal *const   lowerLim,
LCreal *const   upperLim 
) const

Returns the physical roll limits (rad).

void Eaagles::Simulation::Gimbal::getMaxRates ( LCreal *const   azMaxRate,
LCreal *const   ezMaxRate,
LCreal *const   rollMaxRate 
) const

Returns the maximum mechanical rates (rad/sec).

unsigned int Eaagles::Simulation::Gimbal::processPlayersOfInterest ( Basic::LcPairStream *const   poi  )  [virtual]

Process the Players-Of-Interest (POI) list.

bool Eaagles::Simulation::Gimbal::isTerrainOccultingEnabled (  )  const [inline]

Target terrain occulting enabled flag.

bool Eaagles::Simulation::Gimbal::setTerrainOccultingEnabled ( const bool  flg  )  [virtual]

Sets the target terrain occulting enabled flag.

bool Eaagles::Simulation::Gimbal::setServoMode ( const ServoMode  m  )  [virtual]

Sets the servo mode: { FREEZE_SERVO, RATE_SERVO, POSITION_SERVO } Returns false if the mode could not be changed

bool Eaagles::Simulation::Gimbal::setPosition ( const LCreal  azim,
const LCreal  elev 
) [virtual]

These functions set the gimbal/servo position (radians) Return 'true' if successfull Sets the current az & el positions (rad)

bool Eaagles::Simulation::Gimbal::setPosition ( const LCreal  azim,
const LCreal  elev,
const LCreal  roll 
) [virtual]

Sets the current az, el and roll positions (rad).

bool Eaagles::Simulation::Gimbal::setMaxRates ( const LCreal  azMaxRate,
const LCreal  ezMaxRate 
) [virtual]

These functions set the maximum gimbal/servo rate (rad/sec) Return 'true' if successfull

bool Eaagles::Simulation::Gimbal::setMaxRates ( const LCreal  azMaxRate,
const LCreal  ezMaxRate,
const LCreal  rollMaxRate 
) [virtual]

bool Eaagles::Simulation::Gimbal::setCmdPos ( const osg::Vec2 &  p  )  [virtual]

Sets the commanded position vector (rad).

These functions set the commanded position (rad) Return 'true' if successfull

bool Eaagles::Simulation::Gimbal::setCmdPos ( const osg::Vec3 &  p  )  [virtual]

Sets the commanded position vector (rad).

bool Eaagles::Simulation::Gimbal::setCmdPos ( const LCreal  az,
const LCreal  el,
const LCreal  roll = 0 
) [virtual]

Sets the commanded az, el and roll positions (rad).

bool Eaagles::Simulation::Gimbal::setCmdRate ( const osg::Vec2 &  r  )  [virtual]

These functions set the commanded rates (rad/sec) Return 'true' if successfull Sets the commanded rate vector (rad/sec)

bool Eaagles::Simulation::Gimbal::setCmdRate ( const osg::Vec3 &  r  )  [virtual]

Sets the commanded rate vector (rad/sec).

bool Eaagles::Simulation::Gimbal::setCmdRate ( const LCreal  azRate,
const LCreal  elRate 
) [virtual]

Sets the commanded az & el rates (rad/sec).

bool Eaagles::Simulation::Gimbal::setCmdRate ( const LCreal  azRate,
const LCreal  elRate,
const LCreal  rollRate 
) [virtual]

Sets the commanded az, el and roll rates (rad/sec).

bool Eaagles::Simulation::Gimbal::setAzimuthLimits ( const LCreal  leftLim,
const LCreal  rightLim 
) [virtual]

These functions set the azimuth, elevation and roll limits (radians) Return 'true' if successfull Sets the mechanical azimuth limits (rad)

bool Eaagles::Simulation::Gimbal::setElevationLimits ( const LCreal  lowerLim,
const LCreal  upperLim 
) [virtual]

Sets the mechanical elevation limits (rad).

bool Eaagles::Simulation::Gimbal::setRollLimits ( const LCreal  lowerLim,
const LCreal  upperLim 
) [virtual]

Sets the mechanical roll limits (rad).

bool Eaagles::Simulation::Gimbal::setLocation ( const LCreal  x,
const LCreal  y,
const LCreal  z 
) [virtual]

(e.g., Player or another Gimbal)

Sets the location of the gimbal on it's parent container (meters)

bool Eaagles::Simulation::Gimbal::setFastSlewMode ( const bool  flg  )  [virtual]

Sets the servo 'fast' or 'slow' slewing mode.

bool Eaagles::Simulation::Gimbal::onRfEmissionEvent ( Emission const  )  [virtual]

Event handler(s) Handles R/F emission events

bool Eaagles::Simulation::Gimbal::setSlotType ( const Basic::LcString *const  msg  )  [virtual]

Slot functions Physical gimbal type: "mechanical" or "electronic"

bool Eaagles::Simulation::Gimbal::setSlotLocation ( const Basic::LcList *const   msg  )  [virtual]

Relative location vector (meters) [ x y z ].

bool Eaagles::Simulation::Gimbal::setSlotPosition ( const Basic::LcList *const   msg  )  [virtual]

Initial positon vector (radians) [ az el roll ].

bool Eaagles::Simulation::Gimbal::setSlotPosAzimuth ( const Basic::LcAngle *const  msg  )  [virtual]

Initial azimuth positon.

bool Eaagles::Simulation::Gimbal::setSlotPosElevation ( const Basic::LcAngle *const  msg  )  [virtual]

Initial elevation positon.

bool Eaagles::Simulation::Gimbal::setSlotPosRoll ( const Basic::LcAngle *const  msg  )  [virtual]

Initial roll positon.

bool Eaagles::Simulation::Gimbal::setSlotAzimuthLimits ( const Basic::LcList *const   msg  )  [virtual]

Azimuth limit vector (radians) [ left right ].

bool Eaagles::Simulation::Gimbal::setSlotAzimuthLimitLeft ( const Basic::LcAngle *const  msg  )  [virtual]

Left azimuth limit.

bool Eaagles::Simulation::Gimbal::setSlotAzimuthLimitRight ( const Basic::LcAngle *const  msg  )  [virtual]

Right azimuth limit.

bool Eaagles::Simulation::Gimbal::setSlotElevationLimits ( const Basic::LcList *const   msg  )  [virtual]

Elevation limit vector (radians) [ lower upper ].

bool Eaagles::Simulation::Gimbal::setSlotElevationLower ( const Basic::LcAngle *const  msg  )  [virtual]

Lower elevation limit.

bool Eaagles::Simulation::Gimbal::setSlotElevationUpper ( const Basic::LcAngle *const  msg  )  [virtual]

Upper elevation limit.

bool Eaagles::Simulation::Gimbal::setSlotRollLimits ( const Basic::LcList *const   msg  )  [virtual]

Roll limit vector (radians) [ lower upper ].

bool Eaagles::Simulation::Gimbal::setSlotRollLimitLower ( const Basic::LcAngle *const  msg  )  [virtual]

Lower roll limit.

bool Eaagles::Simulation::Gimbal::setSlotRollLimitUpper ( const Basic::LcAngle *const  msg  )  [virtual]

Upper roll limit.

bool Eaagles::Simulation::Gimbal::setSlotMaxRates ( const Basic::LcList *const   msg  )  [virtual]

Max "mechanical" rate vector (rad/sec) [ az el roll ].

bool Eaagles::Simulation::Gimbal::setSlotMaxRateAzimuth ( const Basic::LcAngle *const  msg  )  [virtual]

Max "mechanical" azimuth rate (Basic::LcAngle/sec).

bool Eaagles::Simulation::Gimbal::setSlotMaxRateElevation ( const Basic::LcAngle *const  msg  )  [virtual]

Max "mechanical" elevation rate (Basic::LcAngle/sec).

bool Eaagles::Simulation::Gimbal::setSlotMaxRateRoll ( const Basic::LcAngle *const  msg  )  [virtual]

Max "mechanical" roll rate (Basic::LcAngle/sec).

bool Eaagles::Simulation::Gimbal::setSlotCmdPos ( const Basic::LcList *const   msg  )  [virtual]

Commanded position vector [ az el roll ] (sets POSITION_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdPosAzimuth ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded azimtuh position (sets POSITION_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdPosElevation ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded elevation position (sets POSITION_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdPosRoll ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded roll position (sets POSITION_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdRate ( const Basic::LcList *const   msg  )  [virtual]

Commanded rate vector (rad/sec) [ az el roll ] (sets RATE_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdRateAzimuth ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded azimuth rate (sets RATE_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdRateElevation ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded elevation rate (sets RATE_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotCmdRateRoll ( const Basic::LcAngle *const  msg  )  [virtual]

Commanded roll rate (sets RATE_SERVO).

bool Eaagles::Simulation::Gimbal::setSlotTerrainOcculting ( const Basic::LcNumber *const  msg  )  [virtual]

Enable target terrain occulting (default: false).

void Eaagles::Simulation::Gimbal::limitVec ( osg::Vec2 &  vec,
const osg::Vec2 &  lim 
) [static]

Symmetrical and asymmetrical limit checks.

void Eaagles::Simulation::Gimbal::limitVec ( osg::Vec3 &  vec,
const osg::Vec3 &  lim 
) [static]

void Eaagles::Simulation::Gimbal::limitVec ( osg::Vec2 &  vec,
const osg::Vec2 &  ll,
const osg::Vec2 &  ul 
) [static]

void Eaagles::Simulation::Gimbal::limitVec ( osg::Vec3 &  vec,
const osg::Vec3 &  ll,
const osg::Vec3 &  ul 
) [static]

virtual bool Eaagles::Simulation::Gimbal::event ( const int  event,
Basic::LcObject *const   obj = 0 
) [virtual]

Component Interface.

Reimplemented from Eaagles::Simulation::System.

void Eaagles::Simulation::Gimbal::reset (  )  [virtual]

Reinitialize this component to its state at the beginning of the simulation.

Reimplemented from Eaagles::Simulation::System.

void Eaagles::Simulation::Gimbal::servoController ( const LCreal  dt = 0.0  )  [protected, virtual]

bool Eaagles::Simulation::Gimbal::setType ( const Type  rt  )  [protected, virtual]

void Eaagles::Simulation::Gimbal::updateMatrix (  )  [protected, virtual]

Gimbal::Tdb * Eaagles::Simulation::Gimbal::getCurrentTDB (  )  [protected]

Get (and switches as need) the current TDB (pre-ref()).

void Eaagles::Simulation::Gimbal::dynamics ( const LCreal  dt  )  [protected, virtual]

System Interface -- Callbacks by phase.

Reimplemented from Eaagles::Simulation::System.


Member Data Documentation

const unsigned int Eaagles::Simulation::Gimbal::MAX_TARGETS = 1000 [static]

Max number of target players.

Basic::LcList Basic::LcAngle Basic::LcAngle Basic::LcAngle Basic::LcList Basic::LcAngle Basic::LcAngle Basic::LcList Basic::LcAngle Basic::LcList Basic::LcAngle Basic::LcList Basic::LcAngle Basic::LcNumber const LCreal Eaagles::Simulation::Gimbal::defaultTolerance [static, private]

Type Eaagles::Simulation::Gimbal::type [private]

Mechanical or Electronic gimbal (affects maxRates).

ServoMode Eaagles::Simulation::Gimbal::servoMode [private]

Gimbal's servo mode.

bool Eaagles::Simulation::Gimbal::fastSlew [private]

Fast slewing mode: tell us if we are slewing fast (true) or scanning (slewing slow (false)).

osg::Matrix Eaagles::Simulation::Gimbal::mm [private]

Transformation matrix (to/from the player's coordinate system).

osg::Vec3 Eaagles::Simulation::Gimbal::pos [private]

Current gimbal position (rad).

osg::Vec3 Eaagles::Simulation::Gimbal::rate [private]

Current velocity (rad/sec).

osg::Vec3 Eaagles::Simulation::Gimbal::cmdPos [private]

Commanded position (rad).

osg::Vec3 Eaagles::Simulation::Gimbal::cmdRate [private]

Commanded rate (rad/sec).

osg::Vec3 Eaagles::Simulation::Gimbal::location [private]

Gimbal's location on parent (meters).

bool Eaagles::Simulation::Gimbal::atLimit [private]

Gimbal is at a limit.

osg::Vec3 Eaagles::Simulation::Gimbal::maxRate [private]

Max mechanical rate of gimbal (rad/sec).

osg::Vec3 Eaagles::Simulation::Gimbal::lowLimits [private]

left/lower gimbal limits (rad)

osg::Vec3 Eaagles::Simulation::Gimbal::highLimits [private]

right/upper gimbal limits (rad)

osg::Vec3 Eaagles::Simulation::Gimbal::initPos [private]

Initial gimbal position (rad).

osg::Vec3 Eaagles::Simulation::Gimbal::initCmdPos [private]

Initial commanded position (rad).

osg::Vec3 Eaagles::Simulation::Gimbal::initCmdRate [private]

Initial commanded rate (rad/sec).

bool Eaagles::Simulation::Gimbal::terrainOcculting [private]

Target terrain occulting enabled flag.

Tdb* Eaagles::Simulation::Gimbal::tdb[3] [private]

Two TDB objects rotate between the following tdb[0] => Current TDB (In use by time-critical thread) tdb[1] => New TDB (just processed by processPlayersOfInterest()) tdb[2] => Free TDB (can be use by processPlayersOfInterest())


Generated on Tue Dec 19 16:28:10 2006 for Eaagles by  doxygen 1.5.0