3ds Max C++ API Reference
IGeometryCheckerManager Class Referenceabstract

The interface to the geometry checker manager. More...

#include <IGeometryChecker.h>

+ Inheritance diagram for IGeometryCheckerManager:

Public Member Functions

virtual IGeometryCheckerGetNthGeometryChecker (int index) const =0
 Get the nth GeometryChecker. More...
 
virtual MSTR GetNthGeometryCheckerName (int index) const =0
 Get the name of the nth Geometry Checker. More...
 
virtual bool ActivateGeometryChecker (int index)=0
 Activate this geometry checker so that it is the one that's run. More...
 
virtual int GetActivatedGeometryCheckerIndex () const =0
 Returns the index of the activated geometry checker. More...
 
virtual bool DoesGeometryCheckerHavePropDlg (int index) const =0
 Get whether or not the specified geometry checker has a property dialog. More...
 
virtual void ShowGeometryCheckerPropDlg (int index)=0
 Show the specified geometry checkers dialog. More...
 
virtual void RunGeometryCheck (TimeValue t)=0
 Run the current geometry check based upon the active geometry checker and the current selection set. More...
 
virtual IGeometryChecker::ReturnVal GeometryCheck (TimeValue t, INode *node, IGeometryChecker::OutputVal &val)=0
 Run the active geometry checker at this time and on this node. More...
 
virtual void PopupMenuSelect ()=0
 Show the selection popup menu that lets you pick different checkers to be active and modify different geometry checker manager properties. More...
 
virtual void SelectResults (TimeValue t)=0
 Select the results of the currently run geometry check on the currently selected node. More...
 
virtual void DisplayResults (Color *overrideColor, TimeValue t, INode *node, HWND hwnd, IGeometryChecker::ReturnVal type, Tab< int > &indices)=0
 Utility function to use the internal display mechanism to display a set of highlighted vertices, edges or faces. More...
 
virtual DWORD GetNextValidGeometryCheckerID ()=0
 Utility function to get the next valid geometry checker id. More...
 
Registeration Functions

Register the geometry checker

Parameters
[in]geomCheckerThe checker to be registered.
Returns
Returns the index of the checker among the other registered checkers. A value of -1 means an error occured.
virtual int RegisterGeometryChecker (IGeometryChecker *geomChecker)=0
 Unregister a geometry checker. More...
 
virtual void UnRegisterGeometryChecker (IGeometryChecker *geomChecker)=0
 Unregister a geometry checker. More...
 
virtual int GetNumRegisteredGeometryCheckers () const =0
 Returns the number of registered geometry checkers. More...
 
Properties
virtual void SetGeometryCheckerOn (bool on)=0
 Set whether or not the geometry checker system is on so checks will be run and outupt displayed. More...
 
virtual bool GetGeometryCheckerOn () const =0
 Returns whether or not the geometry checker system is on. More...
 
virtual void SetSeeThrough (bool val)=0
 Set whether or not the results can be seen through objects or not. More...
 
virtual bool GetSeeThrough () const =0
 Get whether or not the results should be seen through objects or not. More...
 
virtual void SetAutoUpdate (bool val)=0
 Turn on or off the automatic updating of the geometry checker. More...
 
virtual bool GetAutoUpdate () const =0
 Returns true if automatic updating of the geometry checker is on and false if not. More...
 
virtual void SetDisplayTextUpTop (bool val)=0
 Set the output display text on the top or bottom of the viewport. More...
 
virtual bool GetDisplayTextUpTop () const =0
 Returns true if the text is displayed on top of the viewport, false if displayed on the bottom. More...
 
Getting the Current Output

Gets the current ReturnVal of the current geometry check.

virtual IGeometryChecker::ReturnVal GetCurrentReturnVal ()=0
 Gets the number of indices in the current output. More...
 
virtual int GetCurrentOutputCount ()=0
 Gets the number of indices in the current output. More...
 
virtual MSTR GetCurrentString ()=0
 Returns the output string that's shown as text display. More...
 
- Public Member Functions inherited from FPInterfaceDesc
CoreExport FPInterfaceDesc ()
 
CoreExport FPInterfaceDesc (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, ULONG flag,...)
 
CoreExport ~FPInterfaceDesc ()
 
virtual void Init ()
 
LifetimeType LifetimeControl ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
CoreExport void LoadDescriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *pCD, ULONG flag,...)
 
