Public Member Functions

IRendParams Class Reference

This reference page is linked to from the following overview topics: Tabbed Dialogs.


Search for all occurrences

Detailed Description

This is the interface given to a renderer, or atmospheric effect when it needs to display its parameters.

For a renderer, the Render Scene dialog may be extended using this class. All methods of this class are implemented by the system.

See also:
Class TimeChangeCallback, Class RendPickProc.

#include <render.h>

Inheritance diagram for IRendParams:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual TimeValue  GetTime ()=0
  Returns the current position of the frame slider.
virtual void  RegisterTimeChangeCallback (TimeChangeCallback *tc)=0
  Register a callback object that will get called every time the current animation time is changed.
virtual void  UnRegisterTimeChangeCallback (TimeChangeCallback *tc)=0
  Un-registers a callback object registered using RegisterTimeChangeCallback().
virtual MtlBase DoMaterialBrowseDlg (HWND hParent, DWORD flags, BOOL &newMat, BOOL &cancel)=0
  Brings up the material browse dialog allowing the user to select a material.
virtual HWND  AddRollupPage (HINSTANCE hInst, MCHAR *dlgTemplate, DLGPROC dlgProc, MCHAR *title, LPARAM param=0, DWORD flags=0, int category=ROLLUP_CAT_STANDARD)=0
  This method adds rollup pages to the dialog and returns the window handle of the page.
virtual HWND  AddRollupPage (HINSTANCE hInst, DLGTEMPLATE *dlgTemplate, DLGPROC dlgProc, MCHAR *title, LPARAM param=0, DWORD flags=0, int category=ROLLUP_CAT_STANDARD)=0
virtual void  DeleteRollupPage (HWND hRollup)=0
  Removes a rollup page and destroys it.
virtual void  RollupMouseMessage (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)=0
  This allows hand cursor scrolling when the user clicks the mouse in an unused area of the dialog.
virtual void  SetPickMode (RendPickProc *proc)=0
  This will set the command mode to a standard pick mode.
virtual void  EndPickMode ()=0
  If a plug-in is finished editing its parameters it should not leave the user in a pick mode.
virtual void  PutMtlToMtlEditor (MtlBase *mb)=0
  When a plugin has a Texmap, clicking on the button associated with that map should cause this routine to be called.
virtual float  GetMaxPixelSize ()=0
  This method is used internally.
