CigiSymbolSurfaceDefV3_3 Class Reference

#include <CigiSymbolSurfaceDefV3_3.h>

Inheritance diagram for CigiSymbolSurfaceDefV3_3:

CigiBaseSymbolSurfaceDef CigiBasePacket List of all members.

Public Member Functions

 CigiSymbolSurfaceDefV3_3 (void)
virtual ~CigiSymbolSurfaceDefV3_3 (void)
virtual int Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const
virtual int Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec)

Detailed Description

The base class for all packets.

Definition at line 50 of file CigiSymbolSurfaceDefV3_3.h.


Constructor & Destructor Documentation

CigiSymbolSurfaceDefV3_3::CigiSymbolSurfaceDefV3_3 ( void   ) 

General Constructor

Definition at line 56 of file CigiSymbolSurfaceDefV3_3.cpp.

References CigiBaseSymbolSurfaceDef::Active, CigiBaseSymbolSurfaceDef::Attached, CigiBaseSymbolSurfaceDef::BillboardState, CIGI_SYMBOL_SURFACE_DEF_PACKET_ID_V3_3, CIGI_SYMBOL_SURFACE_DEF_PACKET_SIZE_V3_3, CigiBaseSymbolSurfaceDef::Enable, CigiBaseSymbolSurfaceDef::EntityAttached, CigiBaseSymbolSurfaceDef::EntityViewID, CigiBaseSymbolSurfaceDef::Height, CigiBaseSymbolSurfaceDef::MaxU, CigiBaseSymbolSurfaceDef::MaxV, CigiBasePacket::MinorVersion, CigiBaseSymbolSurfaceDef::MinU, CigiBaseSymbolSurfaceDef::MinV, CigiBaseSymbolSurfaceDef::NotBillboard, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolSurfaceDef::PerspectiveGrowth, CigiBaseSymbolSurfaceDef::Pitch, CigiBaseSymbolSurfaceDef::Roll, CigiBaseSymbolSurfaceDef::SurfaceID, CigiBaseSymbolSurfaceDef::SurfaceState, CigiBasePacket::Version, CigiBaseSymbolSurfaceDef::Width, CigiBaseSymbolSurfaceDef::XLeft, CigiBaseSymbolSurfaceDef::YawBottom, CigiBaseSymbolSurfaceDef::YRight, and CigiBaseSymbolSurfaceDef::ZTop.

00057 {
00058    PacketID = CIGI_SYMBOL_SURFACE_DEF_PACKET_ID_V3_3;
00059    PacketSize = CIGI_SYMBOL_SURFACE_DEF_PACKET_SIZE_V3_3;
00060    Version = 3;
00061    MinorVersion = 3;
00062    SurfaceID = 0;
00063    SurfaceState = CigiBaseSymbolSurfaceDef::Active;
00064    Attached = CigiBaseSymbolSurfaceDef::EntityAttached;
00065    BillboardState = CigiBaseSymbolSurfaceDef::NotBillboard;
00066    PerspectiveGrowth = CigiBaseSymbolSurfaceDef::Enable;
00067    EntityViewID = 0;
00068    XLeft = 0.0;
00069    YRight = 0.0;
00070    ZTop = 0.0;
00071    YawBottom = 0.0;
00072    Pitch = 0.0;
00073    Roll = 0.0;
00074    Width = 0.0;
00075    Height = 0.0;
00076    MinU = 0.0;
00077    MaxU = 0.0;
00078    MinV = 0.0;
00079    MaxV = 0.0;
00080 }

CigiSymbolSurfaceDefV3_3::~CigiSymbolSurfaceDefV3_3 ( void   )  [virtual]

General Destructor

Definition at line 85 of file CigiSymbolSurfaceDefV3_3.cpp.

00086 {
00087 }


Member Function Documentation

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

A virtual Pack function.

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.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Implements CigiBaseSymbolSurfaceDef.

Definition at line 98 of file CigiSymbolSurfaceDefV3_3.cpp.

References CigiBaseSymbolSurfaceDef::Attached, CigiBaseSymbolSurfaceDef::BillboardState, PackPointerUnion::c, CigiBaseSymbolSurfaceDef::EntityAttached, CigiBaseSymbolSurfaceDef::EntityViewID, PackPointerUnion::f, CigiBaseSymbolSurfaceDef::Height, PackPointerUnion::l, CigiBaseSymbolSurfaceDef::MaxU, CigiBaseSymbolSurfaceDef::MaxV, CigiBaseSymbolSurfaceDef::MinU, CigiBaseSymbolSurfaceDef::MinV, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolSurfaceDef::PerspectiveGrowth, CigiBaseSymbolSurfaceDef::Pitch, CigiBaseSymbolSurfaceDef::Roll, PackPointerUnion::s, CigiBaseSymbolSurfaceDef::SurfaceID, CigiBaseSymbolSurfaceDef::SurfaceState, CigiBaseSymbolSurfaceDef::Width, CigiBaseSymbolSurfaceDef::XLeft, CigiBaseSymbolSurfaceDef::YawBottom, CigiBaseSymbolSurfaceDef::YRight, and CigiBaseSymbolSurfaceDef::ZTop.