CoreExport void AppendFunction (int id,...)
 Add a new function to this interface descriptor. More...
 
CoreExport void AppendProperty (int id,...)
 Add a new property to this interface descriptor. More...
 
CoreExport void AppendEnum (int id,...)
 Add a new enum to this interface descriptor. More...
 
CoreExport void SetClassDesc (ClassDesc *i_cd)
 
CoreExport va_list check_fn (va_list ap, int id)
 
CoreExport va_list scan_fn (va_list ap, int id, int index)
 
CoreExport va_list check_prop (va_list ap, int id)
 
CoreExport va_list scan_prop (va_list ap, int id, int index)
 
CoreExport va_list check_enum (va_list ap, EnumID id)
 
CoreExport va_list scan_enum (va_list ap, EnumID id, int index)
 
FPInterfaceDescGetDesc ()
 
Interface_ID GetID ()
 
CoreExport FPFunctionDefGetFnDef (FunctionID fid)
 
ActionTableGetActionTable ()
 
CoreExport void EnableActions (BOOL onOff)
 
virtual CoreExport HINSTANCE HInstance ()
 
virtual CoreExport const MCHARGetRsrcString (StringResID id)
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=nullptr)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 
- 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...
 
- Public Attributes inherited from FPInterfaceDesc
Interface_ID ID
 
MSTR internal_name
 
StringResID description
 
ClassDesccd
 
USHORT flags
 
Tab< FPFunctionDef * > functions
 
Tab< FPPropDef * > props
 
Tab< FPEnum * > enumerations
 
MSPluginClasspc
 
Rolloutrollout
 
ActionTableaction_table
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPInterfaceDesc
CoreExport void load_descriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, USHORT flag, va_list ap)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 

Detailed Description

The interface to the geometry checker manager.

This manager is responsible for registering, activitating and displaying the results of the geometry checkers. You get this interface by calling GetIGeometryCheckerManager()

Member Function Documentation

◆ RegisterGeometryChecker()

virtual int RegisterGeometryChecker ( IGeometryChecker geomChecker)
pure virtual

Unregister a geometry checker.

Parameters
[in]geomCheckerThe checker you want to unregister.

◆ UnRegisterGeometryChecker()

virtual void UnRegisterGeometryChecker ( IGeometryChecker geomChecker)
pure virtual

Unregister a geometry checker.

Parameters
[in]geomCheckerThe checker you want to unregister.

◆ GetNumRegisteredGeometryCheckers()

virtual int GetNumRegisteredGeometryCheckers ( ) const
pure virtual

Returns the number of registered geometry checkers.

◆ SetGeometryCheckerOn()

virtual void SetGeometryCheckerOn ( bool  on)
pure virtual

Set whether or not the geometry checker system is on so checks will be run and outupt displayed.

Parameters
[in]onIf true the geometry checker system is on, if false it's off and no output or checks occur.

◆ GetGeometryCheckerOn()

virtual bool GetGeometryCheckerOn ( ) const
pure virtual

Returns whether or not the geometry checker system is on.

◆ SetSeeThrough()

virtual void SetSeeThrough ( bool  val)
pure virtual

Set whether or not the results can be seen through objects or not.

Parameters
[in]valIf true the results can be seen through other objects, if false, they can't. In other words if the value is true we disable z depth testing when drawing the results.

◆ GetSeeThrough()

virtual bool GetSeeThrough ( ) const
pure virtual

Get whether or not the results should be seen through objects or not.

Returns
Return true if the results can be seen through objects, false if not.

◆ SetAutoUpdate()

virtual void SetAutoUpdate ( bool  val)
pure virtual

Turn on or off the automatic updating of the geometry checker.

If it's on, then the geometry checker will run whenever a new object is selected or some change happens to the model. If false the user needs to manual run and update the checker, which is useful for tests which are slow.

◆ GetAutoUpdate()

virtual bool GetAutoUpdate ( ) const
pure virtual

Returns true if automatic updating of the geometry checker is on and false if not.

◆ SetDisplayTextUpTop()

virtual void SetDisplayTextUpTop ( bool  val)
pure virtual

Set the output display text on the top or bottom of the viewport.

Parameters
[in]valIf true the text is displayed on top, if false, it's displayed on the bottom.

◆ GetDisplayTextUpTop()

virtual bool GetDisplayTextUpTop ( ) const
pure virtual

Returns true if the text is displayed on top of the viewport, false if displayed on the bottom.

