1 #ifndef __cpPlugins__BaseObjects__ProcessObject__hxx__
2 #define __cpPlugins__BaseObjects__ProcessObject__hxx__
4 // -------------------------------------------------------------------------
5 template< class _TType >
6 _TType* cpPlugins::BaseObjects::ProcessObject::
7 GetInput( const std::string& n, unsigned int i )
9 auto it = this->m_Inputs.find( n );
10 if( it != this->m_Inputs.end( ) )
11 return( dynamic_cast< _TType* >( it->second->Get( i ) ) );
16 // -------------------------------------------------------------------------
17 template< class _TType >
18 const _TType* cpPlugins::BaseObjects::ProcessObject::
19 GetInput( const std::string& n, unsigned int i ) const
21 auto it = this->m_Inputs.find( n );
22 if( it != this->m_Inputs.end( ) )
23 return( dynamic_cast< const _TType* >( it->second->Get( i ) ) );
28 // -------------------------------------------------------------------------
29 template< class _TType >
30 _TType* cpPlugins::BaseObjects::ProcessObject::
31 GetInputData( const std::string& n, unsigned int i )
33 auto d = this->GetInput( n, i );
36 auto di = d->GetITK< _TType >( );
37 auto dv = d->GetVTK< _TType >( );
38 if ( di != NULL ) return( di );
39 else if( dv != NULL ) return( dv );
46 // -------------------------------------------------------------------------
47 template< class _TType >
48 const _TType* cpPlugins::BaseObjects::ProcessObject::
49 GetInputData( const std::string& n, unsigned int i ) const
51 auto d = this->GetInput( n, i );
54 auto di = d->GetITK< _TType >( );
55 auto dv = d->GetVTK< _TType >( );
56 if ( di != NULL ) return( di );
57 else if( dv != NULL ) return( dv );
64 // -------------------------------------------------------------------------
65 template< class _TType >
66 _TType* cpPlugins::BaseObjects::ProcessObject::
67 GetOutput( const std::string& n )
69 auto it = this->m_Outputs.find( n );
70 if( it != this->m_Outputs.end( ) )
71 return( dynamic_cast< _TType* >( it->second->Get( ) ) );
76 // -------------------------------------------------------------------------
77 template< class _TType >
78 const _TType* cpPlugins::BaseObjects::ProcessObject::
79 GetOutput( const std::string& n ) const
81 auto it = this->m_Outputs.find( n );
82 if( it != this->m_Outputs.end( ) )
83 return( dynamic_cast< const _TType* >( it->second->Get( ) ) );
88 // -------------------------------------------------------------------------
89 template< class _TType >
90 _TType* cpPlugins::BaseObjects::ProcessObject::
91 GetOutputData( const std::string& n )
93 auto d = this->GetOutput( n );
96 auto di = d->GetITK< _TType >( );
97 auto dv = d->GetVTK< _TType >( );
98 if ( di != NULL ) return( di );
99 else if( dv != NULL ) return( dv );
106 // -------------------------------------------------------------------------
107 template< class _TType >
108 const _TType* cpPlugins::BaseObjects::ProcessObject::
109 GetOutputData( const std::string& n ) const
111 auto d = this->GetOutput( n );
114 auto di = d->GetITK< _TType >( );
115 auto dv = d->GetVTK< _TType >( );
116 if ( di != NULL ) return( di );
117 else if( dv != NULL ) return( dv );
124 // -------------------------------------------------------------------------
125 template< class _TType >
126 void cpPlugins::BaseObjects::ProcessObject::
127 _ConfigureInput( const std::string& name, bool required, bool multiple )
129 auto it = this->m_Inputs.find( name );
130 if( it == this->m_Inputs.end( ) )
133 if( multiple ) port = new MultipleInputsPort( required );
134 else port = new InputPort( required );
135 port->Configure< _TType >( );
136 this->m_Inputs[ name ] = port;
141 // -------------------------------------------------------------------------
142 template< class _TType >
143 void cpPlugins::BaseObjects::ProcessObject::
144 _ConfigureOutput( const std::string& name )
146 auto it = this->m_Outputs.find( name );
147 if( it == this->m_Outputs.end( ) )
149 Port* port = new OutputPort( true );
150 port->Configure< _TType >( );
151 port->Add( _TType::New( ) );
152 port->Get( )->SetSource( this );
153 this->m_Outputs[ name ] = port;
158 // -------------------------------------------------------------------------
159 template< class _TFilter >
160 _TFilter* cpPlugins::BaseObjects::ProcessObject::
163 _TFilter* filter = this->GetITK< _TFilter >( );
166 typename _TFilter::Pointer filter_ptr = _TFilter::New( );
167 this->m_ITK = filter_ptr;
169 filter = filter_ptr.GetPointer( );
176 // -------------------------------------------------------------------------
177 template< class _TFilter >
178 _TFilter* cpPlugins::BaseObjects::ProcessObject::
181 _TFilter* filter = this->GetVTK< _TFilter >( );
184 vtkSmartPointer< _TFilter > filter_ptr =
185 vtkSmartPointer< _TFilter >::New( );
187 this->m_VTK = filter_ptr;
188 filter = filter_ptr.GetPointer( );
195 #endif // __cpPlugins__BaseObjects__ProcessObject__hxx__