#include "PB2Export.h"
#include "maxheap.h"
#include "iparamb.h"
#include "iparamm.h"
#include "assetmanagement/AssetType.h"
#include "assetmanagement/AssetId.h"
#include "iparamb2Typedefs.h"
#include "TabTypes.h"
#include "paramtype.h"
Classes | |
struct | PB2Value |
struct | ParamAlias |
class | IParamBlock2 |
class | PBValidator |
class | PBAccessor |
struct | ParamDef |
class | ClassDesc2 |
class | ParamBlockDesc2 |
struct | ParamBlockDesc2::map_spec |
class | ParamBlock2PLCB |
class | IParamBlock2PostLoadInfo |
Informational class about ParamBlock2 objects loaded from file. More... | |
Namespaces | |
MaxSDK | |
MaxSDK::AssetManagement | |
Macros | |
#define | P_CLASS_PARAMS 0x0001 |
this block holds class-level parameters, attached to ClassDesc More... | |
#define | P_AUTO_CONSTRUCT 0x0002 |
instructs ClassDesc2 to autoconstuct this block & wire it in, requires pblock refno More... | |
#define | P_AUTO_UI 0x0004 |
this block support automatic UI rollout managements, requires rollout template res ID, etc. More... | |
#define | P_USE_PARAMS 0x0008 |
this block shares (exactly) the paramdefs from another descriptor, requires address of source descriptor More... | |
#define | P_INCLUDE_PARAMS 0x0010 |
this block loads in a copy the paramdefs from another descriptor, requires address of source descriptor More... | |
#define | P_MULTIMAP 0x0020 |
indicates this block as mulitple parameter maps ### move me More... | |
#define | P_CALLSETS_ON_LOAD 0x0040 |
causes CallSets() to be called during load PLCB for this block More... | |
#define | P_HASCATEGORY 0x0080 |
indicates, that category field is defined for rollup (after rollupproc) More... | |
#define | P_TEMPLATE_UI 0x0100 |
indicates that dialog templates will be provided or constructed More... | |
#define | P_VERSION 0x0200 |
Indicates a parameter block version number is specified. More... | |
#define | P_SCRIPTED_CLASS 0x1000 |
belongs to a scripted plug-in class More... | |
#define | P_TEMPORARY 0x2000 |
temporary descriptor built during scene load to support schema migration More... | |
#define | P_ANIMATABLE 0x00000001 |
animatable param More... | |
#define | P_TRANSIENT 0x00000002 |
do not store actual value, PBAccessor-derived More... | |
#define | P_NO_INIT 0x00000004 |
do not initialize More... | |
#define | P_COMPUTED_NAME 0x00000008 |
call compute name fn to get name More... | |
#define | P_INVISIBLE 0x00000010 |
not visible in track view (if an animatable) More... | |
#define | P_RESET_DEFAULT 0x00000020 |
do not make create params sticky, reset to defaults always More... | |
#define | P_SUBANIM 0x00000040 |
non-animatable reference param is still a subanim (makes it visible in TV) More... | |
#define | P_TV_SHOW_ALL 0x00000080 |
for Tab<> animatables, show all entries even if no controller assigned More... | |
#define | P_NO_REF 0x00000100 |
for reftarg params do not maintain Reference automatically More... | |
#define | P_OWNERS_REF 0x00000200 |
reference param maintained by owner, specify owner's reference number via the p_refno tag More... | |
#define | P_CAN_CONVERT 0x00000400 |
indicates the p_classid validator is is in a CanConvertoTo() call, rather than as exact class More... | |
#define | P_SUBTEX 0x00000800 |
indicates texmap param is kept by owner using MtlBase::xSubTexmap protocol, give subtex # in p_subtexno More... | |
#define | P_VARIABLE_SIZE 0x00001000 |
Tab<> param is variable size allowing scripted changes. More... | |
#define | P_NO_AUTO_LABELS 0x00002000 |
don't auto-set map & mtl names for associated button UI controls More... | |
#define | P_SHORT_LABELS 0x00004000 |
use short auto names for associated button UI controls More... | |
#define | P_READ_ONLY 0x00008000 |
this parameter is not assignable through MAXScript (allows try-and-buy 3rd-party plugins) More... | |
#define | P_OBSOLETE 0x40000000 |
Indicates parameter is obsolete. More... | |
#define | P_READ_SECOND_FLAG_VALUE 0x80000000 |
Indicates that a second per param constructor-specifiable flag value follows the first in the ParamBlockDesc2. More... | |
#define | P_USE_ACCESSOR_ONLY 0x00000001 |
Indicates whether or not when doing a get or set on a param2 value that we only go through the accessor if one is available. More... | |
#define | P_IS_REF 0x0000000000010000 |
is a reftarget param More... | |
#define | P_HAS_DEFAULT 0x0000000000020000 |
has accessor function => a virtual param More... | |
#define | P_HAS_CUR_DEFAULT 0x0000000000040000 |
has a snapshotted current default value More... | |
#define | P_HAS_MS_DEFAULT 0x0000000000080000 |
has a MAXScript default More... | |
#define | P_HAS_RANGE 0x0000000000100000 |
has a range specified More... | |
#define | P_HAS_CLASS_ID 0x0000000000200000 |
a classID validator was given More... | |
#define | P_HAS_SCLASS_ID 0x0000000000400000 |
an SClassID validator was given More... | |
#define | P_UI_ENABLED 0x0000000000800000 |
indicates whether UI controls are initially enabled or diabled More... | |
#define | P_HAS_PROMPT 0x0000000001000000 |
has status line prompt string res ID for various picker buttons More... | |
#define | P_HAS_CAPTION 0x0000000002000000 |
has caption string res ID for open/save file dlgs More... | |
#define | P_HAS_FILETYPES 0x0000000004000000 |
has file types string res ID for open/save file dlgs (in MAXScript type: form) More... | |
#define | P_HAS_REFNO 0x0000000008000000 |
has refno supplied More... | |
#define | P_HAS_SUBTEXNO 0x0000000010000000 |
has subtexno supplied More... | |
#define | P_INCLUDED 0x0000000020000000 |
[INTERNAL ONLY] Sets a ParamDef as included from another descriptor. More... | |
#define | P_HAS_TOOLTIP 0x0001000000000000 |
has ToolTip string More... | |
#define | P_HAS_ASSETTYPE 0x0002000000000000 |
has asset type More... | |
#define | P_HAS_ASSETTYPENAME 0x0004000000000000 |
has asset type name More... | |
#define | base_type(t) ((ParamType2)((t) & ~(TYPE_TAB))) |
get base type ignoring Tab flag More... | |
#define | root_type(t) ((ParamType2)((t) & ~(TYPE_TAB | TYPE_BY_VAL | TYPE_BY_REF | TYPE_BY_PTR))) |
get base type ignoring all flags More... | |
#define | is_tab(t) ((t) & TYPE_TAB) |
is this param a table? More... | |
#define | is_by_val(t) ((t) & TYPE_BY_VAL) |
is this param passed by value? (only for FnPub) More... | |
#define | is_by_ref(t) ((t) & TYPE_BY_REF) |
is this param passed by reference? (only for FnPub) More... | |
#define | is_by_ptr(t) ((t) & TYPE_BY_PTR) |
is this param passed by pointer? (only for FnPub) More... | |
#define | is_ref(d) (((d).flags & (P_IS_REF | P_NO_REF | P_OWNERS_REF)) == P_IS_REF) |
is this param a true local refmaker? More... | |
#define | has_ui(d) ((d).ctrl_count > 0) |
this param has UI info defined More... | |
#define | reftarg_type(t) |
#define | IPARAMBLOCK2POSTLOADINFO_ID Interface_ID(0x6c7b290a, 0x7c56423c) |
Functions | |
PB2Export IParamBlock2 * | CreateParameterBlock2 (ParamBlockDesc2 *pdesc, ReferenceMaker *iowner) |
PB2Export void | SetPB2MacroRecorderInterface (MacroRecorder *mri) |
PB2Export IParamBlock2 * | UpdateParameterBlock2 (ParamBlockDescID *pdescOld, int oldCount, IParamBlock *oldPB, ParamBlockDesc2 *pdescNew, IParamBlock2 *newPB=NULL) |
PB2Export int | CopyParamBlock2ToParamBlock (IParamBlock2 *pb2, IParamBlock *pb1, ParamBlockDescID *pdescPB1, int pb1Count) |
PB2Export bool | IsParamTypeAnimatable (const ParamType2 t) |
#define P_CLASS_PARAMS 0x0001 |
this block holds class-level parameters, attached to ClassDesc
#define P_AUTO_CONSTRUCT 0x0002 |
instructs ClassDesc2 to autoconstuct this block & wire it in, requires pblock refno
#define P_AUTO_UI 0x0004 |
this block support automatic UI rollout managements, requires rollout template res ID, etc.
#define P_USE_PARAMS 0x0008 |
this block shares (exactly) the paramdefs from another descriptor, requires address of source descriptor
#define P_INCLUDE_PARAMS 0x0010 |
this block loads in a copy the paramdefs from another descriptor, requires address of source descriptor
#define P_MULTIMAP 0x0020 |
indicates this block as mulitple parameter maps ### move me
#define P_CALLSETS_ON_LOAD 0x0040 |
causes CallSets() to be called during load PLCB for this block
#define P_HASCATEGORY 0x0080 |
indicates, that category field is defined for rollup (after rollupproc)
#define P_TEMPLATE_UI 0x0100 |
indicates that dialog templates will be provided or constructed
#define P_VERSION 0x0200 |
Indicates a parameter block version number is specified.
When used as a ParamBlockDesc2 flag, a version number is expected immediately after the flags field, before the reference number field. This version number will be stored as ParamBlockDesc2::version and returned as IParamBlock2::GetVersion() indicates a version number is specified (integer value, before pblock refno)
#define P_SCRIPTED_CLASS 0x1000 |
belongs to a scripted plug-in class
#define P_TEMPORARY 0x2000 |
temporary descriptor built during scene load to support schema migration
#define P_ANIMATABLE 0x00000001 |
animatable param
#define P_TRANSIENT 0x00000002 |
do not store actual value, PBAccessor-derived
#define P_NO_INIT 0x00000004 |
do not initialize
#define P_COMPUTED_NAME 0x00000008 |
call compute name fn to get name
#define P_INVISIBLE 0x00000010 |
not visible in track view (if an animatable)
#define P_RESET_DEFAULT 0x00000020 |
do not make create params sticky, reset to defaults always
#define P_SUBANIM 0x00000040 |
non-animatable reference param is still a subanim (makes it visible in TV)
#define P_TV_SHOW_ALL 0x00000080 |
for Tab<> animatables, show all entries even if no controller assigned
#define P_NO_REF 0x00000100 |
for reftarg params do not maintain Reference automatically
#define P_OWNERS_REF 0x00000200 |
reference param maintained by owner, specify owner's reference number via the p_refno tag
#define P_CAN_CONVERT 0x00000400 |
indicates the p_classid validator is is in a CanConvertoTo() call, rather than as exact class
#define P_SUBTEX 0x00000800 |
indicates texmap param is kept by owner using MtlBase::xSubTexmap protocol, give subtex # in p_subtexno
#define P_VARIABLE_SIZE 0x00001000 |
Tab<> param is variable size allowing scripted changes.
#define P_NO_AUTO_LABELS 0x00002000 |
don't auto-set map & mtl names for associated button UI controls
#define P_SHORT_LABELS 0x00004000 |
use short auto names for associated button UI controls
#define P_READ_ONLY 0x00008000 |
this parameter is not assignable through MAXScript (allows try-and-buy 3rd-party plugins)
#define P_OBSOLETE 0x40000000 |
Indicates parameter is obsolete.
#define P_READ_SECOND_FLAG_VALUE 0x80000000 |
Indicates that a second per param constructor-specifiable flag value follows the first in the ParamBlockDesc2.
#define P_USE_ACCESSOR_ONLY 0x00000001 |
Indicates whether or not when doing a get or set on a param2 value that we only go through the accessor if one is available.
#define P_IS_REF 0x0000000000010000 |
is a reftarget param
#define P_HAS_DEFAULT 0x0000000000020000 |
has accessor function => a virtual param
#define P_HAS_CUR_DEFAULT 0x0000000000040000 |
has a snapshotted current default value
#define P_HAS_MS_DEFAULT 0x0000000000080000 |
has a MAXScript default
#define P_HAS_RANGE 0x0000000000100000 |
has a range specified
#define P_HAS_CLASS_ID 0x0000000000200000 |
a classID validator was given
#define P_HAS_SCLASS_ID 0x0000000000400000 |
an SClassID validator was given
#define P_UI_ENABLED 0x0000000000800000 |
indicates whether UI controls are initially enabled or diabled
#define P_HAS_PROMPT 0x0000000001000000 |
has status line prompt string res ID for various picker buttons
#define P_HAS_CAPTION 0x0000000002000000 |
has caption string res ID for open/save file dlgs
#define P_HAS_FILETYPES 0x0000000004000000 |
has file types string res ID for open/save file dlgs (in MAXScript type: form)
#define P_HAS_REFNO 0x0000000008000000 |
has refno supplied
#define P_HAS_SUBTEXNO 0x0000000010000000 |
has subtexno supplied
#define P_INCLUDED 0x0000000020000000 |
#define P_HAS_TOOLTIP 0x0001000000000000 |
has ToolTip string
#define P_HAS_ASSETTYPE 0x0002000000000000 |
has asset type
#define P_HAS_ASSETTYPENAME 0x0004000000000000 |
has asset type name
#define base_type | ( | t | ) | ((ParamType2)((t) & ~(TYPE_TAB))) |
get base type ignoring Tab flag
#define root_type | ( | t | ) | ((ParamType2)((t) & ~(TYPE_TAB | TYPE_BY_VAL | TYPE_BY_REF | TYPE_BY_PTR))) |
get base type ignoring all flags
#define is_tab | ( | t | ) | ((t) & TYPE_TAB) |
is this param a table?
#define is_by_val | ( | t | ) | ((t) & TYPE_BY_VAL) |
is this param passed by value? (only for FnPub)
#define is_by_ref | ( | t | ) | ((t) & TYPE_BY_REF) |
is this param passed by reference? (only for FnPub)
#define is_by_ptr | ( | t | ) | ((t) & TYPE_BY_PTR) |
is this param passed by pointer? (only for FnPub)
#define is_ref | ( | d | ) | (((d).flags & (P_IS_REF | P_NO_REF | P_OWNERS_REF)) == P_IS_REF) |
is this param a true local refmaker?
#define has_ui | ( | d | ) | ((d).ctrl_count > 0) |
this param has UI info defined
#define reftarg_type | ( | t | ) |
#define IPARAMBLOCK2POSTLOADINFO_ID Interface_ID(0x6c7b290a, 0x7c56423c) |
PB2Export IParamBlock2* CreateParameterBlock2 | ( | ParamBlockDesc2 * | pdesc, |
ReferenceMaker * | iowner | ||
) |
PB2Export void SetPB2MacroRecorderInterface | ( | MacroRecorder * | mri | ) |
PB2Export IParamBlock2* UpdateParameterBlock2 | ( | ParamBlockDescID * | pdescOld, |
int | oldCount, | ||
IParamBlock * | oldPB, | ||
ParamBlockDesc2 * | pdescNew, | ||
IParamBlock2 * | newPB = NULL |
||
) |
PB2Export int CopyParamBlock2ToParamBlock | ( | IParamBlock2 * | pb2, |
IParamBlock * | pb1, | ||
ParamBlockDescID * | pdescPB1, | ||
int | pb1Count | ||
) |
PB2Export bool IsParamTypeAnimatable | ( | const ParamType2 | t | ) |