CigiLosXRespV3_2 Class Reference

#include <CigiLosXRespV3_2.h>

Inheritance diagram for CigiLosXRespV3_2:

CigiBaseLosResp CigiBasePacket List of all members.

Public Member Functions

 CigiLosXRespV3_2 ()
virtual ~CigiLosXRespV3_2 ()
virtual int Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const
virtual int Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec)
virtual int GetCnvt (CigiVersionID &CnvtVersion, CigiCnvtInfoType::Type &CnvtInfo)
int SetEntityIDValid (const bool EntityIDValidIn, bool bndchk=true)
bool GetEntityIDValid (void) const
int SetRangeValid (const bool RangeValidIn, bool bndchk=true)
bool GetRangeValid (void) const
int SetHostFrame (const Cigi_uint8 HostFrameIn, bool bndchk=true)
Cigi_uint8 GetHostFrame (void) const
int SetRespCount (const Cigi_uint8 RespCountIn, bool bndchk=true)
Cigi_uint8 GetRespCount (void) const
int SetEntityID (const Cigi_uint16 EntityIDIn, bool bndchk=true)
Cigi_uint16 GetEntityID (void) const
int SetXoff (const double XoffIn, bool bndchk=true)
double GetXoff (void) const
int SetYoff (const double YoffIn, bool bndchk=true)
double GetYoff (void) const
int SetZoff (const double ZoffIn, bool bndchk=true)
double GetZoff (void) const
int SetRed (const Cigi_uint8 RedIn, bool bndchk=true)
Cigi_uint8 GetRed (void) const
int SetGreen (const Cigi_uint8 GreenIn, bool bndchk=true)
Cigi_uint8 GetGreen (void) const
int SetBlue (const Cigi_uint8 BlueIn, bool bndchk=true)
Cigi_uint8 GetBlue (void) const
int SetAlpha (const Cigi_uint8 AlphaIn, bool bndchk=true)
Cigi_uint8 GetAlpha (void) const
int SetMaterial (const Cigi_uint32 MaterialIn, bool bndchk=true)
Cigi_uint32 GetMaterial (void) const
int SetNormalAz (const float NormalAzIn, bool bndchk=true)
float GetNormalAz (void) const
int SetNormalEl (const float NormalElIn, bool bndchk=true)
float GetNormalEl (void) const

Detailed Description

Definition at line 59 of file CigiLosXRespV3_2.h.


Constructor & Destructor Documentation

CigiLosXRespV3_2::CigiLosXRespV3_2 (  ) 

General Constructor

Definition at line 68 of file CigiLosXRespV3_2.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, CIGI_LOS_XRESP_PACKET_ID_V3_2, CIGI_LOS_XRESP_PACKET_SIZE_V3_2, CigiBaseLosResp::EntityID, CigiBaseLosResp::EntityIDValid, CigiBaseLosResp::Geodetic, CigiBaseLosResp::Green, CigiBaseLosResp::HostFrame, CigiBaseLosResp::IntersectionCoordSys, CigiBaseLosResp::LatOrXoff, CigiBaseLosResp::LonOrYoff, CigiBaseLosResp::LosID, CigiBaseLosResp::Material, CigiBasePacket::MinorVersion, CigiBaseLosResp::NormalAz, CigiBaseLosResp::NormalEl, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseLosResp::Range, CigiBaseLosResp::RangeValid, CigiBaseLosResp::Red, CigiBaseLosResp::RespCount, CigiBaseLosResp::Valid, CigiBaseLosResp::ValidV1or2, CigiBasePacket::Version, and CigiBaseLosResp::Visible.

00069 {
00070 
00071    PacketID = CIGI_LOS_XRESP_PACKET_ID_V3_2;
00072    PacketSize = CIGI_LOS_XRESP_PACKET_SIZE_V3_2;
00073    Version = 3;
00074    MinorVersion = 2;
00075 
00076    LosID = 0;
00077    Valid = false;
00078    EntityIDValid = false;
00079    RangeValid = false;
00080    Visible = false;
00081    IntersectionCoordSys = Geodetic;
00082    HostFrame = 0;
00083    RespCount = 0;
00084    EntityID = 0;
00085    Range = 0.0;
00086    LatOrXoff = 0.0;
00087    LonOrYoff = 0.0;
00088    AltOrZoff = 0.0;
00089    Red = 0;
00090    Green = 0;
00091    Blue = 0;
00092    Alpha = 0;
00093    Material = 0;
00094    NormalAz = 0.0;
00095    NormalEl = 0.0;
00096    ValidV1or2 = true;
00097 
00098 }

