#include <CigiLosXRespV3_2.h>
Inheritance diagram for CigiLosXRespV3_2:
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 |
Definition at line 59 of file CigiLosXRespV3_2.h.
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] |
Cigi_uint8 CigiLosXRespV3_2::GetAlpha | ( | void | ) | const [inline] |
Gets the Alpha value.
Definition at line 394 of file CigiLosXRespV3_2.h.
00394 { return(Alpha); }
Cigi_uint8 CigiLosXRespV3_2::GetBlue | ( | void | ) | const [inline] |
Gets the Blue value.
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.
CnvtVersion | - The CIGI version to which this packet is being converted. | |
CnvtInfo | - The information needed for conversion |
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.
Definition at line 240 of file CigiLosXRespV3_2.h.
00240 { return(EntityID); }
bool CigiLosXRespV3_2::GetEntityIDValid | ( | void | ) | const [inline] |
Gets the EntityIDValid value.
Definition at line 154 of file CigiLosXRespV3_2.h.
00154 { return(EntityIDValid); }
Cigi_uint8 CigiLosXRespV3_2::GetGreen | ( | void | ) | const [inline] |
Gets the Green value.
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.
Definition at line 198 of file CigiLosXRespV3_2.h.
00198 { return(HostFrame); }
Cigi_uint32 CigiLosXRespV3_2::GetMaterial | ( | void | ) | const [inline] |
Gets the Material value.
Definition at line 415 of file CigiLosXRespV3_2.h.
00415 { return(Material); }
float CigiLosXRespV3_2::GetNormalAz | ( | void | ) | const [inline] |
Gets the NormalAz value.
Definition at line 433 of file CigiLosXRespV3_2.h.
00433 { return(NormalAz); }
float CigiLosXRespV3_2::GetNormalEl | ( | void | ) | const [inline] |
Gets the NormalEl value.
Definition at line 451 of file CigiLosXRespV3_2.h.
00451 { return(NormalEl); }
bool CigiLosXRespV3_2::GetRangeValid | ( | void | ) | const [inline] |
Gets the RangeValid value.
Definition at line 176 of file CigiLosXRespV3_2.h.
00176 { return(RangeValid); }
Cigi_uint8 CigiLosXRespV3_2::GetRed | ( | void | ) | const [inline] |
Gets the Red value.
Definition at line 328 of file CigiLosXRespV3_2.h.
00328 { return(Red); }
Cigi_uint8 CigiLosXRespV3_2::GetRespCount | ( | void | ) | const [inline] |
Gets the RespCount value.
Definition at line 219 of file CigiLosXRespV3_2.h.
00219 { return(RespCount); }
double CigiLosXRespV3_2::GetXoff | ( | void | ) | const [inline] |
Gets the Xoff value.
Definition at line 262 of file CigiLosXRespV3_2.h.
00262 { return(LatOrXoff); }
double CigiLosXRespV3_2::GetYoff | ( | void | ) | const [inline] |
Gets the Yoff value.
Definition at line 284 of file CigiLosXRespV3_2.h.
00284 { return(LonOrYoff); }
double CigiLosXRespV3_2::GetZoff | ( | void | ) | const [inline] |
Gets the Zoff value.
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
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. |
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
AlphaIn | - The alpha color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
BlueIn | - The blue color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
EntityIDIn | - The ID of the entity intersected. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
EntityIDValidIn | - intersection with an entity and the entity id is valid. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
GreenIn | - The green color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
HostFrameIn | - The host frame when the hat/hot was calculated. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
MaterialIn | - The material code of the intersected surface. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
NormalAzIn | - The azimuth of the surface normal at the point of intersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
NormalElIn | - The elevation of the surface normal at the point of intersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RangeValidIn | - There is an intersection and the range data is valid. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RedIn | - The red color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RespCountIn | - The number of responses for this LOS operation. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
XoffIn | - The offset along the X axis of the intersected entity from its origin. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
YoffIn | - The offset along the Y axis of the intersected entity from its origin. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
ZoffIn | - The offset along the Z axis of the intersected entity from its origin. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
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. |
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 }