imrShaderClassDesc Class Reference

#include <imrShaderClassDesc.h>

+ Inheritance diagram for imrShaderClassDesc:

Public Types

enum  ApplyTypes {
  kApply_Lens, kApply_Material, kApply_Light, kApply_Shadow,
  kApply_Environment, kApply_Volume, kApply_Texture, kApply_Photon,
  kApply_Geometry, kApply_Displace, kApply_PhotonEmitter, kApply_Output,
  kApply_LightMap, kApply_PhotonVol, kApply_Other, kApply_Bump,
  kApply_ContourShader, kApply_ContoutStore, kApply_ContourContrast, kApply_ContourOutput,
  kApply_Illum, kApply_PassMerge, kApply_MtlPhen, kApply_Count
}
 
enum  ApplyFlags {
  kApplyFlag_Lens = (1 << kApply_Lens), kApplyFlag_Material = (1 << kApply_Material), kApplyFlag_Light = (1 << kApply_Light), kApplyFlag_Shadow = (1 << kApply_Shadow),
  kApplyFlag_Environment = (1 << kApply_Environment), kApplyFlag_Volume = (1 << kApply_Volume), kApplyFlag_Texture = (1 << kApply_Texture), kApplyFlag_Photon = (1 << kApply_Photon),
  kApplyFlag_Geometry = (1 << kApply_Geometry), kApplyFlag_Displace = (1 << kApply_Displace), kApplyFlag_PhotonEmitter = (1 << kApply_PhotonEmitter), kApplyFlag_Output = (1 << kApply_Output),
  kApplyFlag_LightMap = (1 << kApply_LightMap), kApplyFlag_PhotonVol = (1 << kApply_PhotonVol), kApplyFlag_Other = (1 << kApply_Other), kApplyFlag_Bump = (1 << kApply_Bump),
  kApplyFlag_ContourShader = (1 << kApply_ContourShader), kApplyFlag_ContourStore = (1 << kApply_ContoutStore), kApplyFlag_ContourContrast = (1 << kApply_ContourContrast), kApplyFlag_ContourOutput = (1 << kApply_ContourOutput),
  kApplyFlag_Illum = (1 << kApply_Illum), kApplyFlag_PassMerge = (1 << kApply_PassMerge), kApplyFlag_MtlPhen = (1 << kApply_MtlPhen), kApplyFlag_All = (~0 & ~kApplyFlag_MtlPhen),
  kApplyFlag_Default = (kApplyFlag_Material | kApplyFlag_Texture | kApplyFlag_Illum | kApplyFlag_Bump)
}
 

Public Member Functions

virtual imrShaderCreateShader (bool loading=false)=0
 
virtual unsigned int GetApplyTypes ()=0
 
virtual mrShaderDesc & GetShaderDesc ()=0
 
virtual ParamBlockDesc2GetParamPBDesc ()=0
 
virtual Tab< ParamBlockDesc2 * > & GetParamSubPBDescs ()=0
 
virtual ParamBlockDesc2GetResultPBDesc ()=0
 
virtual Tab< ParamBlockDesc2 * > & GetResultPBDescs ()=0
 
virtual ParamBlockDesc2GetConnectionPBDesc ()=0
 
virtual Tab< ParamBlockDesc2 * > & GetConnectionSubPBDescs ()=0
 
virtual IAutoMParamDlgCreateShaderParamDlgs (HWND hwMtlEdit, IMtlParams *imp, ReferenceTarget *obj)=0
 
- Public Member Functions inherited from ClassDesc2
PB2Export ClassDesc2 ()
 
PB2Export ~ClassDesc2 ()
 
PB2Export void ResetClassParams (BOOL fileReset)
 
PB2Export int NumParamBlockDescs ()
 
PB2Export ParamBlockDesc2GetParamBlockDesc (int i)
 
PB2Export ParamBlockDesc2GetParamBlockDescByID (BlockID id)
 
PB2Export ParamBlockDesc2GetParamBlockDescByName (const MCHAR *name)
 
PB2Export void AddParamBlockDesc (ParamBlockDesc2 *pbd)
 
PB2Export void ClearParamBlockDescs ()
 
PB2Export void BeginEditParams (IObjParam *ip, ReferenceMaker *obj, ULONG flags, Animatable *prev)
 
PB2Export void EndEditParams (IObjParam *ip, ReferenceMaker *obj, ULONG flags, Animatable *prev)
 
PB2Export void InvalidateUI ()
 
PB2Export void InvalidateUI (ParamBlockDesc2 *pbd)
 
PB2Export void InvalidateUI (ParamBlockDesc2 *pbd, ParamID id, int tabIndex=-1)
 
