EQUINOX-3D

|  | EQUINOX-3D
|  | ## 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.