VTK
vtkMINCImageAttributes.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMINCImageAttributes.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*=========================================================================
16 
17 Copyright (c) 2006 Atamai, Inc.
18 
19 Use, modification and redistribution of the software, in source or
20 binary forms, are permitted provided that the following terms and
21 conditions are met:
22 
23 1) Redistribution of the source code, in verbatim or modified
24  form, must retain the above copyright notice, this license,
25  the following disclaimer, and any notices that refer to this
26  license and/or the following disclaimer.
27 
28 2) Redistribution in binary form must include the above copyright
29  notice, a copy of this license and the following disclaimer
30  in the documentation or with other materials provided with the
31  distribution.
32 
33 3) Modified copies of the source code must be clearly marked as such,
34  and must not be misrepresented as verbatim copies of the source code.
35 
36 THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS"
37 WITHOUT EXPRESSED OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,
38 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 PURPOSE. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR OTHER PARTY WHO MAY
40 MODIFY AND/OR REDISTRIBUTE THE SOFTWARE UNDER THE TERMS OF THIS LICENSE
41 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES
42 (INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA OR DATA BECOMING INACCURATE
43 OR LOSS OF PROFIT OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF
44 THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE
45 POSSIBILITY OF SUCH DAMAGES.
46 
47 =========================================================================*/
70 #ifndef vtkMINCImageAttributes_h
71 #define vtkMINCImageAttributes_h
72 
73 #include "vtkIOMINCModule.h" // For export macro
74 #include "vtkObject.h"
75 
76 class vtkDataArray;
77 class vtkStringArray;
78 class vtkIdTypeArray;
79 class vtkDoubleArray;
80 class vtkMatrix4x4;
81 
82 // A special class that holds the attributes
83 class vtkMINCImageAttributeMap;
84 
86 {
87 public:
89 
91  virtual void PrintSelf(ostream& os, vtkIndent indent);
92 
94  virtual void Reset();
95 
97 
103 
105 
109  vtkSetMacro(DataType, int);
110  vtkGetMacro(DataType, int);
112 
114 
118  virtual void AddDimension(const char *dimension) {
119  this->AddDimension(dimension, 0); };
120  virtual void AddDimension(const char *dimension, vtkIdType length);
122 
124 
129  return this->DimensionNames; };
131 
133 
137  return this->DimensionLengths; };
139 
141 
143  return this->VariableNames; };
145 
149 
151 
154  virtual void SetImageMin(vtkDoubleArray *imageMin);
155  virtual void SetImageMax(vtkDoubleArray *imageMax);
156  virtual vtkDoubleArray *GetImageMin() { return this->ImageMin; };
157  virtual vtkDoubleArray *GetImageMax() { return this->ImageMax; };
159 
161 
162  vtkGetMacro(NumberOfImageMinMaxDimensions, int);
163  vtkSetMacro(NumberOfImageMinMaxDimensions, int);
165 
167  virtual int HasAttribute(const char *variable, const char *attribute);
168 
170 
172  virtual void SetAttributeValueAsArray(const char *variable,
173  const char *attribute,
174  vtkDataArray *array);
176  const char *attribute);
178 
180 
183  virtual void SetAttributeValueAsString(const char *variable,
184  const char *attribute,
185  const char *value);
186  virtual const char *GetAttributeValueAsString(const char *variable,
187  const char *attribute);
189 
191 
194  virtual void SetAttributeValueAsInt(const char *variable,
195  const char *attribute,
196  int value);
197  virtual int GetAttributeValueAsInt(const char *variable,
198  const char *attribute);
200 
202 
205  virtual void SetAttributeValueAsDouble(const char *variable,
206  const char *attribute,
207  double value);
208  virtual double GetAttributeValueAsDouble(const char *variable,
209  const char *attribute);
211 
212 
214 
221  virtual int ValidateAttribute(const char *varname,
222  const char *attname,
223  vtkDataArray *array);
225 
227 
229  vtkSetMacro(ValidateAttributes, int);
230  vtkBooleanMacro(ValidateAttributes, int);
231  vtkGetMacro(ValidateAttributes, int);
233 
241 
244  virtual void FindValidRange(double range[2]);
245 
248  virtual void FindImageRange(double range[2]);
249 
251 
253  virtual void PrintFileHeader();
254  virtual void PrintFileHeader(ostream &os);
256 
257 protected:
260 
262 
263  virtual int ValidateGlobalAttribute(const char *attrib,
264  vtkDataArray *array);
265  virtual int ValidateGeneralAttribute(const char *varname,
266  const char *attname,
267  vtkDataArray *array);
268  virtual int ValidateDimensionAttribute(const char *varname,
269  const char *attname,
270  vtkDataArray *array);
271  virtual int ValidateImageAttribute(const char *varname,
272  const char *attname,
273  vtkDataArray *array);
274  virtual int ValidateImageMinMaxAttribute(const char *varname,
275  const char *attname,
276  vtkDataArray *array);
277  virtual int ValidatePatientAttribute(const char *varname,
278  const char *attname,
279  vtkDataArray *array);
280  virtual int ValidateStudyAttribute(const char *varname,
281  const char *attname,
282  vtkDataArray *array);
283  virtual int ValidateAcquisitionAttribute(const char *varname,
284  const char *attname,
285  vtkDataArray *array);
286 
289 
291  vtkMINCImageAttributeMap *AttributeNames;
292  vtkMINCImageAttributeMap *AttributeValues;
293 
295 
299 
300  int DataType;
301  char *Name;
302 
304 
305 private:
306  vtkMINCImageAttributes(const vtkMINCImageAttributes&); // Not implemented
307  void operator=(const vtkMINCImageAttributes&); // Not implemented
308 
309 };
310 
311 #endif /* vtkMINCImageAttributes_h */
vtkMINCImageAttributes::GetDimensionLengths
virtual vtkIdTypeArray * GetDimensionLengths()
Definition: vtkMINCImageAttributes.h:136
vtkMINCImageAttributes::SetAttributeValueAsArray
virtual void SetAttributeValueAsArray(const char *variable, const char *attribute, vtkDataArray *array)
vtkMINCImageAttributes::~vtkMINCImageAttributes
~vtkMINCImageAttributes()
vtkMINCImageAttributes::GetAttributeValueAsArray
virtual vtkDataArray * GetAttributeValueAsArray(const char *variable, const char *attribute)
vtkMINCImageAttributes::DimensionLengths
vtkIdTypeArray * DimensionLengths
Definition: vtkMINCImageAttributes.h:288
vtkMINCImageAttributes::FindValidRange
virtual void FindValidRange(double range[2])
vtkMINCImageAttributes::Name
char * Name
Definition: vtkMINCImageAttributes.h:301
vtkIdType
int vtkIdType
Definition: vtkType.h:275
VTKIOMINC_EXPORT
#define VTKIOMINC_EXPORT
Definition: vtkIOMINCModule.h:15
vtkMINCImageAttributes::ValidateDimensionAttribute
virtual int ValidateDimensionAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::ValidateStudyAttribute
virtual int ValidateStudyAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::GetAttributeValueAsString
virtual const char * GetAttributeValueAsString(const char *variable, const char *attribute)
vtkMINCImageAttributes::ImageMax
vtkDoubleArray * ImageMax
Definition: vtkMINCImageAttributes.h:297
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkMINCImageAttributes::FindImageRange
virtual void FindImageRange(double range[2])
vtkMINCImageAttributes::GetVariableNames
virtual vtkStringArray * GetVariableNames()
Definition: vtkMINCImageAttributes.h:142
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkgl::range
GLenum GLint * range
Definition: vtkgl.h:14180
vtkgl::length
GLuint GLsizei GLsizei * length
Definition: vtkgl.h:11992
vtkMINCImageAttributes::ImageMin
vtkDoubleArray * ImageMin
Definition: vtkMINCImageAttributes.h:296
vtkMINCImageAttributes::ShallowCopy
virtual void ShallowCopy(vtkMINCImageAttributes *source)
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkMINCImageAttributes::Reset
virtual void Reset()
vtkMINCImageAttributes::SetAttributeValueAsString
virtual void SetAttributeValueAsString(const char *variable, const char *attribute, const char *value)
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkMINCImageAttributes::StringStore
vtkStringArray * StringStore
Definition: vtkMINCImageAttributes.h:294
vtkMINCImageAttributes::ValidateGlobalAttribute
virtual int ValidateGlobalAttribute(const char *attrib, vtkDataArray *array)
vtkMINCImageAttributes::ValidateImageAttribute
virtual int ValidateImageAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::NumberOfImageMinMaxDimensions
int NumberOfImageMinMaxDimensions
Definition: vtkMINCImageAttributes.h:298
vtkMINCImageAttributes::vtkMINCImageAttributes
vtkMINCImageAttributes()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:39
vtkMINCImageAttributes::ValidateAcquisitionAttribute
virtual int ValidateAcquisitionAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkMINCImageAttributes::ValidateAttributes
int ValidateAttributes
Definition: vtkMINCImageAttributes.h:303
vtkMINCImageAttributes::ValidateImageMinMaxAttribute
virtual int ValidateImageMinMaxAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::DimensionNames
vtkStringArray * DimensionNames
Definition: vtkMINCImageAttributes.h:287
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkMINCImageAttributes::SetAttributeValueAsInt
virtual void SetAttributeValueAsInt(const char *variable, const char *attribute, int value)
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkMINCImageAttributes::AttributeNames
vtkMINCImageAttributeMap * AttributeNames
Definition: vtkMINCImageAttributes.h:291
vtkMINCImageAttributes::ValidateGeneralAttribute
virtual int ValidateGeneralAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::AttributeValues
vtkMINCImageAttributeMap * AttributeValues
Definition: vtkMINCImageAttributes.h:292
vtkObject.h
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkMINCImageAttributes::VariableNames
vtkStringArray * VariableNames
Definition: vtkMINCImageAttributes.h:290
vtkMINCImageAttributes::GetAttributeNames
virtual vtkStringArray * GetAttributeNames(const char *variable)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkMINCImageAttributes::GetDimensionNames
virtual vtkStringArray * GetDimensionNames()
Definition: vtkMINCImageAttributes.h:128
vtkMINCImageAttributes::AddDimension
virtual void AddDimension(const char *dimension)
Definition: vtkMINCImageAttributes.h:118
vtkMINCImageAttributes::ValidateAttribute
virtual int ValidateAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkMINCImageAttributes::GetImageMax
virtual vtkDoubleArray * GetImageMax()
Definition: vtkMINCImageAttributes.h:157
vtkMINCImageAttributes::PrintFileHeader
virtual void PrintFileHeader()
vtkMINCImageAttributes::HasAttribute
virtual int HasAttribute(const char *variable, const char *attribute)
vtkMINCImageAttributes::ValidatePatientAttribute
virtual int ValidatePatientAttribute(const char *varname, const char *attname, vtkDataArray *array)
vtkMINCImageAttributes::ConvertDataArrayToString
const char * ConvertDataArrayToString(vtkDataArray *array)
vtkIOMINCModule.h
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:45
vtkMINCImageAttributes::SetImageMax
virtual void SetImageMax(vtkDoubleArray *imageMax)
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkMINCImageAttributes::PrintFileHeader
virtual void PrintFileHeader(ostream &os)
vtkMINCImageAttributes::GetAttributeValueAsDouble
virtual double GetAttributeValueAsDouble(const char *variable, const char *attribute)
vtkMINCImageAttributes::SetAttributeValueAsDouble
virtual void SetAttributeValueAsDouble(const char *variable, const char *attribute, double value)
vtkgl::variable
GLenum GLenum variable
Definition: vtkgl.h:15941
vtkMINCImageAttributes
A container for a MINC image header.
Definition: vtkMINCImageAttributes.h:86
vtkMINCImageAttributes::AddDimension
virtual void AddDimension(const char *dimension, vtkIdType length)
vtkMINCImageAttributes::SetImageMin
virtual void SetImageMin(vtkDoubleArray *imageMin)
vtkMINCImageAttributes::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkMINCImageAttributes::GetAttributeValueAsInt
virtual int GetAttributeValueAsInt(const char *variable, const char *attribute)
vtkMINCImageAttributes::DataType
int DataType
Definition: vtkMINCImageAttributes.h:300
vtkMINCImageAttributes::GetImageMin
virtual vtkDoubleArray * GetImageMin()
Definition: vtkMINCImageAttributes.h:156
vtkMINCImageAttributes::New
static vtkMINCImageAttributes * New()