From: <kin...@us...> - 2004-01-11 00:39:00
|
Update of /cvsroot/teem/teem/src/nrrd In directory sc8-pr-cvs1:/tmp/cvs-serv22376 Modified Files: formatVTK.c Log Message: updated handling of VTK format, to include new verion 3.0 magic, and more types Index: formatVTK.c =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/formatVTK.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** formatVTK.c 7 Jan 2004 15:34:30 -0000 1.6 --- formatVTK.c 11 Jan 2004 00:38:54 -0000 1.7 *************** *** 23,26 **** --- 23,27 ---- #define MAGIC1 "# vtk DataFile Version 1.0" #define MAGIC2 "# vtk DataFile Version 2.0" + #define MAGIC3 "# vtk DataFile Version 3.0" int *************** *** 54,70 **** } if (!( nrrdTypeUChar == nrrd->type ! || nrrdTypeShort == nrrd->type || nrrdTypeUShort == nrrd->type || nrrdTypeInt == nrrd->type || nrrdTypeFloat == nrrd->type || nrrdTypeDouble == nrrd->type )) { ! sprintf(err, "%s: type must be %s, %s, %s, %s, %s, or %s (not %s)", me, ! airEnumStr(nrrdType, nrrdTypeUChar), ! airEnumStr(nrrdType, nrrdTypeShort), ! airEnumStr(nrrdType, nrrdTypeUShort), ! airEnumStr(nrrdType, nrrdTypeInt), ! airEnumStr(nrrdType, nrrdTypeFloat), ! airEnumStr(nrrdType, nrrdTypeDouble), ! airEnumStr(nrrdType, nrrd->type)); biffMaybeAdd(NRRD, err, useBiff); return AIR_FALSE; --- 55,67 ---- } if (!( nrrdTypeUChar == nrrd->type ! || nrrdTypeChar == nrrd->type || nrrdTypeUShort == nrrd->type + || nrrdTypeShort == nrrd->type + || nrrdTypeUInt == nrrd->type || nrrdTypeInt == nrrd->type || nrrdTypeFloat == nrrd->type || nrrdTypeDouble == nrrd->type )) { ! sprintf(err, "%s: type %s doesn't fit in VTK (as currently implemented)", ! me, airEnumStr(nrrdType, nrrd->type)); biffMaybeAdd(NRRD, err, useBiff); return AIR_FALSE; *************** *** 85,89 **** return (!strcmp(MAGIC1, nio->line) ! || !strcmp(MAGIC2, nio->line)); } --- 82,87 ---- return (!strcmp(MAGIC1, nio->line) ! || !strcmp(MAGIC2, nio->line) ! || !strcmp(MAGIC3, nio->line)); } *************** *** 194,201 **** --- 192,203 ---- } else if (!strcmp(three[2], "unsigned_char")) { nrrd->type = nrrdTypeUChar; + } else if (!strcmp(three[2], "char")) { + nrrd->type = nrrdTypeChar; } else if (!strcmp(three[2], "unsigned_short")) { nrrd->type = nrrdTypeUShort; } else if (!strcmp(three[2], "short")) { nrrd->type = nrrdTypeShort; + } else if (!strcmp(three[2], "unsigned_int")) { + nrrd->type = nrrdTypeUInt; } else if (!strcmp(three[2], "int")) { nrrd->type = nrrdTypeInt; *************** *** 205,208 **** --- 207,213 ---- nrrd->type = nrrdTypeDouble; } else { + /* "unsigned_long" and "long" fall in here- I don't know what + the VTK people mean by these types, since always mean different + things on 32-bit versus 64-bit architectures */ sprintf(err, "%s: type \"%s\" not recognized", me, three[2]); biffAdd(NRRD, err); airMopError(mop); return 1; *************** *** 294,297 **** --- 299,305 ---- strcpy(type, "unsigned_char"); break; + case nrrdTypeChar: + strcpy(type, "char"); + break; case nrrdTypeUShort: strcpy(type, "unsigned_short"); *************** *** 300,303 **** --- 308,314 ---- strcpy(type, "short"); break; + case nrrdTypeUInt: + strcpy(type, "unsigned_int"); + break; case nrrdTypeInt: strcpy(type, "int"); *************** *** 314,318 **** biffAdd(NRRD, err); airMopError(mop); return 1; } ! fprintf(file, "%s\n", MAGIC2); /* there is a file-format-imposed limit on the length of the "content" */ if (nrrd->content) { --- 325,329 ---- biffAdd(NRRD, err); airMopError(mop); return 1; } ! fprintf(file, "%s\n", MAGIC3); /* there is a file-format-imposed limit on the length of the "content" */ if (nrrd->content) { |