auto filter = this->m_Workspace->GetFilter( filter_name );
if( filter != NULL )
{
- auto output = filter->GetOutput< _TDataObject >( output_name );
+ auto output = filter->GetOutputData< _TDataObject >( output_name );
if( output != NULL )
{
std::string data_name = output_name + "@" + filter_name;
deleteFilter( const std::string& name )\r
{\r
std::cout << name << std::endl;\r
-#error delete filter\r
return( false );\r
}\r
\r
<< des << " "\r
<< in << " "\r
<< out << std::endl;\r
-#error delete connection\r
return( false );\r
}\r
\r
this->SetViewY( y );
}
+// -------------------------------------------------------------------------
+void cpPlugins::Interface::Object::
+SetITK( itk::LightObject* o )
+{
+ if( this->m_ITKObject.GetPointer( ) != o )
+ {
+ this->m_ITKObject = o;
+ this->Modified( );
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Interface::Object::
+SetVTK( vtkObjectBase* o )
+{
+ if( this->m_VTKObject.GetPointer( ) != o )
+ {
+ this->m_VTKObject = o;
+ this->Modified( );
+
+ } // fi
+}
+
// -------------------------------------------------------------------------
cpPlugins::Interface::Object::
Object( )
virtual void Modified( ) const;
void SetViewCoords( float x, float y );
+ void SetITK( itk::LightObject* o );
+ void SetVTK( vtkObjectBase* o );
+
template< class T >
inline T* GetITK( );
// -------------------------------------------------------------------------
bool cpPlugins::Interface::ProcessObject::
-SetInput( const std::string& id, cpPlugins::Interface::DataObject* dobj )
+SetInput(
+ const std::string& id, cpPlugins::Interface::DataObject::Pointer* dobj
+ )
{
_TDataContainer::iterator i = this->m_Inputs.find( id );
if( i != this->m_Inputs.end( ) )
_TDataContainer::iterator i = this->m_Inputs.begin( );
for( ; i != this->m_Inputs.end( ) && r == ""; ++i )
{
- if( i->second.IsNotNull( ) )
+ if( i->second->IsNotNull( ) )
{
- Self* src = dynamic_cast< Self* >( i->second->GetSource( ) );
+ Self* src = dynamic_cast< Self* >( ( *( i->second ) )->GetSource( ) );
if( src != NULL )
r = src->Update( );
}
{
_TDataContainer::iterator i = this->m_Outputs.begin( );
for( ; i != this->m_Outputs.end( ); ++i )
- if( i->second.IsNotNull( ) )
- i->second->DisconnectPipeline( );
+ if( i->second->IsNotNull( ) )
+ ( *( i->second ) )->DisconnectPipeline( );
}
// -------------------------------------------------------------------------
if( this->m_ParametersDialog != NULL )
delete this->m_ParametersDialog;
#endif // cpPlugins_Interface_QT4
+
+ /*
+ auto iIt = this->m_Inputs.begin( );
+ for( ; iIt != this->m_Inputs.end( ); ++iIt )
+ delete iIt->second;
+ this->m_Inputs.clear( );
+ */
+
+ auto oIt = this->m_Outputs.begin( );
+ for( ; oIt != this->m_Outputs.end( ); ++oIt )
+ delete oIt->second;
+ this->m_Outputs.clear( );
}
// -------------------------------------------------------------------------
void cpPlugins::Interface::ProcessObject::
_AddInput( const std::string& name )
{
- this->m_Inputs[ name ] = NULL;
- this->Modified( );
+ auto i = this->m_Inputs.find( name );
+ if( i == this->m_Inputs.end( ) )
+ {
+ this->m_Inputs[ name ] = NULL;
+ this->Modified( );
+
+ } // fi
}
// eof - $RCSfile$
unsigned int GetNumberOfInputs( ) const;
unsigned int GetNumberOfOutputs( ) const;
- virtual bool SetInput( const std::string& id, DataObject* dobj );
+ virtual bool SetInput( const std::string& id, DataObject::Pointer* dobj );
virtual std::string Update( );
virtual void DisconnectOutputs( );
virtual bool ExecConfigurationDialog( QWidget* parent );
template< class T >
- inline T* GetInput( const std::string& id );
+ inline T* GetInputData( const std::string& id );
template< class T >
- inline const T* GetInput( const std::string& id ) const;
+ inline const T* GetInputData( const std::string& id ) const;
template< class T >
- inline T* GetOutput( const std::string& id );
+ inline T* GetOutputData( const std::string& id );
template< class T >
- inline const T* GetOutput( const std::string& id ) const;
+ inline const T* GetOutputData( const std::string& id ) const;
+
+ DataObject::Pointer* GetOutputPort( const std::string& id )
+ {
+ auto i = this->m_Outputs.find( id );
+ if( i != this->m_Outputs.end( ) )
+ return( i->second );
+ else
+ return( NULL );
+ }
+
+ const DataObject::Pointer* GetOutputPort( const std::string& id ) const
+ {
+ auto i = this->m_Outputs.find( id );
+ if( i != this->m_Outputs.end( ) )
+ return( i->second );
+ else
+ return( NULL );
+ }
protected:
ProcessObject( );
SimpleMPRWidget* m_MPRViewer;
bool m_Interactive;
- typedef std::map< std::string, DataObject::Pointer > _TDataContainer;
+ typedef std::map< std::string, DataObject::Pointer* > _TDataContainer;
_TDataContainer m_Inputs;
_TDataContainer m_Outputs;
};
// -------------------------------------------------------------------------
template< class T >
T* cpPlugins::Interface::ProcessObject::
-GetInput( const std::string& id )
+GetInputData( const std::string& id )
{
_TDataContainer::iterator i = this->m_Inputs.find( id );
if( i != this->m_Inputs.end( ) )
- return( dynamic_cast< T* >( i->second.GetPointer( ) ) );
+ return( dynamic_cast< T* >( i->second->GetPointer( ) ) );
else
return( NULL );
}
// -------------------------------------------------------------------------
template< class T >
const T* cpPlugins::Interface::ProcessObject::
-GetInput( const std::string& id ) const
+GetInputData( const std::string& id ) const
{
_TDataContainer::const_iterator i = this->m_Inputs.find( id );
if( i != this->m_Inputs.end( ) )
- return( dynamic_cast< const T* >( i->second.GetPointer( ) ) );
+ return( dynamic_cast< const T* >( i->second->GetPointer( ) ) );
else
return( NULL );
}
// -------------------------------------------------------------------------
template< class T >
T* cpPlugins::Interface::ProcessObject::
-GetOutput( const std::string& id )
+GetOutputData( const std::string& id )
{
_TDataContainer::iterator i = this->m_Outputs.find( id );
if( i != this->m_Outputs.end( ) )
- return( dynamic_cast< T* >( i->second.GetPointer( ) ) );
+ return( dynamic_cast< T* >( i->second->GetPointer( ) ) );
else
return( NULL );
}
// -------------------------------------------------------------------------
template< class T >
const T* cpPlugins::Interface::ProcessObject::
-GetOutput( const std::string& id ) const
+GetOutputData( const std::string& id ) const
{
_TDataContainer::const_iterator i = this->m_Outputs.find( id );
if( i != this->m_Outputs.end( ) )
- return( dynamic_cast< const T* >( i->second.GetPointer( ) ) );
+ return( dynamic_cast< const T* >( i->second->GetPointer( ) ) );
else
return( NULL );
}
void cpPlugins::Interface::ProcessObject::
_AddOutput( const std::string& id )
{
- this->m_Outputs[ id ] = O::New( );
- this->m_Outputs[ id ]->SetSource( this );
+ auto oIt = this->m_Outputs.find( id );
+ if( oIt == this->m_Outputs.end( ) )
+ {
+ this->m_Outputs[ id ] = new DataObject::Pointer( );
+ oIt = this->m_Outputs.find( id );
+
+ } // fi
+ *( oIt->second ) = O::New( );
+ ( *( oIt->second ) )->SetSource( this );
this->Modified( );
}
}
// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
+cpPlugins::Interface::Workspace::
+TFilter* cpPlugins::Interface::Workspace::
CreateFilter( const std::string& filter, const std::string& name )
{
if( this->m_Plugins == NULL )
- return( false );
+ return( NULL );
// Get or create new filter from name
if( !( this->m_Graph->HasVertexIndex( name ) ) )
TObject::Pointer o = f.GetPointer( );
this->m_Graph->SetVertex( name, o );
- return( true );
- }
- else
- return( false );
+
+ } // fi
+ return( f.GetPointer( ) );
}
else
- return( true );
+ return( this->GetFilter( name ) );
}
// -------------------------------------------------------------------------
return( false );
// Real connection
- dest->SetInput( input_name, orig->GetOutput< TData >( output_name ) );
+ dest->SetInput( input_name, orig->GetOutputPort( output_name ) );
this->m_Graph->AddEdge(
orig_filter, dest_filter,
TConnection( output_name, input_name )
// -------------------------------------------------------------------------
bool cpPlugins::Interface::Workspace::
-Connect( TData* input_object, const std::string& input_name )
+Connect( TData::Pointer* input_object, const std::string& input_name )
{
auto port = this->m_ExposedInputPorts.find( input_name );
if( port != this->m_ExposedInputPorts.end( ) )
TFilter* GetFilter( const std::string& name );
const TFilter* GetFilter( const std::string& name ) const;
bool HasFilter( const std::string& name ) const;
- bool CreateFilter( const std::string& filter, const std::string& name );
+ TFilter* CreateFilter(
+ const std::string& filter, const std::string& name
+ );
bool RenameFilter(
const std::string& old_name, const std::string& new_name
);
const std::string& orig_filter, const std::string& dest_filter,
const std::string& output_name, const std::string& input_name
);
- bool Connect( TData* input_object, const std::string& exposed_port );
+ bool Connect(
+ TData::Pointer* input_object, const std::string& exposed_port
+ );
void RemoveConnection(
const std::string& dest_filter, const std::string& input_name
);
std::string cpPlugins::BasicFilters::BinaryErodeImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "BinaryErodeImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
std::string cpPlugins::BasicFilters::BinaryThresholdImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "BinaryThresholdImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
_GenerateData( )
{
// Get inputs
- cpPlugins::Interface::Mesh* mesh =
- this->GetInput< cpPlugins::Interface::Mesh >( "InputMesh" );
- cpPlugins::Interface::ImplicitFunction* function =
- this->GetInput< cpPlugins::Interface::ImplicitFunction >(
+ auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "InputMesh" );
+ auto function =
+ this->GetInputData< cpPlugins::Interface::ImplicitFunction >(
"InputFunction"
);
if( function == NULL )
cutter->Update( );
// Execute filter
- cpPlugins::Interface::Mesh* out =
- this->GetOutput< cpPlugins::Interface::Mesh >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Mesh >( "Output" );
out->SetVTK( cutter->GetOutput( ) );
return( "" );
std::string cpPlugins::BasicFilters::ExtractSliceImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "ExtractSliceImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
--- /dev/null
+#include "InputDataReproducer.h"
+
+// -------------------------------------------------------------------------
+cpPlugins::BasicFilters::InputDataReproducer::
+InputDataReproducer( )
+ : Superclass( )
+{
+ this->_AddInput( "Input" );
+ this->_AddOutput< cpPlugins::Interface::DataObject >( "Output" );
+ this->m_Parameters->Clear( );
+}
+
+// -------------------------------------------------------------------------
+cpPlugins::BasicFilters::InputDataReproducer::
+~InputDataReproducer( )
+{
+}
+
+// -------------------------------------------------------------------------
+std::string cpPlugins::BasicFilters::InputDataReproducer::
+_GenerateData( )
+{
+ auto i = this->m_Inputs.find( "Input" );
+ auto o = this->m_Outputs.find( "Output" );
+ if( i == this->m_Inputs.end( ) || o == this->m_Outputs.end( ) )
+ return( "InputDataReproducer: No input/output ports." );
+
+ // Connect output
+ *( o->second ) = *( i->second );
+ return( "" );
+}
+
+// eof - $RCSfile$
--- /dev/null
+#ifndef __CPPLUGINS__PLUGINS__INPUTDATAREPRODUCER__H__
+#define __CPPLUGINS__PLUGINS__INPUTDATAREPRODUCER__H__
+
+#include <cpPlugins/BasicFilters/cpPluginsBasicFilters_Export.h>
+#include <cpPlugins/Interface/BaseProcessObjects.h>
+
+namespace cpPlugins
+{
+ namespace BasicFilters
+ {
+ /**
+ */
+ class cpPluginsBasicFilters_EXPORT InputDataReproducer
+ : public cpPlugins::Interface::ProcessObject
+ {
+ public:
+ typedef InputDataReproducer Self;
+ typedef cpPlugins::Interface::ProcessObject Superclass;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ public:
+ itkNewMacro( Self );
+ itkTypeMacro(
+ InputDataReproducer,
+ cpPluginsInterfaceProcessObject
+ );
+ cpPlugins_Id_Macro(
+ cpPlugins::BasicFilters::InputDataReproducer,
+ PortObjects
+ );
+
+ protected:
+ InputDataReproducer( );
+ virtual ~InputDataReproducer( );
+
+ virtual std::string _GenerateData( );
+
+ private:
+ // Purposely not implemented
+ InputDataReproducer( const Self& );
+ Self& operator=( const Self& );
+ };
+
+ } // ecapseman
+
+} // ecapseman
+
+#endif // __CPPLUGINS__PLUGINS__INPUTDATAREPRODUCER__H__
+
+// eof - $RCSfile$
// Get bounding box
double bbox[ 6 ];
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
bool input_found = false;
if( image != NULL )
{
input_found = true;
} // fi
- cpPlugins::Interface::Mesh* mesh =
- this->GetInput< cpPlugins::Interface::Mesh >( "Input" );
+ auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "Input" );
if( mesh != NULL )
{
mesh->GetVTK< vtkPolyData >( )->GetBounds( bbox );
std::string cpPlugins::BasicFilters::MacheteFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image != NULL )
return( this->_FromImage( image ) );
- cpPlugins::Interface::Mesh* mesh =
- this->GetInput< cpPlugins::Interface::Mesh >( "Input" );
+ auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "Input" );
if( mesh == NULL )
return( this->_FromMesh( mesh ) );
return( "MacheteFilter: No valid input." );
filter->Update( );
// Get output names
- auto pos_name = this->GetOutput< _TObj >( "PositiveOutput" )->GetName( );
- auto neg_name = this->GetOutput< _TObj >( "NegativeOutput" )->GetName( );
+ auto pos_name = this->GetOutputData< _TObj >( "PositiveOutput" )->GetName( );
+ auto neg_name = this->GetOutputData< _TObj >( "NegativeOutput" )->GetName( );
// Connect outputs (and correct their types and names)
- _TImage* pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
+ _TImage* pos_out = this->GetOutputData< _TImage >( "PositiveOutput" );
if( pos_out == NULL )
{
this->_AddOutput< _TImage >( "PositiveOutput" );
- pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
+ pos_out = this->GetOutputData< _TImage >( "PositiveOutput" );
pos_out->SetName( pos_name );
} // fi
- _TImage* neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
+ _TImage* neg_out = this->GetOutputData< _TImage >( "NegativeOutput" );
if( neg_out == NULL )
{
this->_AddOutput< _TImage >( "NegativeOutput" );
- neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
+ neg_out = this->GetOutputData< _TImage >( "NegativeOutput" );
neg_out->SetName( neg_name );
} // fi
std::string cpPlugins::BasicFilters::MacheteImageFilter::
_GenerateData()
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >("Input");
+ auto image = this->GetInputData< cpPlugins::Interface::Image >("Input");
if (image == NULL)
return("MacheteImageFilter: No input image.");
filter->Update();
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >("Output");
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >("Output");
if (out != NULL)
{
out->SetITK< O >( filter->GetOutput( ) );
_GenerateData( )
{
// Get input
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "MarchingCubes: Input data is not a valid image." );
vtkImageData* vtk_image = image->GetVTK< vtkImageData >( );
return( "MarchingCubes: Input data does not have a valid dimension." );
// Execute filter
- cpPlugins::Interface::Mesh* out =
- this->GetOutput< cpPlugins::Interface::Mesh >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Mesh >( "Output" );
out->SetVTK( pd );
return( "" );
}
std::string cpPlugins::BasicFilters::MedianImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "MedianImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
std::string cpPlugins::BasicFilters::OtsuThresholdImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "OtsuThresholdImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
std::string cpPlugins::BasicFilters::RGBImageToOtherChannelsFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "RGBImageToOtherChannelsFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< _O >( filter->GetOutput( ) );
std::string cpPlugins::BasicFilters::SignedMaurerDistanceMapImageFilter::
_GenerateData( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "SignedMaurerDistanceMapImageFilter: No input image." );
filter->Update( );
// Connect output
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out != NULL )
{
out->SetITK< O >( filter->GetOutput( ) );
src->Update( );
// Execute filter
- cpPlugins::Interface::Mesh* out =
- this->GetOutput< cpPlugins::Interface::Mesh >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Mesh >( "Output" );
out->SetVTK( src->GetOutput( ) );
return( "" );
}
std::string cpPlugins::IO::ImageReader::
_RealGD( const TStringList& names )
{
- cpPlugins::Interface::Image* out =
- this->GetOutput< cpPlugins::Interface::Image >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" );
if( out == NULL )
return( "ImageReader: No output object properly created." );
std::string cpPlugins::IO::ImageWriter::
_GD0_Image( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "ImageWriter: No input image." );
std::string cpPlugins::IO::ImageWriter::
_GD0_VectorImage( )
{
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "Input" );
+ auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
if( image == NULL )
return( "ImageWriter: No input image." );
pdr->SetFileName( fname.c_str( ) );
pdr->Update( );
- cpPlugins::Interface::Mesh* out =
- this->GetOutput< cpPlugins::Interface::Mesh >( "Output" );
+ auto out = this->GetOutputData< cpPlugins::Interface::Mesh >( "Output" );
if( out != NULL )
out->SetVTK( pdr->GetOutput( ) );
else
std::string cpPlugins::IO::MeshWriter::
_GenerateData( )
{
- cpPlugins::Interface::Mesh* mesh =
- this->GetInput< cpPlugins::Interface::Mesh >( "Input" );
+ auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "Input" );
if( mesh == NULL )
return( "MeshWriter: No input mesh." );
vtkPolyData* i = mesh->GetVTK< vtkPolyData >( );
typedef itk::ImageBase< 2 > _2DImage;
typedef itk::ImageBase< 3 > _3DImage;
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "ReferenceImage" );
+ auto image =
+ this->GetInputData< cpPlugins::Interface::Image >( "ReferenceImage" );
if( image == NULL )
return( "SeedWidget: No input image." );
typedef cpExtensions::Interaction::ImageInteractorStyle _S;
I* base_image = dynamic_cast< I* >( image );
- cpPlugins::Interface::PointList* out =
- this->GetOutput< cpPlugins::Interface::PointList >( "Output" );
+ auto out =
+ this->GetOutputData< cpPlugins::Interface::PointList >( "Output" );
double aux_pnt[ 3 ];
unsigned int dim = ( I::ImageDimension < 3 )? I::ImageDimension: 3;