3ds Max C++ API Reference
IObjXRefRecord Class Referenceabstract

Class for managing an object xref record. More...

#include <iXRefObjRecord.h>

+ Inheritance diagram for IObjXRefRecord:

Public Types

enum  FPFuncIDs {
  kfpItemCount , kfpIsEmpty , kfpGetItem , kfpGetItems ,
  kfpGetChildRecords , kfpGetParentRecords , kfpGetRootRecords , kfpIsNested ,
  kfpGetIncludeAll , kfpSetIncludeAll , kfpGetAutoUpdate , kfpSetAutoUpdate ,
  kfpGetEnabled , kfpSetEnabled , kfpGetUpToDate , kfpSetUpToDate ,
  kfpCheckSrcFileChanged , kfpIsUnresolved , kfpGetSrcFileName , kfpSetSrcFileName ,
  kfpGetSrcFileAssetId , kfpSetSrcFileAssetId , kfpUpdate , kfpGetRecordId ,
  kfpGetHandle , kfpGetXRefOptions , kfpGetDuplicateMatchingLayers , kfpSetDuplicateMatchingLayers
}
 
enum  FPEnums { kfpXRefItemTypes , kfpXRefItemTypesNoAll , kfpXrefOptions }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 

Public Member Functions

virtual Interface_ID GetID ()
 
virtual FPInterfaceDescGetDesc ()
 
 FN_1 (kfpItemCount, TYPE_DWORD, FPItemCount, TYPE_ENUM_TAB_BR)
 
 FN_2 (kfpGetItem, TYPE_REFTARG, FPGetItem, TYPE_INDEX, TYPE_ENUM)
 
 FN_2 (kfpGetItems, TYPE_DWORD, FPGetItems, TYPE_ENUM_TAB_BR, TYPE_REFTARG_TAB_BR)
 
 FN_1 (kfpGetChildRecords, TYPE_DWORD, FPGetChildRecords, TYPE_INTERFACE_TAB_BR)
 
 FN_1 (kfpGetParentRecords, TYPE_DWORD, FPGetParentRecords, TYPE_INTERFACE_TAB_BR)
 
 FN_1 (kfpGetRootRecords, TYPE_DWORD, FPGetRootRecords, TYPE_INTERFACE_TAB_BR)
 
 FN_0 (kfpCheckSrcFileChanged, TYPE_bool, CheckSrcFileChanged)
 
 FN_0 (kfpUpdate, TYPE_bool, Update)
 
 PROP_FNS (kfpGetIncludeAll, IsIncludeAll, kfpSetIncludeAll, SetIncludeAll, TYPE_bool)
 
 PROP_FNS (kfpGetAutoUpdate, IsAutoUpdate, kfpSetAutoUpdate, SetAutoUpdate, TYPE_bool)
 
 PROP_FNS (kfpGetEnabled, IsEnabled, kfpSetEnabled, SetEnable, TYPE_bool)
 
 PROP_FNS (kfpGetUpToDate, GetUpToDate, kfpSetUpToDate, SetUpToDate, TYPE_bool)
 
 RO_PROP_FN (kfpIsEmpty, IsEmpty, TYPE_bool)
 
 RO_PROP_FN (kfpIsUnresolved, IsUnresolved, TYPE_bool)
 
 PROP_FNS (kfpGetSrcFileName, FPGetSrcFileName, kfpSetSrcFileName, FPSetSrcFileName, TYPE_FILENAME)
 
 RO_PROP_FN (kfpGetHandle, GetHandle, TYPE_DWORD)
 
 RO_PROP_FN (kfpGetXRefOptions, FPGetXRefOptions, TYPE_ENUM_TAB_BV)
 
 RO_PROP_FN (kfpIsNested, IsNested, TYPE_bool)
 
XRef Item Access

Retrieves the number of xref items stored in this record.


virtual unsigned int ItemCount (IXRefItem::XRefItemType itemType) const =0
 
virtual unsigned int GetItems (IXRefItem::XRefItemType itemType, Tab< ReferenceTarget * > &xrefItems) const =0
 Retrieves all the xref items of the specified type. More...
 
