+++ /dev/null
-#ifndef __cpPlugins__Pipeline__ProcessObject__hxx__
-#define __cpPlugins__Pipeline__ProcessObject__hxx__
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::Pipeline::ProcessObject::
-GetInput( const std::string& n, unsigned int i )
-{
- auto it = this->m_Inputs.find( n );
- if( it != this->m_Inputs.end( ) )
- return( dynamic_cast< _TType* >( it->second->Get( i ) ) );
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::Pipeline::ProcessObject::
-GetInput( const std::string& n, unsigned int i ) const
-{
- auto it = this->m_Inputs.find( n );
- if( it != this->m_Inputs.end( ) )
- return( dynamic_cast< const _TType* >( it->second->Get( i ) ) );
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::Pipeline::ProcessObject::
-GetInputData( const std::string& n, unsigned int i )
-{
- auto d = this->GetInput( n, i );
- if( d != NULL )
- {
- auto oi = d->m_ITK.GetPointer( );
- auto ov = d->m_VTK.GetPointer( );
- if( oi != NULL && ov != NULL )
- {
- auto di = dynamic_cast< _TType* >( oi );
- auto dv = dynamic_cast< _TType* >( ov );
- if ( di != NULL ) return( di );
- else if( dv != NULL ) return( dv );
- else return( NULL );
- }
- else if( oi != NULL && ov == NULL )
- {
- auto di = dynamic_cast< _TType* >( oi );
- if( di == NULL )
- return( d->GetVTK< _TType >( ) );
- else
- return( di );
- }
- else if( oi == NULL && ov != NULL )
- {
- auto dv = dynamic_cast< _TType* >( ov );
- if( dv == NULL )
- return( d->GetITK< _TType >( ) );
- else
- return( dv );
- }
- else
- return( NULL );
- }
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::Pipeline::ProcessObject::
-GetInputData( const std::string& n, unsigned int i ) const
-{
- auto d = this->GetInput( n, i );
- if( d != NULL )
- {
- auto oi = d->m_ITK.GetPointer( );
- auto ov = d->m_VTK.GetPointer( );
- if( oi != NULL && ov != NULL )
- {
- auto di = dynamic_cast< const _TType* >( oi );
- auto dv = dynamic_cast< const _TType* >( ov );
- if ( di != NULL ) return( di );
- else if( dv != NULL ) return( dv );
- else return( NULL );
- }
- else if( oi != NULL && ov == NULL )
- {
- auto di = dynamic_cast< const _TType* >( oi );
- if( di == NULL )
- return( d->GetVTK< _TType >( ) );
- else
- return( di );
- }
- else if( oi == NULL && ov != NULL )
- {
- auto dv = dynamic_cast< const _TType* >( ov );
- if( dv == NULL )
- return( d->GetITK< _TType >( ) );
- else
- return( dv );
- }
- else
- return( NULL );
- }
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::Pipeline::ProcessObject::
-GetOutput( const std::string& n )
-{
- auto it = this->m_Outputs.find( n );
- if( it != this->m_Outputs.end( ) )
- return( dynamic_cast< _TType* >( it->second->Get( ) ) );
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::Pipeline::ProcessObject::
-GetOutput( const std::string& n ) const
-{
- auto it = this->m_Outputs.find( n );
- if( it != this->m_Outputs.end( ) )
- return( dynamic_cast< const _TType* >( it->second->Get( ) ) );
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::Pipeline::ProcessObject::
-GetOutputData( const std::string& n )
-{
- auto d = this->GetOutput( n );
- if( d != NULL )
- {
- auto oi = d->m_ITK.GetPointer( );
- auto ov = d->m_VTK.GetPointer( );
- if( oi != NULL && ov != NULL )
- {
- auto di = dynamic_cast< _TType* >( oi );
- auto dv = dynamic_cast< _TType* >( ov );
- if ( di != NULL ) return( di );
- else if( dv != NULL ) return( dv );
- else return( NULL );
- }
- else if( oi != NULL && ov == NULL )
- {
- auto di = dynamic_cast< _TType* >( oi );
- if( di == NULL )
- return( d->GetVTK< _TType >( ) );
- else
- return( di );
- }
- else if( oi == NULL && ov != NULL )
- {
- auto dv = dynamic_cast< _TType* >( ov );
- if( dv == NULL )
- return( d->GetITK< _TType >( ) );
- else
- return( dv );
- }
- else
- return( NULL );
- }
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::Pipeline::ProcessObject::
-GetOutputData( const std::string& n ) const
-{
- auto d = this->GetOutput( n );
- if( d != NULL )
- {
- auto oi = d->m_ITK.GetPointer( );
- auto ov = d->m_VTK.GetPointer( );
- if( oi != NULL && ov != NULL )
- {
- auto di = dynamic_cast< const _TType* >( oi );
- auto dv = dynamic_cast< const _TType* >( ov );
- if ( di != NULL ) return( di );
- else if( dv != NULL ) return( dv );
- else return( NULL );
- }
- else if( oi != NULL && ov == NULL )
- {
- auto di = dynamic_cast< const _TType* >( oi );
- if( di == NULL )
- return( d->GetVTK< _TType >( ) );
- else
- return( di );
- }
- else if( oi == NULL && ov != NULL )
- {
- auto dv = dynamic_cast< const _TType* >( ov );
- if( dv == NULL )
- return( d->GetITK< _TType >( ) );
- else
- return( dv );
- }
- else
- return( NULL );
- }
- else
- return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-void cpPlugins::Pipeline::ProcessObject::
-_ConfigureInput( const std::string& name, bool required, bool multiple )
-{
- auto it = this->m_Inputs.find( name );
- if( it == this->m_Inputs.end( ) )
- {
- Port* port;
- if( multiple ) port = new MultipleInputsPort( required );
- else port = new InputPort( required );
- port->Configure< _TType >( );
- this->m_Inputs[ name ] = port;
- this->Modified( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-void cpPlugins::Pipeline::ProcessObject::
-_ConfigureOutput( const std::string& name )
-{
- auto it = this->m_Outputs.find( name );
- if( it == this->m_Outputs.end( ) )
- {
- Port* port = new OutputPort( true );
- port->Configure< _TType >( );
- port->Add( _TType::New( ) );
- port->Get( )->SetSource( this );
- this->m_Outputs[ name ] = port;
- this->Modified( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TFilter >
-_TFilter* cpPlugins::Pipeline::ProcessObject::
-_CreateITK( )
-{
- // TODO: why this lead to synch issues???
- _TFilter* filter = this->GetITK< _TFilter >( );
- if( filter == NULL )
- {
- typename _TFilter::Pointer filter_ptr = _TFilter::New( );
- this->m_ITK = filter_ptr;
- this->m_VTK = NULL;
- filter = filter_ptr.GetPointer( );
- this->Modified( );
-
- } // fi
- return( filter );
-}
-
-// -------------------------------------------------------------------------
-template< class _TFilter >
-_TFilter* cpPlugins::Pipeline::ProcessObject::
-_CreateVTK( )
-{
- // TODO: why this lead to synch issues???
- _TFilter* filter = this->GetVTK< _TFilter >( );
- if( filter == NULL )
- {
- vtkSmartPointer< _TFilter > filter_ptr =
- vtkSmartPointer< _TFilter >::New( );
- this->m_ITK = NULL;
- this->m_VTK = filter_ptr;
- filter = filter_ptr.GetPointer( );
- this->Modified( );
-
- } // fi
- return( filter );
-}
-
-#endif // __cpPlugins__Pipeline__ProcessObject__hxx__
-
-// eof - $RCSfile$