Class CtrlHitLog

3DS Max Plug-In SDK

Class CtrlHitLog

class CtrlHitLog

Description:

This class provides a data structure for keeping a log of hits during controller gizmo hit-testing. It provides a list of CtrlHitRecords that may be added to and cleared. A developer may also request the 'closest' hit record in the list. All methods are implemented by the system.

Methods:

Prototype:

CtrlHitLog()

Remarks:

Constructor.

Prototype:

void Clear();

Remarks:

Clears the list of hits.

Prototype:

CtrlHitRecord* First()

Remarks:

Returns the first hit record in the list.

Prototype:

CtrlHitRecord* ClosestHit();

Remarks:

Returns the CtrlHitRecord that was 'closest' to the mouse position when hit testing was performed.

Prototype:

void LogHit(INode *nr,DWORD dist,ulong info,DWORD infoExtra);

Remarks:

This method is called to log a hit. It creates a new CtrlHitRecord object using the data passed and adds it to the hit log.

Parameters:

INode *nr

The node whose gizmo was hit.

DWORD dist

The 'distance' of the hit. What the distance actually represents depends on the rendering level of the viewport. For wireframe modes, it refers to the distance in the screen XY plane from the mouse to the sub-object component. In a shaded mode, it refers to the Z depth of the sub-object component. In both cases, smaller values indicate that the sub-object component is 'closer' to the mouse cursor.

ulong hitInfo;

A general unsigned long value. Most controllers will just need this to identity the sub-object element. The meaning of this value (how it is used to identify the element) is up to the plug-in.

DWORD infoExtra;

If the above hitInfo data member is not sufficient to describe the sub-object element this data member may be used as well.