3ds Max C++ API Reference
SelectionProcessor Class Referenceabstract

#include <objmode.h>

+ Inheritance diagram for SelectionProcessor:

Public Member Functions

 SelectionProcessor (MouseCallBack *m, IObjParam *i)
 
virtual CoreExport int proc (HWND hwnd, int msg, int point, int flags, IPoint2 m)
 Called to handle the mouse event processing whenever a mouse event happens. More...
 
CoreExport void pan (IPoint2 d)
 
- Public Member Functions inherited from MouseCallBack
virtual ~MouseCallBack ()
 
virtual int override (int mode)
 Override the default drag mode. More...
 
void setMouseManager (MouseManager *mm)
 
MouseManagergetMouseManager ()
 
virtual BOOL SupportTransformGizmo ()
 Transform Gizmo Interface. More...
 
virtual void DeactivateTransformGizmo ()
 Deactivates the transform gizmo. More...
 
virtual BOOL SupportAutoGrid ()
 Returns FALSE by default, and needs to be overridden by the mouse procs wishing to utilize the AutoGrid feature. More...
 
virtual BOOL TolerateOrthoMode ()
 Returns FALSE by default. More...
 
- Public Member Functions inherited from BaseInterfaceServer
virtual UtilExport BaseInterfaceGetInterface (Interface_ID id)
 
virtual UtilExport int NumInterfaces () const
 
virtual UtilExport BaseInterfaceGetInterfaceAt (int i) const
 
virtual UtilExport ~BaseInterfaceServer ()
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Protected Member Functions

IPoint2Offset ()
 
virtual BOOL HitTest (ViewExp *vpt, IPoint2 *p, int type, int flags)=0
 
virtual BOOL AnyHits (ViewExp *vpt)=0
 
virtual HCURSOR GetTransformCursor ()=0
 
virtual void Select (ViewExp *vpt, BOOL all, BOOL isClear, BOOL isInvert)=0
 
virtual void DeSelect (ViewExp *vpt, BOOL all)=0
 
virtual void ClearSelection ()=0
 
virtual void CloneSelected (int initialCall=TRUE)=0
 
virtual void AbortClone ()=0
 
virtual void AcceptClone ()=0
 
virtual void SelectChildren (ViewExp *vpt)
 
virtual bool HasOverrideDoubleClickProc () const
 By default, SelectChildren(ViewExp*) will be called when double click message is triggered. More...
 
virtual void OverrideDoubleClickProc (ViewExp *vpt, int flags)
 Override double click handle function. More...
 

Protected Attributes

IObjParamip
 
- Protected Attributes inherited from BaseInterfaceServer
Tab< BaseInterface * > interfaces
 

Friends

class PaintSelectionProcessor
 

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...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Constructor & Destructor Documentation

◆ SelectionProcessor()

SelectionProcessor ( MouseCallBack m,
IObjParam i 
)
inline
190  { mcallback = m; ip = i; offset = IPoint2(0,0); }
Definition: ipoint2.h:33
IObjParam * ip
Definition: objmode.h:151

Member Function Documentation

◆ Offset()

IPoint2& Offset ( )
inlineprotected
154  {
155  return offset;
156  }

◆ HitTest()

virtual BOOL HitTest ( ViewExp vpt,
IPoint2 p,
int  type,
int  flags 
)
protectedpure virtual

◆ AnyHits()

virtual BOOL AnyHits ( ViewExp vpt)
protectedpure virtual

◆ GetTransformCursor()

◆ Select()

virtual void Select ( ViewExp vpt,
BOOL  all,
BOOL  isClear,
BOOL  isInvert 
)
protectedpure virtual

◆ DeSelect()

virtual void DeSelect ( ViewExp vpt,
BOOL  all 
)
protectedpure virtual

◆ ClearSelection()

virtual void ClearSelection ( )
protectedpure virtual

◆ CloneSelected()

virtual void CloneSelected ( int  initialCall = TRUE)
protectedpure virtual

◆ AbortClone()

virtual void AbortClone ( )
protectedpure virtual

◆ AcceptClone()

virtual void AcceptClone ( )
protectedpure virtual

◆ SelectChildren()

virtual void SelectChildren ( ViewExp vpt)
inlineprotectedvirtual
167 {}

◆ HasOverrideDoubleClickProc()

virtual bool HasOverrideDoubleClickProc ( ) const
inlineprotectedvirtual

By default, SelectChildren(ViewExp*) will be called when double click message is triggered.

If this function returns true, system will handle OverrideDoubleClickProc(ViewExp*, int) instead.

Returns
true if double click is handled.
176  {
177  return false;
178  }

◆ OverrideDoubleClickProc()

virtual void OverrideDoubleClickProc ( ViewExp vpt,
int  flags 
)
inlineprotectedvirtual

Override double click handle function.

Parameters
vptpointer to ViewExp
flagsThese flags describe the state of the mouse buttons. See Mouse Call Back Flags.
186 {}

◆ proc()

virtual CoreExport int proc ( HWND  hwnd,
int  msg,
int  point,
int  flags,
IPoint2  m 
)
virtual

Called to handle the mouse event processing whenever a mouse event happens.

Parameters
hwndThe window handle of the window in which the user has clicked. It is one of the viewports to which an interface can be obtained from the system. To get such interface, the window handle should be passes to the functions Interface::GetViewport() as the input. Developers should call Interface::ReleaseViewport() once they are done with the viewport interface.
msgThis message describes the type of event that occurred. See Mouse Call Back Flags.
pointThe point number. this is 0 for the first click, 1 for the second, etc.
flagsThese flags describe the state of the mouse buttons. See Mouse Call Back Flags.
mThe 2D screen point on which that the user has clicked. Methods in the viewport interface allow this point to be converted into a world space ray or a 3D view space point. A world space ray can be intersected with the active construction plane which results in a point on the active construction plane. See Class ViewExp.
Returns
TRUE, indicating the proc should continue to process points; or FALSE, meaning to stop processing points. If a plug-in supplied a large number of points in a command mode that uses this mouse proc, FALSE can be returned to abort the processing before all the points have been entered.

Reimplemented from MouseCallBack.

◆ pan()

CoreExport void pan ( IPoint2  d)
virtual

Reimplemented from MouseCallBack.

Friends And Related Function Documentation

◆ PaintSelectionProcessor

friend class PaintSelectionProcessor
friend

Member Data Documentation

◆ ip

IObjParam* ip
protected