VTK  9.3.20240425
vtkMINCImageAttributes.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright (c) 2006 Atamai, Inc.
3// SPDX-License-Identifier: BSD-3-Clause
27#ifndef vtkMINCImageAttributes_h
28#define vtkMINCImageAttributes_h
29
30#include "vtkIOMINCModule.h" // For export macro
31#include "vtkObject.h"
32
33VTK_ABI_NAMESPACE_BEGIN
34class vtkDataArray;
35class vtkStringArray;
36class vtkIdTypeArray;
37class vtkDoubleArray;
38class vtkMatrix4x4;
39
40// A special class that holds the attributes
41class vtkMINCImageAttributeMap;
42
43class VTKIOMINC_EXPORT vtkMINCImageAttributes : public vtkObject
44{
45public:
47
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
55 virtual void Reset();
56
58
63 vtkSetStringMacro(Name);
64 vtkGetStringMacro(Name);
66
68
74 vtkSetMacro(DataType, int);
75 vtkGetMacro(DataType, int);
77
79
85 virtual void AddDimension(const char* dimension) { this->AddDimension(dimension, 0); }
86 virtual void AddDimension(const char* dimension, vtkIdType length);
88
96 virtual vtkStringArray* GetDimensionNames() { return this->DimensionNames; }
97
103 virtual vtkIdTypeArray* GetDimensionLengths() { return this->DimensionLengths; }
104
108 virtual vtkStringArray* GetVariableNames() { return this->VariableNames; }
109
114 virtual vtkStringArray* GetAttributeNames(const char* variable);
115
117
122 virtual void SetImageMin(vtkDoubleArray* imageMin);
123 virtual void SetImageMax(vtkDoubleArray* imageMax);
124 virtual vtkDoubleArray* GetImageMin() { return this->ImageMin; }
125 virtual vtkDoubleArray* GetImageMax() { return this->ImageMax; }
127
129
132 vtkGetMacro(NumberOfImageMinMaxDimensions, int);
133 vtkSetMacro(NumberOfImageMinMaxDimensions, int);
135
139 virtual vtkTypeBool HasAttribute(const char* variable, const char* attribute);
140
142
147 const char* variable, const char* attribute, vtkDataArray* array);
148 virtual vtkDataArray* GetAttributeValueAsArray(const char* variable, const char* attribute);
150
152
159 const char* variable, const char* attribute, const char* value);
160 virtual const char* GetAttributeValueAsString(const char* variable, const char* attribute);
162
164
170 virtual void SetAttributeValueAsInt(const char* variable, const char* attribute, int value);
171 virtual int GetAttributeValueAsInt(const char* variable, const char* attribute);
173
175
181 virtual void SetAttributeValueAsDouble(const char* variable, const char* attribute, double value);
182 virtual double GetAttributeValueAsDouble(const char* variable, const char* attribute);
184
194 virtual int ValidateAttribute(const char* varname, const char* attname, vtkDataArray* array);
195
197
201 vtkSetMacro(ValidateAttributes, vtkTypeBool);
202 vtkBooleanMacro(ValidateAttributes, vtkTypeBool);
203 vtkGetMacro(ValidateAttributes, vtkTypeBool);
205
215
220 virtual void FindValidRange(double range[2]);
221
226 virtual void FindImageRange(double range[2]);
227
229
233 virtual void PrintFileHeader();
234 virtual void PrintFileHeader(ostream& os);
236
237protected:
240
242
243 virtual int ValidateGlobalAttribute(const char* attrib, vtkDataArray* array);
245 const char* varname, const char* attname, vtkDataArray* array);
247 const char* varname, const char* attname, vtkDataArray* array);
248 virtual int ValidateImageAttribute(const char* varname, const char* attname, vtkDataArray* array);
250 const char* varname, const char* attname, vtkDataArray* array);
252 const char* varname, const char* attname, vtkDataArray* array);
253 virtual int ValidateStudyAttribute(const char* varname, const char* attname, vtkDataArray* array);
255 const char* varname, const char* attname, vtkDataArray* array);
256
259
261 vtkMINCImageAttributeMap* AttributeNames;
262 vtkMINCImageAttributeMap* AttributeValues;
263
265
269
271 char* Name;
272
274
275private:
277 void operator=(const vtkMINCImageAttributes&) = delete;
278};
279
280VTK_ABI_NAMESPACE_END
281#endif /* vtkMINCImageAttributes_h */
abstract superclass for arrays of numeric data
dynamic, self-adjusting array of double
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition vtkIndent.h:108
A container for a MINC image header.
virtual double GetAttributeValueAsDouble(const char *variable, const char *attribute)
Set an attribute value as a double.
virtual const char * GetAttributeValueAsString(const char *variable, const char *attribute)
Set an attribute value as a string.
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()
Get the image min and max arrays.
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)
Set attribute values for a variable as a vtkDataArray.
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)
A diagnostic function.
virtual void SetAttributeValueAsInt(const char *variable, const char *attribute, int value)
Set an attribute value as an int.
virtual void SetImageMax(vtkDoubleArray *imageMax)
Get the image min and max arrays.
virtual vtkTypeBool HasAttribute(const char *variable, const char *attribute)
Check to see if a particular attribute exists.
virtual void SetAttributeValueAsString(const char *variable, const char *attribute, const char *value)
Set an attribute value as a string.
virtual vtkDoubleArray * GetImageMin()
Get the image min and max arrays.
virtual int ValidateImageMinMaxAttribute(const char *varname, const char *attname, vtkDataArray *array)
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)
Set an attribute value as an int.
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.
~vtkMINCImageAttributes() override
virtual int ValidateAcquisitionAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void AddDimension(const char *dimension, vtkIdType length)
Add the names of up to five dimensions.
virtual int ValidatePatientAttribute(const char *varname, const char *attname, vtkDataArray *array)
represent and manipulate 4x4 transformation matrices
abstract base class for most VTK objects
Definition vtkObject.h:162
a vtkAbstractArray subclass for strings
int vtkTypeBool
Definition vtkABI.h:64
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
int vtkIdType
Definition vtkType.h:315