Can't clone a volume property in Data module

I want to have clone an existing VP and then modify that (for an animation). It seems right-clicking on the volume property to clone in Data module doesn’t seem to work (in all nodes tab). Is this expected?

I can save and reload it, but cloning is more convenient…

Cloning a node is a high-level operation, implemented in subject hierarchy plugins. It involves cloning/copying node references and various node properties. For example, to clone a volume node, you need to deep-copy its image data, clone at least its display nodes and copy some of its node references.

There are no subject hierarchy plugins for low-level nodes that are mostly just implementation details. Volume rendering property (and display nodes in general) would fall into the low-level nodes category, which you would not want to pollute the data tree.

Maybe a “copy from” volume rendering property button somewhere in volume rendering module could be more appropriate solution if cloning turns out to be needed frequently.

Thanks Andras.

Yes with the animator module, we need typically need two (or more) volume properties for a volume (a start and an end one). For smooth transitions and color consistency, this is best done using by cloning/copying the first volume property and adjusting the cloned one as needed.

Another area I can see duplicating volume properties would be needed is the new multi-volume rendering. We experimenting with cloning an existing volume node and rendering both simultaneously with two different volume properties that seems to gives us a better control of rendering details.

@pieper would it be possible to do the copy from button in volume rendering somehow?

This might be handled more conveniently in animator module: it can create a new animation keyframe by copying, extrapolating, or interpolating existing keyframes.

Here we need cloning of display nodes (not just volume property nodes), as we want the same volume to appear multiple times in a view. Slicer GUI only shows the first display node, but I agree that rendering the same volume multiple times with completely different transfer functions could allow nice new visualizations, so it could useful to make an exception here. In Volume rendering module, we could allow creating and editing multiple volume rendering display nodes for a selected volume. New volume rendering display node could be added by cloning or referencing the existing volume property node and clipping ROI.

Animator actually does what I want, I just brought it up as potential use case it to make it more generally available feature of duplicating volume property nodes.

I think multi-volume rendering will be a great tool for Slicer, but I also think we need to carefully review the volume rendering module UI.