VTK-based writer for mitk::Surface. More...
#include <mitkSurfaceVtkWriter.h>


Public Types | |
| typedef SurfaceVtkWriter | Self |
| typedef mitk::FileWriter | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
| typedef VTKWRITER | VtkWriterType |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual void | Write () |
| virtual void | Update () |
| virtual void | SetFileName (const char *_arg) |
| virtual const char * | GetFileName () const |
| virtual void | SetExtension (const char *_arg) |
| Explicitly set the extension to be added to the filename. | |
| virtual const char * | GetExtension () const |
| Get the extension to be added to the filename. | |
| void | SetDefaultExtension () |
| Set the extension to be added to the filename to the default. | |
| virtual void | SetFilePrefix (const char *_arg) |
| virtual const char * | GetFilePrefix () const |
| virtual void | SetFilePattern (const char *_arg) |
| virtual const char * | GetFilePattern () const |
| void | SetInput (mitk::Surface *input) |
| const mitk::Surface * | GetInput () |
| virtual std::string | GetFileExtension () |
| Return the extension to be added to the filename. | |
| virtual bool | CanWriteDataType (DataNode *) |
| Check if the Writer can write the Content of the DataTreenode. | |
| virtual std::string | GetWritenMIMEType () |
| Return the MimeType of the saved File. | |
| virtual void | SetInput (DataNode *) |
| Set the DataTreenode as Input. Important: The Writer always have a SetInput-Function. | |
| VtkWriterType * | GetVtkWriter () |
| virtual std::vector< std::string > | GetPossibleFileExtensions () |
| Return the possible file extensions for the data type associated with the writer. | |
| template<> | |
| void | SetDefaultExtension () |
| template<> | |
| void | SetDefaultExtension () |
| template<> | |
| void | SetDefaultExtension () |
| template<> | |
| std::vector< std::string > | GetPossibleFileExtensions () |
| Return the possible file extensions for the data type associated with the writer. | |
| template<> | |
| std::vector< std::string > | GetPossibleFileExtensions () |
| Return the possible file extensions for the data type associated with the writer. | |
| template<> | |
| std::vector< std::string > | GetPossibleFileExtensions () |
| Return the possible file extensions for the data type associated with the writer. | |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| SurfaceVtkWriter () | |
| virtual | ~SurfaceVtkWriter () |
| virtual void | GenerateData () |
| void | ExecuteWrite (VtkWriterType *vtkWriter) |
| template<> | |
| void | ExecuteWrite (VtkWriterType *vtkWriter) |
Protected Attributes | |
| std::string | m_FileName |
| std::string | m_FilePrefix |
| std::string | m_FilePattern |
| std::string | m_Extension |
| std::string | m_MimeType |
| vtkSmartPointer< VtkWriterType > | m_VtkWriter |
| bool | m_WriterWriteHasReturnValue |
VTK-based writer for mitk::Surface.
The mitk::Surface is written using the VTK-writer-type provided as the template argument. If the mitk::Surface contains multiple points of time, multiple files are written. The life-span (time-bounds) of each each point of time is included in the filename according to the following scheme: <filename>_S<timebounds[0]>E<timebounds[1]>_T<framenumber> (S=start, E=end, T=time). Writing of multiple files according to a given filename pattern is not yet supported.
Definition at line 51 of file mitkSurfaceVtkWriter.h.
| typedef itk::SmartPointer<const Self> mitk::SurfaceVtkWriter< VTKWRITER >::ConstPointer |
Reimplemented from mitk::FileWriter.
Definition at line 55 of file mitkSurfaceVtkWriter.h.
| typedef itk::SmartPointer<Self> mitk::SurfaceVtkWriter< VTKWRITER >::Pointer |
Reimplemented from mitk::FileWriter.
Definition at line 55 of file mitkSurfaceVtkWriter.h.
| typedef SurfaceVtkWriter mitk::SurfaceVtkWriter< VTKWRITER >::Self |
Reimplemented from mitk::FileWriter.
Definition at line 55 of file mitkSurfaceVtkWriter.h.
| typedef mitk::FileWriter mitk::SurfaceVtkWriter< VTKWRITER >::Superclass |
Reimplemented from mitk::FileWriter.
Definition at line 55 of file mitkSurfaceVtkWriter.h.
| typedef VTKWRITER mitk::SurfaceVtkWriter< VTKWRITER >::VtkWriterType |
Definition at line 59 of file mitkSurfaceVtkWriter.h.
| mitk::SurfaceVtkWriter< VTKWRITER >::SurfaceVtkWriter | ( | ) | [protected] |
Constructor.
Definition at line 31 of file mitkSurfaceVtkWriter.txx.
References mitk::SurfaceVtkWriter< VTKWRITER >::m_VtkWriter, mitk::SurfaceVtkWriter< VTKWRITER >::New(), and mitk::SurfaceVtkWriter< VTKWRITER >::SetDefaultExtension().
: m_WriterWriteHasReturnValue( false ) { this->SetNumberOfRequiredInputs( 1 ); m_VtkWriter = vtkSmartPointer<VtkWriterType>::New(); //enable to write ascii-formatted-file //m_VtkWriter->SetFileTypeToASCII(); SetDefaultExtension(); // and information about the Writer's Write() method }
| mitk::SurfaceVtkWriter< VTKWRITER >::~SurfaceVtkWriter | ( | ) | [protected, virtual] |
| bool mitk::SurfaceVtkWriter< VTKWRITER >::CanWriteDataType | ( | DataNode * | input ) | [virtual] |
Check if the Writer can write the Content of the DataTreenode.
Reimplemented from mitk::FileWriter.
Definition at line 139 of file mitkSurfaceVtkWriter.txx.
References mitk::DataNode::GetData().
{
if ( input )
{
BaseData* data = input->GetData();
if ( data )
{
Surface::Pointer surface = dynamic_cast<Surface*>( data );
if( surface.IsNotNull() )
{
SetDefaultExtension();
return true;
}
}
}
return false;
}
| void mitk::SurfaceVtkWriter< VTKWRITER >::ExecuteWrite | ( | VtkWriterType * | vtkWriter ) | [protected] |
Definition at line 56 of file mitkSurfaceVtkWriter.txx.
{
if ( vtkWriter->Write() == 0 || vtkWriter->GetErrorCode() != 0 )
{
itkExceptionMacro(<<"Error during surface writing: " << vtkErrorCode::GetStringFromErrorCode(vtkWriter->GetErrorCode()) );
}
}
| void mitk::SurfaceVtkWriter< vtkXMLPolyDataWriter >::ExecuteWrite | ( | VtkWriterType * | vtkWriter ) | [protected] |
Definition at line 44 of file mitkSurfaceVtkWriter.cpp.
{
m_Extension = ".vtp";
m_WriterWriteHasReturnValue = true;
}
template<>
void SurfaceVtkWriter<vtkXMLPolyDataWriter>::ExecuteWrite( VtkWriterType* vtkWriter )
| void mitk::SurfaceVtkWriter< VTKWRITER >::GenerateData | ( | ) | [protected, virtual] |
Definition at line 65 of file mitkSurfaceVtkWriter.txx.
References mitk::Geometry3D::GetTimeBounds(), mitk::Geometry3D::GetVtkTransform(), QuadProgPP::t(), and mitk::Geometry3D::TransferItkToVtkTransform().
{
if ( m_FileName == "" )
{
itkWarningMacro( << "Sorry, filename has not been set!" );
return ;
}
mitk::Surface::Pointer input = const_cast<mitk::Surface*>(this->GetInput());
vtkSmartPointer<vtkTransformPolyDataFilter> transformPolyData = vtkSmartPointer<vtkTransformPolyDataFilter>::New();
vtkPolyData * polyData;
Geometry3D* geometry;
unsigned int t, timesteps = input->GetTimeSlicedGeometry()->GetTimeSteps();
for(t = 0; t < timesteps; ++t)
{
// surfaces do not have to exist in all timeteps; therefor, only write valid surfaces
if( input->GetVtkPolyData(t) == NULL ) continue;
::itk::OStringStream filename;
geometry = input->GetGeometry(t);
if ( timesteps > 1 )
{
if(input->GetTimeSlicedGeometry()->IsValidTime(t))
{
const TimeBounds& timebounds = geometry->GetTimeBounds();
filename << m_FileName.c_str() << "_S" << std::setprecision(0) << timebounds[0] << "_E" << std::setprecision(0) << timebounds[1] << "_T" << t << m_Extension;
}
else
{
itkWarningMacro(<<"Error on write: TimeSlicedGeometry invalid of surface " << filename << ".");
filename << m_FileName.c_str() << "_T" << t << m_Extension;
}
m_VtkWriter->SetFileName(filename.str().c_str());
}
else
m_VtkWriter->SetFileName(m_FileName.c_str());
geometry->TransferItkToVtkTransform();
transformPolyData->SetInput(input->GetVtkPolyData(t));
transformPolyData->SetTransform(geometry->GetVtkTransform());
transformPolyData->UpdateWholeExtent();
polyData = transformPolyData->GetOutput();
m_VtkWriter->SetInput(polyData);
ExecuteWrite( m_VtkWriter );
}
m_MimeType = "application/MITK.Surface";
}
| virtual const char* mitk::SurfaceVtkWriter< VTKWRITER >::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::FileWriter.
| virtual const char* mitk::SurfaceVtkWriter< VTKWRITER >::GetExtension | ( | ) | const [virtual] |
Get the extension to be added to the filename.
| std::string mitk::SurfaceVtkWriter< VTKWRITER >::GetFileExtension | ( | ) | [virtual] |
Return the extension to be added to the filename.
Reimplemented from mitk::FileWriter.
Definition at line 171 of file mitkSurfaceVtkWriter.txx.
{
return m_Extension;
}
| virtual const char* mitk::SurfaceVtkWriter< VTKWRITER >::GetFileName | ( | ) | const [virtual] |
Implements mitk::FileWriter.
| virtual const char* mitk::SurfaceVtkWriter< VTKWRITER >::GetFilePattern | ( | ) | const [virtual] |
Implements mitk::FileWriter.
| virtual const char* mitk::SurfaceVtkWriter< VTKWRITER >::GetFilePrefix | ( | ) | const [virtual] |
Implements mitk::FileWriter.
| const mitk::Surface * mitk::SurfaceVtkWriter< VTKWRITER >::GetInput | ( | void | ) |
Definition at line 126 of file mitkSurfaceVtkWriter.txx.
{
if ( this->GetNumberOfInputs() < 1 )
{
return NULL;
}
else
{
return static_cast< const Surface * >( this->ProcessObject::GetInput( 0 ) );
}
}
| virtual std::vector<std::string> mitk::SurfaceVtkWriter< VTKWRITER >::GetPossibleFileExtensions | ( | ) | [virtual] |
Return the possible file extensions for the data type associated with the writer.
Implements mitk::FileWriter.
| std::vector< std::string > mitk::SurfaceVtkWriter< vtkPolyDataWriter >::GetPossibleFileExtensions | ( | ) | [virtual] |
Return the possible file extensions for the data type associated with the writer.
Implements mitk::FileWriter.
Definition at line 62 of file mitkSurfaceVtkWriter.cpp.
{
| std::vector< std::string > mitk::SurfaceVtkWriter< vtkSTLWriter >::GetPossibleFileExtensions | ( | ) | [virtual] |
Return the possible file extensions for the data type associated with the writer.
Implements mitk::FileWriter.
Definition at line 53 of file mitkSurfaceVtkWriter.cpp.
{
itkExceptionMacro(<<"Error during surface writing: " << vtkErrorCode::GetStringFromErrorCode(vtkWriter->GetErrorCode()) );
}
}
template<>
std::vector<std::string> SurfaceVtkWriter<vtkSTLWriter>::GetPossibleFileExtensions()
| std::vector< std::string > mitk::SurfaceVtkWriter< vtkXMLPolyDataWriter >::GetPossibleFileExtensions | ( | ) | [virtual] |
Return the possible file extensions for the data type associated with the writer.
Implements mitk::FileWriter.
Definition at line 71 of file mitkSurfaceVtkWriter.cpp.
{
| VtkWriterType* mitk::SurfaceVtkWriter< VTKWRITER >::GetVtkWriter | ( | ) | [inline] |
Definition at line 150 of file mitkSurfaceVtkWriter.h.
References mitk::SurfaceVtkWriter< VTKWRITER >::m_VtkWriter.
Referenced by mitkManualSegmentationToSurfaceFilterTest(), and CommonFunctionality::SaveSurface().
{
return m_VtkWriter;
}
| std::string mitk::SurfaceVtkWriter< VTKWRITER >::GetWritenMIMEType | ( | ) | [virtual] |
Return the MimeType of the saved File.
Reimplemented from mitk::FileWriter.
Definition at line 165 of file mitkSurfaceVtkWriter.txx.
{
return m_MimeType;
}
| static Pointer mitk::SurfaceVtkWriter< VTKWRITER >::New | ( | ) | [static] |
| void mitk::SurfaceVtkWriter< VTKWRITER >::SetDefaultExtension | ( | ) |
Set the extension to be added to the filename to the default.
Partial template specialization is used for some vtk-writer types to define the default extension.
Definition at line 50 of file mitkSurfaceVtkWriter.txx.
Referenced by mitk::SurfaceVtkWriter< VTKWRITER >::SetDefaultExtension(), and mitk::SurfaceVtkWriter< VTKWRITER >::SurfaceVtkWriter().
{
m_Extension = ".vtk";
}
| void mitk::SurfaceVtkWriter< vtkPolyDataWriter >::SetDefaultExtension | ( | ) |
Definition at line 30 of file mitkSurfaceVtkWriter.cpp.
{
m_Extension = ".stl";
m_WriterWriteHasReturnValue = false;
}
| void mitk::SurfaceVtkWriter< vtkXMLPolyDataWriter >::SetDefaultExtension | ( | ) |
Definition at line 37 of file mitkSurfaceVtkWriter.cpp.
{
m_Extension = ".vtk";
m_WriterWriteHasReturnValue = false;
}
| void mitk::SurfaceVtkWriter< vtkSTLWriter >::SetDefaultExtension | ( | ) |
Definition at line 23 of file mitkSurfaceVtkWriter.cpp.
References mitk::SurfaceVtkWriter< VTKWRITER >::SetDefaultExtension().
{
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::SetExtension | ( | const char * | _arg ) | [virtual] |
Explicitly set the extension to be added to the filename.
| _arg | to be added to the filename, including a "." (e.g., ".vtk"). |
Partial template specialization is used for some vtk-writer types to set a default extension.
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::SetFileName | ( | const char * | _arg ) | [virtual] |
Sets the filename of the file to write.
| _arg | the name of the file to write. |
Implements mitk::FileWriter.
Referenced by mitkManualSegmentationToSurfaceFilterTest(), mitkSurfaceVtkWriterTest(), CommonFunctionality::SaveSurface(), and mitk::SurfaceSerializer::Serialize().
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::SetFilePattern | ( | const char * | _arg ) | [virtual] |
Implements mitk::FileWriter.
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::SetFilePrefix | ( | const char * | _arg ) | [virtual] |
Implements mitk::FileWriter.
| void mitk::SurfaceVtkWriter< VTKWRITER >::SetInput | ( | DataNode * | input ) | [virtual] |
Set the DataTreenode as Input. Important: The Writer always have a SetInput-Function.
Reimplemented from mitk::FileWriter.
Definition at line 158 of file mitkSurfaceVtkWriter.txx.
References mitk::DataNode::GetData().
{
if( input && CanWriteDataType( input ) )
SetInput( dynamic_cast<Surface*>( input->GetData() ) );
}
| void mitk::SurfaceVtkWriter< VTKWRITER >::SetInput | ( | mitk::Surface * | input ) |
Sets the 0'th input object for the filter.
| input | the first input for the filter. |
Definition at line 120 of file mitkSurfaceVtkWriter.txx.
Referenced by mitkManualSegmentationToSurfaceFilterTest(), mitkSurfaceVtkWriterTest(), CommonFunctionality::SaveSurface(), and mitk::SurfaceSerializer::Serialize().
{
this->ProcessObject::SetNthInput( 0, surface );
}
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::Update | ( | ) | [inline, virtual] |
Definition at line 59 of file mitkSurfaceVtkWriter.h.
Referenced by mitkSurfaceVtkWriterTest().
| virtual void mitk::SurfaceVtkWriter< VTKWRITER >::Write | ( | ) | [inline, virtual] |
Implements mitk::FileWriter.
Definition at line 59 of file mitkSurfaceVtkWriter.h.
Referenced by mitkManualSegmentationToSurfaceFilterTest(), CommonFunctionality::SaveSurface(), and mitk::SurfaceSerializer::Serialize().
std::string mitk::SurfaceVtkWriter< VTKWRITER >::m_Extension [protected] |
Definition at line 182 of file mitkSurfaceVtkWriter.h.
std::string mitk::SurfaceVtkWriter< VTKWRITER >::m_FileName [protected] |
Definition at line 176 of file mitkSurfaceVtkWriter.h.
std::string mitk::SurfaceVtkWriter< VTKWRITER >::m_FilePattern [protected] |
Definition at line 180 of file mitkSurfaceVtkWriter.h.
std::string mitk::SurfaceVtkWriter< VTKWRITER >::m_FilePrefix [protected] |
Definition at line 178 of file mitkSurfaceVtkWriter.h.
std::string mitk::SurfaceVtkWriter< VTKWRITER >::m_MimeType [protected] |
Definition at line 184 of file mitkSurfaceVtkWriter.h.
vtkSmartPointer<VtkWriterType> mitk::SurfaceVtkWriter< VTKWRITER >::m_VtkWriter [protected] |
Definition at line 186 of file mitkSurfaceVtkWriter.h.
Referenced by mitk::SurfaceVtkWriter< VTKWRITER >::GetVtkWriter(), and mitk::SurfaceVtkWriter< VTKWRITER >::SurfaceVtkWriter().
bool mitk::SurfaceVtkWriter< VTKWRITER >::m_WriterWriteHasReturnValue [protected] |
Definition at line 188 of file mitkSurfaceVtkWriter.h.
1.7.2