virtual ReferenceTargetGetItem (unsigned int i, IXRefItem::XRefItemType itemType) const =0
 Retrieves the i-th xref item of the specified type. More...
 
virtual bool IsEmpty () const =0
 Allows to verify whether this record contains any xref items. More...
 
Nested XRef Record Management

When xrefing scene entities that are themselves xrefs, nested xref records are created.

The following methods allow finding and working with nested xref records.

virtual unsigned int GetChildRecords (Tab< IObjXRefRecord * > &childRecords) const =0
 Retrieves all child xref records of this record. More...
 
virtual unsigned int GetParentRecords (Tab< IObjXRefRecord * > &parentRecords) const =0
 Retrieves all parent xref records of this record. More...
 
virtual unsigned int GetRootRecords (Tab< IObjXRefRecord * > &rootRecords) const =0
 Retrieves all root (top-level) xref records of this record. More...
 
virtual bool IsNested () const =0
 Retrives whether this xref record has parent records or not. More...
 
XRef Record State Access

The following methods allow for setting and retrieving options used when xrefing scene entities.

These options apply to the whole xrefing operation rather than to individual xref items.

virtual unsigned int GetXRefOptions () const =0
 Retrives the options used to create this xref record. More...
 
virtual bool IsIncludeAll () const =0
 Retrieves whether all scene entities are xrefed from this record's source file. More...
 
virtual void SetIncludeAll (bool bEnable)=0
 Sets the xrefing of all scene entities from this record's source file. More...
 
virtual bool IsEnabled () const =0
 Retrieves the enabled state of this xref record. More...
 
virtual void SetEnable (bool bEnable)=0
 Sets the enabled state of this xref record. More...
 
virtual bool IsAutoUpdate () const =0
 Retrieves whether auto-update is enabled for this xref record. More...
 
virtual void SetAutoUpdate (bool bEnable)=0
 Sets the state of the auto-upate for this xref record. More...
 
virtual bool GetUpToDate () const =0
 Allows to verify whether the xref record is up-to-date. More...
 
virtual void SetUpToDate (bool bUpToDate)=0
 Allows to set an xref record as out-of-date. More...
 
virtual bool CheckSrcFileChanged ()=0
 Verifies whether the source file of this xref record has changed since the record was last updated. More...
 
virtual bool IsUnresolved () const =0
 Allows to verify whether the xref record is unresolved. More...
 
virtual const MaxSDK::AssetManagement::AssetUserGetSrcFile () const =0
 Retrieves the asset Id of the source file. More...
 
virtual const MSTRGetParentSrcFileName () const =0
 Returns the parent Xref record source file name. More...
 
XRef Record Management

Updates the xref record by reloading its xref items from the source file.

virtual bool Update ()=0
 The xref entities are reloaded according to the currently set options. More...
 
virtual XRefRecordHandle GetHandle () const =0
 Retrieves the record's unique handle. More...
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID 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)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Static Public Member Functions

static IObjXRefRecordGetInterface (InterfaceServer *is)
 Retrieves the IObjXRefRecord interface from an InterfaceServer. 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...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Additional Inherited Members

- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Detailed Description

Class for managing an object xref record.

Xref records store xref items and information regarding the xref operation/transaction that created them. Xref records are created by and can be retrieved from the Object Xref Manager (see class IObjXRefManager8). Xref records are not created when xrefing a whole scene via the scene xref feature.

Member Enumeration Documentation

◆ FPFuncIDs

