VTK  9.3.20240418
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 
33 VTK_ABI_NAMESPACE_BEGIN
34 class vtkDataArray;
35 class vtkStringArray;
36 class vtkIdTypeArray;
37 class vtkDoubleArray;
38 class vtkMatrix4x4;
39 
40 // A special class that holds the attributes
41 class vtkMINCImageAttributeMap;
42 
43 class VTKIOMINC_EXPORT vtkMINCImageAttributes : public vtkObject
44 {
45 public:
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 
237 protected:
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 
270  int DataType;
271  char* Name;
272 
274 
275 private:
277  void operator=(const vtkMINCImageAttributes&) = delete;
278 };
279 
280 VTK_ABI_NAMESPACE_END
281 #endif /* vtkMINCImageAttributes_h */
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:155
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 void FindImageRange(double range[2])
Find the image range of the data from the information stored in the attributes.
vtkMINCImageAttributeMap * AttributeNames
virtual void FindValidRange(double range[2])
Find the valid range of the data from the information stored in the attributes.
virtual vtkStringArray * GetDimensionNames()
Get the dimension names.
vtkMINCImageAttributeMap * AttributeValues
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 int ValidateStudyAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual void Reset()
Reset all the attributes in preparation for loading new information.
virtual void PrintFileHeader()
A diagnostic function.
virtual int ValidateDimensionAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual vtkDoubleArray * GetImageMax()
Get the image min and max arrays.
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 vtkDataArray * GetAttributeValueAsArray(const char *variable, const char *attribute)
Set attribute values for a variable as a vtkDataArray.
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 vtkStringArray * GetAttributeNames(const char *variable)
List the attribute names for a variable.
virtual void SetAttributeValueAsString(const char *variable, const char *attribute, const char *value)
Set an attribute value as a string.
virtual int ValidateImageMinMaxAttribute(const char *varname, const char *attname, vtkDataArray *array)
virtual vtkDoubleArray * GetImageMin()
Get the image min and max arrays.
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 vtkIdTypeArray * GetDimensionLengths()
Get the lengths of all the dimensions.
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)
const char * ConvertDataArrayToString(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.
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.
static vtkMINCImageAttributes * New()
~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
Definition: vtkMatrix4x4.h:141
abstract base class for most VTK objects
Definition: vtkObject.h:162
a vtkAbstractArray subclass for strings
@ length
Definition: vtkX3D.h:393
@ value
Definition: vtkX3D.h:220
@ range
Definition: vtkX3D.h:238
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