#include "MacheteFilter.h"
-#include <cpPlugins/Interface/BaseApplication.h>
-#include <cpPlugins/Interface/Plugins.h>
-
#include <cpPlugins/Interface/DataObject.h>
#include <cpPlugins/Interface/Image.h>
#include <cpPlugins/Interface/Mesh.h>
MacheteFilter_Dialog(
QWidget* parent, MacheteFilter* filter, Qt::WindowFlags f
)
- : QDialog( parent, f ),
+ : QDialog( parent, f | Qt::WindowStaysOnTopHint ),
m_Filter( filter )
{
this->m_Title = new QLabel( this );
double center[ 3 ], normal[ 3 ];
wdg->GetCenter( center );
wdg->GetNormal( normal );
- this->m_Filter->GetParameters( )->SetPoint( "PlaneCenter", 3, center );
- this->m_Filter->GetParameters( )->SetVector( "PlaneNormal", 3, normal );
- // Update filter
- auto plugins = this->m_Filter->GetPlugins( );
- if( plugins != NULL )
- {
- auto app = plugins->GetApplication( );
- if( app != NULL )
- app->UpdateActualFilter( );
+ /* TODO
+ this->m_Filter->GetParameters( )->SetPoint( "PlaneCenter", 3, center );
+ this->m_Filter->GetParameters( )->SetVector( "PlaneNormal", 3, normal );
+ */
- } // fi
+ // Update filter
+ /* TODO
+ auto plugins = this->m_Filter->GetPlugins( );
+ if( plugins != NULL )
+ {
+ auto app = plugins->GetApplication( );
+ if( app != NULL )
+ app->UpdateActualFilter( );
+
+ } // fi
+ */
}
// -------------------------------------------------------------------------
void cpPlugins::BasicFilters::MacheteFilter_Dialog::
reject( )
{
- std::cout << "reject" << std::endl;
+ /*
+ auto plugins = this->m_Filter->GetPlugins( );
+ if( plugins != NULL )
+ plugins->DeactivateFilter( );
+ */
+ this->Superclass::reject( );
}
+
#endif // cpPlugins_Interface_QT4
// -------------------------------------------------------------------------
} // rof
if( iren == NULL )
- return( Self::DialogResult_Cancel );
-
+ return( false );
+
// Get bounding box
double bbox[ 6 ];
cpPlugins::Interface::Image* image =
} // fi
if( !input_found )
- return( Self::DialogResult_Cancel );
+ return( false );
// Create plane widget
if( this->m_PlaneWidget != NULL )
this->m_Dialog = new MacheteFilter_Dialog( NULL, this );
this->m_Dialog->show( );
- return( Self::DialogResult_Modal );
+ return( true );
#else // cpPlugins_Interface_QT4
- return( Self::DialogResult_Cancel );
+ return( false );
#endif // cpPlugins_Interface_QT4
}
m_PlaneWidget( NULL )
{
this->_AddInput( "Input" );
- this->_MakeOutput< cpPlugins::Interface::DataObject >( "Output" );
+ this->_AddOutput< cpPlugins::Interface::DataObject >( "PositiveOutput" );
+ this->_AddOutput< cpPlugins::Interface::DataObject >( "NegativeOutput" );
- itk::Point< double, 3 > center;
- itk::Vector< double, 3 > normal;
-
- center.Fill( double( 0 ) );
- normal.Fill( double( 0 ) );
- normal[ 0 ] = double( 1 );
-
- this->m_Parameters->ConfigureAsPoint( "PlaneCenter", 3, center );
- this->m_Parameters->ConfigureAsVector( "PlaneNormal", 3, normal );
+ /*
+ this->m_Parameters->ConfigureAsPoint( "PlaneCenter" );
+ this->m_Parameters->ConfigureAsVector( "PlaneNormal" );
+ */
}
// -------------------------------------------------------------------------
InfinitePlaneSpatialObject< I::ImageDimension > _TPlane;
typedef
cpExtensions::Algorithms::
- SpatialObjectMaskImageFilter< I > _TFilter;
- typedef cpPlugins::Interface::DataObject _TDataObject;
+ SpatialObjectMaskImageFilter< I, I > _TFilter;
+ typedef cpPlugins::Interface::DataObject _TObj;
typedef cpPlugins::Interface::Image _TImage;
- typedef typename _TPlane::PointType _TPoint;
- typedef typename _TPlane::VectorType _TVector;
- typedef typename I::PixelType _TPixel;
+ typedef typename _TPlane::PointType _TPoint;
+ typedef typename _TPlane::VectorType _TVector;
+ typedef typename I::PixelType _TPixel;
I* image = dynamic_cast< I* >( dobj );
+ /*
_TPoint c = this->m_Parameters->GetPoint< _TPoint >(
"PlaneCenter", I::ImageDimension
);
_TVector n = this->m_Parameters->GetVector< _TVector >(
"PlaneNormal", I::ImageDimension
);
+ */
+ _TPoint c;
+ _TVector n;
typename _TPlane::Pointer plane = _TPlane::New( );
plane->SetCenter( c );
filter->SetOutsideValue( _TPixel( 0 ) );
filter->Update( );
- // Connect output (and correct its type)
- auto name = this->GetOutput< _TDataObject >( "Output" )->GetName( );
- this->_MakeOutput< _TImage >( "Output" );
- _TImage* out = this->GetOutput< _TImage >( "Output" );
- if( out != NULL )
+ // Get output names
+ auto pos_name = this->GetOutput< _TObj >( "PositiveOutput" )->GetName( );
+ auto neg_name = this->GetOutput< _TObj >( "NegativeOutput" )->GetName( );
+
+ // Connect outputs (and correct their types and names)
+ _TImage* pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
+ if( pos_out == NULL )
+ {
+ this->_AddOutput< _TImage >( "PositiveOutput" );
+ pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
+ pos_out->SetName( pos_name );
+
+ } // fi
+ _TImage* neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
+ if( neg_out == NULL )
{
- out->SetITK< I >( filter->GetOutput( ) );
- out->SetName( name );
- return( "" );
- }
- else
- return( "MacheteFilter: output image not correctly created." );
+ this->_AddOutput< _TImage >( "NegativeOutput" );
+ neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
+ neg_out->SetName( neg_name );
+
+ } // fi
+
+ // Assign outputs
+ pos_out->SetITK< I >( filter->GetPositiveOutput( ) );
+ neg_out->SetITK< I >( filter->GetNegativeOutput( ) );
+ return( "" );
}
// eof - $RCSfile$