Program: gdcm
Module: $RCSfile: gdcmElementSet.cxx,v $
Language: C++
- Date: $Date: 2005/10/26 06:07:26 $
- Version: $Revision: 1.68 $
+ Date: $Date: 2005/11/29 12:48:47 $
+ Version: $Revision: 1.71 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
i != TagHT.end();
++i)
{
- // FIXME : find a trick to know if current object is a
- // gdcm::File or a gdcm::Document
- //if ( dynamic_cast< File* > ( this ) ) { // ignore illegal groups }
-
+ // depending on the gdcm::Document type
+ // (gdcm::File; gdcm::DicomDir, (more to come ?)
+ // some groups *cannot* be present.
+ // We hereby protect gdcm for writting stupid things
+ // if they were found in the original document.
+ if ( !MayIWrite( (i->second)->GetGroup() ) )
+ continue;
// Skip 'Group Length' element, since it may be wrong.
// except for Group 0002
if ( (i->second)->GetElement() == 0x0000
- && (i->second)->GetElement() != 0x0002 )
- continue;
-
+ && (i->second)->GetGroup() != 0x0002 )
+ continue;
i->second->WriteContent(fp, filetype);
}
}
return NULL;
}
+/**
+ * \brief Copies all the attributes from an other DocEntrySet
+ * @param set entry to copy from
+ * @remarks The contained DocEntries a not copied, only referenced
+ */
+void ElementSet::Copy(DocEntrySet *set)
+{
+ // Remove all previous entries
+ ClearEntry();
+
+ DocEntrySet::Copy(set);
+
+ ElementSet *eltSet = dynamic_cast<ElementSet *>(set);
+ if( eltSet )
+ {
+ TagHT = eltSet->TagHT;
+ for(ItTagHT = TagHT.begin();ItTagHT != TagHT.end();++ItTagHT)
+ {
+ (ItTagHT->second)->Register();
+ }
+ }
+}
+
//-----------------------------------------------------------------------------
// Protected