#ifndef __CPPLUGINS__INTERFACE__PROCESSOBJECT__HXX__ #define __CPPLUGINS__INTERFACE__PROCESSOBJECT__HXX__ // ------------------------------------------------------------------------- template< class T > T* cpPlugins::Interface::ProcessObject:: GetITK( ) { return( dynamic_cast< T* >( this->m_ITKObject.GetPointer( ) ) ); } // ------------------------------------------------------------------------- template< class T > const T* cpPlugins::Interface::ProcessObject:: GetITK( ) const { return( dynamic_cast< const T* >( this->m_ITKObject.GetPointer( ) ) ); } // ------------------------------------------------------------------------- template< class T > T* cpPlugins::Interface::ProcessObject:: GetVTK( ) { return( dynamic_cast< T* >( this->m_VTKObject.GetPointer( ) ) ); } // ------------------------------------------------------------------------- template< class T > const T* cpPlugins::Interface::ProcessObject:: GetVTK( ) const { return( dynamic_cast< const T* >( this->m_VTKObject.GetPointer( ) ) ); } // ------------------------------------------------------------------------- template< class T > T* cpPlugins::Interface::ProcessObject:: GetInput( unsigned int idx ) { if( idx < this->m_Inputs.size( ) ) return( dynamic_cast< T* >( this->m_Inputs[ idx ].GetPointer( ) ) ); else return( NULL ); } // ------------------------------------------------------------------------- template< class T > const T* cpPlugins::Interface::ProcessObject:: GetInput( unsigned int idx ) const { if( idx < this->m_Inputs.size( ) ) return( dynamic_cast< const T* >( this->m_Inputs[ idx ].GetPointer( ) ) ); else return( NULL ); } // ------------------------------------------------------------------------- template< class T > T* cpPlugins::Interface::ProcessObject:: GetOutput( unsigned int idx ) { if( idx < this->m_Outputs.size( ) ) return( dynamic_cast< T* >( this->m_Outputs[ idx ].GetPointer( ) ) ); else return( NULL ); } // ------------------------------------------------------------------------- template< class T > const T* cpPlugins::Interface::ProcessObject:: GetOutput( unsigned int idx ) const { if( idx < this->m_Outputs.size( ) ) return( dynamic_cast< const T* >( this->m_Outputs[ idx ].GetPointer( ) ) ); else return( NULL ); } // ------------------------------------------------------------------------- template< class F > F* cpPlugins::Interface::ProcessObject:: _CreateITK( ) { F* filter = dynamic_cast< F* >( this->m_ITKObject.GetPointer( ) ); if( filter == NULL ) { typename F::Pointer ptr = F::New( ); this->m_ITKObject = ptr; filter = ptr.GetPointer( ); this->m_VTKObject = NULL; } // fi return( filter ); } // ------------------------------------------------------------------------- template< class F > F* cpPlugins::Interface::ProcessObject:: _CreateVTK( ) { F* filter = dynamic_cast< F* >( this->m_VTKObject.GetPointer( ) ); if( filter == NULL ) { filter = F::New( ); this->m_VTKObject = filter; this->m_ITKObject = NULL; } // fi return( filter ); } // ------------------------------------------------------------------------- template< class O > void cpPlugins::Interface::ProcessObject:: _MakeOutput( unsigned int idx ) { if( idx >= this->m_Outputs.size( ) ) return; this->m_Outputs[ idx ] = O::New( ); this->m_Outputs[ idx ]->SetSource( this ); } #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECT__HXX__ // eof - $RCSfile$