enum FPFuncIDs
Enumerator
kfpItemCount 
kfpIsEmpty 
kfpGetItem 
kfpGetItems 
kfpGetChildRecords 
kfpGetParentRecords 
kfpGetRootRecords 
kfpIsNested 
kfpGetIncludeAll 
kfpSetIncludeAll 
kfpGetAutoUpdate 
kfpSetAutoUpdate 
kfpGetEnabled 
kfpSetEnabled 
kfpGetUpToDate 
kfpSetUpToDate 
kfpCheckSrcFileChanged 
kfpIsUnresolved 
kfpGetSrcFileName 
kfpSetSrcFileName 
kfpGetSrcFileAssetId 
kfpSetSrcFileAssetId 
kfpUpdate 
kfpGetRecordId 
kfpGetHandle 
kfpGetXRefOptions 
kfpGetDuplicateMatchingLayers 
kfpSetDuplicateMatchingLayers 
257  {
258  kfpItemCount,
259  kfpIsEmpty,
260  kfpGetItem,
261  kfpGetItems,
265  kfpIsNested,
274  kfpUpdate,
276  kfpGetHandle,
280  };
@ kfpGetItems
Definition: iXRefObjRecord.h:261
@ kfpGetSrcFileAssetId
Definition: iXRefObjRecord.h:273
@ kfpGetChildRecords
Definition: iXRefObjRecord.h:262
@ kfpIsUnresolved
Definition: iXRefObjRecord.h:271
@ kfpGetXRefOptions
Definition: iXRefObjRecord.h:277
@ kfpGetHandle
Definition: iXRefObjRecord.h:276
@ kfpIsNested
Definition: iXRefObjRecord.h:265
@ kfpSetSrcFileAssetId
Definition: iXRefObjRecord.h:273
@ kfpGetParentRecords
Definition: iXRefObjRecord.h:263
@ kfpUpdate
Definition: iXRefObjRecord.h:274
@ kfpGetRecordId
Definition: iXRefObjRecord.h:275
@ kfpGetDuplicateMatchingLayers
Definition: iXRefObjRecord.h:278
@ kfpSetAutoUpdate
Definition: iXRefObjRecord.h:267
@ kfpGetRootRecords
Definition: iXRefObjRecord.h:264
@ kfpGetAutoUpdate
Definition: iXRefObjRecord.h:267
@ kfpSetEnabled
Definition: iXRefObjRecord.h:268
@ kfpGetIncludeAll
Definition: iXRefObjRecord.h:266
@ kfpGetUpToDate
Definition: iXRefObjRecord.h:269
@ kfpGetSrcFileName
Definition: iXRefObjRecord.h:272
@ kfpSetUpToDate
Definition: iXRefObjRecord.h:269
@ kfpCheckSrcFileChanged
Definition: iXRefObjRecord.h:270
@ kfpSetSrcFileName
Definition: iXRefObjRecord.h:272
@ kfpSetDuplicateMatchingLayers
Definition: iXRefObjRecord.h:279
@ kfpSetIncludeAll
Definition: iXRefObjRecord.h:266
@ kfpGetEnabled
Definition: iXRefObjRecord.h:268
@ kfpIsEmpty
Definition: iXRefObjRecord.h:259
@ kfpItemCount
Definition: iXRefObjRecord.h:258
@ kfpGetItem
Definition: iXRefObjRecord.h:260

◆ FPEnums

enum FPEnums
Enumerator
kfpXRefItemTypes 
kfpXRefItemTypesNoAll 
kfpXrefOptions 
284  {
288  };
@ kfpXrefOptions
Definition: iXRefObjRecord.h:287
@ kfpXRefItemTypesNoAll
Definition: iXRefObjRecord.h:286
@ kfpXRefItemTypes
Definition: iXRefObjRecord.h:285

Member Function Documentation

◆ ItemCount()

virtual unsigned int ItemCount ( IXRefItem::XRefItemType  itemType) const
pure virtual
Parameters
[in]itemType- One of the predefined xref item types IXRefItem::XRefItemType
Returns
- The number of xrefed items of the specified type.

◆ GetItems()

virtual unsigned int GetItems ( IXRefItem::XRefItemType  itemType,
Tab< ReferenceTarget * > &  xrefItems 
) const
pure virtual

Retrieves all the xref items of the specified type.

Note that any xref atmospheric item returned by this method will become invalid if all other types of items are removed from this record. Also, any of of the xref items returned by this method could become invalid after an operation that modifies the contents of the xref record.

