Public Types | Public Member Functions | Static Public Member Functions

IObjXRefManager8 Class Reference

This reference page is linked to from the following overview topics: XRef Scenes and Objects.


Search for all occurrences

Detailed Description

Class for managing object xrefs.

This interface allows for creating, destroying and managing xref records and xref items. Scene entities such as objects and materials must be xrefed using methods of this interface. Information related to xref operation and the xref items (IXRefItem) themselves are stored in xref records (IObjXRefRecord). The object xref manager must also be used for modifying and deleting xref items and records, in order to ensure the consistency and validity of the remaining xref data. This interface is implemented by the system (3ds max). To obtain a pointer to the object xref manager, call IObjXRefManager8::GetInstace()

Terms used with xrefs:

See also:
IObjXRefManager, IObjXRefRecord, IXRefItem
Remarks:
This interface should be used instead of IObjXRefManager.

#include <iXRefObjMgr8.h>

Inheritance diagram for IObjXRefManager8:
Inheritance graph
[legend]

List of all members.

Public Types

enum   {
  kfpRecordCount, kfpGetRecord, kfpFindRecord, kfpRemoveRecordFromScene,
  kfpMergeRecordIntoScene, kfpSetRecordSrcFile, kfpUpdateAllRecords, kfpSetXRefItemSrcName,
  kfpSetProxyItemSrcName, kfpSetXRefItemSrcFile, kfpSetProxyItemSrcFile, kfpRemoveXRefsFromScene,
  kfpMergeXRefsIntoScene, kfpAddXRefItemsToXRefRecord, kfpAddXRefItemsFromFile, kfpCanCombineRecords,
  kfpCombineRecords, kfpApplyXRefMaterialsToXRefObjects, kfpGetDupObjNameAction, kfpSetDupObjNameAction,
  kfpGetDupMtlNameAction, kfpSetDupMtlNameAction, kfpIsNodeXRefed, kfpApplyXRefControllersToXRefObjects,
  kfpResetXRefControllersPRSOffset, kfpCanResetXRefControllersPRSOffset, kfpGetMergeTransforms, kfpSetMergeTransforms,
  kfpGetMergeMaterials, kfpSetMergeMaterials, kfpGetMergeManipulators, kfpSetMergeManipulators,
  kfpGetMergeModifiers, kfpSetMergeModifiers, kfpGetIncludeAll, kfpSetIncludeAll,
  kfpGetAutoUpdate, kfpSetAutoUpdate
}
 

Function IDs used by function publishing.

More...
enum   FPEnums { kfpXrefOptions, kfpDupNodeNameActions, kfpDupMaterialNameActions, kfpXrefModifierOptions }
 

IDs of enumeration types used by function published methods.

More...

Public Member Functions