PB2Export void MakeAutoParamBlocks (ReferenceMaker *owner)
 
PB2Export int NumParamMaps ()
 
PB2Export IParamMap2GetParamMap (int i)
 
PB2Export IParamMap2GetParamMap (ParamBlockDesc2 *pbd, MapID map_id=0)
 
PB2Export void SetUserDlgProc (ParamBlockDesc2 *pbd, MapID map_id, ParamMap2UserDlgProc *proc=NULL)
 
void SetUserDlgProc (ParamBlockDesc2 *pbd, ParamMap2UserDlgProc *proc=NULL)
 
PB2Export ParamMap2UserDlgProcGetUserDlgProc (ParamBlockDesc2 *pbd, MapID map_id=0)
 
PB2Export IAutoMParamDlgCreateParamDlgs (HWND hwMtlEdit, IMtlParams *imp, ReferenceTarget *obj)
 
PB2Export IAutoMParamDlgCreateParamDlg (BlockID id, HWND hwMtlEdit, IMtlParams *imp, ReferenceTarget *obj, MapID mapID=0)
 
PB2Export IAutoEParamDlgCreateParamDialogs (IRendParams *ip, SpecialFX *obj)
 
PB2Export IAutoEParamDlgCreateParamDialog (BlockID id, IRendParams *ip, SpecialFX *obj, MapID mapID=0)
 
PB2Export void MasterDlgDeleted (IAutoMParamDlg *dlg)
 
PB2Export void MasterDlgDeleted (IAutoEParamDlg *dlg)
 
PB2Export IAutoMParamDlgGetMParamDlg ()
 
PB2Export IAutoEParamDlgGetEParamDlg ()
 
PB2Export void RestoreRolloutState ()
 
PB2Export ParamID LastNotifyParamID (ReferenceMaker *owner, IParamBlock2 *&pb)
 
PB2Export void Reset (ReferenceMaker *owner, BOOL updateUI=TRUE, BOOL callSetHandlers=TRUE)
 
PB2Export void GetValidity (ReferenceMaker *owner, TimeValue t, Interval &valid)
 
PB2Export void RemoveParamBlockDesc (ParamBlockDesc2 *pbd)
 
- Public Member Functions inherited from ClassDesc
virtual ~ClassDesc ()
 
virtual int IsPublic ()=0
 Controls if the plug-in shows up in lists from the user to choose from. More...
 
virtual voidCreate (BOOL loading=FALSE)=0
 3ds Max calls this method when it needs a pointer to a new instance of the plug-in class. More...
 
virtual int BeginCreate (Interface *i)
 The custom creation process of the plug-in object is handled by this method. More...
 
virtual int EndCreate (Interface *i)
 The termination of the custom creation process is managed by the implementation of this method. More...
 
virtual const MCHARClassName ()=0
 This method returns the name of the class. More...
 
virtual SClass_ID SuperClassID ()=0
 This method returns a system defined constant describing the class this plug-in class was derived from. More...
 
virtual Class_ID ClassID ()=0
 This method must return the unique ID for the object. More...
 
virtual const MCHARCategory ()=0
 This methods returns a string describing the category a plug-in fits into. More...
 
virtual BOOL OkToCreate (Interface *i)
 This method is used to enable or disable the button that allows the plug-ins class to be created. More...
 
virtual BOOL HasClassParams ()
 If a plug-in class has default parameters that it needs to allow the user to edit, TRUE should be returned and EditClassParams() and ResetClassParams() should be implemented. More...
 
virtual void EditClassParams (HWND hParent)
 If the user picks the class from the list this method is called. More...
 
virtual DWORD InitialRollupPageState ()
 This method returns a DWORD which is used to initialize the rollup state in both the create branch and the modify branch. More...
 
virtual const MCHARInternalName ()
 Returns a string which provides a fixed, machine parsable internal name for the plug-in. More...
 
virtual HINSTANCE HInstance ()
 Returns the DLL instance handle of the plug-in. More...
 
virtual CoreExport const MCHARGetRsrcString (INT_PTR id)
 Returns a pointer to the string from the resource string table. More...
 
virtual bool DrawRepresentation (COLORREF bkColor, HDC hDC, Rect &rect)
 Allows a plug-in to provide a custom image for display in Schematic View. More...
 
virtual Class_ID SubClassID ()
 This method can be used for further categorizing plugins. More...
 
virtual INT_PTR Execute (int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0)
 This function is maintained so the 3ds Max SDK can be extended without breaking backwards compatibility. More...
 
virtual int NumActionTables ()
 3ds Max calls this to get the number of action tables a plug-in has. More...
 
virtual ActionTableGetActionTable (int i)
 Returns a pointer to the specified action table. More...
 
