#include <vtkPolyData.h>
#include <vtkPolyDataWriter.h>
-#ifdef cpPlugins_Interface_QT4
-#include <QFileDialog>
-#endif // cpPlugins_Interface_QT4
-
-// -------------------------------------------------------------------------
-cpPlugins::IO::MeshWriter::
-DialogResult cpPlugins::IO::MeshWriter::
-ExecConfigurationDialog( QWidget* parent )
-{
- DialogResult r = Self::DialogResult_Cancel;
-
-#ifdef cpPlugins_Interface_QT4
-
- std::string name = this->m_Parameters->GetString( "FileName" );
- if( name == "" )
- name = "save.vtk";
-
- // Show dialog and check if it was accepted
- QString qname =
- QFileDialog::getSaveFileName(
- parent,
- QFileDialog::tr( "Save File" ),
- QFileDialog::tr( name.c_str( ) ),
- QFileDialog::tr( "Mesh files (*.vtk *.stl *.obj);;Any file (*)")
- );
- name = qname.toStdString( );
- if( name != "" )
- {
- this->m_Parameters->SetString( "FileName", name );
- r = Self::DialogResult_NoModal;
-
- } // fi
-
-#endif // cpPlugins_Interface_QT4
-
- return( r );
-}
-
// -------------------------------------------------------------------------
cpPlugins::IO::MeshWriter::
MeshWriter( )
: Superclass( )
{
this->_AddInput( "Input" );
-
- this->m_Parameters->ConfigureAsString( "FileName", "" );
+ this->m_Parameters->ConfigureAsSaveFileName( "FileName" );
+ this->m_Parameters->SetAcceptedFileExtensions(
+ "FileName",
+ "Mesh files (*.vtk *.stl *.obj)"
+ );
}
// -------------------------------------------------------------------------
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 >( );
if( i == NULL )
return( "MeshWriter: No suitable input." );
- std::string fname = this->m_Parameters->GetString( "FileName" );
+ std::string fname = this->m_Parameters->GetSaveFileName( "FileName" );
vtkPolyDataWriter* pdw = this->_CreateVTK< vtkPolyDataWriter >( );
pdw->SetInputData( i );
pdw->SetFileName( fname.c_str( ) );
+ pdw->SetFileTypeToBinary( );
pdw->Update( );
if( pdw->GetErrorCode( ) != 0 )
return( "MeshWriter: someting wrong happened." );