fbxsdk/scene/shading/fbxbindingoperator.h Source File
 
 
 
fbxsdk/scene/shading/fbxbindingoperator.h
Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 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_SCENE_SHADING_BINDING_OPERATOR_H_
00014 #define _FBXSDK_SCENE_SHADING_BINDING_OPERATOR_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/shading/fbxbindingtablebase.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00049 class FBXSDK_DLL FbxBindingOperator : public FbxBindingTableBase
00050 {
00051     FBXSDK_OBJECT_DECLARE(FbxBindingOperator, FbxBindingTableBase);
00052 
00053 public:
00059     template <class FBXTYPE>
00060     bool Evaluate(const FbxObject* pObject, FBXTYPE* pResult) const
00061     {
00062         EFbxType lResultType;
00063         void* lResult = NULL;
00064 
00065         bool lSuccess = Evaluate(pObject, &lResultType, &lResult);
00066 
00067         if (lSuccess)
00068         {
00069             FbxTypeCopy(*pResult, lResult, lResultType);
00070         }
00071 
00072         FreeEvaluationResult(lResultType, lResult);
00073 
00074         return lSuccess;
00075     }
00076     
00085     template <class FBXTYPE>
00086     bool ReverseEvaluation(const FbxObject* pObject, FBXTYPE * pInOut, 
00087                             bool setObj=false, int index=0) const
00088     {
00089 
00090         const void* lIn = pInOut;
00091         void* lOut = NULL;
00092         EFbxType lOutType;
00093 
00094         bool lSuccess = ReverseEvaluate(pObject, lIn, &lOut, &lOutType, setObj, index);
00095 
00096         if (lSuccess)
00097         {
00098             FbxTypeCopy(*pInOut, lOut, lOutType);
00099         }
00100 
00101         FreeEvaluationResult(lOutType, lOut);
00102 
00103         return lSuccess;
00104     }
00105 
00119     template <class FBXTYPE>
00120     bool EvaluateEntry(const FbxObject* pObject, const char* pEntryDestinationName, FBXTYPE* pResult) const
00121     {
00122         EFbxType lResultType;
00123         void* lResult = NULL;
00124 
00125         bool lSuccess = EvaluateEntry(pObject, pEntryDestinationName, &lResultType, &lResult);
00126 
00127         if (lSuccess)
00128         {
00129             FbxTypeCopy(*pResult, lResult, lResultType);
00130         }
00131 
00132         FreeEvaluationResult(lResultType, lResult);
00133 
00134         return lSuccess;
00135     }
00136 
00141     FbxPropertyT<FbxString> FunctionName;
00142 
00147     FbxPropertyT<FbxString> TargetName;
00148 
00150     // Static values
00152 
00154     static const char* sFunctionName;
00156     static const char* sTargetName;
00157 
00159     static const char* sDefaultFunctionName;
00161     static const char* sDefaultTargetName;
00162 
00163 
00165     // Functions
00167 
00171     static void RegisterFunctions();
00172 
00176     static void UnregisterFunctions();
00177 
00178 
00183     class FBXSDK_DLL Function
00184     {
00185     public:
00187         virtual ~Function() {}
00188 
00196         virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const = 0;
00197         
00209                 virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const = 0;
00210     };
00211 
00215     class FBXSDK_DLL FunctionCreatorBase
00216     {
00217     public:
00219         virtual ~FunctionCreatorBase() {}
00220 
00224         virtual const char* GetFunctionName() const = 0;
00225 
00228         virtual Function* CreateFunction() const = 0;
00229     };
00230 
00234     template <class FUNCTION>
00235     class FunctionCreator : public FunctionCreatorBase
00236     {
00237     public:
00238 
00242         virtual const char* GetFunctionName() const
00243         {
00244             return FUNCTION::FunctionName;
00245         }
00246 
00249         virtual Function* CreateFunction() const
00250         {
00251             return FbxNew< FUNCTION >();
00252         }
00253     };
00254 
00258     class FBXSDK_DLL FunctionRegistry
00259     {
00260     public:
00264         static void RegisterFunctionCreator(FunctionCreatorBase const& pCreator)
00265         {
00266             sRegistry.Insert(pCreator.GetFunctionName(), &pCreator);
00267         }
00268 
00272         static void UnregisterFunctionCreator(FunctionCreatorBase const& pCreator)
00273         {
00274             sRegistry.Remove(pCreator.GetFunctionName());
00275         }
00276 
00280         static const FunctionCreatorBase* FindCreator(const char* pName)
00281         {
00282             RegistryType::RecordType* lRecord = sRegistry.Find(pName);
00283 
00284             if (lRecord)
00285             {
00286                 return lRecord->GetValue();
00287             }
00288             else
00289             {
00290                 return NULL;
00291             }
00292         }
00293 
00294     private:
00295         typedef FbxMap<const char*, const FunctionCreatorBase*, FbxCharCompare> RegistryType;
00296         static RegistryType sRegistry;
00297     };
00298 
00299 
00300 /*****************************************************************************************************************************
00301 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00302 *****************************************************************************************************************************/
00303 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00304     bool EvaluateEntry(const FbxObject* pObject, const char* pEntryDestinationName, EFbxType* pResultType, void** pResult) const;
00305     bool GetEntryProperty(const FbxObject* pObject, const char* pEntryDestinationName, FbxProperty & pProp) const;
00306 
00307 protected:
00308     virtual void Construct(const FbxBindingOperator* pFrom);
00309     virtual void Destruct(bool pRecursive);
00310     virtual void ConstructProperties(bool pForceSet);
00311 
00312     void InstantiateFunction();
00313     bool Evaluate(const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00314     bool ReverseEvaluate(const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00315     void FreeEvaluationResult(EFbxType pResultType, void* pResult) const;
00316 
00317     Function* mFunction;
00318 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00319 };
00320 
00321 
00325 class FbxNodePositionBOF : public FbxBindingOperator::Function
00326 {
00327 public:
00329         static const char* FunctionName;
00330 
00340         virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00341         
00343         virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00344 
00345 /*****************************************************************************************************************************
00346 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00347 *****************************************************************************************************************************/
00348 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00349         FbxNodePositionBOF();
00350         virtual ~FbxNodePositionBOF();
00351 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00352 };
00353 
00357 class FbxNodeDirectionBOF : public FbxBindingOperator::Function
00358 {
00359 public:
00361         static const char* FunctionName;
00362 
00372         virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00373         
00375         virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00376 
00377 /*****************************************************************************************************************************
00378 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00379 *****************************************************************************************************************************/
00380 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00381         FbxNodeDirectionBOF();
00382         virtual ~FbxNodeDirectionBOF();
00383 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00384 };
00385 
00388 class FbxAssignBOF : public FbxBindingOperator::Function
00389 {
00390 public:
00392     static const char* FunctionName;
00393 
00400     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00401     
00403         virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00404 
00405 /*****************************************************************************************************************************
00406 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00407 *****************************************************************************************************************************/
00408 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00409     FbxAssignBOF();
00410     virtual ~FbxAssignBOF();
00411 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00412 };
00413 
00414 
00418 class FbxConditionalBOF : public FbxBindingOperator::Function
00419 {
00420 public:
00422     static const char* FunctionName;
00423 
00437     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00438     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00439 
00440 /*****************************************************************************************************************************
00441 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00442 *****************************************************************************************************************************/
00443 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00444     FbxConditionalBOF();
00445     virtual ~FbxConditionalBOF();
00446 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00447 };
00448 
00449 
00453 class FbxSwitchBOF : public FbxBindingOperator::Function
00454 {
00455 public:
00457     static const char* FunctionName;
00458 
00472     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00473     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00474 
00475 /*****************************************************************************************************************************
00476 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00477 *****************************************************************************************************************************/
00478 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00479     FbxSwitchBOF();
00480     virtual ~FbxSwitchBOF();
00481 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00482 };
00483 
00484 
00485 class FbxTRSToMatrixBOF : public FbxBindingOperator::Function
00486 {
00487 public:
00489     static const char* FunctionName;
00490 
00500     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00501     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00502 
00503 /*****************************************************************************************************************************
00504 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00505 *****************************************************************************************************************************/
00506 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00507     FbxTRSToMatrixBOF();
00508     virtual ~FbxTRSToMatrixBOF();
00509 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00510 };
00511 
00512 
00513 class FbxAddBOF : public FbxBindingOperator::Function
00514 {
00515 public:
00517     static const char* FunctionName;
00518 
00528     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00529     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00530 
00531 /*****************************************************************************************************************************
00532 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00533 *****************************************************************************************************************************/
00534 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00535     FbxAddBOF();
00536     virtual ~FbxAddBOF();
00537 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00538 };
00539 
00540 
00541 class FbxSubstractBOF : public FbxBindingOperator::Function
00542 {
00543 public:
00545     static const char* FunctionName;
00546 
00556     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00557     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00558     
00559 /*****************************************************************************************************************************
00560 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00561 *****************************************************************************************************************************/
00562 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00563     FbxSubstractBOF();
00564     virtual ~FbxSubstractBOF();
00565 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00566 };
00567 
00568 
00569 class FbxMultiplyBOF : public FbxBindingOperator::Function
00570 {
00571 public:
00573     static const char* FunctionName;
00574 
00584     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00585     //Set index to 1 to get realWorldScale.  
00586         virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00587     
00588 /*****************************************************************************************************************************
00589 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00590 *****************************************************************************************************************************/
00591 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00592     FbxMultiplyBOF();
00593     virtual ~FbxMultiplyBOF();
00594 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00595 };
00596 
00597 
00598 class FbxMultiplyDistBOF : public FbxBindingOperator::Function
00599 {
00600 public:
00602     static const char* FunctionName;
00603 
00613     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00614     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00615     
00616 /*****************************************************************************************************************************
00617 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00618 *****************************************************************************************************************************/
00619 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00620     FbxMultiplyDistBOF();
00621     virtual ~FbxMultiplyDistBOF();
00622 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00623 };
00624 
00625 class FbxOneOverXBOF : public FbxBindingOperator::Function
00626 {
00627 public:
00629     static const char* FunctionName;
00630 
00640     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00641     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00642 
00643 /*****************************************************************************************************************************
00644 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00645 *****************************************************************************************************************************/
00646 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00647     FbxOneOverXBOF();
00648     virtual ~FbxOneOverXBOF();
00649 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00650 };
00651 
00652 class FbxPowerBOF : public FbxBindingOperator::Function
00653 {
00654 public:
00656     static const char* FunctionName;
00657 
00667     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00668     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00669 
00670 /*****************************************************************************************************************************
00671 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00672 *****************************************************************************************************************************/
00673 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00674     FbxPowerBOF();
00675     virtual ~FbxPowerBOF();
00676 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00677 };
00678 
00679 class FbxDegreeToRadianBOF : public FbxBindingOperator::Function
00680 {
00681 public:
00683     static const char* FunctionName;
00684 
00694     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00695     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00696     
00697 /*****************************************************************************************************************************
00698 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00699 *****************************************************************************************************************************/
00700 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00701     FbxDegreeToRadianBOF();
00702     virtual ~FbxDegreeToRadianBOF();
00703 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00704 };
00705 
00706 
00707 class FbxVectorDegreeToVectorRadianBOF : public FbxBindingOperator::Function
00708 {
00709 public:
00711     static const char* FunctionName;
00712 
00722     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00723     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00724     
00725 /*****************************************************************************************************************************
00726 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00727 *****************************************************************************************************************************/
00728 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00729     FbxVectorDegreeToVectorRadianBOF();
00730     virtual ~FbxVectorDegreeToVectorRadianBOF();
00731 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00732 };
00733 
00734 
00735 
00736 class FbxSphericalToCartesianBOF : public FbxBindingOperator::Function
00737 {
00738 public:
00740     static const char* FunctionName;
00741 
00751     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00752     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00753     
00754 /*****************************************************************************************************************************
00755 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00756 *****************************************************************************************************************************/
00757 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00758     FbxSphericalToCartesianBOF();
00759     virtual ~FbxSphericalToCartesianBOF();
00760 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00761 };
00762 
00763 
00764 
00765 class FbxIsYupBOF : public FbxBindingOperator::Function
00766 {
00767 public:
00769     static const char* FunctionName;
00770 
00780     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00781     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00782     
00783 /*****************************************************************************************************************************
00784 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00785 *****************************************************************************************************************************/
00786 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00787     FbxIsYupBOF();
00788     virtual ~FbxIsYupBOF();
00789 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00790 };
00791 
00792 
00793 
00797 class FbxSymbolIDBOF : public FbxBindingOperator::Function
00798 {
00799 public:
00801     static const char* FunctionName;
00802 
00811     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00812     virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00813     
00814 /*****************************************************************************************************************************
00815 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00816 *****************************************************************************************************************************/
00817 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00818     FbxSymbolIDBOF();
00819     virtual ~FbxSymbolIDBOF();
00820 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00821 };
00822 
00823 
00827 class FbxSpotDistributionChooserBOF : public FbxBindingOperator::Function
00828 {
00829 public:
00831     static const char* FunctionName;
00832 
00842     virtual bool Evaluate(const FbxBindingOperator* pOperator, const FbxObject* pObject, EFbxType* pResultType, void** pResult) const;
00843     
00845         virtual bool ReverseEvaluate(const FbxBindingOperator* pOperator, const FbxObject* pTarget, const void* pIn, void** pOut, EFbxType* pOutType, bool setObj, int index) const;
00846     
00847 /*****************************************************************************************************************************
00848 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00849 *****************************************************************************************************************************/
00850 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00851     FbxSpotDistributionChooserBOF();
00852     virtual ~FbxSpotDistributionChooserBOF();
00853 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00854 };
00855 
00856 #include <fbxsdk/fbxsdk_nsend.h>
00857 
00858 #endif /* _FBXSDK_SCENE_SHADING_BINDING_OPERATOR_H_ */