virtual BOOL IsManipulator ()
 Returns TRUE if the class implements a manipulator object; otherwise FALSE. More...
 
virtual BOOL CanManipulate (ReferenceTarget *hTarget)
 The method returns true if the class is a manipulator and it manipulates the given base object, modifier or controller. More...
 
virtual BOOL CanManipulateNode (INode *pNode)
 Returns TRUE if the manipulator applies to the given node; otherwise FALSE. More...
 
virtual ManipulatorCreateManipulator (ReferenceTarget *hTarget, INode *pNode)
 Creates a manipulator object When a manipulator returns TRUE to CanManipulate(ReferenceTarget* hTarget), the system calls this version of CreateManipulator() to create an instance of the manipulator. More...
 
virtual ManipulatorCreateManipulator (INode *pNode)
 Creates a manipulator object. More...
 
virtual BOOL NeedsToSave ()
 Returns TRUE if there is data associated with the class that needs to be saved in the 3ds Max file. More...
 
virtual IOResult Save (ISave *isave)
 If NeedsToSave() returns TRUE then this method should be implemented to save the data associated with the class. More...
 
virtual IOResult Load (ILoad *iload)
 If NeedsToSave() returns TRUE then this method should be implemented to load the data associated with the class. More...
 
virtual IParamMap2GetParamMap (ParamBlockDesc2 *pbd)
 Returns a pointer to the parameter map2 whose descriptor is passed. More...
 
virtual ParamMap2UserDlgProcGetUserDlgProc (ParamBlockDesc2 *pbd)
 Returns a pointer to the parameter map 2 user dialog proc (if any) for the specified descriptor. More...
 
virtual int NumInterfaces ()
 Returns the number of function publishing interfaces maintained by the class descriptor. More...
 
virtual FPInterfaceGetInterfaceAt (int i)
 Returns the nth function publishing interface. More...
 
virtual CoreExport FPInterfaceGetInterface (Interface_ID id)
 Returns a pointer to the function publishing interface whose ID is specified. More...
 
virtual CoreExport FPInterfaceGetInterface (const MCHAR *name)
 Returns a pointer to the function publishing interface whose name is specified. More...
 
virtual CoreExport void AddInterface (FPInterface *fpi)
 Adds the specified interface to the list maintained by this class descriptor. More...
 
virtual void ClearInterfaces ()
 Deletes all the interfaces maintained by the class descriptor. More...
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
virtual UtilExport BaseInterfaceGetInterface (Interface_ID id)
 

Additional Inherited Members

- 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...
 
- Protected Member Functions inherited from ClassDesc2
void SetMParamDlg (IAutoMParamDlg *dlg)
 Sets the root level material ParamDlg. More...
 
void SetEParamDlg (IAutoEParamDlg *dlg)
 Sets the root level effect ParamDlg. More...
 
Tab< IParamMap2 * > & GetParamMaps ()
 

Member Enumeration Documentation

