






|

|
Index
E3dp_PickRequest
E3dp_PickStop
E3dp_PickResume
E3dp_PickEnd
E3dp_PickRequest
Request picking
Syntax
int E3dp_PickRequest(XeString LMessage, int LWhat, E3dPickCallbackProc LPickCallback, int LTimeOut, EBool LActivateOnMotion)
Arguments
XeString LMessage Message to displayed while waiting for the user to pick an item
int LWhat Type of Item(s) to be picked (see Item.h)
E3dPickCallbackProc LPickCallback Function to call when pick performed or picking aborted
int LTimeOut Not used at the moment (pass 0)
EBool LActivateOnMotion If TRUE, LPickCallback will be called on pointer motion
Description
Picking lets the user select a required input item for a function.
For example, the "Extrude along Spline" tool needs a "profile" Spline (or Face) and a "path" spline.
Both of these are Splines, so it could be impossible to tell which one the user meant to extrude along which one.
In this case, the user would select the profile spline, click "Extrude along spline" and the tool would request a Spline pick for the path Spline.
EQUINOX-3D has a very powerful picking mechanism. It allows for complex, context-sensitive tools.
One example is the "Edit Polygons" tool. This tool has one mode ("Edit Polygons") and it uses a single Pick callback.
As the user "mouses over" components such as Vertices, Edge etc., those components are highlighted and the tool offers only functions
that make sense with that particular component.
To keep user interactions simple, if analyzing the selection is sufficient, it should be done instead of picking.
For example, the "Add holes to faces" tool collects all selected Splines and adds them as holes to the first selected Face.
It's obvious that the user meant to use the Splines to be holes on a Face and not the other way around, so there is no need to explicitly specify which is which.
LMessage must be a copy of a compound string hat the caller never references after the calling this function.
Example
E3dp_PickRequest(XeCreateSimple("Pick a Model"), E3dITEM_MODEL, _PickCB_Connect, 0, FALSE);
Return value
None.
See also
E3dp_PushCompoundMessage
E3dp_PickStop
Temporarily stop picking
Syntax
void E3dp_PickStop(void)
Arguments
None.
Description
Before an application changes Geometres/Nodes etc. when picking is active, it must call this function to avoid dangling pointers used by the picking/highlighting mechanism.
Return value
None.
See also
E3dp_PickResume
E3dp_PickResume
Resume picking
Syntax
void E3dp_PickResume(void)
Arguments
None.
Description
Resumes picking after a call to E3dp_PickStop().
Return value
None.
See also
E3dp_PickStop
E3dp_PickEnd
End picking
Syntax
void E3dp_PickEnd(void)
Arguments
None.
Description
Ends picking.
Return value
None.
|