IObjXRefManager8 Class Reference

#include <iXRefObjMgr8.h>

Class 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:

  • Source file: The file from which scene entities are xrefed
  • Master file: The file into which scene entities of a source file are xrefed
  • XRef item: A master file scene entity that xrefs a specific source file scene entity
  • Source item: A source file scene entity being xrefed into a master file
  • XRef record: Data structure within the master file that holds xref items and other data describing an object xref operation or transaction
See also
IObjXRefManager, IObjXRefRecord, IXRefItem
Remarks
This interface should be used instead of IObjXRefManager.
+ Inheritance diagram for IObjXRefManager8:

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 Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 

Public Member Functions

 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. More...
 
virtual IObjXRefRecordGetRecord (unsigned int i) const =0
 Retrieves the i-th xref record. More...
 
virtual IObjXRefRecordFindRecord (XRefRecordHandle xrefRecHandle) const =0
 Retrieves an xref record based on its unique handle. More...
 
virtual bool CanCombineRecords (const IObjXRefRecord &firstRecord, const IObjXRefRecord &secondRecord) const =0
 Determines whether two xref records can be combined. More...
 
virtual IObjXRefRecordCombineRecords (Tab< IObjXRefRecord * > &xrefRecords)=0
 Combines several xref records into one single record. More...
 
virtual bool RemoveRecordFromScene (const IObjXRefRecord &xrefRecord)=0
 Removes an xref record from the scene. More...
 
virtual bool MergeRecordIntoScene (const IObjXRefRecord &xrefRecord)=0
 Merges an xref record into the scene. More...
 
virtual bool SetRecordSrcFile (IObjXRefRecord &xrefRecord, const MaxSDK::AssetManagement::AssetUser &srcFileName)=0
 Sets a new file path and name for the specified xref record. More...
 
virtual bool UpdateAllRecords ()=0
 Updates all xref records. More...
 
XRef Item Management
virtual IObjXRefRecordAddXRefItemsFromFile (const MaxSDK::AssetManagement::AssetUser &srcFileName, bool promptObjNames, const Tab< const MCHAR * > *objNames, unsigned int xrefOptions)=0
 XRefs objects from the specified source file. More...
 
virtual bool AddXRefItemsToXRefRecord (IObjXRefRecord &xrefRecord, bool promptObjNames, const Tab< const MCHAR * > *objNames)=0
 Adds new xref items to an existent xref record from the record's source file. More...
 
virtual bool RemoveXRefItemsFromScene (const Tab< ReferenceTarget * > &xrefItems)=0
 Removes the specified xref items from the scene. More...
 
virtual bool MergeXRefItemsIntoScene (const Tab< ReferenceTarget * > &xrefItems)=0
 Merges the specified xref items into the scene. More...
 
virtual void ApplyXRefMaterialsToXRefObjects (const Tab< ReferenceTarget * > &objectXRefItems)=0
 Applies or re-applies an xref material to a list of xref objects and reset its overide material. More...
 
virtual void ApplyXRefControllersToXRefObjects (const Tab< ReferenceTarget * > &objectXRefItems)=0
 Applies or re-applies an xref controller to a list of xref objects. More...
 
virtual bool CanResetXRefControllersPRSOffset (ReferenceTarget &inXRefItem) const =0
 Determines whether an Item can have its Offset matrix being reset. More...
 
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. More...
 
virtual bool SetXRefItemSrcName (ReferenceTarget &xrefItem, const MCHAR *srcItemName)=0
 Sets a new scene entity for the specified xref item. More...
 
virtual bool SetProxyItemSrcName (ReferenceTarget &xrefProxy, const MCHAR *proxyName)=0
 Sets a new scene entity for the specified xref proxy. More...
 
virtual bool SetXRefItemSrcFile (ReferenceTarget &xrefItem, const MaxSDK::AssetManagement::AssetUser &srcAsset)=0
 Sets a new file for the specified xref item. More...
 