BEGIN_FUNCTION_MAP  RO_PROP_FN (kfpRecordCount, RecordCount, TYPE_DWORD)
  PROP_FNS (kfpGetDupObjNameAction, GetDupObjNameAction, kfpSetDupObjNameAction, SetDupObjNameAction, TYPE_ENUM)
  PROP_FNS (kfpGetDupMtlNameAction, GetDupMtlNameAction, kfpSetDupMtlNameAction, SetDupMtlNameAction, TYPE_ENUM)
  FN_1 (kfpGetRecord, TYPE_INTERFACE, GetRecord, TYPE_INDEX)
  FN_1 (kfpFindRecord, TYPE_INTERFACE, FindRecord, TYPE_DWORD)
  FN_1 (kfpRemoveRecordFromScene, TYPE_bool, FPRemoveRecordFromScene, TYPE_INTERFACE)
  FN_1 (kfpMergeRecordIntoScene, TYPE_bool, FPMergeRecordIntoScene, TYPE_INTERFACE)
  FN_2 (kfpSetRecordSrcFile, TYPE_bool, FPSetRecordSrcFile, TYPE_INTERFACE, TYPE_FILENAME)
  FN_0 (kfpUpdateAllRecords, TYPE_bool, UpdateAllRecords)
  FN_2 (kfpSetXRefItemSrcName, TYPE_bool, SetXRefItemSrcName, TYPE_REFTARG_BR, TYPE_STRING)
  FN_2 (kfpSetProxyItemSrcName, TYPE_bool, SetProxyItemSrcName, TYPE_REFTARG_BR, TYPE_STRING)
  FN_2 (kfpSetXRefItemSrcFile, TYPE_bool, FPSetXRefItemSrcFile, TYPE_REFTARG_BR, TYPE_FILENAME)
  FN_2 (kfpSetProxyItemSrcFile, TYPE_bool, FPSetProxyItemSrcFile, TYPE_REFTARG_BR, TYPE_FILENAME)
  FN_1 (kfpRemoveXRefsFromScene, TYPE_bool, RemoveXRefItemsFromScene, TYPE_REFTARG_TAB_BR)
  FN_1 (kfpMergeXRefsIntoScene, TYPE_bool, MergeXRefItemsIntoScene, TYPE_REFTARG_TAB_BR)
  FN_3 (kfpAddXRefItemsToXRefRecord, TYPE_bool, FPAddXRefItemsToXRefRecord, TYPE_INTERFACE, TYPE_bool, TYPE_STRING_TAB)
  FN_4 (kfpAddXRefItemsFromFile, TYPE_INTERFACE, FPAddXRefItemsFromFile, TYPE_FILENAME, TYPE_bool, TYPE_STRING_TAB, TYPE_ENUM_TAB_BR)
  FN_2 (kfpCanCombineRecords, TYPE_bool, FPCanCombineRecords, TYPE_INTERFACE, TYPE_INTERFACE)
  FN_1 (kfpCombineRecords, TYPE_INTERFACE, FPCombineRecords, TYPE_INTERFACE_TAB_BR)
  VFN_1 (kfpApplyXRefMaterialsToXRefObjects, ApplyXRefMaterialsToXRefObjects, TYPE_REFTARG_TAB_BR)
  FN_1 (kfpIsNodeXRefed, TYPE_INTERFACE, FPIsNodeXRefed, TYPE_INODE)
  VFN_1 (kfpApplyXRefControllersToXRefObjects, ApplyXRefControllersToXRefObjects, TYPE_REFTARG_TAB_BR)
  FN_1 (kfpResetXRefControllersPRSOffset, TYPE_bool, ResetXRefControllersPRSOffset, TYPE_REFTARG_TAB_BR)
  FN_1 (kfpCanResetXRefControllersPRSOffset, TYPE_bool, CanResetXRefControllersPRSOffset, TYPE_REFTARG_BR)
  PROP_FNS (kfpGetMergeTransforms, GetMergeTransforms, kfpSetMergeTransforms, SetMergeTransforms, TYPE_bool)
  PROP_FNS (kfpGetMergeMaterials, GetMergeMaterials, kfpSetMergeMaterials, SetMergeMaterials, TYPE_bool)
  PROP_FNS (kfpGetMergeManipulators, GetMergeManipulators, kfpSetMergeManipulators, SetMergeManipulators, TYPE_bool)
  PROP_FNS (kfpGetMergeModifiers, GetMergeModifiers, kfpSetMergeModifiers, SetMergeModifiers, TYPE_ENUM)
  PROP_FNS (kfpGetIncludeAll, GetIncludeAll, kfpSetIncludeAll, SetIncludeAll, TYPE_bool)
  PROP_FNS (kfpGetAutoUpdate, GetAutoUpdate, kfpSetAutoUpdate, SetAutoUpdate, TYPE_bool)
XRef Record Management
virtual unsigned int  RecordCount () const =0
  Retrieves the number of object xref records.
virtual IObjXRefRecord GetRecord (unsigned int i) const =0
  Retrieves the i-th xref record.
virtual IObjXRefRecord FindRecord (XRefRecordHandle xrefRecHandle) const =0
  Retrieves an xref record based on its unique handle.
virtual bool  CanCombineRecords (const IObjXRefRecord &firstRecord, const IObjXRefRecord &secondRecord) const =0
  Determines whether two xref records can be combined.
virtual IObjXRefRecord CombineRecords (Tab< IObjXRefRecord * > &xrefRecords)=0
  Combines several xref records into one single record.
virtual bool  RemoveRecordFromScene (const IObjXRefRecord &xrefRecord)=0
  Removes an xref record from the scene.
virtual bool  MergeRecordIntoScene (const IObjXRefRecord &xrefRecord)=0
  Merges an xref record into the scene.
virtual bool  SetRecordSrcFile (IObjXRefRecord &xrefRecord, const MaxSDK::AssetManagement::AssetUser &srcFileName)=0
  Sets a new file path and name for the specified xref record.
virtual bool  UpdateAllRecords ()=0
  Updates all xref records.
XRef Item Management
virtual IObjXRefRecord AddXRefItemsFromFile (const MaxSDK::AssetManagement::AssetUser &srcFileName, bool promptObjNames, const Tab< MCHAR * > *objNames, unsigned int xrefOptions)=0
  XRefs objects from the specified source file.
virtual bool  AddXRefItemsToXRefRecord (IObjXRefRecord &xrefRecord, bool promptObjNames, const Tab< MCHAR * > *objNames)=0
  Adds new xref items to an existent xref record from the record's source file.
virtual bool  RemoveXRefItemsFromScene (const Tab< ReferenceTarget * > &xrefItems)=0
  Removes the specified xref items from the scene.
virtual bool  MergeXRefItemsIntoScene (const Tab< ReferenceTarget * > &xrefItems)=0
  Merges the specified xref items into the scene.
virtual void  ApplyXRefMaterialsToXRefObjects (const Tab< ReferenceTarget * > &objectXRefItems)=0
  Applies or re-applies an xref material to a list of xref objects.
virtual void  ApplyXRefControllersToXRefObjects (const Tab< ReferenceTarget * > &objectXRefItems)=0
  Applies or re-applies an xref controller to a list of xref objects.
