# VTK clip plane

**URL:** https://discourse.vtk.org/t/vtk-clip-plane/15183
**Category:** Development
**Created:** [January 20, 2025, 10:04am UTC](https://discourse.vtk.org/t/vtk-clip-plane/15183 "2025-01-20T10:04:59Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Thilina](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/t/a87d85/32.png) [@Thilina](https://discourse.vtk.org/u/Thilina)
#### Post date: [January 20, 2025, 10:04am UTC](https://discourse.vtk.org/t/vtk-clip-plane/15183/1 "2025-01-20T10:04:59Z")

</div>

Hello,

I’m using **VTK** and the `vtkImplicitPlaneWidget2` to interactively manipulate a clipping plane. By default, the plane can rotate freely around all axes, but I want to **restrict its rotation** to specific planes:

- **X-Y plane** (rotation around Z-axis),
- **Y-Z plane** (rotation around X-axis), or
- **Z-X plane** (rotation around Y-axis).

I tried modifying the normal vector in the `vtkCommand::InteractionEvent` callback to constrain the rotation, but this completely prevents rotation instead of restricting it to the desired plane.

### **What I Need** :

- A way to restrict the rotation of the clipping plane to a specific principal axis while still allowing interaction within the constrained plane.
- Best practices for achieving constrained rotation in `vtkImplicitPlaneWidget2`.

Any advice or suggestions would be greatly appreciated. Thank you!
