Difference between revisions of "Documentation/Nightly/Modules/Transforms"

From Slicer Wiki
Jump to: navigation, search
(4.1 -> Nightly)
 
(Moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(30 intermediate revisions by 8 users not shown)
Line 1: Line 1:
−
<!-- ---------------------------- -->
+
<noinclude>{{documentation/versioncheck}}
−
{{documentation/{{documentation/version}}/module-header}}
+
</noinclude>
−
<!-- ---------------------------- -->
 
  
−
<!-- ---------------------------- -->
+
{{documentation/banner
−
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}
+
| text  = [https://slicer.readthedocs.io/en/latest/user_guide/modules/transforms.html This page has been moved to read-the-docs.]
−
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
+
| background-color = 8FBC8F }}
−
{{documentation/{{documentation/version}}/module-introduction-row}}
 
−
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br>
 
−
Author: Alex Yarmarkovich (Isomics, SPL) <br>
 
−
Contributors: Jean-Christophe Fillion-Robin (Kitware), Julien Finet (Kitware)<br>
 
−
Contact: Alex Yarmarkovich, <email>alexy@bwh.harvard.edu</email><br>
 
−
{{documentation/{{documentation/version}}/module-introduction-row}}
 
−
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
 
−
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}
 
−
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}
 
−
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}
 
−
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}
 
−
}}
 
−
{{documentation/{{documentation/version}}/module-introduction-end}}
 
−
 
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Module Description}}
 
−
{{documentation/{{documentation/version}}/module-description}}
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Use Cases}}
 
−
Most frequently Transform module is used for these scenarios:
 
−
 
 
−
* Manual Registration: You can insert a transformation node into your scene, and in the Data module drag a volume or a model under it,
 
−
making them children of the transformation node. After that any changes to the transformation matrix of this node will be applied to the display of children volumes and models.
 
−
 
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Tutorials}}
 
−
* Please use tutorial about [http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Training loading and viewing data].  
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Panels and their use}}
 
−
 
 
−
{|
 
−
|-
 
−
| [[Image:QSlicerTransformsModuleUI.png|thumb|280px|Transforms module panel]]
 
−
| [[Image:QSlicerTransformsModule.png|thumb|660px|''LinearTransform'' applied to ''Meningioma2''<br>Rotations: IS 45º<br>Translations: LR -41mm, IS 36mm]]
 
−
|}
 
−
 
 
−
{{documentation/{{documentation/version}}/module-parametersdescription}}
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Similar Modules}}
 
−
* Related modules: [[Documentation/{{documentation/version}}/Modules/Data|Data module]], [[:Category:Documentation/{{documentation/version}}/Modules/Registration|Registration modules]].
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|References}}
 
−
N/A
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
 
−
===Key [[Documentation/{{documentation/version}}/Developers/MRML|MRML]] nodes===
 
−
* [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html vtkMRMLTransformableNode]
 
−
* [http://slicer.org/doc/html/classvtkMRMLTransformNode.html vtkMRMLTransformNode]
 
−
** [http://slicer.org/doc/html/classvtkMRMLLinearTransformNode.html vtkMRMLLinearTransformNode]
 
−
** [http://slicer.org/doc/html/classvtkMRMLBSplineTransformNode.html vtkMRMLBSplineTransformNode]
 
−
** [http://slicer.org/doc/html/classvtkMRMLGridTransformNode.html vtkMRMLGridTransformNode]
 
−
How to programmatically apply a transform to a transformable node:
 
−
vtkNew<[http://slicer.org/doc/html/classvtkMRMLLinearTransformNode.html vtkMRMLLinearTransformNode]> transformNode;
 
−
scene->AddNode(transformNode.GetPointer());
 
−
...
 
−
vtkNew<vtkMatrix4x4> matrix;
 
−
...
 
−
transform->SetAndObserveMatrixTransformToParent( matrix.GetPointer() );
 
−
...
 
−
vtkMRMLVolumeNode* transformableNode = ...; // or vtkMRMLModelNode*...
 
−
transformableNode->SetAndObserveTransformNodeID( transformNode->GetID() );
 
−
 
 
−
Because a ''transform'' node is also a ''transformable'' node, it is possible to concatenate transforms with each others:
 
−
[http://slicer.org/doc/html/classvtkMRMLLinearTransformNode.html vtkMRMLLinearTransformNode*] transformNode = ...;
 
−
[http://slicer.org/doc/html/classvtkMRMLLinearTransformNode.html vtkMRMLLinearTransformNode*] transformNode2 = ...;
 
−
transformNode2->SetAndObserveTransformNodeID( transformNode->GetID() );
 
−
...
 
−
transformable->SetAndObserveTransformNodeID( transformNode2->GetID() );
 
−
 
 
−
===Events===
 
−
When a transform  node is observed by a transformable node, [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html#ace1c30fc9df552543f00d51a20c038a6a4993bf6e23a6dfc138cb2efc1b9ce43b vtkMRMLTransformableNode::TransformModifiedEvent] is fired on the transformable node at observation time.
 
−
Anytime a transform is modified, vtkCommand::ModifiedEvent is fired on the transform node and  [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html#ace1c30fc9df552543f00d51a20c038a6a4993bf6e23a6dfc138cb2efc1b9ce43b vtkMRMLTransformableNode::TransformModifiedEvent] is fired on the transformable node.
 
−
 
 
−
<!-- ---------------------------- -->
 
−
{{documentation/{{documentation/version}}/module-footer}}
 
−
<!-- ---------------------------- -->
 

Latest revision as of 03:18, 3 January 2021

Home < Documentation < Nightly < Modules < Transforms