fbxsdk/core/fbxobject.h File Reference
 
 
 
fbxsdk/core/fbxobject.h File Reference

This reference page is linked to from the following overview topics: Customizing the FBX SDK, Extracting the Animation Data from a FBX File.



File Description

Definition in file fbxobject.h.

Classes

class   FbxObject
  The base class of most FBX objects. More...
class   FbxIterator< FbxProperty >
  A utility class for iterating over the properties (FbxProperty) of any FbxObject. More...
class   FbxIteratorSrcBase
  A utility class for iterating over source objects that connect to property (FbxProperty) or object (FbxObject). More...
class   FbxIteratorSrc< Type >
  A utility class for iterating over source objects that connect to property (FbxProperty) or object (FbxObject). More...
class   FbxIteratorDstBase
  A utility class for iterating over destination objects that connect to property (FbxProperty) or object (FbxObject). More...
class   FbxIteratorDst< Type >
  A utility class for iterating over destination objects that connect to property (FbxProperty) or object (FbxObject). More...

Defines

#define  FBXSDK_CLASS_DECLARE(Class, Parent)
#define  FBXSDK_FBXOBJECT_DECLARE(Class, Parent)
#define  FBXSDK_OBJECT_DECLARE(Class, Parent)
  Macro used to declare a new class derived from FbxObject.
#define  FBXSDK_ABSTRACT_OBJECT_DECLARE(Class, Parent)
  Macro used to declare a new abstract class derived from FbxObject.
#define  FBXSDK_OBJECT_IMPLEMENT(Class)
  Macro used to implement a new class derived from FbxObject.
#define  FBXSDK_ABSTRACT_OBJECT_IMPLEMENT(Class)
  Macro used to implement a new abstract class derived from FbxObject.
#define  FBX_TYPE(class)   ((const class*)0)
  Convert the class type parameter into a C class parameter for other function inputs.
#define  FbxForEach(Iterator, Object)   for((Object)=(Iterator).GetFirst();(Object)!=0;(Object)=(Iterator).GetNext())
  Macro used to iterate over source or destination objects that connect to property (FbxProperty) or object (FbxObject).
#define  FbxForEachReverse(Iterator, Object)   for(Object=(Iterator).GetLast();(Object)!=0;Object=(Iterator).GetPrevious())
  Macro used to reversely iterate over source or destination objects that connect to property (FbxProperty) or object (FbxObject)

Functions

template<class T >
T *  FbxCast (FbxObject *pObject)
  Safe casting of FBX SDK objects into other FBX SDK class types.
template<class T >
const T *  FbxCast (const FbxObject *pObject)
  Safe const casting of FBX SDK objects into other FBX SDK class types.

Define Documentation

#define FBXSDK_CLASS_DECLARE (   Class,
  Parent 
)
Value:
private:\
        Class(const Class&);\
        Class& operator=(const Class&);\
protected:\
        virtual ~Class(){};\
public:\
        static FbxClassId ClassId;\
        virtual FbxClassId GetClassId() const { return ClassId; }\
        friend class FBXSDK_NAMESPACE::FbxManager;\
    typedef Parent ParentClass;\
        static Class* Create(FbxManager* pManager, const char* pName);\

Macro used to declare ClassId mechanics.

Definition at line 39 of file fbxobject.h.

#define FBXSDK_FBXOBJECT_DECLARE (   Class,
  Parent 
)
Value:
FBXSDK_CLASS_DECLARE(Class, Parent)\
    FBXSDK_FRIEND_NEW()\
    static Class* Create(FbxObject* pContainer, const char* pName);\
protected:\
        static Class* Allocate(FbxManager* pManager, const char* pName, const Class* pFrom);\

Macro used to declare the FbxObject class.

Definition at line 53 of file fbxobject.h.

#define FBXSDK_OBJECT_DECLARE (   Class,
  Parent 
)
Value:
FBXSDK_FBXOBJECT_DECLARE(Class, Parent)\
protected:\
        Class(FbxManager& pManager, const char* pName) : Parent(pManager, pName){};\
private:

Macro used to declare a new class derived from FbxObject.