virtual INT_PTR  Execute (int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0)
virtual IRollupWindow GetIRollup ()=0
virtual HWND  AddTabRollupPage (const Class_ID &id, HINSTANCE hInst, MCHAR *dlgTemplate, DLGPROC dlgProc, MCHAR *title, LPARAM param=0, DWORD flags=0, int category=ROLLUP_CAT_STANDARD)
virtual HWND  AddTabRollupPage (const Class_ID &id, HINSTANCE hInst, DLGTEMPLATE *dlgTemplate, DLGPROC dlgProc, MCHAR *title, LPARAM param=0, DWORD flags=0, int category=ROLLUP_CAT_STANDARD)
virtual void  DeleteTabRollupPage (const Class_ID &id, HWND hRollup)
virtual void  RollupTabMouseMessage (const Class_ID &id, HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
virtual IRollupWindow GetTabIRollup (const Class_ID &id)
virtual ITabbedDialog GetTabDialog ()
virtual ITabPage GetTabPage (const Class_ID &id)

Member Function Documentation

virtual TimeValue GetTime ( ) [pure virtual]

Returns the current position of the frame slider.

virtual void RegisterTimeChangeCallback ( TimeChangeCallback tc ) [pure virtual]

Register a callback object that will get called every time the current animation time is changed.

Parameters:
TimeChangeCallback *tc

The callback object to register.
virtual void UnRegisterTimeChangeCallback ( TimeChangeCallback tc ) [pure virtual]

Un-registers a callback object registered using RegisterTimeChangeCallback().

Parameters:
TimeChangeCallback *tc

The callback object to un-register.
virtual MtlBase* DoMaterialBrowseDlg ( HWND  hParent,
DWORD  flags,
BOOL &  newMat,
BOOL &  cancel 
) [pure virtual]

Brings up the material browse dialog allowing the user to select a material.

Parameters:
HWND hParent

The parent window handle.

DWORD flags

See Material Browser Flags .

BOOL &newMat

Set to TRUE if the material is new OR cloned; otherwise FALSE.

BOOL &cancel

Set to TRUE if the user cancels the dialog; otherwise FALSE.
Returns:
The material returned will be NULL if the user selects 'None'
virtual HWND AddRollupPage ( HINSTANCE  hInst,
MCHAR *  dlgTemplate,
DLGPROC  dlgProc,
MCHAR *  title,
LPARAM  param = 0,
DWORD  flags = 0,
int  category = ROLLUP_CAT_STANDARD 
) [pure virtual]

This method adds rollup pages to the dialog and returns the window handle of the page.

Parameters:
HINSTANCE hInst

The DLL instance handle of the plug-in.

MCHAR *dlgTemplate

The dialog template for the rollup page.

DLGPROC dlgProc

The dialog proc to handle the message sent to the rollup page.

MCHAR *title

The title displayed in the title bar.

LPARAM param=0

Any specific data to pass along may be stored here. This may be later retrieved using the GetWindowLong() call from the Windows API.

DWORD flags=0

APPENDROLL_CLOSED

Starts the page in the rolled up state.

int category = ROLLUP_CAT_STANDARD

The category parameter provides flexibility with regard to where a particular rollup should be displayed in the UI. RollupPanels with lower category fields will be displayed before RollupPanels with higher category fields. For RollupPanels with equal category value the one that was added first will be displayed first. Allthough it is possible to pass any int value as category there exist currently 5 different category defines: ROLLUP_CAT_SYSTEM, ROLLUP_CAT_STANDARD, and ROLLUP_CAT_CUSTATTRIB.

When using ROLLUP_SAVECAT, the rollup page will make the provided category sticky, meaning it will not read the category from the RollupOrder.cfg file, but rather save the category field that was passed as argument in the CatRegistry and in the RollupOrder.cfg file.

The method will take the category of the replaced rollup in case the flags argument contains ROLLUP_USEREPLACEDCAT. This is mainly done, so that this system works with param maps as well.
Returns:
The window handle of the rollup page.
virtual HWND AddRollupPage ( HINSTANCE  hInst,
DLGTEMPLATE *  dlgTemplate,
DLGPROC  dlgProc,
MCHAR *  title,
LPARAM  param = 0,
DWORD  flags = 0,
int  category = ROLLUP_CAT_STANDARD 
) [pure virtual]
Remarks:
This method adds rollup pages to the dialog and returns the window handle of the page. This method is currently not being used.
Parameters:
HINSTANCE hInst

The DLL instance handle of the plug-in.

DLGTEMPLATE *dlgTemplate

The dialog template for the rollup page.

DLGPROC dlgProc

The dialog proc to handle the message sent to the rollup page.

MCHAR *title

The title displayed in the title bar.

LPARAM param=0

Any specific data to pass along may be stored here. This may be later retrieved using the GetWindowLong() call from the Windows API.

DWORD flags=0

APPENDROLL_CLOSED

Starts the page in the rolled up state.

int category = ROLLUP_CAT_STANDARD

The category parameter provides flexibility with regard to where a particular rollup should be displayed in the UI. RollupPanels with lower category fields will be displayed before RollupPanels with higher category fields. For RollupPanels with equal category value the one that was added first will be displayed first. Allthough it is possible to pass any int value as category there exist currently 5 different category defines: ROLLUP_CAT_SYSTEM, ROLLUP_CAT_STANDARD, and ROLLUP_CAT_CUSTATTRIB.

When using ROLLUP_SAVECAT, the rollup page will make the provided category sticky, meaning it will not read the category from the RollupOrder.cfg file, but rather save the category field that was passed as argument in the CatRegistry and in the RollupOrder.cfg file.

The method will take the category of the replaced rollup in case the flags argument contains ROLLUP_USEREPLACEDCAT. This is mainly done, so that this system works with param maps as well.
Returns:
The window handle of the rollup page.
virtual void DeleteRollupPage ( HWND  hRollup ) [pure virtual]

Removes a rollup page and destroys it.

Parameters:
HWND hRollup

The handle of the rollup window. This is the handle returned from AddRollupPage().
virtual void RollupMouseMessage ( HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
) [pure virtual]

This allows hand cursor scrolling when the user clicks the mouse in an unused area of the dialog.

When the user mouses down in dead area of the dialog, the plug-in should pass mouse messages to this function which will pass them on to the rollup.

Note: In 3ds Max 2.0 and later only use of this method is no longer required -- the functionality happens automatically.

Parameters:
HWND hDlg

The window handle of the dialog.

UINT message

The message sent to the dialog proc.

WPARAM wParam

Passed in to the dialog proc. Pass along to this method.

LPARAM lParam

Passed in to the dialog proc. Pass along to this method.
virtual void SetPickMode ( RendPickProc proc ) [pure virtual]

This will set the command mode to a standard pick mode.

The callback implements hit testing and a method that is called when the user actually picks an item.

Parameters:
RendPickProc *proc

The callback object. See Class RendPickProc.
virtual void EndPickMode ( ) [pure virtual]

If a plug-in is finished editing its parameters it should not leave the user in a pick mode.

This method will flush out any pick modes in the command stack.

virtual void PutMtlToMtlEditor ( MtlBase mb ) [pure virtual]

When a plugin has a Texmap, clicking on the button associated with that map should cause this routine to be called.

Parameters:
MtlBase *mb

The MtlBase (Texmap or Mtl) to put to the materials editor.
virtual float GetMaxPixelSize ( ) [pure virtual]

This method is used internally.

virtual INT_PTR Execute ( int  cmd,
ULONG_PTR  arg1 = 0,
ULONG_PTR  arg2 = 0,
ULONG_PTR  arg3 = 0 
) [inline, virtual]
Remarks:
This is a general purpose function that allows the API to be extended in the future. The 3ds Max development team can assign new cmd numbers and continue to add functionality to this class without having to 'break' the API.
Parameters:
int cmd

The index of the command to execute.

ULONG_PTR arg1=0

Optional argument 1. See the documentation where the cmd option is discussed for more details on these parameters.

ULONG_PTR arg2=0

Optional argument 2.

ULONG_PTR arg3=0

Optional argument 3.
Returns:
An integer return value. See the documentation where the cmd option is discussed for more details on the meaning of this value.
{ return 0; } 
virtual IRollupWindow* GetIRollup ( ) [pure virtual]
virtual HWND AddTabRollupPage ( const Class_ID id,
HINSTANCE  hInst,
MCHAR *  dlgTemplate,
DLGPROC  dlgProc,
MCHAR *  title,
LPARAM  param = 0,
DWORD  flags = 0,
int  category = ROLLUP_CAT_STANDARD 
) [inline, virtual]
    {
        return AddRollupPage(hInst, dlgTemplate, dlgProc, title, param, flags, category);
    }
virtual HWND AddTabRollupPage ( const Class_ID id,
HINSTANCE  hInst,
DLGTEMPLATE *  dlgTemplate,
DLGPROC  dlgProc,
MCHAR *  title,
LPARAM  param = 0,
DWORD  flags = 0,
int  category = ROLLUP_CAT_STANDARD 
) [inline, virtual]
    {
        return AddRollupPage(hInst, dlgTemplate, dlgProc, title, param, flags, category);
    }
virtual void DeleteTabRollupPage ( const Class_ID id,
HWND  hRollup 
) [inline, virtual]
virtual void RollupTabMouseMessage ( const Class_ID id,
HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
) [inline, virtual]
    {
        RollupMouseMessage(hDlg, message, wParam, lParam);
    }
virtual IRollupWindow* GetTabIRollup ( const Class_ID id ) [inline, virtual]
virtual ITabbedDialog* GetTabDialog ( ) [inline, virtual]
    {
        return NULL;
    }
virtual ITabPage* GetTabPage ( const Class_ID id ) [inline, virtual]
    {
        return NULL;
    }

IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams
IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams IRendParams