#include <CigiLosXRespV3.h>
Inheritance diagram for CigiLosXRespV3:
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 |
Definition at line 62 of file CigiLosXRespV3.h.
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] |
Cigi_uint8 CigiLosXRespV3::GetAlpha | ( | void | ) | const [inline] |
Gets the Alpha value.
Definition at line 383 of file CigiLosXRespV3.h.
00383 { return(Alpha); }
Cigi_uint8 CigiLosXRespV3::GetBlue | ( | void | ) | const [inline] |
Gets the Blue value.
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.
CnvtVersion | - The CIGI version to which this packet is being converted. | |
CnvtInfo | - The information needed for conversion |
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.
Definition at line 229 of file CigiLosXRespV3.h.
00229 { return(EntityID); }
bool CigiLosXRespV3::GetEntityIDValid | ( | void | ) | const [inline] |
Gets the EntityIDValid value.
Definition at line 145 of file CigiLosXRespV3.h.
00145 { return(EntityIDValid); }
Cigi_uint8 CigiLosXRespV3::GetGreen | ( | void | ) | const [inline] |
Gets the Green value.
Definition at line 339 of file CigiLosXRespV3.h.
00339 { return(Green); }
LOSCoordGrp CigiLosXRespV3::GetIntersectionCoordSys | ( | void | ) | const [inline] |
Gets the IntersectionCoordSys value.
Definition at line 187 of file CigiLosXRespV3.h.
00187 { return(IntersectionCoordSys); }
Cigi_uint32 CigiLosXRespV3::GetMaterial | ( | void | ) | const [inline] |
Gets the Material value.
Definition at line 404 of file CigiLosXRespV3.h.
00404 { return(Material); }
float CigiLosXRespV3::GetNormalAz | ( | void | ) | const [inline] |
Gets the NormalAz value.
Definition at line 422 of file CigiLosXRespV3.h.
00422 { return(NormalAz); }
float CigiLosXRespV3::GetNormalEl | ( | void | ) | const [inline] |
Gets the NormalEl value.
Definition at line 440 of file CigiLosXRespV3.h.
00440 { return(NormalEl); }
bool CigiLosXRespV3::GetRangeValid | ( | void | ) | const [inline] |
Gets the RangeValid value.
Definition at line 167 of file CigiLosXRespV3.h.
00167 { return(RangeValid); }
Cigi_uint8 CigiLosXRespV3::GetRed | ( | void | ) | const [inline] |
Gets the Red value.
Definition at line 317 of file CigiLosXRespV3.h.
00317 { return(Red); }
Cigi_uint8 CigiLosXRespV3::GetRespCount | ( | void | ) | const [inline] |
Gets the RespCount value.
Definition at line 208 of file CigiLosXRespV3.h.
00208 { return(RespCount); }
double CigiLosXRespV3::GetXoff | ( | void | ) | const [inline] |
Gets the Xoff value.
Definition at line 251 of file CigiLosXRespV3.h.
00251 { return(LatOrXoff); }
double CigiLosXRespV3::GetYoff | ( | void | ) | const [inline] |
Gets the Yoff value.
Definition at line 273 of file CigiLosXRespV3.h.
00273 { return(LonOrYoff); }
double CigiLosXRespV3::GetZoff | ( | void | ) | const [inline] |
Gets the Zoff value.
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
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 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
AlphaIn | - The alpha color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
BlueIn | - The blue color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
EntityIDIn | - The ID of the entity intersected. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
EntityIDValidIn | - intersection with an entity and the entity id is valid. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
GreenIn | - The green color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
IntersectionCoordSysIn | - The intersection position data coordinate system. Geodetic=0 Entity=1 | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
MaterialIn | - The material code of the intersected surface. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
NormalAzIn | - The azimuth of the surface normal at the point of intersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
NormalElIn | - The elevation of the surface normal at the point of intersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RangeValidIn | - There is an intersection and the range data is valid. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RedIn | - The red color component of the surface at the point ofintersection. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
RespCountIn | - The number of responses for this LOS operation. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
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
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 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
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 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
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 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
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 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 }