Skip to content

Commit cd6669a

Browse files
committed
add functions for converting series units to/from strings, use it in xml info example
1 parent 693c535 commit cd6669a

File tree

3 files changed

+49
-16
lines changed

3 files changed

+49
-16
lines changed

Cifti/CiftiSeriesMap.cxx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,50 @@
3434
using namespace cifti;
3535
using namespace std;
3636

37+
CiftiSeriesMap::Unit CiftiSeriesMap::stringToUnit(const AString& string, bool& ok)
38+
{
39+
ok = true;
40+
if (string == "SECOND")
41+
{
42+
return SECOND;
43+
} else if (string == "HERTZ") {
44+
return HERTZ;
45+
} else if (string == "METER") {
46+
return METER;
47+
} else if (string == "RADIAN") {
48+
return RADIAN;
49+
}
50+
ok = false;
51+
return SECOND;
52+
}
53+
54+
AString CiftiSeriesMap::unitToString(const CiftiSeriesMap::Unit& theUnit)
55+
{
56+
switch (theUnit)
57+
{
58+
case SECOND:
59+
return "SECOND";
60+
case HERTZ:
61+
return "HERTZ";
62+
case METER:
63+
return "METER";
64+
case RADIAN:
65+
return "RADIAN";
66+
}
67+
CiftiAssert(false);
68+
return "UNKNOWN";
69+
}
70+
71+
vector<CiftiSeriesMap::Unit> CiftiSeriesMap::getAllUnits()
72+
{
73+
vector<Unit> ret;
74+
ret.push_back(SECOND);
75+
ret.push_back(HERTZ);
76+
ret.push_back(METER);
77+
ret.push_back(RADIAN);
78+
return ret;
79+
}
80+
3781
void CiftiSeriesMap::readXML1(XmlReader& xml)
3882
{
3983
vector<AString> mandAttrs(2), optAttrs(1, "TimeStart");

Cifti/CiftiSeriesMap.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ namespace cifti
6666
void setUnit(const Unit& unit) { m_unit = unit; }
6767
void setLength(const int64_t& length) { CiftiAssert(length > 0); m_length = length; }
6868

69+
static Unit stringToUnit(const AString& string, bool& ok);
70+
static AString unitToString(const Unit& theUnit);
71+
static std::vector<Unit> getAllUnits();
72+
6973
CiftiMappingType* clone() const { return new CiftiSeriesMap(*this); }
7074
MappingType getType() const { return SERIES; }
7175
int64_t getLength() const { return m_length; }

example/xmlinfo.cxx

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,7 @@ int main(int argc, char** argv)
9393
cout << "Series, length " << myMap.getLength() << endl;
9494
cout << " Start: " << myMap.getStart() << endl;
9595
cout << " Step: " << myMap.getStep() << endl;
96-
cout << " Unit: ";
97-
switch (myMap.getUnit())
98-
{
99-
case CiftiSeriesMap::SECOND:
100-
cout << "Seconds" << endl;
101-
break;
102-
case CiftiSeriesMap::HERTZ:
103-
cout << "Hertz" << endl;
104-
break;
105-
case CiftiSeriesMap::METER:
106-
cout << "Meters" << endl;
107-
break;
108-
case CiftiSeriesMap::RADIAN:
109-
cout << "Radians" << endl;
110-
break;
111-
}
96+
cout << " Unit: " << AString_to_std_string(CiftiSeriesMap::unitToString(myMap.getUnit())) << endl;
11297
break;
11398
}
11499
}

0 commit comments

Comments
 (0)