This object represents a binding operation on a KFbxObject or KFbxProperty.
For example, KFbxBindingOperator can be used to bind a light object to a parameter of shader via KFbxNodeDirectionBOF or KFbxNodePositionBOF.
// create entry KFbxBindingTableEntry& lEntry = lTable->AddNewEntry(); //Create NodePosition binding operator function KFbxOperatorEntryView lSrc(&lEntry, true, true); lSrc.SetOperatorName( "NodePositionConvert"); KFbxBindingOperator* lOp = pImpl.AddNewBindingOperator( "NodePositionConvert", KFbxNodePositionBOF::FunctionName); //Add property entry to operator to remember the property's name KFbxBindingTableEntry& lEntryPropParam = lOp->AddNewEntry(); KFbxPropertyEntryView lPropSrc(&lEntryPropParam, true, true); lPropSrc.SetProperty(lProp.GetHierarchicalName()); lEntryPropParam.SetDestination( KFbxNodePositionBOF::FunctionName ); // set dst to the shader parameter KFbxSemanticEntryView lDst( &lEntry, false, true ); lDst.SetSemantic( lProp.GetName() );
Definition at line 75 of file kfbxbindingoperator.h.
#include <kfbxbindingoperator.h>
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 for fast
accessing the binding function creators by name. More... |
|
Public Member Functions |
|
template<class FBXTYPE > | |
bool | Evaluate (KFbxObject const *pObject, FBXTYPE *pResult) const |
Run the operator on the given object.
|
|
template<class FBXTYPE > | |
bool | ReverseEvaluation (KFbxObject 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 (KFbxObject const *pObject, char const *pEntryDestinationName, FBXTYPE *pResult) const |
Evaluate the value of an operator parameter.
|
|
bool | EvaluateEntry (KFbxObject const *pObject, char const *pEntryDestinationName, EFbxType *pResultType, void **pResult) const |
bool | GetEntryProperty (KFbxObject const *pObject, char const *pEntryDestinationName, KFbxProperty &pProp) const |
Static Public Member Functions |
|
static void | RegisterFunctions () |
static void | UnregisterFunctions () |
Public Attributes |
|
KFbxTypedProperty< fbxString > | FunctionName |
KFbxTypedProperty< fbxString > | TargetName |
Static Public Attributes |
|
static const char * | sFunctionName |
static const char * | sTargetName |
static const char * | sDefaultFunctionName |
static const char * | sDefaultTargetName |
Protected Member Functions |
|
KFbxBindingOperator (KFbxSdkManager &pManager, char const *pName) | |
virtual void | Destruct (bool pRecursive, bool pDependents) |
virtual bool | ConstructProperties (bool pForceSet) |
void | InstantiateFunction () |
bool | Evaluate (KFbxObject const *pObject, EFbxType *pResultType, void **pResult) const |
Run the operator on the given object.
|
|
bool | ReverseEvaluate (KFbxObject const *pTarget, void const *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const |
Apply the 'reverse' operator. |
|
void | FreeEvaluationResult (EFbxType pResultType, void *pResult) const |
Free a buffer allocated by Evaluate().
|
|
Protected Attributes |
|
Function * | mFunction |
KFbxBindingOperator | ( | KFbxSdkManager & | pManager, |
char const * | pName | ||
) | [protected] |
bool Evaluate | ( | KFbxObject const * | pObject, |
FBXTYPE * | pResult | ||
) | const [inline] |
Run the operator on the given object.
pObject | The object that will be evaluated. |
pResult | A pointer to a buffer to hold the result. |
Definition at line 86 of file kfbxbindingoperator.h.
{ EFbxType lResultType; void* lResult = NULL; bool lSuccess = Evaluate(pObject, &lResultType, &lResult); if (lSuccess) { fbxCopy(*pResult, lResult, lResultType); } FreeEvaluationResult(lResultType, lResult); return lSuccess; }
bool ReverseEvaluation | ( | KFbxObject 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.
pObject | The object that will be evaluated. |
pInOut | Type of value being reversed. |
setObj | Control to set the property (default only queries). |
index | Used only in KFbxMultiplyDistBOF ('1' get's realWorldScale). |
Definition at line 112 of file kfbxbindingoperator.h.
{ void const* lIn = pInOut; void* lOut = NULL; EFbxType lOutType; bool lSuccess = ReverseEvaluate(pObject, lIn, &lOut, &lOutType, setObj, index); if (lSuccess) { fbxCopy(*pInOut, lOut, lOutType); } FreeEvaluationResult(lOutType, lOut); return lSuccess; }
bool EvaluateEntry | ( | KFbxObject const * | pObject, |
char const * | pEntryDestinationName, | ||
FBXTYPE * | pResult | ||
) | const [inline] |
Evaluate the value of an operator parameter.
pObject | The object that will be evaluated. |
pEntryDestinationName | The name of the parameter. |
pResult | A pointer to the result. |
Definition at line 139 of file kfbxbindingoperator.h.
{ EFbxType lResultType; void* lResult = NULL; bool lSuccess = EvaluateEntry(pObject, pEntryDestinationName, &lResultType, &lResult); if (lSuccess) { fbxCopy(*pResult, lResult, lResultType); } FreeEvaluationResult(lResultType, lResult); return lSuccess; }
static void RegisterFunctions | ( | ) | [static] |
static void UnregisterFunctions | ( | ) | [static] |
bool EvaluateEntry | ( | KFbxObject const * | pObject, |
char const * | pEntryDestinationName, | ||
EFbxType * | pResultType, | ||
void ** | pResult | ||
) | const |
bool GetEntryProperty | ( | KFbxObject const * | pObject, |
char const * | pEntryDestinationName, | ||
KFbxProperty & | pProp | ||
) | const |
virtual void Destruct | ( | bool | pRecursive, |
bool | pDependents | ||
) | [protected, virtual] |
Reimplemented from KFbxObject.
virtual bool ConstructProperties | ( | bool | pForceSet | ) | [protected, virtual] |
Reimplemented from KFbxObject.
void InstantiateFunction | ( | ) | [protected] |
bool Evaluate | ( | KFbxObject const * | pObject, |
EFbxType * | pResultType, | ||
void ** | pResult | ||
) | const [protected] |
Run the operator on the given object.
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. |
bool ReverseEvaluate | ( | KFbxObject const * | pTarget, |
void const * | pIn, | ||
void ** | pOut, | ||
EFbxType * | pOutType, | ||
bool | setObj, | ||
int | index | ||
) | const [protected] |
Apply the 'reverse' operator.
void FreeEvaluationResult | ( | EFbxType | pResultType, |
void * | pResult | ||
) | const [protected] |
Free a buffer allocated by Evaluate().
pResult | Type The type of data held by pResult. |
pResult | The pointer to free. |
Definition at line 157 of file kfbxbindingoperator.h.
Definition at line 158 of file kfbxbindingoperator.h.
const char*
sFunctionName [static] |
Definition at line 165 of file kfbxbindingoperator.h.
const char*
sTargetName [static] |
Definition at line 166 of file kfbxbindingoperator.h.
const char*
sDefaultFunctionName [static] |
Definition at line 169 of file kfbxbindingoperator.h.
const char*
sDefaultTargetName [static] |
Definition at line 170 of file kfbxbindingoperator.h.
Definition at line 308 of file kfbxbindingoperator.h.