virtual bool  CanResetXRefControllersPRSOffset (ReferenceTarget &inXRefItem) const =0
  Determines whether an Item can have its Offset matrix being reset.
virtual bool  ResetXRefControllersPRSOffset (const Tab< ReferenceTarget * > &inXRefItems)=0
  Set XRef controllers' offset matrix back to identity, and if any, set the corresponding source controller's transformation matrix accordingly.
virtual bool  SetXRefItemSrcName (ReferenceTarget &xrefItem, const MCHAR *srcItemName)=0
  Sets a new scene entity for the specified xref item.
virtual bool  SetProxyItemSrcName (ReferenceTarget &xrefProxy, const MCHAR *proxyName)=0
  Sets a new scene entity for the specified xref proxy.
virtual bool  SetXRefItemSrcFile (ReferenceTarget &xrefItem, const MaxSDK::AssetManagement::AssetUser &srcAsset)=0
  Sets a new file for the specified xref item.
virtual bool  SetProxyItemSrcFile (ReferenceTarget &xrefProxy, const MaxSDK::AssetManagement::AssetUser &proxyAsset)=0
  Sets a new file for the specified xref proxy.
Miscellaneous
virtual unsigned int  GetDupObjNameAction () const =0
  Gets the action taken during xrefing when a source object has a name that is already used by a master scene object.
virtual void  SetDupObjNameAction (unsigned int action)=0
  Sets the action to be taken during xrefing when a source object has a name that is already used by a master scene object.
virtual unsigned int  GetDupMtlNameAction () const =0
  Gets the action taken during xrefing when a source material has a name that is already used by a master scene material.
virtual void  SetDupMtlNameAction (unsigned int action)=0
  Gets the action taken during xrefing when a source material has a name that is already used by a master scene material.
virtual IXRefObject8 IsNodeXRefed (INode &node) const =0
  Determines if a node is xrefed.
XRef options

These functions affect the default settings for creating records through the UI.

SDK or maxscript methods to create xrefs (

See also:
AddXRefItemsFromFile) are unaffected.
virtual void  SetMergeTransforms (bool in_merge)=0
  Sets the option of merging the transform controller of nodes when xrefing objects.
virtual bool  GetMergeTransforms () const =0
  Returns the current setting of whether the transform controllers of nodes are merged when xrefing objects.
virtual void  SetMergeMaterials (bool in_merge)=0
  Sets the option of merging the materials of nodes when xrefing objects.
virtual bool  GetMergeMaterials () const =0
  Returns the option of merging the material of nodes when xrefing objects.
virtual void  SetMergeManipulators (bool in_merge)=0
  Sets the option of merging the manipulators of nodes when xrefing objects.
virtual bool  GetMergeManipulators () const =0
  Returns the option of merging the material of nodes when xrefing objects.
virtual void  SetMergeModifiers (int in_merge)=0
  Sets the option of merging the modifiers of nodes when xrefing objects.
virtual int  GetMergeModifiers () const =0
  Sets the handling of modifiers of nodes when xrefing objects.
virtual void  SetIncludeAll (bool in_include)=0
  Sets whether all nodes of a file will be added to a new xref record.
virtual bool  GetIncludeAll () const =0
  Returns the option of merging the material of nodes when xrefing objects.
virtual void  SetAutoUpdate (bool in_autoUpdate)=0
  Sets whether the content of the xref record will update on source file update.
virtual bool  GetAutoUpdate () const =0
  Returns the option of merging the material of nodes when xrefing objects.

Static Public Member Functions

static IObjXRefManager8 GetInstance ()
  Retrieves a pointer to the IObjXRefManager8 interface.

Member Enumeration Documentation

anonymous enum

Function IDs used by function publishing.

Enumerator:
kfpRecordCount 
kfpGetRecord 
kfpFindRecord 
kfpRemoveRecordFromScene 
kfpMergeRecordIntoScene 
kfpSetRecordSrcFile 
kfpUpdateAllRecords 
kfpSetXRefItemSrcName 
kfpSetProxyItemSrcName 
kfpSetXRefItemSrcFile 
kfpSetProxyItemSrcFile 
kfpRemoveXRefsFromScene 
kfpMergeXRefsIntoScene 
kfpAddXRefItemsToXRefRecord 
kfpAddXRefItemsFromFile 
kfpCanCombineRecords 
kfpCombineRecords 
kfpApplyXRefMaterialsToXRefObjects 
kfpGetDupObjNameAction 
kfpSetDupObjNameAction 
kfpGetDupMtlNameAction 
kfpSetDupMtlNameAction 
kfpIsNodeXRefed 
kfpApplyXRefControllersToXRefObjects 
kfpResetXRefControllersPRSOffset 
kfpCanResetXRefControllersPRSOffset 
kfpGetMergeTransforms 
kfpSetMergeTransforms 
kfpGetMergeMaterials 
kfpSetMergeMaterials 
kfpGetMergeManipulators 
kfpSetMergeManipulators 
kfpGetMergeModifiers 
kfpSetMergeModifiers 
kfpGetIncludeAll 
kfpSetIncludeAll 
kfpGetAutoUpdate 
kfpSetAutoUpdate 
enum FPEnums

