Codebase list ciftilib / 7105606
fix NiftiHeader to properly round-trip qforms, add "effective sform" to toString() Tim Coalson 5 years ago
1 changed file(s) with 13 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
325325 ret += "qoffset_y: " + AString_number(m_header.qoffset_y) + "\n";
326326 ret += "qoffset_z: " + AString_number(m_header.qoffset_z) + "\n";
327327 }
328 ret += "effective sform:\n";
329 vector<vector<float> > tempSform = getSForm();
330 for (int i = 0; i < 3; ++i)
331 {
332 for (int j = 0; j < 4; ++j)
333 {
334 ret += " " + AString_number(tempSform[i][j]);
335 }
336 ret += "\n";
337 }
328338 ret += "xyzt_units: " + AString_number(m_header.xyzt_units) + "\n";
329339 ret += "intent_code: " + AString_number(m_header.intent_code) + "\n";
330340 ret += "intent_name: " + AString_from_latin1(m_header.intent_name, 16) + "\n";
411421 kvec = -kvec;//because to nifti, "left handed" apparently means "up is down", not "left is right"
412422 }
413423 float rotmat[3][3];
414 rotmat[0][0] = ivec[0]; rotmat[1][0] = jvec[0]; rotmat[2][0] = kvec[0];
415 rotmat[0][1] = ivec[1]; rotmat[1][1] = jvec[1]; rotmat[2][1] = kvec[1];
416 rotmat[0][2] = ivec[2]; rotmat[1][2] = jvec[2]; rotmat[2][2] = kvec[2];
424 rotmat[0][0] = ivec[0]; rotmat[1][0] = ivec[1]; rotmat[2][0] = ivec[2];
425 rotmat[0][1] = jvec[0]; rotmat[1][1] = jvec[1]; rotmat[2][1] = jvec[2];
426 rotmat[0][2] = kvec[0]; rotmat[1][2] = kvec[1]; rotmat[2][2] = kvec[2];
417427 float quat[4];
418428 if (!MathFunctions::matrixToQuatern(rotmat, quat))
419429 {