X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFileHelper.h;h=899cb436b75980429536b6d2f5e0a7d7334ad677;hb=e70a7e5ba954ce367c4b1bce03f6c7065cd45edf;hp=acd8b0139b90762ba822ff2e49ecfb22f46ae67f;hpb=8b7ccc5d0086fd3df994c18e2883bc0e3f7d1984;p=gdcm.git diff --git a/src/gdcmFileHelper.h b/src/gdcmFileHelper.h index acd8b013..899cb436 100644 --- a/src/gdcmFileHelper.h +++ b/src/gdcmFileHelper.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFileHelper.h,v $ Language: C++ - Date: $Date: 2005/10/18 19:54:27 $ - Version: $Revision: 1.26 $ + Date: $Date: 2005/10/25 14:52:34 $ + Version: $Revision: 1.29 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -20,7 +20,7 @@ #define GDCMFILEHELPER_H #include "gdcmDebug.h" -#include "gdcmBase.h" +#include "gdcmRefCounter.h" namespace gdcm @@ -40,8 +40,10 @@ typedef void (*VOID_FUNCTION_PUINT8_PFILE_POINTER)(uint8_t *, File *); * for accessing the image/volume content. One can also use it to * write Dicom/ACR-NEMA/RAW files. */ -class GDCM_EXPORT FileHelper : public Base +class GDCM_EXPORT FileHelper : public RefCounter { + gdcmTypeMacro(FileHelper); + public: enum FileMode { @@ -50,9 +52,8 @@ public: }; public: - FileHelper( ); - FileHelper( File *header ); - GDCM_LEGACY(FileHelper( std::string const &filename )); + static FileHelper *New() {return new FileHelper();} + static FileHelper *New(File *header) {return new FileHelper(header);} virtual ~FileHelper(); @@ -130,12 +131,13 @@ public: void SetWriteTypeToAcr() { SetWriteType(ACR); } /// \brief Tells the writer we want to write as LibIDO void SetWriteTypeToAcrLibido() { SetWriteType(ACR_LIBIDO); } - void SetWriteTypeToJPEG() { SetWriteType(JPEG); } + /// \brief Tells the writer we want to write as JPEG + void SetWriteTypeToJPEG() { SetWriteType(JPEG); } /// \brief Tells the writer which format we want to write /// (ImplicitVR, ExplicitVR, ACR, ACR_LIBIDO) void SetWriteType(FileType format) { WriteType = format; } /// \brief Gets the format we talled the write we wanted to write - /// (ImplicitVR, ExplicitVR, ACR, ACR_LIBIDO) + /// (ImplicitVR, ExplicitVR, ACR, ACR_LIBIDO) FileType GetWriteType() { return WriteType; } // Write pixels of ONE image on hard drive @@ -148,6 +150,9 @@ public: bool Write (std::string const &fileName); protected: + FileHelper( ); + FileHelper( File *header ); + bool CheckWriteIntegrity(); void SetWriteToRaw(); @@ -167,9 +172,9 @@ protected: DataEntry *CopyDataEntry(uint16_t group, uint16_t elem, const TagName &vr = GDCM_VRUNKNOWN); void CheckMandatoryElements(); - void CheckMandatoryEntry(uint16_t group,uint16_t elem,std::string value); - void SetMandatoryEntry(uint16_t group,uint16_t elem,std::string value); - void CopyMandatoryEntry(uint16_t group,uint16_t elem,std::string value); + void CheckMandatoryEntry(uint16_t group, uint16_t elem, std::string value); + void SetMandatoryEntry(uint16_t group, uint16_t elem, std::string value); + void CopyMandatoryEntry(uint16_t group, uint16_t elem, std::string value); void RestoreWriteMandatory(); private: @@ -181,11 +186,6 @@ private: /// gdcm::File to use to load the file File *FileInternal; - /// \brief Whether the underlying \ref gdcm::File was loaded by - /// the constructor or passed to the constructor. - /// When false the destructor is in charge of deletion. - bool SelfHeader; - /// Whether already parsed or not bool Parsed; @@ -202,10 +202,12 @@ private: // Write variables /// \brief (WMODE_RAW, WMODE_RGB) FileMode WriteMode; + /// \brief (ImplicitVR, ExplicitVR, ACR, ACR_LIBIDO) FileType WriteType; - /// Pointer to a user supplied function to allow modification of pixel order - /// (i.e. : Mirror, TopDown, 90°Rotation, ...) + + /// \brief Pointer to a user supplied function to allow modification + /// of pixel order (e.g. : Mirror, UpsideDown, 90°Rotation, ...) /// use as : void userSuppliedFunction(uint8_t *im, gdcm::File *f) /// NB : the "uint8_t *" type of first param is just for prototyping. /// User will Cast it according what he founds with f->GetPixelType()