virtual bool SetProxyItemSrcFile (ReferenceTarget &xrefProxy, const MaxSDK::AssetManagement::AssetUser &proxyAsset)=0
 Sets a new file for the specified xref proxy. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual IXRefObject8IsNodeXRefed (INode &node) const =0
 Determines if a node is xrefed. More...
 
XRef options

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

Deprecated:
Deprecated in terms of implementation as of 3ds Max 2017. Please use the function GetTracksStatus/SetTracksStatus instead.

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. More...
 
virtual bool GetMergeTransforms () const =0
 Returns the current setting of whether the transform controllers of nodes are merged when xrefing objects. More...
 
virtual void SetMergeMaterials (bool in_merge)=0
 Sets the option of merging the materials of nodes when xrefing objects. More...
 
virtual bool GetMergeMaterials () const =0
 Returns the option of merging the material of nodes when xrefing objects. More...
 
virtual void SetMergeManipulators (bool in_merge)=0
 Sets the option of merging the manipulators of nodes when xrefing objects. More...
 
virtual bool GetMergeManipulators () const =0
 Returns the option of merging manipulators when xrefing objects. More...
 
virtual void SetMergeModifiers (int in_merge)=0
 Sets the option of merging the modifiers of nodes when xrefing objects. More...
 
virtual int GetMergeModifiers () const =0
 Sets the handling of modifiers of nodes when xrefing objects. More...
 
virtual void SetIncludeAll (bool in_include)=0
 Sets whether all nodes of a file will be added to a new xref record. More...
 
virtual bool GetIncludeAll () const =0
 Returns the option of whether all nodes of a file will be added to a new xref record. More...
 
virtual void SetAutoUpdate (bool in_autoUpdate)=0
 Sets whether the content of the xref record will update on source file update. More...
 
virtual bool GetAutoUpdate () const =0
 Returns the option of whether the content of the xref record will update on source file update. More...
 
- Public Member Functions inherited from FPInterfaceDesc
CoreExport FPInterfaceDesc ()
 
CoreExport FPInterfaceDesc (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, ULONG flag,...)
 
CoreExport ~FPInterfaceDesc ()
 
virtual void Init ()
 
LifetimeType LifetimeControl ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
CoreExport void LoadDescriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *pCD, ULONG flag,...)
 
CoreExport void AppendFunction (int id,...)
 Add a new function to this interface descriptor. More...
 
CoreExport void AppendProperty (int id,...)
 Add a new property to this interface descriptor. More...
 
CoreExport void AppendEnum (int id,...)
 Add a new enum to this interface descriptor. More...
 
CoreExport void SetClassDesc (ClassDesc *i_cd)
 
CoreExport va_list check_fn (va_list ap, int id)
 
CoreExport va_list scan_fn (va_list ap, int id, int index)
 
CoreExport va_list check_prop (va_list ap, int id)
 
CoreExport va_list scan_prop (va_list ap, int id, int index)
 
CoreExport va_list check_enum (va_list ap, EnumID id)
 
CoreExport va_list scan_enum (va_list ap, EnumID id, int index)
 
FPInterfaceDescGetDesc ()
 
Interface_ID GetID ()
 
CoreExport FPFunctionDefGetFnDef (FunctionID fid)
 
ActionTableGetActionTable ()
 
CoreExport void EnableActions (BOOL onOff)
 
virtual CoreExport HINSTANCE HInstance ()
 
virtual CoreExport const MCHARGetRsrcString (StringResID id)
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Static Public Member Functions

static IObjXRefManager8GetInstance ()
 Retrieves a pointer to the IObjXRefManager8 interface. More...
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 

Additional Inherited Members

- Public Attributes inherited from FPInterfaceDesc
Interface_ID ID
 
MSTR internal_name
 
StringResID description
 
ClassDesccd
 
USHORT flags
 
Tab< FPFunctionDef * > functions
 
Tab< FPPropDef * > props
 
Tab< FPEnum * > enumerations
 
MSPluginClass * pc
 
Rolloutrollout
 
