- Main Page
- Classes
- Files
- Directories
- Examples

- Class List
- Class Hierarchy
- Class Members

Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions

# FbxCloneManager Class Reference

Search for all occurrences

## Detailed Description

The clone manager is a utility for cloning entire networks of FbxObject.

Options are available for specifying how the clones inherit the connections of the original.

Networks of FbxObject (inter-connected objects by OO, OP, PO or PP connections) can be cloned. How the connections of clones are handled depends on mSrcPolicy and mExternalDstPolicy.

To clone FbxObject instances and their dependents, put them into a CloneSet and pass the CloneSet to this class:

     FbxCloneManager                  cloneManager;
     FbxCloneManager::CloneSet        cloneSet;
     FbxCloneManager::CloneSetElement defaultCloneOptions(FbxCloneManager::sConnectToClone,
                                           FbxCloneManager::sConnectToOriginal, FbxObject::eDeepClone);
     cloneSet.Insert(someObject, defaultCloneOptions);
     cloneManager.AddDependents(cloneSet, someObject, defaultCloneOptions);
     cloneManager.Clone(cloneSet, scene)

See also:
  FbxCloneManager::CloneSetElement
  FbxCloneManager::CloneSet

Definition at line 48 of file fbxclonemanager.h.

`#include <fbxclonemanager.h>`

List of all members.

## Classes
struct | CloneSetElement
| This represents an element in FbxCloneManager::CloneSet to be cloned. More...
class | ObjectCompare
| Functor to compare object pointers. More...
## Public Types
typedef FbxMap< FbxObject *, CloneSetElement, ObjectCompare > | CloneSet
| The CloneSet is a collection of pointers to objects that will be cloned in Clone() Attached to each object is a CloneSetElement.
## Public Member Functions
| FbxCloneManager ()
| Constructor.
virtual | ~FbxCloneManager ()
| Destructor.
virtual bool | Clone (CloneSet &pSet, FbxObject *pContainer=NULL) const
| Clone all objects in the set using the given policies for duplication of connections.
virtual void | AddDependents (CloneSet &pSet, const FbxObject *pObject, const CloneSetElement &pCloneOptions=CloneSetElement(), FbxCriteria pTypes=FbxCriteria::ObjectType(FbxObject::ClassId), int pDepth=sMaximumCloneDepth) const
| Add all dependents of the given object to the CloneSet.
## Static Public Attributes
static const int | sMaximumCloneDepth
| Maximum depth to clone dependents.
static const int | sConnectToOriginal
| Connect to objects that are connected to original object.
static const int | sConnectToClone
| Connect to clones of objects that are connected to original object.
## Protected Member Functions
bool | CloneConnections (CloneSet::RecordType *pIterator, const CloneSet &pSet) const

## Member Typedef Documentation

typedef FbxMap<FbxObject*,CloneSetElement,ObjectCompare> CloneSet

Search for all occurrences

The CloneSet is a collection of pointers to objects that will be cloned in Clone() Attached to each object is a CloneSetElement.

Its member variables dictate how the corresponding object will be cloned, and how it will inherit connections on the original object.

Definition at line 126 of file fbxclonemanager.h.

## Constructor & Destructor Documentation

FbxCloneManager | ( |  | ) |

Constructor.

virtual ~FbxCloneManager | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual bool Clone | ( | CloneSet & | pSet,
|  | FbxObject * | pContainer = `NULL`
| ) |  | const `[virtual]`

Search for all occurrences

Clone all objects in the set using the given policies for duplication of connections.

Each CloneSetElement in the set will have its mObjectClone pointer set to the newly created clone.

Parameters:

  pSet | Set of objects to clone
  pContainer | This object (typically a scene or document) will contain the new clones

Returns:
  true if all objects were cloned, false otherwise.

virtual void AddDependents | ( | CloneSet & | pSet,
|  | const FbxObject * | pObject,
|  | const CloneSetElement & | pCloneOptions = `CloneSetElement()`,
|  | FbxCriteria | pTypes = `FbxCriteria::ObjectType(FbxObject::ClassId)`,
|  | int | pDepth = `sMaximumCloneDepth`
| ) |  | const `[virtual]`

Search for all occurrences

Add all dependents of the given object to the CloneSet.

Dependents of items already in the set are ignored to prevent infinite recursion on cyclic dependencies.

Parameters:

  pSet | The set to add items.
  pObject | Object to add dependents to
  pCloneOptions |
  pTypes | Types of dependent objects to consider
  pDepth | Maximum recursive depth. Valid range is [0,sMaximumCloneDepth]

bool CloneConnections | ( | CloneSet::RecordType * | pIterator,
|  | const CloneSet & | pSet
| ) |  | const `[protected]`

Search for all occurrences

## Member Data Documentation

const int sMaximumCloneDepth `[static]`

Search for all occurrences

Maximum depth to clone dependents.

Definition at line 53 of file fbxclonemanager.h.

const int sConnectToOriginal `[static]`

Search for all occurrences

Connect to objects that are connected to original object.

This is a flag to mSrcPolicy or mExternalDstPolicy.

Definition at line 58 of file fbxclonemanager.h.

const int sConnectToClone `[static]`

Search for all occurrences

Connect to clones of objects that are connected to original object.

(only if those original objects are also in the clone set) This is a flag to mSrcPolicy.

Definition at line 64 of file fbxclonemanager.h.

The documentation for this class was generated from the following file:

- fbxsdk/utils/fbxclonemanager.h

FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager
FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager FbxCloneManager