1 #ifndef __CPPLUGINS__PROCESSOBJECT__HXX__
2 #define __CPPLUGINS__PROCESSOBJECT__HXX__
4 // -------------------------------------------------------------------------
5 template< class _TType >
6 _TType* cpPlugins::ProcessObject::
7 GetInput( const std::string& id )
9 auto i = this->m_Inputs.find( id );
10 if( i != this->m_Inputs.end( ) )
11 return( dynamic_cast< _TType* >( i->second.GetPointer( ) ) );
16 // -------------------------------------------------------------------------
17 template< class _TType >
18 const _TType* cpPlugins::ProcessObject::
19 GetInput( const std::string& id ) const
21 auto i = this->m_Inputs.find( id );
22 if( i != this->m_Inputs.end( ) )
23 return( dynamic_cast< const _TType* >( i->second.GetPointer( ) ) );
28 // -------------------------------------------------------------------------
29 template< class _TType >
30 _TType* cpPlugins::ProcessObject::
31 GetOutput( const std::string& id )
33 auto i = this->m_Outputs.find( id );
34 if( i != this->m_Outputs.end( ) )
35 return( dynamic_cast< _TType* >( i->second.GetPointer( ) ) );
40 // -------------------------------------------------------------------------
41 template< class _TType >
42 const _TType* cpPlugins::ProcessObject::
43 GetOutput( const std::string& id ) const
45 auto i = this->m_Outputs.find( id );
46 if( i != this->m_Outputs.end( ) )
47 return( dynamic_cast< const _TType* >( i->second.GetPointer( ) ) );
52 // -------------------------------------------------------------------------
53 template< class _TType >
54 _TType* cpPlugins::ProcessObject::
55 GetInputData( const std::string& name )
57 auto in = this->GetInput( name );
60 auto i = in->GetITK< _TType >( );
61 auto v = in->GetVTK< _TType >( );
62 if ( i != NULL ) return( i );
63 else if( v != NULL ) return( v );
70 // -------------------------------------------------------------------------
71 template< class _TType >
72 _TType* cpPlugins::ProcessObject::
73 GetOutputData( const std::string& name )
75 auto out = this->GetOutput( name );
78 auto i = out->GetITK< _TType >( );
79 auto v = out->GetVTK< _TType >( );
80 if ( i != NULL ) return( i );
81 else if( v != NULL ) return( v );
88 // -------------------------------------------------------------------------
89 template< class _TType >
90 bool cpPlugins::ProcessObject::
91 SetInput( const std::string& id, _TType* obj )
93 auto i = this->m_Inputs.find( id );
94 if( i != this->m_Inputs.end( ) )
104 // -------------------------------------------------------------------------
106 void cpPlugins::ProcessObject::
107 _AddOutput( const std::string& name )
109 auto i = this->m_Outputs.find( name );
110 if( i == this->m_Outputs.end( ) )
112 typename O::Pointer o = O::New( );
113 o->SetSource( this );
114 this->m_Outputs[ name ] = o;
120 // -------------------------------------------------------------------------
122 F* cpPlugins::ProcessObject::
125 F* filter = this->GetITK< F >( );
128 typename F::Pointer filter_ptr = F::New( );
129 this->m_ITKObject = filter_ptr;
130 this->m_VTKObject = NULL;
131 filter = filter_ptr.GetPointer( );
138 // -------------------------------------------------------------------------
140 F* cpPlugins::ProcessObject::
143 F* filter = this->GetVTK< F >( );
146 vtkSmartPointer< F > filter_ptr = vtkSmartPointer< F >::New( );
147 this->m_ITKObject = NULL;
148 this->m_VTKObject = filter_ptr;
149 filter = filter_ptr.GetPointer( );
156 #endif // __CPPLUGINS__PROCESSOBJECT__HXX__