setViewer( cpExtensions::QT::ActorsWidgetInterface* v )
{
this->m_Viewer = v;
+ if( this->m_Viewer != NULL )
+ {
+ auto interactors = this->m_Viewer->GetInteractors( );
+ for( auto wIt : this->m_Workspaces )
+ for( auto i : interactors )
+ wIt.second->AddInteractor( i );
+
+ } // fi
}
// -------------------------------------------------------------------------
this->m_Workspaces[ name ] = TWorkspace::New( );
if( this->m_Canvas != NULL )
this->m_Canvas->setWorkspace( this->m_Workspaces[ name ] );
+ if( this->m_Viewer != NULL )
+ {
+ auto interactors = this->m_Viewer->GetInteractors( );
+ auto wIt = this->m_Workspaces.find( name );
+ for( auto i : interactors )
+ wIt->second->AddInteractor( i );
+
+ } // fi
this->setWindowTitle( ( this->m_BaseWindowTitle + name ).c_str( ) );
} // fi
--- /dev/null
+#include <ITKLevelSetFilters/LaplacianSegmentationLevelSetImageFilter.h>
+#include <cpInstances/Image.h>
+
+#include <itkLaplacianSegmentationLevelSetImageFilter.h>
+
+// -------------------------------------------------------------------------
+cpPluginsITKLevelSetFilters::LaplacianSegmentationLevelSetImageFilter::
+LaplacianSegmentationLevelSetImageFilter( )
+ : Superclass( )
+{
+ this->_ConfigureInput< cpInstances::Image >( "Input", true, false );
+ this->_ConfigureInput< cpInstances::Image >( "Feature", true, false );
+ this->_ConfigureOutput< cpInstances::Image >( "Output" );
+
+ this->m_Parameters.ConfigureAsReal( "PropagationScaling", 1 );
+ this->m_Parameters.ConfigureAsReal( "CurvatureScaling", 1 );
+ this->m_Parameters.ConfigureAsReal( "MaximumRMSError", 0.02 );
+ this->m_Parameters.ConfigureAsReal( "IsoSurfaceValue", 0 );
+ this->m_Parameters.ConfigureAsUint( "NumberOfIterations", 100 );
+}
+
+// -------------------------------------------------------------------------
+cpPluginsITKLevelSetFilters::LaplacianSegmentationLevelSetImageFilter::
+~LaplacianSegmentationLevelSetImageFilter( )
+{
+}
+
+// -------------------------------------------------------------------------
+void cpPluginsITKLevelSetFilters::LaplacianSegmentationLevelSetImageFilter::
+_GenerateData( )
+{
+ auto o = this->GetInputData( "Input" );
+ cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 )
+ this->_Error( "Invalid input image dimension." );
+}
+
+// -------------------------------------------------------------------------
+template< class _TImage >
+void cpPluginsITKLevelSetFilters::LaplacianSegmentationLevelSetImageFilter::
+_GD0( _TImage* image )
+{
+ auto f = this->GetInputData( "Feature" );
+ cpPlugins_Demangle_Image_RealPixels_2( f, _GD1, _TImage::ImageDimension, image )
+ this->_Error( "Invalid feature image." );
+}
+
+// -------------------------------------------------------------------------
+template< class _TFeature, class _TImage >
+void cpPluginsITKLevelSetFilters::LaplacianSegmentationLevelSetImageFilter::
+_GD1( _TFeature* feature, _TImage* image )
+{
+ typedef typename _TFeature::PixelType _TScalar;
+ typedef
+ itk::LaplacianSegmentationLevelSetImageFilter< _TImage, _TFeature, _TScalar >
+ _TFilter;
+
+ // Configure filter
+ _TFilter* filter = this->_CreateITK< _TFilter >( );
+ filter->SetInput( image );
+ filter->SetFeatureImage( feature );
+ filter->SetPropagationScaling( this->m_Parameters.GetReal( "PropagationScaling" ) );
+ filter->SetCurvatureScaling( this->m_Parameters.GetReal( "CurvatureScaling" ) );
+ filter->SetMaximumRMSError( this->m_Parameters.GetReal( "MaximumRMSError" ) );
+ filter->SetIsoSurfaceValue( this->m_Parameters.GetReal( "IsoSurfaceValue" ) );
+ filter->SetNumberOfIterations( this->m_Parameters.GetUint( "NumberOfIterations" ) );
+ filter->Update( );
+
+ // Connect output
+ this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
+}
+
+// eof - $RCSfile$
--- /dev/null
+#ifndef __cpPluginsITKLevelSetFilters__LaplacianSegmentationLevelSetImageFilter__h__
+#define __cpPluginsITKLevelSetFilters__LaplacianSegmentationLevelSetImageFilter__h__
+
+#include <cpPluginsITKLevelSetFilters_Export.h>
+#include <cpPlugins/BaseObjects/ProcessObject.h>
+
+namespace cpPluginsITKLevelSetFilters
+{
+ /**
+ */
+ class cpPluginsITKLevelSetFilters_EXPORT LaplacianSegmentationLevelSetImageFilter
+ : public cpPlugins::BaseObjects::ProcessObject
+ {
+ cpPluginsObject(
+ LaplacianSegmentationLevelSetImageFilter,
+ cpPlugins::BaseObjects::ProcessObject,
+ ImageLevelSetFilters
+ );
+
+ protected:
+ template< class _TImage >
+ inline void _GD0( _TImage* image );
+
+ template< class _TFeature, class _TImage >
+ inline void _GD1( _TFeature* feature, _TImage* image );
+ };
+
+} // ecapseman
+
+#endif // __cpPluginsITKLevelSetFilters__LaplacianSegmentationLevelSetImageFilter__h__
+
+// eof - $RCSfile$