Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkSurfaceVtkWriter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkSurfaceVtkWriter_h
14 #define mitkSurfaceVtkWriter_h
15 
16 #include <iomanip>
17 
18 #include <vtkPolyDataWriter.h>
19 #include <vtkSTLWriter.h>
20 #include <vtkXMLPolyDataWriter.h>
21 
22 #include <MitkLegacyIOExports.h>
23 #include <itkProcessObject.h>
25 #include <mitkPointSet.h>
26 #include <mitkSurface.h>
27 
28 #include <vtkSmartPointer.h>
29 
30 class vtkTransformPolyDataFilter;
31 
32 namespace mitk
33 {
50  template <class VTKWRITER>
52  {
53  public:
55 
56  itkFactorylessNewMacro(Self);
57 
58  itkCloneMacro(Self);
59 
61 
62  typedef VTKWRITER VtkWriterType;
63 
68  itkSetStringMacro(FileName);
69 
73  itkGetStringMacro(FileName);
74 
83  itkSetStringMacro(Extension);
84 
90  itkGetStringMacro(Extension);
91 
99 
103  itkSetStringMacro(FilePrefix);
104 
108  itkGetStringMacro(FilePrefix);
109 
113  itkSetStringMacro(FilePattern);
114 
118  itkGetStringMacro(FilePattern);
119 
124  void SetInput(mitk::Surface *input);
125 
130 
134  std::string GetFileExtension() override;
135 
139  bool CanWriteDataType(DataNode *) override;
140 
144  std::string GetWritenMIMEType() override;
145 
146  using Superclass::SetInput;
150  virtual void SetInput(DataNode *);
151 
152  VtkWriterType *GetVtkWriter() { return m_VtkWriter; }
156  std::vector<std::string> GetPossibleFileExtensions() override;
157 
158  std::string GetSupportedBaseData() const override { return Surface::GetStaticNameOfClass(); }
159  const char *GetDefaultFilename() override;
160  const char *GetFileDialogPattern() override;
161  const char *GetDefaultExtension() override;
162  bool CanWriteBaseDataType(BaseData::Pointer data) override;
163  void DoWrite(BaseData::Pointer data) override;
164 
165  protected:
170 
174  ~SurfaceVtkWriter() override;
175 
176  void GenerateData() override;
177 
178  void ExecuteWrite(VtkWriterType *vtkWriter);
179 
180  std::string m_FileName;
181 
182  std::string m_FilePrefix;
183 
184  std::string m_FilePattern;
185 
186  std::string m_Extension;
187 
188  std::string m_MimeType;
189 
191 
193  };
194 
195 #ifndef MitkLegacyIO_EXPORTS
196  extern template class SurfaceVtkWriter<vtkSTLWriter>;
197  extern template class SurfaceVtkWriter<vtkPolyDataWriter>;
198  extern template class SurfaceVtkWriter<vtkXMLPolyDataWriter>;
199 #endif
200 }
201 
202 #endif
#define MITKLEGACYIO_EXPORT
Class for nodes of the DataTree.
Definition: mitkDataNode.h:64
Interface for FileWriters with extra information. Should be merged into FileWriter.
Interface class of writers that write data to files.
VTK-based writer for mitk::Surface.
bool CanWriteDataType(DataNode *) override
Check if the Writer can write the Content of the DataTreenode.
const mitk::Surface * GetInput()
const char * GetDefaultFilename() override
std::string GetWritenMIMEType() override
Return the MimeType of the saved File.
void GenerateData() override
std::string GetFileExtension() override
Return the extension to be added to the filename.
const char * GetFileDialogPattern() override
vtkSmartPointer< VtkWriterType > m_VtkWriter
bool CanWriteBaseDataType(BaseData::Pointer data) override
const char * GetDefaultExtension() override
std::string GetSupportedBaseData() const override
mitkClassMacro(SurfaceVtkWriter, mitk::FileWriter)
virtual void SetInput(DataNode *)
Set the DataTreenode as Input. Important: The Writer always have a SetInput-Function.
void SetDefaultExtension()
Set the extension to be added to the filename to the default.
VtkWriterType * GetVtkWriter()
~SurfaceVtkWriter() override
void DoWrite(BaseData::Pointer data) override
std::vector< std::string > GetPossibleFileExtensions() override
Return the possible file extensions for the data type associated with the writer.
void ExecuteWrite(VtkWriterType *vtkWriter)
void SetInput(mitk::Surface *input)
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:29
Find image slices visible on a given plane.