Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
itkMRMLIDImageIO.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8=========================================================================auto=*/
9
10#ifndef itkMRMLIDImageIO_h
11#define itkMRMLIDImageIO_h
12
13#ifdef _MSC_VER
14#pragma warning ( disable : 4786 )
15#endif
16
17#include <vtkVersion.h>
18
19#include "itkMRMLIDIOExport.h"
20
21#include "itkImageIOBase.h"
22
26class vtkImageData;
27class vtkMRMLNode;
28
29namespace itk
30{
54class MRMLIDImageIO_EXPORT MRMLIDImageIO : public ImageIOBase
55{
56public:
59 typedef ImageIOBase Superclass;
60 typedef SmartPointer<Self> Pointer;
61
64
67
70 bool CanReadFile(const char*) override;
71
73 void ReadImageInformation() override;
74
76 void Read(void* buffer) override;
77
78 /*-------- This part of the interfaces deals with writing data. ----- */
79
82 bool CanWriteFile(const char*) override;
83
86 void WriteImageInformation() override;
87
90 void Write(const void* buffer) override;
91
92protected:
94 ~MRMLIDImageIO() override;
95 void PrintSelf(std::ostream& os, Indent indent) const override;
96
98 virtual void WriteImageInformation(vtkMRMLVolumeNode *, vtkImageData*,
99 int *scalarType, int *numberOfScalarComponents);
100
103 void SetDWDictionaryValues(MetaDataDictionary &dict,
105
108 void SetDTDictionaryValues(MetaDataDictionary &dict,
110
114 MetaDataDictionary &dict);
115
119 MetaDataDictionary &dict);
120
121 void RequestModified(vtkMRMLNode* modifiedObject);
122
123private:
124 MRMLIDImageIO(const Self&) = delete;
125 void operator=(const Self&) = delete;
126
127 bool IsAVolumeNode(const char*);
128 vtkMRMLVolumeNode* FileNameToVolumeNodePtr(const char*);
129
130 std::string m_Scheme;
131 std::string m_Authority;
132 std::string m_SceneID;
133 std::string m_NodeID;
134
135};
136
137
138}
139#endif
void ReadImageInformation() override
void SetDTDictionaryValues(MetaDataDictionary &dict, vtkMRMLDiffusionImageVolumeNode *di)
void WriteImageInformation() override
virtual void WriteImageInformation(vtkMRMLVolumeNode *, vtkImageData *, int *scalarType, int *numberOfScalarComponents)
void SetDTNodeValues(vtkMRMLDiffusionImageVolumeNode *di, MetaDataDictionary &dict)
void SetDWNodeValues(vtkMRMLDiffusionWeightedVolumeNode *dw, MetaDataDictionary &dict)
SmartPointer< Self > Pointer
~MRMLIDImageIO() override
void PrintSelf(std::ostream &os, Indent indent) const override
bool CanReadFile(const char *) override
itkTypeMacro(MRMLIDImageIO, ImageIOBase)
void SetDWDictionaryValues(MetaDataDictionary &dict, vtkMRMLDiffusionWeightedVolumeNode *dw)
void RequestModified(vtkMRMLNode *modifiedObject)
bool CanWriteFile(const char *) override
void Read(void *buffer) override
void Write(const void *buffer) override
MRML node for representing diffusion weighted MRI volume.
MRML node for representing diffusion weighted MRI volume.
Abstract Superclass for all specific types of MRML nodes.
MRML node for representing a volume (image stack).
#define MRMLIDImageIO_EXPORT
Simplified inverse ITK transforms.