Parameters
[in]itemType- A combination of predefined xref item types IXRefItem::XRefItemType
[in,out]xrefItems- An array where the xref items will be returned. The array is not cleared, so its existent elements will be preserved.
Returns
- The number of returned xref items

◆ GetItem()

virtual ReferenceTarget* GetItem ( unsigned int  i,
IXRefItem::XRefItemType  itemType 
) const
pure virtual

Retrieves the i-th xref item of the specified type.

Parameters
[in]i- The index of the xref item to retrieve.
[in]itemType- One of the predefined xref item types IXRefItem::XRefItemType
Returns
- Pointer to the xref item. NULL if the supplied index (i) is out of range, or if the supplied item type is unsupported

◆ IsEmpty()

virtual bool IsEmpty ( ) const
pure virtual

Allows to verify whether this record contains any xref items.

Note that empty xref records are automatically deleted by the system, so this method should never return true, except when called before the system had a chance to delete empty xref records. Also note that xref records containing only xref atmospherics will be deleted automatically by the system.

Returns
- true if the record does not contain any xref items of any type, otherwise false

◆ GetChildRecords()

virtual unsigned int GetChildRecords ( Tab< IObjXRefRecord * > &  childRecords) const
pure virtual

Retrieves all child xref records of this record.

Parameters
[out]childRecords- Array of xref records where the child records are retured. The supplied array is not cleared out before the xref records are added to it. The array is guaranteed not to contain duplicate xref records.
Returns
- The number of child xref records.

◆ GetParentRecords()

virtual unsigned int GetParentRecords ( Tab< IObjXRefRecord * > &  parentRecords) const
pure virtual

Retrieves all parent xref records of this record.

Parameters
[out]parentRecords- Array of xref records where the parent records are returned. The supplied array is not cleared out before the xref records are added to it. The array is guaranteed not to contain duplicate xref records.
Returns
- The number of parent xref records.

◆ GetRootRecords()

virtual unsigned int GetRootRecords ( Tab< IObjXRefRecord * > &  rootRecords) const
pure virtual

Retrieves all root (top-level) xref records of this record.

Parameters
[out]rootRecords- Array of xref records where the root records are returned. The supplied array cleared out before the xref records are added to it. The array is guaranteed not to contain duplicate xref records.
Returns
- The number of root xref records.

◆ IsNested()

virtual bool IsNested ( ) const
pure virtual

Retrives whether this xref record has parent records or not.

This method uses a more efficient way of determining whether this xref record is nested or not than calling GetParentRecords.

Returns
- true if this xref record is nested, i.e. has at least one parent record, otherwise false.

◆ GetXRefOptions()

virtual unsigned int GetXRefOptions ( ) const
pure virtual

Retrives the options used to create this xref record.

These options cannot be modifed once the xref record has been created.

Returns
The options used to create the xref record. See Object Xref Options for a full list of available options.
See also
IObjXRefManager8::XRefAllObjectsFromFile

◆ IsIncludeAll()

virtual bool IsIncludeAll ( ) const
pure virtual

Retrieves whether all scene entities are xrefed from this record's source file.

When this option is turned on, the next update operation of this xref record will xref all scene entities that have not been xrefed yet from the its source file.

Returns
- true if this should be xrefing all scene entities from its source file, otherwise false

◆ SetIncludeAll()

virtual void SetIncludeAll ( bool  bEnable)
pure virtual

Sets the xrefing of all scene entities from this record's source file.

Parameters
[in]bEnable- If true, the include-all option is enabled, otherwise it's disabled

◆ IsEnabled()

virtual bool IsEnabled ( ) const
pure virtual

Retrieves the enabled state of this xref record.

Enabled xref records can be updated, while disabled xref records cannot.

Returns
- true if this xref record is enabled, otherwise false
See also
IObjXRefRecord::Update

◆ SetEnable()

virtual void SetEnable ( bool  bEnable)
pure virtual

Sets the enabled state of this xref record.

When disabling an xref record, the source items of its xref items are un-loaded from memory. Note that opening a main file containing disabled xref records results in unresolved xref items. Re-enabling and updating the record, re-resolves the xref items.