CigiLosXRespV3_2::~CigiLosXRespV3_2 (  )  [virtual]

General Destructor

Definition at line 103 of file CigiLosXRespV3_2.cpp.

00104 {
00105 
00106 }


Member Function Documentation

Cigi_uint8 CigiLosXRespV3_2::GetAlpha ( void   )  const [inline]

Gets the Alpha value.

Returns:
the current Alpha.

Definition at line 394 of file CigiLosXRespV3_2.h.

00394 { return(Alpha); }

Cigi_uint8 CigiLosXRespV3_2::GetBlue ( void   )  const [inline]

Gets the Blue value.

Returns:
the current Blue.

Definition at line 372 of file CigiLosXRespV3_2.h.

00372 { return(Blue); }

int CigiLosXRespV3_2::GetCnvt ( CigiVersionID CnvtVersion,
CigiCnvtInfoType::Type CnvtInfo 
) [virtual]

A virtual Conversion Information function. This function provides conversion information for this packet.

Parameters:
CnvtVersion - The CIGI version to which this packet is being converted.
CnvtInfo - The information needed for conversion
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Reimplemented from CigiBasePacket.

Definition at line 236 of file CigiLosXRespV3_2.cpp.

References CIGI_LOS_RESP_PACKET_ID_V2, CIGI_LOS_XRESP_PACKET_ID_V3, CIGI_SUCCESS, CigiVersionID::CigiMajorVersion, CigiCnvtInfoType::CigiCnvtInfoStruct::CnvtPacketID, CigiCnvtInfoType::CigiCnvtInfoStruct::ProcID, and CigiProcessType::ProcStd.

00238 {
00239    CnvtInfo.ProcID = CigiProcessType::ProcStd;
00240 
00241    // Note:
00242    // CIGI_LOS_RESP_PACKET_ID_V1 &
00243    // CIGI_LOS_RESP_PACKET_ID_V2 are the same
00244    // CIGI_LOS_XRESP_PACKET_ID_V3 &
00245    // CIGI_LOS_XRESP_PACKET_ID_V3_2 are the same
00246    if(CnvtVersion.CigiMajorVersion < 3)
00247       CnvtInfo.CnvtPacketID = CIGI_LOS_RESP_PACKET_ID_V2;
00248    else
00249       CnvtInfo.CnvtPacketID = CIGI_LOS_XRESP_PACKET_ID_V3;
00250 
00251    return(CIGI_SUCCESS);
00252 }

Cigi_uint16 CigiLosXRespV3_2::GetEntityID ( void   )  const [inline]

Gets the EntityID value.

Returns:
the current EntityID.

Definition at line 240 of file CigiLosXRespV3_2.h.

00240 { return(EntityID); }

bool CigiLosXRespV3_2::GetEntityIDValid ( void   )  const [inline]

Gets the EntityIDValid value.

Returns:
the current EntityIDValid.

Definition at line 154 of file CigiLosXRespV3_2.h.

00154 { return(EntityIDValid); }

Cigi_uint8 CigiLosXRespV3_2::GetGreen ( void   )  const [inline]

Gets the Green value.

Returns:
the current Green.

Definition at line 350 of file CigiLosXRespV3_2.h.

00350 { return(Green); }

Cigi_uint8 CigiLosXRespV3_2::GetHostFrame ( void   )  const [inline]

Gets the host frame value.

Returns:
the host frame when the hat/hot was calculated.

Definition at line 198 of file CigiLosXRespV3_2.h.

00198 { return(HostFrame); }

Cigi_uint32 CigiLosXRespV3_2::GetMaterial ( void   )  const [inline]

Gets the Material value.

