# Moving a subset of points in a list

**URL:** <https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198>\
**Category:** Support\
**Created:** [April 28, 2023, 9:39pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198 "2023-04-28T21:39:01Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![smrolfe](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/smrolfe/32/3659_2.png) [@smrolfe](https://discourse.slicer.org/u/smrolfe)\
**Post date:** [April 28, 2023, 9:39pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/1 "2023-04-28T21:39:01Z")

</div>

I would like to select a subset of control points in a point list and translate/rotate these together, while the unselected points are stationary. I can make this work by copying the moving points into a new point list, translating/rotating and copying new positions back into the original node (to preserve the order). Is there a better way to do this?

Ideally, I would like to be able to lock some points and use the interaction handles to move the unlocked points only. However, [when any point is locked, these functions are disabled](https://github.com/Slicer/Slicer/blob/661e00945f7a1f695e939366bcaf10e9481f2ada/Modules/Loadable/Markups/VTKWidgets/vtkSlicerMarkupsWidget.cxx#L160).

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [May 3, 2023, 1:51am UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/2 "2023-05-03T01:51:30Z")

</div>

any comments for this? This is sort of a blocking issue for us…

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [May 3, 2023, 12:44pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/3 "2023-05-03T12:44:39Z")

</div>

The method you describe makes sense @smrolfe. Maybe we could make an option in the Markups Editor to make this easier to do by managing all the temporary infrastructure during trans.ation/rotation.

---

<div class="post-metadata">

**Author:** ![smrolfe](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/smrolfe/32/3659_2.png) [@smrolfe](https://discourse.slicer.org/u/smrolfe)\
**Post date:** [May 3, 2023, 5:38pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/4 "2023-05-03T17:38:19Z")

</div>

Thanks @pieper, I think it could be doable in the Markups Editor, but was wondering if it might make sense to change this in the Markups module since it could be broadly useful, and probably simpler from a user perspective.

cc: @lassoan

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [May 3, 2023, 9:53pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/5 "2023-05-03T21:53:43Z")

</div>

Yes, making this a core feature makes more sense.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 3, 2023, 10:20pm UTC](https://discourse.slicer.org/t/moving-a-subset-of-points-in-a-list/29198/6 "2023-05-03T22:20:39Z")

</div>

The markups module is ready extremely complex (both the GUI and underlying logic). To keep things easier to develop and maintain, it would be probably better to implement this in a separate module.
