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 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.
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 property specified by "predicate".
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...
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...
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.
virtual Function * CreateFunction() const
Create 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
Inverse evaluation for this binding function is not implemented yet.
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...
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...
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.
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.
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.
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.
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.
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" return 1/X as a float.
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...
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const
Evaluates the object property specified by "predicate".
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 * 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...
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.
It represents a binding relationship between current object and the target.
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.
EFbxType
Type identifier constants.
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
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...
The base class of most FBX objects.
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.
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.
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.
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 "X" return X converted to radian as a float.
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 property specified by "X" return X converted to radian as a vector3.
static const char * sFunctionName
Function name.
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.
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 * 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
Run the inverse operator on the given object, assigning the result directly to the object...
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 position of the node that is bound with this operator via a certain property.
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 ...
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...
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...
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 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 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 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...
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.
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const
Evaluates the object property specified by "X" and returns it.
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 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.
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.
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.