Set up cursor3D
(self)
| 83 | ''' |
| 84 | |
| 85 | def SetUp(self): |
| 86 | ''' |
| 87 | Set up cursor3D |
| 88 | ''' |
| 89 | |
| 90 | def OnClosing(): |
| 91 | self.root.quit() |
| 92 | |
| 93 | def ViewerDown(tkvw): |
| 94 | viewer = tkvw.GetImageViewer() |
| 95 | ViewerSetZSlice(tkvw, viewer.GetZSlice() - 1) |
| 96 | |
| 97 | def ViewerUp(tkvw): |
| 98 | viewer = tkvw.GetImageViewer() |
| 99 | ViewerSetZSlice(tkvw, viewer.GetZSlice() + 1) |
| 100 | |
| 101 | def ViewerSetZSlice(tkvw, z): |
| 102 | viewer = tkvw.GetImageViewer() |
| 103 | viewer.SetZSlice(z) |
| 104 | txt = 'slice: ' + str(z) |
| 105 | sliceLabel.configure(text=txt) |
| 106 | tkvw.Render() |
| 107 | |
| 108 | def SetCursorFromViewer(event): |
| 109 | x = int(event.x) |
| 110 | y = int(event.y) |
| 111 | # We have to flip y axis because tk uses upper right origin. |
| 112 | self.root.update_idletasks() |
| 113 | height = int(self.tkvw.configure()['height'][4]) |
| 114 | y = height - y |
| 115 | z = self.tkvw.GetImageViewer().GetZSlice() |
| 116 | SetCursor( x / IMAGE_MAG_X, y / IMAGE_MAG_Y, z / IMAGE_MAG_Z ) |
| 117 | |
| 118 | def SetCursor(x, y, z): |
| 119 | |
| 120 | CURSOR_X = x |
| 121 | CURSOR_Y = y |
| 122 | CURSOR_Z = z |
| 123 | |
| 124 | axes.SetOrigin(CURSOR_X,CURSOR_Y,CURSOR_Z) |
| 125 | imageCursor.SetCursorPosition( |
| 126 | CURSOR_X * IMAGE_MAG_X, |
| 127 | CURSOR_Y * IMAGE_MAG_Y, |
| 128 | CURSOR_Z * IMAGE_MAG_Z) |
| 129 | |
| 130 | self.viewer.Render() |
| 131 | self.tkrw.Render() |
| 132 | |
| 133 | # Pipeline stuff. |
| 134 | reader = vtkSLCReader() |
| 135 | reader.SetFileName(VTK_DATA_ROOT + "/Data/neghip.slc") |
| 136 | # Cursor stuff |
| 137 | |
| 138 | magnify = vtkImageMagnify() |
| 139 | magnify.SetInputConnection(reader.GetOutputPort()) |
| 140 | magnify.SetMagnificationFactors(IMAGE_MAG_X, IMAGE_MAG_Y ,IMAGE_MAG_Z) |
| 141 | |
| 142 | imageCursor = vtkImageCursor3D() |
no test coverage detected