Returns:
the current Material.

Definition at line 415 of file CigiLosXRespV3_2.h.

00415 { return(Material); }

float CigiLosXRespV3_2::GetNormalAz ( void   )  const [inline]

Gets the NormalAz value.

Returns:
the current NormalAz.

Definition at line 433 of file CigiLosXRespV3_2.h.

00433 { return(NormalAz); }

float CigiLosXRespV3_2::GetNormalEl ( void   )  const [inline]

Gets the NormalEl value.

Returns:
the current NormalEl.

Definition at line 451 of file CigiLosXRespV3_2.h.

00451 { return(NormalEl); }

bool CigiLosXRespV3_2::GetRangeValid ( void   )  const [inline]

Gets the RangeValid value.

Returns:
the current RangeValid.

Definition at line 176 of file CigiLosXRespV3_2.h.

00176 { return(RangeValid); }

Cigi_uint8 CigiLosXRespV3_2::GetRed ( void   )  const [inline]

Gets the Red value.

Returns:
the current Red.

Definition at line 328 of file CigiLosXRespV3_2.h.

00328 { return(Red); }

Cigi_uint8 CigiLosXRespV3_2::GetRespCount ( void   )  const [inline]

Gets the RespCount value.

Returns:
the current RespCount.

Definition at line 219 of file CigiLosXRespV3_2.h.

00219 { return(RespCount); }

double CigiLosXRespV3_2::GetXoff ( void   )  const [inline]

Gets the Xoff value.

Returns:
the current Xoff.

Definition at line 262 of file CigiLosXRespV3_2.h.

00262 { return(LatOrXoff); }

double CigiLosXRespV3_2::GetYoff ( void   )  const [inline]

Gets the Yoff value.

Returns:
the current Yoff.

Definition at line 284 of file CigiLosXRespV3_2.h.

00284 { return(LonOrYoff); }

double CigiLosXRespV3_2::GetZoff ( void   )  const [inline]

Gets the Zoff value.

Returns:
the current Zoff.

Definition at line 306 of file CigiLosXRespV3_2.h.

00306 { return(AltOrZoff); }

int CigiLosXRespV3_2::Pack ( CigiBasePacket Base,
Cigi_uint8 Buff,
void *  Spec 
) const [virtual]

The virtual Pack function for CIGI 3

Parameters:
Base - A pointer to the instance of the packet to be packed. (Downcast to CigiBasePacket)
Buff - A pointer to the current pack point.
Spec - A pointer to special data - This is not used in this class.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Implements CigiBaseLosResp.

Definition at line 115 of file CigiLosXRespV3_2.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, PackPointerUnion::c, PackPointerUnion::d, CigiBaseLosResp::EntityID, CigiBaseLosResp::EntityIDValid, PackPointerUnion::f, CigiBaseLosResp::Green, CigiBaseLosResp::HostFrame, PackPointerUnion::l, CigiBaseLosResp::LatOrXoff, CigiBaseLosResp::LonOrYoff, CigiBaseLosResp::LosID, CigiBaseLosResp::Material, CigiBaseLosResp::NormalAz, CigiBaseLosResp::NormalEl, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseLosResp::Range, CigiBaseLosResp::RangeValid, CigiBaseLosResp::Red, CigiBaseLosResp::RespCount, PackPointerUnion::s, CigiBaseLosResp::Valid, and CigiBaseLosResp::Visible.

