- Main Page
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# fbxpropertytypes.h

Go to the documentation of this file.

    00001 /****************************************************************************************
    00002
    00003    Copyright (C) 2012 Autodesk, Inc.
    00004    All rights reserved.
    00005
    00006    Use of this software is subject to the terms of the Autodesk license agreement
    00007    provided at the time of installation or download, or which otherwise accompanies
    00008    this software in either electronic or hard copy form.
    00009
    00010 ****************************************************************************************/
    00011
    00013 #ifndef _FBXSDK_CORE_PROPERTY_TYPES_H_
    00014 #define _FBXSDK_CORE_PROPERTY_TYPES_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/core/base/fbxstring.h>
    00019 #include <fbxsdk/core/base/fbxtime.h>
    00020 #include <fbxsdk/core/math/fbxvector2.h>
    00021 #include <fbxsdk/core/math/fbxvector4.h>
    00022 #include <fbxsdk/core/math/fbxmatrix.h>
    00023 #include <fbxsdk/core/fbxsystemunit.h>
    00024
    00025 #include <fbxsdk/fbxsdk_nsbegin.h>
    00026
    00028 enum EFbxType
    00029 {
    00030     eFbxUndefined,
    00031     eFbxChar,
    00032     eFbxUChar,
    00033     eFbxShort,
    00034     eFbxUShort,
    00035     eFbxUInt,
    00036     eFbxLongLong,
    00037     eFbxULongLong,
    00038     eFbxHalfFloat,
    00039     eFbxBool,
    00040     eFbxInt,
    00041     eFbxFloat,
    00042     eFbxDouble,
    00043     eFbxDouble2,
    00044     eFbxDouble3,
    00045     eFbxDouble4,
    00046     eFbxDouble4x4,
    00047     eFbxEnum,
    00048     eFbxString,
    00049     eFbxTime,
    00050     eFbxReference,
    00051     eFbxBlob,
    00052     eFbxDistance,
    00053     eFbxDateTime,
    00054     eFbxTypeCount
    00055 };
    00056
    00060 class FBXSDK_DLL FbxColor
    00061 {
    00062 public:
    00064     FbxColor();
    00065
    00072     FbxColor(const double& pRed, const double& pGreen, const double& pBlue, const double& pAlpha=1.0);
    00073     FbxColor(const FbxDouble3& pRGB, const double& pAlpha=1.0);
    00074     FbxColor(const FbxDouble4& pRGBA);
    00075
    00077     ~FbxColor();
    00078
    00085     void Set(double pRed, double pGreen, double pBlue, double pAlpha = 1.0);
    00086
    00090     bool IsValid() const;
    00091
    00097     double& operator[](int pIndex);
    00098
    00104     const double& operator[](int pIndex) const;
    00105
    00113         FbxColor& operator=(const FbxColor& pColor);
    00114         FbxColor& operator=(const FbxDouble3& pColor);
    00115         FbxColor& operator=(const FbxDouble4& pColor);
    00116
    00121         bool operator==(const FbxColor& pColor) const;
    00122
    00127         bool operator!=(const FbxColor& pColor) const;
    00129
    00134
    00135         double mRed;
    00136
    00138         double mGreen;
    00139
    00141         double mBlue;
    00142
    00144         double mAlpha;
    00146 };
    00147
    00155 class FBXSDK_DLL FbxHalfFloat
    00156 {
    00157 public:
    00162         FbxHalfFloat();
    00163         FbxHalfFloat(float pVal);
    00164         FbxHalfFloat(const FbxHalfFloat& pVal);
    00166
    00171     FbxHalfFloat& operator=(const FbxHalfFloat& pValue);
    00172
    00181         bool operator==(const FbxHalfFloat& pRHS) const;
    00182
    00187         bool operator!=(const FbxHalfFloat& pRHS) const;
    00189
    00196         const float value() const;
    00197
    00200         unsigned const short internal_value() const;
    00202
    00204 //
    00205 //  WARNING!
    00206 //
    00207 //  Anything beyond these lines may not be documented accurately and is
    00208 //  subject to change without notice.
    00209 //
    00211 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00212 private:
    00213     typedef unsigned short half;
    00214     half mValue;
    00215
    00216     // we want to extract the mantissa, exponent and sign from the float number.
    00217     // by the IEEE 754 binary standard, the float number is divided as:
    00218     //        sign          : 1 bit
    00219     //        mantissa      : 23 bits
    00220     //        exponent      : 8 bits
    00221     //        exponent bias : 127
    00222     // and the half-float is:
    00223     //        sing          : 1 bit
    00224     //        mantissa      : 10 bits
    00225     //        exponent      : 5 bits
    00226     //        exponent bias :
    00227
    00228     half FtoHF(float *f);
    00229     float HFtoF(half h) const;
    00230 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00231 };
    00232
    00237 class FBXSDK_DLL FbxBlob
    00238 {
    00239 public:
    00244
    00245         FbxBlob();
    00246
    00250         FbxBlob(int pSize);
    00251
    00255         FbxBlob(const FbxBlob& pRHS);
    00256
    00261         FbxBlob(const void* pData, int pSize);
    00262
    00264         ~FbxBlob();
    00266
    00275         FbxBlob& operator=(const FbxBlob& pValue);
    00276
    00281         void Assign(const void* pData, int pSize);  // Always makes a copy.
    00283
    00292          bool operator==(const FbxBlob& pRHS) const; // Compare the contents.
    00293
    00298         bool operator!=(const FbxBlob& pRHS) const;
    00300
    00302     void* Modify();
    00303
    00308
    00312         const void * Access() const;
    00313
    00317         int Size() const;
    00319
    00321     void Clear();
    00322
    00323 protected:
    00324     int*    mRefCount;
    00325     void*   mData;
    00326     int     mSize;
    00327 };
    00328
    00336 class FBXSDK_DLL FbxDateTime
    00337 {
    00338 public:
    00343
    00344         FbxDateTime();
    00345
    00355         FbxDateTime(int pDay, int pMonth, int pYear, int pHour, int pMin, int pSec, int pMillisecond=0);
    00357
    00366         bool operator==(const FbxDateTime& pRHS) const;
    00367
    00372         bool operator!=(const FbxDateTime& pRHS) const;
    00374
    00376     void Clear();
    00377
    00381     bool isValid() const;
    00382
    00392         void setDate(int pDay, int pMonth, int pYear);
    00393
    00400         void setTime(int pHour, int pMin, int pSec, int pMillisecond = 0);
    00402
    00410         FbxString toString() const;
    00411
    00418         bool fromString(const char*);
    00420
    00424     static FbxDateTime currentDateTimeGMT();
    00425
    00426 private:
    00427     FbxShort mMillisecond;            // 0-999
    00428     FbxShort mYear;                   // No check
    00429
    00430     FbxChar  mMonth;                  // 1-12
    00431     FbxChar  mDay;                    // 1-31; no check with regards to the month
    00432     FbxChar  mHour;                   // 0-23
    00433     FbxChar  mMinute;                 // 0-59
    00434     FbxChar  mSecond;                 // 0-59
    00435 };
    00436
    00440 class FBXSDK_DLL FbxDistance
    00441 {
    00442 public:
    00447
    00448         FbxDistance();
    00449
    00454         FbxDistance(float pValue, FbxSystemUnit pUnit);
    00455
    00461         FbxDistance(float pValue, const char* pUnit);
    00462
    00464         ~FbxDistance();
    00466
    00471     FbxDistance& operator=(const FbxDistance& pValue);
    00472
    00481         bool operator==(const FbxDistance& pRHS) const;
    00482
    00487         bool operator!=(const FbxDistance& pRHS) const;
    00489
    00490     const FbxString unitName() const;
    00491
    00499         const FbxSystemUnit unit() const;
    00500
    00504         const float value() const;
    00506
    00510     const float internalValue() const;
    00511
    00516     const float valueAs(const FbxSystemUnit& pUnit) const;
    00517
    00518 private:
    00519     float               mValue;
    00520     FbxSystemUnit      mUnit;
    00521 };
    00522
    00527 FBXSDK_DLL const size_t FbxTypeSizeOf(const EFbxType pType);
    00528
    00529 // Type management for properties
    00530 inline EFbxType FbxTypeOf(const FbxChar&){ return eFbxChar; }
    00531 inline EFbxType FbxTypeOf(const FbxUChar&){ return eFbxUChar; }
    00532 inline EFbxType FbxTypeOf(const FbxShort&){ return eFbxShort; }
    00533 inline EFbxType FbxTypeOf(const FbxUShort&){ return eFbxUShort; }
    00534 inline EFbxType FbxTypeOf(const FbxUInt&){ return eFbxUInt; }
    00535 inline EFbxType FbxTypeOf(const FbxLongLong&){ return eFbxLongLong; }
    00536 inline EFbxType FbxTypeOf(const FbxULongLong&){ return eFbxULongLong; }
    00537 inline EFbxType FbxTypeOf(const FbxHalfFloat&){ return eFbxHalfFloat; }
    00538 inline EFbxType FbxTypeOf(const FbxBool&){ return eFbxBool; }
    00539 inline EFbxType FbxTypeOf(const FbxInt&){ return eFbxInt; }
    00540 inline EFbxType FbxTypeOf(const FbxFloat&){ return eFbxFloat; }
    00541 inline EFbxType FbxTypeOf(const FbxDouble&){ return eFbxDouble; }
    00542 inline EFbxType FbxTypeOf(const FbxDouble2&){ return eFbxDouble2; }
    00543 inline EFbxType FbxTypeOf(const FbxDouble3&){ return eFbxDouble3; }
    00544 inline EFbxType FbxTypeOf(const FbxDouble4&){ return eFbxDouble4; }
    00545 inline EFbxType FbxTypeOf(const FbxDouble4x4&){ return eFbxDouble4x4; }
    00546 inline EFbxType FbxTypeOf(const FbxVector2&){ return eFbxDouble2; }
    00547 inline EFbxType FbxTypeOf(const FbxVector4&){ return eFbxDouble4; }
    00548 inline EFbxType FbxTypeOf(const FbxQuaternion&){ return eFbxDouble4; }
    00549 inline EFbxType FbxTypeOf(const FbxMatrix&){ return eFbxDouble4x4; }
    00550 inline EFbxType FbxTypeOf(const FbxAMatrix&){ return eFbxDouble4x4; }
    00551 inline EFbxType FbxTypeOf(const FbxString&){ return eFbxString; }
    00552 inline EFbxType FbxTypeOf(const FbxTime&){ return eFbxTime; }
    00553 inline EFbxType FbxTypeOf(const FbxReference&){ return eFbxReference; }
    00554 inline EFbxType FbxTypeOf(const FbxBlob&){ return eFbxBlob; }
    00555 inline EFbxType FbxTypeOf(const FbxColor&){ return eFbxDouble4; }
    00556 inline EFbxType FbxTypeOf(const FbxDistance&){ return eFbxDistance; }
    00557 inline EFbxType FbxTypeOf(const FbxDateTime&){ return eFbxDateTime; }
    00558
    00559 template <class T> inline EFbxType FbxTypeOf(const T&){ FBX_ASSERT_NOW("Unknown type!"); return eFbxUndefined; }
    00560
    00561 bool FBXSDK_DLL FbxTypeCopyStr(FbxDouble& pDst, const FbxString& pSrc);
    00562 bool FBXSDK_DLL FbxTypeCopyStr(FbxBool& pDst, const FbxString& pSrc);
    00563 bool FBXSDK_DLL FbxTypeCopyStr(FbxInt& pDst, const FbxString& pSrc);
    00564 bool FBXSDK_DLL FbxTypeCopyStr(FbxChar& pDst, const FbxString& pSrc);
    00565 bool FBXSDK_DLL FbxTypeCopyStr(FbxUChar& pDst, const FbxString& pSrc);
    00566 bool FBXSDK_DLL FbxTypeCopyStr(FbxShort& pDst, const FbxString& pSrc);
    00567 bool FBXSDK_DLL FbxTypeCopyStr(FbxUShort& pDst, const FbxString& pSrc);
    00568 bool FBXSDK_DLL FbxTypeCopyStr(FbxUInt& pDst, const FbxString& pSrc);
    00569 bool FBXSDK_DLL FbxTypeCopyStr(FbxLongLong& pDst, const FbxString& pSrc);
    00570 bool FBXSDK_DLL FbxTypeCopyStr(FbxULongLong& pDst, const FbxString& pSrc);
    00571 bool FBXSDK_DLL FbxTypeCopyStr(FbxHalfFloat& pDst, const FbxString& pSrc);
    00572
    00573 // Copy types and conversions
    00574 template<class T1, class T2> inline bool FbxTypeCopy(T1&, const T2&){ FBX_ASSERT_NOW("Incompatible type assignment!" ); return false; }
    00575
    00577 inline bool FbxTypeCopy(FbxChar& pDst, const FbxChar& pSrc){ pDst = pSrc; return true; }
    00578 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxUChar& pSrc){ pDst = pSrc; return true; }
    00579 inline bool FbxTypeCopy(FbxShort& pDst, const FbxShort& pSrc){ pDst = pSrc; return true; }
    00580 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxUShort& pSrc){ pDst = pSrc; return true; }
    00581 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUInt& pSrc){ pDst = pSrc; return true; }
    00582 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxLongLong& pSrc){ pDst = pSrc; return true; }
    00583 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxULongLong& pSrc){ pDst = pSrc; return true; }
    00584 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxHalfFloat& pSrc){ pDst = pSrc; return true; }
    00585 inline bool FbxTypeCopy(FbxBool& pDst, const FbxBool& pSrc){ pDst = pSrc; return true; }
    00586 inline bool FbxTypeCopy(FbxInt& pDst, const FbxInt& pSrc){ pDst = pSrc; return true; }
    00587 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxFloat& pSrc){ pDst = pSrc; return true; }
    00588 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble& pSrc){ pDst = pSrc; return true; }
    00589 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxDouble2& pSrc){ pDst = pSrc; return true; }
    00590 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble3& pSrc){ pDst = pSrc; return true; }
    00591 inline bool FbxTypeCopy(FbxDouble4& pDst, const FbxDouble4& pSrc){ pDst = pSrc; return true; }
    00592 inline bool FbxTypeCopy(FbxDouble4x4& pDst, const FbxDouble4x4& pSrc){ pDst = pSrc; return true; }
    00593 inline bool FbxTypeCopy(FbxString& pDst, const FbxString& pSrc){ pDst = pSrc; return true; }
    00594 inline bool FbxTypeCopy(FbxTime& pDst, const FbxTime& pSrc){ pDst = pSrc; return true; }
    00595 inline bool FbxTypeCopy(FbxReference& pDst, const FbxReference& pSrc){ pDst = pSrc; return true; }
    00596 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxBlob& pSrc){ pDst = pSrc; return true; }
    00597 inline bool FbxTypeCopy(FbxDistance& pDst, const FbxDistance& pSrc){ pDst = pSrc; return true; }
    00598 inline bool FbxTypeCopy(FbxDateTime& pDst, const FbxDateTime& pSrc){ pDst = pSrc; return true; }
    00599
    00600 //To FbxBool
    00601 inline bool FbxTypeCopy(FbxBool& pDst, const FbxChar& pSrc )            { pDst   = pSrc == 0 ? false : true; return true; }
    00602 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUChar& pSrc )       { pDst   = pSrc == 0 ? false : true; return true; }
    00603 inline bool FbxTypeCopy(FbxBool& pDst, const FbxShort& pSrc )       { pDst   = pSrc == 0 ? false : true; return true; }
    00604 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUShort& pSrc )      { pDst   = pSrc == 0 ? false : true; return true; }
    00605 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUInt& pSrc )        { pDst   = pSrc == 0 ? false : true; return true; }
    00606 inline bool FbxTypeCopy(FbxBool& pDst, const FbxLongLong& pSrc )        { pDst   = pSrc == 0 ? false : true; return true; }
    00607 inline bool FbxTypeCopy(FbxBool& pDst, const FbxULongLong& pSrc )   { pDst   = pSrc == 0 ? false : true; return true; }
    00608 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxHalfFloat& /*pSrc */)       { return false; }
    00609 inline bool FbxTypeCopy(FbxBool& pDst, const FbxInt& pSrc )     { pDst   = pSrc == 0 ? false : true; return true; }
    00610 inline bool FbxTypeCopy(FbxBool& pDst, const FbxFloat& pSrc )       { pDst   = pSrc == 0.f ? false : true; return true; }
    00611 inline bool FbxTypeCopy(FbxBool& pDst, const FbxDouble& pSrc )      { pDst   = pSrc == 0. ? false : true; return true; }
    00612 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble2& /*pSrc*/)      { return false; }
    00613 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble3& /*pSrc*/)      { return false; }
    00614 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble4& /*pSrc*/)      { return false; }
    00615 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble4x4& /*pSrc*/)        { return false; }
    00616 inline bool FbxTypeCopy(FbxBool& pDst, const FbxString& pSrc )      { return FbxTypeCopyStr(pDst, pSrc); }
    00617 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxTime& /*pSrc*/)         { return false; }
    00618 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxReference& /*pSrc*/)        { return false; }
    00619 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxBlob& /*pSrc*/)         { return false; }
    00620 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDistance& /*pSrc*/)      { return false; }
    00621 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDateTime& /*pSrc*/ )      { return false; }
    00622
    00623 //To FbxChar
    00624 inline bool FbxTypeCopy(FbxChar& pDst, const FbxUChar& pSrc )       { pDst   = (FbxChar)pSrc; return true; }
    00625 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxShort& /*pSrc*/ )       { return false; }
    00626 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxUShort& /*pSrc*/ )      { return false; }
    00627 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxUInt& /*pSrc*/ )        { return false; }
    00628 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxLongLong& /*pSrc*/ )        { return false; }
    00629 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxULongLong& /*pSrc*/ )   { return false; }
    00630 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )       { return false; }
    00631 inline bool FbxTypeCopy(FbxChar& pDst, const FbxBool& pSrc )            { pDst   = (FbxChar)pSrc; return true; }
    00632 inline bool FbxTypeCopy(FbxChar& pDst, const FbxInt& pSrc )     { pDst   = (FbxChar)pSrc; return true; }
    00633 inline bool FbxTypeCopy(FbxChar& pDst, const FbxFloat& pSrc )       { pDst   = (FbxChar)pSrc; return true; }
    00634 inline bool FbxTypeCopy(FbxChar& pDst, const FbxDouble& pSrc )      { pDst   = (FbxChar)pSrc; return true; }
    00635 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble2& /*pSrc*/ )     { return false; }
    00636 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble3& /*pSrc*/ )     { return false; }
    00637 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble4& /*pSrc*/ )     { return false; }
    00638 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )       { return false; }
    00639 inline bool FbxTypeCopy(FbxChar& pDst, const FbxString& pSrc )      { return FbxTypeCopyStr(pDst, pSrc); }
    00640 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxTime& /*pSrc*/ )            { return false; }
    00641 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxReference& /*pSrc*/ )       { return false; }
    00642 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxBlob& /*pSrc*/ )            { return false; }
    00643 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDistance& /*pSrc*/ )        { return false; }
    00644 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDateTime& /*pSrc*/ )        { return false; }
    00645
    00646 //To FbxUChar
    00647 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxChar& pSrc )       { pDst   = (FbxUChar)pSrc; return true; }
    00648 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxShort& /*pSrc*/ )      { return false; }
    00649 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxUShort& /*pSrc*/ )     { return false; }
    00650 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxUInt& /*pSrc*/ )   { return false; }
    00651 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxLongLong& /*pSrc*/ )   { return false; }
    00652 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxULongLong& /*pSrc*/ )  { return false; }
    00653 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )  { return false; }
    00654 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxBool& pSrc )       { pDst   = (FbxUChar)pSrc; return true; }
    00655 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxInt& pSrc )        { pDst   = (FbxUChar)pSrc; return true; }
    00656 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxFloat& pSrc )      { pDst   = (FbxUChar)pSrc; return true; }
    00657 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxDouble& pSrc )     { pDst   = (FbxUChar)pSrc; return true; }
    00658 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble2& /*pSrc*/ )        { return false; }
    00659 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble3& /*pSrc*/ )        { return false; }
    00660 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble4& /*pSrc*/ )        { return false; }
    00661 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )      { return false; }
    00662 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxString& pSrc )     { return FbxTypeCopyStr(pDst, pSrc); }
    00663 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxTime& /*pSrc*/ )           { return false; }
    00664 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxReference& /*pSrc*/ )  { return false; }
    00665 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxBlob& /*pSrc*/ )           { return false; }
    00666 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDistance& /*pSrc*/ )       { return false; }
    00667 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDateTime& /*pSrc*/ )       { return false; }
    00668
    00669 //To FbxShort
    00670 inline bool FbxTypeCopy(FbxShort& pDst, const FbxChar& pSrc )       { pDst   = (FbxShort)pSrc; return true; }
    00671 inline bool FbxTypeCopy(FbxShort& pDst, const FbxUChar& pSrc )      { pDst   = (FbxShort)pSrc; return true; }
    00672 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxUShort& /*pSrc*/ )     { return false; }
    00673 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxUInt& /*pSrc*/ )   { return false; }
    00674 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxLongLong& /*pSrc*/ )   { return false; }
    00675 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxULongLong& /*pSrc*/ )  { return false; }
    00676 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )  { return false; }
    00677 inline bool FbxTypeCopy(FbxShort& pDst, const FbxBool& pSrc )       { pDst   = (FbxShort)pSrc; return true; }
    00678 inline bool FbxTypeCopy(FbxShort& pDst, const FbxInt& pSrc )        { pDst   = (FbxShort)pSrc; return true; }
    00679 inline bool FbxTypeCopy(FbxShort& pDst, const FbxFloat& pSrc )      { pDst   = (FbxShort)pSrc; return true; }
    00680 inline bool FbxTypeCopy(FbxShort& pDst, const FbxDouble& pSrc )     { pDst   = (FbxShort)pSrc; return true; }
    00681 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble2& /*pSrc*/ )        { return false; }
    00682 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble3& /*pSrc*/ )        { return false; }
    00683 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble4& /*pSrc*/ )        { return false; }
    00684 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )      { return false; }
    00685 inline bool FbxTypeCopy(FbxShort& pDst, const FbxString& pSrc )     { return FbxTypeCopyStr(pDst, pSrc); }
    00686 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxTime& /*pSrc*/ )           { return false; }
    00687 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxReference& /*pSrc*/ )  { return false; }
    00688 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxBlob& /*pSrc*/ )           { return false; }
    00689 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDistance& /*pSrc*/ )       { return false; }
    00690 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDateTime& /*pSrc*/ )       { return false; }
    00691
    00692 //To FbxUShort
    00693 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxChar& pSrc )      { pDst   = (FbxUShort)pSrc; return true; }
    00694 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxUChar& pSrc )     { pDst   = (FbxUShort)pSrc; return true; }
    00695 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxShort& pSrc )     { pDst   = (FbxUShort)pSrc; return true; }
    00696 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxUInt& /*pSrc*/ )  { return false; }
    00697 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxLongLong& /*pSrc*/ )  { return false; }
    00698 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxULongLong& /*pSrc*/ ) { return false; }
    00699 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxHalfFloat& /*pSrc*/ ) { return false; }
    00700 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxBool& pSrc )      { pDst   = (FbxUShort)pSrc; return true; }
    00701 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxInt& pSrc )   { pDst   = (FbxUShort)pSrc; return true; }
    00702 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxFloat& pSrc )     { pDst   = (FbxUShort)pSrc; return true; }
    00703 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxDouble& pSrc )        { pDst   = (FbxUShort)pSrc; return true; }
    00704 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble2& /*pSrc*/ )       { return false; }
    00705 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble3& /*pSrc*/ )       { return false; }
    00706 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble4& /*pSrc*/ )       { return false; }
    00707 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble4x4& /*pSrc*/ ) { return false; }
    00708 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxString& pSrc )        { return FbxTypeCopyStr(pDst, pSrc); }
    00709 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxTime& /*pSrc*/ )      { return false; }
    00710 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxReference& /*pSrc*/ ) { return false; }
    00711 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxBlob& /*pSrc*/ )      { return false; }
    00712 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDistance& /*pSrc*/ )  { return false; }
    00713 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDateTime& /*pSrc*/ )  { return false; }
    00714
    00715 //To FbxInt
    00716 inline bool FbxTypeCopy(FbxInt& pDst, const FbxChar& pSrc )     { pDst   = (FbxInt)pSrc; return true; }
    00717 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUChar& pSrc )        { pDst   = (FbxInt)pSrc; return true; }
    00718 inline bool FbxTypeCopy(FbxInt& pDst, const FbxShort& pSrc )        { pDst   = (FbxInt)pSrc; return true; }
    00719 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUShort& pSrc )   { pDst   = (FbxInt)pSrc; return true; }
    00720 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUInt& pSrc ) { pDst   = (FbxInt)pSrc; return true; }
    00721 inline bool FbxTypeCopy(FbxInt& pDst, const FbxLongLong& pSrc ) { pDst   = (FbxInt)pSrc; return true; }
    00722 inline bool FbxTypeCopy(FbxInt& pDst, const FbxULongLong& pSrc )    { pDst   = (FbxInt)pSrc; return true; }
    00723 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )    { return false; }
    00724 inline bool FbxTypeCopy(FbxInt& pDst, const FbxBool& pSrc )     { pDst   = (FbxInt)pSrc; return true; }
    00725 inline bool FbxTypeCopy(FbxInt& pDst, const FbxFloat& pSrc )        { pDst   = (FbxInt)pSrc; return true; }
    00726 inline bool FbxTypeCopy(FbxInt& pDst, const FbxDouble& pSrc )   { pDst   = (FbxInt)pSrc; return true; }
    00727 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble2& /*pSrc*/ )  { return false; }
    00728 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble3& /*pSrc*/ )  { return false; }
    00729 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble4& /*pSrc*/ )  { return false; }
    00730 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )    { return false; }
    00731 inline bool FbxTypeCopy(FbxInt& pDst, const FbxString& pSrc )       { return FbxTypeCopyStr(pDst, pSrc); }
    00732 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxTime& /*pSrc*/ )     { return false; }
    00733 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxReference& /*pSrc*/ )    { return false; }
    00734 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxBlob& /*pSrc*/ )     { return false; }
    00735 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDistance& /*pSrc*/ ) { return false; }
    00736 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDateTime& /*pSrc*/ ) { return false; }
    00737
    00738 //To FbxUInt
    00739 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxChar& pSrc )       { pDst   = (FbxUInt)pSrc; return true; }
    00740 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUChar& pSrc )      { pDst   = (FbxUInt)pSrc; return true; }
    00741 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxShort& pSrc )      { pDst   = (FbxUInt)pSrc; return true; }
    00742 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUShort& pSrc )     { pDst   = (FbxUInt)pSrc; return true; }
    00743 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxLongLong& pSrc )   { pDst   = (FbxUInt)pSrc; return true; }
    00744 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxULongLong& pSrc )  { pDst   = (FbxUInt)pSrc; return true; }
    00745 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )   { return false; }
    00746 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxBool& pSrc )       { pDst   = (FbxUInt)pSrc; return true; }
    00747 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxInt& pSrc )    { pDst   = (FbxUInt)pSrc; return true; }
    00748 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxFloat& pSrc )      { pDst   = (FbxUInt)pSrc; return true; }
    00749 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxDouble& pSrc )     { pDst   = (FbxUInt)pSrc; return true; }
    00750 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble2& /*pSrc*/ )     { return false; }
    00751 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble3& /*pSrc*/ )     { return false; }
    00752 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble4& /*pSrc*/ )     { return false; }
    00753 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )    { return false; }
    00754 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxString& pSrc )      { return FbxTypeCopyStr(pDst, pSrc); }
    00755 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxTime& /*pSrc*/ )        { return false; }
    00756 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxReference& /*pSrc*/ )   { return false; }
    00757 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxBlob& /*pSrc*/ )        { return false; }
    00758 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDistance& /*pSrc*/ )    { return false; }
    00759 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDateTime& /*pSrc*/ )    { return false; }
    00760
    00761 //To FbxLongLong
    00762 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxChar& pSrc )       { pDst   = (FbxLongLong)pSrc; return true; }
    00763 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUChar& pSrc )      { pDst   = (FbxLongLong)pSrc; return true; }
    00764 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxShort& pSrc )      { pDst   = (FbxLongLong)pSrc; return true; }
    00765 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUShort& pSrc )     { pDst   = (FbxLongLong)pSrc; return true; }
    00766 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUInt& pSrc )   { pDst   = (FbxLongLong)pSrc; return true; }
    00767 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxULongLong& pSrc )  { pDst   = (FbxLongLong)pSrc; return true; }
    00768 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )   { return false; }
    00769 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxBool& pSrc )       { pDst   = (FbxLongLong)pSrc; return true; }
    00770 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxInt& pSrc )    { pDst   = (FbxLongLong)pSrc; return true; }
    00771 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxFloat& pSrc )      { pDst   = (FbxLongLong)pSrc; return true; }
    00772 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxDouble& pSrc )     { pDst   = (FbxLongLong)pSrc; return true; }
    00773 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble2& /*pSrc*/ )     { return false; }
    00774 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble3& /*pSrc*/ )     { return false; }
    00775 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble4& /*pSrc*/ )     { return false; }
    00776 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )    { return false; }
    00777 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxString& pSrc )      { return FbxTypeCopyStr(pDst, pSrc); }
    00778 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxTime& /*pSrc*/ )        { return false; }
    00779 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxReference& /*pSrc*/ )   { return false; }
    00780 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxBlob& /*pSrc*/ )        { return false; }
    00781 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDistance& /*pSrc*/ )    { return false; }
    00782 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDateTime& /*pSrc*/ )    { return false; }
    00783
    00784 //To FbxULongLong
    00785 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxChar& pSrc )       { pDst   = (FbxULongLong)pSrc; return true; }
    00786 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUChar& pSrc )      { pDst   = (FbxULongLong)pSrc; return true; }
    00787 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxShort& pSrc )      { pDst   = (FbxULongLong)pSrc; return true; }
    00788 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUShort& pSrc )     { pDst   = (FbxULongLong)pSrc; return true; }
    00789 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUInt& pSrc )   { pDst   = (FbxULongLong)pSrc; return true; }
    00790 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxLongLong& pSrc )   { pDst   = (FbxULongLong)pSrc; return true; }
    00791 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )  { return false; }
    00792 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxBool& pSrc )       { pDst   = (FbxULongLong)pSrc; return true; }
    00793 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxInt& pSrc )        { pDst   = (FbxULongLong)pSrc; return true; }
    00794 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxFloat& pSrc )      { pDst   = (FbxULongLong)pSrc; return true; }
    00795 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxDouble& pSrc )     { pDst   = (FbxULongLong)pSrc; return true; }
    00796 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble2& /*pSrc*/ )        { return false; }
    00797 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble3& /*pSrc*/ )        { return false; }
    00798 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble4& /*pSrc*/ )        { return false; }
    00799 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )      { return false; }
    00800 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxString& pSrc )     { return FbxTypeCopyStr(pDst, pSrc); }
    00801 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxTime& /*pSrc*/ )           { return false; }
    00802 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxReference& /*pSrc*/ )  { return false; }
    00803 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxBlob& /*pSrc*/ )           { return false; }
    00804 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDistance& /*pSrc*/ )       { return false; }
    00805 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDateTime& /*pSrc*/ )       { return false; }
    00806
    00807 //To FbxHalfFloat
    00808 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxChar& pSrc )         { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00809 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUChar& pSrc )        { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00810 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxShort& pSrc )        { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00811 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUShort& pSrc )       { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00812 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUInt& pSrc )     { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00813 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxLongLong& pSrc )     { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00814 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxULongLong& pSrc )    { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00815 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxBool& pSrc )         { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00816 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxInt& pSrc )      { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00817 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxFloat& pSrc )        { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00818 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxDouble& pSrc )       { FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
    00819 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble2& /*pSrc*/ )       { return false; }
    00820 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble3& /*pSrc*/ )       { return false; }
    00821 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble4& /*pSrc*/ )       { return false; }
    00822 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )      { return false; }
    00823 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxString& /*pSrc*/ )        { return false; }
    00824 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxTime& /*pSrc*/ )          { return false; }
    00825 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxReference& /*pSrc*/ )     { return false; }
    00826 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxBlob& /*pSrc*/ )          { return false; }
    00827 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxDistance& pSrc )      { FbxHalfFloat hf(pSrc.internalValue()); pDst = hf; return true; }
    00828 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDateTime& /*pSrc*/ )      { return false; }
    00829
    00830 //To FbxFloat
    00831 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxChar& pSrc )         { pDst   = (FbxFloat)pSrc; return true; }
    00832 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUChar& pSrc )        { pDst   = (FbxFloat)pSrc; return true; }
    00833 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxShort& pSrc )        { pDst   = (FbxFloat)pSrc; return true; }
    00834 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUShort& pSrc )       { pDst   = (FbxFloat)pSrc; return true; }
    00835 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUInt& pSrc )     { pDst   = (FbxFloat)pSrc; return true; }
    00836 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxLongLong& /*pSrc*/ )     { return false; }
    00837 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxULongLong& /*pSrc*/ )    { return false; }
    00838 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxHalfFloat& pSrc )     { pDst   = pSrc.value()   ; return true; }
    00839 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxBool& pSrc )         { pDst   = (FbxFloat)pSrc; return true; }
    00840 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxInt& pSrc )      { pDst   = (FbxFloat)pSrc; return true; }
    00841 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxDouble& pSrc )       { pDst   = (FbxFloat)pSrc; return true; }
    00842 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble2& /*pSrc*/ )       { return false; }
    00843 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble3& /*pSrc*/ )       { return false; }
    00844 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble4& /*pSrc*/ )       { return false; }
    00845 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )      { return false; }
    00846 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxString& /*pSrc*/ )        { return false; }
    00847 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxTime& /*pSrc*/ )          { return false; }
    00848 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxReference& /*pSrc*/ )     { return false; }
    00849 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxBlob& /*pSrc*/ )          { return false; }
    00850 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxDistance& pSrc )      { pDst = pSrc.internalValue(); return true; }
    00851 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDateTime& /*pSrc*/ )      { return false; }
    00852
    00853 //To FbxDouble
    00854 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxChar& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00855 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUChar& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00856 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxShort& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00857 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUShort& pSrc )      { pDst   = (FbxDouble)pSrc; return true; }
    00858 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUInt& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00859 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxLongLong& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00860 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxULongLong& pSrc )   { pDst   = (FbxDouble)pSrc; return true; }
    00861 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxHalfFloat& pSrc )    { pDst   = (FbxDouble)pSrc.value(); return true; }
    00862 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxBool& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00863 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxInt& pSrc )     { pDst   = (FbxDouble)pSrc; return true; }
    00864 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxFloat& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00865 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble2& pSrc )      { pDst   = (FbxDouble)pSrc[0];     return true; }
    00866 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble3& pSrc )      { pDst   = (FbxDouble)pSrc[0];     return true; }
    00867 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble4& pSrc )      { pDst   = (FbxDouble)pSrc[0];     return true; }
    00868 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble4x4& pSrc )     { pDst   = (FbxDouble)pSrc[0][0];  return true; }
    00869 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxString& pSrc )       { return FbxTypeCopyStr(pDst, pSrc); }
    00870 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxTime& pSrc )         { pDst   = (FbxDouble)pSrc.GetSecondDouble();  return true; }
    00871 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDistance& pSrc )     { pDst = pSrc.internalValue(); return true; }
    00872
    00873 //To FbxDouble2
    00874 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxChar& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00875 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUChar& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00876 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxShort& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00877 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUShort& pSrc )      { pDst   = (FbxDouble)pSrc; return true; }
    00878 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUInt& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00879 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxLongLong& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00880 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxULongLong& pSrc )   { pDst   = (FbxDouble)pSrc; return true; }
    00881 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxHalfFloat& pSrc )    { pDst   = (FbxDouble)pSrc.value(); return true; }
    00882 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxBool& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00883 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxInt& pSrc )     { pDst   = (FbxDouble)pSrc; return true; }
    00884 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxFloat& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00885 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxDouble& pSrc )      { pDst   = (FbxDouble)pSrc; return true; }
    00886
    00887 //To FbxDouble3
    00888 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxChar& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00889 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUChar& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00890 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxShort& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00891 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUShort& pSrc )      { pDst   = (FbxDouble)pSrc; return true; }
    00892 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUInt& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00893 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxLongLong& pSrc )    { pDst   = (FbxDouble)pSrc; return true; }
    00894 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxULongLong& pSrc )   { pDst   = (FbxDouble)pSrc; return true; }
    00895 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxHalfFloat& pSrc )    { pDst   = (FbxDouble)pSrc.value(); return true; }
    00896 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxBool& pSrc )        { pDst   = (FbxDouble)pSrc; return true; }
    00897 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxInt& pSrc )     { pDst   = (FbxDouble)pSrc; return true; }
    00898 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxFloat& pSrc )       { pDst   = (FbxDouble)pSrc; return true; }
    00899 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble& pSrc )      { pDst   = (FbxDouble)pSrc; return true; }
    00900 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDouble2& /*pSrc*/ )      { return false;  }
    00901 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble4& pSrc )      { pDst   = pSrc; return true; }
    00902 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )     { return false; }
    00903 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxString& /*pSrc*/ )       { return false; }
    00904 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxTime& /*pSrc*/ )         { return false; }
    00905 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxReference& /*pSrc*/ )    { return false; }
    00906 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxBlob& /*pSrc*/ )         { return false; }
    00907 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDistance& /*pSrc*/ )     { return false; }
    00908 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDateTime& /*pSrc*/ )     { return false; }
    00909
    00910 //To FbxDouble4
    00911 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxChar& /*pSrc*/ )        { return false; }
    00912 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUChar& /*pSrc*/ )       { return false; }
    00913 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxShort& /*pSrc*/ )       { return false; }
    00914 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUShort& /*pSrc*/ )      { return false; }
    00915 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUInt& /*pSrc*/ )    { return false; }
    00916 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxLongLong& /*pSrc*/ )    { return false; }
    00917 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxULongLong& /*pSrc*/ )   { return false; }
    00918 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )    { return false; }
    00919 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxBool& /*pSrc*/ )        { return false; }
    00920 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxInt& /*pSrc*/ )     { return false; }
    00921 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxFloat& /*pSrc*/ )       { return false; }
    00922 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble& /*pSrc*/ )      { return false; }
    00923 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble2& /*pSrc*/ )      { return false; }
    00924 inline bool FbxTypeCopy(FbxDouble4& pDst, const FbxDouble3& pSrc )      { pDst   = pSrc; return true; }
    00925 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )     { return false; }
    00926 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxString& /*pSrc*/ )       { return false; }
    00927 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxTime& /*pSrc*/ )         { return false; }
    00928 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxReference& /*pSrc*/ )    { return false; }
    00929 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxBlob& /*pSrc*/ )         { return false; }
    00930 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDistance& /*pSrc*/ )     { return false; }
    00931 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDateTime& /*pSrc*/ )     { return false; }
    00932
    00933 //To FbxString
    00934 inline bool FbxTypeCopy(FbxString& pDst, const FbxChar& pSrc )         { pDst=FbxString((int)pSrc); return true; }
    00935 inline bool FbxTypeCopy(FbxString& pDst, const FbxUChar& pSrc )        { pDst=FbxString((int)pSrc); return true; }
    00936 inline bool FbxTypeCopy(FbxString& pDst, const FbxShort& pSrc )        { pDst=FbxString((int)pSrc); return true; }
    00937 inline bool FbxTypeCopy(FbxString& pDst, const FbxUShort& pSrc )       { pDst=FbxString((int)pSrc); return true; }
    00938 inline bool FbxTypeCopy(FbxString& pDst, const FbxUInt& pSrc )     { pDst=FbxString((int)pSrc); return true; }
    00939 inline bool FbxTypeCopy(FbxString& pDst, const FbxLongLong& pSrc )     { pDst=FbxString((int)pSrc); return true; }
    00940 inline bool FbxTypeCopy(FbxString& pDst, const FbxULongLong& pSrc )    { pDst=FbxString((int)pSrc); return true; }
    00941 inline bool FbxTypeCopy(FbxString& pDst, const FbxHalfFloat& pSrc )     { pDst=FbxString((float)pSrc.value()); return true; }
    00942 inline bool FbxTypeCopy(FbxString& pDst, const FbxBool& pSrc )         { pDst=pSrc ? "true" : "false"; return true; }
    00943 inline bool FbxTypeCopy(FbxString& pDst, const FbxInt& pSrc )      { pDst=FbxString((int)pSrc); return true; }
    00944 inline bool FbxTypeCopy(FbxString& pDst, const FbxFloat& pSrc )        { pDst=FbxString(pSrc); return true; }
    00945 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble& pSrc )       { pDst=FbxString(pSrc); return true; }
    00946 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble2& pSrc )       { pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1]); return true; }
    00947 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble3& pSrc )       { pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1])+","+FbxString(pSrc[2]); return true; }
    00948 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble4& pSrc )       { pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1])+","+FbxString(pSrc[2])+","+FbxString(pSrc[3]); return true; }
    00949 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble4x4& pSrc )      { pDst=FbxString(pSrc[0][0])+","+FbxString(pSrc[0][1])+","+FbxString(pSrc[0][2])+","+FbxString(pSrc[0][3]); return true; }
    00950 inline bool FbxTypeCopy(FbxString& pDst, const FbxTime& pSrc )          { char lTimeStr[128]; pSrc.GetTimeString(lTimeStr, FbxUShort(128)); pDst=lTimeStr; return true; }
    00951 inline bool FbxTypeCopy(FbxString& pDst, const FbxReference& /*pSrc*/ )     { pDst="<reference>"; return true; }
    00952 inline bool FbxTypeCopy(FbxString& pDst, const FbxBlob& /*pSrc*/ )          { pDst="<blob>"; return true; } // Or convert to ASCII-85?
    00953 inline bool FbxTypeCopy(FbxString& pDst, const FbxDistance& pSrc )      { pDst= FbxString(pSrc.value()) + " " +pSrc.unitName(); return true; }
    00954 inline bool FbxTypeCopy(FbxString& pDst, const FbxDateTime& pSrc )      { pDst= pSrc.toString(); return true; }
    00955
    00956 //To FbxBlob
    00957 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxChar& pSrc )           { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00958 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUChar& pSrc )          { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00959 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxShort& pSrc )          { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00960 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUShort& pSrc )         { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00961 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUInt& pSrc )       { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00962 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxLongLong& pSrc )       { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00963 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxULongLong& pSrc )      { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00964 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxHalfFloat& pSrc )       { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00965 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxBool& pSrc )           { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00966 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxInt& pSrc )        { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00967 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxFloat& pSrc )          { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00968 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble& pSrc )         { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00969 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble2& pSrc )         { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00970 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble3& pSrc )         { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00971 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble4& pSrc )         { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00972 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble4x4& pSrc )        { pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
    00973 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxString& pSrc )
    00974 {
    00975     bool lCastable = pSrc.GetLen() == pSrc.GetLen();
    00976     FBX_ASSERT( lCastable );
    00977     if( lCastable )
    00978         pDst.Assign(pSrc.Buffer(), (int)pSrc.GetLen());
    00979     return lCastable;
    00980 }
    00981 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxTime& pSrc )            { FbxLongLong t = pSrc.Get(); pDst.Assign( &t, sizeof(t)); return true; }
    00982 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxReference& /*pSrc*/ )       { return false; }
    00983 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxDistance& /*pSrc*/ )        { return false; }
    00984 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxDateTime& /*pSrc*/ )        { return false; }
    00985
    00986 //To FbxDistance
    00987 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxChar& /*pSrc*/ )        { return false; }
    00988 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUChar& /*pSrc*/ )       { return false; }
    00989 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxShort& /*pSrc*/ )       { return false; }
    00990 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUShort& /*pSrc*/ )      { return false; }
    00991 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUInt& /*pSrc*/ )    { return false; }
    00992 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxLongLong& /*pSrc*/ )    { return false; }
    00993 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxULongLong& /*pSrc*/ )   { return false; }
    00994 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )    { return false; }
    00995 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxBool& /*pSrc*/ )        { return false; }
    00996 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxInt& /*pSrc*/ )     { return false; }
    00997 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxFloat& /*pSrc*/ )       { return false; }
    00998 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble& /*pSrc*/ )      { return false; }
    00999 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble2& /*pSrc*/ )      { return false; }
    01000 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble3& /*pSrc*/ )      { return false; }
    01001 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const  FbxDouble4& /*pSrc*/ )     { return false; }
    01002 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )     { return false; }
    01003 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxString& /*pSrc*/ )       { return false; }
    01004 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxTime& /*pSrc*/ )         { return false; }
    01005 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxReference& /*pSrc*/ )    { return false; }
    01006 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxBlob& /*pSrc*/ )         { return false; }
    01007 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDateTime& /*pSrc*/ )     { return false; }
    01008
    01009 //To FbxDateTime
    01010 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxChar& /*pSrc*/ )        { return false; }
    01011 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUChar& /*pSrc*/ )       { return false; }
    01012 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxShort& /*pSrc*/ )       { return false; }
    01013 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUShort& /*pSrc*/ )      { return false; }
    01014 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUInt& /*pSrc*/ )    { return false; }
    01015 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxLongLong& /*pSrc*/ )    { return false; }
    01016 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxULongLong& /*pSrc*/ )   { return false; }
    01017 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxHalfFloat& /*pSrc*/ )    { return false; }
    01018 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxBool& /*pSrc*/ )        { return false; }
    01019 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxInt& /*pSrc*/ )     { return false; }
    01020 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxFloat& /*pSrc*/ )       { return false; }
    01021 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble& /*pSrc*/ )      { return false; }
    01022 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble2& /*pSrc*/ )      { return false; }
    01023 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble3& /*pSrc*/ )      { return false; }
    01024 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble4& /*pSrc*/ )      { return false; }
    01025 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble4x4& /*pSrc*/ )     { return false; }
    01026 inline bool FbxTypeCopy(FbxDateTime& pDst, const FbxString& pSrc )       { return pDst.fromString(pSrc); }
    01027 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxTime& /*pSrc*/ )         { return false; }
    01028 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxReference& /*pSrc*/ )    { return false; }
    01029 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxBlob& /*pSrc*/ )         { return false; }
    01030 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDistance& /*pSrc*/ )     { return false; }
    01031
    01032 template<class T> inline bool FbxTypeCopy(T& pDst, const void* pSrc, EFbxType pSrcType)
    01033 {
    01034     switch( pSrcType )
    01035     {
    01036         case eFbxChar:      return FbxTypeCopy(pDst, *(FbxChar*)pSrc);
    01037         case eFbxUChar:     return FbxTypeCopy(pDst, *(FbxUChar*)pSrc);
    01038         case eFbxShort:     return FbxTypeCopy(pDst, *(FbxShort*)pSrc);
    01039         case eFbxUShort:    return FbxTypeCopy(pDst, *(FbxUShort*)pSrc);
    01040         case eFbxUInt:  return FbxTypeCopy(pDst, *(FbxUInt*)pSrc);
    01041         case eFbxLongLong:  return FbxTypeCopy(pDst, *(FbxLongLong*)pSrc);
    01042         case eFbxULongLong: return FbxTypeCopy(pDst, *(FbxULongLong*)pSrc);
    01043         case eFbxHalfFloat:  return FbxTypeCopy(pDst, *(FbxHalfFloat*)pSrc);
    01044         case eFbxBool:      return FbxTypeCopy(pDst, *(FbxBool*)pSrc);
    01045         case eFbxInt:   return FbxTypeCopy(pDst, *(FbxInt*)pSrc);
    01046         case eFbxFloat:     return FbxTypeCopy(pDst, *(FbxFloat*)pSrc);
    01047         case eFbxDouble:    return FbxTypeCopy(pDst, *(FbxDouble*)pSrc);
    01048         case eFbxDouble2:    return FbxTypeCopy(pDst, *(FbxDouble2*)pSrc);
    01049         case eFbxDouble3:    return FbxTypeCopy(pDst, *(FbxDouble3*)pSrc);
    01050         case eFbxDouble4:    return FbxTypeCopy(pDst, *(FbxDouble4*)pSrc);
    01051         case eFbxDouble4x4:   return FbxTypeCopy(pDst, *(FbxDouble4x4*)pSrc);
    01052         case eFbxEnum:       return FbxTypeCopy(pDst, *(FbxEnum*)pSrc);
    01053         case eFbxString:     return FbxTypeCopy(pDst, *(FbxString*)pSrc);
    01054         case eFbxTime:       return FbxTypeCopy(pDst, *(FbxTime*)pSrc);
    01055         case eFbxBlob:       return FbxTypeCopy(pDst, *(FbxBlob*)pSrc);
    01056         case eFbxDistance:   return FbxTypeCopy(pDst, *(FbxDistance*)pSrc);
    01057         case eFbxDateTime:   return FbxTypeCopy(pDst, *(FbxDateTime*)pSrc);
    01058
    01059         case eFbxReference:
    01060             FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
    01061             break;
    01062
    01063         default:
    01064             FBX_ASSERT_NOW("Trying to assign an unknown type" );
    01065             break;
    01066     }
    01067     return false;
    01068 }
    01069
    01070 template<class T> inline bool FbxTypeCopy(void* pDst, EFbxType pDstType, const T& pSrc)
    01071 {
    01072     switch( pDstType )
    01073     {
    01074         case eFbxChar:      return FbxTypeCopy(*(FbxChar*)pDst, pSrc);
    01075         case eFbxUChar:     return FbxTypeCopy(*(FbxUChar*)pDst, pSrc);
    01076         case eFbxShort:     return FbxTypeCopy(*(FbxShort*)pDst, pSrc);
    01077         case eFbxUShort:    return FbxTypeCopy(*(FbxUShort*)pDst, pSrc);
    01078         case eFbxUInt:  return FbxTypeCopy(*(FbxUInt*)pDst, pSrc);
    01079         case eFbxLongLong:  return FbxTypeCopy(*(FbxLongLong*)pDst, pSrc);
    01080         case eFbxULongLong: return FbxTypeCopy(*(FbxULongLong*)pDst, pSrc);
    01081         case eFbxHalfFloat:  return FbxTypeCopy(*(FbxHalfFloat*)pDst, pSrc);
    01082         case eFbxBool:      return FbxTypeCopy(*(FbxBool*)pDst,pSrc    );
    01083         case eFbxInt:   return FbxTypeCopy(*(FbxInt*)pDst, pSrc);
    01084         case eFbxFloat:     return FbxTypeCopy(*(FbxFloat*)pDst, pSrc);
    01085         case eFbxDouble:    return FbxTypeCopy(*(FbxDouble*)pDst, pSrc);
    01086         case eFbxDouble2:    return FbxTypeCopy(*(FbxDouble2*)pDst, pSrc);
    01087         case eFbxDouble3:    return FbxTypeCopy(*(FbxDouble3*)pDst, pSrc);
    01088         case eFbxDouble4:    return FbxTypeCopy(*(FbxDouble4*)pDst, pSrc);
    01089         case eFbxDouble4x4:   return FbxTypeCopy(*(FbxDouble4x4*)pDst, pSrc);
    01090         case eFbxEnum:       return FbxTypeCopy(*(FbxEnum*)pDst, pSrc);
    01091         case eFbxString:     return FbxTypeCopy(*(FbxString*)pDst, pSrc);
    01092         case eFbxTime:       return FbxTypeCopy(*(FbxTime*)pDst, pSrc);
    01093         case eFbxBlob:       return FbxTypeCopy(*(FbxBlob*)pDst, pSrc);
    01094         case eFbxDistance:   return FbxTypeCopy(*(FbxDistance*)pDst, pSrc);
    01095         case eFbxDateTime:   return FbxTypeCopy(*(FbxDateTime*)pDst, pSrc);
    01096
    01097         case eFbxReference:
    01098             FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
    01099             break;
    01100
    01101         default:
    01102             FBX_ASSERT_NOW("Trying to assign an unknown type" );
    01103             break;
    01104     }
    01105     return false;
    01106 }
    01107
    01108 inline bool FbxTypeCopy(void* pDst, EFbxType pDstType, const void* pSrc, EFbxType pSrcType)
    01109 {
    01110     switch( pSrcType )
    01111     {
    01112         case eFbxChar:      return FbxTypeCopy(pDst, pDstType, *(FbxChar*)pSrc);
    01113         case eFbxUChar:     return FbxTypeCopy(pDst, pDstType, *(FbxUChar*)pSrc);
    01114         case eFbxShort:     return FbxTypeCopy(pDst, pDstType, *(FbxShort*)pSrc);
    01115         case eFbxUShort:        return FbxTypeCopy(pDst, pDstType, *(FbxUShort*)pSrc);
    01116         case eFbxUInt:  return FbxTypeCopy(pDst, pDstType, *(FbxUInt*)pSrc);
    01117         case eFbxLongLong:  return FbxTypeCopy(pDst, pDstType, *(FbxLongLong*)pSrc);
    01118         case eFbxULongLong: return FbxTypeCopy(pDst, pDstType, *(FbxULongLong*)pSrc);
    01119         case eFbxHalfFloat: return FbxTypeCopy(pDst, pDstType, *(FbxHalfFloat*)pSrc);
    01120         case eFbxBool:      return FbxTypeCopy(pDst, pDstType, *(FbxBool*)pSrc);
    01121         case eFbxInt:       return FbxTypeCopy(pDst, pDstType, *(FbxInt*)pSrc);
    01122         case eFbxFloat:     return FbxTypeCopy(pDst, pDstType, *(FbxFloat*)pSrc);
    01123         case eFbxDouble:        return FbxTypeCopy(pDst, pDstType, *(FbxDouble*)pSrc);
    01124         case eFbxDouble2:       return FbxTypeCopy(pDst, pDstType, *(FbxDouble2*)pSrc);
    01125         case eFbxDouble3:       return FbxTypeCopy(pDst, pDstType, *(FbxDouble3*)pSrc);
    01126         case eFbxDouble4:       return FbxTypeCopy(pDst, pDstType, *(FbxDouble4*)pSrc);
    01127         case eFbxDouble4x4:     return FbxTypeCopy(pDst, pDstType, *(FbxDouble4x4*)pSrc);
    01128         case eFbxEnum:          return FbxTypeCopy(pDst, pDstType, *(FbxEnum*)pSrc);
    01129         case eFbxString:        return FbxTypeCopy(pDst, pDstType, *(FbxString*)pSrc);
    01130         case eFbxTime:          return FbxTypeCopy(pDst, pDstType, *(FbxTime*)pSrc);
    01131         case eFbxBlob:          return FbxTypeCopy(pDst, pDstType, *(FbxBlob*)pSrc);
    01132         case eFbxDistance:      return FbxTypeCopy(pDst, pDstType, *(FbxDistance*)pSrc);
    01133         case eFbxDateTime:      return FbxTypeCopy(pDst, pDstType, *(FbxDateTime*)pSrc);
    01134
    01135         case eFbxReference:
    01136             FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
    01137             break;
    01138
    01139         default:
    01140             FBX_ASSERT_NOW("Trying to assign an unknown type" );
    01141             break;
    01142     }
    01143     return false;
    01144 }
    01145
    01151 FBXSDK_DLL void* FbxTypeAllocate(const EFbxType pType);
    01152
    01160 FBXSDK_DLL bool FbxTypeDeallocate(const EFbxType pType, void* pData);
    01161
    01168 FBXSDK_DLL bool FbxTypeCompare(const void* pA, const void* pB, const EFbxType pType);
    01169
    01170 #include <fbxsdk/fbxsdk_nsend.h>
    01171
    01172 #endif /* _FBXSDK_CORE_PROPERTY_TYPES_H_ */