View Issue Details

IDProjectCategoryView StatusLast Update
0002608Slicer4Core: Base Codepublic2018-03-22 00:53
ReporterfinetjulAssigned Toalexy 
PrioritylowSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Product VersionSlicer 4.1.1 
Target VersionSlicer 4.11.0Fixed in Version 
Summary0002608: Extend vtkMRMLNode::Copy behavior
Description

The current Copy() mechanism is limited in a way that there are multiple ways to Copy a node (with/without references, with/without data)...

Steps To Reproduce

See discussion following r20930:
BUG: don't ::Copy NULL PolyData

The polydata can be null in a sceneview and should not override
the bulk data that is in the main scene.

A new comment in the Volume and Model node ::Copy methods should
help clarify this for future.

On Thu, Sep 13, 2012 at 5:03 AM, Julien <julien.finet@kitware.com> wrote:

Hi Steve,
I understand that this new Copy behavior is necessary for sceneview copies,
but I'm not sure it is the behavior we would want by default.
I've been thinking lately that there are multiple ways of "copying" a node,
so next time we face a "copy" issue, maybe it will be necessary to add
parameters to the copy function.
For example:
Copy(vtkMRMLNode* anode, unsigned long options)
{
...
if (options & DontOverwriteBulkData)
{
...
}
Let me know what you think,
Thanks,
Julien.

On Thu, Sep 13, 2012 at 8:46 AM, Steve Pieper <pieper@ibility.net> wrote:
Hi Julien -

Yes, I think it's a good idea to be more explicit about the behavior
of the Copy methods.  As a general topic, it would be good to make the
internal structure of scenes more introspectable so users know what is
and isn't inside of a scene view.

Right now I'd like to be sure that the desired behavior is well
captured by the self tests so that we'll have a baseline and know when
things get disrupted.  The SlicerMRB test exercises scene views and
Nicole is going to add more as she works on the atlas testing since
that's a major use case for scene views and hierarchies.

-Steve

Additional Information

Annotation nodes have a notion of "Backup" that should be handled by this extended "Copy" mechanism (if it appears that "Backups" are still necessary). See item f) in 0002606

TagsNo tags attached.

Relationships

parent of 0003428 closedalexy Should reference to display node be copied. 
parent of 0003617 assignedalexy improve documentation of Copy behavior on MRML nodes 
related to 0002606 assignednicole Design comments/issues on Annotation nodes 
Not all the children of this issue are yet resolved or closed.

Activities

pieper

pieper

2012-10-03 14:20

administrator   ~0006371

A great place to start with this would be to improve the documentation of the existing behavior and confirm that all the built-in mrml nodes that ship with slicer behave as-expected with their bulk data.

lassoan

lassoan

2017-09-27 13:08

developer   ~0015184

API changes might be needed, so implement this for Slicer5. MRML node API should provide all features that are required for management of node sequences (which is implemented now in a separate "node sequencer" class in Sequences extension).

jcfr

jcfr

2018-03-22 00:53

administrator   ~0015585

@lassoan I added an entry to the Slicer 5.0 migration page: https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/MigrationGuide/Slicer50#Revisit_MRML_Copy_API

Issue History

Date Modified Username Field Change
2012-10-03 12:56 finetjul New Issue
2012-10-03 12:56 finetjul Status new => assigned
2012-10-03 12:56 finetjul Assigned To => pieper
2012-10-03 12:57 finetjul Assigned To pieper =>
2012-10-03 14:19 pieper Assigned To => alexy
2012-10-03 14:20 pieper Note Added: 0006371
2012-10-03 15:37 finetjul Relationship added related to 0002606
2012-10-03 15:38 finetjul Additional Information Updated
2012-12-08 10:03 jcfr Target Version => Slicer 4.3.0
2013-08-02 09:27 alexy Target Version Slicer 4.3.0 => Slicer 4.4.0
2013-10-02 15:33 jcfr Relationship added related to 0003428
2013-10-02 15:34 jcfr Relationship replaced parent of 0003428
2014-03-07 09:06 pieper Relationship added parent of 0003617
2014-05-13 20:47 jcfr Target Version Slicer 4.4.0 => Slicer 4.5.0-1
2015-11-02 11:27 jcfr Target Version Slicer 4.5.0-1 => Slicer 4.6.0
2016-10-12 14:58 jcfr Target Version Slicer 4.6.0 =>
2016-10-12 14:59 jcfr Target Version => Slicer 4.7.0
2017-09-27 13:08 lassoan Target Version Slicer 4.7.0 => Slicer 4.9.0
2017-09-27 13:08 lassoan Note Added: 0015184
2018-03-22 00:52 jcfr Target Version Slicer 4.9.0 => Slicer 4.11.0
2018-03-22 00:53 jcfr Note Added: 0015585