13 #ifndef _FBXSDK_SCENE_SHADING_BINDING_OPERATOR_H_ 
   14 #define _FBXSDK_SCENE_SHADING_BINDING_OPERATOR_H_ 
   59     template <
class FBXTYPE>
 
   65         bool lSuccess = Evaluate(pObject, &lResultType, &lResult);
 
   72         FreeEvaluationResult(lResultType, lResult);
 
   85     template <
class FBXTYPE>
 
   87                             bool setObj=
false, 
int index=0)
 const 
   90         const void* lIn = pInOut;
 
   94         bool lSuccess = ReverseEvaluate(pObject, lIn, &lOut, &lOutType, setObj, index);
 
  101         FreeEvaluationResult(lOutType, lOut);
 
  119     template <
class FBXTYPE>
 
  123         void* lResult = 
NULL;
 
  125         bool lSuccess = EvaluateEntry(pObject, pEntryDestinationName, &lResultType, &lResult);
 
  132         FreeEvaluationResult(lResultType, lResult);
 
  171     static void RegisterFunctions();
 
  176     static void UnregisterFunctions();
 
  210         virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator, 
const FbxObject* pTarget, 
const void* pIn, 
void** pOut, 
EFbxType* pOutType, 
bool setObj, 
int index) 
const = 0;
 
  225         virtual const char* GetFunctionName() 
const = 0;
 
  229         virtual Function* CreateFunction() 
const = 0;
 
  235     template <
class FUNCTION>
 
  245             return FUNCTION::FunctionName;
 
  252             return FbxNew< FUNCTION >();
 
  287                 return lRecord->GetValue();
 
  297         static RegistryType sRegistry;
 
  304 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  305     bool EvaluateEntry(
const FbxObject* pObject, 
const char* pEntryDestinationName, 
EFbxType* pResultType, 
void** pResult) 
const;
 
  306     bool GetEntryProperty(
const FbxObject* pObject, 
const char* pEntryDestinationName, 
FbxProperty & pProp) 
const;
 
  309     virtual void Construct(
const FbxObject* pFrom);
 
  310     virtual void Destruct(
bool pRecursive);
 
  311     virtual void ConstructProperties(
bool pForceSet);
 
  313     void InstantiateFunction();
 
  314     bool Evaluate(
const FbxObject* pObject, 
EFbxType* pResultType, 
void** pResult) 
const;
 
  315     bool ReverseEvaluate(
const FbxObject* pTarget, 
const void* pIn, 
void** pOut, 
EFbxType* pOutType, 
bool setObj, 
int index) 
const;
 
  316     void FreeEvaluationResult(
EFbxType pResultType, 
void* pResult) 
const;
 
  349 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  381 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  409 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  444 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  479 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  507 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  535 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  563 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  592 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  620 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  647 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  674 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  701 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  729 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  758 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  787 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  818 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  851 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
This utility class is used to register and unregister the binding function creators. 
 
A pass through operator used to assign constants to parameters. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" and "Y" return X+Y as a float. 
 
FBX SDK environment definition. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" return 1/X as a float. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "predicate". 
 
static const char * FunctionName
Name of the operation function. 
 
A symbol(string) operator that search the string table and return its corresponding unique id...
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Check if the scene coordinate system is y-up return a bool. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Check the enum of the spot distribution and returns the correct value as an int. 
 
static const char * FunctionName
Name of the operation function. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" and "Y" return X^Y as a float. 
 
An evaluation operator to get the direction of the node that is bound with this operator via a certai...
 
FbxPropertyT< FbxString > FunctionName
This property stores the name of function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" and "Y" return X-Y as a float. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "X" and returns it. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" and "Y" return X*Y as a float. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
A binding table represents a collection of bindings from source types such as FbxObject, or FbxLayerElements to destinations which can be of similar types. 
 
static void RegisterFunctionCreator(FunctionCreatorBase const &pCreator)
To register the binding function creator. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Inverse evaluation for this binding function is not implemented yet. 
 
A conditional operator that outputs one out of two properties, based on the value of a predicate prop...
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "X" return X converted to radian as a vector3. 
 
static const char * sTargetName
Target name. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "X" return X converted to radian as a float. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluate the direction of the node that is bound with this operator via a certain property...
 
static const char * sDefaultFunctionName
Default value for function name. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
This class implements an efficient map based on key comparison, which stores key-value pairs...
 
It represents a binding relationship between current object and the target. 
 
EFbxType
Type identifier constants. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Check in the symbol table the string and returns its unique ID as an integer. 
 
An evaluation operator to get the position of the node that is bound with this operator via a certain...
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Inverse evaluation for this binding function is not implemented yet. 
 
The base class of most FBX objects. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "rho", "theta" and "phi" return the converted Cartesian co...
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual ~Function()
Destructor. 
 
virtual Function * CreateFunction() const 
Create the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluate the position of the node that is bound with this operator via a certain property. 
 
static const char * FunctionName
Name of the operation function. 
 
The concrete factory class for binding function. 
 
static const char * FunctionName
Name of the operation function. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "T", "R" and "S" and return a transform matrix...
 
static const char * FunctionName
Name of the operation function. 
 
bool ReverseEvaluation(const FbxObject *pObject, FBXTYPE *pInOut, bool setObj=false, int index=0) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
static const char * FunctionName
Name of the operation function. 
 
static const char * sFunctionName
Function name. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual const char * GetFunctionName() const  =0
Get name of the function. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
Class to hold user properties. 
 
static const char * FunctionName
Name of the operation function. 
 
bool FbxTypeCopy(T1 &, const T2 &)
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Inverse evaluation for this binding function is not implemented yet. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
This object represents a binding operation on a FbxObject or FbxProperty. 
 
A chooser operator that check spot distribution and returns the correct value, based on the value of ...
 
The abstract factory class for binding function. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Inverse evaluation for this binding function is not implemented yet. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object properties specified by "X" and "Y" return X*Y as a float. 
 
bool Evaluate(const FbxObject *pObject, FBXTYPE *pResult) const 
Run the operator on the given object. 
 
A switch operator that outputs one out of n properties, based on the value of a predicate property...
 
bool EvaluateEntry(const FbxObject *pObject, const char *pEntryDestinationName, FBXTYPE *pResult) const 
Evaluate the value of an operator parameter. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
static const FunctionCreatorBase * FindCreator(const char *pName)
To find the binding function creator by name. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const 
Evaluates the object property specified by "predicate". 
 
static void UnregisterFunctionCreator(FunctionCreatorBase const &pCreator)
To unregister the binding function creator. 
 
FbxPropertyT< FbxString > TargetName
This property stores the name of target. 
 
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const 
Run the inverse operator on the given object, assigning the result directly to the object...
 
virtual const char * GetFunctionName() const 
Get Name of the operation function. 
 
static const char * FunctionName
Name of the operation function. 
 
static const char * sDefaultTargetName
Default value for target name. 
 
StorageType::RecordType RecordType
 
static const char * FunctionName
Name of the operation function. 
 
static const char * FunctionName
Name of the operation function. 
 
virtual ~FunctionCreatorBase()
Destructor.