CigiTrajectoryDefV2.cpp

Go to the documentation of this file.
00001 
00052 #define _EXPORT_CCL_
00053 
00054 #include "CigiTrajectoryDefV2.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 // CigiTrajectoryDefV2
00081 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00082 CigiTrajectoryDefV2::CigiTrajectoryDefV2()
00083 {
00084 
00085    PacketID = CIGI_TRAJECTORY_DEF_PACKET_ID_V2;
00086    PacketSize = CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2;
00087    Version = 2;
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 // ~CigiTrajectoryDefV2
00105 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00106 CigiTrajectoryDefV2::~CigiTrajectoryDefV2()
00107 {
00108 
00109 }
00110 
00111 // ====================================================================
00112 // Pack and Unpack
00113 // ====================================================================
00114 
00115 // ================================================
00116 // Pack
00117 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00118 int CigiTrajectoryDefV2::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 
00138    memcpy(Buff,tBuf,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2);
00139 
00140    return(PacketSize);
00141 
00142 }
00143 
00144 // ================================================
00145 // Unpack
00146 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00147 int CigiTrajectoryDefV2::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec)
00148 {
00149    double DBuf[6];
00150 
00151    Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00152 
00153    PackPointer CDta;
00154 
00155    memcpy(tBuf,Buff,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2);
00156 
00157    CDta.d = DBuf;
00158 
00159    CDta.c += 2;  // Step over packet id and size
00160 
00161    CIGI_SCOPY2(&EntityID, CDta.s++);
00162    CIGI_SCOPY4(&Accel, CDta.f++);
00163    CIGI_SCOPY4(&RetardationRate, CDta.f++);
00164    CIGI_SCOPY4(&TermVel, CDta.f++);
00165 
00166    Xoff = 0.0;
00167    Yoff = 0.0;
00168    Zoff = 0.0;
00169    AccelX = 0.0f;
00170    AccelY = 0.0f;
00171    AccelZ = Accel;
00172 
00173    return(PacketSize);
00174 
00175 }
00176 
00177 
00178 
00179 // ====================================================================
00180 // Accessors
00181 // ====================================================================
00182 
00183 

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