The pick structure output of the Pick tool is a Field and the picked points are listed in the "positions" component of that Field. Other information may be accessed using the pick-assistance routines listed here. These allow you to query the pick structure and to traverse a picked Object. (See 9.2 , "ShowPick Module Example--Using Color to Show a Picked Object".)
It is recommended that you use the pick-assistance routines to manipulate picked Objects and pick structures, since the pick structure is undefined internally and may change in future.
Error DXGetPickPoint() | Returns the pick point in world coordinates. See DXGetPickPoint. |
Error DXQueryPickCount() | Returns the number of picks resulting from a poke. See "Example". See DXQueryPickCount. |
Error DXQueryPickPath() | Returns information about the pick path. See "Example". See DXQueryPickPath. |
Error DXQueryPokeCount() | Returns the number of pokes. See "Example". See DXQueryPokeCount. |
Error DXTraversePickPath() | Returns the subObject of the current Object selected by a pick path. See "Example". See DXTraversePickPath. |
The following code segment finds every picked vertex. (The comment at bottom is left as an exercise for the user.)
DXQueryPokeCount(pickField, &nPokes); for (poke = 0; poke < nPokes; poke++) { DXQueryPickCount(pickField, poke, &nPicks); for (pick = 0; pick < nPicks; pick++) { DXQueryPickPath(pickField, poke, pick, &pathLen, &path, &elementId, &vertexId); current = dataObject; matrix = Identity; for (i = 0; i < pathLen; i++) { current = DXTraversePickPath(current, path[i], &matrix); if (current == NULL) goto error; } /* now manipulate vertex #vertexId in field current. */ } }