X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=src%2FgdcmFile.h;h=ab5f7c3299d6621e3352d1c60d95f5f873422764;hb=f58d0f1e0e1680554dcd631817b7f81968fdb950;hp=84dca96545a74841b4063253a2e755880d12be7b;hpb=6b4aa7387613d98b62ee41d18aba2dbe0306b4ba;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 84dca965..ab5f7c32 100644 --- a/src/gdcmFile.h +++ b/src/gdcmFile.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.h,v $ Language: C++ - Date: $Date: 2005/11/25 13:56:31 $ - Version: $Revision: 1.121 $ + Date: $Date: 2007/08/22 16:14:04 $ + Version: $Revision: 1.133 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -16,15 +16,15 @@ =========================================================================*/ -#ifndef GDCMFILE_H -#define GDCMFILE_H +#ifndef _GDCMFILE_H_ +#define _GDCMFILE_H_ #include "gdcmDebug.h" #include "gdcmDocument.h" +#include "gdcmTagKey.h" - -namespace gdcm +namespace GDCM_NAME_SPACE { class RLEFramesInfo; @@ -104,19 +104,24 @@ public: static File *New() {return new File();} // Loading - //GDCM_LEGACY(bool Load( std::string const &filename )); - bool Load(); + // GDCM_LEGACY(bool Load( std::string const &filename )) + bool Load(); // Standard values and informations contained in the header bool IsReadable(); - // Some heuristic based accessors, end user intended + void SetFourthDimensionLocation(uint16_t group, uint16_t elem) { + FourthDimensionLocation = TagKey(group, elem); } + + // Some heuristic based accessors, end user intended int GetImageNumber(); ModalityType GetModality(); int GetXSize(); int GetYSize(); int GetZSize(); + int GetTSize(); // unnormalized in DICOM V3 + bool GetSpacing(float &xspacing, float &yspacing, float &zspacing); float GetXSpacing(); float GetYSpacing(); float GetZSpacing(); @@ -125,8 +130,16 @@ public: float GetYOrigin(); float GetZOrigin(); - bool GetImageOrientationPatient( double iop[6] ); - + float GetXCosineOnX(); + float GetXCosineOnY(); + float GetXCosineOnZ(); + float GetYCosineOnX(); + float GetYCosineOnY(); + float GetYCosineOnZ(); + + bool GetImageOrientationPatient( float iop[6] ); + bool GetImagePositionPatient( float ipp[3] ); + int GetBitsStored(); int GetBitsAllocated(); int GetHighBitPosition(); @@ -144,8 +157,9 @@ public: int GetLUTNbits(); // For rescaling graylevel: - float GetRescaleIntercept(); - float GetRescaleSlope(); + bool GetRescaleSlopeIntercept(double &slope, double &intercept); + double GetRescaleIntercept(); + double GetRescaleSlope(); int GetNumberOfScalarComponents(); int GetNumberOfScalarComponentsRaw(); @@ -176,7 +190,7 @@ public: protected: File(); - ~File(); + virtual ~File(); /// \brief Protect the Writer from writing illegal groups bool MayIWrite(uint16_t group) { if (group < 8 && group !=2 ) return false; else return true; } @@ -196,6 +210,9 @@ protected: /// In order to make things easier the parser shall store the proper value /// in GrPixel to provide a unique access facility. uint16_t GrPixel; + /// \brief allows user to tell gdcm in which DataElement is stored + ///the -unnormalized- 4th Dimension + TagKey FourthDimensionLocation; private: bool DoTheLoadingJob();