00099 {
00100    PackPointer CDta;
00101 
00102    CigiSymbolSurfaceDefV3_3 * Data =
00103       ( CigiSymbolSurfaceDefV3_3 *)Base;
00104 
00105    CDta.c = Buff;
00106 
00107    *CDta.c++ = PacketID;
00108    *CDta.c++ = PacketSize;
00109 
00110    *CDta.s++ = Data->SurfaceID;
00111 
00112    unsigned char HDta = 0;
00113    HDta |= (Data->SurfaceState & 0x01);
00114    HDta |= ((Data->Attached << 1) & 0x02);
00115    HDta |= ((Data->BillboardState << 2) & 0x04);
00116    HDta |= ((Data->PerspectiveGrowth << 3) & 0x08);
00117    *CDta.c++ = HDta;
00118 
00119    *CDta.c++ = 0;
00120    *CDta.s++ = Data->EntityViewID;
00121    *CDta.f++ = Data->XLeft;
00122    *CDta.f++ = Data->YRight;
00123    *CDta.f++ = Data->ZTop;
00124    *CDta.f++ = Data->YawBottom;
00125 
00126    if(Attached == Data->EntityAttached)
00127    {
00128       *CDta.f++ = Data->Pitch;
00129       *CDta.f++ = Data->Roll;
00130       *CDta.f++ = Data->Width;
00131       *CDta.f++ = Data->Height;
00132    }
00133    else
00134    {
00135       *CDta.l++ = 0;
00136       *CDta.l++ = 0;
00137       *CDta.l++ = 0;
00138       *CDta.l++ = 0;
00139    }
00140 
00141    *CDta.f++ = Data->MinU;
00142    *CDta.f++ = Data->MaxU;
00143    *CDta.f++ = Data->MinV;
00144    *CDta.f++ = Data->MaxV;
00145 
00146    return(PacketSize);
00147 
00148 }

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

A virtual Unpack function.

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

Implements CigiBaseSymbolSurfaceDef.

Definition at line 153 of file CigiSymbolSurfaceDefV3_3.cpp.

References CigiBaseSymbolSurfaceDef::Attached, CigiBaseSymbolSurfaceDef::BillboardState, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseSymbolSurfaceDef::EntityAttached, CigiBaseSymbolSurfaceDef::EntityViewID, PackPointerUnion::f, CigiBaseSymbolSurfaceDef::Height, PackPointerUnion::l, CigiBaseSymbolSurfaceDef::MaxU, CigiBaseSymbolSurfaceDef::MaxV, CigiBaseSymbolSurfaceDef::MinU, CigiBaseSymbolSurfaceDef::MinV, CigiBasePacket::PacketSize, CigiBaseSymbolSurfaceDef::PerspectiveGrowth, CigiBaseSymbolSurfaceDef::Pitch, CigiBaseSymbolSurfaceDef::Roll, PackPointerUnion::s, CigiBaseSymbolSurfaceDef::SurfaceID, CigiBaseSymbolSurfaceDef::SurfaceState, CigiBaseSymbolSurfaceDef::Width, CigiBaseSymbolSurfaceDef::XLeft, CigiBaseSymbolSurfaceDef::YawBottom, CigiBaseSymbolSurfaceDef::YRight, and CigiBaseSymbolSurfaceDef::ZTop.

00154 {
00155    PackPointer CDta;
00156    unsigned char HDta = 0;
00157 
00158    CDta.c = Buff;
00159 
00160    CDta.c += 2;  // Step over packet id and size
00161 
00162    if(!Swap)
00163    {
00164       SurfaceID = *CDta.s++;
00165 
00166       HDta = *CDta.c++;
00167       Attached = (AttachStateGrp)((HDta >> 1) & 0x01);
00168       CDta.c++;
00169 
00170       EntityViewID = *CDta.s++;
00171       XLeft = *CDta.f++;
00172       YRight = *CDta.f++;
00173       ZTop = *CDta.f++;
00174       YawBottom = *CDta.f++;
00175 
00176       if(Attached == EntityAttached)
00177       {
00178          Pitch = *CDta.f++;
00179          Roll = *CDta.f++;
00180          Width = *CDta.f++;
00181          Height = *CDta.f++;
00182       }
00183       else
00184       {
00185          CDta.l += 4;
00186 
00187          Pitch = 0.0f;
00188          Roll = 0.0f;
00189          Width = 0.0f;
00190          Height = 0.0f;
00191       }
00192 
00193       MinU = *CDta.f++;
00194       MaxU = *CDta.f++;
00195       MinV = *CDta.f++;
00196       MaxV = *CDta.f++;
00197    }
00198    else
00199    {
00200       CigiSwap2(&SurfaceID, CDta.s++);
00201 
00202       HDta = *CDta.c++;
00203       Attached = (AttachStateGrp)((HDta >> 1) & 0x01);
00204       CDta.c++;
00205 
00206       CigiSwap2(&EntityViewID, CDta.s++);
00207       CigiSwap4(&XLeft, CDta.f++);
00208       CigiSwap4(&YRight, CDta.f++);
00209       CigiSwap4(&ZTop, CDta.f++);
00210       CigiSwap4(&YawBottom, CDta.f++);
00211 
00212       if(Attached == EntityAttached)
00213       {
00214          CigiSwap4(&Pitch, CDta.f++);
00215          CigiSwap4(&Roll, CDta.f++);
00216          CigiSwap4(&Width, CDta.f++);
00217          CigiSwap4(&Height, CDta.f++);
00218       }
00219       else
00220       {
00221          CDta.l += 4;
00222 
00223          Pitch = 0.0f;
00224          Roll = 0.0f;
00225          Width = 0.0f;
00226          Height = 0.0f;
00227       }
00228 
00229       CigiSwap4(&MinU, CDta.f++);
00230       CigiSwap4(&MaxU, CDta.f++);
00231       CigiSwap4(&MinV, CDta.f++);
00232       CigiSwap4(&MaxV, CDta.f++);
00233    }
00234 
00235    SurfaceState = (StateGrp)(HDta & 0x01);
00236    BillboardState = (BillboardStateGrp)((HDta >> 2) & 0x01);
00237    PerspectiveGrowth = (PerspectiveGrowthStateGrp)((HDta >> 3) & 0x01);
00238 
00239    return(PacketSize);
00240 
00241 }


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