Parameters
[in]bEnable- If true, the xref record is enabled, otherwise it's disabled

◆ IsAutoUpdate()

virtual bool IsAutoUpdate ( ) const
pure virtual

Retrieves whether auto-update is enabled for this xref record.

When Auto-update is enabled, the xref record is automatically updated as soon as the source file changes.

Returns
- true if this xref record is has auto-update turned on, otherwise false

◆ SetAutoUpdate()

virtual void SetAutoUpdate ( bool  bEnable)
pure virtual

Sets the state of the auto-upate for this xref record.

Parameters
[in]bEnable- If true, auto-update is enabled for this xref record, otherwise it's disabled.

◆ GetUpToDate()

virtual bool GetUpToDate ( ) const
pure virtual

Allows to verify whether the xref record is up-to-date.

The xref record is up-to-date if it's been updated with the source items from the latest version of the source file. This method will report the current value of the up-to-date state of this xref record. To trigger a verification of whether the source file of this xref record has changed, use CheckSrcFileChanged.

Returns
- true if the record is up-to-date, otherwise false

◆ SetUpToDate()

virtual void SetUpToDate ( bool  bUpToDate)
pure virtual

Allows to set an xref record as out-of-date.

Only out-of-date records are processed by an update request.

Parameters
[in]bUpToDate- false to set the record as ou-of-date, otherwise true

◆ CheckSrcFileChanged()

virtual bool CheckSrcFileChanged ( )
pure virtual

Verifies whether the source file of this xref record has changed since the record was last updated.


Calling this method checks whether the source file is unresolved. If it isn't, it updates the up-to-date flag of this xref record by comparing the date and time of the source file with the date and time the xref record was last updated.

Returns
- true if the unresolved state, or the up-to-date state have changed, false if neither have changed

◆ IsUnresolved()

virtual bool IsUnresolved ( ) const
pure virtual

Allows to verify whether the xref record is unresolved.

An xref record is unresolved if the source file name and path is not valid. Unresolved xref records are not discarded by the system because they may get re-resolved on a subsequent update of the xref record if the source file path and name becomes valid.

Returns
- true if this is an unresolved xref record, otherwise false

◆ GetSrcFile()

virtual const MaxSDK::AssetManagement::AssetUser& GetSrcFile ( ) const
pure virtual

Retrieves the asset Id of the source file.

The source file of an xref record is the file from where the source scene entities xrefed via this xref record come from.

Returns
- The asset user of the file that the source scene entity comes from or or NULL if there's no source file specified.

◆ GetParentSrcFileName()

virtual const MSTR& GetParentSrcFileName ( ) const
pure virtual

Returns the parent Xref record source file name.

Returns
the parent source file name.

◆ Update()

virtual bool Update ( )
pure virtual

The xref entities are reloaded according to the currently set options.

For example, the xref record will not be updated if it is disabled.

Note
Updating an xref record will trigger the updating of all nested xref records.
Updating an xref record with the Include All flag On for itself and all its child records, will not result in xrefing scene entities newly added to nested source files. The child xref records saved with the intermediate main files must be update first, starting with the deepest child or intermediate file.
Returns
- true if the operation succeeded, otherwise false.

◆ GetHandle()

virtual XRefRecordHandle GetHandle ( ) const
pure virtual

Retrieves the record's unique handle.

Each xref record is identified by a unique handle. The handle value is unique only within the current scene. Reseting the scene is considered to start a new scene. The handle of the xref records is not persisted.

Returns
- The handle of this xref record.
See also
XRefRecordHandle

◆ GetInterface()

static IObjXRefRecord* GetInterface ( InterfaceServer is)
inlinestatic

Retrieves the IObjXRefRecord interface from an InterfaceServer.