00116 {
00117    PackPointer CDta;
00118 
00119    CigiBaseLosResp * Data = ( CigiBaseLosResp *)Base;
00120 
00121    CDta.c = Buff;
00122 
00123    *CDta.c++ = PacketID;
00124    *CDta.c++ = PacketSize;
00125 
00126    *CDta.s++ = Data->LosID;
00127 
00128    Cigi_uint8 HDta = (Data->Valid) ? 0x01 : 0x00;
00129    HDta |= (Data->EntityIDValid) ? 0x02 : 0x00;
00130    HDta |= (Data->RangeValid) ? 0x04 : 0x00;
00131    HDta |= (Data->Visible) ? 0x08 : 0x00;
00132    HDta |= (Data->HostFrame << 4) & 0xf0;
00133    *CDta.c++ = HDta;
00134 
00135    *CDta.c++ = Data->RespCount;
00136    *CDta.s++ = Data->EntityID;
00137    *CDta.d++ = Data->Range;
00138    *CDta.d++ = Data->LatOrXoff;
00139    *CDta.d++ = Data->LonOrYoff;
00140    *CDta.d++ = Data->AltOrZoff;
00141    *CDta.c++ = Data->Red;
00142    *CDta.c++ = Data->Green;
00143    *CDta.c++ = Data->Blue;
00144    *CDta.c++ = Data->Alpha;
00145    *CDta.l++ = Data->Material;
00146    *CDta.f++ = Data->NormalAz;
00147    *CDta.f++ = Data->NormalEl;
00148 
00149    return(PacketSize);
00150 
00151 }

int CigiLosXRespV3_2::SetAlpha ( const Cigi_uint8  AlphaIn,
bool  bndchk = true 
) [inline]

Sets the Alpha with bound checking control

Parameters:
AlphaIn - The alpha color component of the surface at the point ofintersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 385 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00386    {
00387       Alpha = AlphaIn;
00388       return(CIGI_SUCCESS);
00389    }

int CigiLosXRespV3_2::SetBlue ( const Cigi_uint8  BlueIn,
bool  bndchk = true 
) [inline]

Sets the Blue with bound checking control

Parameters:
BlueIn - The blue color component of the surface at the point ofintersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 363 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00364    {
00365       Blue = BlueIn;
00366       return(CIGI_SUCCESS);
00367    }

int CigiLosXRespV3_2::SetEntityID ( const Cigi_uint16  EntityIDIn,
bool  bndchk = true 
) [inline]

Sets the EntityID with bound checking control

Parameters:
EntityIDIn - The ID of the entity intersected.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 231 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00232    {
00233       EntityID = EntityIDIn;
00234       return(CIGI_SUCCESS);
00235    }

int CigiLosXRespV3_2::SetEntityIDValid ( const bool  EntityIDValidIn,
bool  bndchk = true 
) [inline]

Sets the EntityIDValid with bound checking control

Parameters:
EntityIDValidIn - intersection with an entity and the entity id is valid.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 133 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00134    {
00135       EntityIDValid = EntityIDValidIn;
00136 
00137       if(EntityIDValidIn)
00138       {
00139          ValidV1or2 = false;
00140          IntersectionCoordSys = Entity;
00141       }
00142       else
00143       {
00144          ValidV1or2 = true;
00145          IntersectionCoordSys = Geodetic;
00146       }
00147 
00148       return(CIGI_SUCCESS);
00149    }

int CigiLosXRespV3_2::SetGreen ( const Cigi_uint8  GreenIn,
bool  bndchk = true 
) [inline]

Sets the Green with bound checking control

Parameters:
GreenIn - The green color component of the surface at the point ofintersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 341 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00342    {
00343       Green = GreenIn;
00344       return(CIGI_SUCCESS);
00345    }

int CigiLosXRespV3_2::SetHostFrame ( const Cigi_uint8  HostFrameIn,
bool  bndchk = true 
) [inline]

Sets the HostFrame with bound checking control

Parameters:
HostFrameIn - The host frame when the hat/hot was calculated.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 189 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00190    {
00191       HostFrame = HostFrameIn;
00192       return(CIGI_SUCCESS);
00193    }

int CigiLosXRespV3_2::SetMaterial ( const Cigi_uint32  MaterialIn,
bool  bndchk = true 
) [inline]

Sets the Material with bound checking control

Parameters:
MaterialIn - The material code of the intersected surface.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 406 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00407    {
00408       Material = MaterialIn;
00409       return(CIGI_SUCCESS);
00410    }

int CigiLosXRespV3_2::SetNormalAz ( const float  NormalAzIn,
bool  bndchk = true 
)

Sets the NormalAz with bound checking control

Parameters:
NormalAzIn - The azimuth of the surface normal at the point of intersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 264 of file CigiLosXRespV3_2.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosResp::NormalAz.

