IMetaDataManager Class Reference
 
 
 
IMetaDataManager Class Reference

#include <IMetaData.h>

Inheritance diagram for IMetaDataManager:
FPStaticInterface FPInterfaceDesc FPInterface BaseInterface InterfaceServer MaxHeapOperators

Class Description

The interface for creating, adding, removing and keeping track of meta-data on max Animatables.

Meta-data are custom attributes that contain only a parameter block. In order to create meta-data, you have to create its definition by specify the parameters first. This will give you a meta-data ID. You can then use that ID to add, remove or list meta-data in the scene.

See also:
CustAttrib

Classes

struct   ParamDescriptor
  A description for a parameter to be used in a meta-data, and its UI in an eventual rollout. More...

Public Types

enum   ControlAlign { eAlignLeft, eAlignCenter, eAlignRight }
typedef Class_ID  MetaDataID

Public Member Functions

virtual MetaDataID  CreateMetaDataDefinition (const MCHAR *in_custAttribSetName, const MCHAR *in_rollOutName, const Tab< ParamDescriptor > &in_paramDefs, MSTR *out_errMsg=NULL)=0
  Create a meta-data definition for further use in meta-data manager functions.
virtual MetaDataID  CreateMetaDataDefinition (MCHAR *in_custAttribSetName, MCHAR *in_rollOutName, const Tab< ParamDescriptor > &in_paramDefs, MSTR *out_errMsg) sealed
virtual CustAttrib AddMetaDataToAnimatable (const MetaDataID &in_metaDataID, Animatable &in_animatable, int in_rank=-1)=0
  Create a meta-data instance and add it to the custom attribute container of an animatable.
virtual void  AddMetaDataToAnimatables (const MetaDataID &in_metaDataID, const Tab< Animatable * > &in_animatables, Tab< CustAttrib * > &out_metaData, bool in_shared=false, int in_rank=-1)=0
  Create meta-data instances and add it to the custom attribute container of animatables.
virtual bool  RemoveMetaDataFromAnimatable (const MetaDataID &in_metaDataID, Animatable &in_animatable)=0
  Remove a meta-data from the custom attribute container of an animatable.
virtual int  MetaDataCount () const =0
  Returns the number of meta-data in the scene.
virtual void  GetAllMetaDataOwners (const MetaDataID &in_ID, Tab< Animatable * > &out_owners)=0
  Finds all owners of meta-data of a given meta-data ID.
virtual bool  IsMetaDataDefined (const MetaDataID &in_ID) const =0
  Returns whether a definition exists for a given meta-data ID.
virtual CustAttrib GetMetaData (Animatable &in_animatable, const MetaDataID &in_ID) const =0
  Checks the existence of meta-data of a given ID on an animatable.
virtual void  GetAllMetaData (Animatable &in_animatable, Tab< CustAttrib * > &out_metaData) const =0
  Finds all meta-data on an animatable.

Static Public Member Functions

static IMetaDataManager GetInstance ()

Member Typedef Documentation


Member Enumeration Documentation


Member Function Documentation

virtual MetaDataID CreateMetaDataDefinition ( const MCHAR *  in_custAttribSetName,
const MCHAR *  in_rollOutName,
const Tab< ParamDescriptor > &  in_paramDefs,
MSTR out_errMsg = NULL 
) [pure virtual]

Create a meta-data definition for further use in meta-data manager functions.

The ID returned will allow the user to add or remove meta-data in the scene and to keep track of them.

Parameters:
in_custAttribSetName - a name for the custom attribute set.
in_rollOutName - a name for an eventual rollout.
in_paramDefs - an array of descriptions for each parameter in the param block.
out_errMsg - (optional): pointer to a MSTR. If non-null and the definition cannot be created, will contain a description of the reason.
Returns:
EmptyMetaDataID if for any reason the definition cannot be created:
  • invalid parameter description
  • the definitionID already exists any other MetaDataID value if the definition was created successfully
