Public Member Functions | Static Public Member Functions | Protected Member Functions

mitk::SurfaceSerializer Class Reference

Serializes mitk::Surface for mitk::SceneIO. More...

#include <mitkSurfaceSerializer.h>

Inheritance diagram for mitk::SurfaceSerializer:
Inheritance graph
[legend]
Collaboration diagram for mitk::SurfaceSerializer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 mitkClassMacro (SurfaceSerializer, BaseDataSerializer)
virtual std::string Serialize ()
 Serializes given BaseData object.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 SurfaceSerializer ()
virtual ~SurfaceSerializer ()

Detailed Description

Serializes mitk::Surface for mitk::SceneIO.

Definition at line 31 of file mitkSurfaceSerializer.h.


Constructor & Destructor Documentation

mitk::SurfaceSerializer::SurfaceSerializer (  ) [protected]

Definition at line 27 of file mitkSurfaceSerializer.cpp.

{
}
mitk::SurfaceSerializer::~SurfaceSerializer (  ) [protected, virtual]

Definition at line 31 of file mitkSurfaceSerializer.cpp.

{
}

Member Function Documentation

mitk::SurfaceSerializer::mitkClassMacro ( SurfaceSerializer  ,
BaseDataSerializer   
)
static Pointer mitk::SurfaceSerializer::New (  ) [static]
std::string mitk::SurfaceSerializer::Serialize (  ) [virtual]

Serializes given BaseData object.

Returns:
the filename of the newly created file.

This should be overwritten by specific sub-classes.

Reimplemented from mitk::BaseDataSerializer.

Definition at line 35 of file mitkSurfaceSerializer.cpp.

References MITK_ERROR, mitk::SurfaceVtkWriter< VTKWRITER >::New(), mitk::SurfaceVtkWriter< VTKWRITER >::SetFileName(), mitk::SurfaceVtkWriter< VTKWRITER >::SetInput(), and mitk::SurfaceVtkWriter< VTKWRITER >::Write().

{
  const Surface* surface = dynamic_cast<const Surface*>( m_Data.GetPointer() );
  if (!surface)
  {
    MITK_ERROR << " Object at " << (const void*) this->m_Data
              << " is not an mitk::Surface. Cannot serialize as surface.";
    return "";
  }

  std::string filename( this->GetUniqueFilenameInWorkingDirectory() );
  filename += "_";
  filename += m_FilenameHint;
  filename += ".vtp";

  std::string fullname(m_WorkingDirectory);
  fullname += Poco::Path::separator();
  fullname += filename;

  try
  {
    SurfaceVtkWriter<vtkXMLPolyDataWriter>::Pointer writer = SurfaceVtkWriter<vtkXMLPolyDataWriter>::New();
    writer->SetFileName( fullname );
    //writer->SetExtension(".vtp");
    writer->SetInput( const_cast<Surface*>( surface ) );
    writer->Write();
  }
  catch (std::exception& e)
  {
    MITK_ERROR << " Error serializing object at " << (const void*) this->m_Data
              << " to " 
              << fullname 
              << ": " 
              << e.what();
    return "";
  }

  return filename;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines