14 #ifndef vtkDICOMGenerator_h
15 #define vtkDICOMGenerator_h
17 #include "vtkObject.h"
18 #include "vtkStdString.h"
19 #include "vtkDICOMModule.h"
20 #include "vtkDICOMConfig.h"
21 #include "vtkDICOMTag.h"
24 #if defined(VTK_ABI_NAMESPACE_BEGIN)
25 VTK_ABI_NAMESPACE_BEGIN
33 #if defined(VTK_ABI_NAMESPACE_BEGIN)
63 void PrintSelf(ostream& os, vtkIndent indent) VTK_DICOM_OVERRIDE;
92 vtkSetMacro(Extended,
int);
93 vtkBooleanMacro(Extended,
int);
94 vtkGetMacro(Extended,
int);
104 vtkSetMacro(MultiFrame,
int);
105 vtkBooleanMacro(MultiFrame,
int);
106 vtkGetMacro(MultiFrame,
int);
116 vtkSetMacro(TimeAsVector,
int);
117 vtkBooleanMacro(TimeAsVector,
int);
118 vtkGetMacro(TimeAsVector,
int);
130 vtkSetMacro(TimeDimension,
int);
131 vtkGetMacro(TimeDimension,
int);
132 vtkSetMacro(TimeSpacing,
double);
133 vtkGetMacro(TimeSpacing,
double);
143 vtkSetMacro(RescaleIntercept,
double);
144 vtkGetMacro(RescaleIntercept,
double);
145 vtkSetMacro(RescaleSlope,
double);
146 vtkGetMacro(RescaleSlope,
double);
156 vtkSetMacro(NumberOfOverlays,
int);
157 vtkGetMacro(NumberOfOverlays,
int);
167 vtkMatrix4x4 *GetPatientMatrix() {
return this->PatientMatrix; }
180 vtkSetMacro(OriginAtBottom,
int);
181 vtkGetMacro(OriginAtBottom,
int);
192 vtkSetMacro(ReverseSliceOrder,
int);
193 vtkGetMacro(ReverseSliceOrder,
int);
241 RepresentationUnsigned = 1u,
242 RepresentationSigned = 2u,
244 BitsStored6 = (1u << 5),
245 BitsStored8 = (1u << 7),
246 BitsStored10 = (1u << 9),
247 BitsStored12 = (1u << 11),
248 BitsStored16 = (1u << 15),
249 BitsStored32 = (1u << 31)
279 void SetPixelRestrictions(
281 unsigned int pixelRepresentation,
unsigned int bitsStored,
282 int colorComponents);
286 virtual
bool GenerateSOPCommonModule(
352 virtual
bool CopyRequiredAttributes(
359 virtual
bool CopyOptionalAttributes(
368 virtual
bool CopyAttributes(
373 static
void ComputeAspectRatio(const
double spacing[2],
int aspect[2]);
376 void ComputeAdjustedMatrix(
378 double matrix[16],
double origin[3],
double spacing[3]);
387 static
void ComputePositionAndOrientation(
388 const
double origin[3], const
double matrix[16],
389 double position[3],
double orientation[6]);
397 virtual
void ComputeDimensions(
398 vtkInformation *info,
int *nframes,
int dims[5],
399 double spacing[5],
double origin[5]);
406 virtual
void ComputePixelValueRange(
407 vtkInformation *info,
int seriesRange[2]);
422 virtual
void InitializeMetaData(vtkInformation *info);
444 int ReverseSliceOrder;
454 double RescaleIntercept;
458 int NumberOfOverlays;
474 int NumberOfColorComponents;
477 unsigned int AllowedPixelRepresentation;
478 unsigned int AllowedBitsStored;
504 int PixelValueRange[2];
507 vtkMatrix4x4 *PatientMatrix;
510 vtkIntArray *SliceIndexArray;
511 vtkIntArray *ComponentIndexArray;
514 vtkIntArray *SourceInstanceArray;
517 vtkIntArray *RangeArray;
520 #ifdef VTK_DICOM_DELETE
Generate DICOM data series for specific IOD classes.
Definition: vtkDICOMGenerator.h:56
vtkIntArray * GetSliceIndexArray()
Get an array that maps file and frame to slice.
Definition: vtkDICOMGenerator.h:226
void SetUIDGenerator(vtkDICOMUIDGenerator *)
Set the UID generator, for generating unique IDs.
void SetPatientMatrix(vtkMatrix4x4 *)
Set the matrix that places the image in DICOM patient coords.
vtkDICOMMetaData * GetMetaData()
Get the generated meta data.
static vtkDICOMGenerator * New()
Static method for construction.
vtkIntArray * GetComponentIndexArray()
Get an array that maps file and frame to component.
Definition: vtkDICOMGenerator.h:235
void PrintSelf(ostream &os, vtkIndent indent) VTK_DICOM_OVERRIDE
Print information about this object.
void SetSourceMetaData(vtkDICOMMetaData *)
Set some meta data for the constructor to use as a source.
virtual bool GenerateInstance(vtkInformation *)
Generate an instance of one of the supported classes.
An item in a DICOM sequence (type SQ).
Definition: vtkDICOMItem.h:34
A (group,element) identifier tag for DICOM attributes.
Definition: vtkDICOMTag.h:23
Generate UIDs for written DICOM files.
Definition: vtkDICOMUIDGenerator.h:46
abstract base class for most VTK objects
Definition: vtkObject.h:54
Tag values defined in the DICOM standard.
Definition: vtkDICOMDictHash.h:10