#include <CigiCollDetSegDefV3.h>
Inheritance diagram for CigiCollDetSegDefV3:
Public Member Functions | |
CigiCollDetSegDefV3 () | |
virtual | ~CigiCollDetSegDefV3 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
int | SetSegmentID (const Cigi_uint8 SegmentIDIn, bool bndchk=true) |
Cigi_uint8 | GetSegmentID (void) const |
Definition at line 58 of file CigiCollDetSegDefV3.h.
CigiCollDetSegDefV3::CigiCollDetSegDefV3 | ( | ) |
General Constructor
Definition at line 67 of file CigiCollDetSegDefV3.cpp.
References CIGI_COLL_DET_SEG_DEF_PACKET_ID_V3, CIGI_COLL_DET_SEG_DEF_PACKET_SIZE_V3, CigiBaseCollDetSegDef::EntityID, CigiBaseCollDetSegDef::Mask, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseCollDetSegDef::SegmentEn, CigiBaseCollDetSegDef::SegmentID, CigiBasePacket::Version, CigiBaseCollDetSegDef::X1, CigiBaseCollDetSegDef::X2, CigiBaseCollDetSegDef::Y1, CigiBaseCollDetSegDef::Y2, CigiBaseCollDetSegDef::Z1, and CigiBaseCollDetSegDef::Z2.
00068 { 00069 00070 PacketID = CIGI_COLL_DET_SEG_DEF_PACKET_ID_V3; 00071 PacketSize = CIGI_COLL_DET_SEG_DEF_PACKET_SIZE_V3; 00072 Version = 3; 00073 MinorVersion = 0; 00074 00075 EntityID = 0; 00076 SegmentID = 0; 00077 SegmentEn = false; 00078 X1 = 0.0; 00079 Y1 = 0.0; 00080 Z1 = 0.0; 00081 X2 = 0.0; 00082 Y2 = 0.0; 00083 Z2 = 0.0; 00084 Mask = 0; 00085 00086 }
CigiCollDetSegDefV3::~CigiCollDetSegDefV3 | ( | ) | [virtual] |
Cigi_uint8 CigiCollDetSegDefV3::GetSegmentID | ( | void | ) | const [inline] |
Gets the SegmentID value.
Definition at line 125 of file CigiCollDetSegDefV3.h.
00125 { return(SegmentID); }
int CigiCollDetSegDefV3::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 CigiBaseCollDetSegDef.
Definition at line 103 of file CigiCollDetSegDefV3.cpp.
References PackPointerUnion::c, CigiBaseCollDetSegDef::EntityID, PackPointerUnion::f, PackPointerUnion::l, CigiBaseCollDetSegDef::Mask, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseCollDetSegDef::SegmentEn, CigiBaseCollDetSegDef::SegmentID, CigiBaseCollDetSegDef::X1, CigiBaseCollDetSegDef::X2, CigiBaseCollDetSegDef::Y1, CigiBaseCollDetSegDef::Y2, CigiBaseCollDetSegDef::Z1, and CigiBaseCollDetSegDef::Z2.
00104 { 00105 PackPointer CDta; 00106 00107 CigiBaseCollDetSegDef * Data = ( CigiBaseCollDetSegDef *)Base; 00108 00109 CDta.c = Buff; 00110 00111 *CDta.c++ = PacketID; 00112 *CDta.c++ = PacketSize; 00113 00114 *CDta.s++ = Data->EntityID; 00115 *CDta.c++ = Data->SegmentID; 00116 00117 Cigi_uint8 HDta = (Data->SegmentEn) ? 0x01 : 0x00; 00118 *CDta.c++ = HDta; 00119 00120 *CDta.s++ = 0; 00121 00122 *CDta.f++ = Data->X1; 00123 *CDta.f++ = Data->Y1; 00124 *CDta.f++ = Data->Z1; 00125 *CDta.f++ = Data->X2; 00126 *CDta.f++ = Data->Y2; 00127 *CDta.f++ = Data->Z2; 00128 *CDta.l++ = Data->Mask; 00129 *CDta.l++ = 0; 00130 00131 return(PacketSize); 00132 00133 }
int CigiCollDetSegDefV3::SetSegmentID | ( | const Cigi_uint8 | SegmentIDIn, | |
bool | bndchk = true | |||
) | [inline] |
Sets the SegmentID with bound checking control
SegmentIDIn | - Segment ID | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 116 of file CigiCollDetSegDefV3.h.
References CIGI_SUCCESS.
00117 { 00118 SegmentID = SegmentIDIn; 00119 return(CIGI_SUCCESS); 00120 }
int CigiCollDetSegDefV3::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 CigiBaseCollDetSegDef.
Definition at line 138 of file CigiCollDetSegDefV3.cpp.
References PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseCollDetSegDef::EntityID, PackPointerUnion::f, PackPointerUnion::l, CigiBaseCollDetSegDef::Mask, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseCollDetSegDef::SegmentEn, CigiBaseCollDetSegDef::SegmentID, CigiBaseCollDetSegDef::X1, CigiBaseCollDetSegDef::X2, CigiBaseCollDetSegDef::Y1, CigiBaseCollDetSegDef::Y2, CigiBaseCollDetSegDef::Z1, and CigiBaseCollDetSegDef::Z2.
00139 { 00140 PackPointer CDta; 00141 00142 CDta.c = Buff; 00143 00144 CDta.c += 2; // Step over packet id and size 00145 00146 if(!Swap) 00147 { 00148 EntityID = *CDta.s++; 00149 SegmentID = *CDta.c++; 00150 00151 Cigi_uint8 HDta = *CDta.c++; 00152 SegmentEn = ((HDta & 0x01) != 0); 00153 00154 CDta.s++; 00155 00156 X1 = *CDta.f++; 00157 Y1 = *CDta.f++; 00158 Z1 = *CDta.f++; 00159 X2 = *CDta.f++; 00160 Y2 = *CDta.f++; 00161 Z2 = *CDta.f++; 00162 Mask = *CDta.l++; 00163 } 00164 else 00165 { 00166 CigiSwap2(&EntityID, CDta.s++); 00167 SegmentID = *CDta.c++; 00168 00169 Cigi_uint8 HDta = *CDta.c++; 00170 SegmentEn = ((HDta & 0x01) != 0); 00171 00172 CDta.s++; 00173 00174 CigiSwap4(&X1, CDta.f++); 00175 CigiSwap4(&Y1, CDta.f++); 00176 CigiSwap4(&Z1, CDta.f++); 00177 CigiSwap4(&X2, CDta.f++); 00178 CigiSwap4(&Y2, CDta.f++); 00179 CigiSwap4(&Z2, CDta.f++); 00180 CigiSwap4(&Mask, CDta.l++); 00181 } 00182 00183 return(PacketSize); 00184 00185 }