CigiTrajectoryDefV1.cpp

Go to the documentation of this file.
00001 
00052 #define _EXPORT_CCL_
00053 
00054 #include "CigiTrajectoryDefV1.h"
00055 #include "CigiSwapping.h"
00056 #include "CigiExceptions.h"
00057 
00058 #include <memory.h>
00059 
00060 
00061 #ifdef CIGI_LITTLE_ENDIAN
00062    #define CIGI_SCOPY2 CigiSwap2
00063    #define CIGI_SCOPY4 CigiSwap4
00064    #define CIGI_SCOPY8 CigiSwap8
00065 #else
00066    #define CIGI_SCOPY2 CigiCopy2
00067    #define CIGI_SCOPY4 CigiCopy4
00068    #define CIGI_SCOPY8 CigiCopy8
00069 #endif
00070 
00071 
00072 
00073 
00074 // ====================================================================
00075 // Construction/Destruction
00076 // ====================================================================
00077 
00078 
00079 // ================================================
00080 // CigiTrajectoryDefV1
00081 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00082 CigiTrajectoryDefV1::CigiTrajectoryDefV1()
00083 {
00084 
00085    PacketID = CIGI_TRAJECTORY_DEF_PACKET_ID_V1;
00086    PacketSize = CIGI_TRAJECTORY_DEF_PACKET_SIZE_V1;
00087    Version = 1;
00088    MinorVersion = 0;
00089 
00090    EntityID = 0;
00091    Accel = 0.0;
00092    RetardationRate = 0.0;
00093    TermVel = 0.0;
00094    Xoff = 0.0;
00095    Yoff = 0.0;
00096    Zoff = 0.0;
00097    AccelX = 0.0;
00098    AccelY = 0.0;
00099    AccelZ = 0.0;
00100 
00101 }
00102 
00103 // ================================================
00104 // ~CigiTrajectoryDefV1
00105 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00106 CigiTrajectoryDefV1::~CigiTrajectoryDefV1()
00107 {
00108 
00109 }
00110 
00111 // ====================================================================
00112 // Pack and Unpack
00113 // ====================================================================
00114 
00115 // ================================================
00116 // Pack
00117 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00118 int CigiTrajectoryDefV1::Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const
00119 {
00120    double DBuf[6];
00121 
00122    Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00123 
00124    PackPointer CDta;
00125 
00126    CigiBaseTrajectoryDef * Data = ( CigiBaseTrajectoryDef *)Base;
00127 
00128    CDta.d = DBuf;
00129 
00130    *CDta.c++ = PacketID;
00131    *CDta.c++ = PacketSize;
00132 
00133    CIGI_SCOPY2(CDta.s++, &Data->EntityID);
00134    CIGI_SCOPY4(CDta.f++, &Data->Accel);
00135    CIGI_SCOPY4(CDta.f++, &Data->RetardationRate);
00136    CIGI_SCOPY4(CDta.f++, &Data->TermVel);
00137    CIGI_SCOPY4(CDta.f++, &Data->Xoff);
00138    CIGI_SCOPY4(CDta.f++, &Data->Yoff);
00139    CIGI_SCOPY4(CDta.f++, &Data->Zoff);
00140 
00141    memcpy(Buff,tBuf,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V1);
00142 
00143    return(PacketSize);
00144 
00145 }
00146 
00147 // ================================================
00148 // Unpack
00149 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00150 int CigiTrajectoryDefV1::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec)
00151 {
00152    double DBuf[6];
00153 
00154    Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00155 
00156    PackPointer CDta;
00157 
00158    memcpy(tBuf,Buff,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V1);
00159 
00160    CDta.d = DBuf;
00161 
00162    CDta.c += 2;  // Step over packet id and size
00163 
00164    CIGI_SCOPY2(&EntityID, CDta.s++);
00165    CIGI_SCOPY4(&Accel, CDta.f++);
00166    CIGI_SCOPY4(&RetardationRate, CDta.f++);
00167    CIGI_SCOPY4(&TermVel, CDta.f++);
00168    CIGI_SCOPY4(&Xoff, CDta.f++);
00169    CIGI_SCOPY4(&Yoff, CDta.f++);
00170    CIGI_SCOPY4(&Zoff, CDta.f++);
00171 
00172    AccelX = 0.0f;
00173    AccelY = 0.0f;
00174    AccelZ = Accel;
00175 
00176    return(PacketSize);
00177 
00178 }
00179 
00180 
00181 
00182 // ====================================================================
00183 // Accessors
00184 // ====================================================================
00185 
00186 

Generated on Wed Apr 29 08:59:59 2009 for CCL by  doxygen 1.4.7