CigiCollDetSegDefV3 Class Reference

#include <CigiCollDetSegDefV3.h>

Inheritance diagram for CigiCollDetSegDefV3:

CigiBaseCollDetSegDef CigiBasePacket List of all members.

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

Detailed Description

Definition at line 58 of file CigiCollDetSegDefV3.h.


Constructor & Destructor Documentation

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]

General Destructor

Definition at line 91 of file CigiCollDetSegDefV3.cpp.

00092 {
00093 
00094 }


Member Function Documentation

Cigi_uint8 CigiCollDetSegDefV3::GetSegmentID ( void   )  const [inline]

Gets the SegmentID value.

Returns:
the current SegmentID.

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

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

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

Parameters:
SegmentIDIn - Segment ID
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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

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

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 }


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