# interactor stops after scaling volume

**URL:** https://discourse.vtk.org/t/interactor-stops-after-scaling-volume/1223
**Category:** Support
**Created:** [June 27, 2019, 10:37am UTC](https://discourse.vtk.org/t/interactor-stops-after-scaling-volume/1223 "2019-06-27T10:37:04Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![svabhishek29](https://discourse.vtk.org/user_avatar/discourse.vtk.org/svabhishek29/32/479_2.png) [@svabhishek29](https://discourse.vtk.org/u/svabhishek29)
#### Post date: [June 27, 2019, 10:37am UTC](https://discourse.vtk.org/t/interactor-stops-after-scaling-volume/1223/1 "2019-06-27T10:37:04Z")

</div>

hi,

i was experimenting with medical demo volume rendering example with my own nii file,

i want to use the convention 1 unit = 1 meter so i scaled the volume by using vtk transform scale property and after the volume is scaled the vtk trackball camera interactor is not working anymore, when i try to move the volume the window just stops responding and crashes and also the box widget re scales but the sphere on the outside used for clipping interaction are still very big. can some one please help?

Thanks

my code for re scaling the volume is below

```
reader = vtk.vtkNIFTIImageReader()
reader.SetFileName(PathDicom)
reader.Update()

volumeMapper = vtk.vtkSmartVolumeMapper()
volumeMapper.SetInputConnection(reader.GetOutputPort())
volumeMapper.SetSampleDistance(-0.001)

window_width = 90
window_level = 150

volumeColor = vtk.vtkColorTransferFunction()
volumeColor.AddRGBSegment(window_level - 0.5 * window_width, 0.0, 0.0, 0.0,
                          window_level + 0.5 * window_width, 1.0, 1.0, 1.0)

volumeScalarOpacity = vtk.vtkPiecewiseFunction()
volumeScalarOpacity.AddSegment(window_level - 0.5 * window_width, 0.0,
                               window_level + 0.5 * window_width, 1.0)

volumeGradientOpacity = vtk.vtkPiecewiseFunction()
volumeGradientOpacity.AddPoint(0, 0.0)
# volumeGradientOpacity.AddPoint(90, opacity_control / 2)
volumeGradientOpacity.AddPoint(100, opacity_control)

volumeProperty = vtk.vtkVolumeProperty()
volumeProperty.SetColor(volumeColor)
volumeProperty.SetScalarOpacity(volumeScalarOpacity)
volumeProperty.SetGradientOpacity(volumeGradientOpacity)
volumeProperty.SetInterpolationTypeToLinear()
volumeProperty.ShadeOn()
volumeProperty.SetAmbient(0.4)
volumeProperty.SetDiffuse(0.6)
volumeProperty.SetSpecular(0.2)
volumeProperty.SetScalarOpacityUnitDistance(1)

volume = vtk.vtkVolume()
volume.SetMapper(volumeMapper)
volume.SetProperty(volumeProperty)

pick_volume_points()
scene_renderer.AddViewProp(volume)
render_window.Render()

render_window_interactor = vtk.vtkRenderWindowInteractor()
interaction_style = vtk.vtkInteractorStyleImage()
render_window_interactor.SetInteractorStyle(interaction_style)
render_window_interactor.SetRenderWindow(render_window)

render_window_interactor.AddObserver('MouseWheelForwardEvent', onMouseWheelForwardEvent)
render_window_interactor.AddObserver('MouseWheelBackwardEvent', onMouseWheelBackwardEvent)

planes = vtk.vtkPlanes()

def ClipVolumeRender(obj, event):
    print("inside here")

    obj.GetPlanes(planes)
    volumeMapper.SetClippingPlanes(planes)

boxWidget = vtk.vtkBoxWidget()
boxWidget.SetInteractor(render_window_interactor)
boxWidget.SetPlaceFactor(1.0)

boxWidget.SetInputData(reader.GetOutput())
boxWidget.PlaceWidget(reader.GetOutput().GetBounds())
boxWidget.InsideOutOn()
boxWidget.AddObserver("InteractionEvent", ClipVolumeRender)
boxWidget.AddObserver("MiddleButtonPressEvent", ClipVolumeRender)
boxWidget.AddObserver("MiddleButtonReleaseEvent", ClipVolumeRender)

boxWidget.EnabledOn()
boxWidget.TranslationEnabledOn()
render_window.Render()

transform = vtkTransform()
transform.SetMatrix(sometransform.GetMatrix())
transform.Scale(0.001, 0.001, 0.001)
transform.Update()

volume.SetUserMatrix(transform.GetMatrix())
boxWidget.SetTransform(transform)
```

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [June 28, 2019, 5:30am UTC](https://discourse.vtk.org/t/interactor-stops-after-scaling-volume/1223/2 "2019-06-28T05:30:30Z")

</div>

You may try keeping the user transform identity and instead update image spacing in the reader’s output vtkImageData, or modify scaling of the actor.

---

<div class="post-metadata">

### Author: ![svabhishek29](https://discourse.vtk.org/user_avatar/discourse.vtk.org/svabhishek29/32/479_2.png) [@svabhishek29](https://discourse.vtk.org/u/svabhishek29)
#### Post date: [June 29, 2019, 8:37am UTC](https://discourse.vtk.org/t/interactor-stops-after-scaling-volume/1223/3 "2019-06-29T08:37:13Z")

</div>

hi,

Thanks for the suggestion, changing the reader’s spacing solved the issue

Thanks
