Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes

FbxBindingOperator Class Reference

Search for all occurrences

Detailed Description

This object represents a binding operation on a FbxObject or FbxProperty.

For example, FbxBindingOperator can be used to bind a light object to a parameter of shader via FbxNodeDirectionBOF or FbxNodePositionBOF.

  //Create an entry lEntry of binding table lTable.
  FbxBindingTableEntry& lEntry = lTable->AddNewEntry();
  
  //Create a NodePositionConvert binding operator and add it as source of the lEntry.
  FbxOperatorEntryView lSrc(&lEntry, true, true);
  lSrc.SetOperatorName( "NodePositionConvert");
  FbxBindingOperator* lOp = pImpl.AddNewBindingOperator( "NodePositionConvert", FbxNodePositionBOF::FunctionName);
  
  //Add a property entry to the binding operator.
  FbxBindingTableEntry& lEntryPropParam = lOp->AddNewEntry();
  FbxPropertyEntryView lPropSrc(&lEntryPropParam, true, true);
  //Set the shader parameter (the property's name) as source of the lEntryPropParam.
  lPropSrc.SetProperty(lProp.GetHierarchicalName());
  //Set the operator function FbxNodePositionBOF as destination of the lEntryPropParam.
  lEntryPropParam.SetDestination( FbxNodePositionBOF::FunctionName );
  
  //Set the shader parameter as destination of the lEntry.
  FbxSemanticEntryView lDst( &lEntry, false, true );
  lDst.SetSemantic( lProp.GetName() );
See also:
FbxOperatorEntryView, FbxBindingTableEntry, FbxPropertyEntryView

Definition at line 52 of file fbxbindingoperator.h.

#include <fbxbindingoperator.h>

Inheritance diagram for FbxBindingOperator:
Inheritance graph
[legend]

List of all members.

Classes

class   Function
  It represents a binding relationship between current object and the target. More...
class   FunctionCreator
  The concrete factory class for binding function. More...
class   FunctionCreatorBase
  The abstract factory class for binding function. More...
class   FunctionRegistry
  This utility class is used to register and unregister the binding function creators. More...

Public Member Functions

template<class FBXTYPE >
bool  Evaluate (FbxObject const *pObject, FBXTYPE *pResult) const
  Run the operator on the given object.