◆ GetNthGeometryChecker()

virtual IGeometryChecker* GetNthGeometryChecker ( int  index) const
pure virtual

Get the nth GeometryChecker.

Parameters
[in]indexThe index of the registered geoemtry checker
Returns
Returns the geometry checker at that index

◆ GetNthGeometryCheckerName()

virtual MSTR GetNthGeometryCheckerName ( int  index) const
pure virtual

Get the name of the nth Geometry Checker.

Parameters
[in]indexThe index of the registered geoemtry checker
Returns
The name of the geometry checker at that index

◆ ActivateGeometryChecker()

virtual bool ActivateGeometryChecker ( int  index)
pure virtual

Activate this geometry checker so that it is the one that's run.

Parameters
[in]indexThe index of the geometry checker that's being made active.
Returns
Returns true if the function correctly sets that checker active, false otherwise.

◆ GetActivatedGeometryCheckerIndex()

virtual int GetActivatedGeometryCheckerIndex ( ) const
pure virtual

Returns the index of the activated geometry checker.

◆ DoesGeometryCheckerHavePropDlg()

virtual bool DoesGeometryCheckerHavePropDlg ( int  index) const
pure virtual

Get whether or not the specified geometry checker has a property dialog.

Parameters
[in]indexThe index which to check to see if the geometry checker has a dialog.
Returns
Returns true if that geometry checker has a property dialog, false otherwise.

◆ ShowGeometryCheckerPropDlg()

virtual void ShowGeometryCheckerPropDlg ( int  index)
pure virtual

Show the specified geometry checkers dialog.

Parameters
[in]indexThe index of the geometry checker that will show it's property dialog.

◆ RunGeometryCheck()

virtual void RunGeometryCheck ( TimeValue  t)
pure virtual

Run the current geometry check based upon the active geometry checker and the current selection set.

Parameters
[in]tThe time at which to run the check.

◆ GeometryCheck()

virtual IGeometryChecker::ReturnVal GeometryCheck ( TimeValue  t,
INode node,
IGeometryChecker::OutputVal val 
)
pure virtual

Run the active geometry checker at this time and on this node.

Parameters
[in]tThe time at which to run the check.
[in]nodeThe node on which to run the check.
[out]valThe output of the check. Currently a list of indices.
Returns
The ReturnVal of the geometry check. May be IGeometryChecker::eVertices, IGeometryChecker::eEdges, or IGeometryChecker::eFaces.

◆ PopupMenuSelect()

virtual void PopupMenuSelect ( )
pure virtual

Show the selection popup menu that lets you pick different checkers to be active and modify different geometry checker manager properties.

◆ GetCurrentReturnVal()

virtual IGeometryChecker::ReturnVal GetCurrentReturnVal ( )
pure virtual

Gets the number of indices in the current output.

◆ GetCurrentOutputCount()

virtual int GetCurrentOutputCount ( )
pure virtual

Gets the number of indices in the current output.

◆ GetCurrentString()

virtual MSTR GetCurrentString ( )
pure virtual

Returns the output string that's shown as text display.

◆ SelectResults()

virtual void SelectResults ( TimeValue  t)
pure virtual

Select the results of the currently run geometry check on the currently selected node.

Based upon the ReturnType it will select the correct vertices, edges or faces on that node, in the current active modifier or object.

Parameters
[in]tThe time to perform the selection.

◆ DisplayResults()

virtual void DisplayResults ( Color overrideColor,
TimeValue  t,
INode node,
HWND  hwnd,
IGeometryChecker::ReturnVal  type,
Tab< int > &  indices 
)
pure virtual

Utility function to use the internal display mechanism to display a set of highlighted vertices, edges or faces.

Parameters
[in]overrideColorThe color that you want the items to be displayed in.
[in]tThe time you want the node to get queried at for display.
[in]nodeThe node over which the display will be drawn over.
[in]hwndThe window handle of the viewport where the display should get outputted. Usually the active viewport.
[in]typeThe type of geometric item that will get displayed, may be IGeometryChecker::eVertices, IGeometryChecker::eEdges, or IGeometryChecker::eFaces
[in]indicesThe indices of the geometric elements that will get highlighted.

◆ GetNextValidGeometryCheckerID()

virtual DWORD GetNextValidGeometryCheckerID ( )
pure virtual

Utility function to get the next valid geometry checker id.

New geometry checkers should use this function to get an id.

Returns
returns a valid geometry checker ID.