ActionTableaction_table
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPInterfaceDesc
CoreExport void load_descriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, USHORT flag, va_list ap)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 

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 
418  {
420  kfpGetRecord,
443 
444  // Nicolas Leonard April 5, 06
451  };
Definition: iXRefObjMgr8.h:422
Definition: iXRefObjMgr8.h:424
Definition: iXRefObjMgr8.h:446
Definition: iXRefObjMgr8.h:448
Definition: iXRefObjMgr8.h:437
Definition: iXRefObjMgr8.h:448
Definition: iXRefObjMgr8.h:445
Definition: iXRefObjMgr8.h:434
Definition: iXRefObjMgr8.h:450
Definition: iXRefObjMgr8.h:425
Definition: iXRefObjMgr8.h:423
Definition: iXRefObjMgr8.h:420
Definition: iXRefObjMgr8.h:427
Definition: iXRefObjMgr8.h:446
Definition: iXRefObjMgr8.h:432
Definition: iXRefObjMgr8.h:439
Definition: iXRefObjMgr8.h:445
Definition: iXRefObjMgr8.h:421
Definition: iXRefObjMgr8.h:437
Definition: iXRefObjMgr8.h:429
Definition: iXRefObjMgr8.h:438
Definition: iXRefObjMgr8.h:447
Definition: iXRefObjMgr8.h:433
Definition: iXRefObjMgr8.h:419
Definition: iXRefObjMgr8.h:438
Definition: iXRefObjMgr8.h:435
Definition: iXRefObjMgr8.h:426
Definition: iXRefObjMgr8.h:449
Definition: iXRefObjMgr8.h:447
Definition: iXRefObjMgr8.h:449
Definition: iXRefObjMgr8.h:450
Definition: iXRefObjMgr8.h:430
Definition: iXRefObjMgr8.h:431
Definition: iXRefObjMgr8.h:428
enum FPEnums

IDs of enumeration types used by function published methods.

Enumerator
kfpXrefOptions 
kfpDupNodeNameActions 
kfpDupMaterialNameActions 
kfpXrefModifierOptions 
455  {
460  };
Definition: iXRefObjMgr8.h:459
Definition: iXRefObjMgr8.h:456
Definition: iXRefObjMgr8.h:458
Definition: iXRefObjMgr8.h:457

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< const 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< const 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 and reset its overide material.

This method iterates through the list of xref objects and applies/re-applies an xref material on each node that references each object. The override material of xref material is reset as well. 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 manipulators 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 whether all nodes of a file will be added to a new xref record.

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 whether the content of the xref record will update on source file update.

static IObjXRefManager8* GetInstance ( )
inlinestatic

Retrieves a pointer to the IObjXRefManager8 interface.

Returns
IObjXRefManager8* - pointer to the object xref manager
412  {
413  return static_cast<IObjXRefManager8*>(GetCOREInterface(IID_OBJ_XREF_MGR8));
414  }
Class for managing object xrefs.
Definition: iXRefObjMgr8.h:47
CoreExport Interface * GetCOREInterface()
#define IID_OBJ_XREF_MGR8
Interface id for IObjXRefManager8.
Definition: iXRefObjMgr8.h:24
RO_PROP_FN ( kfpRecordCount  ,
RecordCount  ,
TYPE_DWORD   
)
FN_1 ( kfpGetRecord  ,
TYPE_INTERFACE  ,
GetRecord  ,
TYPE_INDEX   
)
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_2 ( kfpSetXRefItemSrcFile  ,
TYPE_bool  ,
FPSetXRefItemSrcFile  ,
TYPE_REFTARG_BR  ,
TYPE_FILENAME   
)
FN_2 ( kfpSetProxyItemSrcFile  ,
TYPE_bool  ,
FPSetProxyItemSrcFile  ,
TYPE_REFTARG_BR  ,
TYPE_FILENAME   
)
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   
)
FN_1 ( kfpIsNodeXRefed  ,
TYPE_INTERFACE  ,
FPIsNodeXRefed  ,
TYPE_INODE   
)