00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXTYPES_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXTYPES_H
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #include <fbxfilesdk/fbxfilesdk_def.h>
00042
00043 #include <fbxfilesdk/components/kbaselib/klib/kdebug.h>
00044 #include <fbxfilesdk/components/kbaselib/klib/kstring.h>
00045 #include <fbxfilesdk/components/kbaselib/klib/ktime.h>
00046
00047 #include <fbxfilesdk/kfbxplugins/kfbxcolor.h>
00048 #include <fbxfilesdk/kfbxplugins/kfbxsystemunit.h>
00049
00050 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00051
00052 class KFbxSdkManager;
00053
00081 typedef enum {
00082 eUNIDENTIFIED,
00083 eBYTE1,
00084 eUBYTE1,
00085 eSHORT1,
00086 eUSHORT1,
00087 eUINTEGER1,
00088 eLONGLONG1,
00089 eULONGLONG1,
00090 eHALFFLOAT,
00091 eBOOL1,
00092 eINTEGER1,
00093 eFLOAT1,
00094 eDOUBLE1,
00095 eDOUBLE2,
00096 eDOUBLE3,
00097 eDOUBLE4,
00098 eDOUBLE44,
00099 eENUM,
00100 eSTRING,
00101 eTIME,
00102 eREFERENCE,
00103 eBLOB,
00104 eDISTANCE,
00105 eDATETIME,
00106 eMAX_TYPES,
00107 } EFbxType;
00108
00109
00110 template<class T> class fbxVectorTemplate2 {
00111 public:
00112 inline fbxVectorTemplate2() { *this = T(0); }
00113 inline explicit fbxVectorTemplate2(T pValue) { *this = pValue; }
00114 inline fbxVectorTemplate2(T pData0,T pData1) { mData[0] = pData0; mData[1] = pData1; }
00115 inline ~fbxVectorTemplate2() {}
00116 public:
00117 inline T &operator[](int pIndex) { return mData[pIndex]; }
00118 inline T const&operator[](int pIndex) const { return mData[pIndex]; }
00119 inline fbxVectorTemplate2<T> &operator=(T const & pValue) { mData[0] = pValue; mData[1] = pValue; return *this; }
00120 inline fbxVectorTemplate2<T> &operator=(const fbxVectorTemplate2<T> & pRHS) { mData[0] = pRHS.mData[0]; mData[1] = pRHS.mData[1]; return *this; }
00121 inline bool operator==(fbxVectorTemplate2<T> const & pRHS) const { return ((mData[0] == pRHS.mData[0]) && (mData[1] == pRHS.mData[1])); }
00122 inline bool operator!=(fbxVectorTemplate2<T> const & pRHS) const { return !operator==( pRHS ); }
00123
00124 inline T* Buffer() { return mData; }
00125 inline T const* Buffer() const { return mData; }
00126
00127 public:
00128 T mData[2];
00129 };
00130
00131 template<class T> class fbxVectorTemplate3 {
00132 public:
00133 inline fbxVectorTemplate3() { *this = T(0); }
00134 inline explicit fbxVectorTemplate3(T pValue) { *this = pValue; }
00135 inline fbxVectorTemplate3(T pData0,T pData1,T pData2) { mData[0] = pData0; mData[1] = pData1; mData[2] = pData2; }
00136 inline ~fbxVectorTemplate3() {}
00137 public:
00138 inline T &operator[](int pIndex) { return mData[pIndex]; }
00139 inline T const&operator[](int pIndex) const { return mData[pIndex]; }
00140 inline fbxVectorTemplate3<T> &operator=(T const &pValue) { mData[0] = pValue; mData[1] = pValue; mData[2] = pValue; return *this; }
00141 inline fbxVectorTemplate3<T> &operator=(const fbxVectorTemplate3<T> & pRHS) { mData[0] = pRHS.mData[0]; mData[1] = pRHS.mData[1]; mData[2] = pRHS.mData[2]; return *this; }
00142 inline bool operator==(fbxVectorTemplate3<T> const & pRHS) const { return ((mData[0] == pRHS.mData[0]) && (mData[1] == pRHS.mData[1]) && (mData[2] == pRHS.mData[2])); }
00143 inline bool operator!=(fbxVectorTemplate3<T> const & pRHS) const { return !operator==(pRHS); }
00144
00145 inline T* Buffer() { return mData; }
00146 inline T const* Buffer() const { return mData; }
00147
00148 public:
00149 T mData[3];
00150 };
00151
00152 template<class T> class fbxVectorTemplate4 {
00153 public:
00154 inline fbxVectorTemplate4() { *this = T(0); }
00155 inline explicit fbxVectorTemplate4(T pValue) { *this = pValue; }
00156 inline fbxVectorTemplate4(T pData0,T pData1,T pData2,T pData3) { mData[0] = pData0; mData[1] = pData1; mData[2] = pData2; mData[3] = pData3; }
00157 inline ~fbxVectorTemplate4() {}
00158 public:
00159 inline T &operator[](int pIndex) { return mData[pIndex]; }
00160 inline operator fbxVectorTemplate3<T>& () const { return *((fbxVectorTemplate3<T> *)this); }
00161 inline T const&operator[](int pIndex) const { return mData[pIndex]; }
00162 inline fbxVectorTemplate4<T> &operator=(T const &pValue) { mData[0] = pValue; mData[1] = pValue; mData[2] = pValue; mData[3] = pValue; return *this; }
00163 inline fbxVectorTemplate4<T> &operator=(fbxVectorTemplate3<T> const &pValue) { mData[0] = pValue[0]; mData[1] = pValue[1]; mData[2] = pValue[2]; return *this; }
00164 inline fbxVectorTemplate4<T> &operator=(const fbxVectorTemplate4<T> & pRHS) { mData[0] = pRHS.mData[0]; mData[1] = pRHS.mData[1]; mData[2] = pRHS.mData[2]; mData[3] = pRHS.mData[3]; return *this; }
00165 inline bool operator==(fbxVectorTemplate4<T> const & pRHS) const { return ((mData[0] == pRHS.mData[0]) && (mData[1] == pRHS.mData[1]) && (mData[2] == pRHS.mData[2]) && (mData[3] == pRHS.mData[3])); }
00166 inline bool operator!=(fbxVectorTemplate4<T> const & pRHS) const { return !operator==( pRHS ); }
00167
00168 inline T* Buffer() { return mData; }
00169 inline T const* Buffer() const { return mData; }
00170
00171 public:
00172 T mData[4];
00173 };
00174
00175
00180 class KFBX_DLL fbxBlob {
00181 public:
00186
00188 inline fbxBlob() { mData = 0; mSize = 0; mRefCount = 0; }
00189
00193 fbxBlob(int pSize);
00194
00198 inline fbxBlob(const fbxBlob & pRHS) { mData = 0; mSize = 0; mRefCount = 0; *this = pRHS; }
00199
00204 inline fbxBlob(const void * pData, int pSize) { mData = 0; mSize = 0; mRefCount = 0; Assign(pData,pSize); }
00205
00207 ~fbxBlob();
00208
00210 public:
00215
00220 fbxBlob &operator=(fbxBlob const &pValue);
00221
00226 void Assign(const void * pData, int pSize);
00228
00233
00238 bool operator==(fbxBlob const & pRHS) const;
00239
00244 inline bool operator!=(fbxBlob const & pRHS) const { return !operator==( pRHS ); }
00246
00248 void * Modify();
00249
00254
00258 const void * Access() const { return mData; }
00259
00263 inline int Size() const { return mSize; }
00265
00267 void Clear();
00268
00269 protected:
00270 int * mRefCount;
00271 void * mData;
00272 int mSize;
00273
00274 };
00275
00279 class KFBX_DLL fbxDistance {
00280 public:
00285
00287 fbxDistance(): mValue(0.0), mUnit(1.0) { }
00288
00293 fbxDistance(float pValue, KFbxSystemUnit pUnit): mValue(0.0), mUnit(1.0) {
00294 mValue = pValue;
00295 mUnit = pUnit;
00296 }
00297
00303 fbxDistance(float pValue, const char* pUnit);
00304
00306 ~fbxDistance() { }
00307
00309 public:
00310
00315
00320 fbxDistance &operator=(fbxDistance const& pValue) {
00321 mValue = pValue.mValue;
00322 mUnit = pValue.mUnit;
00323 return *this;
00324 }
00326
00331
00336 bool operator==(fbxDistance const & pRHS) const { return ( (mValue == pRHS.mValue) && (mUnit == pRHS.mUnit) ); }
00337
00342 bool operator!=(fbxDistance const& pRHS) const { return !operator==(pRHS); }
00344
00345
00346 KString const unitName() const { return mUnit.GetScaleFactorAsString(); }
00347
00352
00356 KFbxSystemUnit const unit() const { return mUnit; }
00357
00361 float const value() const { return mValue; }
00363
00367 float const internalValue() const {
00368 KFbxSystemUnit internalUnit(KFbxSystemUnit::Inch);
00369 float internalValue = (float)(mValue * mUnit.GetConversionFactorTo(internalUnit));
00370 return internalValue;
00371 }
00372
00377 float const valueAs( KFbxSystemUnit const& pUnit ) const
00378 {
00379 float convertedValue = (float)(mValue * mUnit.GetConversionFactorTo(pUnit));
00380 return convertedValue;
00381 }
00382
00383 private:
00384 float mValue;
00385 KFbxSystemUnit mUnit;
00386 };
00387
00388
00389
00390
00391
00399 class KFBX_DLL fbxDateTime
00400 {
00401 public:
00402 kShort mMillisecond;
00403 kShort mYear;
00404
00405 kByte mMonth;
00406 kByte mDay;
00407 kByte mHour;
00408 kByte mMinute;
00409 kByte mSecond;
00410
00411 public:
00416
00418 fbxDateTime() { Clear(); }
00419
00429 fbxDateTime(int pDay, int pMonth, int pYear, int pHour, int pMin, int pSec, int pMillisecond = 0);
00430
00432
00437
00442 bool operator==(const fbxDateTime& pRHS) const;
00443
00448 bool operator!=(const fbxDateTime& pRHS) const
00449 {
00450 return !(*this == pRHS);
00451 }
00453
00455 void Clear()
00456 {
00457 mMillisecond = mYear = 0;
00458 mMonth = mDay = mHour = mMinute = mSecond = 0;
00459 }
00460
00461
00465 bool isValid() const;
00466
00467
00468
00478 void setDate(int pDay, int pMonth, int pYear);
00479
00486 void setTime(int pHour, int pMin, int pSec, int pMillisecond = 0);
00488
00489
00495
00499 KString toString() const;
00500
00507 bool fromString(const char*);
00509
00513 static fbxDateTime currentDateTimeGMT();
00514 };
00515
00523 class KFBX_DLL fbxHalfFloat
00524 {
00525 public:
00530 fbxHalfFloat() { mValue = 0; }
00531 fbxHalfFloat(float pVal) { mValue = FtoHF(&pVal); }
00532 fbxHalfFloat(const fbxHalfFloat& pVal) { mValue = pVal.mValue; }
00534
00539
00544 fbxHalfFloat &operator=(fbxHalfFloat const& pValue)
00545 {
00546 mValue = pValue.mValue;
00547 return *this;
00548 }
00550
00555
00560 bool operator==(fbxHalfFloat const & pRHS) const { return (mValue == pRHS.mValue); }
00561
00566 bool operator!=(fbxHalfFloat const& pRHS) const { return !operator==(pRHS); }
00568
00575 float const value() const { return HFtoF(mValue); }
00576
00579 unsigned short const internal_value() const { return mValue; }
00581
00582 private:
00583 typedef unsigned short half;
00584 half mValue;
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598 half FtoHF(float *f)
00599 {
00600 half h;
00601 unsigned int p = *(unsigned int *)f;
00602 unsigned int s = (p >> 31);
00603 unsigned int e = p & 0x7F800000;
00604 unsigned int m = p & 0x007FFFFF;
00605
00606
00607
00608 if (e >= 0x47800000)
00609 {
00610
00611
00612 m = (m != 0 && (e==0x7F800000)) ? ((1 << 23) - 1) : 0;
00613 h = (((half)s) << 15) | (half)((0x1F << 10)) | (half)(m >> 13);
00614 }
00615 else
00616 if (e <= 0x38000000)
00617 {
00618
00619 e = (0x38000000 - e) >> 23;
00620 m >>= (14 + e);
00621 h = (((half)s) << 15) | (half)(m);
00622 }
00623 else
00624 {
00625
00626 h = (((half)s) << 15) | (half)((e-0x38000000) >> 13) | (half)(m >> 13);
00627 }
00628 return h;
00629 }
00630
00631 float HFtoF(half h) const
00632 {
00633 unsigned int f;
00634 unsigned int s = (unsigned int)(h>>15);
00635 unsigned int e = (unsigned int)(h&0x7C00);
00636 unsigned int m = (unsigned int)(h&0x03FF);
00637
00638 if (e == 0x7C00)
00639 {
00640
00641 e = (0xFF<<23);
00642 if (m != 0) m = ((1<<23)-1);
00643 }
00644 else
00645 if (e == 0x00000000)
00646 {
00647
00648 if (m != 0)
00649 {
00650 m <<= 1;
00651 e = 0x38000000;
00652 while ((m&(1<<10)) == 0)
00653 {
00654 m <<= 1;
00655 e -= (1<<23);
00656 }
00657 m &= ((1<<10)-1);
00658 m <<= 13;
00659 }
00660 }
00661 else
00662 {
00663 m <<= 13;
00664 e = (e<<13) + 0x38000000;
00665 }
00666
00667 f = (s<<31)|e|m;
00668 return *((float *)&f);
00669 }
00670 };
00671
00672
00673 typedef char fbxByte1;
00674 typedef unsigned char fbxUByte1;
00675 typedef short fbxShort1;
00676 typedef unsigned short fbxUShort1;
00677 typedef unsigned int fbxUInteger1;
00678 #if defined(KARCH_DEV_MSC) && !defined(KARCH_DEV_INTEL)
00679 typedef signed __int64 fbxLongLong1;
00680 typedef unsigned __int64 fbxULongLong1;
00681 #else
00682 typedef signed long long fbxLongLong1;
00683 typedef unsigned long long fbxULongLong1;
00684 #endif
00685 typedef bool fbxBool1;
00686 typedef int fbxInteger1;
00687 typedef float fbxFloat1;
00688 typedef double fbxDouble1;
00689 typedef fbxVectorTemplate2<double> fbxDouble2;
00690 typedef fbxVectorTemplate3<double> fbxDouble3;
00691 typedef fbxVectorTemplate4<double> fbxDouble4;
00692 typedef fbxVectorTemplate4<fbxDouble4> fbxDouble44;
00693 typedef int fbxEnum;
00694 typedef KString fbxString;
00695 typedef KTime fbxTime;
00696 typedef fbxBlob KFbxBlob;
00697 class fbxReference {};
00698 typedef fbxDistance KFbxDistance;
00699
00700
00701 const size_t FbxTypeSizeOf[eMAX_TYPES] = {
00702 0,
00703 sizeof(fbxByte1),
00704 sizeof(fbxUByte1),
00705 sizeof(fbxShort1),
00706 sizeof(fbxUShort1),
00707 sizeof(fbxUInteger1),
00708 sizeof(fbxLongLong1),
00709 sizeof(fbxULongLong1),
00710 sizeof(fbxHalfFloat),
00711 sizeof(fbxBool1),
00712 sizeof(fbxInteger1),
00713 sizeof(fbxFloat1),
00714 sizeof(fbxDouble1),
00715 sizeof(fbxDouble2),
00716 sizeof(fbxDouble3),
00717 sizeof(fbxDouble4),
00718 sizeof(fbxDouble44),
00719 sizeof(fbxEnum),
00720 sizeof(fbxString),
00721 sizeof(fbxTime),
00722 sizeof(fbxReference),
00723 sizeof(fbxBlob),
00724 sizeof(fbxDistance),
00725 sizeof(fbxDateTime)
00726 };
00727
00728
00729 template <class T> inline EFbxType FbxTypeOf( T const &pItem ) { K_ASSERT_MSG_NOW("Unknown type" ); return eUNIDENTIFIED; }
00730
00731 inline EFbxType FbxTypeOf( fbxByte1 const &pItem ) { return eBYTE1; }
00732 inline EFbxType FbxTypeOf( fbxUByte1 const &pItem ) { return eUBYTE1; }
00733 inline EFbxType FbxTypeOf( fbxShort1 const &pItem ) { return eSHORT1; }
00734 inline EFbxType FbxTypeOf( fbxUShort1 const &pItem ) { return eUSHORT1; }
00735 inline EFbxType FbxTypeOf( fbxUInteger1 const &pItem ) { return eUINTEGER1; }
00736 inline EFbxType FbxTypeOf( fbxLongLong1 const &pItem ) { return eLONGLONG1; }
00737 inline EFbxType FbxTypeOf( fbxULongLong1 const &pItem ) { return eULONGLONG1; }
00738 inline EFbxType FbxTypeOf( fbxHalfFloat const &pItem ) { return eHALFFLOAT; }
00739 inline EFbxType FbxTypeOf( fbxBool1 const &pItem ) { return eBOOL1; }
00740 inline EFbxType FbxTypeOf( fbxInteger1 const &pItem ) { return eINTEGER1; }
00741 inline EFbxType FbxTypeOf( fbxFloat1 const &pItem ) { return eFLOAT1; }
00742 inline EFbxType FbxTypeOf( fbxDouble1 const &pItem ) { return eDOUBLE1; }
00743 inline EFbxType FbxTypeOf( fbxDouble2 const &pItem ) { return eDOUBLE2; }
00744 inline EFbxType FbxTypeOf( fbxDouble3 const &pItem ) { return eDOUBLE3; }
00745 inline EFbxType FbxTypeOf( fbxDouble4 const &pItem ) { return eDOUBLE4; }
00746 inline EFbxType FbxTypeOf( fbxDouble44 const &pItem ) { return eDOUBLE44; }
00747
00748 inline EFbxType FbxTypeOf( fbxString const &pItem ) { return eSTRING; }
00749 inline EFbxType FbxTypeOf( fbxTime const &pItem ) { return eTIME; }
00750 inline EFbxType FbxTypeOf( fbxReference const &pItem ) { return eREFERENCE; }
00751 inline EFbxType FbxTypeOf( fbxBlob const &pItem ) { return eBLOB; }
00752 inline EFbxType FbxTypeOf( fbxDistance const &pItem) { return eDISTANCE; }
00753 inline EFbxType FbxTypeOf( fbxDateTime const &pItem) { return eDATETIME; }
00754
00755
00756
00757
00758
00759
00760
00761
00762 template <class T> inline EFbxType _FbxTypeOf( T* const &pItem) { return eREFERENCE; }
00763 inline EFbxType _FbxTypeOf( fbxByte1 const &pItem ) { return eBYTE1; }
00764 inline EFbxType _FbxTypeOf( fbxUByte1 const &pItem ) { return eUBYTE1; }
00765 inline EFbxType _FbxTypeOf( fbxShort1 const &pItem ) { return eSHORT1; }
00766 inline EFbxType _FbxTypeOf( fbxUShort1 const &pItem ) { return eUSHORT1; }
00767 inline EFbxType _FbxTypeOf( fbxUInteger1 const &pItem ) { return eUINTEGER1; }
00768 inline EFbxType _FbxTypeOf( fbxLongLong1 const &pItem ) { return eLONGLONG1; }
00769 inline EFbxType _FbxTypeOf( fbxULongLong1 const &pItem ) { return eULONGLONG1; }
00770 inline EFbxType _FbxTypeOf( fbxHalfFloat const &pItem ) { return eHALFFLOAT; }
00771 inline EFbxType _FbxTypeOf( fbxBool1 const &pItem ) { return eBOOL1; }
00772 inline EFbxType _FbxTypeOf( fbxInteger1 const &pItem ) { return eINTEGER1; }
00773 inline EFbxType _FbxTypeOf( fbxFloat1 const &pItem ) { return eFLOAT1; }
00774 inline EFbxType _FbxTypeOf( fbxDouble1 const &pItem ) { return eDOUBLE1; }
00775 inline EFbxType _FbxTypeOf( fbxDouble2 const &pItem ) { return eDOUBLE2; }
00776 inline EFbxType _FbxTypeOf( fbxDouble3 const &pItem ) { return eDOUBLE3; }
00777 inline EFbxType _FbxTypeOf( fbxDouble4 const &pItem ) { return eDOUBLE4; }
00778 inline EFbxType _FbxTypeOf( fbxDouble44 const &pItem ) { return eDOUBLE44; }
00779
00780 inline EFbxType _FbxTypeOf( fbxString const &pItem ) { return eSTRING; }
00781 inline EFbxType _FbxTypeOf( fbxTime const &pItem ) { return eTIME; }
00782 inline EFbxType _FbxTypeOf( fbxReference const &pItem ) { return eREFERENCE; }
00783 inline EFbxType _FbxTypeOf( fbxBlob const &pItem ) { return eBLOB; }
00784 inline EFbxType _FbxTypeOf( KFbxColor const &pItem ) { return eDOUBLE4; }
00785 inline EFbxType _FbxTypeOf( fbxDistance const &pItem ) { return eDISTANCE; }
00786 inline EFbxType _FbxTypeOf( fbxDateTime const &pItem ) { return eDATETIME; }
00787
00788
00789 inline EFbxType FbxTypeOf( KFbxColor const &pItem ) { return eDOUBLE4; }
00790
00791
00792
00793
00794
00795
00796
00797
00798 bool KFBX_DLL fbxCopyStr( fbxDouble1& pDst, fbxString const& pSrc );
00799 bool KFBX_DLL fbxCopyStr( fbxBool1& pDst, fbxString const& pSrc );
00800 bool KFBX_DLL fbxCopyStr( fbxInteger1& pDst, fbxString const& pSrc );
00801 bool KFBX_DLL fbxCopyStr( fbxByte1& pDst, fbxString const& pSrc );
00802 bool KFBX_DLL fbxCopyStr( fbxUByte1& pDst, fbxString const& pSrc );
00803 bool KFBX_DLL fbxCopyStr( fbxShort1& pDst, fbxString const& pSrc );
00804 bool KFBX_DLL fbxCopyStr( fbxUShort1& pDst, fbxString const& pSrc );
00805 bool KFBX_DLL fbxCopyStr( fbxUInteger1& pDst, fbxString const& pSrc );
00806 bool KFBX_DLL fbxCopyStr( fbxLongLong1& pDst, fbxString const& pSrc );
00807 bool KFBX_DLL fbxCopyStr( fbxULongLong1& pDst, fbxString const& pSrc );
00808 bool KFBX_DLL fbxCopyStr( fbxHalfFloat& pDst, fbxString const& pSrc );
00809
00810
00811 template< class T1,class T2 > inline bool fbxCopy ( T1 &pDst,T2 const &pSrc ) { K_ASSERT_MSG_NOW("Incompatible type assigment" ); return false; }
00812
00813
00814 inline bool fbxCopy( fbxByte1 &pDst,fbxByte1 const &pSrc ) { pDst=pSrc; return true; }
00815 inline bool fbxCopy( fbxUByte1 &pDst,fbxUByte1 const &pSrc ) { pDst=pSrc; return true; }
00816 inline bool fbxCopy( fbxShort1 &pDst,fbxShort1 const &pSrc ) { pDst=pSrc; return true; }
00817 inline bool fbxCopy( fbxUShort1 &pDst,fbxUShort1 const &pSrc ) { pDst=pSrc; return true; }
00818 inline bool fbxCopy( fbxUInteger1 &pDst,fbxUInteger1 const &pSrc ) { pDst=pSrc; return true; }
00819 inline bool fbxCopy( fbxLongLong1 &pDst,fbxLongLong1 const &pSrc ) { pDst=pSrc; return true; }
00820 inline bool fbxCopy( fbxULongLong1 &pDst,fbxULongLong1 const &pSrc ){ pDst=pSrc; return true; }
00821 inline bool fbxCopy( fbxHalfFloat &pDst, fbxHalfFloat const &pSrc ) { pDst=pSrc; return true; }
00822 inline bool fbxCopy( fbxBool1 &pDst,fbxBool1 const &pSrc ) { pDst=pSrc; return true; }
00823 inline bool fbxCopy( fbxInteger1 &pDst,fbxInteger1 const &pSrc ) { pDst=pSrc; return true; }
00824 inline bool fbxCopy( fbxFloat1 &pDst,fbxFloat1 const &pSrc ) { pDst=pSrc; return true; }
00825 inline bool fbxCopy( fbxDouble1 &pDst,fbxDouble1 const &pSrc ) { pDst=pSrc; return true; }
00826 inline bool fbxCopy( fbxDouble2 &pDst,fbxDouble2 const &pSrc ) { pDst=pSrc; return true; }
00827 inline bool fbxCopy( fbxDouble3 &pDst,fbxDouble3 const &pSrc ) { pDst=pSrc; return true; }
00828 inline bool fbxCopy( fbxDouble4 &pDst,fbxDouble4 const &pSrc ) { pDst=pSrc; return true; }
00829 inline bool fbxCopy( fbxDouble44 &pDst,fbxDouble44 const &pSrc ) { pDst=pSrc; return true; }
00830
00831 inline bool fbxCopy( fbxString &pDst,fbxString const &pSrc ) { pDst=pSrc; return true; }
00832 inline bool fbxCopy( fbxTime &pDst,fbxTime const &pSrc ) { pDst=pSrc; return true; }
00833 inline bool fbxCopy( fbxReference &pDst,fbxReference const &pSrc ) { pDst=pSrc; return true; }
00834 inline bool fbxCopy( fbxBlob &pDst,fbxBlob const &pSrc ) { pDst=pSrc; return true; }
00835 inline bool fbxCopy( fbxDistance &pDst, fbxDistance const &pSrc ) { pDst=pSrc; return true; }
00836 inline bool fbxCopy( fbxDateTime &pDst, fbxDateTime const &pSrc ) { pDst=pSrc; return true; }
00837
00838
00839 inline bool fbxCopy( fbxBool1 &pDst,fbxByte1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00840 inline bool fbxCopy( fbxBool1 &pDst,fbxUByte1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00841 inline bool fbxCopy( fbxBool1 &pDst,fbxShort1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00842 inline bool fbxCopy( fbxBool1 &pDst,fbxUShort1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00843 inline bool fbxCopy( fbxBool1 &pDst,fbxUInteger1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00844 inline bool fbxCopy( fbxBool1 &pDst,fbxLongLong1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00845 inline bool fbxCopy( fbxBool1 &pDst,fbxULongLong1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00846 inline bool fbxCopy( fbxBool1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00847
00848 inline bool fbxCopy( fbxBool1 &pDst,fbxInteger1 const &pSrc ) { pDst = pSrc == 0 ? false : true; return true; }
00849 inline bool fbxCopy( fbxBool1 &pDst,fbxFloat1 const &pSrc ) { pDst = pSrc == 0.f ? false : true; return true; }
00850 inline bool fbxCopy( fbxBool1 &pDst,fbxDouble1 const &pSrc ) { pDst = pSrc == 0. ? false : true; return true; }
00851 inline bool fbxCopy( fbxBool1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00852 inline bool fbxCopy( fbxBool1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00853 inline bool fbxCopy( fbxBool1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00854 inline bool fbxCopy( fbxBool1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00855
00856 inline bool fbxCopy( fbxBool1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00857 inline bool fbxCopy( fbxBool1 &pDst,fbxTime const &pSrc ) { return false; }
00858 inline bool fbxCopy( fbxBool1 &pDst,fbxReference const &pSrc ) { return false; }
00859 inline bool fbxCopy( fbxBool1 &pDst,fbxBlob const &pSrc ) { return false; }
00860 inline bool fbxCopy( fbxBool1 &pDst, fbxDistance const &pSrc ) { return false; }
00861 inline bool fbxCopy( fbxBool1 &pDst, fbxDateTime const &pSrc ) { return false; }
00862
00863
00864
00865 inline bool fbxCopy( fbxByte1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxByte1)pSrc; return true; }
00866 inline bool fbxCopy( fbxByte1 &pDst,fbxShort1 const &pSrc ) { return false; }
00867 inline bool fbxCopy( fbxByte1 &pDst,fbxUShort1 const &pSrc ) { return false; }
00868 inline bool fbxCopy( fbxByte1 &pDst,fbxUInteger1 const &pSrc ) { return false; }
00869 inline bool fbxCopy( fbxByte1 &pDst,fbxLongLong1 const &pSrc ) { return false; }
00870 inline bool fbxCopy( fbxByte1 &pDst,fbxULongLong1 const &pSrc ) { return false; }
00871 inline bool fbxCopy( fbxByte1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00872 inline bool fbxCopy( fbxByte1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxByte1)pSrc; return true; }
00873 inline bool fbxCopy( fbxByte1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxByte1)pSrc; return true; }
00874 inline bool fbxCopy( fbxByte1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxByte1)pSrc; return true; }
00875 inline bool fbxCopy( fbxByte1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxByte1)pSrc; return true; }
00876 inline bool fbxCopy( fbxByte1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00877 inline bool fbxCopy( fbxByte1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00878 inline bool fbxCopy( fbxByte1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00879 inline bool fbxCopy( fbxByte1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00880
00881 inline bool fbxCopy( fbxByte1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00882 inline bool fbxCopy( fbxByte1 &pDst,fbxTime const &pSrc ) { return false; }
00883 inline bool fbxCopy( fbxByte1 &pDst,fbxReference const &pSrc ) { return false; }
00884 inline bool fbxCopy( fbxByte1 &pDst,fbxBlob const &pSrc ) { return false; }
00885 inline bool fbxCopy( fbxByte1 &pDst,fbxDistance const &pSrc ) { return false; }
00886 inline bool fbxCopy( fbxByte1 &pDst,fbxDateTime const &pSrc ) { return false; }
00887
00888
00889 inline bool fbxCopy( fbxUByte1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxUByte1)pSrc; return true; }
00890
00891 inline bool fbxCopy( fbxUByte1 &pDst,fbxShort1 const &pSrc ) { return false; }
00892 inline bool fbxCopy( fbxUByte1 &pDst,fbxUShort1 const &pSrc ) { return false; }
00893 inline bool fbxCopy( fbxUByte1 &pDst,fbxUInteger1 const &pSrc ) { return false; }
00894 inline bool fbxCopy( fbxUByte1 &pDst,fbxLongLong1 const &pSrc ) { return false; }
00895 inline bool fbxCopy( fbxUByte1 &pDst,fbxULongLong1 const &pSrc ) { return false; }
00896 inline bool fbxCopy( fbxUByte1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00897 inline bool fbxCopy( fbxUByte1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxUByte1)pSrc; return true; }
00898 inline bool fbxCopy( fbxUByte1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxUByte1)pSrc; return true; }
00899 inline bool fbxCopy( fbxUByte1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxUByte1)pSrc; return true; }
00900 inline bool fbxCopy( fbxUByte1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxUByte1)pSrc; return true; }
00901 inline bool fbxCopy( fbxUByte1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00902 inline bool fbxCopy( fbxUByte1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00903 inline bool fbxCopy( fbxUByte1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00904 inline bool fbxCopy( fbxUByte1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00905
00906 inline bool fbxCopy( fbxUByte1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00907 inline bool fbxCopy( fbxUByte1 &pDst,fbxTime const &pSrc ) { return false; }
00908 inline bool fbxCopy( fbxUByte1 &pDst,fbxReference const &pSrc ) { return false; }
00909 inline bool fbxCopy( fbxUByte1 &pDst,fbxBlob const &pSrc ) { return false; }
00910 inline bool fbxCopy( fbxUByte1 &pDst,fbxDistance const &pSrc ) { return false; }
00911 inline bool fbxCopy( fbxUByte1 &pDst,fbxDateTime const &pSrc ) { return false; }
00912
00913
00914 inline bool fbxCopy( fbxShort1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00915 inline bool fbxCopy( fbxShort1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00916
00917 inline bool fbxCopy( fbxShort1 &pDst,fbxUShort1 const &pSrc ) { return false; }
00918 inline bool fbxCopy( fbxShort1 &pDst,fbxUInteger1 const &pSrc ) { return false; }
00919 inline bool fbxCopy( fbxShort1 &pDst,fbxLongLong1 const &pSrc ) { return false; }
00920 inline bool fbxCopy( fbxShort1 &pDst,fbxULongLong1 const &pSrc ) { return false; }
00921 inline bool fbxCopy( fbxShort1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00922 inline bool fbxCopy( fbxShort1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00923 inline bool fbxCopy( fbxShort1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00924 inline bool fbxCopy( fbxShort1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00925 inline bool fbxCopy( fbxShort1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxShort1)pSrc; return true; }
00926 inline bool fbxCopy( fbxShort1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00927 inline bool fbxCopy( fbxShort1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00928 inline bool fbxCopy( fbxShort1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00929 inline bool fbxCopy( fbxShort1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00930
00931 inline bool fbxCopy( fbxShort1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00932 inline bool fbxCopy( fbxShort1 &pDst,fbxTime const &pSrc ) { return false; }
00933 inline bool fbxCopy( fbxShort1 &pDst,fbxReference const &pSrc ) { return false; }
00934 inline bool fbxCopy( fbxShort1 &pDst,fbxBlob const &pSrc ) { return false; }
00935 inline bool fbxCopy( fbxShort1 &pDst,fbxDistance const &pSrc ) { return false; }
00936 inline bool fbxCopy( fbxShort1 &pDst,fbxDateTime const &pSrc ) { return false; }
00937
00938
00939 inline bool fbxCopy( fbxUShort1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00940 inline bool fbxCopy( fbxUShort1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00941 inline bool fbxCopy( fbxUShort1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00942
00943 inline bool fbxCopy( fbxUShort1 &pDst,fbxUInteger1 const &pSrc ) { return false; }
00944 inline bool fbxCopy( fbxUShort1 &pDst,fbxLongLong1 const &pSrc ) { return false; }
00945 inline bool fbxCopy( fbxUShort1 &pDst,fbxULongLong1 const &pSrc ) { return false; }
00946 inline bool fbxCopy( fbxUShort1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00947 inline bool fbxCopy( fbxUShort1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00948 inline bool fbxCopy( fbxUShort1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00949 inline bool fbxCopy( fbxUShort1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00950 inline bool fbxCopy( fbxUShort1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxUShort1)pSrc; return true; }
00951 inline bool fbxCopy( fbxUShort1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00952 inline bool fbxCopy( fbxUShort1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00953 inline bool fbxCopy( fbxUShort1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00954 inline bool fbxCopy( fbxUShort1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00955
00956 inline bool fbxCopy( fbxUShort1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00957 inline bool fbxCopy( fbxUShort1 &pDst,fbxTime const &pSrc ) { return false; }
00958 inline bool fbxCopy( fbxUShort1 &pDst,fbxReference const &pSrc ) { return false; }
00959 inline bool fbxCopy( fbxUShort1 &pDst,fbxBlob const &pSrc ) { return false; }
00960 inline bool fbxCopy( fbxUShort1 &pDst,fbxDistance const &pSrc ) { return false; }
00961 inline bool fbxCopy( fbxUShort1 &pDst,fbxDateTime const &pSrc ) { return false; }
00962
00963
00964 inline bool fbxCopy( fbxInteger1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00965 inline bool fbxCopy( fbxInteger1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00966 inline bool fbxCopy( fbxInteger1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00967 inline bool fbxCopy( fbxInteger1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00968 inline bool fbxCopy( fbxInteger1 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00969 inline bool fbxCopy( fbxInteger1 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00970 inline bool fbxCopy( fbxInteger1 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00971 inline bool fbxCopy( fbxInteger1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00972 inline bool fbxCopy( fbxInteger1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00973
00974 inline bool fbxCopy( fbxInteger1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00975 inline bool fbxCopy( fbxInteger1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxInteger1)pSrc; return true; }
00976 inline bool fbxCopy( fbxInteger1 &pDst,fbxDouble2 const &pSrc ) { return false; }
00977 inline bool fbxCopy( fbxInteger1 &pDst,fbxDouble3 const &pSrc ) { return false; }
00978 inline bool fbxCopy( fbxInteger1 &pDst,fbxDouble4 const &pSrc ) { return false; }
00979 inline bool fbxCopy( fbxInteger1 &pDst,fbxDouble44 const &pSrc ) { return false; }
00980
00981 inline bool fbxCopy( fbxInteger1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
00982 inline bool fbxCopy( fbxInteger1 &pDst,fbxTime const &pSrc ) { return false; }
00983 inline bool fbxCopy( fbxInteger1 &pDst,fbxReference const &pSrc ) { return false; }
00984 inline bool fbxCopy( fbxInteger1 &pDst,fbxBlob const &pSrc ) { return false; }
00985 inline bool fbxCopy( fbxInteger1 &pDst,fbxDistance const &pSrc ) { return false; }
00986 inline bool fbxCopy( fbxInteger1 &pDst,fbxDateTime const &pSrc ) { return false; }
00987
00988
00989 inline bool fbxCopy( fbxUInteger1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00990 inline bool fbxCopy( fbxUInteger1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00991 inline bool fbxCopy( fbxUInteger1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00992 inline bool fbxCopy( fbxUInteger1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00993
00994 inline bool fbxCopy( fbxUInteger1 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00995 inline bool fbxCopy( fbxUInteger1 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00996 inline bool fbxCopy( fbxUInteger1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
00997 inline bool fbxCopy( fbxUInteger1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00998 inline bool fbxCopy( fbxUInteger1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
00999 inline bool fbxCopy( fbxUInteger1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
01000 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxUInteger1)pSrc; return true; }
01001 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDouble2 const &pSrc ) { return false; }
01002 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDouble3 const &pSrc ) { return false; }
01003 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDouble4 const &pSrc ) { return false; }
01004 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDouble44 const &pSrc ) { return false; }
01005
01006 inline bool fbxCopy( fbxUInteger1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
01007 inline bool fbxCopy( fbxUInteger1 &pDst,fbxTime const &pSrc ) { return false; }
01008 inline bool fbxCopy( fbxUInteger1 &pDst,fbxReference const &pSrc ) { return false; }
01009 inline bool fbxCopy( fbxUInteger1 &pDst,fbxBlob const &pSrc ) { return false; }
01010 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDistance const &pSrc ) { return false; }
01011 inline bool fbxCopy( fbxUInteger1 &pDst,fbxDateTime const &pSrc ) { return false; }
01012
01013
01014 inline bool fbxCopy( fbxLongLong1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01015 inline bool fbxCopy( fbxLongLong1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01016 inline bool fbxCopy( fbxLongLong1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01017 inline bool fbxCopy( fbxLongLong1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01018 inline bool fbxCopy( fbxLongLong1 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01019
01020 inline bool fbxCopy( fbxLongLong1 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01021 inline bool fbxCopy( fbxLongLong1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
01022 inline bool fbxCopy( fbxLongLong1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01023 inline bool fbxCopy( fbxLongLong1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01024 inline bool fbxCopy( fbxLongLong1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01025 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxLongLong1)pSrc; return true; }
01026 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDouble2 const &pSrc ) { return false; }
01027 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDouble3 const &pSrc ) { return false; }
01028 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDouble4 const &pSrc ) { return false; }
01029 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDouble44 const &pSrc ) { return false; }
01030
01031 inline bool fbxCopy( fbxLongLong1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
01032 inline bool fbxCopy( fbxLongLong1 &pDst,fbxTime const &pSrc ) { return false; }
01033 inline bool fbxCopy( fbxLongLong1 &pDst,fbxReference const &pSrc ) { return false; }
01034 inline bool fbxCopy( fbxLongLong1 &pDst,fbxBlob const &pSrc ) { return false; }
01035 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDistance const &pSrc ) { return false; }
01036 inline bool fbxCopy( fbxLongLong1 &pDst,fbxDateTime const &pSrc ) { return false; }
01037
01038
01039 inline bool fbxCopy( fbxULongLong1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01040 inline bool fbxCopy( fbxULongLong1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01041 inline bool fbxCopy( fbxULongLong1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01042 inline bool fbxCopy( fbxULongLong1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01043 inline bool fbxCopy( fbxULongLong1 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01044 inline bool fbxCopy( fbxULongLong1 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01045
01046 inline bool fbxCopy( fbxULongLong1 &pDst,fbxHalfFloat const &pSrc ) { return false; }
01047 inline bool fbxCopy( fbxULongLong1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01048 inline bool fbxCopy( fbxULongLong1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01049 inline bool fbxCopy( fbxULongLong1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01050 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxULongLong1)pSrc; return true; }
01051 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDouble2 const &pSrc ) { return false; }
01052 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDouble3 const &pSrc ) { return false; }
01053 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDouble4 const &pSrc ) { return false; }
01054 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDouble44 const &pSrc ) { return false; }
01055
01056 inline bool fbxCopy( fbxULongLong1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
01057 inline bool fbxCopy( fbxULongLong1 &pDst,fbxTime const &pSrc ) { return false; }
01058 inline bool fbxCopy( fbxULongLong1 &pDst,fbxReference const &pSrc ) { return false; }
01059 inline bool fbxCopy( fbxULongLong1 &pDst,fbxBlob const &pSrc ) { return false; }
01060 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDistance const &pSrc ) { return false; }
01061 inline bool fbxCopy( fbxULongLong1 &pDst,fbxDateTime const &pSrc ) { return false; }
01062
01063
01064 inline bool fbxCopy( fbxHalfFloat &pDst,fbxByte1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01065 inline bool fbxCopy( fbxHalfFloat &pDst,fbxUByte1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01066 inline bool fbxCopy( fbxHalfFloat &pDst,fbxShort1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01067 inline bool fbxCopy( fbxHalfFloat &pDst,fbxUShort1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01068 inline bool fbxCopy( fbxHalfFloat &pDst,fbxUInteger1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01069 inline bool fbxCopy( fbxHalfFloat &pDst,fbxLongLong1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01070 inline bool fbxCopy( fbxHalfFloat &pDst,fbxULongLong1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01071 inline bool fbxCopy( fbxHalfFloat &pDst,fbxBool1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01072 inline bool fbxCopy( fbxHalfFloat &pDst,fbxInteger1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01073
01074 inline bool fbxCopy( fbxHalfFloat &pDst,fbxFloat1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01075 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDouble1 const &pSrc ) { fbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
01076 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDouble2 const &pSrc ) { return false; }
01077 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDouble3 const &pSrc ) { return false; }
01078 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDouble4 const &pSrc ) { return false; }
01079 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDouble44 const &pSrc ) { return false; }
01080
01081 inline bool fbxCopy( fbxHalfFloat &pDst,fbxString const &pSrc ) { return false; }
01082 inline bool fbxCopy( fbxHalfFloat &pDst,fbxTime const &pSrc ) { return false; }
01083 inline bool fbxCopy( fbxHalfFloat &pDst,fbxReference const &pSrc ) { return false; }
01084 inline bool fbxCopy( fbxHalfFloat &pDst,fbxBlob const &pSrc ) { return false; }
01085 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDistance const &pSrc ) { fbxHalfFloat hf(pSrc.internalValue()); pDst = hf; return true; }
01086 inline bool fbxCopy( fbxHalfFloat &pDst,fbxDateTime const &pSrc ) { return false; }
01087
01088
01089 inline bool fbxCopy( fbxFloat1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01090 inline bool fbxCopy( fbxFloat1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01091 inline bool fbxCopy( fbxFloat1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01092 inline bool fbxCopy( fbxFloat1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01093 inline bool fbxCopy( fbxFloat1 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01094 inline bool fbxCopy( fbxFloat1 &pDst,fbxLongLong1 const &pSrc ) { return false; }
01095 inline bool fbxCopy( fbxFloat1 &pDst,fbxULongLong1 const &pSrc ) { return false; }
01096 inline bool fbxCopy( fbxFloat1 &pDst,fbxHalfFloat const &pSrc ) { pDst = pSrc.value() ; return true; }
01097 inline bool fbxCopy( fbxFloat1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01098 inline bool fbxCopy( fbxFloat1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01099
01100 inline bool fbxCopy( fbxFloat1 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxFloat1)pSrc; return true; }
01101 inline bool fbxCopy( fbxFloat1 &pDst,fbxDouble2 const &pSrc ) { return false; }
01102 inline bool fbxCopy( fbxFloat1 &pDst,fbxDouble3 const &pSrc ) { return false; }
01103 inline bool fbxCopy( fbxFloat1 &pDst,fbxDouble4 const &pSrc ) { return false; }
01104 inline bool fbxCopy( fbxFloat1 &pDst,fbxDouble44 const &pSrc ) { return false; }
01105
01106 inline bool fbxCopy( fbxFloat1 &pDst,fbxString const &pSrc ) { return false; }
01107 inline bool fbxCopy( fbxFloat1 &pDst,fbxTime const &pSrc ) { return false; }
01108 inline bool fbxCopy( fbxFloat1 &pDst,fbxReference const &pSrc ) { return false; }
01109 inline bool fbxCopy( fbxFloat1 &pDst,fbxBlob const &pSrc ) { return false; }
01110 inline bool fbxCopy( fbxFloat1 &pDst,fbxDistance const &pSrc ) { pDst = pSrc.internalValue(); return true; }
01111 inline bool fbxCopy( fbxFloat1 &pDst,fbxDateTime const &pSrc ) { return false; }
01112
01113
01114 inline bool fbxCopy( fbxDouble1 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01115 inline bool fbxCopy( fbxDouble1 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01116 inline bool fbxCopy( fbxDouble1 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01117 inline bool fbxCopy( fbxDouble1 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01118 inline bool fbxCopy( fbxDouble1 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01119 inline bool fbxCopy( fbxDouble1 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01120 inline bool fbxCopy( fbxDouble1 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01121 inline bool fbxCopy( fbxDouble1 &pDst,fbxHalfFloat const &pSrc ) { pDst = (fbxDouble1)pSrc.value(); return true; }
01122 inline bool fbxCopy( fbxDouble1 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01123 inline bool fbxCopy( fbxDouble1 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01124 inline bool fbxCopy( fbxDouble1 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01125
01126 inline bool fbxCopy( fbxDouble1 &pDst,fbxDouble2 const &pSrc ) { pDst = (fbxDouble1)pSrc[0]; return true; }
01127 inline bool fbxCopy( fbxDouble1 &pDst,fbxDouble3 const &pSrc ) { pDst = (fbxDouble1)pSrc[0]; return true; }
01128 inline bool fbxCopy( fbxDouble1 &pDst,fbxDouble4 const &pSrc ) { pDst = (fbxDouble1)pSrc[0]; return true; }
01129 inline bool fbxCopy( fbxDouble1 &pDst,fbxDouble44 const &pSrc ) { pDst = (fbxDouble1)pSrc[0][0]; return true; }
01130
01131 inline bool fbxCopy( fbxDouble1 &pDst,fbxString const &pSrc ) { return fbxCopyStr(pDst,pSrc); }
01132 inline bool fbxCopy( fbxDouble1 &pDst,fbxTime const &pSrc ) { pDst = (fbxDouble1)pSrc.GetSecondDouble(); return true; }
01133
01134
01135 inline bool fbxCopy( fbxDouble1 &pDst,fbxDistance const &pSrc ) { pDst = pSrc.internalValue(); return true; }
01136
01137
01138
01139 inline bool fbxCopy( fbxDouble2 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01140 inline bool fbxCopy( fbxDouble2 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01141 inline bool fbxCopy( fbxDouble2 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01142 inline bool fbxCopy( fbxDouble2 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01143 inline bool fbxCopy( fbxDouble2 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01144 inline bool fbxCopy( fbxDouble2 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01145 inline bool fbxCopy( fbxDouble2 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01146 inline bool fbxCopy( fbxDouble2 &pDst,fbxHalfFloat const &pSrc ) { pDst = (fbxDouble1)pSrc.value(); return true; }
01147 inline bool fbxCopy( fbxDouble2 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01148 inline bool fbxCopy( fbxDouble2 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01149 inline bool fbxCopy( fbxDouble2 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01150 inline bool fbxCopy( fbxDouble2 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01151
01152
01153 inline bool fbxCopy( fbxDouble3 &pDst,fbxByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01154 inline bool fbxCopy( fbxDouble3 &pDst,fbxUByte1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01155 inline bool fbxCopy( fbxDouble3 &pDst,fbxShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01156 inline bool fbxCopy( fbxDouble3 &pDst,fbxUShort1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01157 inline bool fbxCopy( fbxDouble3 &pDst,fbxUInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01158 inline bool fbxCopy( fbxDouble3 &pDst,fbxLongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01159 inline bool fbxCopy( fbxDouble3 &pDst,fbxULongLong1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01160 inline bool fbxCopy( fbxDouble3 &pDst,fbxHalfFloat const &pSrc ) { pDst = (fbxDouble1)pSrc.value(); return true; }
01161 inline bool fbxCopy( fbxDouble3 &pDst,fbxBool1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01162 inline bool fbxCopy( fbxDouble3 &pDst,fbxInteger1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01163 inline bool fbxCopy( fbxDouble3 &pDst,fbxFloat1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01164 inline bool fbxCopy( fbxDouble3 &pDst,fbxDouble1 const &pSrc ) { pDst = (fbxDouble1)pSrc; return true; }
01165 inline bool fbxCopy( fbxDouble3 &pDst,fbxDouble2 const &pSrc ) { return false; }
01166
01167 inline bool fbxCopy( fbxDouble3 &pDst,fbxDouble4 const &pSrc ) { pDst = pSrc; return true; }
01168 inline bool fbxCopy( fbxDouble3 &pDst,fbxDouble44 const &pSrc ) { return false; }
01169
01170 inline bool fbxCopy( fbxDouble3 &pDst,fbxString const &pSrc ) { return false; }
01171 inline bool fbxCopy( fbxDouble3 &pDst,fbxTime const &pSrc ) { return false; }
01172 inline bool fbxCopy( fbxDouble3 &pDst,fbxReference const &pSrc ) { return false; }
01173 inline bool fbxCopy( fbxDouble3 &pDst,fbxBlob const &pSrc ) { return false; }
01174 inline bool fbxCopy( fbxDouble3 &pDst,fbxDistance const &pSrc ) { return false; }
01175 inline bool fbxCopy( fbxDouble3 &pDst,fbxDateTime const &pSrc ) { return false; }
01176
01177
01178 inline bool fbxCopy( fbxDouble4 &pDst,fbxByte1 const &pSrc ) { return false; }
01179 inline bool fbxCopy( fbxDouble4 &pDst,fbxUByte1 const &pSrc ) { return false; }
01180 inline bool fbxCopy( fbxDouble4 &pDst,fbxShort1 const &pSrc ) { return false; }
01181 inline bool fbxCopy( fbxDouble4 &pDst,fbxUShort1 const &pSrc ) { return false; }
01182 inline bool fbxCopy( fbxDouble4 &pDst,fbxUInteger1 const &pSrc ) { return false; }
01183 inline bool fbxCopy( fbxDouble4 &pDst,fbxLongLong1 const &pSrc ) { return false; }
01184 inline bool fbxCopy( fbxDouble4 &pDst,fbxULongLong1 const &pSrc ) { return false; }
01185 inline bool fbxCopy( fbxDouble4 &pDst,fbxHalfFloat const &pSrc ) { return false; }
01186 inline bool fbxCopy( fbxDouble4 &pDst,fbxBool1 const &pSrc ) { return false; }
01187 inline bool fbxCopy( fbxDouble4 &pDst,fbxInteger1 const &pSrc ) { return false; }
01188 inline bool fbxCopy( fbxDouble4 &pDst,fbxFloat1 const &pSrc ) { return false; }
01189 inline bool fbxCopy( fbxDouble4 &pDst,fbxDouble1 const &pSrc ) { return false; }
01190 inline bool fbxCopy( fbxDouble4 &pDst,fbxDouble2 const &pSrc ) { return false; }
01191 inline bool fbxCopy( fbxDouble4 &pDst,fbxDouble3 const &pSrc ) { pDst = pSrc; return true; }
01192 inline bool fbxCopy( fbxDouble4 &pDst,fbxDouble44 const &pSrc ) { return false; }
01193
01194 inline bool fbxCopy( fbxDouble4 &pDst,fbxString const &pSrc ) { return false; }
01195 inline bool fbxCopy( fbxDouble4 &pDst,fbxTime const &pSrc ) { return false; }
01196 inline bool fbxCopy( fbxDouble4 &pDst,fbxReference const &pSrc ) { return false; }
01197 inline bool fbxCopy( fbxDouble4 &pDst,fbxBlob const &pSrc ) { return false; }
01198 inline bool fbxCopy( fbxDouble4 &pDst,fbxDistance const &pSrc ) { return false; }
01199 inline bool fbxCopy( fbxDouble4 &pDst,fbxDateTime const &pSrc ) { return false; }
01200
01201
01202 inline bool fbxCopy( fbxString &pDst,fbxByte1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01203 inline bool fbxCopy( fbxString &pDst,fbxUByte1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01204 inline bool fbxCopy( fbxString &pDst,fbxShort1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01205 inline bool fbxCopy( fbxString &pDst,fbxUShort1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01206 inline bool fbxCopy( fbxString &pDst,fbxUInteger1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01207 inline bool fbxCopy( fbxString &pDst,fbxLongLong1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01208 inline bool fbxCopy( fbxString &pDst,fbxULongLong1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01209 inline bool fbxCopy( fbxString &pDst,fbxHalfFloat const &pSrc ) { pDst=KString((float)pSrc.value()); return true; }
01210 inline bool fbxCopy( fbxString &pDst,fbxBool1 const &pSrc ) { pDst=pSrc ? "true" : "false"; return true; }
01211 inline bool fbxCopy( fbxString &pDst,fbxInteger1 const &pSrc ) { pDst=KString((int)pSrc); return true; }
01212 inline bool fbxCopy( fbxString &pDst,fbxFloat1 const &pSrc ) { pDst=KString(pSrc); return true; }
01213 inline bool fbxCopy( fbxString &pDst,fbxDouble1 const &pSrc ) { pDst=KString(pSrc); return true; }
01214 inline bool fbxCopy( fbxString &pDst,fbxDouble2 const &pSrc ) { pDst=KString(pSrc[0])+","+KString(pSrc[1]); return true; }
01215 inline bool fbxCopy( fbxString &pDst,fbxDouble3 const &pSrc ) { pDst=KString(pSrc[0])+","+KString(pSrc[1])+","+KString(pSrc[2]); return true; }
01216 inline bool fbxCopy( fbxString &pDst,fbxDouble4 const &pSrc ) { pDst=KString(pSrc[0])+","+KString(pSrc[1])+","+KString(pSrc[2])+","+KString(pSrc[3]); return true; }
01217 inline bool fbxCopy( fbxString &pDst,fbxDouble44 const &pSrc ) { pDst=KString(pSrc[0][0])+","+KString(pSrc[0][1])+","+KString(pSrc[0][2])+","+KString(pSrc[0][3]); return true; }
01218
01219 inline bool fbxCopy( fbxString &pDst,fbxTime const &pSrc ) { char lTimeStr[128]; pSrc.GetTimeString(lTimeStr); pDst=lTimeStr; return true; }
01220 inline bool fbxCopy( fbxString &pDst,fbxReference const &pSrc ) { pDst="<reference>"; return true; }
01221 inline bool fbxCopy( fbxString &pDst,fbxBlob const &pSrc ) { pDst="<blob>"; return true; }
01222 inline bool fbxCopy( fbxString &pDst,fbxDistance const &pSrc ) { pDst= KString(pSrc.value()) + " " +pSrc.unitName(); return true; }
01223 inline bool fbxCopy( fbxString &pDst,fbxDateTime const &pSrc ) { pDst= pSrc.toString(); return true; }
01224
01225
01226 inline bool fbxCopy( fbxBlob &pDst,fbxByte1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01227 inline bool fbxCopy( fbxBlob &pDst,fbxUByte1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01228 inline bool fbxCopy( fbxBlob &pDst,fbxShort1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01229 inline bool fbxCopy( fbxBlob &pDst,fbxUShort1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01230 inline bool fbxCopy( fbxBlob &pDst,fbxUInteger1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01231 inline bool fbxCopy( fbxBlob &pDst,fbxLongLong1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01232 inline bool fbxCopy( fbxBlob &pDst,fbxULongLong1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01233 inline bool fbxCopy( fbxBlob &pDst,fbxHalfFloat const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01234 inline bool fbxCopy( fbxBlob &pDst,fbxBool1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01235 inline bool fbxCopy( fbxBlob &pDst,fbxInteger1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01236 inline bool fbxCopy( fbxBlob &pDst,fbxFloat1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01237 inline bool fbxCopy( fbxBlob &pDst,fbxDouble1 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01238 inline bool fbxCopy( fbxBlob &pDst,fbxDouble2 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01239 inline bool fbxCopy( fbxBlob &pDst,fbxDouble3 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01240 inline bool fbxCopy( fbxBlob &pDst,fbxDouble4 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01241 inline bool fbxCopy( fbxBlob &pDst,fbxDouble44 const &pSrc ) { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
01242 inline bool fbxCopy( fbxBlob &pDst,fbxString const &pSrc )
01243 {
01244 bool lCastable = pSrc.GetLen() == pSrc.GetLen();
01245 K_ASSERT( lCastable );
01246 if( lCastable )
01247 pDst.Assign(pSrc.Buffer(), (int)pSrc.GetLen());
01248 return lCastable;
01249 }
01250 inline bool fbxCopy( fbxBlob &pDst,fbxTime const &pSrc ) { kLongLong t = pSrc.Get(); pDst.Assign( &t, sizeof(t)); return true; }
01251 inline bool fbxCopy( fbxBlob &pDst,fbxReference const &pSrc ) { return false; }
01252 inline bool fbxCopy( fbxBlob &pDst,fbxDistance const &pSrc ) { return false; }
01253 inline bool fbxCopy( fbxBlob &pDst,fbxDateTime const &pSrc ) { return false; }
01254
01255
01256 inline bool fbxCopy( fbxDistance &pDst,fbxByte1 const &pSrc ) { return false; }
01257 inline bool fbxCopy( fbxDistance &pDst,fbxUByte1 const &pSrc ) { return false; }
01258 inline bool fbxCopy( fbxDistance &pDst,fbxShort1 const &pSrc ) { return false; }
01259 inline bool fbxCopy( fbxDistance &pDst,fbxUShort1 const &pSrc ) { return false; }
01260 inline bool fbxCopy( fbxDistance &pDst,fbxUInteger1 const &pSrc ) { return false; }
01261 inline bool fbxCopy( fbxDistance &pDst,fbxLongLong1 const &pSrc ) { return false; }
01262 inline bool fbxCopy( fbxDistance &pDst,fbxULongLong1 const &pSrc ) { return false; }
01263 inline bool fbxCopy( fbxDistance &pDst,fbxHalfFloat const &pSrc ) { return false; }
01264 inline bool fbxCopy( fbxDistance &pDst,fbxBool1 const &pSrc ) { return false; }
01265 inline bool fbxCopy( fbxDistance &pDst,fbxInteger1 const &pSrc ) { return false; }
01266 inline bool fbxCopy( fbxDistance &pDst,fbxFloat1 const &pSrc ) { return false; }
01267 inline bool fbxCopy( fbxDistance &pDst,fbxDouble1 const &pSrc ) { return false; }
01268 inline bool fbxCopy( fbxDistance &pDst,fbxDouble2 const &pSrc ) { return false; }
01269 inline bool fbxCopy( fbxDistance &pDst,fbxDouble3 const &pSrc ) { return false; }
01270 inline bool fbxCopy( fbxDistance &pDst, fbxDouble4 const &pSrc ) { return false; }
01271 inline bool fbxCopy( fbxDistance &pDst,fbxDouble44 const &pSrc ) { return false; }
01272 inline bool fbxCopy( fbxDistance &pDst,fbxString const &pSrc ) { return false; }
01273 inline bool fbxCopy( fbxDistance &pDst,fbxTime const &pSrc ) { return false; }
01274 inline bool fbxCopy( fbxDistance &pDst,fbxReference const &pSrc ) { return false; }
01275 inline bool fbxCopy( fbxDistance &pDst,fbxBlob const &pSrc ) { return false; }
01276 inline bool fbxCopy( fbxDistance &pDst,fbxDateTime const &pSrc ) { return false; }
01277
01278 inline bool fbxCopy( fbxDateTime &pDst,fbxByte1 const &pSrc ) { return false; }
01279 inline bool fbxCopy( fbxDateTime &pDst,fbxUByte1 const &pSrc ) { return false; }
01280 inline bool fbxCopy( fbxDateTime &pDst,fbxShort1 const &pSrc ) { return false; }
01281 inline bool fbxCopy( fbxDateTime &pDst,fbxUShort1 const &pSrc ) { return false; }
01282 inline bool fbxCopy( fbxDateTime &pDst,fbxUInteger1 const &pSrc ) { return false; }
01283 inline bool fbxCopy( fbxDateTime &pDst,fbxLongLong1 const &pSrc ) { return false; }
01284 inline bool fbxCopy( fbxDateTime &pDst,fbxULongLong1 const &pSrc ) { return false; }
01285 inline bool fbxCopy( fbxDateTime &pDst,fbxHalfFloat const &pSrc ) { return false; }
01286 inline bool fbxCopy( fbxDateTime &pDst,fbxBool1 const &pSrc ) { return false; }
01287 inline bool fbxCopy( fbxDateTime &pDst,fbxInteger1 const &pSrc ) { return false; }
01288 inline bool fbxCopy( fbxDateTime &pDst,fbxFloat1 const &pSrc ) { return false; }
01289 inline bool fbxCopy( fbxDateTime &pDst,fbxDouble1 const &pSrc ) { return false; }
01290 inline bool fbxCopy( fbxDateTime &pDst,fbxDouble2 const &pSrc ) { return false; }
01291 inline bool fbxCopy( fbxDateTime &pDst,fbxDouble3 const &pSrc ) { return false; }
01292 inline bool fbxCopy( fbxDateTime &pDst,fbxDouble4 const &pSrc ) { return false; }
01293 inline bool fbxCopy( fbxDateTime &pDst,fbxDouble44 const &pSrc ) { return false; }
01294 inline bool fbxCopy( fbxDateTime &pDst,fbxString const &pSrc ) { return pDst.fromString(pSrc); }
01295 inline bool fbxCopy( fbxDateTime &pDst,fbxTime const &pSrc ) { return false; }
01296 inline bool fbxCopy( fbxDateTime &pDst,fbxReference const &pSrc ) { return false; }
01297 inline bool fbxCopy( fbxDateTime &pDst,fbxBlob const &pSrc ) { return false; }
01298 inline bool fbxCopy( fbxDateTime &pDst,fbxDistance const &pSrc ) { return false; }
01299
01300 template< class T > inline bool fbxCopy( T &pDst,void const *pSrc,EFbxType pSrcType)
01301 {
01302 switch (pSrcType) {
01303 case eBYTE1: return fbxCopy( pDst,*(fbxByte1 *)pSrc );
01304 case eUBYTE1: return fbxCopy( pDst,*(fbxUByte1 *)pSrc );
01305 case eSHORT1: return fbxCopy( pDst,*(fbxShort1 *)pSrc );
01306 case eUSHORT1: return fbxCopy( pDst,*(fbxUShort1 *)pSrc );
01307 case eUINTEGER1: return fbxCopy( pDst,*(fbxUInteger1 *)pSrc );
01308 case eLONGLONG1: return fbxCopy( pDst,*(fbxLongLong1 *)pSrc );
01309 case eULONGLONG1: return fbxCopy( pDst,*(fbxULongLong1 *)pSrc );
01310 case eHALFFLOAT: return fbxCopy( pDst,*(fbxHalfFloat *)pSrc );
01311 case eBOOL1: return fbxCopy( pDst,*(fbxBool1 *)pSrc );
01312 case eINTEGER1: return fbxCopy( pDst,*(fbxInteger1 *)pSrc );
01313 case eFLOAT1: return fbxCopy( pDst,*(fbxFloat1 *)pSrc );
01314 case eDOUBLE1: return fbxCopy( pDst,*(fbxDouble1 *)pSrc );
01315 case eDOUBLE2: return fbxCopy( pDst,*(fbxDouble2 *)pSrc );
01316 case eDOUBLE3: return fbxCopy( pDst,*(fbxDouble3 *)pSrc );
01317 case eDOUBLE4: return fbxCopy( pDst,*(fbxDouble4 *)pSrc );
01318 case eDOUBLE44: return fbxCopy( pDst,*(fbxDouble44 *)pSrc );
01319 case eENUM: return fbxCopy( pDst,*(fbxEnum *)pSrc );
01320 case eSTRING: return fbxCopy( pDst,*(fbxString *)pSrc );
01321 case eTIME: return fbxCopy( pDst,*(fbxTime *)pSrc );
01322 case eREFERENCE:
01323 K_ASSERT_MSG_NOW("Trying to set value on a void Reference type" );
01324 break;
01325 case eBLOB: return fbxCopy( pDst,*(fbxBlob *)pSrc );
01326 case eDISTANCE: return fbxCopy( pDst, *(fbxDistance *)pSrc );
01327 case eDATETIME: return fbxCopy( pDst, *(fbxDateTime *)pSrc );
01328 default:
01329 K_ASSERT_MSG_NOW("Trying to assign an unknown type" );
01330 }
01331 return false;
01332 }
01333
01334 template< class T > inline bool fbxCopy( void *pDst,EFbxType pDstType,T const &pSrc)
01335 {
01336 switch (pDstType) {
01337 case eBYTE1: return fbxCopy( *(fbxByte1 *)pDst,pSrc );
01338 case eUBYTE1: return fbxCopy( *(fbxUByte1 *)pDst,pSrc );
01339 case eSHORT1: return fbxCopy( *(fbxShort1 *)pDst,pSrc );
01340 case eUSHORT1: return fbxCopy( *(fbxUShort1 *)pDst,pSrc );
01341 case eUINTEGER1: return fbxCopy( *(fbxUInteger1 *)pDst,pSrc );
01342 case eLONGLONG1: return fbxCopy( *(fbxLongLong1 *)pDst,pSrc );
01343 case eULONGLONG1: return fbxCopy( *(fbxULongLong1 *)pDst,pSrc );
01344 case eHALFFLOAT: return fbxCopy( *(fbxHalfFloat *)pDst,pSrc );
01345 case eBOOL1: return fbxCopy( *(fbxBool1 *)pDst,pSrc );
01346 case eINTEGER1: return fbxCopy( *(fbxInteger1 *)pDst,pSrc );
01347 case eFLOAT1: return fbxCopy( *(fbxFloat1 *)pDst,pSrc );
01348 case eDOUBLE1: return fbxCopy( *(fbxDouble1 *)pDst,pSrc );
01349 case eDOUBLE2: return fbxCopy( *(fbxDouble2 *)pDst,pSrc );
01350 case eDOUBLE3: return fbxCopy( *(fbxDouble3 *)pDst,pSrc );
01351 case eDOUBLE4: return fbxCopy( *(fbxDouble4 *)pDst,pSrc );
01352 case eDOUBLE44: return fbxCopy( *(fbxDouble44 *)pDst,pSrc );
01353 case eENUM: return fbxCopy( *(fbxEnum *)pDst,pSrc );
01354 case eSTRING: return fbxCopy( *(fbxString *)pDst,pSrc );
01355 case eTIME: return fbxCopy( *(fbxTime *)pDst,pSrc );
01356 case eREFERENCE:
01357 K_ASSERT_MSG_NOW("Trying to set value on a void Reference type" );
01358 break;
01359 case eBLOB: return fbxCopy( *(fbxBlob *)pDst,pSrc );
01360 case eDISTANCE: return fbxCopy( *(fbxDistance *)pDst, pSrc );
01361 case eDATETIME: return fbxCopy( *(fbxDateTime *)pDst, pSrc );
01362 default:
01363 K_ASSERT_MSG_NOW("Trying to assign an unknown type" );
01364 }
01365 return false;
01366 }
01367
01368 inline bool fbxCopy( void *pDst,EFbxType pDstType,void const *pSrc,EFbxType pSrcType)
01369 {
01370 switch (pSrcType) {
01371 case eBYTE1: return fbxCopy( pDst,pDstType,*(fbxByte1 *)pSrc );
01372 case eUBYTE1: return fbxCopy( pDst,pDstType,*(fbxUByte1 *)pSrc );
01373 case eSHORT1: return fbxCopy( pDst,pDstType,*(fbxShort1 *)pSrc );
01374 case eUSHORT1: return fbxCopy( pDst,pDstType,*(fbxUShort1 *)pSrc );
01375 case eUINTEGER1: return fbxCopy( pDst,pDstType,*(fbxUInteger1 *)pSrc );
01376 case eLONGLONG1: return fbxCopy( pDst,pDstType,*(fbxLongLong1 *)pSrc );
01377 case eULONGLONG1: return fbxCopy( pDst,pDstType,*(fbxULongLong1 *)pSrc );
01378 case eHALFFLOAT: return fbxCopy( pDst,pDstType,*(fbxHalfFloat *)pSrc );
01379 case eBOOL1: return fbxCopy( pDst,pDstType,*(fbxBool1 *)pSrc );
01380 case eINTEGER1: return fbxCopy( pDst,pDstType,*(fbxInteger1 *)pSrc );
01381 case eFLOAT1: return fbxCopy( pDst,pDstType,*(fbxFloat1 *)pSrc );
01382 case eDOUBLE1: return fbxCopy( pDst,pDstType,*(fbxDouble1 *)pSrc );
01383 case eDOUBLE2: return fbxCopy( pDst,pDstType,*(fbxDouble2 *)pSrc );
01384 case eDOUBLE3: return fbxCopy( pDst,pDstType,*(fbxDouble3 *)pSrc );
01385 case eDOUBLE4: return fbxCopy( pDst,pDstType,*(fbxDouble4 *)pSrc );
01386 case eDOUBLE44: return fbxCopy( pDst,pDstType,*(fbxDouble44 *)pSrc );
01387 case eENUM: return fbxCopy( pDst,pDstType,*(fbxEnum *)pSrc );
01388 case eSTRING: return fbxCopy( pDst,pDstType,*(fbxString *)pSrc);
01389 case eTIME: return fbxCopy( pDst,pDstType,*(fbxTime*)pSrc);
01390 case eREFERENCE:
01391 K_ASSERT_MSG_NOW("Trying to set value on a void Reference type" );
01392 break;
01393 case eBLOB: return fbxCopy( pDst,pDstType,*(fbxBlob*)pSrc);
01394 case eDISTANCE: return fbxCopy(pDst, pDstType, *(fbxDistance*)pSrc);
01395 case eDATETIME: return fbxCopy(pDst, pDstType, *(fbxDateTime*)pSrc);
01396 default:
01397 K_ASSERT_MSG_NOW("Trying to assign an unknown type" );
01398 }
01399 return false;
01400 }
01401
01407 KFBX_DLL void* fbxCreate( EFbxType pType );
01408
01409
01417 KFBX_DLL bool fbxDestroy( EFbxType pType, void* pData );
01418
01419
01426 inline bool fbxCompare( const void* pA, const void* pB, EFbxType pType )
01427 {
01428 switch (pType) {
01429 case eBYTE1: return (*(fbxByte1*)pA) == (*(fbxByte1*)pB);
01430 case eUBYTE1: return (*(fbxUByte1*)pA) == (*(fbxUByte1*)pB);
01431 case eSHORT1: return (*(fbxShort1*)pA) == (*(fbxShort1*)pB);
01432 case eUSHORT1: return (*(fbxUShort1*)pA) == (*(fbxUShort1*)pB);
01433 case eUINTEGER1: return (*(fbxUInteger1*)pA) == (*(fbxUInteger1*)pB);
01434 case eLONGLONG1: return (*(fbxLongLong1*)pA) == (*(fbxLongLong1*)pB);
01435 case eULONGLONG1: return (*(fbxULongLong1*)pA) == (*(fbxULongLong1*)pB);
01436 case eHALFFLOAT: return (*(fbxHalfFloat*)pA) == (*(fbxHalfFloat*)pB);
01437 case eBOOL1: return (*(fbxBool1*)pA) == (*(fbxBool1*)pB);
01438 case eINTEGER1: return (*(fbxInteger1*)pA) == (*(fbxInteger1*)pB);
01439 case eFLOAT1: return (*(fbxFloat1*)pA) == (*(fbxFloat1*)pB);
01440 case eDOUBLE1: return (*(fbxDouble1*)pA) == (*(fbxDouble1*)pB);
01441 case eDOUBLE2: return (*(fbxDouble2*)pA) == (*(fbxDouble2*)pB);
01442 case eDOUBLE3: return (*(fbxDouble3*)pA) == (*(fbxDouble3*)pB);
01443 case eDOUBLE4: return (*(fbxDouble4*)pA) == (*(fbxDouble4*)pB);
01444 case eDOUBLE44: return (*(fbxDouble44*)pA) == (*(fbxDouble44*)pB);
01445 case eENUM: return (*(fbxEnum*)pA) == (*(fbxEnum*)pB);
01446 case eSTRING: return (*(fbxString*)pA) == (*(fbxString*)pB);
01447 case eTIME: return (*(fbxTime*)pA) == (*(fbxTime*)pB);
01448 case eREFERENCE:
01449 K_ASSERT_MSG_NOW("Trying to compare value on a void Reference type" );
01450 break;
01451 case eBLOB: return (*(fbxBlob*)pA) == (*(fbxBlob*)pB);
01452 case eDISTANCE: return (*(fbxDistance*)pA) == (*(fbxDistance*)pB);
01453 case eDATETIME: return (*(fbxDateTime*)pA) == (*(fbxDateTime*)pB);
01454 default:
01455 K_ASSERT_MSG_NOW("Trying to compare an unknown type" );
01456 }
01457 return false;
01458 }
01459
01460 #include <fbxfilesdk/fbxfilesdk_nsend.h>
01461
01462 #endif // FBXFILESDK_KFBXPLUGINS_KFBXTYPES_H
01463