Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkITKUtility.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: vtkITK
9 Module: $HeadURL$
10 Date: $Date$
11 Version: $Revision$
12
13==========================================================================*/
14
15#ifndef __vtkITKUtility_h
16#define __vtkITKUtility_h
17
18#include "vtkObjectFactory.h"
19#include "vtkSetGet.h"
20
25template <typename ITK_Exporter, typename VTK_Importer>
26void ConnectPipelines(ITK_Exporter exporter, VTK_Importer* importer)
27{
28 importer->SetUpdateInformationCallback(exporter->GetUpdateInformationCallback());
29 importer->SetPipelineModifiedCallback(exporter->GetPipelineModifiedCallback());
30 importer->SetWholeExtentCallback(exporter->GetWholeExtentCallback());
31 importer->SetSpacingCallback(exporter->GetSpacingCallback());
32 importer->SetOriginCallback(exporter->GetOriginCallback());
33 importer->SetScalarTypeCallback(exporter->GetScalarTypeCallback());
34 importer->SetNumberOfComponentsCallback(exporter->GetNumberOfComponentsCallback());
35 importer->SetPropagateUpdateExtentCallback(exporter->GetPropagateUpdateExtentCallback());
36 importer->SetUpdateDataCallback(exporter->GetUpdateDataCallback());
37 importer->SetDataExtentCallback(exporter->GetDataExtentCallback());
38 importer->SetBufferPointerCallback(exporter->GetBufferPointerCallback());
39 importer->SetCallbackUserData(exporter->GetCallbackUserData());
40}
41
46template <typename VTK_Exporter, typename ITK_Importer>
47void ConnectPipelines(VTK_Exporter* exporter, ITK_Importer importer)
48{
49 importer->SetUpdateInformationCallback(exporter->GetUpdateInformationCallback());
50 importer->SetPipelineModifiedCallback(exporter->GetPipelineModifiedCallback());
51 importer->SetWholeExtentCallback(exporter->GetWholeExtentCallback());
52 importer->SetSpacingCallback(exporter->GetSpacingCallback());
53 importer->SetOriginCallback(exporter->GetOriginCallback());
54 importer->SetScalarTypeCallback(exporter->GetScalarTypeCallback());
55 importer->SetNumberOfComponentsCallback(exporter->GetNumberOfComponentsCallback());
56 importer->SetPropagateUpdateExtentCallback(exporter->GetPropagateUpdateExtentCallback());
57 importer->SetUpdateDataCallback(exporter->GetUpdateDataCallback());
58 importer->SetDataExtentCallback(exporter->GetDataExtentCallback());
59 importer->SetBufferPointerCallback(exporter->GetBufferPointerCallback());
60 importer->SetCallbackUserData(exporter->GetCallbackUserData());
61}
62
63
64#define DelegateSetMacro(name,arg) DelegateITKInputMacro(Set##name,arg)
65#define DelegateITKInputMacro(name,arg) \
66if ( 1 ) { \
67 vtkDebugMacro( << this->GetClassName() << " (" << this << "): setting " #name " to " << #arg ); \
68 ImageFilterType* tempFilter = dynamic_cast<ImageFilterType*> ( this->m_Filter.GetPointer() ); \
69 if ( tempFilter ) \
70 { \
71 tempFilter->name ( arg ); \
72 this->Modified(); \
73 } \
74 }
75
76#define DelegateGetMacro(name) DelegateITKOutputMacro (Get##name)
77#define DelegateITKOutputMacro(name) \
78if ( 1 ) { \
79 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " #name ); \
80 ImageFilterType* tempFilter = dynamic_cast<ImageFilterType*> ( this->m_Filter.GetPointer() ); \
81 if ( tempFilter ) \
82 { \
83 return tempFilter->name (); \
84 } \
85 else \
86 { \
87 vtkErrorMacro ( << this->GetClassName() << " Error getting " #name " Dynamic cast returned 0" ); \
88 return 0; \
89 } \
90 }
91
92
96
101
105
115
116#endif
void ConnectPipelines(ITK_Exporter exporter, VTK_Importer *importer)