#!/usr/bin/env python

# This example shows how to load a 3D image into VTK and then reformat
# that image into a different orientation for viewing.  It uses
# vtkDistanceWidget doesn't seem to work with vtkImageViewer2
# after starting this app, click somewhere on the image to see the widget
# appear, now try to manipulate its end points.

import vtk
from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()

# Start by loading some data.
reader = vtk.vtkImageReader2()
reader.SetFilePrefix(VTK_DATA_ROOT + "/Data/headsq/quarter")
reader.SetDataExtent(0, 63, 0, 63, 1, 93)
reader.SetDataSpacing(3.2, 3.2, 1.5)
reader.SetDataOrigin(0.0, 0.0, 0.0)
reader.SetDataScalarTypeToUnsignedShort()
reader.UpdateWholeExtent()

viewer = vtk.vtkImageViewer2()
viewer.SetInput(reader.GetOutput())

rwi = vtk.vtkRenderWindowInteractor()
viewer.SetupInteractor(rwi)
viewer.Render()

handle = vtk.vtkPointHandleRepresentation2D()
handle.GetProperty().SetColor(1,0,0)

rep = vtk.vtkDistanceRepresentation2D()
rep.SetHandleRepresentation(handle)
rep.GetAxis().SetNumberOfMinorTicks(4)
rep.GetAxis().SetTickLength(9)
rep.GetAxis().SetTitlePosition(0.2)
        
w = vtk.vtkDistanceWidget()
w.SetInteractor(rwi)        
w.SetRepresentation(rep)
w.SetEnabled(1)

rwi.Start()
