CigiShortArtPartCtrlV3 Class Reference

#include <CigiShortArtPartCtrlV3.h>

Inheritance diagram for CigiShortArtPartCtrlV3:

CigiBaseShortArtPartCtrl CigiBasePacket List of all members.

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)

Detailed Description

Definition at line 57 of file CigiShortArtPartCtrlV3.h.


Constructor & Destructor Documentation

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]

General Destructor

Definition at line 90 of file CigiShortArtPartCtrlV3.cpp.

00091 {
00092 
00093 }


Member Function Documentation

int CigiShortArtPartCtrlV3::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 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

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 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 }


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