3ds Max C++ API Reference
IContainerObject16 Class Referenceabstract

IContainerObject16 Interface. More...

#include <IContainerObject.h>

+ Inheritance diagram for IContainerObject16:

Public Member Functions

virtual void SetDuplicateMatchingLayers (bool setDuplicateMatchingLayers)=0
 Sets whether to duplicate matching Layers without an identical parent hierarchy when merging layers. More...
 
virtual bool DuplicateMatchingLayers () const =0
 Returns whether to duplicate matching Layers without an identical parent hierarchy when merging layers. More...
 
- Public Member Functions inherited from IContainerObject13
virtual bool SaveContainerAsVersion (bool newFileName, unsigned long saveAsVersion)=0
 Saves the content and rules as the new definition into a format compatible with the specified 3ds Max version If there is no definition file name, the user will be prompted for one. More...
 
virtual MCHARGetStatusString ()=0
 Returns a status string for the container. More...
 
virtual void SetStatusDisplay (bool status)=0
 Sets whether the container displays its status in the 3D viewports. More...
 
virtual bool GetStatusDisplay () const =0
 Returns whether the container displays its status in the 3D viewports. More...
 
virtual const MCHARGetEditingUser () const =0
 Returns the user name currently editing the definition for the container. More...
 
virtual bool IsUpdateNeeded () const =0
 Returns whether the container is out of date with its definition. More...
 
virtual bool IsInheritedClosed () const =0
 Returns whether the container is both inherited and its content is not currently local. More...
 
virtual void SetAccessType (AccessType accessType)=0
 Set the type of access for this container when it gets inherited by another container. This replaces IContainerObject::SetEditInPlace since different levels of access are now supported. More...
 
virtual AccessType GetAccessType () const =0
 Returns the type of access that the container will provide when inherited. More...
 
virtual AccessType InheritedAccessType () const =0
 Returns the type of access that the container has based upon the access provided by its inherited source. More...
 
virtual void SetLockedContents (LockedContents content, bool clear)=0
 Set what will be automatically locked when the access type is set to AccessType::eAnythingUnlocked. More...
 
virtual void ClearLockedContents ()=0
 Clear the locked content rules so that nothing is automatically locked. More...
 
virtual bool IsLockedContents (LockedContents content) const =0
 Get if this content will be automatically locked when the access type is set to AccessType::eAnythingUnlocked. More...
 
virtual ProxyType GetProxyType () const =0
 Proxies offer the possibility to represent container content by something other than their definition. More...
 
virtual void SetProxyType (ProxyType type)=0
 Sets the proxy type used by the container. More...
 
virtual int GetAlternateDefinitionCount () const =0
 Returns the number of alternate definitions for the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetAlternateDefinition (int defIndex) const =0
 Returns the alternate definition for the container from an index. More...
 
