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. */
           }
       }