#include <CigiShortArtPartCtrlV3.h>
Inheritance diagram for CigiShortArtPartCtrlV3:
Public Member Functions | |
CigiShortArtPartCtrlV3 () | |
virtual | ~CigiShortArtPartCtrlV3 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 57 of file CigiShortArtPartCtrlV3.h.
CigiShortArtPartCtrlV3::CigiShortArtPartCtrlV3 | ( | ) |
General Constructor
Definition at line 67 of file CigiShortArtPartCtrlV3.cpp.
References CigiBaseShortArtPartCtrl::ArtPart1, CigiBaseShortArtPartCtrl::ArtPart1En, CigiBaseShortArtPartCtrl::ArtPart2, CigiBaseShortArtPartCtrl::ArtPart2En, CIGI_SHORT_ART_PART_CTRL_PACKET_ID_V3, CIGI_SHORT_ART_PART_CTRL_PACKET_SIZE_V3, CigiBaseShortArtPartCtrl::Dof1, CigiBaseShortArtPartCtrl::Dof2, CigiBaseShortArtPartCtrl::DofSelect1, CigiBaseShortArtPartCtrl::DofSelect2, CigiBaseShortArtPartCtrl::EntityID, CigiBasePacket::MinorVersion, CigiBaseShortArtPartCtrl::NotUsed, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, and CigiBasePacket::Version.
00068 { 00069 00070 PacketID = CIGI_SHORT_ART_PART_CTRL_PACKET_ID_V3; 00071 PacketSize = CIGI_SHORT_ART_PART_CTRL_PACKET_SIZE_V3; 00072 Version = 3; 00073 MinorVersion = 0; 00074 00075 EntityID = 0; 00076 ArtPart1 = 0; 00077 ArtPart2 = 0; 00078 DofSelect1 = NotUsed; 00079 DofSelect2 = NotUsed; 00080 ArtPart1En = false; 00081 ArtPart2En = false; 00082 Dof1 = 0.0; 00083 Dof2 = 0.0; 00084 00085 }
CigiShortArtPartCtrlV3::~CigiShortArtPartCtrlV3 | ( | ) | [virtual] |
int CigiShortArtPartCtrlV3::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 CigiBaseShortArtPartCtrl.
Definition at line 102 of file CigiShortArtPartCtrlV3.cpp.
References CigiBaseShortArtPartCtrl::ArtPart1, CigiBaseShortArtPartCtrl::ArtPart1En, CigiBaseShortArtPartCtrl::ArtPart2, CigiBaseShortArtPartCtrl::ArtPart2En, PackPointerUnion::c, CigiBaseShortArtPartCtrl::Dof1, CigiBaseShortArtPartCtrl::Dof2, CigiBaseShortArtPartCtrl::DofSelect1, CigiBaseShortArtPartCtrl::DofSelect2, CigiBaseShortArtPartCtrl::EntityID, PackPointerUnion::f, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, and PackPointerUnion::s.
00103 { 00104 PackPointer CDta; 00105 00106 CigiBaseShortArtPartCtrl * Data = ( CigiBaseShortArtPartCtrl *)Base; 00107 00108 CDta.c = Buff; 00109 00110 *CDta.c++ = PacketID; 00111 *CDta.c++ = PacketSize; 00112 00113 *CDta.s++ = Data->EntityID; 00114 *CDta.c++ = Data->ArtPart1; 00115 *CDta.c++ = Data->ArtPart2; 00116 00117 Cigi_uint8 HDta = Data->DofSelect1 & 0x07; 00118 HDta |= (Data->DofSelect2 << 3) & 0x38; 00119 HDta |= (Data->ArtPart1En) ? 0x40 : 0; 00120 HDta |= (Data->ArtPart2En) ? 0x80 : 0; 00121 *CDta.c++ = HDta; 00122 00123 *CDta.c++ = 0; 00124 00125 *CDta.f++ = Data->Dof1; 00126 *CDta.f++ = Data->Dof2; 00127 00128 return(PacketSize); 00129 00130 }
int CigiShortArtPartCtrlV3::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 CigiBaseShortArtPartCtrl.
Definition at line 135 of file CigiShortArtPartCtrlV3.cpp.
References CigiBaseShortArtPartCtrl::ArtPart1, CigiBaseShortArtPartCtrl::ArtPart1En, CigiBaseShortArtPartCtrl::ArtPart2, CigiBaseShortArtPartCtrl::ArtPart2En, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseShortArtPartCtrl::Dof1, CigiBaseShortArtPartCtrl::Dof2, CigiBaseShortArtPartCtrl::DofSelect1, CigiBaseShortArtPartCtrl::DofSelect2, CigiBaseShortArtPartCtrl::EntityID, PackPointerUnion::f, CigiBasePacket::PacketSize, and PackPointerUnion::s.
00136 { 00137 PackPointer CDta; 00138 00139 CDta.c = Buff; 00140 00141 CDta.c += 2; // Step over packet id and size 00142 00143 if(!Swap) 00144 { 00145 EntityID = *CDta.s++; 00146 ArtPart1 = *CDta.c++; 00147 ArtPart2 = *CDta.c++; 00148 00149 Cigi_uint8 HDta = *CDta.c++; 00150 DofSelect1 = (DofSelectGrp)(HDta & 0x07); 00151 DofSelect2 = (DofSelectGrp)((HDta >> 3) & 0x07); 00152 ArtPart1En = ((HDta & 0x40) != 0); 00153 ArtPart2En = ((HDta & 0x80) != 0); 00154 00155 CDta.c++; 00156 00157 Dof1 = *CDta.f++; 00158 Dof2 = *CDta.f++; 00159 } 00160 else 00161 { 00162 CigiSwap2(&EntityID, CDta.s++); 00163 ArtPart1 = *CDta.c++; 00164 ArtPart2 = *CDta.c++; 00165 00166 Cigi_uint8 HDta = *CDta.c++; 00167 DofSelect1 = (DofSelectGrp)(HDta & 0x07); 00168 DofSelect2 = (DofSelectGrp)((HDta >> 3) & 0x07); 00169 ArtPart1En = ((HDta & 0x40) != 0); 00170 ArtPart2En = ((HDta & 0x80) != 0); 00171 00172 CDta.c++; 00173 00174 CigiSwap4(&Dof1, CDta.f++); 00175 CigiSwap4(&Dof2, CDta.f++); 00176 } 00177 00178 return(PacketSize); 00179 00180 }