template<class FBXTYPE >
bool  ReverseEvaluation (FbxObject const *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.
template<class FBXTYPE >
bool  EvaluateEntry (FbxObject const *pObject, char const *pEntryDestinationName, FBXTYPE *pResult) const
  Evaluate the value of an operator parameter.
bool  EvaluateEntry (FbxObject const *pObject, char const *pEntryDestinationName, EFbxType *pResultType, void **pResult) const
bool  GetEntryProperty (FbxObject const *pObject, char const *pEntryDestinationName, FbxProperty &pProp) const

Static Public Member Functions

static void  RegisterFunctions ()
static void  UnregisterFunctions ()

Public Attributes

FbxPropertyT< FbxString FunctionName
  This property stores the name of function.
FbxPropertyT< FbxString TargetName
  This property stores the name of target.

Static Public Attributes

static const char *  sFunctionName
  Function name.
static const char *  sTargetName
  Target name.
static const char *  sDefaultFunctionName
  Default value for function name.
static const char *  sDefaultTargetName
  Default value for target name.

Protected Member Functions

  FbxBindingOperator (FbxManager &pManager, char const *pName)
virtual void  Destruct (bool pRecursive, bool pDependents)
virtual bool  ConstructProperties (bool pForceSet)
void  InstantiateFunction ()
bool  Evaluate (FbxObject const *pObject, EFbxType *pResultType, void **pResult) const
  Run the operator on the given object.
bool  ReverseEvaluate (FbxObject const *pTarget, void const *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const
  Apply the inverse operator.
void  FreeEvaluationResult (EFbxType pResultType, void *pResult) const
  Free a buffer allocated by Evaluate().

Protected Attributes

Function mFunction

Constructor & Destructor Documentation

FbxBindingOperator ( FbxManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

bool Evaluate ( FbxObject const *  pObject,
FBXTYPE *  pResult 
) const [inline]

Run the operator on the given object.

Parameters:
pObject The object that will be evaluated.
pResult A pointer to a buffer to hold the result.
Returns:
true on success, false otherwise.

Definition at line 63 of file fbxbindingoperator.h.

    {
        EFbxType lResultType;
        void* lResult = NULL;

        bool lSuccess = Evaluate(pObject, &lResultType, &lResult);

        if (lSuccess)
        {
            FbxTypeCopy(*pResult, lResult, lResultType);
        }

        FreeEvaluationResult(lResultType, lResult);

        return lSuccess;
    }
bool ReverseEvaluation ( FbxObject const *  pObject,
FBXTYPE *  pInOut,
bool  setObj = false,
int  index = 0 
) const [inline]

Run the inverse operator on the given object, assigning the result directly to the object.

Parameters:
pObject The object that will be evaluated.
pInOut Type of value being reversed.
setObj Control to set the property (only to query by the default ).
index Used only in FbxMultiplyDistBOF.
Returns:
true on success, false otherwise.

Definition at line 89 of file fbxbindingoperator.h.

    {

        void const* lIn = pInOut;
        void* lOut = NULL;
        EFbxType lOutType;

        bool lSuccess = ReverseEvaluate(pObject, lIn, &lOut, &lOutType, setObj, index);

        if (lSuccess)
        {
            FbxTypeCopy(*pInOut, lOut, lOutType);
        }

        FreeEvaluationResult(lOutType, lOut);

        return lSuccess;
    }
bool EvaluateEntry ( FbxObject const *  pObject,
char const *  pEntryDestinationName,
FBXTYPE *  pResult 
) const [inline]

Evaluate the value of an operator parameter.

Parameters:
pObject The object that will be evaluated.
pEntryDestinationName The name of the parameter. This is used to get the property or operator that is related to this parameter, then to evaluate the property or operator.
pResult A pointer to the result.
Returns:
true on success, false otherwise.
Remarks:
This method can handle different types of entries. For property entry and constant entry, this method will find out the property via the pEntryDestinationName and then evaluate its value; for operator entry, this method will find out the operator via the pEntryDestinationName and evaluate the operator function to get the property's value; for any other types of entry, this method is meaningless.

Definition at line 123 of file fbxbindingoperator.h.

    {
        EFbxType lResultType;
        void* lResult = NULL;

        bool lSuccess = EvaluateEntry(pObject, pEntryDestinationName, &lResultType, &lResult);

        if (lSuccess)
        {
            FbxTypeCopy(*pResult, lResult, lResultType);
        }

        FreeEvaluationResult(lResultType, lResult);

        return lSuccess;
    }
static void RegisterFunctions ( ) [static]
static void UnregisterFunctions ( ) [static]
bool EvaluateEntry ( FbxObject const *  pObject,
char const *  pEntryDestinationName,
EFbxType pResultType,
void **  pResult 
) const
bool GetEntryProperty ( FbxObject const *  pObject,
char const *  pEntryDestinationName,
FbxProperty pProp 
) const
virtual void Destruct ( bool  pRecursive,
bool  pDependents 
) [protected, virtual]
virtual bool ConstructProperties ( bool  pForceSet ) [protected, virtual]
void InstantiateFunction ( ) [protected]
bool Evaluate ( FbxObject const *  pObject,
EFbxType pResultType,
void **  pResult 
) const [protected]

Run the operator on the given object.

Parameters:
pObject The object that will be evaluated.
pResultType Will be filled by the type of the result.
pResult Will be filled by a pointer to a buffer that hold the result. The caller must call FreeEvaluationResult() when its done with this pointer.
Returns:
true on success, false otherwise.
bool ReverseEvaluate ( FbxObject const *  pTarget,
void const *  pIn,
void **  pOut,
EFbxType pOutType,
bool  setObj,
int  index 
) const [protected]

Apply the inverse operator.

void FreeEvaluationResult ( EFbxType  pResultType,
void *  pResult 
) const [protected]

Free a buffer allocated by Evaluate().

Parameters:
pResult Type The type of data held by pResult.
pResult The pointer to free.

Member Data Documentation

This property stores the name of function.

Default value is "".

Definition at line 144 of file fbxbindingoperator.h.

This property stores the name of target.

Default value is "".

Definition at line 150 of file fbxbindingoperator.h.

const char* sFunctionName [static]
const char* sTargetName [static]

Target name.

Definition at line 159 of file fbxbindingoperator.h.

const char* sDefaultFunctionName [static]

Default value for function name.

Definition at line 162 of file fbxbindingoperator.h.

const char* sDefaultTargetName [static]

Default value for target name.

Definition at line 164 of file fbxbindingoperator.h.

Function* mFunction [protected]

The documentation for this class was generated from the following file:

FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator
FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator FbxBindingOperator