Examples:
ExportScene03/MyKFbxMesh.h.

Definition at line 61 of file fbxobject.h.

#define FBXSDK_ABSTRACT_OBJECT_DECLARE (   Class,
  Parent 
)
Value:
FBXSDK_CLASS_DECLARE(Class, Parent)\
protected:\
        static FbxObjectCreateProc Allocate;\
        Class(FbxManager& pManager, const char* pName) : Parent(pManager, pName){};\
private:

Macro used to declare a new abstract class derived from FbxObject.

Definition at line 69 of file fbxobject.h.

#define FBXSDK_OBJECT_IMPLEMENT (   Class )
Value:
FbxClassId Class::ClassId;\
        Class* Class::Create(FbxManager* pManager, const char* pName)\
        {\
                return (Class*)pManager->CreateNewObjectFromClassId(Class::ClassId, pName);\
        }\
        Class* Class::Create(FbxObject* pContainer, const char* pName)\
        {\
                FBX_ASSERT_RETURN_VALUE(pContainer && pContainer->GetFbxManager(), NULL);\
                return (Class*)pContainer->GetFbxManager()->CreateNewObjectFromClassId(Class::ClassId, pName, pContainer);\
        }\
        Class* Class::Allocate(FbxManager* pManager, const char* pName, const Class* pFrom)\
        {\
                Class* lNewObject = FbxNew<Class>(*pManager, pName);\
                lNewObject->Construct(pFrom);\
                lNewObject->SetObjectFlags(FbxObject::eInitialized, true);\
                return lNewObject;\
        }\

Macro used to implement a new class derived from FbxObject.

Examples:
ExportScene03/MyKFbxMesh.cxx.

Definition at line 78 of file fbxobject.h.

#define FBXSDK_ABSTRACT_OBJECT_IMPLEMENT (   Class )
Value:
FbxClassId Class::ClassId;\
        FbxObjectCreateProc Class::Allocate = 0;\
        Class* Class::Create(FbxManager* pManager, const char* pName)\
        {\
                return (Class*)pManager->CreateNewObjectFromClassId(Class::ClassId, pName);\
        }\

Macro used to implement a new abstract class derived from FbxObject.

Definition at line 98 of file fbxobject.h.

#define FBX_TYPE (   class )    ((const class*)0)

Convert the class type parameter into a C class parameter for other function inputs.

Usage example:

 //Assuming MyCamera is a valid FbxCamera object
 bool AreCamerasObject = MyCamera->Is<FbxObject>(); //Should return true :)
Examples:
ExportScene03/main.cxx.

Definition at line 1652 of file fbxobject.h.

#define FbxForEach (   Iterator,
  Object 
)    for((Object)=(Iterator).GetFirst();(Object)!=0;(Object)=(Iterator).GetNext())

Macro used to iterate over source or destination objects that connect to property (FbxProperty) or object (FbxObject).

Definition at line 1677 of file fbxobject.h.

#define FbxForEachReverse (   Iterator,
  Object 
)    for(Object=(Iterator).GetLast();(Object)!=0;Object=(Iterator).GetPrevious())

Macro used to reversely iterate over source or destination objects that connect to property (FbxProperty) or object (FbxObject)

Definition at line 1680 of file fbxobject.h.


Function Documentation

T* FbxCast ( FbxObject pObject ) [inline]

Safe casting of FBX SDK objects into other FBX SDK class types.

This cast will perform the complete test to make sure the object inherits from the requested class type. This is the equivalent of a dynamic_cast but much faster.

Parameters:
pPlug The object to try to cast into T type.
Returns:
A non-null pointer if the cast was successful.

Definition at line 1660 of file fbxobject.h.

                                                         : 0;
}
const T* FbxCast ( const FbxObject pObject ) [inline]

Safe const casting of FBX SDK objects into other FBX SDK class types.

This cast will perform the complete test to make sure the object inherits from the requested class type. This is the equivalent of a dynamic_cast but much faster.

Parameters:
pPlug The object to try to cast into T type.
Returns:
A non-null pointer if the cast was successful.

Definition at line 1671 of file fbxobject.h.

                                                               : 0;
}

Go to the source code of this file.