IDs of enumeration types used by function published methods.

Enumerator:
kfpXrefOptions 
kfpDupNodeNameActions 
kfpDupMaterialNameActions 
kfpXrefModifierOptions 

Member Function Documentation

virtual unsigned int RecordCount ( ) const [pure virtual]

Retrieves the number of object xref records.

Returns:
- the number of object xref records
virtual IObjXRefRecord* GetRecord ( unsigned int  i ) const [pure virtual]

Retrieves the i-th xref record.

Parameters:
[in] i - The index of the xref record to retrieve.
Returns:
- Pointer to the i-th xref record. NULL if parameter i is greater than the number of currently stored xref records.
virtual IObjXRefRecord* FindRecord ( XRefRecordHandle  xrefRecHandle ) const [pure virtual]

Retrieves an xref record based on its unique handle.

Parameters:
[in] xrefRecHandle - The xref record handle based on which to retrieve an xref record.
Returns:
- The record with the specified handle, or NULL if no record with the specified handle exists.
See also:
XRefRecordHandle
virtual bool CanCombineRecords ( const IObjXRefRecord firstRecord,
const IObjXRefRecord secondRecord 
) const [pure virtual]

Determines whether two xref records can be combined.

The specified xref records must meet the following criteria:

  • Must be top-level (non-nested) xref records (see IObjXRefRecord::GetParentRecords),
  • Have the same source file (see IObjXRefRecord::GetSrcFile),
  • Have the same creation flags (see IObjXRefRecord::GetXRefOptions) The Include All, Auto-Update and Enabled flags of the xref records that are combined do not need to be the same, since these flags can be modified any time.
    Parameters:
    [in] firstRecord - The first record to be combined with the second one
    [in] secondRecord - The second record to be combined with the first one
    Returns:
    true if the two records can be combined, false otherwise.
virtual IObjXRefRecord* CombineRecords ( Tab< IObjXRefRecord * > &  xrefRecords ) [pure virtual]

Combines several xref records into one single record.

The xref items of all xref records that meet the criteria described at IObjXRefManager8::CanCombineRecords will be combined into the first xref record in the list that is a top level xref record. All resulting empty xref records will be deleted.

Parameters:
[in] xrefRecords - The xref records to be combined.
Returns:
The xref record that holds the xref items of all combined records, or NULL if none of the records was combined.
virtual bool RemoveRecordFromScene ( const IObjXRefRecord xrefRecord ) [pure virtual]

Removes an xref record from the scene.

All xref items of this record are removed from the scene and the record is destroyed.

Parameters:
[in] xrefRecord - The xref record to be removed
Returns:
- true if the operation was successful, false otherwise
virtual bool MergeRecordIntoScene ( const IObjXRefRecord xrefRecord ) [pure virtual]

Merges an xref record into the scene.

All xref items of this record are merged into the scene and the record is destroyed.

Parameters:
[in] xrefRecord - The xref record to be merged
Returns:
- true if the operation was successful, false otherwise
virtual bool SetRecordSrcFile ( IObjXRefRecord xrefRecord,
const MaxSDK::AssetManagement::AssetUser srcFileName 
) [pure virtual]

Sets a new file path and name for the specified xref record.

Call this method in order to change the source file of all xref items within a top-level (non-nested) xref record.

Parameters:
[in] xrefRecord - The top-level xref record to be changed. This xref record becomes invalid once this method returns, thus client code should not try to use it.
[in] srcFileName - The path and name of the new source file. Must be a non-empty string. This method checks that the supplied file path and name is valid for xrefing.
Returns:
- true if the xref record has been successfully updated, false otherwise.
virtual bool UpdateAllRecords ( ) [pure virtual]

Updates all xref records.

This method updates the up-to-date state of all xref records that are enabled and not auto-updating. Then it reloads all the records that are out-of-date, bringing them all up-to-date. Nested records are also reloaded.

Returns:
- true if at least one xref record has been reloaded, false otherwise.
virtual IObjXRefRecord* AddXRefItemsFromFile ( const MaxSDK::AssetManagement::AssetUser srcFileName,
bool  promptObjNames,
const Tab< MCHAR * > *  objNames,
unsigned int  xrefOptions 
) [pure virtual]

XRefs objects from the specified source file.

This method allows for xrefing scene entities from the specified source file. The resulting xref items are stored in a new xref record. The xrefing of scene entities is driven by object names. Currently only objects and materials applied to objects can be xrefed. In order to xref objects from the source file, their names need to be specified via the objNames parameter. In order to xref all objects from the specified file, turn off prompting for objects to be xrefed and pass no object names (pass NULL as objNames or an empty list). This method uses the path resolution rules implemented by IPathConfigMgr::GetFullFilePath to resolve the supplied path for the source file name. It also checks whether the source file is valid for xrefing: it is not xrefed already directly or indirectly (as a nested xref record).

