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
17Copyright (c) 2006 Atamai, Inc.
18
19Use, modification and redistribution of the software, in source or
20binary forms, are permitted provided that the following terms and
21conditions are met:
22
231) 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
282) 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
333) 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
36THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS"
37WITHOUT EXPRESSED OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,
38THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39PURPOSE. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR OTHER PARTY WHO MAY
40MODIFY AND/OR REDISTRIBUTE THE SOFTWARE UNDER THE TERMS OF THIS LICENSE
41BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES
42(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA OR DATA BECOMING INACCURATE
43OR LOSS OF PROFIT OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF
44THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE
45POSSIBILITY OF SUCH DAMAGES.
46
47=========================================================================*/
71#ifndef vtkMINCImageAttributes_h
72#define vtkMINCImageAttributes_h
73
74#include "vtkIOMINCModule.h" // For export macro
75#include "vtkObject.h"
76
77class vtkDataArray;
78class vtkStringArray;
79class vtkIdTypeArray;
80class vtkDoubleArray;
81class vtkMatrix4x4;
82
83// A special class that holds the attributes
84class vtkMINCImageAttributeMap;
85
86class VTKIOMINC_EXPORT vtkMINCImageAttributes : public vtkObject
87{
88public:
90
92 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
93
98 virtual void Reset();
99
101
106 vtkSetStringMacro(Name);
109
111
117 vtkSetMacro(DataType, int);
118 vtkGetMacro(DataType, int);
120
122
128 virtual void AddDimension(const char *dimension) {
129 this->AddDimension(dimension, 0); };
130 virtual void AddDimension(const char *dimension, vtkIdType length);
132
141 return this->DimensionNames; };
142
149 return this->DimensionLengths; };
150
155 return this->VariableNames; };
156
161 virtual vtkStringArray *GetAttributeNames(const char *variable);
162
164
169 virtual void SetImageMin(vtkDoubleArray *imageMin);
170 virtual void SetImageMax(vtkDoubleArray *imageMax);
171 virtual vtkDoubleArray *GetImageMin() { return this->ImageMin; };
172 virtual vtkDoubleArray *GetImageMax() { return this->ImageMax; };
174
176
179 vtkGetMacro(NumberOfImageMinMaxDimensions, int);
180 vtkSetMacro(NumberOfImageMinMaxDimensions, int);
182
186 virtual int HasAttribute(const char *variable, const char *attribute);
187
189
193 virtual void SetAttributeValueAsArray(const char *variable,
194 const char *attribute,
195 vtkDataArray *array);
196 virtual vtkDataArray *GetAttributeValueAsArray(const char *variable,
197 const char *attribute);
199
201
207 virtual void SetAttributeValueAsString(const char *variable,
208 const char *attribute,
209 const char *value);
210 virtual const char *GetAttributeValueAsString(const char *variable,
211 const char *attribute);
213
215
221 virtual void SetAttributeValueAsInt(const char *variable,
222 const char *attribute,
223 int value);
224 virtual int GetAttributeValueAsInt(const char *variable,
225 const char *attribute);
227
229
235 virtual void SetAttributeValueAsDouble(const char *variable,
236 const char *attribute,
237 double value);
238 virtual double GetAttributeValueAsDouble(const char *variable,
239 const char *attribute);
241
242
252 virtual int ValidateAttribute(const char *varname,
253 const char *attname,
254 vtkDataArray *array);
255
257
261 vtkSetMacro(ValidateAttributes, int);
262 vtkBooleanMacro(ValidateAttributes, int);
263 vtkGetMacro(ValidateAttributes, int);
265
275
280 virtual void FindValidRange(double range[2]);
281
286 virtual void FindImageRange(double range[2]);
287
289
293 virtual void PrintFileHeader();
294 virtual void PrintFileHeader(ostream &os);
296
297protected:
300
302
303 virtual int ValidateGlobalAttribute(const char *attrib,
304 vtkDataArray *array);
305 virtual int ValidateGeneralAttribute(const char *varname,
306 const char *attname,
307 vtkDataArray *array);
308 virtual int ValidateDimensionAttribute(const char *varname,
309 const char *attname,
310 vtkDataArray *array);
311 virtual int ValidateImageAttribute(const char *varname,
312 const char *attname,
313 vtkDataArray *array);
314 virtual int ValidateImageMinMaxAttribute(const char *varname,
315 const char *attname,
316 vtkDataArray *array);
317 virtual int ValidatePatientAttribute(const char *varname,
318 const char *attname,
319 vtkDataArray *array);
320 virtual int ValidateStudyAttribute(const char *varname,
321 const char *attname,
322 vtkDataArray *array);
323 virtual int ValidateAcquisitionAttribute(const char *varname,
324 const char *attname,
325 vtkDataArray *array);
326
329
331 vtkMINCImageAttributeMap *AttributeNames;
332 vtkMINCImageAttributeMap *AttributeValues;
333
335
339
341 char *Name;
342
344
345private:
346 vtkMINCImageAttributes(const vtkMINCImageAttributes&) VTK_DELETE_FUNCTION;
347 void operator=(const vtkMINCImageAttributes&) VTK_DELETE_FUNCTION;
348
349};
350
351#endif /* vtkMINCImageAttributes_h */
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
dynamic, self-adjusting array of double
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:40
A container for a MINC image header.
virtual double GetAttributeValueAsDouble(const char *variable, const char *attribute)
virtual const char * GetAttributeValueAsString(const char *variable, const char *attribute)
virtual vtkStringArray * GetVariableNames()
Get the names of all the variables.
virtual void FindImageRange(double range[2])
Find the image range of the data from the information stored in the attributes.
vtkMINCImageAttributeMap * AttributeNames
virtual vtkDoubleArray * GetImageMax()
virtual void FindValidRange(double range[2])
Find the valid range of the data from the information stored in the attributes.
vtkMINCImageAttributeMap * AttributeValues
virtual vtkIdTypeArray * GetDimensionLengths()
Get the lengths of all the dimensions.
virtual vtkStringArray * GetAttributeNames(const char *variable)
List the attribute names for a variable.
virtual vtkDataArray * GetAttributeValueAsArray(const char *variable, const char *attribute)
virtual vtkStringArray * GetDimensionNames()
Get the dimension names.
virtual int ValidateStudyAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void Reset()
Reset all the attributes in preparation for loading new information.
const char * ConvertDataArrayToString(vtkDataArray *array)
virtual void PrintFileHeader()
A diagnostic function.
virtual int ValidateDimensionAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void PrintFileHeader(ostream &os)
virtual void SetAttributeValueAsInt(const char *variable, const char *attribute, int value)
Set an attribute value as an int.
virtual void SetImageMax(vtkDoubleArray *imageMax)
virtual void SetAttributeValueAsString(const char *variable, const char *attribute, const char *value)
Set an attribute value as a string.
virtual vtkDoubleArray * GetImageMin()
virtual int ValidateImageMinMaxAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual int HasAttribute(const char *variable, const char *attribute)
Check to see if a particular attribute exists.
virtual void ShallowCopy(vtkMINCImageAttributes *source)
Do a shallow copy.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int GetAttributeValueAsInt(const char *variable, const char *attribute)
virtual int ValidateGeneralAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void SetAttributeValueAsDouble(const char *variable, const char *attribute, double value)
Set an attribute value as a double.
virtual int ValidateAttribute(const char *varname, const char *attname, vtkDataArray *array)
Validate a particular attribute.
static vtkMINCImageAttributes * New()
virtual void AddDimension(const char *dimension)
Add the names of up to five dimensions.
virtual int ValidateGlobalAttribute(const char *attrib, vtkDataArray *array)
virtual void SetAttributeValueAsArray(const char *variable, const char *attribute, vtkDataArray *array)
Set attribute values for a variable as a vtkDataArray.
virtual int ValidateImageAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void SetImageMin(vtkDoubleArray *imageMin)
Get the image min and max arrays.
virtual int ValidateAcquisitionAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void AddDimension(const char *dimension, vtkIdType length)
virtual int ValidatePatientAttribute(const char *varname, const char *attname, vtkDataArray *array)
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:42
abstract base class for most VTK objects
Definition: vtkObject.h:60
a vtkAbstractArray subclass for strings
@ length
Definition: vtkX3D.h:393
@ value
Definition: vtkX3D.h:220
@ range
Definition: vtkX3D.h:238
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int vtkIdType
Definition: vtkType.h:287