# IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

## 14.6 Pick-Assistance Routines

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.

### Example

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

[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]

[IBM Home Page | Order | Search | Contact IBM | Legal ]