Parameters:
[in] srcFileName - The path and name of the file the objects to be xrefed live in.
[in] promptObjNames - If true, the user can interactively specify the objects to get xrefed, and the objNames parameter is ignored. If false, the objNames parameter controls what gets xrefed.
[in] objNames - A list with names of objects (nodes) to xref. If no names are specified or this parameter is NULL, the promptObjNames parameter controls the behaviour of the method.
[in] xrefOptions - Options gouverning how objects are xrefed. See Object Xref Options for a full list of available options.
Returns:
- Pointer to the newly created xref record, or NULL if the operation was not successful.
See also:
IPathConfigMgr::GetFullFilePath
virtual bool AddXRefItemsToXRefRecord ( IObjXRefRecord xrefRecord,
bool  promptObjNames,
const Tab< MCHAR * > *  objNames 
) [pure virtual]

Adds new xref items to an existent xref record from the record's source file.

In order to xref only certain objects, specify their name via the objNames parameter. In order to xref all objects not xrefed yet, leave the objNames parameter NULL. The xref options and the source file name of the specified xref record are used to create the new xref objects. New xref items can be added only to top-level xref records that are resolved (not unresolved). See IObjXRefRecord for a discussion of nested xref records.

Parameters:
[in] xrefRecord- The xref record to which the new xref objects will be added
[in] promptObjNames - If true, the user can interactively specify the objects to get xrefed, and the objNames parameter is ignored. If false, the objNames parameter controls what gets xrefed.
[in] objNames - A list with names of objects (nodes) to xref. If no names are specified or this parameter is NULL, all objects in the source file that aren't xrefed yet will get xrefed. Otherwise, the specified objects are xrefed only, whether already xrefed or not.
Returns:
- true if the operation was successful, false otherwise.
See also:
IObjXRefRecord::XRefModOptions, IPathConfigMgr::GetFullFilePath
virtual bool RemoveXRefItemsFromScene ( const Tab< ReferenceTarget * > &  xrefItems ) [pure virtual]

Removes the specified xref items from the scene.

This method simplifies the task of removing several xref items at once.

  • Removing an xref object from the scene, removes all the nodes that reference it.
  • Xref Atmospherics referencing xref gizmos are removed from the scene when all their gizmos are removed.
  • An xref material is not removed from the scene by this method; it is rather merged into the scene. It is not necessary to pass as parameters all nested xref items wrapping a source scene entity. It sufices to pass only one xref item in the chain of nested xref items. This method will remove all parent and child items of the specified xref item.
    Parameters:
    [in] xrefItems - The xref items to be removed from the scene
    Returns:
    - True if the operation was successful, false otherwise
virtual bool MergeXRefItemsIntoScene ( const Tab< ReferenceTarget * > &  xrefItems ) [pure virtual]

Merges the specified xref items into the scene.

This method merges the source scene entities of the specified xref items into the current scene by.

  • Merging an xref object into the scene, leaves all the nodes that reference it into the scene and the object can be edited in the modifier panel.
  • Xref Atmospherics referencing xrefed gizmos that are merged, are also merged into the scene.
  • Merging xref materials into the current scene leaves the source material on the nodes to which the xref material was applied.
    It is not necessary to pass as parameters all nested xref items wrapping a source scene entity. It sufices to pass only one xref item in the chain of nested xref items. This method will merge all parent and child items of the specified xref item.
    Parameters:
    [in] xrefItems - The xref items to be merged into the scene
    Returns:
    - True if the operation was successful, false otherwise
virtual void ApplyXRefMaterialsToXRefObjects ( const Tab< ReferenceTarget * > &  objectXRefItems ) [pure virtual]

Applies or re-applies an xref material to a list of xref objects.

This method iterates through the list of xref objects and applies/re-applies an xref material on each node that references each object. The xref material that is applied will reference the material on the xref object's source. If an appropriate xref material already exists in the record that contains the xref object, it is re-used; otherwise, a new xref material is created and added to the record. Note: If the source object has no material, then this method will _remove_ any existing material on the xref object's nodes.

Parameters:
[in] objectXRefItems - The xref objects on which the xref material is to be applied.
virtual void ApplyXRefControllersToXRefObjects ( const Tab< ReferenceTarget * > &  objectXRefItems ) [pure virtual]

Applies or re-applies an xref controller to a list of xref objects.

This method iterates through the list of xref objects and applies/re-applies an xref controller on each node that references each object. The xref controller that is applied will reference the controller on the xref object's source. If an appropriate xref controller already exists in the record that contains the xref object, it is re-used; otherwise, a new xref controller is created and added to the record.

Parameters:
objectXRefItems - The xref objects on which the xref controller is to be applied.
virtual bool CanResetXRefControllersPRSOffset ( ReferenceTarget inXRefItem ) const [pure virtual]

Determines whether an Item can have its Offset matrix being reset.

