📄 maxapi.h
字号:
// matched by a call to enable it, since this is implemented with an
// internal counter. This can be used to stop scene redraws from
// happening during rendering, for example.
virtual void DisableSceneRedraw()=0;
virtual void EnableSceneRedraw()=0;
virtual int IsSceneRedrawDisabled()=0; // returns non-zero if disabled
// Register a call back object that gets called evrytime
// the viewports are redrawn.
virtual void RegisterRedrawViewsCallback(RedrawViewsCallback *cb)=0;
virtual void UnRegisterRedrawViewsCallback(RedrawViewsCallback *cb)=0;
// For use with extended views:
// - make the extended viewport active (set on mouse click, for example)
// - put up the view type popup menu (put up on right-click, for example)
virtual void MakeExtendedViewportActive(HWND hWnd)=0;
virtual void PutUpViewMenu(HWND hWnd, POINT pt)=0;
// Execute a track view pick dialog.
virtual BOOL TrackViewPickDlg(HWND hParent, TrackViewPick *res, TrackViewFilter *filter=NULL, DWORD flags=0)=0;
//watje
virtual BOOL TrackViewPickMultiDlg(HWND hParent, Tab<TrackViewPick> *res, TrackViewFilter *filter=NULL,DWORD flags=0)=0;
// Command mode methods
virtual void PushCommandMode( CommandMode *m )=0;
virtual void SetCommandMode( CommandMode *m )=0;
virtual void PopCommandMode()=0;
virtual CommandMode* GetCommandMode()=0;
virtual void SetStdCommandMode( int cid )=0;
virtual void PushStdCommandMode( int cid )=0;
virtual void RemoveMode( CommandMode *m )=0;
virtual void DeleteMode( CommandMode *m )=0;
// 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 pick an item.
virtual void SetPickMode(PickModeCallback *pc)=0;
// makes sure no pick modes are in the command stack.
virtual void ClearPickMode()=0;
// Puts up a hit by name dialog. If the callback is NULL it
// just does a standard select by name.
// returns TRUE if the user OKs the dialog, FALSE otherwise.
virtual BOOL DoHitByNameDialog(HitByNameDlgCallback *hbncb=NULL)=0;
// status panel prompt stuff
virtual void PushPrompt( TCHAR *s )=0;
virtual void PopPrompt()=0;
virtual void ReplacePrompt( TCHAR *s )=0;
virtual void DisplayTempPrompt( TCHAR *s, int msec=1000)=0;
virtual void RemoveTempPrompt()=0;
// put up a directory choose dialog
// hWnd = parent
// title is dialog box title
// dir is return value for chosen dir (empty on cancel)
// desc, if non-null, puts up a description field and returns new desc.
virtual void ChooseDirectory(HWND hWnd, TCHAR *title, TCHAR *dir, TCHAR *desc=NULL)=0;
// auto-backup control -- times are in minutes
virtual float GetAutoBackupTime()=0;
virtual void SetAutoBackupTime(float minutes)=0;
virtual BOOL AutoBackupEnabled()=0;
virtual void EnableAutoBackup(BOOL onOff)=0;
// status panel progress bar
virtual BOOL ProgressStart(TCHAR *title, BOOL dispBar, LPTHREAD_START_ROUTINE fn, LPVOID arg)=0;
virtual void ProgressUpdate(int pct, BOOL showPct = TRUE, TCHAR *title = NULL)=0;
virtual void ProgressEnd()=0;
virtual BOOL GetCancel()=0;
virtual void SetCancel(BOOL sw)=0;
// create preview from active view.
// If pvp is NULL, this uses the parameters from the preview rendering dialog box.
virtual void CreatePreview(PreviewParams *pvp=NULL)=0;
// Some info about the current grid settings
virtual float GetGridSpacing()=0;
virtual int GetGridMajorLines()=0;
// Write values to x,y,z status boxes. Before doing this, mouse
// tracking must be disabled. Typically a plug-in would disable
// mouse tracking on mouse down and enable it on mouse up.
virtual void DisableStatusXYZ()=0;
virtual void EnableStatusXYZ()=0;
virtual void SetStatusXYZ(Point3 xyz,int type)=0;
virtual void SetStatusXYZ(AngAxis aa)=0; // this will convert the aa for status display
// Extended display modes (such as camera cones that only appear when dragging a camera)
virtual void SetExtendedDisplayMode(int flags)=0;
virtual int GetExtendedDisplayMode()=0;
// UI flyoff timing
virtual void SetFlyOffTime(int msecs)=0;
virtual int GetFlyOffTime()=0;
// Get standard Jaguar cursors.
virtual HCURSOR GetSysCursor( int id )=0;
// Turn on or off a cross hair cursor which draws horizontal and vertical
// lines the size of the viewport's width and height and intersect at
// the mouse position.
virtual void SetCrossHairCur(BOOL onOff)=0;
virtual BOOL GetCrossHairCur()=0;
// This pops all modes above the create or modify mode.
// NOTE: This is obsolete with the new modifiy panel design.
virtual void RealizeParamPanel()=0;
// Snap an angle value (in radians)
virtual float SnapAngle(float angleIn, BOOL fastSnap=TRUE, BOOL forceSnap=FALSE)=0;
// Snap a percentage value (1.0 = 100%)
virtual float SnapPercent(float percentIn)=0;
// Get the snap switch state
virtual BOOL GetSnapState()=0;
// Get the snap type -- Absolute or Relative (grid.h)
virtual int GetSnapMode()=0;
// Set the snap mode -- Set to absolute will fail if not in screen space
// Returns TRUE if succeeded
virtual BOOL SetSnapMode(int mode)=0;
// Hit tests the screen position for nodes and returns a
// INode pointer if one is hit, NULL otherwise.
virtual INode *PickNode(HWND hWnd,IPoint2 pt,PickNodeCallback *filt=NULL)=0;
// Region hit testing. To access the result, use the ViewExp funtions
// GetClosestHit() or GetHit().
virtual void BoxPickNode(ViewExp *vpt,IPoint2 *pt,BOOL crossing,PickNodeCallback *filt=NULL)=0;
virtual void CirclePickNode(ViewExp *vpt,IPoint2 *pt,BOOL crossing,PickNodeCallback *filt=NULL)=0;
virtual void FencePickNode(ViewExp *vpt,IPoint2 *pt,BOOL crossing,PickNodeCallback *filt=NULL)=0;
//----- Modify-related Methods--------------------------
// Registers the sub-object types for a given plug-in object type.
virtual void RegisterSubObjectTypes( const TCHAR **types, int count,
int startIndex = 0)=0;
// Add sub-object named selection sets the named selection set drop down.
// This should be done whenever the selection level changes.
virtual void AppendSubObjectNamedSelSet(const TCHAR *set)=0;
// Clear the named selections from the drop down.
virtual void ClearSubObjectNamedSelSets()=0;
// Clears the edit field of the named selection set drop down
virtual void ClearCurNamedSelSet()=0;
// Sets the edit field of the named selection set drop down
virtual void SetCurNamedSelSet(TCHAR *setName)=0;
// new for V2... tell the system that the named sets have changed at
// that the drop down needs to be rebuilt.
virtual void NamedSelSetListChanged()=0;
// Returns the state of the sub object drop-down. 0 is object level
// and >= 1 refer to the levels registered by the object.
virtual int GetSubObjectLevel()=0;
// Sets the sub-object drop down. This will cause the object being edited
// to receive a notification that the current subobject level has changed.
// if force == TRUE, the it will set the level even if the current
// level is the same as the level requested. This is to support
// objects that change sub-object levels on the fly, like NURBS
virtual void SetSubObjectLevel(int level, BOOL force = FALSE)=0;
// Returns the number of entries in the sub-object drop down list.
virtual int GetNumSubObjectLevels()=0;
// Enables or disables sub object selection. Note that it
// will already be disabled if there are no subobject levels
// registered. In this case, it can not be enabled.
virtual void EnableSubObjectSelection(BOOL enable)=0;
virtual BOOL IsSubObjectSelectionEnabled()=0;
// Notifies the system that the selection level in the pipeline has chaned.
virtual void PipeSelLevelChanged()=0;
// Returns the sub-object selection level at the point in the
// pipeline just before the current place in the history.
virtual void GetPipelineSubObjLevel(DWORDTab &levels)=0;
// Get's all instance contexts for the modifier at the current
// place in the history.
virtual void GetModContexts(ModContextList& list, INodeTab& nodes)=0;
// Get the object (or modifier) that is currently being edited in the
// modifier panel
virtual BaseObject* GetCurEditObject()=0;
// Hit tests the object currently being edited at the sub object level.
virtual int SubObHitTest(TimeValue t, int type, int crossing,
int flags, IPoint2 *p, ViewExp *vpt)=0;
// Is the selection set frozen?
virtual BOOL SelectionFrozen()=0;
virtual void FreezeSelection()=0;
virtual void ThawSelection()=0;
// Nodes in the current selection set.
virtual INode *GetSelNode(int i)=0;
virtual int GetSelNodeCount()=0;
// Enable/disable, get/set show end result.
virtual void EnableShowEndResult(BOOL enabled)=0;
virtual BOOL GetShowEndResult ()=0;
virtual void SetShowEndResult (BOOL show)=0;
// Returns the state of the 'crossing' preference for hit testing.
virtual BOOL GetCrossing()=0;
// Sets the state of one of the transform tool buttons.
// TRUE indecates pressed, FALSE is not pressed.
virtual void SetToolButtonState(int button, BOOL state )=0;
virtual BOOL GetToolButtonState(int button)=0;
virtual void EnableToolButton(int button, BOOL enable=TRUE )=0;
// Enable and disable Undo/Redo.
virtual void EnableUndo(BOOL enable)=0;
// Get and set the command panel task mode
virtual int GetCommandPanelTaskMode()=0;
virtual void SetCommandPanelTaskMode(int mode)=0;
// Finds the vpt given the HWND
virtual ViewExp *GetViewport( HWND hwnd )=0;
virtual void ReleaseViewport( ViewExp *vpt )=0;
// Disables/Enables animate button
virtual void EnableAnimateButton(BOOL enable)=0;
virtual BOOL IsAnimateEnabled()=0;
// Turns the animate button on or off
virtual void SetAnimateButtonState(BOOL onOff)=0;
// Registers a callback that gets called whenever the axis
// system is changed.
virtual void RegisterAxisChangeCallback(AxisChangeCallback *cb)=0;
virtual void UnRegisterAxisChangeCallback(AxisChangeCallback *cb)=0;
// Gets/Sets the state of the axis constraints.
virtual int GetAxisConstraints()=0;
virtual void SetAxisConstraints(int c)=0;
virtual void EnableAxisConstraints(int c,BOOL enabled)=0;
// An axis constraint stack
virtual void PushAxisConstraints(int c) = 0;
virtual void PopAxisConstraints() = 0;
// Gets/Sets the state of the coordinate system center
virtual int GetCoordCenter()=0;
virtual void SetCoordCenter(int c)=0;
virtual void EnableCoordCenter(BOOL enabled)=0;
// Gets/Sets the reference coordinate systems
virtual int GetRefCoordSys()=0;
virtual void SetRefCoordSys(int c)=0;
virtual void EnableRefCoordSys(BOOL enabled)=0;
// Get/Set the state of the plug-in keyaboard accel toggle.
virtual BOOL GetPluginKeysEnabled()=0;
virtual void SetPluginKeysEnabled(BOOL onOff)=0;
// Gets the axis which define the space in which transforms should
// take place.
// The node and subIndex refer to the object and sub object which the axis
// system should be based on (this should be the thing the user clicked on)
// If 'local' is not NULL, it will be set to TRUE if the center of the axis
// is the pivot point of the node, FALSE otherwise.
virtual Matrix3 GetTransformAxis(INode *node,int subIndex,BOOL* local = NULL)=0;
// This returns the number of axis tripods in the scene. When transforming
// multiple sub-objects, in some cases each sub-object is transformed in
// a different space.
// Return Values:
// NUMAXIS_ZERO - Nothing to transform
// NUMAXIS_ALL - Use only one axis.
// NUMAXIS_INDIVIDUAL - Do all, one at a time
virtual int GetNumAxis()=0;
// Locks axis tripods so that they will not be updated.
virtual void LockAxisTripods(BOOL onOff)=0;
virtual BOOL AxisTripodLocked()=0;
// Registers a dialog window so IsDlgMesage() gets called for it.
virtual void RegisterDlgWnd( HWND hDlg )=0;
virtual int UnRegisterDlgWnd( HWND hDlg )=0;
// Registers a keyboard accelerator table
// These functions are obsolete. Use the AcceleratorTable
// funciton below to get tables that use the keyboard prefs dialog
virtual void RegisterAccelTable( HWND hWnd, HACCEL hAccel )=0;
virtual int UnRegisterAccelTable( HWND hWnd, HACCEL hAccel )=0;
// Accerator tables that participate in the keyboard preference dialog
// Shortcut tables are registered at DLL load-time.
virtual int ActivateShortcutTable(ShortcutCallback* pCallback, ShortcutTableId id)=0;
virtual int DeactivateShortcutTable(ShortcutCallback* pCallback, ShortcutTableId id)=0;
virtual BOOL GetShortcutString(ShortcutTableId tableId, int commandId,
TCHAR* buf)=0;
virtual BOOL GetShortcutOpName(ShortcutTableId tableId, int commandId,
TCHAR* buf)=0;
virtual int GetShortcutCount(ShortcutTableId tableId)=0;
virtual int GetShortcutCommandId(ShortcutTableId tableId, int index)=0;
virtual TCHAR *GetShortcutCommandName(ShortcutTableId tableId, int index)=0;
virtual ShortcutCallback* GetCurShortcutCallback()=0;
virtual ShortcutTableId GetCurShortcutTableId()=0;
// Adds rollup pages to the command panel. Returns the window
// handle of the dialog that makes up the page.
virtual HWND AddRollupPage( HINSTANCE hInst, TCHAR *dlgTemplate,
DLGPROC dlgProc, TCHAR *title, LPARAM param=0,DWORD flags=0 )=0;
// Removes a rollup page and destroys it.
virtual void DeleteRollupPage( HWND hRollup )=0;
// Replaces existing rollup with another. (and deletes the old one)
virtual HWND ReplaceRollupPage( HWND hOldRollup, HINSTANCE hInst, TCHAR *dlgTemplate,
DLGPROC dlgProc, TCHAR *title, LPARAM param=0,DWORD flags=0)=0;
// Gets a rollup window interface to the command panel rollup
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -