FBX C++ API Reference
fbxpropertytypes.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_CORE_PROPERTY_TYPES_H_
14 #define _FBXSDK_CORE_PROPERTY_TYPES_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
24 
25 #include <fbxsdk/fbxsdk_nsbegin.h>
26 
29 {
47  eFbxEnum = 17,
48  eFbxEnumM =-17,
49  eFbxString = 18,
56 };
57 
62 {
63 public:
65  FbxColor();
66 
73  FbxColor(const double pRed, const double pGreen, const double pBlue, const double pAlpha=1.0);
74  FbxColor(const FbxDouble3& pRGB, const double pAlpha=1.0);
75  FbxColor(const FbxDouble4& pRGBA);
76 
78  ~FbxColor();
79 
86  void Set(const double pRed, const double pGreen, const double pBlue, const double pAlpha=1.0);
87 
91  bool IsValid() const;
92 
98  double& operator[](int pIndex);
99 
105  const double& operator[](int pIndex) const;
106 
114  FbxColor& operator=(const FbxColor& pColor);
115  FbxColor& operator=(const FbxDouble3& pColor);
116  FbxColor& operator=(const FbxDouble4& pColor);
117 
122  bool operator==(const FbxColor& pColor) const;
123 
128  bool operator!=(const FbxColor& pColor) const;
130 
135  double mRed;
137 
139  double mGreen;
140 
142  double mBlue;
143 
145  double mAlpha;
147 };
148 
157 {
158 public:
163  FbxHalfFloat();
164  FbxHalfFloat(float pVal);
165  FbxHalfFloat(const FbxHalfFloat& pVal);
167 
172  FbxHalfFloat& operator=(const FbxHalfFloat& pValue);
173 
182  bool operator==(const FbxHalfFloat& pRHS) const;
183 
188  bool operator!=(const FbxHalfFloat& pRHS) const;
190 
197  const float value() const;
198 
201  unsigned const short internal_value() const;
203 
204 /*****************************************************************************************************************************
205 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
206 *****************************************************************************************************************************/
207 #ifndef DOXYGEN_SHOULD_SKIP_THIS
208 private:
209  typedef unsigned short half;
210  half mValue;
211 
212  // we want to extract the mantissa, exponent and sign from the float number.
213  // by the IEEE 754 binary standard, the float number is divided as:
214  // sign : 1 bit
215  // mantissa : 23 bits
216  // exponent : 8 bits
217  // exponent bias : 127
218  // and the half-float is:
219  // sing : 1 bit
220  // mantissa : 10 bits
221  // exponent : 5 bits
222  // exponent bias :
223 
224  half FtoHF(float *f);
225  float HFtoF(half h) const;
226 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
227 };
228 
234 {
235 public:
240  FbxBlob();
242 
246  FbxBlob(int pSize);
247 
251  FbxBlob(const FbxBlob& pRHS);
252 
257  FbxBlob(const void* pData, int pSize);
258 
260  ~FbxBlob();
262 
271  FbxBlob& operator=(const FbxBlob& pValue);
272 
277  void Assign(const void* pData, int pSize); // Always makes a copy.
279 
288  bool operator==(const FbxBlob& pRHS) const; // Compare the contents.
289 
294  bool operator!=(const FbxBlob& pRHS) const;
296 
298  void* Modify();
299 
304 
308  const void * Access() const;
309 
313  int Size() const;
315 
317  void Clear();
318 
319 protected:
320  int* mRefCount;
321  void* mData;
322  int mSize;
323 };
324 
333 {
334 public:
339  FbxDateTime();
341 
352  FbxDateTime(int pDay, int pMonth, int pYear, int pHour, int pMin, int pSec, int pMillisecond=0);
354 
363  bool operator==(const FbxDateTime& pRHS) const;
364 
369  bool operator!=(const FbxDateTime& pRHS) const;
371 
373  void Clear();
374 
378  bool isValid() const;
379 
390  void setDate(int pDay, int pMonth, int pYear);
391 
399  void setTime(int pHour, int pMin, int pSec, int pMillisecond = 0);
401 
409  FbxString toString() const;
410 
417  bool fromString(const char*);
419 
423  static FbxDateTime currentDateTimeGMT();
424 
425 private:
426  FbxShort mMillisecond; // 0-999
427  FbxShort mYear; // No check
428 
429  FbxChar mMonth; // 1-12
430  FbxChar mDay; // 1-31; no check with regards to the month
431  FbxChar mHour; // 0-23
432  FbxChar mMinute; // 0-59
433  FbxChar mSecond; // 0-59
434 };
435 
440 {
441 public:
446  FbxDistance();
448 
453  FbxDistance(float pValue, FbxSystemUnit pUnit);
454 
460  FbxDistance(float pValue, const char* pUnit);
461 
463  ~FbxDistance();
465 
470  FbxDistance& operator=(const FbxDistance& pValue);
471 
480  bool operator==(const FbxDistance& pRHS) const;
481 
486  bool operator!=(const FbxDistance& pRHS) const;
488 
489  const FbxString unitName() const;
490 
498  const FbxSystemUnit unit() const;
499 
503  const float value() const;
505 
509  const float internalValue() const;
510 
515  const float valueAs(const FbxSystemUnit& pUnit) const;
516 
517 private:
518  float mValue;
519  FbxSystemUnit mUnit;
520 };
521 
525 FBXSDK_DLL const size_t FbxTypeSizeOf(const EFbxType pType);
526 
530 FBXSDK_DLL const size_t FbxTypeComponentCount(const EFbxType pType);
531 
532 // Type management for properties
533 inline EFbxType FbxTypeOf(const FbxChar&){ return eFbxChar; }
534 inline EFbxType FbxTypeOf(const FbxUChar&){ return eFbxUChar; }
535 inline EFbxType FbxTypeOf(const FbxShort&){ return eFbxShort; }
536 inline EFbxType FbxTypeOf(const FbxUShort&){ return eFbxUShort; }
537 inline EFbxType FbxTypeOf(const FbxUInt&){ return eFbxUInt; }
538 inline EFbxType FbxTypeOf(const FbxLongLong&){ return eFbxLongLong; }
539 inline EFbxType FbxTypeOf(const FbxULongLong&){ return eFbxULongLong; }
540 inline EFbxType FbxTypeOf(const FbxHalfFloat&){ return eFbxHalfFloat; }
541 inline EFbxType FbxTypeOf(const FbxBool&){ return eFbxBool; }
542 inline EFbxType FbxTypeOf(const FbxInt&){ return eFbxInt; }
543 inline EFbxType FbxTypeOf(const FbxFloat&){ return eFbxFloat; }
544 inline EFbxType FbxTypeOf(const FbxDouble&){ return eFbxDouble; }
545 inline EFbxType FbxTypeOf(const FbxDouble2&){ return eFbxDouble2; }
546 inline EFbxType FbxTypeOf(const FbxDouble3&){ return eFbxDouble3; }
547 inline EFbxType FbxTypeOf(const FbxDouble4&){ return eFbxDouble4; }
548 inline EFbxType FbxTypeOf(const FbxDouble4x4&){ return eFbxDouble4x4; }
549 inline EFbxType FbxTypeOf(const FbxVector2&){ return eFbxDouble2; }
550 inline EFbxType FbxTypeOf(const FbxVector4&){ return eFbxDouble4; }
551 inline EFbxType FbxTypeOf(const FbxQuaternion&){ return eFbxDouble4; }
552 inline EFbxType FbxTypeOf(const FbxMatrix&){ return eFbxDouble4x4; }
553 inline EFbxType FbxTypeOf(const FbxAMatrix&){ return eFbxDouble4x4; }
554 inline EFbxType FbxTypeOf(const FbxString&){ return eFbxString; }
555 inline EFbxType FbxTypeOf(const FbxTime&){ return eFbxTime; }
556 inline EFbxType FbxTypeOf(const FbxReference&){ return eFbxReference; }
557 inline EFbxType FbxTypeOf(const FbxBlob&){ return eFbxBlob; }
558 inline EFbxType FbxTypeOf(const FbxColor&){ return eFbxDouble4; }
559 inline EFbxType FbxTypeOf(const FbxDistance&){ return eFbxDistance; }
560 inline EFbxType FbxTypeOf(const FbxDateTime&){ return eFbxDateTime; }
561 
562 template <class T> inline EFbxType FbxTypeOf(const T&){ FBX_ASSERT_NOW("Unknown type!"); return eFbxUndefined; }
563 
564 bool FBXSDK_DLL FbxTypeCopyStr(FbxDouble& pDst, const FbxString& pSrc);
565 bool FBXSDK_DLL FbxTypeCopyStr(FbxBool& pDst, const FbxString& pSrc);
566 bool FBXSDK_DLL FbxTypeCopyStr(FbxInt& pDst, const FbxString& pSrc);
567 bool FBXSDK_DLL FbxTypeCopyStr(FbxChar& pDst, const FbxString& pSrc);
568 bool FBXSDK_DLL FbxTypeCopyStr(FbxUChar& pDst, const FbxString& pSrc);
569 bool FBXSDK_DLL FbxTypeCopyStr(FbxShort& pDst, const FbxString& pSrc);
570 bool FBXSDK_DLL FbxTypeCopyStr(FbxUShort& pDst, const FbxString& pSrc);
571 bool FBXSDK_DLL FbxTypeCopyStr(FbxUInt& pDst, const FbxString& pSrc);
572 bool FBXSDK_DLL FbxTypeCopyStr(FbxLongLong& pDst, const FbxString& pSrc);
573 bool FBXSDK_DLL FbxTypeCopyStr(FbxULongLong& pDst, const FbxString& pSrc);
574 bool FBXSDK_DLL FbxTypeCopyStr(FbxHalfFloat& pDst, const FbxString& pSrc);
575 
576 // Copy types and conversions
577 template<class T1, class T2> inline bool FbxTypeCopy(T1&, const T2&){ FBX_ASSERT_NOW("Incompatible type assignment!" ); return false; }
578 
580 inline bool FbxTypeCopy(FbxChar& pDst, const FbxChar& pSrc){ pDst = pSrc; return true; }
581 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxUChar& pSrc){ pDst = pSrc; return true; }
582 inline bool FbxTypeCopy(FbxShort& pDst, const FbxShort& pSrc){ pDst = pSrc; return true; }
583 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxUShort& pSrc){ pDst = pSrc; return true; }
584 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUInt& pSrc){ pDst = pSrc; return true; }
585 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxLongLong& pSrc){ pDst = pSrc; return true; }
586 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxULongLong& pSrc){ pDst = pSrc; return true; }
587 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxHalfFloat& pSrc){ pDst = pSrc; return true; }
588 inline bool FbxTypeCopy(FbxBool& pDst, const FbxBool& pSrc){ pDst = pSrc; return true; }
589 inline bool FbxTypeCopy(FbxInt& pDst, const FbxInt& pSrc){ pDst = pSrc; return true; }
590 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxFloat& pSrc){ pDst = pSrc; return true; }
591 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble& pSrc){ pDst = pSrc; return true; }
592 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxDouble2& pSrc){ pDst = pSrc; return true; }
593 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble3& pSrc){ pDst = pSrc; return true; }
594 inline bool FbxTypeCopy(FbxDouble4& pDst, const FbxDouble4& pSrc){ pDst = pSrc; return true; }
595 inline bool FbxTypeCopy(FbxDouble4x4& pDst, const FbxDouble4x4& pSrc){ pDst = pSrc; return true; }
596 inline bool FbxTypeCopy(FbxString& pDst, const FbxString& pSrc){ pDst = pSrc; return true; }
597 inline bool FbxTypeCopy(FbxTime& pDst, const FbxTime& pSrc){ pDst = pSrc; return true; }
598 inline bool FbxTypeCopy(FbxReference& pDst, const FbxReference& pSrc){ pDst = pSrc; return true; }
599 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxBlob& pSrc){ pDst = pSrc; return true; }
600 inline bool FbxTypeCopy(FbxDistance& pDst, const FbxDistance& pSrc){ pDst = pSrc; return true; }
601 inline bool FbxTypeCopy(FbxDateTime& pDst, const FbxDateTime& pSrc){ pDst = pSrc; return true; }
602 
603 //To FbxBool
604 inline bool FbxTypeCopy(FbxBool& pDst, const FbxChar& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
605 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUChar& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
606 inline bool FbxTypeCopy(FbxBool& pDst, const FbxShort& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
607 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUShort& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
608 inline bool FbxTypeCopy(FbxBool& pDst, const FbxUInt& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
609 inline bool FbxTypeCopy(FbxBool& pDst, const FbxLongLong& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
610 inline bool FbxTypeCopy(FbxBool& pDst, const FbxULongLong& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
611 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxHalfFloat& /*pSrc */){ return false; }
612 inline bool FbxTypeCopy(FbxBool& pDst, const FbxInt& pSrc){ pDst = pSrc == 0 ? false : true; return true; }
613 inline bool FbxTypeCopy(FbxBool& pDst, const FbxFloat& pSrc){ pDst = pSrc == 0.f ? false : true; return true; }
614 inline bool FbxTypeCopy(FbxBool& pDst, const FbxDouble& pSrc){ pDst = pSrc == 0. ? false : true; return true; }
615 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
616 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
617 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
618 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
619 inline bool FbxTypeCopy(FbxBool& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
620 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
621 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
622 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
623 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
624 inline bool FbxTypeCopy(FbxBool& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
625 
626 //To FbxChar
627 inline bool FbxTypeCopy(FbxChar& pDst, const FbxUChar& pSrc){ pDst = (FbxChar)pSrc; return true; }
628 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxShort& /*pSrc*/){ return false; }
629 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
630 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
631 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
632 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
633 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
634 inline bool FbxTypeCopy(FbxChar& pDst, const FbxBool& pSrc){ pDst = (FbxChar)pSrc; return true; }
635 inline bool FbxTypeCopy(FbxChar& pDst, const FbxInt& pSrc){ pDst = (FbxChar)pSrc; return true; }
636 inline bool FbxTypeCopy(FbxChar& pDst, const FbxFloat& pSrc){ pDst = (FbxChar)pSrc; return true; }
637 inline bool FbxTypeCopy(FbxChar& pDst, const FbxDouble& pSrc){ pDst = (FbxChar)pSrc; return true; }
638 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
639 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
640 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
641 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
642 inline bool FbxTypeCopy(FbxChar& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
643 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
644 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
645 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
646 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
647 inline bool FbxTypeCopy(FbxChar& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
648 
649 //To FbxUChar
650 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxChar& pSrc){ pDst = (FbxUChar)pSrc; return true; }
651 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxShort& /*pSrc*/){ return false; }
652 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
653 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
654 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
655 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
656 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
657 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxBool& pSrc){ pDst = (FbxUChar)pSrc; return true; }
658 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxInt& pSrc){ pDst = (FbxUChar)pSrc; return true; }
659 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxFloat& pSrc){ pDst = (FbxUChar)pSrc; return true; }
660 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxDouble& pSrc){ pDst = (FbxUChar)pSrc; return true; }
661 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
662 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
663 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
664 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
665 inline bool FbxTypeCopy(FbxUChar& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
666 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
667 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
668 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
669 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
670 inline bool FbxTypeCopy(FbxUChar& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
671 
672 //To FbxShort
673 inline bool FbxTypeCopy(FbxShort& pDst, const FbxChar& pSrc){ pDst = (FbxShort)pSrc; return true; }
674 inline bool FbxTypeCopy(FbxShort& pDst, const FbxUChar& pSrc){ pDst = (FbxShort)pSrc; return true; }
675 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
676 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
677 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
678 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
679 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
680 inline bool FbxTypeCopy(FbxShort& pDst, const FbxBool& pSrc){ pDst = (FbxShort)pSrc; return true; }
681 inline bool FbxTypeCopy(FbxShort& pDst, const FbxInt& pSrc){ pDst = (FbxShort)pSrc; return true; }
682 inline bool FbxTypeCopy(FbxShort& pDst, const FbxFloat& pSrc){ pDst = (FbxShort)pSrc; return true; }
683 inline bool FbxTypeCopy(FbxShort& pDst, const FbxDouble& pSrc){ pDst = (FbxShort)pSrc; return true; }
684 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
685 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
686 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
687 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
688 inline bool FbxTypeCopy(FbxShort& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
689 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
690 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
691 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
692 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
693 inline bool FbxTypeCopy(FbxShort& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
694 
695 //To FbxUShort
696 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxChar& pSrc){ pDst = (FbxUShort)pSrc; return true; }
697 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxUChar& pSrc){ pDst = (FbxUShort)pSrc; return true; }
698 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxShort& pSrc){ pDst = (FbxUShort)pSrc; return true; }
699 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
700 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
701 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
702 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
703 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxBool& pSrc){ pDst = (FbxUShort)pSrc; return true; }
704 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxInt& pSrc){ pDst = (FbxUShort)pSrc; return true; }
705 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxFloat& pSrc){ pDst = (FbxUShort)pSrc; return true; }
706 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxDouble& pSrc){ pDst = (FbxUShort)pSrc; return true; }
707 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
708 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
709 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
710 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
711 inline bool FbxTypeCopy(FbxUShort& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
712 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
713 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
714 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
715 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
716 inline bool FbxTypeCopy(FbxUShort& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
717 
718 //To FbxInt
719 inline bool FbxTypeCopy(FbxInt& pDst, const FbxChar& pSrc){ pDst = (FbxInt)pSrc; return true; }
720 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUChar& pSrc){ pDst = (FbxInt)pSrc; return true; }
721 inline bool FbxTypeCopy(FbxInt& pDst, const FbxShort& pSrc){ pDst = (FbxInt)pSrc; return true; }
722 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUShort& pSrc){ pDst = (FbxInt)pSrc; return true; }
723 inline bool FbxTypeCopy(FbxInt& pDst, const FbxUInt& pSrc){ pDst = (FbxInt)pSrc; return true; }
724 inline bool FbxTypeCopy(FbxInt& pDst, const FbxLongLong& pSrc){ pDst = (FbxInt)pSrc; return true; }
725 inline bool FbxTypeCopy(FbxInt& pDst, const FbxULongLong& pSrc){ pDst = (FbxInt)pSrc; return true; }
726 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
727 inline bool FbxTypeCopy(FbxInt& pDst, const FbxBool& pSrc){ pDst = (FbxInt)pSrc; return true; }
728 inline bool FbxTypeCopy(FbxInt& pDst, const FbxFloat& pSrc){ pDst = (FbxInt)pSrc; return true; }
729 inline bool FbxTypeCopy(FbxInt& pDst, const FbxDouble& pSrc){ pDst = (FbxInt)pSrc; return true; }
730 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
731 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
732 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
733 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
734 inline bool FbxTypeCopy(FbxInt& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
735 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
736 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
737 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
738 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
739 inline bool FbxTypeCopy(FbxInt& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
740 
741 //To FbxUInt
742 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxChar& pSrc){ pDst = (FbxUInt)pSrc; return true; }
743 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUChar& pSrc){ pDst = (FbxUInt)pSrc; return true; }
744 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxShort& pSrc){ pDst = (FbxUInt)pSrc; return true; }
745 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxUShort& pSrc){ pDst = (FbxUInt)pSrc; return true; }
746 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxLongLong& pSrc){ pDst = (FbxUInt)pSrc; return true; }
747 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxULongLong& pSrc) { pDst = (FbxUInt)pSrc; return true; }
748 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
749 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxBool& pSrc){ pDst = (FbxUInt)pSrc; return true; }
750 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxInt& pSrc){ pDst = (FbxUInt)pSrc; return true; }
751 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxFloat& pSrc){ pDst = (FbxUInt)pSrc; return true; }
752 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxDouble& pSrc){ pDst = (FbxUInt)pSrc; return true; }
753 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
754 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
755 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
756 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
757 inline bool FbxTypeCopy(FbxUInt& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
758 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
759 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
760 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
761 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
762 inline bool FbxTypeCopy(FbxUInt& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
763 
764 //To FbxLongLong
765 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxChar& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
766 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUChar& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
767 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxShort& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
768 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUShort& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
769 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxUInt& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
770 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxULongLong& pSrc) { pDst = (FbxLongLong)pSrc; return true; }
771 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
772 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxBool& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
773 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxInt& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
774 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxFloat& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
775 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxDouble& pSrc){ pDst = (FbxLongLong)pSrc; return true; }
776 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
777 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
778 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
779 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
780 inline bool FbxTypeCopy(FbxLongLong& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
781 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
782 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
783 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
784 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
785 inline bool FbxTypeCopy(FbxLongLong& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
786 
787 //To FbxULongLong
788 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxChar& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
789 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUChar& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
790 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxShort& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
791 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUShort& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
792 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxUInt& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
793 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxLongLong& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
794 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
795 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxBool& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
796 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxInt& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
797 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxFloat& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
798 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxDouble& pSrc){ pDst = (FbxULongLong)pSrc; return true; }
799 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
800 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
801 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
802 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
803 inline bool FbxTypeCopy(FbxULongLong& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
804 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
805 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
806 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
807 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
808 inline bool FbxTypeCopy(FbxULongLong& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
809 
810 //To FbxHalfFloat
811 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxChar& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
812 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUChar& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
813 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxShort& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
814 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUShort& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
815 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxUInt& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
816 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxLongLong& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
817 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxULongLong& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
818 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxBool& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
819 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxInt& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
820 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxFloat& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
821 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxDouble& pSrc){ FbxHalfFloat hf((float)pSrc); pDst = hf; return true; }
822 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
823 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
824 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
825 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
826 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxString& /*pSrc*/){ return false; }
827 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
828 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
829 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
830 inline bool FbxTypeCopy(FbxHalfFloat& pDst, const FbxDistance& pSrc){ FbxHalfFloat hf(pSrc.internalValue()); pDst = hf; return true; }
831 inline bool FbxTypeCopy(FbxHalfFloat& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
832 
833 //To FbxFloat
834 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxChar& pSrc){ pDst = (FbxFloat)pSrc; return true; }
835 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUChar& pSrc){ pDst = (FbxFloat)pSrc; return true; }
836 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxShort& pSrc){ pDst = (FbxFloat)pSrc; return true; }
837 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUShort& pSrc){ pDst = (FbxFloat)pSrc; return true; }
838 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxUInt& pSrc){ pDst = (FbxFloat)pSrc; return true; }
839 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
840 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
841 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxHalfFloat& pSrc){ pDst = pSrc.value() ; return true; }
842 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxBool& pSrc){ pDst = (FbxFloat)pSrc; return true; }
843 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxInt& pSrc){ pDst = (FbxFloat)pSrc; return true; }
844 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxDouble& pSrc){ pDst = (FbxFloat)pSrc; return true; }
845 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
846 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
847 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
848 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
849 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxString& /*pSrc*/){ return false; }
850 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
851 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
852 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
853 inline bool FbxTypeCopy(FbxFloat& pDst, const FbxDistance& pSrc){ pDst = pSrc.internalValue(); return true; }
854 inline bool FbxTypeCopy(FbxFloat& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
855 
856 //To FbxDouble
857 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
858 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
859 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
860 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
861 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxUInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
862 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxLongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
863 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxULongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
864 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxHalfFloat& pSrc){ pDst = (FbxDouble)pSrc.value(); return true; }
865 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxBool& pSrc){ pDst = (FbxDouble)pSrc; return true; }
866 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
867 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxFloat& pSrc){ pDst = (FbxDouble)pSrc; return true; }
868 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble2& pSrc){ pDst = (FbxDouble)pSrc[0]; return true; }
869 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble3& pSrc){ pDst = (FbxDouble)pSrc[0]; return true; }
870 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble4& pSrc){ pDst = (FbxDouble)pSrc[0]; return true; }
871 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDouble4x4& pSrc){ pDst = (FbxDouble)pSrc[0][0]; return true; }
872 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxString& pSrc){ return FbxTypeCopyStr(pDst, pSrc); }
873 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxTime& pSrc){ pDst = (FbxDouble)pSrc.GetSecondDouble(); return true; }
874 inline bool FbxTypeCopy(FbxDouble& pDst, const FbxDistance& pSrc){ pDst = pSrc.internalValue(); return true; }
875 
876 //To FbxDouble2
877 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
878 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
879 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
880 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
881 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxUInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
882 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxLongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
883 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxULongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
884 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxHalfFloat& pSrc){ pDst = (FbxDouble)pSrc.value(); return true; }
885 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxBool& pSrc){ pDst = (FbxDouble)pSrc; return true; }
886 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
887 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxFloat& pSrc){ pDst = (FbxDouble)pSrc; return true; }
888 inline bool FbxTypeCopy(FbxDouble2& pDst, const FbxDouble& pSrc){ pDst = (FbxDouble)pSrc; return true; }
889 
890 //To FbxDouble3
891 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
892 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUChar& pSrc){ pDst = (FbxDouble)pSrc; return true; }
893 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
894 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUShort& pSrc){ pDst = (FbxDouble)pSrc; return true; }
895 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxUInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
896 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxLongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
897 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxULongLong& pSrc){ pDst = (FbxDouble)pSrc; return true; }
898 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxHalfFloat& pSrc){ pDst = (FbxDouble)pSrc.value(); return true; }
899 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxBool& pSrc){ pDst = (FbxDouble)pSrc; return true; }
900 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxInt& pSrc){ pDst = (FbxDouble)pSrc; return true; }
901 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxFloat& pSrc){ pDst = (FbxDouble)pSrc; return true; }
902 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble& pSrc){ pDst = (FbxDouble)pSrc; return true; }
903 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
904 inline bool FbxTypeCopy(FbxDouble3& pDst, const FbxDouble4& pSrc){ pDst = pSrc; return true; }
905 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
906 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxString& /*pSrc*/){ return false; }
907 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
908 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
909 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
910 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
911 inline bool FbxTypeCopy(FbxDouble3& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
912 
913 //To FbxDouble4
914 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxChar& /*pSrc*/){ return false; }
915 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUChar& /*pSrc*/){ return false; }
916 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxShort& /*pSrc*/){ return false; }
917 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
918 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
919 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
920 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
921 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
922 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxBool& /*pSrc*/){ return false; }
923 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxInt& /*pSrc*/){ return false; }
924 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxFloat& /*pSrc*/){ return false; }
925 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble& /*pSrc*/){ return false; }
926 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
927 inline bool FbxTypeCopy(FbxDouble4& pDst, const FbxDouble3& pSrc){ pDst = pSrc; return true; }
928 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
929 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxString& /*pSrc*/){ return false; }
930 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
931 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
932 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
933 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
934 inline bool FbxTypeCopy(FbxDouble4& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
935 
936 //To FbxString
937 inline bool FbxTypeCopy(FbxString& pDst, const FbxChar& pSrc){ pDst=FbxString((int)pSrc); return true; }
938 inline bool FbxTypeCopy(FbxString& pDst, const FbxUChar& pSrc){ pDst=FbxString((int)pSrc); return true; }
939 inline bool FbxTypeCopy(FbxString& pDst, const FbxShort& pSrc){ pDst=FbxString((int)pSrc); return true; }
940 inline bool FbxTypeCopy(FbxString& pDst, const FbxUShort& pSrc){ pDst=FbxString((int)pSrc); return true; }
941 inline bool FbxTypeCopy(FbxString& pDst, const FbxUInt& pSrc){ pDst=FbxString((int)pSrc); return true; }
942 inline bool FbxTypeCopy(FbxString& pDst, const FbxLongLong& pSrc){ pDst=FbxString((int)pSrc); return true; }
943 inline bool FbxTypeCopy(FbxString& pDst, const FbxULongLong& pSrc){ pDst=FbxString((int)pSrc); return true; }
944 inline bool FbxTypeCopy(FbxString& pDst, const FbxHalfFloat& pSrc){ pDst=FbxString((float)pSrc.value()); return true; }
945 inline bool FbxTypeCopy(FbxString& pDst, const FbxBool& pSrc){ pDst=pSrc ? "true" : "false"; return true; }
946 inline bool FbxTypeCopy(FbxString& pDst, const FbxInt& pSrc){ pDst=FbxString((int)pSrc); return true; }
947 inline bool FbxTypeCopy(FbxString& pDst, const FbxFloat& pSrc){ pDst=FbxString(pSrc); return true; }
948 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble& pSrc){ pDst=FbxString(pSrc); return true; }
949 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble2& pSrc){ pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1]); return true; }
950 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble3& pSrc){ pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1])+","+FbxString(pSrc[2]); return true; }
951 inline bool FbxTypeCopy(FbxString& pDst, const FbxDouble4& pSrc){ pDst=FbxString(pSrc[0])+","+FbxString(pSrc[1])+","+FbxString(pSrc[2])+","+FbxString(pSrc[3]); return true; }
952 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; }
953 inline bool FbxTypeCopy(FbxString& pDst, const FbxTime& pSrc){ char lTimeStr[128]; pSrc.GetTimeString(lTimeStr, FbxUShort(128)); pDst=lTimeStr; return true; }
954 inline bool FbxTypeCopy(FbxString& pDst, const FbxReference& /*pSrc*/){ pDst="<reference>"; return true; }
955 inline bool FbxTypeCopy(FbxString& pDst, const FbxBlob& /*pSrc*/){ pDst="<blob>"; return true; } // Or convert to ASCII-85?
956 inline bool FbxTypeCopy(FbxString& pDst, const FbxDistance& pSrc){ pDst= FbxString(pSrc.value()) + " " +pSrc.unitName(); return true; }
957 inline bool FbxTypeCopy(FbxString& pDst, const FbxDateTime& pSrc){ pDst= pSrc.toString(); return true; }
958 
959 //To FbxBlob
960 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxChar& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
961 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUChar& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
962 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxShort& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
963 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUShort& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
964 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxUInt& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
965 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxLongLong& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
966 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxULongLong& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
967 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxHalfFloat& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
968 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxBool& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
969 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxInt& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
970 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxFloat& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
971 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
972 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble2& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
973 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble3& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
974 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble4& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
975 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxDouble4x4& pSrc){ pDst.Assign(&pSrc, sizeof(pSrc)); return true; }
976 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxString& pSrc)
977 {
978  bool lCastable = pSrc.GetLen() == pSrc.GetLen();
979  FBX_ASSERT( lCastable );
980  if( lCastable )
981  pDst.Assign(pSrc.Buffer(), (int)pSrc.GetLen());
982  return lCastable;
983 }
984 inline bool FbxTypeCopy(FbxBlob& pDst, const FbxTime& pSrc){ FbxLongLong t = pSrc.Get(); pDst.Assign( &t, sizeof(t)); return true; }
985 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
986 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
987 inline bool FbxTypeCopy(FbxBlob& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
988 
989 //To FbxDistance
990 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxChar& /*pSrc*/){ return false; }
991 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUChar& /*pSrc*/){ return false; }
992 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxShort& /*pSrc*/){ return false; }
993 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
994 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
995 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
996 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
997 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
998 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxBool& /*pSrc*/){ return false; }
999 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxInt& /*pSrc*/){ return false; }
1000 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxFloat& /*pSrc*/){ return false; }
1001 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble& /*pSrc*/){ return false; }
1002 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
1003 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
1004 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
1005 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
1006 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxString& /*pSrc*/){ return false; }
1007 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
1008 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
1009 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
1010 inline bool FbxTypeCopy(FbxDistance& /*pDst*/, const FbxDateTime& /*pSrc*/){ return false; }
1011 
1012 //To FbxDateTime
1013 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxChar& /*pSrc*/){ return false; }
1014 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUChar& /*pSrc*/){ return false; }
1015 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxShort& /*pSrc*/){ return false; }
1016 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUShort& /*pSrc*/){ return false; }
1017 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxUInt& /*pSrc*/){ return false; }
1018 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxLongLong& /*pSrc*/){ return false; }
1019 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxULongLong& /*pSrc*/){ return false; }
1020 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxHalfFloat& /*pSrc*/){ return false; }
1021 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxBool& /*pSrc*/){ return false; }
1022 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxInt& /*pSrc*/){ return false; }
1023 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxFloat& /*pSrc*/){ return false; }
1024 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble& /*pSrc*/){ return false; }
1025 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble2& /*pSrc*/){ return false; }
1026 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble3& /*pSrc*/){ return false; }
1027 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble4& /*pSrc*/){ return false; }
1028 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDouble4x4& /*pSrc*/){ return false; }
1029 inline bool FbxTypeCopy(FbxDateTime& pDst, const FbxString& pSrc){ return pDst.fromString(pSrc); }
1030 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxTime& /*pSrc*/){ return false; }
1031 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxReference& /*pSrc*/){ return false; }
1032 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxBlob& /*pSrc*/){ return false; }
1033 inline bool FbxTypeCopy(FbxDateTime& /*pDst*/, const FbxDistance& /*pSrc*/){ return false; }
1034 
1035 template<class T> inline bool FbxTypeCopy(T& pDst, const void* pSrc, EFbxType pSrcType)
1036 {
1037  switch( pSrcType )
1038  {
1039  case eFbxChar: return FbxTypeCopy(pDst, *(FbxChar*)pSrc);
1040  case eFbxUChar: return FbxTypeCopy(pDst, *(FbxUChar*)pSrc);
1041  case eFbxShort: return FbxTypeCopy(pDst, *(FbxShort*)pSrc);
1042  case eFbxUShort: return FbxTypeCopy(pDst, *(FbxUShort*)pSrc);
1043  case eFbxUInt: return FbxTypeCopy(pDst, *(FbxUInt*)pSrc);
1044  case eFbxLongLong: return FbxTypeCopy(pDst, *(FbxLongLong*)pSrc);
1045  case eFbxULongLong: return FbxTypeCopy(pDst, *(FbxULongLong*)pSrc);
1046  case eFbxHalfFloat: return FbxTypeCopy(pDst, *(FbxHalfFloat*)pSrc);
1047  case eFbxBool: return FbxTypeCopy(pDst, *(FbxBool*)pSrc);
1048  case eFbxInt: return FbxTypeCopy(pDst, *(FbxInt*)pSrc);
1049  case eFbxFloat: return FbxTypeCopy(pDst, *(FbxFloat*)pSrc);
1050  case eFbxDouble: return FbxTypeCopy(pDst, *(FbxDouble*)pSrc);
1051  case eFbxDouble2: return FbxTypeCopy(pDst, *(FbxDouble2*)pSrc);
1052  case eFbxDouble3: return FbxTypeCopy(pDst, *(FbxDouble3*)pSrc);
1053  case eFbxDouble4: return FbxTypeCopy(pDst, *(FbxDouble4*)pSrc);
1054  case eFbxDouble4x4: return FbxTypeCopy(pDst, *(FbxDouble4x4*)pSrc);
1055  case eFbxEnumM:
1056  case eFbxEnum: return FbxTypeCopy(pDst, *(FbxEnum*)pSrc);
1057  case eFbxString: return FbxTypeCopy(pDst, *(FbxString*)pSrc);
1058  case eFbxTime: return FbxTypeCopy(pDst, *(FbxTime*)pSrc);
1059  case eFbxBlob: return FbxTypeCopy(pDst, *(FbxBlob*)pSrc);
1060  case eFbxDistance: return FbxTypeCopy(pDst, *(FbxDistance*)pSrc);
1061  case eFbxDateTime: return FbxTypeCopy(pDst, *(FbxDateTime*)pSrc);
1062 
1063  case eFbxReference:
1064  FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
1065  break;
1066 
1067  default:
1068  FBX_ASSERT_NOW("Trying to assign an unknown type" );
1069  break;
1070  }
1071  return false;
1072 }
1073 
1074 template<class T> inline bool FbxTypeCopy(void* pDst, EFbxType pDstType, const T& pSrc)
1075 {
1076  switch( pDstType )
1077  {
1078  case eFbxChar: return FbxTypeCopy(*(FbxChar*)pDst, pSrc);
1079  case eFbxUChar: return FbxTypeCopy(*(FbxUChar*)pDst, pSrc);
1080  case eFbxShort: return FbxTypeCopy(*(FbxShort*)pDst, pSrc);
1081  case eFbxUShort: return FbxTypeCopy(*(FbxUShort*)pDst, pSrc);
1082  case eFbxUInt: return FbxTypeCopy(*(FbxUInt*)pDst, pSrc);
1083  case eFbxLongLong: return FbxTypeCopy(*(FbxLongLong*)pDst, pSrc);
1084  case eFbxULongLong: return FbxTypeCopy(*(FbxULongLong*)pDst, pSrc);
1085  case eFbxHalfFloat: return FbxTypeCopy(*(FbxHalfFloat*)pDst, pSrc);
1086  case eFbxBool: return FbxTypeCopy(*(FbxBool*)pDst, pSrc);
1087  case eFbxInt: return FbxTypeCopy(*(FbxInt*)pDst, pSrc);
1088  case eFbxFloat: return FbxTypeCopy(*(FbxFloat*)pDst, pSrc);
1089  case eFbxDouble: return FbxTypeCopy(*(FbxDouble*)pDst, pSrc);
1090  case eFbxDouble2: return FbxTypeCopy(*(FbxDouble2*)pDst, pSrc);
1091  case eFbxDouble3: return FbxTypeCopy(*(FbxDouble3*)pDst, pSrc);
1092  case eFbxDouble4: return FbxTypeCopy(*(FbxDouble4*)pDst, pSrc);
1093  case eFbxDouble4x4: return FbxTypeCopy(*(FbxDouble4x4*)pDst, pSrc);
1094  case eFbxEnumM:
1095  case eFbxEnum: return FbxTypeCopy(*(FbxEnum*)pDst, pSrc);
1096  case eFbxString: return FbxTypeCopy(*(FbxString*)pDst, pSrc);
1097  case eFbxTime: return FbxTypeCopy(*(FbxTime*)pDst, pSrc);
1098  case eFbxBlob: return FbxTypeCopy(*(FbxBlob*)pDst, pSrc);
1099  case eFbxDistance: return FbxTypeCopy(*(FbxDistance*)pDst, pSrc);
1100  case eFbxDateTime: return FbxTypeCopy(*(FbxDateTime*)pDst, pSrc);
1101 
1102  case eFbxReference:
1103  FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
1104  break;
1105 
1106  default:
1107  FBX_ASSERT_NOW("Trying to assign an unknown type" );
1108  break;
1109  }
1110  return false;
1111 }
1112 
1113 inline bool FbxTypeCopy(void* pDst, EFbxType pDstType, const void* pSrc, EFbxType pSrcType)
1114 {
1115  switch( pSrcType )
1116  {
1117  case eFbxChar: return FbxTypeCopy(pDst, pDstType, *(FbxChar*)pSrc);
1118  case eFbxUChar: return FbxTypeCopy(pDst, pDstType, *(FbxUChar*)pSrc);
1119  case eFbxShort: return FbxTypeCopy(pDst, pDstType, *(FbxShort*)pSrc);
1120  case eFbxUShort: return FbxTypeCopy(pDst, pDstType, *(FbxUShort*)pSrc);
1121  case eFbxUInt: return FbxTypeCopy(pDst, pDstType, *(FbxUInt*)pSrc);
1122  case eFbxLongLong: return FbxTypeCopy(pDst, pDstType, *(FbxLongLong*)pSrc);
1123  case eFbxULongLong: return FbxTypeCopy(pDst, pDstType, *(FbxULongLong*)pSrc);
1124  case eFbxHalfFloat: return FbxTypeCopy(pDst, pDstType, *(FbxHalfFloat*)pSrc);
1125  case eFbxBool: return FbxTypeCopy(pDst, pDstType, *(FbxBool*)pSrc);
1126  case eFbxInt: return FbxTypeCopy(pDst, pDstType, *(FbxInt*)pSrc);
1127  case eFbxFloat: return FbxTypeCopy(pDst, pDstType, *(FbxFloat*)pSrc);
1128  case eFbxDouble: return FbxTypeCopy(pDst, pDstType, *(FbxDouble*)pSrc);
1129  case eFbxDouble2: return FbxTypeCopy(pDst, pDstType, *(FbxDouble2*)pSrc);
1130  case eFbxDouble3: return FbxTypeCopy(pDst, pDstType, *(FbxDouble3*)pSrc);
1131  case eFbxDouble4: return FbxTypeCopy(pDst, pDstType, *(FbxDouble4*)pSrc);
1132  case eFbxDouble4x4: return FbxTypeCopy(pDst, pDstType, *(FbxDouble4x4*)pSrc);
1133  case eFbxEnumM:
1134  case eFbxEnum: return FbxTypeCopy(pDst, pDstType, *(FbxEnum*)pSrc);
1135  case eFbxString: return FbxTypeCopy(pDst, pDstType, *(FbxString*)pSrc);
1136  case eFbxTime: return FbxTypeCopy(pDst, pDstType, *(FbxTime*)pSrc);
1137  case eFbxBlob: return FbxTypeCopy(pDst, pDstType, *(FbxBlob*)pSrc);
1138  case eFbxDistance: return FbxTypeCopy(pDst, pDstType, *(FbxDistance*)pSrc);
1139  case eFbxDateTime: return FbxTypeCopy(pDst, pDstType, *(FbxDateTime*)pSrc);
1140 
1141  case eFbxReference:
1142  FBX_ASSERT_NOW("Trying to set value on a void Reference type" );
1143  break;
1144 
1145  default:
1146  FBX_ASSERT_NOW("Trying to assign an unknown type" );
1147  break;
1148  }
1149  return false;
1150 }
1151 
1157 FBXSDK_DLL void* FbxTypeAllocate(const EFbxType pType);
1158 
1166 FBXSDK_DLL bool FbxTypeDeallocate(const EFbxType pType, void* pData);
1167 
1174 FBXSDK_DLL bool FbxTypeCompare(const void* pA, const void* pB, const EFbxType pType);
1175 
1176 #include <fbxsdk/fbxsdk_nsend.h>
1177 
1178 #endif /* _FBXSDK_CORE_PROPERTY_TYPES_H_ */
FbxUInt64 FbxULongLong
Definition: fbxtypes.h:93
unsigned int FbxUInt
Definition: fbxtypes.h:40
const float internalValue() const
Get the value of distance when converting this measurement unit to inch.
void * mData
FBX SDK environment definition.
bool FbxTypeCopyStr(FbxDouble &pDst, const FbxString &pSrc)
FbxString toString() const
Get the string format from this date&time.
Unidentified.
32 bit signed integer.
8 bit signed integer.
Double width floating point value.
void Assign(const void *pData, int pSize)
Copy the data in the buffer.
Four vectors of four double values.
Utility class to manipulate strings.
Definition: fbxstring.h:66
Binary data block type.
16 bit floating point.
Distance.
double GetSecondDouble() const
Get time in seconds.
double mBlue
Valid range is from 0.0 to 1.0.
Class to represent colors in RGBA format using doubles.
unsigned short FbxUShort
Definition: fbxtypes.h:38
FBX SDK date&time class.
unsigned char FbxUChar
Definition: fbxtypes.h:36
Boolean.
const float value() const
Retrieve the distance value.
double FbxDouble
Definition: fbxtypes.h:42
const size_t FbxTypeSizeOf(const EFbxType pType)
Retrieve a type enumeration memory footprint size.
const float value() const
Retrieve the value as a float.
EFbxType
Type identifier constants.
Class to encapsulate time units.
Definition: fbxtime.h:44
The base class of most FBX objects.
Definition: fbxobject.h:157
signed short FbxShort
Definition: fbxtypes.h:37
Vector of four double values.
bool FbxBool
Definition: fbxtypes.h:32
Date and time.
bool FbxTypeCompare(const void *pA, const void *pB, const EFbxType pType)
Compare two values of the same type.
EFbxType FbxTypeOf(const FbxChar &)
Indicates the number of type identifiers constants.
Enumeration allowing duplicated items.
Vector of three double values.
float FbxFloat
Definition: fbxtypes.h:41
64 bit unsigned integer.
char * Buffer()
Non-const buffer access.
FbxInt FbxEnum
Definition: fbxtypes.h:54
Enumeration.
FBX SDK quaternion class.
Definition: fbxquaternion.h:27
const FbxString unitName() const
int * mRefCount
signed char FbxChar
Definition: fbxtypes.h:35
FBX SDK blob class.
bool FbxTypeDeallocate(const EFbxType pType, void *pData)
Destroys an fbx primitive type.
A four double mathematic vector class.
Definition: fbxvector4.h:25
FBX SDK affine matrix class.
bool FbxTypeCopy(T1 &, const T2 &)
This class describes the units of measurement used within a particular scene.
Definition: fbxsystemunit.h:31
FBX SDK half-float class.
Reference to object or property.
16 bit unsigned integer.
#define FBXSDK_DLL
Definition: fbxarch.h:173
const size_t FbxTypeComponentCount(const EFbxType pType)
Retrieve a type enumeration component count.
64 bit signed integer.
void * FbxTypeAllocate(const EFbxType pType)
Creates a fbx primitive type and initializes its memory.
signed int FbxInt
Definition: fbxtypes.h:39
Time value.
Vector of two double values.
8 bit unsigned integer.
char * GetTimeString(char *pTimeString, const FbxUShort &pTimeStringSize, int pInfo=5, EMode pTimeMode=eDefaultMode, EProtocol pTimeFormat=eDefaultProtocol) const
Get time in a human readable format.
32 bit unsigned integer.
FbxLongLong Get() const
Get time in internal format.
Definition: fbxtime.h:172
FBX SDK distance class.
A two double mathematic vector class.
Definition: fbxvector2.h:23
16 bit signed integer.
FBX SDK basic 4x4 double matrix class.
Definition: fbxmatrix.h:27
size_t GetLen() const
Get string length like "C" strlen().
FbxInt64 FbxLongLong
Definition: fbxtypes.h:92
double mAlpha
Valid range is from 0.0 to 1.0.
double mGreen
Valid range is from 0.0 to 1.0.
bool fromString(const char *)
Get date&time from the string format.
Floating point value.