CigiSymbolCtrlV3_3 Class Reference

#include <CigiSymbolCtrlV3_3.h>

Inheritance diagram for CigiSymbolCtrlV3_3:

CigiBaseSymbolCtrl CigiBasePacket List of all members.

Public Member Functions

 CigiSymbolCtrlV3_3 (void)
virtual ~CigiSymbolCtrlV3_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 CigiSymbolCtrlV3_3.h.


Constructor & Destructor Documentation

CigiSymbolCtrlV3_3::CigiSymbolCtrlV3_3 ( void   ) 

General Constructor

Definition at line 59 of file CigiSymbolCtrlV3_3.cpp.

References CigiBaseSymbolCtrl::Alpha, CigiBaseSymbolCtrl::AttachState, CigiBaseSymbolCtrl::Blue, CIGI_SYMBOL_CONTROL_PACKET_ID_V3_3, CIGI_SYMBOL_CONTROL_PACKET_SIZE_V3_3, CigiBaseSymbolCtrl::Continue, CigiBaseSymbolCtrl::Detach, CigiBaseSymbolCtrl::FlashCtrl, CigiBaseSymbolCtrl::FlashDutyCycle, CigiBaseSymbolCtrl::FlashPeriod, CigiBaseSymbolCtrl::Green, CigiBaseSymbolCtrl::Hidden, CigiBaseSymbolCtrl::InheritColor, CigiBaseSymbolCtrl::Layer, CigiBasePacket::MinorVersion, CigiBaseSymbolCtrl::NotInherit, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolCtrl::ParentSymbolID, CigiBaseSymbolCtrl::Red, CigiBaseSymbolCtrl::Rotation, CigiBaseSymbolCtrl::ScaleU, CigiBaseSymbolCtrl::ScaleV, CigiBaseSymbolCtrl::SurfaceID, CigiBaseSymbolCtrl::SymbolID, CigiBaseSymbolCtrl::SymbolState, CigiBaseSymbolCtrl::UPosition, CigiBasePacket::Version, and CigiBaseSymbolCtrl::VPosition.

00060 {
00061    PacketID = CIGI_SYMBOL_CONTROL_PACKET_ID_V3_3;
00062    PacketSize = CIGI_SYMBOL_CONTROL_PACKET_SIZE_V3_3;
00063    Version = 3;
00064    MinorVersion = 3;
00065 
00066    SymbolID = 0;
00067    SymbolState = CigiBaseSymbolCtrl::Hidden;
00068    AttachState = CigiBaseSymbolCtrl::Detach;
00069    FlashCtrl = CigiBaseSymbolCtrl::Continue;
00070    InheritColor = CigiBaseSymbolCtrl::NotInherit;
00071    ParentSymbolID = 0;
00072    SurfaceID = 0;
00073    Layer = 0;
00074    FlashDutyCycle = 0;
00075    FlashPeriod = 0.0;
00076    UPosition = 0.0;
00077    VPosition = 0.0;
00078    Rotation = 0.0;
00079    Red = 0;
00080    Green = 0;
00081    Blue = 0;
00082    Alpha = 0;
00083    ScaleU = 0.0;
00084    ScaleV = 0.0;
00085 
00086 }

CigiSymbolCtrlV3_3::~CigiSymbolCtrlV3_3 ( void   )  [virtual]

General Destructor

Definition at line 91 of file CigiSymbolCtrlV3_3.cpp.

00092 {
00093 }


Member Function Documentation

int CigiSymbolCtrlV3_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 CigiBaseSymbolCtrl.

Definition at line 104 of file CigiSymbolCtrlV3_3.cpp.

References CigiBaseSymbolCtrl::Alpha, CigiBaseSymbolCtrl::AttachState, CigiBaseSymbolCtrl::Blue, PackPointerUnion::c, PackPointerUnion::f, CigiBaseSymbolCtrl::FlashCtrl, CigiBaseSymbolCtrl::FlashDutyCycle, CigiBaseSymbolCtrl::FlashPeriod, CigiBaseSymbolCtrl::Green, CigiBaseSymbolCtrl::InheritColor, CigiBaseSymbolCtrl::Layer, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolCtrl::ParentSymbolID, CigiBaseSymbolCtrl::Red, CigiBaseSymbolCtrl::Rotation, PackPointerUnion::s, CigiBaseSymbolCtrl::ScaleU, CigiBaseSymbolCtrl::ScaleV, CigiBaseSymbolCtrl::SurfaceID, CigiBaseSymbolCtrl::SymbolID, CigiBaseSymbolCtrl::SymbolState, CigiBaseSymbolCtrl::UPosition, and CigiBaseSymbolCtrl::VPosition.

