#include <CigiSymbolCtrlV3_3.h>
Inheritance diagram for CigiSymbolCtrlV3_3:
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) |
Definition at line 50 of file CigiSymbolCtrlV3_3.h.
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] |
int CigiSymbolCtrlV3_3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
A virtual Pack function.
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. |
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.
Buff | - A pointer to the current pack point. | |
Swap | - N/A for V1 & V2 | |
Spec | - A pointer to special data. |
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 }