For this to be true, the given xref item must meet the following criteria:

  • Must be a controller,
  • Must be from a top-level (non-nested) xref record (see IObjXRefRecord::GetParentRecords)
    Parameters:
    inXRefItem - The XRef item we want to test against.
    Returns:
    true if the given item is an XRef controller for which the offset can be reset, false otherwise.
virtual bool ResetXRefControllersPRSOffset ( const Tab< ReferenceTarget * > &  inXRefItems ) [pure virtual]

Set XRef controllers' offset matrix back to identity, and if any, set the corresponding source controller's transformation matrix accordingly.

This method iterates through the list of XRef items, and for any non-nested XRef controller that is found, it will set its offset matrix back to identity. If the XRef controller is resolved, i.e. it has a source controller, it will also set this one's transformation matrix accordingly.

Parameters:
inXRefItems - Collected set of XRef items.
Returns:
true if at least one XRef controller has its offset been reset, false otherwise.
virtual bool SetXRefItemSrcName ( ReferenceTarget xrefItem,
const MCHAR *  srcItemName 
) [pure virtual]

Sets a new scene entity for the specified xref item.

Call this method in order to change the source scene entity being xrefed by an xref item. The specified scene entity will be xrefed from the scene the xref record owning the the specified xref item is pointing to.

Note:
XRef Atmospherics are should not be modified using this method since they are xrefed and updated when their xrefed gizmos are modified. Thus, this method ignores XRef Atmospherics and return false.
Parameters:
[in] xrefItem - The xref item to be changed. XRef Atmospherics should not be passed as parameter.
[in] srcItemName - The name of the new source entity. Must be a non-empty string
Returns:
- true if the xref item has been successfully updated, false otherwise. If the xref item has not been successfully updated, IXRefItem::GetSrcItem will return NULL.
See also:
IObjXRefRecord::Update, IXRefItem::GetSrcItem
virtual bool SetProxyItemSrcName ( ReferenceTarget xrefProxy,
const MCHAR *  proxyName 
) [pure virtual]

Sets a new scene entity for the specified xref proxy.

Call this method in order to change the proxy scene entity being xrefed by an xref proxy. The specified scene entity will be xrefed from the scene the xref record owning the the specified xref proxy is pointing to.

Parameters:
[in] xrefProxy - The xref proxy to be changed.
[in] proxyName - The name of the new proxy scene entity. Must be a non-empty string
Returns:
- true if the proxy has been successfully updated, false otherwise. If the proxy has not been successfully updated, IXRefItem::GetSrcItem will return NULL.
See also:
IObjXRefRecord::Update, IXRefItem::GetSrcItem
virtual bool SetXRefItemSrcFile ( ReferenceTarget xrefItem,
const MaxSDK::AssetManagement::AssetUser srcAsset 
) [pure virtual]

Sets a new file for the specified xref item.

Call this method in order to change the source file a scene entity is xrefed from. Xref records could be removed if they become empty as a result of executing this method.

Parameters:
[in] xrefItem - The xref item to be changed.
[in] srcAsset - The new source file. This method checks that the supplied file is valid for xrefing.
Returns:
- true if the source item has been successfully updated, false otherwise. If the source item has not been successfully updated, IXRefItem::GetSrcItem will return NULL.
See also:
IObjXRefRecord::Update, IXRefItem::GetSrcItem
virtual bool SetProxyItemSrcFile ( ReferenceTarget xrefProxy,
const MaxSDK::AssetManagement::AssetUser proxyAsset 
) [pure virtual]

Sets a new file for the specified xref proxy.

Call this method in order to change the file a proxy scene entity is xrefed from. Xref records could be removed if they become empty as a result of executing this method.

Parameters:
[in] xrefProxy - The xref proxy to be changed.
[in] proxyAsset - The new proxy file. This method checks that the supplied file is valid for xrefing.
Returns:
- true if the xref proxy has been successfully updated, false otherwise. If the source item has not been successfully updated, IXRefItem::GetSrcItem will return NULL.
See also:
IObjXRefRecord::Update, IXRefItem::GetSrcItem
virtual unsigned int GetDupObjNameAction ( ) const [pure virtual]

Gets the action taken during xrefing when a source object has a name that is already used by a master scene object.

Returns:
One of the action values listed under Duplicate Node Name Actions
virtual void SetDupObjNameAction ( unsigned int  action ) [pure virtual]

Sets the action to be taken during xrefing when a source object has a name that is already used by a master scene object.

Parameters:
[in] action - One of the action values listed under Duplicate Node Name Actions
virtual unsigned int GetDupMtlNameAction ( ) const [pure virtual]

Gets the action taken during xrefing when a source material has a name that is already used by a master scene material.

Returns:
One of the action values listed under Duplicate Material Name Actions
virtual void SetDupMtlNameAction ( unsigned int  action ) [pure virtual]

Gets the action taken during xrefing when a source material has a name that is already used by a master scene material.

Parameters:
[in] action - One of the action values listed under Duplicate Material Name Actions
virtual IXRefObject8* IsNodeXRefed ( INode node ) const [pure virtual]