00105 {
00106    PackPointer CDta;
00107 
00108    CigiSymbolCtrlV3_3 * Data =
00109       ( CigiSymbolCtrlV3_3 *)Base;
00110 
00111    CDta.c = Buff;
00112 
00113    *CDta.c++ = PacketID;
00114    *CDta.c++ = PacketSize;
00115 
00116    *CDta.s++ = Data->SymbolID;
00117 
00118    unsigned char HDta = 0;
00119    HDta |= (Data->SymbolState & 0x03);
00120    HDta |= ((Data->AttachState << 2) & 0x04);
00121    HDta |= ((Data->FlashCtrl << 3) & 0x08);
00122    HDta |= ((Data->InheritColor << 4) & 0x10);
00123    *CDta.c++ = HDta;
00124 
00125    *CDta.c++ = 0;
00126 
00127    *CDta.s++ = Data->ParentSymbolID;
00128    *CDta.s++ = Data->SurfaceID;
00129    *CDta.c++ = Data->Layer;
00130    *CDta.c++ = Data->FlashDutyCycle;
00131    *CDta.f++ = Data->FlashPeriod;
00132    *CDta.f++ = Data->UPosition;
00133    *CDta.f++ = Data->VPosition;
00134    *CDta.f++ = Data->Rotation;
00135    *CDta.c++ = Data->Red;
00136    *CDta.c++ = Data->Green;
00137    *CDta.c++ = Data->Blue;
00138    *CDta.c++ = Data->Alpha;
00139    *CDta.f++ = Data->ScaleU;
00140    *CDta.f++ = Data->ScaleV;
00141 
00142 
00143    return(PacketSize);
00144 
00145 }

int CigiSymbolCtrlV3_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 CigiBaseSymbolCtrl.

Definition at line 150 of file CigiSymbolCtrlV3_3.cpp.

References CigiBaseSymbolCtrl::Alpha, CigiBaseSymbolCtrl::AttachState, CigiBaseSymbolCtrl::Blue, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), PackPointerUnion::f, CigiBaseSymbolCtrl::FlashCtrl, CigiBaseSymbolCtrl::FlashDutyCycle, CigiBaseSymbolCtrl::FlashPeriod, CigiBaseSymbolCtrl::Green, CigiBaseSymbolCtrl::InheritColor, CigiBaseSymbolCtrl::Layer, CigiBasePacket::PacketSize, CigiBaseSymbolCtrl::ParentSymbolID, CigiBaseSymbolCtrl::Red, CigiBaseSymbolCtrl::Rotation, PackPointerUnion::s, CigiBaseSymbolCtrl::ScaleU, CigiBaseSymbolCtrl::ScaleV, CigiBaseSymbolCtrl::SurfaceID, CigiBaseSymbolCtrl::SymbolID, CigiBaseSymbolCtrl::SymbolState, CigiBaseSymbolCtrl::UPosition, and CigiBaseSymbolCtrl::VPosition.

00151 {
00152    PackPointer CDta;
00153    unsigned char HDta = 0;
00154 
00155    CDta.c = Buff;
00156 
00157    CDta.c += 2;  // Step over packet id and size
00158 
00159    if(!Swap)
00160    {
00161 
00162       SymbolID = *CDta.s++;
00163 
00164       HDta = *CDta.c++;
00165 
00166       CDta.c++;
00167 
00168       ParentSymbolID = *CDta.s++;
00169       SurfaceID = *CDta.s++;
00170       Layer = *CDta.c++;
00171       FlashDutyCycle = *CDta.c++;
00172       FlashPeriod = *CDta.f++;
00173       UPosition = *CDta.f++;
00174       VPosition = *CDta.f++;
00175       Rotation = *CDta.f++;
00176       Red = *CDta.c++;
00177       Green = *CDta.c++;
00178       Blue = *CDta.c++;
00179       Alpha = *CDta.c++;
00180       ScaleU = *CDta.f++;
00181       ScaleV = *CDta.f++;
00182 
00183    }
00184    else
00185    {
00186 
00187       CigiSwap2(&SymbolID, CDta.s++);
00188 
00189       HDta = *CDta.c++;
00190 
00191       CDta.c++;
00192 
00193       CigiSwap2(&ParentSymbolID, CDta.s++);
00194       CigiSwap2(&SurfaceID, CDta.s++);
00195       Layer = *CDta.c++;
00196       FlashDutyCycle = *CDta.c++;
00197       CigiSwap4(&FlashPeriod, CDta.f++);
00198       CigiSwap4(&UPosition, CDta.f++);
00199       CigiSwap4(&VPosition, CDta.f++);
00200       CigiSwap4(&Rotation, CDta.f++);
00201       Red = *CDta.c++;
00202       Green = *CDta.c++;
00203       Blue = *CDta.c++;
00204       Alpha = *CDta.c++;
00205       CigiSwap4(&ScaleU, CDta.f++);
00206       CigiSwap4(&ScaleV, CDta.f++);
00207 
00208    }
00209 
00210    SymbolState = (SymbolStateGrp)(HDta & 0x03);
00211    AttachState = (AttachStateGrp)((HDta >> 2) & 0x01);
00212    FlashCtrl = (FlashCtrlGrp)((HDta >> 3) & 0x01);
00213    InheritColor = (InheritColorGrp)((HDta >> 4) & 0x01);
00214 
00215    return(PacketSize);
00216 
00217 }


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