virtual MetaDataID CreateMetaDataDefinition ( MCHAR *  in_custAttribSetName,
MCHAR *  in_rollOutName,
const Tab< ParamDescriptor > &  in_paramDefs,
MSTR out_errMsg 
) [inline, sealed, virtual]
Deprecated:
Deprecated method in terms of implementation as of 3ds Max 2013 - re-implement with const MCHAR* method signature
                                                                                                                                                                               { 
                return CreateMetaDataDefinition(const_cast<const MCHAR*>(in_custAttribSetName), const_cast<const MCHAR*>(in_rollOutName), in_paramDefs, out_errMsg); };
virtual CustAttrib* AddMetaDataToAnimatable ( const MetaDataID in_metaDataID,
Animatable in_animatable,
int  in_rank = -1 
) [pure virtual]

Create a meta-data instance and add it to the custom attribute container of an animatable.

If the meta-data already exists for an animatable, it will not get added.

Parameters:
in_metaDataID - the meta-data ID of the custom attribute set to be created.
in_animatable - the Animatable to which the custom attribute set will be added.
in_rank - the insertion index of the custom attribute. Default is to append
Returns:
the MetaData if created successfully, NULL otherwise
virtual void AddMetaDataToAnimatables ( const MetaDataID in_metaDataID,
const Tab< Animatable * > &  in_animatables,
Tab< CustAttrib * > &  out_metaData,
bool  in_shared = false,
int  in_rank = -1 
) [pure virtual]

Create meta-data instances and add it to the custom attribute container of animatables.

If the meta-data already exists for an animatable, it will not get added.

Parameters:
in_metaDataID - the meta-data ID of the custom attribute set to be created.
in_animatables - an array of Animatables to which the custom attribute set will be added.
out_metaData - an array of MetaData that were created successfully.
in_shared - if true, a single instance will be created and shared by all animatables.
in_rank - the insertion index of the custom attribute. Default is to append
virtual bool RemoveMetaDataFromAnimatable ( const MetaDataID in_metaDataID,
Animatable in_animatable 
) [pure virtual]

Remove a meta-data from the custom attribute container of an animatable.

Parameters:
in_metaDataID - the meta-data ID of the custom attribute to be removed.
in_animatable - the Animatable from which the custom attribute set will be removed.
Returns:
true if the MetaData was removed
virtual int MetaDataCount ( ) const [pure virtual]

Returns the number of meta-data in the scene.

virtual void GetAllMetaDataOwners ( const MetaDataID in_ID,
Tab< Animatable * > &  out_owners 
) [pure virtual]

Finds all owners of meta-data of a given meta-data ID.

Parameters:
in_ID - the meta-data ID of the meta-data.
out_owners - an array of Animatables that own meta-data of the given ID.
virtual bool IsMetaDataDefined ( const MetaDataID in_ID ) const [pure virtual]

Returns whether a definition exists for a given meta-data ID.

Parameters:
in_ID - the meta-data ID to be checked.
Returns:
true if the MetaData was defined.
virtual CustAttrib* GetMetaData ( Animatable in_animatable,
const MetaDataID in_ID 
) const [pure virtual]

Checks the existence of meta-data of a given ID on an animatable.

Parameters:
in_animatable - the animatable to be checked for meta-data.
in_ID - the meta-data ID to be checked.
Returns:
the meta-data if it exists.
virtual void GetAllMetaData ( Animatable in_animatable,
Tab< CustAttrib * > &  out_metaData 
) const [pure virtual]

Finds all meta-data on an animatable.

Parameters:
in_animatable - the animatable to be checked for meta-data.
out_metaData - an array of the meta-data on the Animatable.
static IMetaDataManager* GetInstance ( ) [inline, static]
                                               {
                return static_cast<IMetaDataManager*>(GetCOREInterface(IID_METADA_MANAGER)); 
        }