00001 00040 #define _EXPORT_CCL_ 00041 00042 00043 #include "CigiCircleSymbolDataV3_3.h" 00044 #include "CigiExceptions.h" 00045 #include "CigiSwapping.h" 00046 00047 00048 00049 // ==================================================================== 00050 // Construction/Destruction 00051 // ==================================================================== 00052 00053 // ================================================ 00054 // CigiBaseEntityCtrl 00055 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00056 CigiCircleSymbolDataV3_3::CigiCircleSymbolDataV3_3(void) 00057 { 00058 CenterUPosition = 0.0f; 00059 CenterVPosition = 0.0f; 00060 Radius = 0.0f; 00061 InnerRadius = 0.0f; 00062 StartAngle = 0.0f; 00063 EndAngle = 0.0f; 00064 } 00065 00066 // ================================================ 00067 // ~CigiBaseEntityCtrl 00068 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00069 CigiCircleSymbolDataV3_3::~CigiCircleSymbolDataV3_3(void) 00070 { 00071 } 00072 00073 00074 // ==================================================================== 00075 // Pack and Unpack 00076 // ==================================================================== 00077 00078 // ================================================ 00079 // Pack 00080 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00081 int CigiCircleSymbolDataV3_3::Pack(CigiBaseCircleSymbolData * Base, Cigi_uint8 * Buff) const 00082 { 00083 PackPointer CDta; 00084 00085 CigiCircleSymbolDataV3_3 * Data = 00086 ( CigiCircleSymbolDataV3_3 *)Base; 00087 00088 CDta.c = Buff; 00089 00090 *CDta.f++ = Data->CenterUPosition; 00091 *CDta.f++ = Data->CenterVPosition; 00092 *CDta.f++ = Data->Radius; 00093 *CDta.f++ = Data->InnerRadius; 00094 *CDta.f++ = Data->StartAngle; 00095 *CDta.f++ = Data->EndAngle; 00096 00097 return(CIGI_CIRCLE_SYMBOL_DATA_SIZE_V3_3); 00098 00099 } 00100 00101 // ================================================ 00102 // Unpack 00103 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00104 int CigiCircleSymbolDataV3_3::Unpack(Cigi_uint8 * Buff, bool Swap) 00105 { 00106 PackPointer CDta; 00107 unsigned char HDta = 0; 00108 00109 CDta.c = Buff; 00110 00111 if(!Swap) 00112 { 00113 CenterUPosition = *CDta.f++; 00114 CenterVPosition = *CDta.f++; 00115 Radius = *CDta.f++; 00116 InnerRadius = *CDta.f++; 00117 StartAngle = *CDta.f++; 00118 EndAngle = *CDta.f++; 00119 } 00120 else 00121 { 00122 CigiSwap4(&CenterUPosition, CDta.f++); 00123 CigiSwap4(&CenterVPosition, CDta.f++); 00124 CigiSwap4(&Radius, CDta.f++); 00125 CigiSwap4(&InnerRadius, CDta.f++); 00126 CigiSwap4(&StartAngle, CDta.f++); 00127 CigiSwap4(&EndAngle, CDta.f++); 00128 } 00129 00130 return(CIGI_CIRCLE_SYMBOL_DATA_SIZE_V3_3); 00131 00132 } 00133 00134 00135 00136