00265 {
00266 
00267 #ifndef CIGI_NO_BND_CHK
00268    if(bndchk && ((NormalAzIn < -180.0)||(NormalAzIn > 180.0)))
00269    {
00270 #ifndef CIGI_NO_EXCEPT
00271       throw CigiValueOutOfRangeException("NormalAz",(float)NormalAzIn,-180.0,180.0);
00272 #endif
00273       return(CIGI_ERROR_VALUE_OUT_OF_RANGE);
00274    }
00275 #endif
00276 
00277    NormalAz = NormalAzIn;
00278    return(CIGI_SUCCESS);
00279 
00280 }

int CigiLosXRespV3_2::SetNormalEl ( const float  NormalElIn,
bool  bndchk = true 
)

Sets the NormalEl with bound checking control

Parameters:
NormalElIn - The elevation of the surface normal at the point of intersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 286 of file CigiLosXRespV3_2.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosResp::NormalEl.

00287 {
00288 
00289 #ifndef CIGI_NO_BND_CHK
00290    if(bndchk && ((NormalElIn < -90.0)||(NormalElIn > 90.0)))
00291    {
00292 #ifndef CIGI_NO_EXCEPT
00293       throw CigiValueOutOfRangeException("NormalEl",(float)NormalElIn,-90.0,90.0);
00294 #endif
00295       return(CIGI_ERROR_VALUE_OUT_OF_RANGE);
00296    }
00297 #endif
00298 
00299    NormalEl = NormalElIn;
00300    return(CIGI_SUCCESS);
00301 
00302 }

int CigiLosXRespV3_2::SetRangeValid ( const bool  RangeValidIn,
bool  bndchk = true 
) [inline]

Sets the RangeValid with bound checking control

Parameters:
RangeValidIn - There is an intersection and the range data is valid.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 167 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00168    {
00169       RangeValid = RangeValidIn;
00170       return(CIGI_SUCCESS);
00171    }

int CigiLosXRespV3_2::SetRed ( const Cigi_uint8  RedIn,
bool  bndchk = true 
) [inline]

Sets the Red with bound checking control

Parameters:
RedIn - The red color component of the surface at the point ofintersection.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 319 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00320    {
00321       Red = RedIn;
00322       return(CIGI_SUCCESS);
00323    }

int CigiLosXRespV3_2::SetRespCount ( const Cigi_uint8  RespCountIn,
bool  bndchk = true 
) [inline]

Sets the RespCount with bound checking control

Parameters:
RespCountIn - The number of responses for this LOS operation.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 210 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00211    {
00212       RespCount = RespCountIn;
00213       return(CIGI_SUCCESS);
00214    }

int CigiLosXRespV3_2::SetXoff ( const double  XoffIn,
bool  bndchk = true 
) [inline]

Sets the Xoff with bound checking control

Parameters:
XoffIn - The offset along the X axis of the intersected entity from its origin.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 253 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00254    {
00255       LatOrXoff = XoffIn;
00256       return(CIGI_SUCCESS);
00257    }

int CigiLosXRespV3_2::SetYoff ( const double  YoffIn,
bool  bndchk = true 
) [inline]

Sets the Yoff with bound checking control

Parameters:
YoffIn - The offset along the Y axis of the intersected entity from its origin.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 275 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00276    {
00277       LonOrYoff = YoffIn;
00278       return(CIGI_SUCCESS);
00279    }

int CigiLosXRespV3_2::SetZoff ( const double  ZoffIn,
bool  bndchk = true 
) [inline]

Sets the Zoff with bound checking control

Parameters:
ZoffIn - The offset along the Z axis of the intersected entity from its origin.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 297 of file CigiLosXRespV3_2.h.

References CIGI_SUCCESS.

00298    {
00299       AltOrZoff = ZoffIn;
00300       return(CIGI_SUCCESS);
00301    }

int CigiLosXRespV3_2::Unpack ( Cigi_uint8 Buff,
bool  Swap,
void *  Spec 
) [virtual]

The virtual Unpack function for CIGI 3

Parameters:
Buff - A pointer to the current pack point.
Swap - N/A for V1 & V2
Spec - A pointer to special data - This is not used in this class.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Implements CigiBaseLosResp.