enum ApplyTypes
Enumerator
kApply_Lens 
kApply_Material 
kApply_Light 
kApply_Shadow 
kApply_Environment 
kApply_Volume 
kApply_Texture 
kApply_Photon 
kApply_Geometry 
kApply_Displace 
kApply_PhotonEmitter 
kApply_Output 
kApply_LightMap 
kApply_PhotonVol 
kApply_Other 
kApply_Bump 
kApply_ContourShader 
kApply_ContoutStore 
kApply_ContourContrast 
kApply_ContourOutput 
kApply_Illum 
kApply_PassMerge 
kApply_MtlPhen 
kApply_Count 
38  {
39  // Types defined by the mental ray API
54  kApply_Other,
55 
56  // Additional types defined by the GUI attributes
64 
65  kApply_MtlPhen, // Shader is a material phenomenon
66 
68  };
Definition: imrShaderClassDesc.h:47
Definition: imrShaderClassDesc.h:53
Definition: imrShaderClassDesc.h:63
Definition: imrShaderClassDesc.h:61
Definition: imrShaderClassDesc.h:57
Definition: imrShaderClassDesc.h:65
Definition: imrShaderClassDesc.h:50
Definition: imrShaderClassDesc.h:67
Definition: imrShaderClassDesc.h:51
Definition: imrShaderClassDesc.h:44
Definition: imrShaderClassDesc.h:41
Definition: imrShaderClassDesc.h:52
Definition: imrShaderClassDesc.h:48
Definition: imrShaderClassDesc.h:54
Definition: imrShaderClassDesc.h:58
Definition: imrShaderClassDesc.h:43
Definition: imrShaderClassDesc.h:60
Definition: imrShaderClassDesc.h:42
Definition: imrShaderClassDesc.h:59
Definition: imrShaderClassDesc.h:62
Definition: imrShaderClassDesc.h:40
Definition: imrShaderClassDesc.h:45
Definition: imrShaderClassDesc.h:46
Definition: imrShaderClassDesc.h:49
enum ApplyFlags
Enumerator
kApplyFlag_Lens 
kApplyFlag_Material 
kApplyFlag_Light 
kApplyFlag_Shadow 
kApplyFlag_Environment 
kApplyFlag_Volume 
kApplyFlag_Texture 
kApplyFlag_Photon 
kApplyFlag_Geometry 
kApplyFlag_Displace 
kApplyFlag_PhotonEmitter 
kApplyFlag_Output 
kApplyFlag_LightMap 
kApplyFlag_PhotonVol 
kApplyFlag_Other 
kApplyFlag_Bump 
kApplyFlag_ContourShader 
kApplyFlag_ContourStore 
kApplyFlag_ContourContrast 
kApplyFlag_ContourOutput 
kApplyFlag_Illum 
kApplyFlag_PassMerge 
kApplyFlag_MtlPhen 
kApplyFlag_All 
kApplyFlag_Default 
71  {
72  // Types defined by the mental ray API
88 
89  // Additional types defined by the GUI attributes
90  //kApply_None, // Probably better remove this...
98 
100 
101  // All except mtl phenomenon
103 
104  // Default type accepts texure, material, illum, bump
106  };
Definition: imrShaderClassDesc.h:47
Definition: imrShaderClassDesc.h:53
Definition: imrShaderClassDesc.h:63
Definition: imrShaderClassDesc.h:81
Definition: imrShaderClassDesc.h:75
Definition: imrShaderClassDesc.h:95
Definition: imrShaderClassDesc.h:61
Definition: imrShaderClassDesc.h:57
Definition: imrShaderClassDesc.h:65
Definition: imrShaderClassDesc.h:76
Definition: imrShaderClassDesc.h:105
Definition: imrShaderClassDesc.h:94
Definition: imrShaderClassDesc.h:82
Definition: imrShaderClassDesc.h:79
Definition: imrShaderClassDesc.h:50
Definition: imrShaderClassDesc.h:96
Definition: imrShaderClassDesc.h:86
Definition: imrShaderClassDesc.h:51
Definition: imrShaderClassDesc.h:44
Definition: imrShaderClassDesc.h:41
Definition: imrShaderClassDesc.h:93
Definition: imrShaderClassDesc.h:83
Definition: imrShaderClassDesc.h:87
Definition: imrShaderClassDesc.h:52
Definition: imrShaderClassDesc.h:92
Definition: imrShaderClassDesc.h:80
Definition: imrShaderClassDesc.h:73
Definition: imrShaderClassDesc.h:84
Definition: imrShaderClassDesc.h:91
Definition: imrShaderClassDesc.h:77
Definition: imrShaderClassDesc.h:99
Definition: imrShaderClassDesc.h:48
Definition: imrShaderClassDesc.h:85
Definition: imrShaderClassDesc.h:74
Definition: imrShaderClassDesc.h:78
Definition: imrShaderClassDesc.h:54
Definition: imrShaderClassDesc.h:58
Definition: imrShaderClassDesc.h:43
Definition: imrShaderClassDesc.h:60
Definition: imrShaderClassDesc.h:42
Definition: imrShaderClassDesc.h:97
Definition: imrShaderClassDesc.h:59
Definition: imrShaderClassDesc.h:62
Definition: imrShaderClassDesc.h:40
Definition: imrShaderClassDesc.h:45
Definition: imrShaderClassDesc.h:46
Definition: imrShaderClassDesc.h:102
Definition: imrShaderClassDesc.h:49

Member Function Documentation

virtual imrShader* CreateShader ( bool  loading = false)
pure virtual
virtual unsigned int GetApplyTypes ( )
pure virtual
virtual mrShaderDesc& GetShaderDesc ( )
pure virtual
virtual ParamBlockDesc2* GetParamPBDesc ( )
pure virtual
virtual Tab<ParamBlockDesc2*>& GetParamSubPBDescs ( )
pure virtual
virtual ParamBlockDesc2* GetResultPBDesc ( )
pure virtual
virtual Tab<ParamBlockDesc2*>& GetResultPBDescs ( )
pure virtual
virtual ParamBlockDesc2* GetConnectionPBDesc ( )
pure virtual
virtual Tab<ParamBlockDesc2*>& GetConnectionSubPBDescs ( )
pure virtual
virtual IAutoMParamDlg* CreateShaderParamDlgs ( HWND  hwMtlEdit,
IMtlParams imp,
ReferenceTarget obj 
)
pure virtual