#include <CigiArtPartCtrlV2.h>
Inheritance diagram for CigiArtPartCtrlV2:
Public Member Functions | |
CigiArtPartCtrlV2 () | |
virtual | ~CigiArtPartCtrlV2 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
int | SetArtPartID (const Cigi_int8 ArtPartIDIn, bool bndchk=true) |
Cigi_int8 | GetArtPartID (void) const |
Definition at line 58 of file CigiArtPartCtrlV2.h.
CigiArtPartCtrlV2::CigiArtPartCtrlV2 | ( | ) |
General Constructor
Definition at line 85 of file CigiArtPartCtrlV2.cpp.
References CigiBaseArtPartCtrl::ArtPartEn, CigiBaseArtPartCtrl::ArtPartIDV1, CigiBaseArtPartCtrl::ArtPartIDV3, CIGI_ART_PART_CTRL_PACKET_ID_V2, CIGI_ART_PART_CTRL_PACKET_SIZE_V2, CigiBaseArtPartCtrl::EntityID, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseArtPartCtrl::Pitch, CigiBaseArtPartCtrl::PitchEn, CigiBaseArtPartCtrl::Roll, CigiBaseArtPartCtrl::RollEn, CigiBasePacket::Version, CigiBaseArtPartCtrl::XOff, CigiBaseArtPartCtrl::XOffEn, CigiBaseArtPartCtrl::Yaw, CigiBaseArtPartCtrl::YawEn, CigiBaseArtPartCtrl::YOff, CigiBaseArtPartCtrl::YOffEn, CigiBaseArtPartCtrl::ZOff, and CigiBaseArtPartCtrl::ZOffEn.
00086 { 00087 00088 PacketID = CIGI_ART_PART_CTRL_PACKET_ID_V2; 00089 PacketSize = CIGI_ART_PART_CTRL_PACKET_SIZE_V2; 00090 Version = 2; 00091 MinorVersion = 0; 00092 00093 EntityID = 0; 00094 ArtPartIDV1 = 0; 00095 ArtPartIDV3 = 0; 00096 ArtPartEn = false; 00097 XOffEn = false; 00098 YOffEn = false; 00099 ZOffEn = false; 00100 RollEn = false; 00101 PitchEn = false; 00102 YawEn = false; 00103 XOff = 0.0; 00104 YOff = 0.0; 00105 ZOff = 0.0; 00106 Roll = 0.0; 00107 Pitch = 0.0; 00108 Yaw = 0.0; 00109 00110 }
CigiArtPartCtrlV2::~CigiArtPartCtrlV2 | ( | ) | [virtual] |
Cigi_int8 CigiArtPartCtrlV2::GetArtPartID | ( | void | ) | const [inline] |
Gets the ArtPartID value.
Definition at line 122 of file CigiArtPartCtrlV2.h.
00122 { return(ArtPartIDV1); }
int CigiArtPartCtrlV2::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 2
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 CigiBaseArtPartCtrl.
Definition at line 127 of file CigiArtPartCtrlV2.cpp.
References CigiBaseArtPartCtrl::ArtPartEn, CigiBaseArtPartCtrl::ArtPartIDV1, PackPointerUnion::c, CIGI_ART_PART_CTRL_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY4, PackPointerUnion::d, CigiBaseArtPartCtrl::EntityID, PackPointerUnion::f, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseArtPartCtrl::Pitch, CigiBaseArtPartCtrl::PitchEn, CigiBaseArtPartCtrl::Roll, CigiBaseArtPartCtrl::RollEn, PackPointerUnion::s, CigiBaseArtPartCtrl::XOff, CigiBaseArtPartCtrl::XOffEn, CigiBaseArtPartCtrl::Yaw, CigiBaseArtPartCtrl::YawEn, CigiBaseArtPartCtrl::YOff, CigiBaseArtPartCtrl::YOffEn, CigiBaseArtPartCtrl::ZOff, and CigiBaseArtPartCtrl::ZOffEn.
00128 { 00129 double DBuf[6]; 00130 00131 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00132 00133 PackPointer CDta; 00134 00135 CigiBaseArtPartCtrl * Data = ( CigiBaseArtPartCtrl *)Base; 00136 00137 CDta.d = DBuf; 00138 00139 *CDta.c++ = PacketID; 00140 *CDta.c++ = PacketSize; 00141 00142 CIGI_SCOPY2(CDta.s++, &Data->EntityID); 00143 *CDta.c++ = Data->ArtPartIDV1; 00144 00145 Cigi_uint8 HDta = 0; 00146 00147 if(Data->ArtPartEn) 00148 HDta = 0x80; 00149 00150 if(Data->XOffEn) 00151 HDta |= 0x40; 00152 00153 if(Data->YOffEn) 00154 HDta |= 0x20; 00155 00156 if(Data->ZOffEn) 00157 HDta |= 0x10; 00158 00159 if(Data->RollEn) 00160 HDta |= 0x08; 00161 00162 if(Data->PitchEn) 00163 HDta |= 0x04; 00164 00165 if(Data->YawEn) 00166 HDta |= 0x02; 00167 00168 *CDta.c++ = HDta; 00169 00170 *CDta.s++ = 0; 00171 00172 CIGI_SCOPY4(CDta.f++, &Data->XOff); 00173 CIGI_SCOPY4(CDta.f++, &Data->YOff); 00174 CIGI_SCOPY4(CDta.f++, &Data->ZOff); 00175 CIGI_SCOPY4(CDta.f++, &Data->Roll); 00176 CIGI_SCOPY4(CDta.f++, &Data->Pitch); 00177 CIGI_SCOPY4(CDta.f++, &Data->Yaw); 00178 00179 memcpy(Buff,tBuf,CIGI_ART_PART_CTRL_PACKET_SIZE_V2); 00180 00181 return(PacketSize); 00182 00183 }
int CigiArtPartCtrlV2::SetArtPartID | ( | const Cigi_int8 | ArtPartIDIn, | |
bool | bndchk = true | |||
) |
Sets the ArtPartID with bound checking control
ArtPartIDIn | - Identifies the specific articulated part of a specified entity to which this data is applied. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 247 of file CigiArtPartCtrlV2.cpp.
References CigiBaseArtPartCtrl::ArtPartIDV1, CigiBaseArtPartCtrl::ArtPartIDV3, and CIGI_SUCCESS.
00248 { 00249 union ArtPartConv 00250 { 00251 Cigi_uint8 uc; 00252 Cigi_int8 c; 00253 } ArtC; 00254 00255 ArtPartIDV1 = ArtPartIDIn; 00256 00257 ArtC.c = ArtPartIDV1; 00258 ArtPartIDV3 = ArtC.uc; 00259 00260 return(CIGI_SUCCESS); 00261 }
int CigiArtPartCtrlV2::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
The virtual Unpack function for CIGI 2
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 CigiBaseArtPartCtrl.
Definition at line 188 of file CigiArtPartCtrlV2.cpp.
References CigiBaseArtPartCtrl::ArtPartEn, CigiBaseArtPartCtrl::ArtPartIDV1, CigiBaseArtPartCtrl::ArtPartIDV3, PackPointerUnion::c, CIGI_ART_PART_CTRL_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY4, PackPointerUnion::d, CigiBaseArtPartCtrl::EntityID, PackPointerUnion::f, CigiBasePacket::PacketSize, CigiBaseArtPartCtrl::Pitch, CigiBaseArtPartCtrl::PitchEn, CigiBaseArtPartCtrl::Roll, CigiBaseArtPartCtrl::RollEn, PackPointerUnion::s, CigiBaseArtPartCtrl::XOff, CigiBaseArtPartCtrl::XOffEn, CigiBaseArtPartCtrl::Yaw, CigiBaseArtPartCtrl::YawEn, CigiBaseArtPartCtrl::YOff, CigiBaseArtPartCtrl::YOffEn, CigiBaseArtPartCtrl::ZOff, and CigiBaseArtPartCtrl::ZOffEn.
00189 { 00190 union ArtPartConv 00191 { 00192 Cigi_uint8 uc; 00193 Cigi_int8 c; 00194 } ArtC; 00195 00196 double DBuf[6]; 00197 00198 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00199 00200 PackPointer CDta; 00201 00202 memcpy(tBuf,Buff,CIGI_ART_PART_CTRL_PACKET_SIZE_V2); 00203 00204 CDta.d = DBuf; 00205 00206 CDta.c += 2; // Step over packet id and size 00207 00208 CIGI_SCOPY2(&EntityID, CDta.s++); 00209 ArtPartIDV1 = *CDta.c++; 00210 00211 Cigi_uint16 HDta = *CDta.c++; 00212 00213 ArtPartEn = ((HDta & 0x80) != 0); 00214 XOffEn = ((HDta & 0x40) != 0); 00215 YOffEn = ((HDta & 0x20) != 0); 00216 ZOffEn = ((HDta & 0x10) != 0); 00217 RollEn = ((HDta & 0x08) != 0); 00218 PitchEn = ((HDta & 0x04) != 0); 00219 YawEn = ((HDta & 0x02) != 0); 00220 00221 CDta.s++; 00222 00223 CIGI_SCOPY4(&XOff, CDta.f++); 00224 CIGI_SCOPY4(&YOff, CDta.f++); 00225 CIGI_SCOPY4(&ZOff, CDta.f++); 00226 CIGI_SCOPY4(&Roll, CDta.f++); 00227 CIGI_SCOPY4(&Pitch, CDta.f++); 00228 CIGI_SCOPY4(&Yaw, CDta.f++); 00229 00230 ArtC.c = ArtPartIDV1; 00231 ArtPartIDV3 = ArtC.uc; 00232 00233 return(PacketSize); 00234 00235 }