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 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...
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 properties specified by "X" and "Y" return X+Y as a float.
FBX SDK environment definition.
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.
virtual bool Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const
Evaluates the object property specified by "predicate".
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
Check if the scene coordinate system is y-up return a bool.
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...
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.
static const char * FunctionName
Name of 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
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...
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.
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.
FbxPropertyT< FbxString > FunctionName
This property stores the name of 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 Evaluate(const FbxBindingOperator *pOperator, const FbxObject *pObject, EFbxType *pResultType, void **pResult) const
Evaluates the object property specified by "X" and returns it.
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...
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.
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.
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 "X" return X converted to radian as a vector3.
static const char * sTargetName
Target name.
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.
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 * 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
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.
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.
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
Inverse evaluation for this binding function is not implemented yet.
The base class of most FBX objects.
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 "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 ~Function()
Destructor.
virtual Function * CreateFunction() const
Create 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.
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.
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...
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...
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.
static const char * sFunctionName
Function name.
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...
Class to hold user properties.
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
Inverse evaluation for this binding function is not implemented yet.
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...
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.
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 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.
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.
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 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 property specified by "predicate".
static void UnregisterFunctionCreator(FunctionCreatorBase const &pCreator)
To unregister the binding function creator.
FbxPropertyT< FbxString > TargetName
This property stores the name of target.
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 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.