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 void Construct(
const FbxObject* pFrom)
override;
310 void Destruct(
bool pRecursive)
override;
311 void ConstructProperties(
bool pForceSet)
override;
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.
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 =0
Run the operator on the given object.
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.
static const char * FunctionName
Name of the operation function.
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.
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.
virtual bool ReverseEvaluate(const FbxBindingOperator *pOperator, const FbxObject *pTarget, const void *pIn, void **pOut, EFbxType *pOutType, bool setObj, int index) const =0
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.
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.
virtual Function * CreateFunction() const
Create the operation function.
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.
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...
static const char * FunctionName
Name of the operation function.
static const char * sFunctionName
Function name.
virtual const char * GetFunctionName() const =0
Get name of the function.
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.
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.
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.
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.