X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFile.h;h=eaf2d2691e4e039b5a9ef55c83c75092f42474b0;hb=224ab29921c6a0d7411d11f8e60a353cb3dd01a4;hp=2675a0d7eb5aa38be045c8ceafa1add226c4f9e8;hpb=f88cd7e3127179d20920d54df75bff206be94a09;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 2675a0d7..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/07/24 02:14:43 $ - Version: $Revision: 1.114 $ + 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,21 +21,12 @@ #include "gdcmDebug.h" #include "gdcmDocument.h" - +#include "gdcmTagKey.h" namespace gdcm { -typedef struct -{ - double x; - double y; - double z; -} vector3D; - -typedef std::pair Res; - class RLEFramesInfo; class JPEGFragmentsInfo; @@ -107,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(); @@ -125,7 +119,8 @@ public: int GetXSize(); int GetYSize(); int GetZSize(); - + int GetTSize(); // unnormalized in DICOM V3 + float GetXSpacing(); float GetYSpacing(); float GetZSpacing(); @@ -176,17 +171,20 @@ public: void AddAnonymizeElement (uint16_t group, uint16_t elem, std::string const &value); /// Clears the list of elements to be anonymized - void ClearAnonymizeList() { AnonymizeList.clear(); } + void ClearAnonymizeList() { UserAnonymizeList.clear(); } void AnonymizeNoLoad(); /// Replace patient's own information by info from the Anonymization list bool AnonymizeFile(); bool Write(std::string fileName, FileType filetype); - double TypeOrientation( ); - 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. @@ -202,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(); @@ -209,12 +210,9 @@ private: void ComputeJPEGFragmentInfo(); bool ReadTag(uint16_t, uint16_t); uint32_t ReadTagLength(uint16_t, uint16_t); - void ReadAndSkipEncapsulatedBasicOffsetTable(); + void ReadEncapsulatedBasicOffsetTable(); + uint32_t *BasicOffsetTableItemValue; - Res VerfCriterion(int typeCriterion, double criterionNew, Res const & res); - double CalculLikelyhood2Vec(vector3D const & refA, vector3D const & refB, - vector3D const & ori1, vector3D const & ori2); - vector3D ProductVectorial(vector3D const & vec1, vector3D const & vec2); }; } // end namespace gdcm