64 cs.
transform = Eigen::Matrix4d::Identity();
66 QFile file(sFilePath);
67 if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
68 qWarning() <<
"[BidsCoordinateSystem::readJson] Cannot open" << sFilePath;
72 QJsonParseError error;
73 QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), &error);
76 if(error.error != QJsonParseError::NoError) {
77 qWarning() <<
"[BidsCoordinateSystem::readJson] Parse error in" << sFilePath
78 <<
":" << error.errorString();
82 QJsonObject json = doc.object();
85 cs.
system = json.value(QStringLiteral(
"iEEGCoordinateSystem")).toString();
87 cs.
system = json.value(QStringLiteral(
"EEGCoordinateSystem")).toString();
89 cs.
units = json.value(QStringLiteral(
"iEEGCoordinateUnits")).toString();
90 if(cs.
units.isEmpty())
91 cs.
units = json.value(QStringLiteral(
"EEGCoordinateUnits")).toString();
93 cs.
description = json.value(QStringLiteral(
"iEEGCoordinateSystemDescription")).toString();
95 cs.
description = json.value(QStringLiteral(
"EEGCoordinateSystemDescription")).toString();
97 cs.
processingDescription = json.value(QStringLiteral(
"iEEGCoordinateProcessingDescription")).toString();
99 cs.
processingDescription = json.value(QStringLiteral(
"EEGCoordinateProcessingDescription")).toString();
104 QString transformKey;
105 if(json.contains(QStringLiteral(
"iEEGCoordinateProcessingTransform")))
106 transformKey = QStringLiteral(
"iEEGCoordinateProcessingTransform");
107 else if(json.contains(QStringLiteral(
"Transform")))
108 transformKey = QStringLiteral(
"Transform");
110 if(!transformKey.isEmpty()) {
111 QJsonArray rows = json.value(transformKey).toArray();
112 if(rows.size() == 4) {
113 for(
int r = 0; r < 4; ++r) {
114 QJsonArray cols = rows[r].toArray();
115 if(cols.size() == 4) {
116 for(
int c = 0; c < 4; ++c)