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;
344 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
349 #ifndef DOXYGEN_SHOULD_SKIP_THIS 376 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
381 #ifndef DOXYGEN_SHOULD_SKIP_THIS 404 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
409 #ifndef DOXYGEN_SHOULD_SKIP_THIS 439 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
444 #ifndef DOXYGEN_SHOULD_SKIP_THIS 474 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
479 #ifndef DOXYGEN_SHOULD_SKIP_THIS 502 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
507 #ifndef DOXYGEN_SHOULD_SKIP_THIS 530 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
535 #ifndef DOXYGEN_SHOULD_SKIP_THIS 558 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
563 #ifndef DOXYGEN_SHOULD_SKIP_THIS 587 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
592 #ifndef DOXYGEN_SHOULD_SKIP_THIS 615 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
620 #ifndef DOXYGEN_SHOULD_SKIP_THIS 642 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
647 #ifndef DOXYGEN_SHOULD_SKIP_THIS 669 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
674 #ifndef DOXYGEN_SHOULD_SKIP_THIS 696 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
701 #ifndef DOXYGEN_SHOULD_SKIP_THIS 724 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
729 #ifndef DOXYGEN_SHOULD_SKIP_THIS 753 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
758 #ifndef DOXYGEN_SHOULD_SKIP_THIS 782 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
787 #ifndef DOXYGEN_SHOULD_SKIP_THIS 813 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
818 #ifndef DOXYGEN_SHOULD_SKIP_THIS 846 virtual bool ReverseEvaluate(
const FbxBindingOperator* pOperator,
const FbxObject* pTarget,
const void* pIn,
void** pOut,
EFbxType* pOutType,
bool setObj,
int index)
const;
851 #ifndef DOXYGEN_SHOULD_SKIP_THIS #define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
This utility class is used to register and unregister the binding function creators.
A pass through operator used to assign constants to parameters.
FBX SDK environment definition.
static const char * FunctionName
Name of the operation function.
A symbol(string) operator that search the string table and return its corresponding unique id...
static const char * FunctionName
Name of the operation function.
virtual Function * CreateFunction() const
Create the operation function.
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...
An evaluation operator to get the direction of the node that is bound with this operator via a certai...
virtual const char * GetFunctionName() const =0
Get name of the function.
bool Evaluate(const FbxObject *pObject, FBXTYPE *pResult) const
Run the operator on the given object.
FbxPropertyT< FbxString > FunctionName
This property stores the name of function.
static const char * FunctionName
Name of the operation function.
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.
A conditional operator that outputs one out of two properties, based on the value of a predicate prop...
static const char * sTargetName
Target name.
static const char * FunctionName
Name of the operation function.
static const char * sDefaultFunctionName
Default value for function name.
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.
An evaluation operator to get the position of the node that is bound with this operator via a certain...
The base class of most FBX objects.
static const char * FunctionName
Name of the operation function.
virtual ~Function()
Destructor.
static const char * FunctionName
Name of the operation function.
virtual const char * GetFunctionName() const
Get 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.
static const char * FunctionName
Name of the operation function.
static const char * FunctionName
Name of the operation function.
static const char * sFunctionName
Function name.
static const char * FunctionName
Name of the operation function.
Class to hold user properties.
static const char * FunctionName
Name of the operation function.
bool FbxTypeCopy(T1 &, const T2 &)
static const char * FunctionName
Name of the operation function.
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.
A switch operator that outputs one out of n properties, based on the value of a predicate property...
static const FunctionCreatorBase * FindCreator(const char *pName)
To find the binding function creator by name.
static const char * FunctionName
Name of the operation function.
static void UnregisterFunctionCreator(FunctionCreatorBase const &pCreator)
To unregister the binding function creator.
FbxPropertyT< FbxString > TargetName
This property stores the name of target.
bool EvaluateEntry(const FbxObject *pObject, const char *pEntryDestinationName, FBXTYPE *pResult) const
Evaluate the value of an operator parameter.
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.