- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# 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(FbxObject const* 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(FbxObject const* pObject, FBXTYPE * pInOut,
    00087                             bool setObj=false, int index=0) const
    00088     {
    00089
    00090         void const* 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(FbxObject const* pObject, char const* 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(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const = 0;
    00197
    00209         virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* 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 char const* 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 FunctionCreatorBase const* FindCreator(char const* 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<char const*, FunctionCreatorBase const*, 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(FbxObject const* pObject, char const* pEntryDestinationName, EFbxType* pResultType, void** pResult) const;
    00305     bool GetEntryProperty(FbxObject const* pObject, char const* 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(FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00314     bool ReverseEvaluate(FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00330
    00340     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00341
    00343     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00362
    00372     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00373
    00375     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00393
    00400     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00401
    00403     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00423
    00437     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00438     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00458
    00472     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00473     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00490
    00500     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00501     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00518
    00528     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00529     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00546
    00556     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00557     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00574
    00584     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00585     //Set index to 1 to get realWorldScale.
    00586     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00603
    00613     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00614     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00630
    00640     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00641     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00657
    00667     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00668     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00684
    00694     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00695     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00712
    00722     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00723     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00741
    00751     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00752     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00770
    00780     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00781     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00802
    00811     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00812     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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 char const* FunctionName;
    00832
    00842     virtual bool Evaluate(FbxBindingOperator const* pOperator, FbxObject const* pObject, EFbxType* pResultType, void** pResult) const;
    00843
    00845     virtual bool ReverseEvaluate(FbxBindingOperator const* pOperator, FbxObject const* pTarget, void const* 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_ */