[vtkusers] vtkDataSet::FindPoint, vtkExtractVOI and world coordinates?

Elvis Stansvik elvis.stansvik at orexplore.com
Sun Sep 4 08:25:20 EDT 2016


Hi all,

I have multiple volumes in a renderer, positioned above/below each other
(like a "string" of volumes) along the Z axis, none of them are
intersecting. As the user clicks+drags the mouse in the viewport, I need to
capture the mouse position at the start/end positions of the drag operation
and convert them to world coordinates. I think I have these parts figured
out.

Then, I need to search through the list of my volumes (sorted by their end
positions in world coordinates), and construct a series of vtkExtractVOI
that will extract the selected segments. For volumes that are completely
inside the selected area, the vtkExtractVOI will extract the full volumes,
but for the start/end volume (which may be the same volume), it will only
extract a portion of it.

I looked at the vtkDataSet::FindPoint, which I think will give me a linear
point ID (not familiar with that from before) for a point given in world
coordinates. But how can I convert that to a structured point position that
I can use when setting up the extent to use for my vtkExtractVOI?

Is the static vtkStructuredData::ComputePointStructuredCoords helper the
function I'm looking for? Or is there some other easier way to extract an
area of a volume when the area is expressed in world coordinates?
(specifically, as a start/end Z position in world coordinates).

Here's an ASCII drawing that perhaps explains better what I want to do, the
rectangular areas are my volumes:

^  +-----+
|  |     |
|  | P1  |  <--- User clicks here (world coordinate X, Y, Z)..
|  |     |
Z  +-----+
   +-----+
   |     |
   |     |
   +-----+
   +-----+
   |     |
   |     |
   |  P2 |  <--- ..and drags to here (world coordinate A, B, C).
   |     |
   |     |
   |     |
   +-----+

>From this I want to create three vtkExtractVOI, that when combined gives a
list of vtkImageData that represents the selected area along the Z axis (in
the X and Y direction, everything from the volumes should be included).

Thanks in advance,
Elvis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160904/c11ccc66/attachment.html>


More information about the vtkusers mailing list