42 cs.
transform = Eigen::Matrix4d::Identity();
44 QFile file(sFilePath);
45 if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
46 qWarning() <<
"[BidsCoordinateSystem::readJson] Cannot open" << sFilePath;
50 QJsonParseError error;
51 QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), &error);
54 if(error.error != QJsonParseError::NoError) {
55 qWarning() <<
"[BidsCoordinateSystem::readJson] Parse error in" << sFilePath
56 <<
":" << error.errorString();
60 QJsonObject json = doc.object();
63 cs.
system = json.value(QStringLiteral(
"iEEGCoordinateSystem")).toString();
65 cs.
system = json.value(QStringLiteral(
"EEGCoordinateSystem")).toString();
67 cs.
units = json.value(QStringLiteral(
"iEEGCoordinateUnits")).toString();
68 if(cs.
units.isEmpty())
69 cs.
units = json.value(QStringLiteral(
"EEGCoordinateUnits")).toString();
71 cs.
description = json.value(QStringLiteral(
"iEEGCoordinateSystemDescription")).toString();
73 cs.
description = json.value(QStringLiteral(
"EEGCoordinateSystemDescription")).toString();
75 cs.
processingDescription = json.value(QStringLiteral(
"iEEGCoordinateProcessingDescription")).toString();
77 cs.
processingDescription = json.value(QStringLiteral(
"EEGCoordinateProcessingDescription")).toString();
83 if(json.contains(QStringLiteral(
"iEEGCoordinateProcessingTransform")))
84 transformKey = QStringLiteral(
"iEEGCoordinateProcessingTransform");
85 else if(json.contains(QStringLiteral(
"Transform")))
86 transformKey = QStringLiteral(
"Transform");
88 if(!transformKey.isEmpty()) {
89 QJsonArray rows = json.value(transformKey).toArray();
90 if(rows.size() == 4) {
91 for(
int r = 0; r < 4; ++r) {
92 QJsonArray cols = rows[r].toArray();
93 if(cols.size() == 4) {
94 for(
int c = 0; c < 4; ++c)