Parameters
[in]is- Pointer to InterfaceServer
Returns
- Pointer to the IObjXRefRecord interface of the scene entity or NULL if it's not an xref record
244  {
245  DbgAssert(is != NULL);
246  return static_cast<IObjXRefRecord*>(is->GetInterface(IID_XREF_OBJ_RECORD));
247  };
#define NULL
Definition: autoptr.h:18
Class for managing an object xref record.
Definition: iXRefObjRecord.h:47
virtual UtilExport BaseInterface * GetInterface(Interface_ID id)
#define DbgAssert(expr)
Definition: assert1.h:82
#define IID_XREF_OBJ_RECORD
Id for IObjXRefRecord interface.
Definition: iXRefObjRecord.h:38

◆ GetID()

virtual Interface_ID GetID ( )
inlinevirtual
Remarks
This method overrides GetID() in those interfaces that do not publish metadata but instead have a unique Interface_ID for quick internal identification in implementation code that might be shared by a bunch of mixin interfaces.
Returns
The Interface_ID.
Default Implementation:
{ return GetDesc()->ID; }

Reimplemented from FPMixinInterface.

251 { return IID_XREF_OBJ_RECORD; }

◆ GetDesc()

virtual FPInterfaceDesc* GetDesc ( )
inlinevirtual
Remarks
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

253 { return &mFPInterfaceDesc; }

◆ FN_1() [1/4]

FN_1 ( kfpItemCount  ,
TYPE_DWORD  ,
FPItemCount  ,
TYPE_ENUM_TAB_BR   
)

◆ FN_2() [1/2]

FN_2 ( kfpGetItem  ,
TYPE_REFTARG  ,
FPGetItem  ,
TYPE_INDEX  ,
TYPE_ENUM   
)

◆ FN_2() [2/2]

FN_2 ( kfpGetItems  ,
TYPE_DWORD  ,
FPGetItems  ,
TYPE_ENUM_TAB_BR  ,
TYPE_REFTARG_TAB_BR   
)

◆ FN_1() [2/4]

FN_1 ( kfpGetChildRecords  ,
TYPE_DWORD  ,
FPGetChildRecords  ,
TYPE_INTERFACE_TAB_BR   
)

◆ FN_1() [3/4]

FN_1 ( kfpGetParentRecords  ,
TYPE_DWORD  ,
FPGetParentRecords  ,
TYPE_INTERFACE_TAB_BR   
)

◆ FN_1() [4/4]

FN_1 ( kfpGetRootRecords  ,
TYPE_DWORD  ,
FPGetRootRecords  ,
TYPE_INTERFACE_TAB_BR   
)

◆ FN_0() [1/2]

◆ FN_0() [2/2]

FN_0 ( kfpUpdate  ,
TYPE_bool  ,
Update   
)

◆ PROP_FNS() [1/5]

◆ PROP_FNS() [2/5]

◆ PROP_FNS() [3/5]

PROP_FNS ( kfpGetEnabled  ,
IsEnabled  ,
kfpSetEnabled  ,
SetEnable  ,
TYPE_bool   
)

◆ PROP_FNS() [4/5]

PROP_FNS ( kfpGetUpToDate  ,
GetUpToDate  ,
kfpSetUpToDate  ,
SetUpToDate  ,
TYPE_bool   
)

◆ RO_PROP_FN() [1/5]

RO_PROP_FN ( kfpIsEmpty  ,
IsEmpty  ,
TYPE_bool   
)

◆ RO_PROP_FN() [2/5]

RO_PROP_FN ( kfpIsUnresolved  ,
IsUnresolved  ,
TYPE_bool   
)

◆ PROP_FNS() [5/5]

PROP_FNS ( kfpGetSrcFileName  ,
FPGetSrcFileName  ,
kfpSetSrcFileName  ,
FPSetSrcFileName  ,
TYPE_FILENAME   
)

◆ RO_PROP_FN() [3/5]

RO_PROP_FN ( kfpGetHandle  ,
GetHandle  ,
TYPE_DWORD   
)

◆ RO_PROP_FN() [4/5]

RO_PROP_FN ( kfpGetXRefOptions  ,
FPGetXRefOptions  ,
TYPE_ENUM_TAB_BV   
)

◆ RO_PROP_FN() [5/5]

RO_PROP_FN ( kfpIsNested  ,
IsNested  ,
TYPE_bool   
)