CigiLosXRespV3 Class Reference

#include <CigiLosXRespV3.h>

Inheritance diagram for CigiLosXRespV3:

CigiBaseLosResp CigiBasePacket List of all members.

Public Member Functions

 CigiLosXRespV3 ()
virtual ~CigiLosXRespV3 ()
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 SetIntersectionCoordSys (const LOSCoordGrp IntersectionCoordSysIn, bool bndchk=true)
LOSCoordGrp GetIntersectionCoordSys (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 62 of file CigiLosXRespV3.h.


Constructor & Destructor Documentation

CigiLosXRespV3::CigiLosXRespV3 (  ) 

General Constructor

Definition at line 74 of file CigiLosXRespV3.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, CIGI_LOS_XRESP_PACKET_ID_V3, CIGI_LOS_XRESP_PACKET_SIZE_V3, 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.

00075 {
00076 
00077    PacketID = CIGI_LOS_XRESP_PACKET_ID_V3;
00078    PacketSize = CIGI_LOS_XRESP_PACKET_SIZE_V3;
00079    Version = 3;
00080    MinorVersion = 0;
00081 
00082    LosID = 0;
00083    Valid = false;
00084    EntityIDValid = false;
00085    RangeValid = false;
00086    Visible = false;
00087    IntersectionCoordSys = Geodetic;
00088    HostFrame = 0;
00089    RespCount = 0;
00090    EntityID = 0;
00091    Range = 0.0;
00092    LatOrXoff = 0.0;
00093    LonOrYoff = 0.0;
00094    AltOrZoff = 0.0;
00095    Red = 0;
00096    Green = 0;
00097    Blue = 0;
00098    Alpha = 0;
00099    Material = 0;
00100    NormalAz = 0.0;
00101    NormalEl = 0.0;
00102    ValidV1or2 = true;
00103 
00104 }

CigiLosXRespV3::~CigiLosXRespV3 (  )  [virtual]

General Destructor

Definition at line 109 of file CigiLosXRespV3.cpp.

00110 {
00111 
00112 }


Member Function Documentation

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

Gets the Alpha value.

Returns:
the current Alpha.

Definition at line 383 of file CigiLosXRespV3.h.

00383 { return(Alpha); }

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

Gets the Blue value.

Returns:
the current Blue.

Definition at line 361 of file CigiLosXRespV3.h.

00361 { return(Blue); }

int CigiLosXRespV3::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 235 of file CigiLosXRespV3.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.

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

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

Gets the EntityID value.

Returns:
the current EntityID.

Definition at line 229 of file CigiLosXRespV3.h.

00229 { return(EntityID); }

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

Gets the EntityIDValid value.

Returns:
the current EntityIDValid.

Definition at line 145 of file CigiLosXRespV3.h.

00145 { return(EntityIDValid); }

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

Gets the Green value.

Returns:
the current Green.

Definition at line 339 of file CigiLosXRespV3.h.

00339 { return(Green); }

LOSCoordGrp CigiLosXRespV3::GetIntersectionCoordSys ( void   )  const [inline]

Gets the IntersectionCoordSys value.

Returns:
the current IntersectionCoordSys.

Definition at line 187 of file CigiLosXRespV3.h.

00187 { return(IntersectionCoordSys); }

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

Gets the Material value.

Returns:
the current Material.

Definition at line 404 of file CigiLosXRespV3.h.

00404 { return(Material); }

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

Gets the NormalAz value.

Returns:
the current NormalAz.

Definition at line 422 of file CigiLosXRespV3.h.

00422 { return(NormalAz); }

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

Gets the NormalEl value.

Returns:
the current NormalEl.

Definition at line 440 of file CigiLosXRespV3.h.

00440 { return(NormalEl); }

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

Gets the RangeValid value.

Returns:
the current RangeValid.

Definition at line 167 of file CigiLosXRespV3.h.

00167 { return(RangeValid); }

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

Gets the Red value.

Returns:
the current Red.

Definition at line 317 of file CigiLosXRespV3.h.

00317 { return(Red); }

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

Gets the RespCount value.

Returns:
the current RespCount.

Definition at line 208 of file CigiLosXRespV3.h.

00208 { return(RespCount); }

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

Gets the Xoff value.

Returns:
the current Xoff.

Definition at line 251 of file CigiLosXRespV3.h.

00251 { return(LatOrXoff); }

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

Gets the Yoff value.

Returns:
the current Yoff.

Definition at line 273 of file CigiLosXRespV3.h.

00273 { return(LonOrYoff); }

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

Gets the Zoff value.

Returns:
the current Zoff.

Definition at line 295 of file CigiLosXRespV3.h.

00295 { return(AltOrZoff); }

int CigiLosXRespV3::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 121 of file CigiLosXRespV3.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, PackPointerUnion::c, PackPointerUnion::d, CigiBaseLosResp::EntityID, CigiBaseLosResp::EntityIDValid, PackPointerUnion::f, CigiBaseLosResp::Green, CigiBaseLosResp::IntersectionCoordSys, 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.

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

int CigiLosXRespV3::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 374 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00375    {
00376       Alpha = AlphaIn;
00377       return(CIGI_SUCCESS);
00378    }

int CigiLosXRespV3::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 352 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00353    {
00354       Blue = BlueIn;
00355       return(CIGI_SUCCESS);
00356    }

int CigiLosXRespV3::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 220 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00221    {
00222       EntityID = EntityIDIn;
00223       return(CIGI_SUCCESS);
00224    }

int CigiLosXRespV3::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 136 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00137    {
00138       EntityIDValid = EntityIDValidIn;
00139       return(CIGI_SUCCESS);
00140    }

int CigiLosXRespV3::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 330 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00331    {
00332       Green = GreenIn;
00333       return(CIGI_SUCCESS);
00334    }

int CigiLosXRespV3::SetIntersectionCoordSys ( const LOSCoordGrp  IntersectionCoordSysIn,
bool  bndchk = true 
)

Sets the IntersectionCoordSys with bound checking control

Parameters:
IntersectionCoordSysIn - The intersection position
data coordinate system. Geodetic=0
Entity=1
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 263 of file CigiLosXRespV3.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, CigiBaseLosResp::Geodetic, CigiBaseLosResp::IntersectionCoordSys, and CigiBaseLosResp::ValidV1or2.

00264 {
00265 
00266 #ifndef CIGI_NO_BND_CHK
00267    if(bndchk && ((IntersectionCoordSysIn < 0)||(IntersectionCoordSysIn > 1)))
00268    {
00269 #ifndef CIGI_NO_EXCEPT
00270       throw CigiValueOutOfRangeException("IntersectionCoordSys",(LOSCoordGrp)IntersectionCoordSysIn,0,1);
00271 #endif
00272       return(CIGI_ERROR_VALUE_OUT_OF_RANGE);
00273    }
00274 #endif
00275 
00276    IntersectionCoordSys = IntersectionCoordSysIn;
00277 
00278    ValidV1or2 = (IntersectionCoordSys == Geodetic);
00279    return(CIGI_SUCCESS);
00280 
00281 }

int CigiLosXRespV3::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 395 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00396    {
00397       Material = MaterialIn;
00398       return(CIGI_SUCCESS);
00399    }

int CigiLosXRespV3::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 287 of file CigiLosXRespV3.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosResp::NormalAz.

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

int CigiLosXRespV3::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 309 of file CigiLosXRespV3.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosResp::NormalEl.

00310 {
00311 
00312 #ifndef CIGI_NO_BND_CHK
00313    if(bndchk && ((NormalElIn < -90.0)||(NormalElIn > 90.0)))
00314    {
00315 #ifndef CIGI_NO_EXCEPT
00316       throw CigiValueOutOfRangeException("NormalEl",(float)NormalElIn,-90.0,90.0);
00317 #endif
00318       return(CIGI_ERROR_VALUE_OUT_OF_RANGE);
00319    }
00320 #endif
00321 
00322    NormalEl = NormalElIn;
00323    return(CIGI_SUCCESS);
00324 
00325 }

int CigiLosXRespV3::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 158 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00159    {
00160       RangeValid = RangeValidIn;
00161       return(CIGI_SUCCESS);
00162    }

int CigiLosXRespV3::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 308 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00309    {
00310       Red = RedIn;
00311       return(CIGI_SUCCESS);
00312    }

int CigiLosXRespV3::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 199 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00200    {
00201       RespCount = RespCountIn;
00202       return(CIGI_SUCCESS);
00203    }

int CigiLosXRespV3::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 242 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00243    {
00244       LatOrXoff = XoffIn;
00245       return(CIGI_SUCCESS);
00246    }

int CigiLosXRespV3::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 264 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00265    {
00266       LonOrYoff = YoffIn;
00267       return(CIGI_SUCCESS);
00268    }

int CigiLosXRespV3::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 286 of file CigiLosXRespV3.h.

References CIGI_SUCCESS.

00287    {
00288       AltOrZoff = ZoffIn;
00289       return(CIGI_SUCCESS);
00290    }

int CigiLosXRespV3::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 162 of file CigiLosXRespV3.cpp.

References CigiBaseLosResp::Alpha, CigiBaseLosResp::AltOrZoff, CigiBaseLosResp::Blue, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiSwap8(), PackPointerUnion::d, 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.

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


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