Re: Access to Cells in VTK.js
Sebastien Jourdain via vtkusers <[email protected]> Fri, 18 Jan 2019 17:50:23 -0700
| Newsgroups | gmane.comp.lib.vtk.user |
|---|---|
| Message-ID | <CABObKxcjW0gx3bSdtyuDa3aoXj6GGWPRnYZ4QvvWp3H4ZpZNSg@mail.gmail.com> |
point picker or cell picker won't give you the same ijk since one will be the point ijk vs the cell one. On Fri, Jan 18, 2019 at 11:42 AM Andrzej Marciniak < [email protected]> wrote: > Hi Sebastien, > > Thank you for the tip - it works for me. Now, I have only a problem with > precision in finding IJK. > Should I better use vtkPicker or vtkMappers to get IJK position of selected > voxel? I have made a simple experiment with both ways to calculate IJK and > I > got different results. > > renderWindow.getInteractor().onRightButtonPress((callData) => { > if (renderer !== callData.pokedRenderer) { > return; > } > const pos = callData.position; > const point = [pos.x, pos.y, 0.0]; > picker.pick(point, renderer); > const worldPos = picker.getPickedPositions()[0]; > //I have only one Actor in renderer but 3 mappers set on different planes > let slices = null; > try { > slices = mappers.map((el) => { > return el.getSliceAtPosition(worldPos) // this is how I > get I,J,K with ImageMapper API > }); > } > catch (err) { alert("You cannot pick a point outside MRI > volume"); > return; > } > const pointIndex = slices[0] + slices[1] * dims[0] + slices[2] > * > dims[0] * dims[1]; > const pointIndex2 = picker.getCellIJK()[0] > + picker.getCellIJK()[1] * dims[0] > + picker.getCellIJK()[2] * dims[0] * > dims[1]; > if (pointIndex===pointIndex2) > inputData.getPointData().getScalars().getData()[pointIndex]=1983; > > else { > > inputData.getPointData().getScalars().getData()[pointIndex]=1700; > > inputData.getPointData().getScalars().getData()[pointIndex2] > = 1500; > } > }); > <http://vtk.1045678.n5.nabble.com/file/t342677/pickerProblem.png> > As a result I have different voxels marked (please see image). White voxel > is when they agree, light- and dark-grey when they don't. The results are > different when the selected point on canvas is close to the border of voxel > (points 1 and 3). > Which way is better? Can be direction of the vtkDataImage problem here > (its > not aligned with xyz coordinates)? > Thank you again > Andrzej > > > > -- > Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the VTK FAQ at: > http://www.vtk.org/Wiki/VTK_FAQ > > Search the list archives at: http://markmail.org/search/?q=vtkusers > > Follow this link to subscribe/unsubscribe: > https://vtk.org/mailman/listinfo/vtkusers > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ Search the list archives at: http://markmail.org/search/?q=vtkusers Follow this link to subscribe/unsubscribe: https://vtk.org/mailman/listinfo/vtkusers