Definition at line 156 of file CigiLosXRespV3_2.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiSwap8(), PackPointerUnion::d, CigiBaseLosResp::Entity, CigiBaseLosResp::EntityID, CigiBaseLosResp::EntityIDValid, PackPointerUnion::f, CigiBaseLosResp::Geodetic, CigiBaseLosResp::Green, CigiBaseLosResp::HostFrame, CigiBaseLosResp::IntersectionCoordSys, PackPointerUnion::l, CigiBaseLosResp::LatOrXoff, CigiBaseLosResp::LonOrYoff, CigiBaseLosResp::LosID, CigiBaseLosResp::Material, CigiBaseLosResp::NormalAz, CigiBaseLosResp::NormalEl, CigiBasePacket::PacketSize, CigiBaseLosResp::Range, CigiBaseLosResp::RangeValid, CigiBaseLosResp::Red, CigiBaseLosResp::RespCount, PackPointerUnion::s, CigiBaseLosResp::Valid, CigiBaseLosResp::ValidV1or2, and CigiBaseLosResp::Visible.

00157 {
00158    PackPointer CDta;
00159 
00160    CDta.c = Buff;
00161 
00162    CDta.c += 2;  // Step over packet id and size
00163 
00164    if(!Swap)
00165    {
00166       LosID = *CDta.s++;
00167 
00168       Cigi_uint8 HDta = *CDta.c++;
00169       Valid = ((HDta & 0x01) != 0);
00170       EntityIDValid = ((HDta & 0x02) != 0);
00171       RangeValid = ((HDta & 0x04) != 0);
00172       Visible = ((HDta & 0x08) != 0);
00173       HostFrame = (Cigi_uint8)((HDta >> 4) & 0x0f);
00174 
00175       RespCount = *CDta.c++;
00176       EntityID = *CDta.s++;
00177       Range = *CDta.d++;
00178       LatOrXoff = *CDta.d++;
00179       LonOrYoff = *CDta.d++;
00180       AltOrZoff = *CDta.d++;
00181       Red = *CDta.c++;
00182       Green = *CDta.c++;
00183       Blue = *CDta.c++;
00184       Alpha = *CDta.c++;
00185       Material = *CDta.l++;
00186       NormalAz = *CDta.f++;
00187       NormalEl = *CDta.f++;
00188 
00189    }
00190    else
00191    {
00192       CigiSwap2(&LosID, CDta.s++);
00193 
00194       Cigi_uint8 HDta = *CDta.c++;
00195       Valid = ((HDta & 0x01) != 0);
00196       EntityIDValid = ((HDta & 0x02) != 0);
00197       RangeValid = ((HDta & 0x04) != 0);
00198       Visible = ((HDta & 0x08) != 0);
00199       HostFrame = (Cigi_uint8)((HDta >> 4) & 0x0f);
00200 
00201       RespCount = *CDta.c++;
00202       CigiSwap2(&EntityID, CDta.s++);
00203       CigiSwap8(&Range, CDta.d++);
00204       CigiSwap8(&LatOrXoff, CDta.d++);
00205       CigiSwap8(&LonOrYoff, CDta.d++);
00206       CigiSwap8(&AltOrZoff, CDta.d++);
00207       Red = *CDta.c++;
00208       Green = *CDta.c++;
00209       Blue = *CDta.c++;
00210       Alpha = *CDta.c++;
00211       CigiSwap4(&Material, CDta.l++);
00212       CigiSwap4(&NormalAz, CDta.f++);
00213       CigiSwap4(&NormalEl, CDta.f++);
00214 
00215    }
00216 
00217    if(EntityIDValid)
00218    {
00219       ValidV1or2 = false;
00220       IntersectionCoordSys = Entity;
00221    }
00222    else
00223    {
00224       ValidV1or2 = true;
00225       IntersectionCoordSys = Geodetic;
00226    }
00227 
00228    return(PacketSize);
00229 
00230 }


The documentation for this class was generated from the following files:
Generated on Wed Apr 29 09:00:09 2009 for CCL by  doxygen 1.4.7