virtual bool SetAlternateDefinition (int defIndex, const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets an alternate definition for the container. More...
 
virtual bool AppendAlternateDefinition (const MaxSDK::AssetManagement::AssetUser &val)=0
 Appends one alternate definition to the container alternate definitions. More...
 
virtual bool RemoveAlternateDefinition (int defIndex)=0
 Removes one alternate definition from the container alternate definitions. More...
 
virtual int GetCurrentAlternateDefinitionIndex () const =0
 Returns the zero-based index of the current alternate definition of the container. More...
 
virtual void SetCurrentAlternateDefinitionIndex (int defIndex)=0
 Sets the current alternate definition of the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetCurrentAlternateDefinition () const =0
 Returns the current alternate definition of the container. More...
 
- Public Member Functions inherited from IContainerObject
FPInterfaceDescGetDesc ()
 
virtual INodeGetContainerNode () const =0
 Returns the node containing this container object. More...
 
virtual void GetContentNodes (bool nestedContainerNodes, INodeTab &contentNodes) const =0
 Returns the content nodes for this container. More...
 
virtual bool IsNodeInContent (INode *in_node, bool nestedContainerNodes) const =0
 Checks for content membership. More...
 
virtual bool IsNodeInInheritedContent (INode *in_node, bool nestedContainerNodes) const =0
 Checks for inherited content membership. More...
 
virtual bool AddNodeToContent (INode *in_node)=0
 Adds a node and its children to the container. More...
 
virtual bool AddNodesToContent (INodeTab &in_nodeTab)=0
 Adds several nodes to the container. More...
 
virtual bool RemoveNodeFromContent (INode *in_node, bool detach=true)=0
 Removes a node from the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetLocalDefinitionFileName () const =0
 Definition files have the format of a max file, but use a different file extension: .MAXC. More...
 
virtual bool SetLocalDefinitionFileName (const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets the local definition file for the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetSourceDefinitionFileName () const =0
 Gets the source definition file for the container. More...
 
virtual bool SetSourceDefinitionFileName (const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets the source definition file for the container. More...
 
virtual bool SaveContainer (bool newFileName=false)=0
 Saves the current content and rules as the new definition. If there is no definition file name, the user will be prompted for one. More...
 
virtual bool UpdateContainer ()=0
 Updates the content from its definition, preserving local modifications. More...
 
virtual bool UnloadContainer ()=0
 Saves the local definition and deletes the content from the scene. More...
 
virtual bool LoadContainer ()=0
 Reloads content from its definition and local modifications. Only available when unloaded. More...
 
virtual bool ReloadContainer ()=0
 Reloads content from its definition and local modifications. More...
 
virtual bool MergeSource ()=0
 Turns an inherited container into an unsaved local container, merging its content into the scene. More...
 
virtual bool MakeUnique ()=0
 Merges a container source, and recursively merges any nested container among its content. More...
 
virtual bool IsInherited () const =0
 
virtual bool IsOpen () const =0
 Returns whether the container is open. More...
 
virtual bool SetOpen (bool isOpen)=0
 Opens or closes the container. More...
 
virtual bool IsContainerOpenableOrClosable () const =0
 Returns whether the open status of the container can be changed in its current state. More...
 
virtual bool IsUnloaded () const =0
 Returns whether the container is unloaded, that is, whether its content has been temporarily deleted. More...
 
virtual bool IsUnique () const =0
 Returns whether the container is unique, that is, whether it is local as well as any container it may contain. More...
 
virtual void AllowInPlaceEdit (bool allowEdit)=0
 Sets whether the container, when inherited, will allow editing in place. More...
 
virtual bool GetAllowInPlaceEdit () const =0
 Returns whether the container, when inherited, will allow editing in place. More...
 
virtual void SetEditInPlace (bool edit)=0
 Temporarily makes an inherited container that allows it to act like a local container. More...
 
virtual bool IsInPlaceEditing () const =0
 Returns whether the container is currently editing in place. More...
 
virtual bool CanEditInPlace () const =0
 For an imported container, returns whether it allows editing in place. More...
 
virtual void SetAutoUpdateClosed (bool setAutoUpdate)=0
 Sets whether the container will automatically update if it is closed and its definition is updated. More...
 
virtual bool AutoUpdateClosed () const =0
 Returns whether the container will automatically update if it is closed and its definition is updated. More...
 
virtual void SetLabelDisplay (bool display)=0
 
virtual bool GetLabelDisplay () const =0
 Returns whether the container displays its name in the viewport. More...
 
virtual void UseContentBoundingBox (bool useContent)=0
 Sets whether the bounding box for the container object will be extended to encompass all of its content. More...
 
virtual bool IsUsingContentBoundingBox () const =0
 Returns whether the bounding box for the container object will be extended to encompass all of its content. More...
 
virtual void SetOverrideNodeProperties (bool setOverride)=0
 Sets whether the container overrides the object properties (wire color, hidden status etc) of its content. More...
 
virtual bool OverrideNodeProperties () const =0
 Returns whether the container overrides the object properties (wire color, hidden status etc) of its content. More...
 
virtual void SetSize (float size, TimeValue t=0)=0
 Sets the size of the container helper object. More...
 
virtual float GetSize (TimeValue t=0) const =0
 Returns the size of the container helper. 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)
 
virtual Interface_ID GetID ()
 
- 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=nullptr)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Static Public Member Functions

static IContainerObject16GetInterface (Animatable *anim)
 If the Animatable supports the IContainerObject16 interface, returns a pointer to it. More...
 
- Static Public Member Functions inherited from IContainerObject13
static IContainerObject13GetInterface (Animatable *anim)
 If the Animatable supports the IContainerObject13 interface, returns a pointer to it. More...
 
- Static Public Member Functions inherited from IContainerObject
static IContainerObjectGetInterface (Animatable *anim)
 If the Animatable supports the IContainerObject interface, returns a pointer to it. 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

- Public Types inherited from IContainerObject13
enum  AccessType { eNoAccess = 0x0 , eOnlyEditInPlace , eOnlyAddNewObjects , eAnythingUnlocked }
 Access possibilities for when a container is inherited.
More...
 
enum  LockedContents { eLockAllMaterials =0x1 , eLockAllModifiers = 0x2 , eLockAllTransforms =0x4 , eLockAllObjects = 0x8 }
 Possibilities for items that may get locked when the AccessType is eAnythingUnlocked. More...
 
enum  ProxyType { PROXYTYPE_NONE , PROXYTYPE_ALTERNATE }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 
- 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

IContainerObject16 Interface.

IContainerObject16 extends container object functionality. In particular it provides support for control of how layer merges are handled.

Member Function Documentation

◆ SetDuplicateMatchingLayers()

virtual void SetDuplicateMatchingLayers ( bool  setDuplicateMatchingLayers)
pure virtual

Sets whether to duplicate matching Layers without an identical parent hierarchy when merging layers.

Parameters
[in]setDuplicateMatchingLayers- duplicate matching Layers without an identical parent hierarchy.

◆ DuplicateMatchingLayers()

virtual bool DuplicateMatchingLayers ( ) const
pure virtual

Returns whether to duplicate matching Layers without an identical parent hierarchy when merging layers.

◆ GetInterface()

static IContainerObject16* GetInterface ( Animatable anim)
inlinestatic

If the Animatable supports the IContainerObject16 interface, returns a pointer to it.

Parameters
[in]anim- Animatable to be tested for support of the IContainerObject16 interface.
Returns
- a pointer to an IContainerObject16 interface, or NULL.
426  {
427  return anim? static_cast<IContainerObject16*>(anim->GetInterface(IID_CONTAINER16)): NULL;}
#define IID_CONTAINER16
Definition: IContainerObject.h:34
#define NULL
Definition: autoptr.h:18
virtual CoreExport void * GetInterface(ULONG id)
IContainerObject16 Interface.
Definition: IContainerObject.h:416