Determines if a node is xrefed.

A node is considered to be xrefed if any part of it's geometry pipeline is xrefed.

Parameters:
[in] node - The node to be checked whether it's an xref
Returns:
- Pointer to the first xref object in the geometry pipeline of the node. Use IXRefObject8::GetInterface(InterfaceServer& is) to get an IXRefObject8 pointer from the returned interface pointer.
virtual void SetMergeTransforms ( bool  in_merge ) [pure virtual]

Sets the option of merging the transform controller of nodes when xrefing objects.

Merged controllers (as opposed to xref'd controllers) will be accessible and modifiable in the master scene. Some references between merged and xref'd items of xref'd nodes may be lost.

Parameters:
[in] in_merge - whether nodes will have merged controllers in the master scene.
virtual bool GetMergeTransforms ( ) const [pure virtual]

Returns the current setting of whether the transform controllers of nodes are merged when xrefing objects.

virtual void SetMergeMaterials ( bool  in_merge ) [pure virtual]

Sets the option of merging the materials of nodes when xrefing objects.

Merged materials (as opposed to xref'd materials) will be accessible and modifiable in the master scene. Some references between merged and xref'd items of xref'd nodes may be lost.

Parameters:
[in] in_merge - whether nodes will have merged materials in the master scene.
virtual bool GetMergeMaterials ( ) const [pure virtual]

Returns the option of merging the material of nodes when xrefing objects.

virtual void SetMergeManipulators ( bool  in_merge ) [pure virtual]

Sets the option of merging the manipulators of nodes when xrefing objects.

Merged manipulators (as opposed to xrefed manipulators) will be accessible and modifiable in the master scene. Some references between merged and xrefed items of xref'd nodes may be lost.

Parameters:
[in] in_merge - whether nodes will have merged manipulators in the master scene.
virtual bool GetMergeManipulators ( ) const [pure virtual]

Returns the option of merging the material of nodes when xrefing objects.

virtual void SetMergeModifiers ( int  in_merge ) [pure virtual]

Sets the option of merging the modifiers of nodes when xrefing objects.

Merged modifiers (as opposed to xref'd modifiers) will be accessible and modifiable in the master scene. Some references between merged and xref'd items of xref'd nodes may be lost.

Parameters:
[in] in_merge - how modifiers will appear in the master scene. Possible values are (Object Xref Options ):
  • XREF_XREF_MODIFIERS: modifiers will be contained within the XRef object. They will not be accessible in the modifier stack and therefore will not be editable.
  • XREF_MERGE_MODIFIERS: modifiers on the XRef object (in the original file) are merged into the scene. They can be changed in the modifier stack. However, these changes are not reflected back into the XRef file.
  • XREF_DROP_MODIFIERS: any modifiers assigned to the XRef object (in the original file) are disregarded and the base object is brought into the scene as an XRef object
virtual int GetMergeModifiers ( ) const [pure virtual]

Sets the handling of modifiers of nodes when xrefing objects.

virtual void SetIncludeAll ( bool  in_include ) [pure virtual]

Sets whether all nodes of a file will be added to a new xref record.

Sets whether all nodes of a file will be added to a new xref record, or if the user will pick among the nodes in that scene through a dialog.

Parameters:
[in] in_include - whether all nodes will be added to the record.
virtual bool GetIncludeAll ( ) const [pure virtual]

Returns the option of merging the material of nodes when xrefing objects.

virtual void SetAutoUpdate ( bool  in_autoUpdate ) [pure virtual]

Sets whether the content of the xref record will update on source file update.

Sets whether the content of the xref record will update on source file update or only on demand.

Parameters:
[in] in_autoUpdate - whether the record udpdates automatically or on demand.
virtual bool GetAutoUpdate ( ) const [pure virtual]

Returns the option of merging the material of nodes when xrefing objects.

static IObjXRefManager8* GetInstance ( ) [inline, static]

Retrieves a pointer to the IObjXRefManager8 interface.

Returns:
IObjXRefManager8* - pointer to the object xref manager
                                           {
        return static_cast<IObjXRefManager8*>(GetCOREInterface(IID_OBJ_XREF_MGR8)); 
    }
BEGIN_FUNCTION_MAP RO_PROP_FN ( kfpRecordCount  ,
RecordCount  ,
TYPE_DWORD   
)
PROP_FNS ( kfpGetDupObjNameAction  ,
GetDupObjNameAction  ,
kfpSetDupObjNameAction  ,
SetDupObjNameAction  ,
TYPE_ENUM   
)
PROP_FNS ( kfpGetDupMtlNameAction  ,
GetDupMtlNameAction  ,
kfpSetDupMtlNameAction  ,
SetDupMtlNameAction  ,
TYPE_ENUM   
)
FN_1 ( kfpGetRecord  ,
TYPE_INTERFACE  ,
GetRecord  ,
TYPE_INDEX   
)
FN_1 ( kfpFindRecord  ,
TYPE_INTERFACE  ,
FindRecord  ,
TYPE_DWORD   
)
FN_1 ( kfpRemoveRecordFromScene  ,
TYPE_bool  ,
FPRemoveRecordFromScene  ,
TYPE_INTERFACE   
)
FN_1 ( kfpMergeRecordIntoScene  ,
TYPE_bool  ,
FPMergeRecordIntoScene  ,
TYPE_INTERFACE   
)
FN_2 ( kfpSetRecordSrcFile  ,
TYPE_bool  ,
FPSetRecordSrcFile  ,
TYPE_INTERFACE  ,
TYPE_FILENAME   
)
FN_0 ( kfpUpdateAllRecords  ,
TYPE_bool  ,
UpdateAllRecords   
)
FN_2 ( kfpSetXRefItemSrcName  ,
TYPE_bool  ,
SetXRefItemSrcName  ,
TYPE_REFTARG_BR  ,
TYPE_STRING   
)
FN_2 ( kfpSetProxyItemSrcName  ,
TYPE_bool  ,
SetProxyItemSrcName  ,
TYPE_REFTARG_BR  ,
TYPE_STRING   
)
FN_2 ( kfpSetXRefItemSrcFile  ,
TYPE_bool  ,
FPSetXRefItemSrcFile  ,
TYPE_REFTARG_BR  ,
TYPE_FILENAME   
)
FN_2 ( kfpSetProxyItemSrcFile  ,
TYPE_bool  ,
FPSetProxyItemSrcFile  ,
TYPE_REFTARG_BR  ,
TYPE_FILENAME   
)
FN_1 ( kfpRemoveXRefsFromScene  ,
TYPE_bool  ,
RemoveXRefItemsFromScene  ,
TYPE_REFTARG_TAB_BR   
)
FN_1 ( kfpMergeXRefsIntoScene  ,
TYPE_bool  ,
MergeXRefItemsIntoScene  ,
TYPE_REFTARG_TAB_BR   
)
FN_3 ( kfpAddXRefItemsToXRefRecord  ,
TYPE_bool  ,
FPAddXRefItemsToXRefRecord  ,
TYPE_INTERFACE  ,
TYPE_bool  ,
TYPE_STRING_TAB   
)
FN_4 ( kfpAddXRefItemsFromFile  ,
TYPE_INTERFACE  ,
FPAddXRefItemsFromFile  ,
TYPE_FILENAME  ,
TYPE_bool  ,
TYPE_STRING_TAB  ,
TYPE_ENUM_TAB_BR   
)
FN_2 ( kfpCanCombineRecords  ,
TYPE_bool  ,
FPCanCombineRecords  ,
TYPE_INTERFACE  ,
TYPE_INTERFACE   
)
FN_1 ( kfpCombineRecords  ,
TYPE_INTERFACE  ,
FPCombineRecords  ,
TYPE_INTERFACE_TAB_BR   
)
VFN_1 ( kfpApplyXRefMaterialsToXRefObjects  ,
ApplyXRefMaterialsToXRefObjects  ,
TYPE_REFTARG_TAB_BR   
)
FN_1 ( kfpIsNodeXRefed  ,
TYPE_INTERFACE  ,
FPIsNodeXRefed  ,
TYPE_INODE   
)
VFN_1 ( kfpApplyXRefControllersToXRefObjects  ,
ApplyXRefControllersToXRefObjects  ,
TYPE_REFTARG_TAB_BR   
)
FN_1 ( kfpResetXRefControllersPRSOffset  ,
TYPE_bool  ,
ResetXRefControllersPRSOffset  ,
TYPE_REFTARG_TAB_BR   
)
FN_1 ( kfpCanResetXRefControllersPRSOffset  ,
TYPE_bool  ,
CanResetXRefControllersPRSOffset  ,
TYPE_REFTARG_BR   
)
PROP_FNS ( kfpGetMergeTransforms  ,
GetMergeTransforms  ,
kfpSetMergeTransforms  ,
SetMergeTransforms  ,
TYPE_bool   
)
PROP_FNS ( kfpGetMergeMaterials  ,
GetMergeMaterials  ,
kfpSetMergeMaterials  ,
SetMergeMaterials  ,
TYPE_bool   
)
PROP_FNS ( kfpGetMergeManipulators  ,
GetMergeManipulators  ,
kfpSetMergeManipulators  ,
SetMergeManipulators  ,
TYPE_bool   
)
PROP_FNS ( kfpGetMergeModifiers  ,
GetMergeModifiers  ,
kfpSetMergeModifiers  ,
SetMergeModifiers  ,
TYPE_ENUM   
)
PROP_FNS ( kfpGetIncludeAll  ,
GetIncludeAll  ,
kfpSetIncludeAll  ,
SetIncludeAll  ,
TYPE_bool   
)
PROP_FNS ( kfpGetAutoUpdate  ,
GetAutoUpdate  ,
kfpSetAutoUpdate  ,
SetAutoUpdate  ,
TYPE_bool   
)

IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8
IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8 IObjXRefManager8