1 #include <creaImageIODicomNodeComparators.h>
2 #include <creaImageIODicomNode.h>
7 //===================================================================
8 bool DicomNodeIntFieldComparator::compare(DicomNode* const & x,
11 int ix = atoi(x->GetFieldValue(mKey).c_str());
12 int iy = atoi(y->GetFieldValue(mKey).c_str());
13 // std::cout << ix << " < " << iy << " ? "<<std::endl;
16 //===================================================================
18 //===================================================================
19 bool DicomNodeFloatFieldComparator::compare(DicomNode* const & x,
22 if ( x->GetFieldValue(mKey) == y->GetFieldValue(mKey) )
24 float ix = atof(x->GetFieldValue(mKey).c_str());
25 float iy = atof(y->GetFieldValue(mKey).c_str());
28 //===================================================================
31 //===================================================================
32 bool DicomNodeStringFieldComparator::compare(DicomNode* const & x,
35 return ( x->GetFieldValue(mKey) < y->GetFieldValue(mKey) );
37 //===================================================================
39 //===================================================================
40 bool LexicographicalDicomNodeComparator::operator() (DicomNode* const & x,
41 DicomNode * const & y)
43 std::vector<DicomNodeComparator*>::iterator i;
44 for (i =mDicomNodeComparator.begin();
45 i!=mDicomNodeComparator.end();
48 if ( (*i)->operator()(x,y) )
52 if ( (*i)->operator()(y,x) )
59 //===================================================================