X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFile.h;h=eaf2d2691e4e039b5a9ef55c83c75092f42474b0;hb=224ab29921c6a0d7411d11f8e60a353cb3dd01a4;hp=57ef7d107c03f6aa31af9b2ce5abe36e54d5dfc6;hpb=9a1c462c4bd36bd29efc949d74332f3e19bb9638;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 57ef7d10..eaf2d269 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/08/29 13:05:02 $ - Version: $Revision: 1.116 $ + Date: $Date: 2006/03/29 16:13:00 $ + Version: $Revision: 1.125 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -21,7 +21,7 @@ #include "gdcmDebug.h" #include "gdcmDocument.h" - +#include "gdcmTagKey.h" namespace gdcm @@ -98,16 +98,19 @@ enum ModalityType { */ class GDCM_EXPORT File : public Document { + gdcmTypeMacro(File); + public: - File(); - GDCM_LEGACY(File( std::string const &filename )); - ~File(); + static File *New() {return new File();} // Loading GDCM_LEGACY(bool Load( std::string const &filename )); bool Load(); // Standard values and informations contained in the header bool IsReadable(); + + void SetFourthDimensionLocation(uint16_t group, uint16_t elem) { + FourthDimensionLocation = TagKey(group, elem); } // Some heuristic based accessors, end user intended int GetImageNumber(); @@ -116,7 +119,8 @@ public: int GetXSize(); int GetYSize(); int GetZSize(); - + int GetTSize(); // unnormalized in DICOM V3 + float GetXSpacing(); float GetYSpacing(); float GetZSpacing(); @@ -175,7 +179,12 @@ public: bool Write(std::string fileName, FileType filetype); protected: - + 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; } + /// Store the RLE frames info obtained during parsing of pixels. RLEFramesInfo *RLEInfo; /// Store the JPEG fragments info obtained during parsing of pixels. @@ -191,6 +200,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(); @@ -198,7 +210,8 @@ private: void ComputeJPEGFragmentInfo(); bool ReadTag(uint16_t, uint16_t); uint32_t ReadTagLength(uint16_t, uint16_t); - void ReadAndSkipEncapsulatedBasicOffsetTable(); + void ReadEncapsulatedBasicOffsetTable(); + uint32_t *BasicOffsetTableItemValue; }; } // end namespace gdcm