You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(19) |
Nov
(45) |
Dec
(80) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(58) |
Feb
(127) |
Mar
(74) |
Apr
(34) |
May
(117) |
Jun
(14) |
Jul
(26) |
Aug
(13) |
Sep
(1) |
Oct
(38) |
Nov
(13) |
Dec
(5) |
| 2005 |
Jan
(108) |
Feb
(134) |
Mar
(54) |
Apr
(133) |
May
(16) |
Jun
(54) |
Jul
(128) |
Aug
(99) |
Sep
(157) |
Oct
(182) |
Nov
(236) |
Dec
(212) |
| 2006 |
Jan
(86) |
Feb
(76) |
Mar
(121) |
Apr
(27) |
May
(7) |
Jun
(1) |
Jul
(6) |
Aug
(28) |
Sep
(1) |
Oct
(27) |
Nov
(5) |
Dec
|
| 2007 |
Jan
(32) |
Feb
(22) |
Mar
(22) |
Apr
(11) |
May
(3) |
Jun
(12) |
Jul
(11) |
Aug
(9) |
Sep
(37) |
Oct
(4) |
Nov
(9) |
Dec
(51) |
| 2008 |
Jan
(7) |
Feb
(31) |
Mar
(46) |
Apr
(31) |
May
(5) |
Jun
(27) |
Jul
(12) |
Aug
(5) |
Sep
(13) |
Oct
(24) |
Nov
(112) |
Dec
(15) |
| 2009 |
Jan
(6) |
Feb
(103) |
Mar
(66) |
Apr
(9) |
May
(8) |
Jun
(1) |
Jul
(20) |
Aug
(9) |
Sep
(2) |
Oct
(81) |
Nov
(88) |
Dec
(30) |
| 2010 |
Jan
(65) |
Feb
(57) |
Mar
(22) |
Apr
(12) |
May
(4) |
Jun
(12) |
Jul
(43) |
Aug
(6) |
Sep
(6) |
Oct
(4) |
Nov
(6) |
Dec
(3) |
| 2011 |
Jan
(10) |
Feb
(27) |
Mar
(11) |
Apr
(9) |
May
(69) |
Jun
(73) |
Jul
(67) |
Aug
(116) |
Sep
(40) |
Oct
(11) |
Nov
(34) |
Dec
(19) |
| 2012 |
Jan
|
Feb
(4) |
Mar
(28) |
Apr
(18) |
May
(9) |
Jun
(7) |
Jul
(4) |
Aug
(155) |
Sep
(264) |
Oct
(172) |
Nov
(15) |
Dec
(40) |
| 2013 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(20) |
Jul
(76) |
Aug
(67) |
Sep
(49) |
Oct
(27) |
Nov
(3) |
Dec
(3) |
| 2014 |
Jan
(7) |
Feb
(7) |
Mar
(16) |
Apr
|
May
(4) |
Jun
(1) |
Jul
(18) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2015 |
Jan
(6) |
Feb
(5) |
Mar
(3) |
Apr
(23) |
May
(5) |
Jun
|
Jul
(2) |
Aug
(4) |
Sep
|
Oct
|
Nov
(2) |
Dec
(4) |
| 2016 |
Jan
(2) |
Feb
(7) |
Mar
(2) |
Apr
(1) |
May
(14) |
Jun
(3) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(3) |
| 2017 |
Jan
(6) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(12) |
Sep
(6) |
Oct
|
Nov
(3) |
Dec
|
| 2018 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(8) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2019 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(8) |
Oct
|
Nov
(2) |
Dec
(25) |
| 2020 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(53) |
Nov
(33) |
Dec
|
| 2021 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(5) |
| 2022 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
(93) |
Aug
(206) |
Sep
(39) |
Oct
(19) |
Nov
(11) |
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(150) |
Jul
(124) |
Aug
(14) |
Sep
(5) |
Oct
|
Nov
(1) |
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(12) |
Jul
(62) |
Aug
|
Sep
(7) |
Oct
|
Nov
(7) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
(14) |
May
(3) |
Jun
|
Jul
|
Aug
(76) |
Sep
(214) |
Oct
(6) |
Nov
|
Dec
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv5594/nrrd
Modified Files:
encoding.c encodingAscii.c encodingBzip2.c encodingGzip.c
encodingHex.c encodingRaw.c format.c formatEPS.c formatNRRD.c
formatPNG.c formatPNM.c formatText.c formatVTK.c methodsNrrd.c
parseNrrd.c nrrd.h privateNrrd.h read.c write.c
Log Message:
API RENAME: NrrdIO --> NrrdIoState
Index: encoding.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encoding.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** encoding.c 24 Sep 2003 06:09:38 -0000 1.1
--- encoding.c 29 Nov 2003 08:16:07 -0000 1.2
***************
*** 49,53 ****
int
! _nrrdEncodingUnknown_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingUnknown_read", err[AIR_STRLEN_MED];
--- 49,53 ----
int
! _nrrdEncodingUnknown_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingUnknown_read", err[AIR_STRLEN_MED];
***************
*** 64,68 ****
int
! _nrrdEncodingUnknown_write(const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingUnknown_write", err[AIR_STRLEN_MED];
--- 64,68 ----
int
! _nrrdEncodingUnknown_write(const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingUnknown_write", err[AIR_STRLEN_MED];
Index: encodingAscii.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingAscii.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** encodingAscii.c 13 Oct 2003 15:05:54 -0000 1.2
--- encodingAscii.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 28,32 ****
int
! _nrrdEncodingAscii_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingAscii_read", err[AIR_STRLEN_MED],
numbStr[AIR_STRLEN_HUGE]; /* HEY: fix this */
--- 28,32 ----
int
! _nrrdEncodingAscii_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingAscii_read", err[AIR_STRLEN_MED],
numbStr[AIR_STRLEN_HUGE]; /* HEY: fix this */
***************
*** 82,86 ****
int
! _nrrdEncodingAscii_write(const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingAscii_write", err[AIR_STRLEN_MED],
buff[AIR_STRLEN_MED];
--- 82,86 ----
int
! _nrrdEncodingAscii_write(const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingAscii_write", err[AIR_STRLEN_MED],
buff[AIR_STRLEN_MED];
Index: encodingBzip2.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingBzip2.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** encodingBzip2.c 13 Oct 2003 15:05:54 -0000 1.2
--- encodingBzip2.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 36,40 ****
int
! _nrrdEncodingBzip2_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingBzip2_read", err[AIR_STRLEN_MED];
#if TEEM_BZIP2
--- 36,40 ----
int
! _nrrdEncodingBzip2_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingBzip2_read", err[AIR_STRLEN_MED];
#if TEEM_BZIP2
***************
*** 151,155 ****
int
! _nrrdEncodingBzip2_write(const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingBzip2_write", err[AIR_STRLEN_MED];
#if TEEM_BZIP2
--- 151,155 ----
int
! _nrrdEncodingBzip2_write(const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingBzip2_write", err[AIR_STRLEN_MED];
#if TEEM_BZIP2
Index: encodingGzip.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingGzip.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** encodingGzip.c 13 Oct 2003 15:05:54 -0000 1.2
--- encodingGzip.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 32,36 ****
int
! _nrrdEncodingGzip_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingGzip_read", err[AIR_STRLEN_MED];
#if TEEM_ZLIB
--- 32,36 ----
int
! _nrrdEncodingGzip_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingGzip_read", err[AIR_STRLEN_MED];
#if TEEM_ZLIB
***************
*** 142,146 ****
int
! _nrrdEncodingGzip_write(const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingGzip_write", err[AIR_STRLEN_MED];
#if TEEM_ZLIB
--- 142,146 ----
int
! _nrrdEncodingGzip_write(const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingGzip_write", err[AIR_STRLEN_MED];
#if TEEM_ZLIB
***************
*** 172,176 ****
}
! /* Set format string based on the NrrdIO parameters. */
fmt[fmt_i++] = 'w';
if (0 <= nio->zlibLevel && nio->zlibLevel <= 9)
--- 172,176 ----
}
! /* Set format string based on the NrrdIoState parameters. */
fmt[fmt_i++] = 'w';
if (0 <= nio->zlibLevel && nio->zlibLevel <= 9)
Index: encodingHex.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingHex.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** encodingHex.c 13 Oct 2003 15:05:54 -0000 1.3
--- encodingHex.c 29 Nov 2003 08:16:07 -0000 1.4
***************
*** 58,62 ****
int
! _nrrdEncodingHex_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingHex_read", err[AIR_STRLEN_MED];
size_t nibIdx, nibNum;
--- 58,62 ----
int
! _nrrdEncodingHex_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingHex_read", err[AIR_STRLEN_MED];
size_t nibIdx, nibNum;
***************
*** 110,114 ****
int
! _nrrdEncodingHex_write(const Nrrd *nrrd, NrrdIO *nio) {
/* char me[]="_nrrdEncodingHex_write", err[AIR_STRLEN_MED]; */
unsigned char *data;
--- 110,114 ----
int
! _nrrdEncodingHex_write(const Nrrd *nrrd, NrrdIoState *nio) {
/* char me[]="_nrrdEncodingHex_write", err[AIR_STRLEN_MED]; */
unsigned char *data;
Index: encodingRaw.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingRaw.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** encodingRaw.c 14 Nov 2003 22:08:05 -0000 1.3
--- encodingRaw.c 29 Nov 2003 08:16:07 -0000 1.4
***************
*** 28,32 ****
int
! _nrrdEncodingRaw_read(Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingRaw_read", err[AIR_STRLEN_MED];
size_t num, bsize, size, ret, dio;
--- 28,32 ----
int
! _nrrdEncodingRaw_read(Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingRaw_read", err[AIR_STRLEN_MED];
size_t num, bsize, size, ret, dio;
***************
*** 111,115 ****
int
! _nrrdEncodingRaw_write(const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdEncodingRaw_write", err[AIR_STRLEN_MED];
size_t size, ret, dio;
--- 111,115 ----
int
! _nrrdEncodingRaw_write(const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdEncodingRaw_write", err[AIR_STRLEN_MED];
size_t size, ret, dio;
Index: format.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/format.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** format.c 24 Sep 2003 06:09:38 -0000 1.1
--- format.c 29 Nov 2003 08:16:07 -0000 1.2
***************
*** 74,78 ****
int
! _nrrdFormatUnknown_contentStartsLike(NrrdIO *nio) {
/* insert code here */
--- 74,78 ----
int
! _nrrdFormatUnknown_contentStartsLike(NrrdIoState *nio) {
/* insert code here */
***************
*** 82,86 ****
int
! _nrrdFormatUnknown_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatUnknown_read", err[AIR_STRLEN_MED];
--- 82,86 ----
int
! _nrrdFormatUnknown_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatUnknown_read", err[AIR_STRLEN_MED];
***************
*** 93,97 ****
int
! _nrrdFormatUnknown_write(FILE *file, const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatUnknown_write", err[AIR_STRLEN_MED];
--- 93,97 ----
int
! _nrrdFormatUnknown_write(FILE *file, const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatUnknown_write", err[AIR_STRLEN_MED];
Index: formatEPS.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatEPS.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** formatEPS.c 24 Sep 2003 07:23:48 -0000 1.2
--- formatEPS.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 79,83 ****
int
! _nrrdFormatEPS_contentStartsLike(NrrdIO *nio) {
/* this is a write-only format */
--- 79,83 ----
int
! _nrrdFormatEPS_contentStartsLike(NrrdIoState *nio) {
/* this is a write-only format */
***************
*** 86,90 ****
int
! _nrrdFormatEPS_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatEPS_read", err[AIR_STRLEN_MED];
--- 86,90 ----
int
! _nrrdFormatEPS_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatEPS_read", err[AIR_STRLEN_MED];
***************
*** 95,99 ****
int
! _nrrdFormatEPS_write(FILE *file, const Nrrd *_nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatEPS_write", err[AIR_STRLEN_MED];
int color, sx, sy;
--- 95,99 ----
int
! _nrrdFormatEPS_write(FILE *file, const Nrrd *_nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatEPS_write", err[AIR_STRLEN_MED];
int color, sx, sy;
Index: formatNRRD.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatNRRD.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** formatNRRD.c 30 Sep 2003 09:54:30 -0000 1.3
--- formatNRRD.c 29 Nov 2003 08:16:07 -0000 1.4
***************
*** 55,59 ****
int
! _nrrdFormatNRRD_contentStartsLike(NrrdIO *nio) {
return (!strcmp(MAGIC0, nio->line)
--- 55,59 ----
int
! _nrrdFormatNRRD_contentStartsLike(NrrdIoState *nio) {
return (!strcmp(MAGIC0, nio->line)
***************
*** 71,75 ****
*/
int
! _nrrdHeaderCheck (Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdHeaderCheck", err[AIR_STRLEN_MED];
int i;
--- 71,75 ----
*/
int
! _nrrdHeaderCheck (Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdHeaderCheck", err[AIR_STRLEN_MED];
int i;
***************
*** 123,127 ****
*/
int
! _nrrdFormatNRRD_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatNRRD_read", *err=NULL;
/* NOTE: err has to be dynamically allocated because of the
--- 123,127 ----
*/
int
! _nrrdFormatNRRD_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatNRRD_read", *err=NULL;
/* NOTE: err has to be dynamically allocated because of the
***************
*** 298,302 ****
int
! _nrrdFormatNRRD_write(FILE *file, const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatNRRD_write", err[AIR_STRLEN_MED],
tmp[AIR_STRLEN_HUGE], trueDataFN[AIR_STRLEN_HUGE];
--- 298,302 ----
int
! _nrrdFormatNRRD_write(FILE *file, const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatNRRD_write", err[AIR_STRLEN_MED],
tmp[AIR_STRLEN_HUGE], trueDataFN[AIR_STRLEN_HUGE];
Index: formatPNG.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatPNG.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** formatPNG.c 2 Oct 2003 07:53:59 -0000 1.2
--- formatPNG.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 102,106 ****
int
! _nrrdFormatPNG_contentStartsLike(NrrdIO *nio) {
return !strcmp(MAGIC, nio->line);
--- 102,106 ----
int
! _nrrdFormatPNG_contentStartsLike(NrrdIoState *nio) {
return !strcmp(MAGIC, nio->line);
***************
*** 157,161 ****
int
! _nrrdFormatPNG_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatPNG_read", err[AIR_STRLEN_MED];
#if TEEM_PNG
--- 157,161 ----
int
! _nrrdFormatPNG_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatPNG_read", err[AIR_STRLEN_MED];
#if TEEM_PNG
***************
*** 370,374 ****
int
! _nrrdFormatPNG_write(FILE *file, const Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatPNG_write", err[AIR_STRLEN_MED];
#if TEEM_PNG
--- 370,374 ----
int
! _nrrdFormatPNG_write(FILE *file, const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatPNG_write", err[AIR_STRLEN_MED];
#if TEEM_PNG
Index: formatPNM.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatPNM.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** formatPNM.c 24 Sep 2003 06:09:38 -0000 1.1
--- formatPNM.c 29 Nov 2003 08:16:07 -0000 1.2
***************
*** 90,94 ****
int
! _nrrdFormatPNM_contentStartsLike(NrrdIO *nio) {
return (!strcmp(MAGIC_P6, nio->line)
--- 90,94 ----
int
! _nrrdFormatPNM_contentStartsLike(NrrdIoState *nio) {
return (!strcmp(MAGIC_P6, nio->line)
***************
*** 99,103 ****
int
! _nrrdFormatPNM_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatPNM_read", err[AIR_STRLEN_MED], *perr;
const char *fs;
--- 99,103 ----
int
! _nrrdFormatPNM_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatPNM_read", err[AIR_STRLEN_MED], *perr;
const char *fs;
***************
*** 272,276 ****
int
! _nrrdFormatPNM_write(FILE *file, const Nrrd *_nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatPNM_write", err[AIR_STRLEN_MED];
int i, color, sx, sy, magic;
--- 272,276 ----
int
! _nrrdFormatPNM_write(FILE *file, const Nrrd *_nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatPNM_write", err[AIR_STRLEN_MED];
int i, color, sx, sy, magic;
Index: formatText.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatText.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** formatText.c 2 Oct 2003 06:06:04 -0000 1.2
--- formatText.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 56,60 ****
int
! _nrrdFormatText_contentStartsLike(NrrdIO *nio) {
float oneFloat;
--- 56,60 ----
int
! _nrrdFormatText_contentStartsLike(NrrdIoState *nio) {
float oneFloat;
***************
*** 64,68 ****
int
! _nrrdFormatText_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatText_read", err[AIR_STRLEN_MED], *errS;
const char *fs;
--- 64,68 ----
int
! _nrrdFormatText_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatText_read", err[AIR_STRLEN_MED], *errS;
const char *fs;
***************
*** 251,255 ****
int
! _nrrdFormatText_write(FILE *file, const Nrrd *nrrd, NrrdIO *nio) {
char cmt[AIR_STRLEN_SMALL], buff[AIR_STRLEN_SMALL];
size_t I;
--- 251,255 ----
int
! _nrrdFormatText_write(FILE *file, const Nrrd *nrrd, NrrdIoState *nio) {
char cmt[AIR_STRLEN_SMALL], buff[AIR_STRLEN_SMALL];
size_t I;
Index: formatVTK.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/formatVTK.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** formatVTK.c 14 Oct 2003 20:10:44 -0000 1.4
--- formatVTK.c 29 Nov 2003 08:16:07 -0000 1.5
***************
*** 82,86 ****
int
! _nrrdFormatVTK_contentStartsLike(NrrdIO *nio) {
return (!strcmp(MAGIC1, nio->line)
--- 82,86 ----
int
! _nrrdFormatVTK_contentStartsLike(NrrdIoState *nio) {
return (!strcmp(MAGIC1, nio->line)
***************
*** 89,93 ****
int
! _nrrdFormatVTK_read(FILE *file, Nrrd *nrrd, NrrdIO *nio) {
char me[]="_nrrdReadVTK", err[AIR_STRLEN_MED], *three[3];
int len, sx, sy, sz, ret, N;
--- 89,93 ----
int
! _nrrdFormatVTK_read(FILE *file, Nrrd *nrrd, NrrdIoState *nio) {
char me[]="_nrrdReadVTK", err[AIR_STRLEN_MED], *three[3];
int len, sx, sy, sz, ret, N;
***************
*** 252,256 ****
/* this strongly assumes that nrrdFitsInFormat() was true */
int
! _nrrdFormatVTK_write(FILE *file, const Nrrd *_nrrd, NrrdIO *nio) {
char me[]="_nrrdFormatVTK_write", err[AIR_STRLEN_MED];
int i, sx, sy, sz, sax;
--- 252,256 ----
/* this strongly assumes that nrrdFitsInFormat() was true */
int
! _nrrdFormatVTK_write(FILE *file, const Nrrd *_nrrd, NrrdIoState *nio) {
char me[]="_nrrdFormatVTK_write", err[AIR_STRLEN_MED];
int i, sx, sy, sz, sax;
Index: methodsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/methodsNrrd.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** methodsNrrd.c 16 Nov 2003 16:25:19 -0000 1.33
--- methodsNrrd.c 29 Nov 2003 08:16:07 -0000 1.34
***************
*** 25,29 ****
void
! nrrdIOInit (NrrdIO *nio) {
if (nio) {
--- 25,29 ----
void
! nrrdIoStateInit (NrrdIoState *nio) {
if (nio) {
***************
*** 55,63 ****
}
! NrrdIO *
! nrrdIONew (void) {
! NrrdIO *nio;
! nio = calloc(1, sizeof(NrrdIO));
if (nio) {
nio->path = NULL;
--- 55,63 ----
}
! NrrdIoState *
! nrrdIoStateNew (void) {
! NrrdIoState *nio;
! nio = calloc(1, sizeof(NrrdIoState));
if (nio) {
nio->path = NULL;
***************
*** 68,78 ****
nio->format = NULL;
nio->encoding = NULL;
! nrrdIOInit(nio);
}
return nio;
}
! NrrdIO *
! nrrdIONix (NrrdIO *nio) {
AIR_FREE(nio->path);
--- 68,78 ----
nio->format = NULL;
nio->encoding = NULL;
! nrrdIoStateInit(nio);
}
return nio;
}
! NrrdIoState *
! nrrdIoStateNix (NrrdIoState *nio) {
AIR_FREE(nio->path);
Index: parseNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/parseNrrd.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** parseNrrd.c 4 Oct 2003 06:22:52 -0000 1.18
--- parseNrrd.c 29 Nov 2003 08:16:07 -0000 1.19
***************
*** 22,26 ****
int
! _nrrdReadNrrdParse_nonfield (Nrrd *nrrd, NrrdIO *io, int useBiff) {
/*
char c;
--- 22,26 ----
int
! _nrrdReadNrrdParse_nonfield (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
/*
char c;
***************
*** 36,40 ****
int
! _nrrdReadNrrdParse_comment (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_comment", err[AIR_STRLEN_MED];
char *info;
--- 36,40 ----
int
! _nrrdReadNrrdParse_comment (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_comment", err[AIR_STRLEN_MED];
char *info;
***************
*** 50,54 ****
int
! _nrrdReadNrrdParse_type (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_type", err[AIR_STRLEN_MED];
char *info;
--- 50,54 ----
int
! _nrrdReadNrrdParse_type (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_type", err[AIR_STRLEN_MED];
char *info;
***************
*** 63,67 ****
int
! _nrrdReadNrrdParse_encoding (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_encoding", err[AIR_STRLEN_MED];
char *info;
--- 63,67 ----
int
! _nrrdReadNrrdParse_encoding (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_encoding", err[AIR_STRLEN_MED];
char *info;
***************
*** 79,83 ****
int
! _nrrdReadNrrdParse_endian (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_endian", err[AIR_STRLEN_MED];
char *info;
--- 79,83 ----
int
! _nrrdReadNrrdParse_endian (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_endian", err[AIR_STRLEN_MED];
char *info;
***************
*** 98,102 ****
int
! _nrrdReadNrrdParse_dimension (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_dimension", err[AIR_STRLEN_MED];
char *info;
--- 98,102 ----
int
! _nrrdReadNrrdParse_dimension (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_dimension", err[AIR_STRLEN_MED];
char *info;
***************
*** 131,135 ****
int
! _nrrdReadNrrdParse_sizes (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_sizes", err[AIR_STRLEN_MED];
int ret, val[NRRD_DIM_MAX];
--- 131,135 ----
int
! _nrrdReadNrrdParse_sizes (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_sizes", err[AIR_STRLEN_MED];
int ret, val[NRRD_DIM_MAX];
***************
*** 149,153 ****
int
! _nrrdReadNrrdParse_spacings (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_spacings", err[AIR_STRLEN_MED];
int i, ret;
--- 149,153 ----
int
! _nrrdReadNrrdParse_spacings (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_spacings", err[AIR_STRLEN_MED];
int i, ret;
***************
*** 170,174 ****
int
! _nrrdReadNrrdParse_axis_mins (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_axis_mins", err[AIR_STRLEN_MED];
int ret, i, sgn;
--- 170,174 ----
int
! _nrrdReadNrrdParse_axis_mins (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_axis_mins", err[AIR_STRLEN_MED];
int ret, i, sgn;
***************
*** 191,195 ****
int
! _nrrdReadNrrdParse_axis_maxs (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_axis_maxs", err[AIR_STRLEN_MED];
int ret, i, sgn;
--- 191,195 ----
int
! _nrrdReadNrrdParse_axis_maxs (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_axis_maxs", err[AIR_STRLEN_MED];
int ret, i, sgn;
***************
*** 215,219 ****
*/
int
! _nrrdReadNrrdParse_centers (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_centers", err[AIR_STRLEN_MED];
int i;
--- 215,219 ----
*/
int
! _nrrdReadNrrdParse_centers (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_centers", err[AIR_STRLEN_MED];
int i;
***************
*** 305,309 ****
int
! _nrrdReadNrrdParse_labels (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_labels", err[AIR_STRLEN_MED];
char *h; /* this is the "here" pointer which gradually progresses
--- 305,309 ----
int
! _nrrdReadNrrdParse_labels (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_labels", err[AIR_STRLEN_MED];
char *h; /* this is the "here" pointer which gradually progresses
***************
*** 330,334 ****
int
! _nrrdReadNrrdParse_units (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_unitss", err[AIR_STRLEN_MED];
char *h;
--- 330,334 ----
int
! _nrrdReadNrrdParse_units (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_unitss", err[AIR_STRLEN_MED];
char *h;
***************
*** 354,358 ****
int
! _nrrdReadNrrdParse_number (Nrrd *nrrd, NrrdIO *io, int useBiff) {
/*
char me[]="_nrrdReadNrrdParse_number", err[AIR_STRLEN_MED];
--- 354,358 ----
int
! _nrrdReadNrrdParse_number (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
/*
char me[]="_nrrdReadNrrdParse_number", err[AIR_STRLEN_MED];
***************
*** 381,385 ****
int
! _nrrdReadNrrdParse_content (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_content", err[AIR_STRLEN_MED];
char *info;
--- 381,385 ----
int
! _nrrdReadNrrdParse_content (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_content", err[AIR_STRLEN_MED];
char *info;
***************
*** 394,398 ****
int
! _nrrdReadNrrdParse_block_size (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_block_size", err[AIR_STRLEN_MED];
char *info;
--- 394,398 ----
int
! _nrrdReadNrrdParse_block_size (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_block_size", err[AIR_STRLEN_MED];
char *info;
***************
*** 416,420 ****
int
! _nrrdReadNrrdParse_min (Nrrd *nrrd, NrrdIO *io, int useBiff) {
/* This field is no longer assumed to be anything meaningful,
--- 416,420 ----
int
! _nrrdReadNrrdParse_min (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
/* This field is no longer assumed to be anything meaningful,
***************
*** 427,431 ****
int
! _nrrdReadNrrdParse_max (Nrrd *nrrd, NrrdIO *io, int useBiff) {
/* nrrd->max no longer exists, see above */
--- 427,431 ----
int
! _nrrdReadNrrdParse_max (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
/* nrrd->max no longer exists, see above */
***************
*** 435,439 ****
int
! _nrrdReadNrrdParse_old_min (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_old_min", err[AIR_STRLEN_MED];
char *info;
--- 435,439 ----
int
! _nrrdReadNrrdParse_old_min (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_old_min", err[AIR_STRLEN_MED];
char *info;
***************
*** 450,454 ****
int
! _nrrdReadNrrdParse_old_max (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_old_max", err[AIR_STRLEN_MED];
char *info;
--- 450,454 ----
int
! _nrrdReadNrrdParse_old_max (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_old_max", err[AIR_STRLEN_MED];
char *info;
***************
*** 470,474 ****
** Note lack of thread-safety: strerror(errno) */
int
! _nrrdReadNrrdParse_data_file (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_data_file", err[AIR_STRLEN_MED],
dataName[AIR_STRLEN_HUGE];
--- 470,474 ----
** Note lack of thread-safety: strerror(errno) */
int
! _nrrdReadNrrdParse_data_file (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_data_file", err[AIR_STRLEN_MED],
dataName[AIR_STRLEN_HUGE];
***************
*** 499,503 ****
int
! _nrrdReadNrrdParse_line_skip (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_line_skip", err[AIR_STRLEN_MED];
char *info;
--- 499,503 ----
int
! _nrrdReadNrrdParse_line_skip (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_line_skip", err[AIR_STRLEN_MED];
char *info;
***************
*** 513,517 ****
int
! _nrrdReadNrrdParse_byte_skip (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_byte_skip", err[AIR_STRLEN_MED];
char *info;
--- 513,517 ----
int
! _nrrdReadNrrdParse_byte_skip (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_byte_skip", err[AIR_STRLEN_MED];
char *info;
***************
*** 527,531 ****
int
! _nrrdReadNrrdParse_keyvalue (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_keyvalue", err[AIR_STRLEN_MED];
char *keysep, *line, *key, *value;
--- 527,531 ----
int
! _nrrdReadNrrdParse_keyvalue (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParse_keyvalue", err[AIR_STRLEN_MED];
char *keysep, *line, *key, *value;
***************
*** 564,568 ****
*/
int
! (*_nrrdReadNrrdParseInfo[NRRD_FIELD_MAX+1])(Nrrd *, NrrdIO *, int) = {
_nrrdReadNrrdParse_nonfield,
_nrrdReadNrrdParse_comment,
--- 564,568 ----
*/
int
! (*_nrrdReadNrrdParseInfo[NRRD_FIELD_MAX+1])(Nrrd *, NrrdIoState *, int) = {
_nrrdReadNrrdParse_nonfield,
_nrrdReadNrrdParse_comment,
***************
*** 597,601 ****
*/
int
! _nrrdReadNrrdParseField (Nrrd *nrrd, NrrdIO *io, int useBiff) {
char me[]="_nrrdReadNrrdParseField", err[AIR_STRLEN_MED], *next,
*buff, *colon, *keysep;
--- 597,601 ----
*/
int
! _nrrdReadNrrdParseField (Nrrd *nrrd, NrrdIoState *io, int useBiff) {
char me[]="_nrrdReadNrrdParseField", err[AIR_STRLEN_MED], *next,
*buff, *colon, *keysep;
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.123
retrieving revision 1.124
diff -C2 -d -r1.123 -r1.124
*** nrrd.h 16 Nov 2003 16:25:19 -0000 1.123
--- nrrd.h 29 Nov 2003 08:16:07 -0000 1.124
***************
*** 261,265 ****
} NrrdIter;
! struct NrrdIO_t;
struct NrrdEncoding_t;
--- 261,265 ----
} NrrdIter;
! struct NrrdIoState_t;
struct NrrdEncoding_t;
***************
*** 291,299 ****
/* (for reading) returns non-zero if what has been read in so far
is recognized as the beginning of this format */
! int (*contentStartsLike)(struct NrrdIO_t *nio);
/* reader and writer */
! int (*read)(FILE *file, Nrrd *nrrd, struct NrrdIO_t *nio);
! int (*write)(FILE *file, const Nrrd *nrrd, struct NrrdIO_t *nio);
} NrrdFormat;
--- 291,299 ----
/* (for reading) returns non-zero if what has been read in so far
is recognized as the beginning of this format */
! int (*contentStartsLike)(struct NrrdIoState_t *nio);
/* reader and writer */
! int (*read)(FILE *file, Nrrd *nrrd, struct NrrdIoState_t *nio);
! int (*write)(FILE *file, const Nrrd *nrrd, struct NrrdIoState_t *nio);
} NrrdFormat;
***************
*** 312,321 ****
isCompression;
int (*available)(void);
! int (*read)(Nrrd *nrrd, struct NrrdIO_t *nio);
! int (*write)(const Nrrd *nrrd, struct NrrdIO_t *nio);
} NrrdEncoding;
/*
! ******** NrrdIO struct
**
** Everything transient relating to how the nrrd is read and written.
--- 312,321 ----
isCompression;
int (*available)(void);
! int (*read)(Nrrd *nrrd, struct NrrdIoState_t *nio);
! int (*write)(const Nrrd *nrrd, struct NrrdIoState_t *nio);
} NrrdEncoding;
/*
! ******** NrrdIoState struct
**
** Everything transient relating to how the nrrd is read and written.
***************
*** 325,329 ****
** keepNrrdDataFileOpen
*/
! typedef struct NrrdIO_t {
char *path, /* allows us to remember the directory
from whence this nrrd was "load"ed, or
--- 325,329 ----
** keepNrrdDataFileOpen
*/
! typedef struct NrrdIoState_t {
char *path, /* allows us to remember the directory
from whence this nrrd was "load"ed, or
***************
*** 410,414 ****
const NrrdFormat *format;
const NrrdEncoding *encoding;
! } NrrdIO;
/******** defaults (nrrdDef..) and state (nrrdState..) */
--- 410,414 ----
const NrrdFormat *format;
const NrrdEncoding *encoding;
! } NrrdIoState;
/******** defaults (nrrdDef..) and state (nrrdState..) */
***************
*** 475,481 ****
/******** pseudo-constructors, pseudo-destructors, and such */
/* methodsNrrd.c */
! extern NrrdIO *nrrdIONew(void);
! extern void nrrdIOInit(NrrdIO *io);
! extern NrrdIO *nrrdIONix(NrrdIO *io);
extern NrrdResampleInfo *nrrdResampleInfoNew(void);
extern NrrdResampleInfo *nrrdResampleInfoNix(NrrdResampleInfo *info);
--- 475,481 ----
/******** pseudo-constructors, pseudo-destructors, and such */
/* methodsNrrd.c */
! extern NrrdIoState *nrrdIoStateNew(void);
! extern void nrrdIoStateInit(NrrdIoState *io);
! extern NrrdIoState *nrrdIoStateNix(NrrdIoState *io);
extern NrrdResampleInfo *nrrdResampleInfoNew(void);
extern NrrdResampleInfo *nrrdResampleInfoNix(NrrdResampleInfo *info);
***************
*** 628,638 ****
const nrrdEncodingArray[NRRD_ENCODING_TYPE_MAX+1];
/* read.c */
! extern int nrrdLineSkip(NrrdIO *io);
! extern int nrrdByteSkip(Nrrd *nrrd, NrrdIO *io);
! extern int nrrdLoad(Nrrd *nrrd, const char *filename, NrrdIO *io);
! extern int nrrdRead(Nrrd *nrrd, FILE *file, NrrdIO *io);
/* write.c */
! extern int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIO *io);
! extern int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIO *io);
/******** expressing the range of values in a nrrd */
--- 628,638 ----
const nrrdEncodingArray[NRRD_ENCODING_TYPE_MAX+1];
/* read.c */
! extern int nrrdLineSkip(NrrdIoState *io);
! extern int nrrdByteSkip(Nrrd *nrrd, NrrdIoState *io);
! extern int nrrdLoad(Nrrd *nrrd, const char *filename, NrrdIoState *io);
! extern int nrrdRead(Nrrd *nrrd, FILE *file, NrrdIoState *io);
/* write.c */
! extern int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io);
! extern int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io);
/******** expressing the range of values in a nrrd */
Index: privateNrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/privateNrrd.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** privateNrrd.h 30 Sep 2003 09:54:53 -0000 1.27
--- privateNrrd.h 29 Nov 2003 08:16:07 -0000 1.28
***************
*** 87,91 ****
/* read.c */
! extern int _nrrdOneLine (int *lenP, NrrdIO *io, FILE *file);
extern int _nrrdCalloc (Nrrd *nrrd);
--- 87,91 ----
/* read.c */
! extern int _nrrdOneLine (int *lenP, NrrdIoState *io, FILE *file);
extern int _nrrdCalloc (Nrrd *nrrd);
***************
*** 125,138 ****
/* write.c */
! extern int _nrrdFieldInteresting (const Nrrd *nrrd, NrrdIO *nio, int field);
extern void _nrrdSprintFieldInfo(char **strP, char *prefix,
! const Nrrd *nrrd, NrrdIO *nio, int field);
extern void _nrrdFprintFieldInfo(FILE *file, char *prefix,
! const Nrrd *nrrd, NrrdIO *nio, int field);
extern int _nrrdReshapeDownGrayscale(Nrrd *nimg);
! /* parse.c */
! extern int (*_nrrdReadNrrdParseInfo[NRRD_FIELD_MAX+1])(Nrrd *, NrrdIO *, int);
! extern int _nrrdReadNrrdParseField(Nrrd *nrrd, NrrdIO *io, int useBiff);
/* methods.c */
--- 125,142 ----
/* write.c */
! extern int _nrrdFieldInteresting (const Nrrd *nrrd, NrrdIoState *nio,
! int field);
extern void _nrrdSprintFieldInfo(char **strP, char *prefix,
! const Nrrd *nrrd, NrrdIoState *nio,
! int field);
extern void _nrrdFprintFieldInfo(FILE *file, char *prefix,
! const Nrrd *nrrd, NrrdIoState *nio,
! int field);
extern int _nrrdReshapeDownGrayscale(Nrrd *nimg);
! /* parseNrrd.c */
! extern int (*_nrrdReadNrrdParseInfo[NRRD_FIELD_MAX+1])(Nrrd *, NrrdIoState *,
! int useBiff);
! extern int _nrrdReadNrrdParseField(Nrrd *nrrd, NrrdIoState *io, int useBiff);
/* methods.c */
Index: read.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/read.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -C2 -d -r1.82 -r1.83
*** read.c 14 Nov 2003 22:08:05 -0000 1.82
--- read.c 29 Nov 2003 08:16:07 -0000 1.83
***************
*** 36,40 ****
**
** wrapper around airOneLine; does re-allocation of line buffer
! ** ("line") in the NrrdIO if needed. The return value semantics
** are similar, except that what airOneLine would return, we put
** in *lenP. If there is an error (airOneLine returned -1,
--- 36,40 ----
**
** wrapper around airOneLine; does re-allocation of line buffer
! ** ("line") in the NrrdIoState if needed. The return value semantics
** are similar, except that what airOneLine would return, we put
** in *lenP. If there is an error (airOneLine returned -1,
***************
*** 46,50 ****
*/
int
! _nrrdOneLine (int *lenP, NrrdIO *nio, FILE *file) {
char me[]="_nrrdOneLine", err[AIR_STRLEN_MED], **line;
airArray *lineArr;
--- 46,50 ----
*/
int
! _nrrdOneLine (int *lenP, NrrdIoState *nio, FILE *file) {
char me[]="_nrrdOneLine", err[AIR_STRLEN_MED], **line;
airArray *lineArr;
***************
*** 145,149 ****
*/
int
! nrrdLineSkip (NrrdIO *nio) {
int i, skipRet;
char me[]="nrrdLineSkip", err[AIR_STRLEN_MED];
--- 145,149 ----
*/
int
! nrrdLineSkip (NrrdIoState *nio) {
int i, skipRet;
char me[]="nrrdLineSkip", err[AIR_STRLEN_MED];
***************
*** 168,172 ****
int
! nrrdByteSkip (Nrrd *nrrd, NrrdIO *nio) {
int i, skipRet;
char me[]="nrrdByteSkip", err[AIR_STRLEN_MED];
--- 168,172 ----
int
! nrrdByteSkip (Nrrd *nrrd, NrrdIoState *nio) {
int i, skipRet;
char me[]="nrrdByteSkip", err[AIR_STRLEN_MED];
***************
*** 223,227 ****
*/
int
! nrrdRead (Nrrd *nrrd, FILE *file, NrrdIO *nio) {
char err[AIR_STRLEN_MED], me[] = "nrrdRead";
int len, fi;
--- 223,227 ----
*/
int
! nrrdRead (Nrrd *nrrd, FILE *file, NrrdIoState *nio) {
char err[AIR_STRLEN_MED], me[] = "nrrdRead";
int len, fi;
***************
*** 234,243 ****
mop = airMopNew();
if (!nio) {
! nio = nrrdIONew();
if (!nio) {
sprintf(err, "%s: couldn't alloc I/O struct", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
}
--- 234,243 ----
mop = airMopNew();
if (!nio) {
! nio = nrrdIoStateNew();
if (!nio) {
sprintf(err, "%s: couldn't alloc I/O struct", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
}
***************
*** 342,346 ****
*/
int
! nrrdLoad (Nrrd *nrrd, const char *filename, NrrdIO *nio) {
char me[]="nrrdLoad", err[AIR_STRLEN_MED];
FILE *file;
--- 342,346 ----
*/
int
! nrrdLoad (Nrrd *nrrd, const char *filename, NrrdIoState *nio) {
char me[]="nrrdLoad", err[AIR_STRLEN_MED];
FILE *file;
***************
*** 354,363 ****
mop = airMopNew();
if (!nio) {
! nio = nrrdIONew();
if (!nio) {
sprintf(err, "%s: couldn't alloc I/O struct", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
}
--- 354,363 ----
mop = airMopNew();
if (!nio) {
! nio = nrrdIoStateNew();
if (!nio) {
sprintf(err, "%s: couldn't alloc I/O struct", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
}
Index: write.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/write.c,v
retrieving revision 1.85
retrieving revision 1.86
diff -C2 -d -r1.85 -r1.86
*** write.c 30 Sep 2003 09:28:15 -0000 1.85
--- write.c 29 Nov 2003 08:16:07 -0000 1.86
***************
*** 28,32 ****
int
! _nrrdFieldInteresting (const Nrrd *nrrd, NrrdIO *nio, int field) {
int d, ret;
--- 28,32 ----
int
! _nrrdFieldInteresting (const Nrrd *nrrd, NrrdIoState *nio, int field) {
int d, ret;
***************
*** 141,145 ****
void
_nrrdSprintFieldInfo (char **strP, char *prefix,
! const Nrrd *nrrd, NrrdIO *nio, int field) {
char me[]="_nrrdSprintFieldInfo", buff[AIR_STRLEN_MED];
const char *fs;
--- 141,145 ----
void
_nrrdSprintFieldInfo (char **strP, char *prefix,
! const Nrrd *nrrd, NrrdIoState *nio, int field) {
char me[]="_nrrdSprintFieldInfo", buff[AIR_STRLEN_MED];
const char *fs;
***************
*** 329,333 ****
void
_nrrdFprintFieldInfo (FILE *file, char *prefix,
! const Nrrd *nrrd, NrrdIO *nio, int field) {
char *line=NULL;
--- 329,333 ----
void
_nrrdFprintFieldInfo (FILE *file, char *prefix,
! const Nrrd *nrrd, NrrdIoState *nio, int field) {
char *line=NULL;
***************
*** 341,345 ****
int
! _nrrdEncodingMaybeSet(NrrdIO *nio) {
char me[]="_nrrdEncodingMaybeSet", err[AIR_STRLEN_MED];
--- 341,345 ----
int
! _nrrdEncodingMaybeSet(NrrdIoState *nio) {
char me[]="_nrrdEncodingMaybeSet", err[AIR_STRLEN_MED];
***************
*** 366,370 ****
*/
int
! _nrrdFormatMaybeGuess (const Nrrd *nrrd, NrrdIO *nio, const char *filename) {
char me[]="_nrrdFormatMaybeGuess", err[AIR_STRLEN_MED], mesg[AIR_STRLEN_MED];
int fi, guessed, available, fits;
--- 366,370 ----
*/
int
! _nrrdFormatMaybeGuess (const Nrrd *nrrd, NrrdIoState *nio, const char *filename) {
char me[]="_nrrdFormatMaybeGuess", err[AIR_STRLEN_MED], mesg[AIR_STRLEN_MED];
int fi, guessed, available, fits;
***************
*** 415,419 ****
int
! _nrrdFormatMaybeSet(NrrdIO *nio) {
char me[]="_nrrdFormatMaybeSet", err[AIR_STRLEN_MED];
--- 415,419 ----
int
! _nrrdFormatMaybeSet(NrrdIoState *nio) {
char me[]="_nrrdFormatMaybeSet", err[AIR_STRLEN_MED];
***************
*** 441,445 ****
*/
int
! nrrdWrite (FILE *file, const Nrrd *nrrd, NrrdIO *nio) {
char me[]="nrrdWrite", err[AIR_STRLEN_MED];
airArray *mop;
--- 441,445 ----
*/
int
! nrrdWrite (FILE *file, const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="nrrdWrite", err[AIR_STRLEN_MED];
airArray *mop;
***************
*** 455,464 ****
mop = airMopNew();
if (!nio) {
! nio = nrrdIONew();
if (!nio) {
! sprintf(err, "%s: couldn't alloc local NrrdIO", me);
biffAdd(NRRD, err); airMopError(mop); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
}
if (_nrrdEncodingMaybeSet(nio)) {
--- 455,464 ----
mop = airMopNew();
if (!nio) {
! nio = nrrdIoStateNew();
if (!nio) {
! sprintf(err, "%s: couldn't alloc local NrrdIoState", me);
biffAdd(NRRD, err); airMopError(mop); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
}
if (_nrrdEncodingMaybeSet(nio)) {
***************
*** 496,500 ****
*/
int
! nrrdSave (const char *filename, const Nrrd *nrrd, NrrdIO *nio) {
char me[]="nrrdSave", err[AIR_STRLEN_MED];
FILE *file;
--- 496,500 ----
*/
int
! nrrdSave (const char *filename, const Nrrd *nrrd, NrrdIoState *nio) {
char me[]="nrrdSave", err[AIR_STRLEN_MED];
FILE *file;
***************
*** 507,516 ****
mop = airMopNew();
if (!nio) {
! nio = nrrdIONew();
if (!nio) {
! sprintf(err, "%s: couldn't alloc local NrrdIO", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
}
if (_nrrdEncodingMaybeSet(nio)) {
--- 507,516 ----
mop = airMopNew();
if (!nio) {
! nio = nrrdIoStateNew();
if (!nio) {
! sprintf(err, "%s: couldn't alloc local NrrdIoState", me);
biffAdd(NRRD, err); return 1;
}
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
}
if (_nrrdEncodingMaybeSet(nio)) {
|
|
From: <kin...@us...> - 2003-11-29 08:16:11
|
Update of /cvsroot/teem/teem/src/nrrd/test
In directory sc8-pr-cvs1:/tmp/cvs-serv5594/nrrd/test
Modified Files:
io.c kv.c tline.c
Log Message:
API RENAME: NrrdIO --> NrrdIoState
Index: io.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/test/io.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** io.c 30 Sep 2003 08:25:47 -0000 1.8
--- io.c 29 Nov 2003 08:16:07 -0000 1.9
***************
*** 32,36 ****
char *me, *err;
Nrrd *nrrd;
! NrrdIO *io;
me = argv[0];
--- 32,36 ----
char *me, *err;
Nrrd *nrrd;
! NrrdIoState *io;
me = argv[0];
***************
*** 38,42 ****
usage(me);
! io = nrrdIONew();
nrrdStateVerboseIO = 10;
--- 38,42 ----
usage(me);
! io = nrrdIoStateNew();
nrrdStateVerboseIO = 10;
***************
*** 54,58 ****
exit(1);
}
! nrrdIOInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
--- 54,58 ----
exit(1);
}
! nrrdIoStateInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
***************
*** 61,65 ****
exit(1);
}
! nrrdIOInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
--- 61,65 ----
exit(1);
}
! nrrdIoStateInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
***************
*** 68,72 ****
exit(1);
}
! nrrdIOInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
--- 68,72 ----
exit(1);
}
! nrrdIoStateInit(io);
if (nrrdSave(argv[2], nrrd, io)) {
fprintf(stderr, "%s: trouble saving \"%s\":\n%s",
***************
*** 77,81 ****
! nrrdIONix(io);
nrrdNuke(nrrd);
--- 77,81 ----
! nrrdIoStateNix(io);
nrrdNuke(nrrd);
Index: kv.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/test/kv.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** kv.c 3 Nov 2003 03:28:29 -0000 1.3
--- kv.c 29 Nov 2003 08:16:07 -0000 1.4
***************
*** 32,36 ****
char *me, *err, *key="strong bad", *value;
Nrrd *nrrd;
! NrrdIO *io;
me = argv[0];
--- 32,36 ----
char *me, *err, *key="strong bad", *value;
Nrrd *nrrd;
! NrrdIoState *io;
me = argv[0];
***************
*** 38,42 ****
usage(me);
! io = nrrdIONew();
nrrdStateVerboseIO = 10;
--- 38,42 ----
usage(me);
! io = nrrdIoStateNew();
nrrdStateVerboseIO = 10;
***************
*** 55,59 ****
}
! nrrdIONix(io);
nrrdNuke(nrrd);
--- 55,59 ----
}
! nrrdIoStateNix(io);
nrrdNuke(nrrd);
Index: tline.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/test/tline.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tline.c 23 Jul 2003 01:20:29 -0000 1.2
--- tline.c 29 Nov 2003 08:16:07 -0000 1.3
***************
*** 20,24 ****
#include "../nrrd.h"
! extern int _nrrdOneLine(int *lenP, NrrdIO *io, FILE *file);
FILE *
--- 20,24 ----
#include "../nrrd.h"
! extern int _nrrdOneLine(int *lenP, NrrdIoState *io, FILE *file);
FILE *
***************
*** 47,51 ****
FILE *file;
int len;
! NrrdIO *io;
me = argv[0];
--- 47,51 ----
FILE *file;
int len;
! NrrdIoState *io;
me = argv[0];
***************
*** 60,64 ****
exit(1);
}
! io = nrrdIONew();
do {
if (_nrrdOneLine(&len, io, file)) {
--- 60,64 ----
exit(1);
}
! io = nrrdIoStateNew();
do {
if (_nrrdOneLine(&len, io, file)) {
***************
*** 70,74 ****
}
} while(len > 0);
! nrrdIONix(io);
myclose(file);
--- 70,74 ----
}
} while(len > 0);
! nrrdIoStateNix(io);
myclose(file);
|
|
From: <kin...@us...> - 2003-11-29 08:16:10
|
Update of /cvsroot/teem/teem/src/unrrdu
In directory sc8-pr-cvs1:/tmp/cvs-serv5594/unrrdu
Modified Files:
data.c head.c make.c minmax.c save.c
Log Message:
API RENAME: NrrdIO --> NrrdIoState
Index: data.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/data.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** data.c 24 Sep 2003 07:23:55 -0000 1.10
--- data.c 29 Nov 2003 08:16:06 -0000 1.11
***************
*** 22,26 ****
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIO *io, FILE *file);
#define INFO "Print data segment of a nrrd file"
--- 22,26 ----
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIoState *io, FILE *file);
#define INFO "Print data segment of a nrrd file"
***************
*** 43,47 ****
char *err, *inS=NULL;
Nrrd *nin;
! NrrdIO *nio;
airArray *mop;
int car, pret;
--- 43,47 ----
char *err, *inS=NULL;
Nrrd *nin;
! NrrdIoState *nio;
airArray *mop;
int car, pret;
***************
*** 56,61 ****
airMopAdd(mop, opt, (airMopper)hestParseFree, airMopAlways);
! nio = nrrdIONew();
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
nio->skipData = AIR_TRUE;
nio->keepNrrdDataFileOpen = AIR_TRUE;
--- 56,61 ----
airMopAdd(mop, opt, (airMopper)hestParseFree, airMopAlways);
! nio = nrrdIoStateNew();
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
nio->skipData = AIR_TRUE;
nio->keepNrrdDataFileOpen = AIR_TRUE;
Index: head.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/head.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** head.c 6 Oct 2003 12:25:18 -0000 1.18
--- head.c 29 Nov 2003 08:16:06 -0000 1.19
***************
*** 22,26 ****
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIO *io, FILE *file);
#define INFO "Print header of one or more nrrd files"
--- 22,26 ----
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIoState *io, FILE *file);
#define INFO "Print header of one or more nrrd files"
***************
*** 33,37 ****
int
! unrrdu_headDoit(char *me, NrrdIO *io, char *inS, FILE *fout) {
char err[AIR_STRLEN_MED];
airArray *mop;
--- 33,37 ----
int
! unrrdu_headDoit(char *me, NrrdIoState *io, char *inS, FILE *fout) {
char err[AIR_STRLEN_MED];
airArray *mop;
***************
*** 83,87 ****
hestOpt *opt = NULL;
char *err, **inS;
! NrrdIO *io;
airArray *mop;
int pret, ni, ninLen;
--- 83,87 ----
hestOpt *opt = NULL;
char *err, **inS;
! NrrdIoState *io;
airArray *mop;
int pret, ni, ninLen;
***************
*** 99,104 ****
airMopAdd(mop, opt, (airMopper)hestParseFree, airMopAlways);
! io = nrrdIONew();
! airMopAdd(mop, io, (airMopper)nrrdIONix, airMopAlways);
for (ni=0; ni<ninLen; ni++) {
--- 99,104 ----
airMopAdd(mop, opt, (airMopper)hestParseFree, airMopAlways);
! io = nrrdIoStateNew();
! airMopAdd(mop, io, (airMopper)nrrdIoStateNix, airMopAlways);
for (ni=0; ni<ninLen; ni++) {
Index: make.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/make.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** make.c 4 Oct 2003 10:45:00 -0000 1.46
--- make.c 29 Nov 2003 08:16:06 -0000 1.47
***************
*** 22,26 ****
/* bad Gordon */
! extern int _nrrdReadNrrdParse_keyvalue(Nrrd *nrrd, NrrdIO *io, int useBiff);
#define INFO "Create a nrrd (or nrrd header) from scratch"
--- 22,27 ----
/* bad Gordon */
! extern int _nrrdReadNrrdParse_keyvalue(Nrrd *nrrd, NrrdIoState *io,
! int useBiff);
#define INFO "Create a nrrd (or nrrd header) from scratch"
***************
*** 42,50 ****
int
! unrrduMakeRead(char *me, Nrrd *nrrd, NrrdIO *nio, const char *fname,
int lineSkip, int byteSkip, const NrrdEncoding *encoding) {
char err[AIR_STRLEN_MED];
! nrrdIOInit(nio);
nio->lineSkip = lineSkip;
nio->byteSkip = byteSkip;
--- 43,51 ----
int
! unrrduMakeRead(char *me, Nrrd *nrrd, NrrdIoState *nio, const char *fname,
int lineSkip, int byteSkip, const NrrdEncoding *encoding) {
char err[AIR_STRLEN_MED];
! nrrdIoStateInit(nio);
nio->lineSkip = lineSkip;
nio->byteSkip = byteSkip;
***************
*** 84,88 ****
double *spacing;
airArray *mop;
! NrrdIO *nio;
FILE *fileOut;
char **label;
--- 85,89 ----
double *spacing;
airArray *mop;
! NrrdIoState *nio;
FILE *fileOut;
char **label;
***************
*** 95,100 ****
mop = airMopNew();
! nio = nrrdIONew();
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
nrrd = nrrdNew();
airMopAdd(mop, nrrd, (airMopper)nrrdNuke, airMopAlways);
--- 96,101 ----
mop = airMopNew();
! nio = nrrdIoStateNew();
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
nrrd = nrrdNew();
airMopAdd(mop, nrrd, (airMopper)nrrdNuke, airMopAlways);
***************
*** 174,178 ****
encoding = nrrdEncodingArray[encodingType];
! /* given the information we have, we set the fields in the nrrdIO
so as to simulate having read the information from a header */
if (!( AIR_IN_CL(1, sizeLen, NRRD_DIM_MAX) )) {
--- 175,179 ----
encoding = nrrdEncodingArray[encodingType];
! /* given the information we have, we set the fields in the nrrdIoState
so as to simulate having read the information from a header */
if (!( AIR_IN_CL(1, sizeLen, NRRD_DIM_MAX) )) {
***************
*** 218,226 ****
if (kvpLen) {
for (ki=0; ki<kvpLen; ki++) {
! /* a hack: have to use NrrdIO->line as the channel to communicate
the key/value pair, since we have to emulate it having been
read from a NRRD header. But because nio doesn't own the
memory, we must be careful to unset the pointer prior to
! NrrdIONuke being called by the mop. */
nio->line = kvp[ki];
if (_nrrdReadNrrdParse_keyvalue (nrrd, nio, AIR_TRUE)) {
--- 219,227 ----
if (kvpLen) {
for (ki=0; ki<kvpLen; ki++) {
! /* a hack: have to use NrrdIoState->line as the channel to communicate
the key/value pair, since we have to emulate it having been
read from a NRRD header. But because nio doesn't own the
memory, we must be careful to unset the pointer prior to
! NrrdIoStateNix being called by the mop. */
nio->line = kvp[ki];
if (_nrrdReadNrrdParse_keyvalue (nrrd, nio, AIR_TRUE)) {
Index: minmax.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/minmax.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** minmax.c 3 Oct 2003 18:59:10 -0000 1.7
--- minmax.c 29 Nov 2003 08:16:06 -0000 1.8
***************
*** 22,26 ****
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIO *io, FILE *file);
#define INFO "Print out min and max values in one or more nrrds"
--- 22,26 ----
/* bad bad bad Gordon */
! extern int _nrrdOneLine(int *lenP, NrrdIoState *io, FILE *file);
#define INFO "Print out min and max values in one or more nrrds"
Index: save.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/save.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -C2 -d -r1.39 -r1.40
*** save.c 24 Sep 2003 06:07:01 -0000 1.39
--- save.c 29 Nov 2003 08:16:06 -0000 1.40
***************
*** 22,26 ****
/* bad bad bad Gordon */
! extern void _nrrdGuessFormat(NrrdIO *io, const char *filename);
#define INFO "Write nrrd with specific format, encoding, or endianness"
--- 22,26 ----
/* bad bad bad Gordon */
! extern void _nrrdGuessFormat(NrrdIoState *io, const char *filename);
#define INFO "Write nrrd with specific format, encoding, or endianness"
***************
*** 40,49 ****
Nrrd *nin, *nout;
airArray *mop;
! NrrdIO *nio;
int pret, enc[3], formatType;
mop = airMopNew();
! nio = nrrdIONew();
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
strcpy(fmtInfo,
--- 40,49 ----
Nrrd *nin, *nout;
airArray *mop;
! NrrdIoState *nio;
int pret, enc[3], formatType;
mop = airMopNew();
! nio = nrrdIoStateNew();
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
strcpy(fmtInfo,
|
|
From: <kin...@us...> - 2003-11-29 08:16:09
|
Update of /cvsroot/teem/teem/src/bane
In directory sc8-pr-cvs1:/tmp/cvs-serv5594/bane
Modified Files:
gkmsHvol.c gkmsPvg.c
Log Message:
API RENAME: NrrdIO --> NrrdIoState
Index: gkmsHvol.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bane/gkmsHvol.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** gkmsHvol.c 24 Sep 2003 06:06:55 -0000 1.8
--- gkmsHvol.c 29 Nov 2003 08:16:06 -0000 1.9
***************
*** 38,42 ****
double inc[3*(1+BANE_INC_PARM_NUM)];
baneHVolParm *hvp;
! NrrdIO *nio;
NrrdKernelSpec *ksp00, *ksp11, *ksp22;
--- 38,42 ----
double inc[3*(1+BANE_INC_PARM_NUM)];
baneHVolParm *hvp;
! NrrdIoState *nio;
NrrdKernelSpec *ksp00, *ksp11, *ksp22;
***************
*** 93,98 ****
nout = nrrdNew();
airMopAdd(mop, nout, (airMopper)nrrdNuke, airMopAlways);
! nio = nrrdIONew();
! airMopAdd(mop, nio, (airMopper)nrrdIONix, airMopAlways);
hvp = baneHVolParmNew();
airMopAdd(mop, hvp, (airMopper)baneHVolParmNix, airMopAlways);
--- 93,98 ----
nout = nrrdNew();
airMopAdd(mop, nout, (airMopper)nrrdNuke, airMopAlways);
! nio = nrrdIoStateNew();
! airMopAdd(mop, nio, (airMopper)nrrdIoStateNix, airMopAlways);
hvp = baneHVolParmNew();
airMopAdd(mop, hvp, (airMopper)baneHVolParmNix, airMopAlways);
Index: gkmsPvg.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bane/gkmsPvg.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** gkmsPvg.c 18 Sep 2003 08:52:40 -0000 1.7
--- gkmsPvg.c 29 Nov 2003 08:16:06 -0000 1.8
***************
*** 88,92 ****
char *outS, *perr, err[AIR_STRLEN_MED], *mapS;
Nrrd *ninfo, *nposA, *nposB, *ndon, *npvg;
! NrrdIO *nio;
airArray *mop;
int i, pret, invert, sv, sg, smlI;
--- 88,92 ----
char *outS, *perr, err[AIR_STRLEN_MED], *mapS;
Nrrd *ninfo, *nposA, *nposB, *ndon, *npvg;
! NrrdIoState *nio;
airArray *mop;
int i, pret, invert, sv, sg, smlI;
***************
*** 115,119 ****
airMopAdd(mop, nposB=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
airMopAdd(mop, npvg=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
! airMopAdd(mop, nio=nrrdIONew(), (airMopper)nrrdIONix, airMopAlways);
if (airStrlen(mapS)) {
--- 115,120 ----
airMopAdd(mop, nposB=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
airMopAdd(mop, npvg=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
! airMopAdd(mop, nio=nrrdIoStateNew(), (airMopper)nrrdIoStateNix,
! airMopAlways);
if (airStrlen(mapS)) {
|
|
From: <kin...@us...> - 2003-11-19 05:10:40
|
Update of /cvsroot/teem/teemdoc/html/bin In directory sc8-pr-cvs1:/tmp/cvs-serv23044 Modified Files: index.html Log Message: typo fix Index: index.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/bin/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.html 12 Sep 2003 14:35:21 -0000 1.4 --- index.html 19 Nov 2003 05:10:37 -0000 1.5 *************** *** 50,54 **** <h2>Command-line tools</h2> ! Anything useful in <b>teem</b> is implemented in one the libraries. However, writing C/C++ code to use these libraries is not always very convenient. Therefore, <b>teem</b> comes with some simple --- 50,54 ---- <h2>Command-line tools</h2> ! Anything useful in <b>teem</b> is implemented in one of the libraries. However, writing C/C++ code to use these libraries is not always very convenient. Therefore, <b>teem</b> comes with some simple |
|
From: <kin...@us...> - 2003-11-18 10:04:58
|
Update of /cvsroot/teem/teem/src/ten
In directory sc8-pr-cvs1:/tmp/cvs-serv6230/ten
Modified Files:
glyph.c ten.h tendGlyph.c
Log Message:
added ability to show slice of arbitrary data (not just anisotropy)
Index: glyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/glyph.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** glyph.c 17 Nov 2003 15:15:06 -0000 1.28
--- glyph.c 18 Nov 2003 10:04:54 -0000 1.29
***************
*** 52,56 ****
parm->sliceAnisoType = tenAnisoUnknown;
parm->sliceOffset = 0.0;
! parm->sliceAnisoGamma = 1.0;
}
return parm;
--- 52,56 ----
parm->sliceAnisoType = tenAnisoUnknown;
parm->sliceOffset = 0.0;
! parm->sliceGamma = 1.0;
}
return parm;
***************
*** 64,69 ****
int
! tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten, Nrrd *npos) {
char me[]="tenGlyphParmCheck", err[AIR_STRLEN_MED];
if (!(parm && nten)) {
--- 64,70 ----
int
! tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten, Nrrd *npos, Nrrd *nslc) {
char me[]="tenGlyphParmCheck", err[AIR_STRLEN_MED];
+ int duh, tenSize[3];
if (!(parm && nten)) {
***************
*** 127,134 ****
biffAdd(TEN, err); return 1;
}
! if (airEnumValCheck(tenAniso, parm->sliceAnisoType)) {
! sprintf(err, "%s: unset (or invalid) sliceAnisoType (%d)",
! me, parm->sliceAnisoType);
! biffAdd(TEN, err); return 1;
}
}
--- 128,155 ----
biffAdd(TEN, err); return 1;
}
! if (nslc) {
! if (2 != nslc->dim) {
! sprintf(err, "%s: explicit slice must be 2-D (not %d)", me, nslc->dim);
! biffAdd(TEN, err); return 1;
! }
! tenSize[0] = nten->axis[1].size;
! tenSize[1] = nten->axis[2].size;
! tenSize[2] = nten->axis[3].size;
! for (duh=parm->sliceAxis; duh<2; duh++) {
! tenSize[duh] = tenSize[duh+1];
! }
! if (!( tenSize[0] == nslc->axis[0].size
! && tenSize[1] == nslc->axis[1].size )) {
! sprintf(err, "%s: axis %d slice of %dx%dx%d volume is not %dx%d", me,
! parm->sliceAxis, nten->axis[1].size, nten->axis[2].size,
! nten->axis[3].size, nslc->axis[0].size, nslc->axis[1].size);
! biffAdd(TEN, err); return 1;
! }
! } else {
! if (airEnumValCheck(tenAniso, parm->sliceAnisoType)) {
! sprintf(err, "%s: unset (or invalid) sliceAnisoType (%d)",
! me, parm->sliceAnisoType);
! biffAdd(TEN, err); return 1;
! }
}
}
***************
*** 138,142 ****
int
tenGlyphGen(limnObj *glyphsLimn, echoScene *glyphsEcho,
! Nrrd *nten, Nrrd *npos, tenGlyphParm *parm) {
char me[]="tenGlyphGen", err[AIR_STRLEN_MED];
gageShape *shape;
--- 159,163 ----
int
tenGlyphGen(limnObj *glyphsLimn, echoScene *glyphsEcho,
! tenGlyphParm *parm, Nrrd *nten, Nrrd *npos, Nrrd *nslc) {
char me[]="tenGlyphGen", err[AIR_STRLEN_MED];
gageShape *shape;
***************
*** 145,150 ****
float cl, cp, *tdata, evec[9], eval[3], *cvec,
aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16],
! R, G, B, qA, qB, glyphAniso, sliceAniso;
! int idx, _idx=0, ri, axis, si=0, numGlyphs;
limnPart *lglyph;
limnSP *sp;
--- 166,171 ----
float cl, cp, *tdata, evec[9], eval[3], *cvec,
aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16],
! R, G, B, qA, qB, glyphAniso, sliceGray;
! int slcCoord[3], slcIdx, idx, _idx=0, ri, axis, spi=0, numGlyphs, duh;
limnPart *lglyph;
limnSP *sp;
***************
*** 187,191 ****
}
}
! if (tenGlyphParmCheck(parm, nten, npos)) {
sprintf(err, "%s: trouble", me);
biffAdd(TEN, err); airMopError(mop); return 1;
--- 208,212 ----
}
}
! if (tenGlyphParmCheck(parm, nten, npos, nslc)) {
sprintf(err, "%s: trouble", me);
biffAdd(TEN, err); airMopError(mop); return 1;
***************
*** 221,230 ****
if (glyphsLimn) {
/* create limnSPs for diffuse (#0) and flat (#1) shading */
! si = airArrayIncrLen(glyphsLimn->sA, 2);
! sp = glyphsLimn->s + si + 0;
ELL_4V_SET(sp->rgba, 1, 1, 1, 1);
ELL_3V_SET(sp->k, 0, 1, 0);
sp->spec = 0;
! sp = glyphsLimn->s + si + 1;
ELL_4V_SET(sp->rgba, 1, 1, 1, 1);
ELL_3V_SET(sp->k, 1, 0, 0);
--- 242,251 ----
if (glyphsLimn) {
/* create limnSPs for diffuse (#0) and flat (#1) shading */
! spi = airArrayIncrLen(glyphsLimn->sA, 2);
! sp = glyphsLimn->s + spi + 0;
ELL_4V_SET(sp->rgba, 1, 1, 1, 1);
ELL_3V_SET(sp->k, 0, 1, 0);
sp->spec = 0;
! sp = glyphsLimn->s + spi + 1;
ELL_4V_SET(sp->rgba, 1, 1, 1, 1);
ELL_3V_SET(sp->k, 1, 0, 0);
***************
*** 252,278 ****
}
}
- if (!( tdata[0] >= parm->confThresh ))
- continue;
tenEigensolve(eval, evec, tdata);
- if (parm->onlyPositive) {
- if (eval[2] < 0) {
- /* didn't have all positive eigenvalues, its outta here */
- continue;
- }
- }
tenAnisoCalc(aniso, eval);
if (parm->doSlice
&& pI[parm->sliceAxis] == parm->slicePos) {
! sliceAniso = aniso[parm->sliceAnisoType];
! /* HEY: look, a visualization parameter (0.03) that is not
! exposed anywhere in an API, just super ... */
! sliceAniso = AIR_AFFINE(0, sliceAniso, 1, 0.03, 1);
! if (parm->sliceAnisoGamma > 0) {
! sliceAniso = pow(sliceAniso, 1.0/parm->sliceAnisoGamma);
} else {
! sliceAniso = 1.0 - pow(sliceAniso, -1.0/parm->sliceAnisoGamma);
}
if (glyphsLimn) {
! ri = limnObjSquareAdd(glyphsLimn, si + 1);
ELL_4M_IDENTITY_SET(mA);
ell_4m_post_mul_f(mA, sRot);
--- 273,308 ----
}
}
tenEigensolve(eval, evec, tdata);
tenAnisoCalc(aniso, eval);
if (parm->doSlice
&& pI[parm->sliceAxis] == parm->slicePos) {
! /* set sliceGray */
! if (nslc) {
! /* we aren't masked by confidence, as anisotropy slice is */
! for (duh=0; duh<parm->sliceAxis; duh++) {
! slcCoord[duh] = pI[duh];
! }
! for (duh=duh<parm->sliceAxis; duh<2; duh++) {
! slcCoord[duh] = pI[duh+1];
! }
! ELL_3V_COPY(slcCoord, pI);
! slcIdx = slcCoord[0] + nslc->axis[0].size*slcCoord[1];
! sliceGray = nrrdFLookup[nslc->type](nslc->data, slcIdx);
} else {
! if (!( tdata[0] >= parm->confThresh ))
! continue;
! sliceGray = aniso[parm->sliceAnisoType];
! /* HEY: look, a visualization parameter (0.03) that is not
! exposed anywhere in an API, just super ... */
! sliceGray = AIR_AFFINE(0, sliceGray, 1, 0.03, 1);
! }
! if (parm->sliceGamma > 0) {
! sliceGray = pow(sliceGray, 1.0/parm->sliceGamma);
! } else {
! sliceGray = 1.0 - pow(sliceGray, -1.0/parm->sliceGamma);
}
+ /* make slice contribution */
if (glyphsLimn) {
! ri = limnObjSquareAdd(glyphsLimn, spi + 1);
ELL_4M_IDENTITY_SET(mA);
ell_4m_post_mul_f(mA, sRot);
***************
*** 292,296 ****
ell_4m_post_mul_f(mA, mB);
lglyph = glyphsLimn->r + ri;
! ELL_4V_SET(lglyph->rgba, sliceAniso, sliceAniso, sliceAniso, 1);
limnObjPartTransform(glyphsLimn, ri, mA);
}
--- 322,326 ----
ell_4m_post_mul_f(mA, mB);
lglyph = glyphsLimn->r + ri;
! ELL_4V_SET(lglyph->rgba, sliceGray, sliceGray, sliceGray, 1);
limnObjPartTransform(glyphsLimn, ri, mA);
}
***************
*** 300,308 ****
ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
! echoColorSet(esquare, sliceAniso, sliceAniso, sliceAniso, 1);
echoMatterPhongSet(glyphsEcho, esquare, 1, 0, 0, 40);
echoListAdd(list, esquare);
}
}
if (!( aniso[parm->anisoType] >= parm->anisoThresh ))
continue;
--- 330,346 ----
ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
! echoColorSet(esquare, sliceGray, sliceGray, sliceGray, 1);
echoMatterPhongSet(glyphsEcho, esquare, 1, 0, 0, 40);
echoListAdd(list, esquare);
}
}
+ if (parm->onlyPositive) {
+ if (eval[2] < 0) {
+ /* didn't have all positive eigenvalues, its outta here */
+ continue;
+ }
+ }
+ if (!( tdata[0] >= parm->confThresh ))
+ continue;
if (!( aniso[parm->anisoType] >= parm->anisoThresh ))
continue;
***************
*** 369,384 ****
switch(parm->glyphType) {
case tenGlyphTypeBox:
! ri = limnObjCubeAdd(glyphsLimn, si + 0);
break;
case tenGlyphTypeSphere:
! ri = limnObjPolarSphereAdd(glyphsLimn, si + 0, axis,
2*parm->facetRes, parm->facetRes);
break;
case tenGlyphTypeCylinder:
! ri = limnObjCylinderAdd(glyphsLimn, si + 0, axis, parm->facetRes);
break;
case tenGlyphTypeSuperquad:
default:
! ri = limnObjPolarSuperquadAdd(glyphsLimn, si + 0, axis, qA, qB,
2*parm->facetRes, parm->facetRes);
break;
--- 407,422 ----
switch(parm->glyphType) {
case tenGlyphTypeBox:
! ri = limnObjCubeAdd(glyphsLimn, spi + 0);
break;
case tenGlyphTypeSphere:
! ri = limnObjPolarSphereAdd(glyphsLimn, spi + 0, axis,
2*parm->facetRes, parm->facetRes);
break;
case tenGlyphTypeCylinder:
! ri = limnObjCylinderAdd(glyphsLimn, spi + 0, axis, parm->facetRes);
break;
case tenGlyphTypeSuperquad:
default:
! ri = limnObjPolarSuperquadAdd(glyphsLimn, spi + 0, axis, qA, qB,
2*parm->facetRes, parm->facetRes);
break;
Index: ten.h
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/ten.h,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** ten.h 17 Nov 2003 07:10:43 -0000 1.65
--- ten.h 18 Nov 2003 10:04:54 -0000 1.66
***************
*** 125,132 ****
with glyphs, these are thresholded by confThresh and maskThresh
(but not anisoThresh). Things can be lightened up with a
! sliceAnisoGamma > 1. The squares will be at their corresponding
sample locations, but offset by sliceOffset */
int doSlice, sliceAxis, slicePos, sliceAnisoType;
! float sliceOffset, sliceAnisoGamma;
} tenGlyphParm;
--- 125,132 ----
with glyphs, these are thresholded by confThresh and maskThresh
(but not anisoThresh). Things can be lightened up with a
! sliceGamma > 1. The squares will be at their corresponding
sample locations, but offset by sliceOffset */
int doSlice, sliceAxis, slicePos, sliceAnisoType;
! float sliceOffset, sliceGamma;
} tenGlyphParm;
***************
*** 351,357 ****
extern tenGlyphParm *tenGlyphParmNew();
extern tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm);
! extern int tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten, Nrrd *npos);
extern int tenGlyphGen(limnObj *glyphs, echoScene *scene,
! Nrrd *nten, Nrrd *npos, tenGlyphParm *parm);
/* tensor.c */
--- 351,359 ----
extern tenGlyphParm *tenGlyphParmNew();
extern tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm);
! extern int tenGlyphParmCheck(tenGlyphParm *parm,
! Nrrd *nten, Nrrd *npos, Nrrd *nslc);
extern int tenGlyphGen(limnObj *glyphs, echoScene *scene,
! tenGlyphParm *parm,
! Nrrd *nten, Nrrd *npos, Nrrd *nslc);
/* tensor.c */
Index: tendGlyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/tendGlyph.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** tendGlyph.c 17 Nov 2003 15:15:06 -0000 1.18
--- tendGlyph.c 18 Nov 2003 10:04:55 -0000 1.19
***************
*** 42,46 ****
airArray *mop;
! Nrrd *nten, *emap, *nraw, *npos;
char *outS;
limnCamera *cam;
--- 42,46 ----
airArray *mop;
! Nrrd *nten, *emap, *nraw, *npos, *nslc;
char *outS;
limnCamera *cam;
***************
*** 152,155 ****
--- 152,159 ----
"and position along which to slice. Use \"-1 -1\" to signify "
"that no slice should be shown");
+ hestOptAdd(&hopt, "si", "slice image", airTypeOther, 1, 1, &nslc, "",
+ "Instead of showing a slice of the anisotropy used to cull "
+ "glyphs, show something else. ", NULL, NULL,
+ nrrdHestNrrd);
hestOptAdd(&hopt, "off", "slice offset", airTypeFloat, 1, 1,
&(gparm->sliceOffset), "0.0",
***************
*** 157,162 ****
"doesn't occlude glyphs).");
hestOptAdd(&hopt, "sg", "slice gamma", airTypeFloat, 1, 1,
! &(gparm->sliceAnisoGamma), "1.7",
! "Gamma to apply to anisotropy values on slice.");
/* camera */
--- 161,166 ----
"doesn't occlude glyphs).");
hestOptAdd(&hopt, "sg", "slice gamma", airTypeFloat, 1, 1,
! &(gparm->sliceGamma), "1.7",
! "Gamma to apply to values on slice.");
/* camera */
***************
*** 224,228 ****
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! nten, npos, gparm)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
--- 228,233 ----
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! gparm,
! nten, npos, nslc)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
|
|
From: <kin...@us...> - 2003-11-17 15:15:47
|
Update of /cvsroot/teem/teem/src/ten
In directory sc8-pr-cvs1:/tmp/cvs-serv25865
Modified Files:
glyph.c tendGlyph.c
Log Message:
added capability to draw glyphs at arbitrary locations
Index: glyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/glyph.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** glyph.c 17 Nov 2003 07:10:43 -0000 1.27
--- glyph.c 17 Nov 2003 15:15:06 -0000 1.28
***************
*** 142,150 ****
gageShape *shape;
airArray *mop;
! double I[3], W[3];
float cl, cp, *tdata, evec[9], eval[3], *cvec,
aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16],
R, G, B, qA, qB, glyphAniso, sliceAniso;
! int idx, ri, axis, si=0, numGlyphs;
limnPart *lglyph;
limnSP *sp;
--- 142,150 ----
gageShape *shape;
airArray *mop;
! double pI[3], pW[3];
float cl, cp, *tdata, evec[9], eval[3], *cvec,
aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16],
R, G, B, qA, qB, glyphAniso, sliceAniso;
! int idx, _idx=0, ri, axis, si=0, numGlyphs;
limnPart *lglyph;
limnSP *sp;
***************
*** 169,173 ****
biffAdd(TEN, err); airMopError(mop); return 1;
}
! if (!( 2 == npos->dim && 3 == nten->axis[0].size
&& nten->axis[1].size == npos->axis[1].size )) {
sprintf(err, "%s: npos isn't 2-D 3-by-%d array", me, nten->axis[1].size);
--- 169,173 ----
biffAdd(TEN, err); airMopError(mop); return 1;
}
! if (!( 2 == npos->dim && 3 == npos->axis[0].size
&& nten->axis[1].size == npos->axis[1].size )) {
sprintf(err, "%s: npos isn't 2-D 3-by-%d array", me, nten->axis[1].size);
***************
*** 239,251 ****
numGlyphs = shape->size[0] * shape->size[1] * shape->size[2];
}
! for (idx=0; idx<numGlyphs; idx++) {
! fprintf(stderr, "!%s: idx = %d/%d\n", me, idx, numGlyphs);
tdata = (float*)(nten->data) + 7*idx;
if (npos) {
! ELL_3V_COPY(W, (float*)(npos->data) + 3*idx);
} else {
! NRRD_COORD_GEN(I, shape->size, 3, idx);
! fprintf(stderr, "!%s --> I = (%g,%g,%g)\n", me, I[0], I[1], I[2]);
! gageShapeUnitItoW(shape, W, I);
if (parm->nmask) {
if (!( nrrdFLookup[parm->nmask->type](parm->nmask->data, idx)
--- 239,249 ----
numGlyphs = shape->size[0] * shape->size[1] * shape->size[2];
}
! for (idx=0; idx<numGlyphs; idx++, _idx = idx) {
tdata = (float*)(nten->data) + 7*idx;
if (npos) {
! ELL_3V_COPY(pW, (float*)(npos->data) + 3*idx);
} else {
! NRRD_COORD_GEN(pI, shape->size, 3, _idx);
! gageShapeUnitItoW(shape, pW, pI);
if (parm->nmask) {
if (!( nrrdFLookup[parm->nmask->type](parm->nmask->data, idx)
***************
*** 265,269 ****
tenAnisoCalc(aniso, eval);
if (parm->doSlice
! && I[parm->sliceAxis] == parm->slicePos) {
sliceAniso = aniso[parm->sliceAnisoType];
/* HEY: look, a visualization parameter (0.03) that is not
--- 263,267 ----
tenAnisoCalc(aniso, eval);
if (parm->doSlice
! && pI[parm->sliceAxis] == parm->slicePos) {
sliceAniso = aniso[parm->sliceAnisoType];
/* HEY: look, a visualization parameter (0.03) that is not
***************
*** 279,288 ****
ELL_4M_IDENTITY_SET(mA);
ell_4m_post_mul_f(mA, sRot);
! ELL_4M_SCALE_SET(mB,
! shape->voxLen[0],
! shape->voxLen[1],
! shape->voxLen[2]);
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]);
ell_4m_post_mul_f(mA, mB);
ELL_4M_TRANSLATE_SET(mB,
--- 277,288 ----
ELL_4M_IDENTITY_SET(mA);
ell_4m_post_mul_f(mA, sRot);
! if (!npos) {
! ELL_4M_SCALE_SET(mB,
! shape->voxLen[0],
! shape->voxLen[1],
! shape->voxLen[2]);
! }
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, pW[0], pW[1], pW[2]);
ell_4m_post_mul_f(mA, mB);
ELL_4M_TRANSLATE_SET(mB,
***************
*** 297,301 ****
if (glyphsEcho) {
esquare = echoObjectNew(glyphsEcho,echoTypeRectangle);
! ELL_3V_ADD2(((echoRectangle*)esquare)->origin, W, originOffset);
ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
--- 297,301 ----
if (glyphsEcho) {
esquare = echoObjectNew(glyphsEcho,echoTypeRectangle);
! ELL_3V_ADD2(((echoRectangle*)esquare)->origin, pW, originOffset);
ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
***************
*** 325,329 ****
ELL_43M_INSET(mB, evec); /* rotate by evecs */
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]); /* translate */
ell_4m_post_mul_f(mA, mB);
--- 325,329 ----
ELL_43M_INSET(mB, evec); /* rotate by evecs */
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, pW[0], pW[1], pW[2]); /* translate */
ell_4m_post_mul_f(mA, mB);
Index: tendGlyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/tendGlyph.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** tendGlyph.c 17 Nov 2003 07:10:43 -0000 1.17
--- tendGlyph.c 17 Nov 2003 15:15:06 -0000 1.18
***************
*** 42,46 ****
airArray *mop;
! Nrrd *nten, *emap, *nraw;
char *outS;
limnCamera *cam;
--- 42,46 ----
airArray *mop;
! Nrrd *nten, *emap, *nraw, *npos;
char *outS;
limnCamera *cam;
***************
*** 90,93 ****
--- 90,98 ----
"Glyphs will be drawn only for tensors with anisotropy "
"greater than this threshold");
+ hestOptAdd(&hopt, "p", "pos array", airTypeOther, 1, 1, &npos, "",
+ "Instead of being on a grid, tensors are at arbitrary locations, "
+ "as defined by this 3-by-N array of floats. Doing this makes "
+ "various other options moot. ", NULL, NULL,
+ nrrdHestNrrd);
hestOptAdd(&hopt, "m", "mask vol", airTypeOther, 1, 1, &(gparm->nmask), "",
"Scalar volume (if any) for masking region in which glyphs are "
***************
*** 213,219 ****
}
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! nten, NULL, gparm)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
--- 218,228 ----
}
+ if (npos) {
+ fprintf(stderr, "%s: hack: turning off onlyPositive\n", me);
+ gparm->onlyPositive = AIR_FALSE;
+ }
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! nten, npos, gparm)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
|
|
From: <kin...@us...> - 2003-11-17 07:46:14
|
Update of /cvsroot/teem/teem/src/nrrd In directory sc8-pr-cvs1:/tmp/cvs-serv5422 Modified Files: nrrdMacros.h Log Message: added warning about macro side-effect. "This is awful!" Index: nrrdMacros.h =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/nrrdMacros.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** nrrdMacros.h 23 Jul 2003 01:20:29 -0000 1.21 --- nrrdMacros.h 17 Nov 2003 07:45:31 -0000 1.22 *************** *** 141,144 **** --- 141,148 ---- ** opposite of NRRD_INDEX_GEN: going from linear index "I" to ** coordinate array "coord". + ** + ** HUGE NOTE: the I argument will end up as ZERO when this is done! + ** If passing a loop control variable, pass a copy instead! + ** Hello, side-effects! This is awful! */ #define NRRD_COORD_GEN(coord, size, dim, I) \ |
|
From: <kin...@us...> - 2003-11-17 07:11:26
|
Update of /cvsroot/teem/teem/src/ten
In directory sc8-pr-cvs1:/tmp/cvs-serv681
Modified Files:
glyph.c ten.h tendGlyph.c
Log Message:
still debugging ... starting to generalize ten glyph to be able to put glyphs at arbitrary locations
Index: glyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/glyph.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** glyph.c 16 Oct 2003 09:42:47 -0000 1.26
--- glyph.c 17 Nov 2003 07:10:43 -0000 1.27
***************
*** 64,68 ****
int
! tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten) {
char me[]="tenGlyphParmCheck", err[AIR_STRLEN_MED];
--- 64,68 ----
int
! tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten, Nrrd *npos) {
char me[]="tenGlyphParmCheck", err[AIR_STRLEN_MED];
***************
*** 90,93 ****
--- 90,97 ----
}
if (parm->nmask) {
+ if (npos) {
+ sprintf(err, "%s: can't do masking with explicit coordinate list", me);
+ biffAdd(TEN, err); return 1;
+ }
if (!( 3 == parm->nmask->dim
&& parm->nmask->axis[0].size == nten->axis[1].size
***************
*** 109,112 ****
--- 113,120 ----
}
if (parm->doSlice) {
+ if (npos) {
+ sprintf(err, "%s: can't do slice with explicit coordinate list", me);
+ biffAdd(TEN, err); return 1;
+ }
if (!( AIR_IN_CL(0, parm->sliceAxis, 2) )) {
sprintf(err, "%s: slice axis %d invalid", me, parm->sliceAxis);
***************
*** 130,141 ****
int
tenGlyphGen(limnObj *glyphsLimn, echoScene *glyphsEcho,
! Nrrd *nten, tenGlyphParm *parm) {
char me[]="tenGlyphGen", err[AIR_STRLEN_MED];
gageShape *shape;
airArray *mop;
double I[3], W[3];
! float cl, cp, *tdata, evec[9], eval[3], *cvec, aniso[TEN_ANISO_MAX+1],
! sRot[16], mA[16], mB[16], R, G, B, qA, qB, glyphAniso, sliceAniso;
! int idx, ri, axis, si=0;
limnPart *lglyph;
limnSP *sp;
--- 138,150 ----
int
tenGlyphGen(limnObj *glyphsLimn, echoScene *glyphsEcho,
! Nrrd *nten, Nrrd *npos, tenGlyphParm *parm) {
char me[]="tenGlyphGen", err[AIR_STRLEN_MED];
gageShape *shape;
airArray *mop;
double I[3], W[3];
! float cl, cp, *tdata, evec[9], eval[3], *cvec,
! aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16],
! R, G, B, qA, qB, glyphAniso, sliceAniso;
! int idx, ri, axis, si=0, numGlyphs;
limnPart *lglyph;
limnSP *sp;
***************
*** 155,169 ****
shape->defaultCenter = nrrdCenterCell;
airMopAdd(mop, shape, (airMopper)gageShapeNix, airMopAlways);
! if (tenTensorCheck(nten, nrrdTypeFloat, AIR_TRUE, AIR_TRUE)) {
! sprintf(err, "%s: didn't get a valid DT volume", me);
! biffAdd(TEN, err); airMopError(mop); return 1;
}
! if (tenGlyphParmCheck(parm, nten)) {
sprintf(err, "%s: trouble", me);
biffAdd(TEN, err); airMopError(mop); return 1;
}
! if (gageShapeSet(shape, nten, tenGageKind->baseDim)) {
! sprintf(err, "%s: trouble", me);
! biffMove(TEN, err, GAGE); airMopError(mop); return 1;
}
if (parm->doSlice) {
--- 164,199 ----
shape->defaultCenter = nrrdCenterCell;
airMopAdd(mop, shape, (airMopper)gageShapeNix, airMopAlways);
! if (npos) {
! if (!( 2 == nten->dim && 7 == nten->axis[0].size )) {
! sprintf(err, "%s: nten isn't 2-D 7-by-N array", me);
! biffAdd(TEN, err); airMopError(mop); return 1;
! }
! if (!( 2 == npos->dim && 3 == nten->axis[0].size
! && nten->axis[1].size == npos->axis[1].size )) {
! sprintf(err, "%s: npos isn't 2-D 3-by-%d array", me, nten->axis[1].size);
! biffAdd(TEN, err); airMopError(mop); return 1;
! }
! if (!( nrrdTypeFloat == nten->type && nrrdTypeFloat == npos->type )) {
! sprintf(err, "%s: nten and npos must be %s, not %s and %s", me,
! airEnumStr(nrrdType, nrrdTypeFloat),
! airEnumStr(nrrdType, nten->type),
! airEnumStr(nrrdType, npos->type));
! biffAdd(TEN, err); airMopError(mop); return 1;
! }
! } else {
! if (tenTensorCheck(nten, nrrdTypeFloat, AIR_TRUE, AIR_TRUE)) {
! sprintf(err, "%s: didn't get a valid DT volume", me);
! biffAdd(TEN, err); airMopError(mop); return 1;
! }
}
! if (tenGlyphParmCheck(parm, nten, npos)) {
sprintf(err, "%s: trouble", me);
biffAdd(TEN, err); airMopError(mop); return 1;
}
! if (!npos) {
! if (gageShapeSet(shape, nten, tenGageKind->baseDim)) {
! sprintf(err, "%s: trouble", me);
! biffMove(TEN, err, GAGE); airMopError(mop); return 1;
! }
}
if (parm->doSlice) {
***************
*** 189,193 ****
originOffset[parm->sliceAxis] *= -2*parm->sliceOffset;
}
- idx = 0;
if (glyphsLimn) {
/* create limnSPs for diffuse (#0) and flat (#1) shading */
--- 219,222 ----
***************
*** 205,380 ****
list = echoObjectNew(glyphsEcho, echoTypeList);
}
! for (I[2]=0; I[2]<shape->size[2]; I[2]++) {
! for (I[1]=0; I[1]<shape->size[1]; I[1]++) {
! for (I[0]=0; I[0]<shape->size[0]; idx++, I[0]++) {
! tdata = (float*)(nten->data) + 7*idx;
! if (!( tdata[0] >= parm->confThresh ))
! continue;
! if (parm->nmask) {
! if (!( nrrdFLookup[parm->nmask->type](parm->nmask->data, idx)
! >= parm->maskThresh ))
! continue;
! }
! gageShapeUnitItoW(shape, W, I);
! tenEigensolve(eval, evec, tdata);
! if (parm->onlyPositive) {
! if (eval[2] < 0) {
! /* didn't have all positive eigenvalues, its outta here */
! continue;
! }
! }
! tenAnisoCalc(aniso, eval);
! if (parm->doSlice
! && I[parm->sliceAxis] == parm->slicePos) {
! sliceAniso = aniso[parm->sliceAnisoType];
! /* HEY: look, a visualization parameter (0.03) that is not
! exposed anywhere in an API, just super ... */
! sliceAniso = AIR_AFFINE(0, sliceAniso, 1, 0.03, 1);
! if (parm->sliceAnisoGamma > 0) {
! sliceAniso = pow(sliceAniso, 1.0/parm->sliceAnisoGamma);
! } else {
! sliceAniso = 1.0 - pow(sliceAniso, -1.0/parm->sliceAnisoGamma);
! }
! if (glyphsLimn) {
! ri = limnObjSquareAdd(glyphsLimn, si + 1);
! ELL_4M_IDENTITY_SET(mA);
! ell_4m_post_mul_f(mA, sRot);
! ELL_4M_SCALE_SET(mB,
! shape->voxLen[0],
! shape->voxLen[1],
! shape->voxLen[2]);
! ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]);
! ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB,
! originOffset[0],
! originOffset[1],
! originOffset[2]);
! ell_4m_post_mul_f(mA, mB);
! lglyph = glyphsLimn->r + ri;
! ELL_4V_SET(lglyph->rgba, sliceAniso, sliceAniso, sliceAniso, 1);
! limnObjPartTransform(glyphsLimn, ri, mA);
! }
! if (glyphsEcho) {
! esquare = echoObjectNew(glyphsEcho,echoTypeRectangle);
! ELL_3V_ADD2(((echoRectangle*)esquare)->origin, W, originOffset);
! ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
! ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
! echoColorSet(esquare, sliceAniso, sliceAniso, sliceAniso, 1);
! echoMatterPhongSet(glyphsEcho, esquare, 1, 0, 0, 40);
! echoListAdd(list, esquare);
! }
! }
! if (!( aniso[parm->anisoType] >= parm->anisoThresh ))
continue;
! glyphAniso = aniso[parm->colAnisoType];
! /*
! fprintf(stderr, "%s: eret = %d; evals = %g %g %g\n", me,
! eret, eval[0], eval[1], eval[2]);
! ELL_3V_CROSS(tmp1, evec+0, evec+3); tmp2[0] = ELL_3V_LEN(tmp1);
! ELL_3V_CROSS(tmp1, evec+0, evec+6); tmp2[1] = ELL_3V_LEN(tmp1);
! ELL_3V_CROSS(tmp1, evec+3, evec+6); tmp2[2] = ELL_3V_LEN(tmp1);
! fprintf(stderr, "%s: crosses = %g %g %g\n", me,
! tmp2[0], tmp2[1], tmp2[2]);
! */
!
! /* set transform (in mA) */
! ELL_4M_IDENTITY_SET(mA); /* reset */
! ELL_3V_SCALE(eval, parm->glyphScale, eval); /* scale by evals */
! ELL_4M_SCALE_SET(mB, eval[0], eval[1], eval[2]);
ell_4m_post_mul_f(mA, mB);
! ELL_43M_INSET(mB, evec); /* rotate by evecs */
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]); /* translate */
ell_4m_post_mul_f(mA, mB);
!
! /* set color (in R,G,B) */
! cvec = evec + 3*(AIR_CLAMP(0, parm->colEvec, 2));
! R = AIR_ABS(cvec[0]); /* standard mapping */
! G = AIR_ABS(cvec[1]);
! B = AIR_ABS(cvec[2]);
! /* desaturate by colMaxSat */
! R = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, R);
! G = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, G);
! B = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, B);
! /* desaturate some by anisotropy */
! R = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! R, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, R));
! G = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! G, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, G));
! B = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! B, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, B));
! /* clamp and do gamma */
! R = AIR_CLAMP(0.0, R, 1.0);
! G = AIR_CLAMP(0.0, G, 1.0);
! B = AIR_CLAMP(0.0, B, 1.0);
! R = pow(R, parm->colGamma);
! G = pow(G, parm->colGamma);
! B = pow(B, parm->colGamma);
!
! /* which is the axis of revolution */
! cl = AIR_MIN(0.99, aniso[tenAniso_Cl1]);
! cp = AIR_MIN(0.99, aniso[tenAniso_Cp1]);
! if (cl > cp) {
! axis = 0;
! qA = pow(1-cp, parm->sqdSharp);
! qB = pow(1-cl, parm->sqdSharp);
! } else {
! axis = 2;
! qA = pow(1-cl, parm->sqdSharp);
! qB = pow(1-cp, parm->sqdSharp);
! }
!
! /* add the glyph */
! if (glyphsLimn) {
! switch(parm->glyphType) {
! case tenGlyphTypeBox:
! ri = limnObjCubeAdd(glyphsLimn, si + 0);
! break;
! case tenGlyphTypeSphere:
! ri = limnObjPolarSphereAdd(glyphsLimn, si + 0, axis,
! 2*parm->facetRes, parm->facetRes);
! break;
! case tenGlyphTypeCylinder:
! ri = limnObjCylinderAdd(glyphsLimn, si + 0, axis, parm->facetRes);
! break;
! case tenGlyphTypeSuperquad:
! default:
! ri = limnObjPolarSuperquadAdd(glyphsLimn, si + 0, axis, qA, qB,
! 2*parm->facetRes, parm->facetRes);
! break;
! }
! lglyph = glyphsLimn->r + ri;
! ELL_4V_SET(lglyph->rgba, R, G, B, 1);
! limnObjPartTransform(glyphsLimn, ri, mA);
! }
! if (glyphsEcho) {
! switch(parm->glyphType) {
! case tenGlyphTypeBox:
! eglyph = echoObjectNew(glyphsEcho, echoTypeCube);
! /* nothing else to set */
! break;
! case tenGlyphTypeSphere:
! eglyph = echoObjectNew(glyphsEcho, echoTypeSphere);
! echoSphereSet(eglyph, 0, 0, 0, 1);
! break;
! case tenGlyphTypeCylinder:
! eglyph = echoObjectNew(glyphsEcho, echoTypeCylinder);
! echoCylinderSet(eglyph, axis);
! break;
! case tenGlyphTypeSuperquad:
! default:
! eglyph = echoObjectNew(glyphsEcho, echoTypeSuperquad);
! echoSuperquadSet(eglyph, axis, qA, qB);
! break;
! }
! echoColorSet(eglyph, R, G, B, 1);
! echoMatterPhongSet(glyphsEcho, eglyph, 0, 1, 0, 40);
! inst = echoObjectNew(glyphsEcho, echoTypeInstance);
! ELL_4M_COPY(eM, mA);
! echoInstanceSet(inst, eM, eglyph);
! echoListAdd(list, inst);
! }
}
}
}
--- 234,417 ----
list = echoObjectNew(glyphsEcho, echoTypeList);
}
! if (npos) {
! numGlyphs = nten->axis[1].size;
! } else {
! numGlyphs = shape->size[0] * shape->size[1] * shape->size[2];
! }
! for (idx=0; idx<numGlyphs; idx++) {
! fprintf(stderr, "!%s: idx = %d/%d\n", me, idx, numGlyphs);
! tdata = (float*)(nten->data) + 7*idx;
! if (npos) {
! ELL_3V_COPY(W, (float*)(npos->data) + 3*idx);
! } else {
! NRRD_COORD_GEN(I, shape->size, 3, idx);
! fprintf(stderr, "!%s --> I = (%g,%g,%g)\n", me, I[0], I[1], I[2]);
! gageShapeUnitItoW(shape, W, I);
! if (parm->nmask) {
! if (!( nrrdFLookup[parm->nmask->type](parm->nmask->data, idx)
! >= parm->maskThresh ))
continue;
! }
! }
! if (!( tdata[0] >= parm->confThresh ))
! continue;
! tenEigensolve(eval, evec, tdata);
! if (parm->onlyPositive) {
! if (eval[2] < 0) {
! /* didn't have all positive eigenvalues, its outta here */
! continue;
! }
! }
! tenAnisoCalc(aniso, eval);
! if (parm->doSlice
! && I[parm->sliceAxis] == parm->slicePos) {
! sliceAniso = aniso[parm->sliceAnisoType];
! /* HEY: look, a visualization parameter (0.03) that is not
! exposed anywhere in an API, just super ... */
! sliceAniso = AIR_AFFINE(0, sliceAniso, 1, 0.03, 1);
! if (parm->sliceAnisoGamma > 0) {
! sliceAniso = pow(sliceAniso, 1.0/parm->sliceAnisoGamma);
! } else {
! sliceAniso = 1.0 - pow(sliceAniso, -1.0/parm->sliceAnisoGamma);
! }
! if (glyphsLimn) {
! ri = limnObjSquareAdd(glyphsLimn, si + 1);
! ELL_4M_IDENTITY_SET(mA);
! ell_4m_post_mul_f(mA, sRot);
! ELL_4M_SCALE_SET(mB,
! shape->voxLen[0],
! shape->voxLen[1],
! shape->voxLen[2]);
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]);
ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB,
! originOffset[0],
! originOffset[1],
! originOffset[2]);
ell_4m_post_mul_f(mA, mB);
! lglyph = glyphsLimn->r + ri;
! ELL_4V_SET(lglyph->rgba, sliceAniso, sliceAniso, sliceAniso, 1);
! limnObjPartTransform(glyphsLimn, ri, mA);
! }
! if (glyphsEcho) {
! esquare = echoObjectNew(glyphsEcho,echoTypeRectangle);
! ELL_3V_ADD2(((echoRectangle*)esquare)->origin, W, originOffset);
! ELL_3V_COPY(((echoRectangle*)esquare)->edge0, edge0);
! ELL_3V_COPY(((echoRectangle*)esquare)->edge1, edge1);
! echoColorSet(esquare, sliceAniso, sliceAniso, sliceAniso, 1);
! echoMatterPhongSet(glyphsEcho, esquare, 1, 0, 0, 40);
! echoListAdd(list, esquare);
! }
! }
! if (!( aniso[parm->anisoType] >= parm->anisoThresh ))
! continue;
! glyphAniso = aniso[parm->colAnisoType];
! /*
! fprintf(stderr, "%s: eret = %d; evals = %g %g %g\n", me,
! eret, eval[0], eval[1], eval[2]);
! ELL_3V_CROSS(tmp1, evec+0, evec+3); tmp2[0] = ELL_3V_LEN(tmp1);
! ELL_3V_CROSS(tmp1, evec+0, evec+6); tmp2[1] = ELL_3V_LEN(tmp1);
! ELL_3V_CROSS(tmp1, evec+3, evec+6); tmp2[2] = ELL_3V_LEN(tmp1);
! fprintf(stderr, "%s: crosses = %g %g %g\n", me,
! tmp2[0], tmp2[1], tmp2[2]);
! */
!
! /* set transform (in mA) */
! ELL_4M_IDENTITY_SET(mA); /* reset */
! ELL_3V_SCALE(eval, parm->glyphScale, eval); /* scale by evals */
! ELL_4M_SCALE_SET(mB, eval[0], eval[1], eval[2]);
! ell_4m_post_mul_f(mA, mB);
! ELL_43M_INSET(mB, evec); /* rotate by evecs */
! ell_4m_post_mul_f(mA, mB);
! ELL_4M_TRANSLATE_SET(mB, W[0], W[1], W[2]); /* translate */
! ell_4m_post_mul_f(mA, mB);
!
! /* set color (in R,G,B) */
! cvec = evec + 3*(AIR_CLAMP(0, parm->colEvec, 2));
! R = AIR_ABS(cvec[0]); /* standard mapping */
! G = AIR_ABS(cvec[1]);
! B = AIR_ABS(cvec[2]);
! /* desaturate by colMaxSat */
! R = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, R);
! G = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, G);
! B = AIR_AFFINE(0.0, parm->colMaxSat, 1.0, parm->colIsoGray, B);
! /* desaturate some by anisotropy */
! R = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! R, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, R));
! G = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! G, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, G));
! B = AIR_AFFINE(0.0, parm->colAnisoModulate, 1.0,
! B, AIR_AFFINE(0.0, glyphAniso, 1.0, parm->colIsoGray, B));
! /* clamp and do gamma */
! R = AIR_CLAMP(0.0, R, 1.0);
! G = AIR_CLAMP(0.0, G, 1.0);
! B = AIR_CLAMP(0.0, B, 1.0);
! R = pow(R, parm->colGamma);
! G = pow(G, parm->colGamma);
! B = pow(B, parm->colGamma);
!
! /* which is the axis of revolution */
! cl = AIR_MIN(0.99, aniso[tenAniso_Cl1]);
! cp = AIR_MIN(0.99, aniso[tenAniso_Cp1]);
! if (cl > cp) {
! axis = 0;
! qA = pow(1-cp, parm->sqdSharp);
! qB = pow(1-cl, parm->sqdSharp);
! } else {
! axis = 2;
! qA = pow(1-cl, parm->sqdSharp);
! qB = pow(1-cp, parm->sqdSharp);
! }
!
! /* add the glyph */
! if (glyphsLimn) {
! switch(parm->glyphType) {
! case tenGlyphTypeBox:
! ri = limnObjCubeAdd(glyphsLimn, si + 0);
! break;
! case tenGlyphTypeSphere:
! ri = limnObjPolarSphereAdd(glyphsLimn, si + 0, axis,
! 2*parm->facetRes, parm->facetRes);
! break;
! case tenGlyphTypeCylinder:
! ri = limnObjCylinderAdd(glyphsLimn, si + 0, axis, parm->facetRes);
! break;
! case tenGlyphTypeSuperquad:
! default:
! ri = limnObjPolarSuperquadAdd(glyphsLimn, si + 0, axis, qA, qB,
! 2*parm->facetRes, parm->facetRes);
! break;
}
+ lglyph = glyphsLimn->r + ri;
+ ELL_4V_SET(lglyph->rgba, R, G, B, 1);
+ limnObjPartTransform(glyphsLimn, ri, mA);
+ }
+ if (glyphsEcho) {
+ switch(parm->glyphType) {
+ case tenGlyphTypeBox:
+ eglyph = echoObjectNew(glyphsEcho, echoTypeCube);
+ /* nothing else to set */
+ break;
+ case tenGlyphTypeSphere:
+ eglyph = echoObjectNew(glyphsEcho, echoTypeSphere);
+ echoSphereSet(eglyph, 0, 0, 0, 1);
+ break;
+ case tenGlyphTypeCylinder:
+ eglyph = echoObjectNew(glyphsEcho, echoTypeCylinder);
+ echoCylinderSet(eglyph, axis);
+ break;
+ case tenGlyphTypeSuperquad:
+ default:
+ eglyph = echoObjectNew(glyphsEcho, echoTypeSuperquad);
+ echoSuperquadSet(eglyph, axis, qA, qB);
+ break;
+ }
+ echoColorSet(eglyph, R, G, B, 1);
+ echoMatterPhongSet(glyphsEcho, eglyph, 0, 1, 0, 40);
+ inst = echoObjectNew(glyphsEcho, echoTypeInstance);
+ ELL_4M_COPY(eM, mA);
+ echoInstanceSet(inst, eM, eglyph);
+ echoListAdd(list, inst);
}
}
Index: ten.h
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/ten.h,v
retrieving revision 1.64
retrieving revision 1.65
diff -C2 -d -r1.64 -r1.65
*** ten.h 16 Oct 2003 20:37:38 -0000 1.64
--- ten.h 17 Nov 2003 07:10:43 -0000 1.65
***************
*** 351,357 ****
extern tenGlyphParm *tenGlyphParmNew();
extern tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm);
! extern int tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten);
extern int tenGlyphGen(limnObj *glyphs, echoScene *scene,
! Nrrd *nten, tenGlyphParm *parm);
/* tensor.c */
--- 351,357 ----
extern tenGlyphParm *tenGlyphParmNew();
extern tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm);
! extern int tenGlyphParmCheck(tenGlyphParm *parm, Nrrd *nten, Nrrd *npos);
extern int tenGlyphGen(limnObj *glyphs, echoScene *scene,
! Nrrd *nten, Nrrd *npos, tenGlyphParm *parm);
/* tensor.c */
Index: tendGlyph.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/tendGlyph.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** tendGlyph.c 16 Oct 2003 09:41:50 -0000 1.16
--- tendGlyph.c 17 Nov 2003 07:10:43 -0000 1.17
***************
*** 215,219 ****
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! nten, gparm)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
--- 215,219 ----
if (tenGlyphGen(doRT ? NULL : glyph,
doRT ? scene : NULL,
! nten, NULL, gparm)) {
airMopAdd(mop, err = biffGetDone(TEN), airFree, airMopAlways);
fprintf(stderr, "%s: trouble generating glyphs:\n%s\n", me, err);
|
|
From: <kin...@us...> - 2003-11-16 16:26:06
|
Update of /cvsroot/teem/teem/src
In directory sc8-pr-cvs1:/tmp/cvs-serv16086
Modified Files:
names.pl
Log Message:
API CHANGE: removed nrrdUnwrap: this was just a wrapper around nrrdNix, and nothing in teem uses it. Nice to have as a pair for nrrdWrap, but its still fat, so it goes
Index: names.pl
===================================================================
RCS file: /cvsroot/teem/teem/src/names.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** names.pl 13 Jan 2003 23:48:07 -0000 1.2
--- names.pl 16 Nov 2003 16:25:19 -0000 1.3
***************
*** 1,3 ****
- #!/usr/bin/perl -w
# GK uses this to make sure that there are no filename clashes between
--- 1,2 ----
***************
*** 9,17 ****
#
# cd src
! # ls -1 {air,hest,biff,ell,nrrd,unrrdu,dye,moss,gage,bane,limn,hoover,mite,ten,echo}/*.c | ./names.pl | sort | more
while (<>) {
chomp;
($dir, $name) = split '/', $_, 2;
! print "$name $dir\n";
}
--- 8,17 ----
#
# cd src
! # ls -1 {air,hest,biff,ell,nrrd,unrrdu,dye,moss,gage,bane,limn,hoover,mite,alan,ten,echo}/*.c | perl names.pl | sort | wc -l
! # ls -1 {air,hest,biff,ell,nrrd,unrrdu,dye,moss,gage,bane,limn,hoover,mite,alan,ten,echo}/*.c | perl names.pl | sort | uniq | wc -l
while (<>) {
chomp;
($dir, $name) = split '/', $_, 2;
! print "$name\n";
}
|
|
From: <kin...@us...> - 2003-11-16 16:26:06
|
Update of /cvsroot/teem/teem/src/limn
In directory sc8-pr-cvs1:/tmp/cvs-serv16086/limn
Modified Files:
limn.h
Log Message:
API CHANGE: removed nrrdUnwrap: this was just a wrapper around nrrdNix, and nothing in teem uses it. Nice to have as a pair for nrrdWrap, but its still fat, so it goes
Index: limn.h
===================================================================
RCS file: /cvsroot/teem/teem/src/limn/limn.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -C2 -d -r1.41 -r1.42
*** limn.h 2 Oct 2003 03:35:24 -0000 1.41
--- limn.h 16 Nov 2003 16:25:19 -0000 1.42
***************
*** 299,302 ****
--- 299,313 ----
#define LIMN_SPLINE_INFO_MAX 6
+ enum {
+ limnCameraPathTrackUnknown, /* 0 */
+ limnCameraPathTrackFrom, /* 1: 3-D spline for *from* points, quaternion
+ spline for camera directions towards at */
+ limnCameraPathTrackAt, /* 2: 3-D spline for *at* points, quaternion
+ spline for directions back to camera */
+ limnCameraPathTrackBoth, /* 3: 2 3-D splines: one for from, one for at */
+ limnCameraPathTrackLast
+ };
+ #define LIMN_CAMERA_PATH_TRACK_MAX 3
+
/*
******** limnSpline
|
|
From: <kin...@us...> - 2003-11-16 16:26:06
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv16086/nrrd
Modified Files:
methodsNrrd.c nrrd.h
Log Message:
API CHANGE: removed nrrdUnwrap: this was just a wrapper around nrrdNix, and nothing in teem uses it. Nice to have as a pair for nrrdWrap, but its still fat, so it goes
Index: methodsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/methodsNrrd.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** methodsNrrd.c 16 Nov 2003 06:03:47 -0000 1.32
--- methodsNrrd.c 16 Nov 2003 16:25:19 -0000 1.33
***************
*** 415,430 ****
}
-
- /*
- ******** nrrdUnwrap()
- **
- ** a wrapper around nrrdNix()
- */
- Nrrd *
- nrrdUnwrap (Nrrd *nrrd) {
-
- return nrrdNix(nrrd);
- }
-
/*
void
--- 415,418 ----
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.122
retrieving revision 1.123
diff -C2 -d -r1.122 -r1.123
*** nrrd.h 16 Nov 2003 06:04:35 -0000 1.122
--- nrrd.h 16 Nov 2003 16:25:19 -0000 1.123
***************
*** 496,500 ****
extern int nrrdWrap(Nrrd *nrrd, void *data, int type, int dim,
... /* sx, sy, .., axis(dim-1) size */);
- extern Nrrd *nrrdUnwrap(Nrrd *nrrd);
extern int nrrdCopy(Nrrd *nout, const Nrrd *nin);
extern int nrrdAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size);
--- 496,499 ----
|
|
From: <kin...@us...> - 2003-11-16 06:05:18
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv19779
Modified Files:
comment.c nrrd.h
Log Message:
API CHANGE: removed nrrdCommentScan, since key/value pairs have superseded this functionality
Index: comment.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/comment.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** comment.c 14 Nov 2003 17:52:29 -0000 1.15
--- comment.c 16 Nov 2003 06:04:35 -0000 1.16
***************
*** 82,156 ****
/*
- ******** nrrdCommentScan()
- **
- ** looks through comments of nrrd for something of the form
- ** " <key> : <val>"
- ** There can be whitespace anywhere it appears in the format above.
- ** The division between key and val is the first colon which appears.
- ** A colon may not appear in the key. Returns a pointer to the beginning
- ** of "val", as it occurs in the string pointed to by the nrrd struct:
- ** No new memory is allocated.
- **
- ** If there is an error (including the key is not found), returns NULL,
- ** but DOES NOT USE BIFF for errors (since such "errors" are more often
- ** than not actually problems).
- */
- char *
- nrrdCommentScan(Nrrd *nrrd, const char *key) {
- /* char me[]="nrrdCommentScan"; */
- int i;
- char *cmt, *k, *c, *t, *ret=NULL;
-
- if (!(nrrd && airStrlen(key)))
- return NULL;
-
- if (!nrrd->cmt) {
- /* no comments to scan */
- return NULL;
- }
- if (strchr(key, ':')) {
- /* key contains colon- would confuse later steps */
- return NULL;
- }
- for (i=0; i<nrrd->cmtArr->len; i++) {
- cmt = nrrd->cmt[i];
- /* printf("%s: looking at comment \"%s\"\n", me, cmt); */
- if ((k = strstr(cmt, key)) && (c = strchr(cmt, ':'))) {
- /* is key before colon? */
- if (!( k+strlen(key) <= c ))
- goto nope;
- /* is there only whitespace before the key? */
- t = cmt;
- while (t < k) {
- if (!isspace(*t))
- goto nope;
- t++;
- }
- /* is there only whitespace after the key? */
- t = k+strlen(key);
- while (t < c) {
- if (!isspace(*t))
- goto nope;
- t++;
- }
- /* is there something after the colon? */
- t = c+1;
- while (isspace(*t)) {
- t++;
- }
- if (!*t)
- goto nope;
- /* t now points to beginning of "value" string; we're done */
- ret = t;
- /* printf("%s: found \"%s\"\n", me, t); */
- break;
- }
- nope:
- ret = NULL;
- }
- return ret;
- }
-
- /*
******** nrrdCommentCopy()
**
--- 82,85 ----
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.121
retrieving revision 1.122
diff -C2 -d -r1.121 -r1.122
*** nrrd.h 14 Nov 2003 17:54:05 -0000 1.121
--- nrrd.h 16 Nov 2003 06:04:35 -0000 1.122
***************
*** 559,563 ****
extern void nrrdCommentClear(Nrrd *nrrd);
extern int nrrdCommentCopy(Nrrd *nout, const Nrrd *nin);
- extern char *nrrdCommentScan(Nrrd *nrrd, const char *key);
/******** key/value pairs */
--- 559,562 ----
|
|
From: <kin...@us...> - 2003-11-16 06:04:30
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv19665
Modified Files:
methodsNrrd.c
Log Message:
removed index variable needed for previous version (did manual key/value copying)
Index: methodsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/methodsNrrd.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** methodsNrrd.c 14 Nov 2003 21:10:53 -0000 1.31
--- methodsNrrd.c 16 Nov 2003 06:03:47 -0000 1.32
***************
*** 456,460 ****
char me[]="nrrdCopy", err[AIR_STRLEN_MED];
int size[NRRD_DIM_MAX];
- int i;
if (!(nin && nout)) {
--- 456,459 ----
|
|
From: <kin...@us...> - 2003-11-15 22:31:24
|
Update of /cvsroot/teem/teemdoc/html/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv21138/nrrd
Modified Files:
descformat.html
Log Message:
emphasized use of key/value pairs
Index: descformat.html
===================================================================
RCS file: /cvsroot/teem/teemdoc/html/nrrd/descformat.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** descformat.html 4 Oct 2003 04:56:00 -0000 1.5
--- descformat.html 15 Nov 2003 22:31:20 -0000 1.6
***************
*** 187,193 ****
<ul>
<li> Having a detached header file give a list of image (slice) filenames,
while describing those images as a volume, is quite powerful, and
! MetaIO has two different ways of doing this.
<li> The <tt>ElementNumberOfChannels</tt> field allows a nominally
3-D data header to describe what is logically a 4-D array. NRRD
--- 187,196 ----
<ul>
+
<li> Having a detached header file give a list of image (slice) filenames,
while describing those images as a volume, is quite powerful, and
! MetaIO has two different ways of doing this. This feature is on the
! "to-do" list for NRRD.
!
<li> The <tt>ElementNumberOfChannels</tt> field allows a nominally
3-D data header to describe what is logically a 4-D array. NRRD
***************
*** 195,202 ****
three-dimensional nrrd), a consequence of its "everything is a scalar"
mentality.
<li> The distinction between element size and element spacing is
fundamental to properly representing MRI data when the slice thickness
is different (usually less than) the spacing between slices. NRRD
! doesn't know anything about this difference, and perhaps it should.
</ul>
--- 198,208 ----
three-dimensional nrrd), a consequence of its "everything is a scalar"
mentality.
+
<li> The distinction between element size and element spacing is
fundamental to properly representing MRI data when the slice thickness
is different (usually less than) the spacing between slices. NRRD
! doesn't know anything about this difference, but you can still store
! this information in a key/value pair.
!
</ul>
***************
*** 205,216 ****
In favor of NRRD:
<ul>
! <li> Has a simple "magic" on a line by itself at the beginning of the file,
! to unambiguously identify the type of the file to multi-format readers.
! <li> Having more than just raw and ascii encoding: gzip and bzip2 compression,
! as well as hex.
<li> A more conservative approach to representing optional information.
If you don't know information like sample spacing, you don't include
that field. The NRRD reader remembers that you didn't know spacing,
instead of inventing some default value.
</ul>
--- 211,234 ----
In favor of NRRD:
<ul>
!
! <li> The NRRD format has a simple "magic" on a line by itself at the
! beginning of the file, to unambiguously identify the type of the file
! to multi-format readers. File formats without magic lead to headaches.
!
! <li> NRRD has more than just raw and ascii encoding: gzip and bzip2
! compression, as well as hex. Being able to directly inspect data that
! someone has run "gzip" on is extremely conveniant.
!
<li> A more conservative approach to representing optional information.
If you don't know information like sample spacing, you don't include
that field. The NRRD reader remembers that you didn't know spacing,
instead of inventing some default value.
+
+ <li> Has a powerful associated program, <a
+ href="../unrrdu/index.html"><tt>unu</tt></a> for doing image
+ manipulation and procesing quickly and easily on the command-line.
+ The underlying <b>nrrd</b> <a href="lib.html">library</a> provides an
+ easy-to-use C API to the same functionality.
+
</ul>
***************
*** 276,280 ****
<p>
! Some MetaImage fields that NRRD has no good analog for:
<ul>
<li> <tt>ObjectType</tt>, <tt>ObjectSubType</tt>, <tt>TransformType</tt>,
--- 294,301 ----
<p>
! There are various MetaImage fields that NRRD has no immediate analog for,
! because NRRD aims to be more minimalist in its representational abilibites.
! This sort of information would be stored as key/value pairs in NRRD:
!
<ul>
<li> <tt>ObjectType</tt>, <tt>ObjectSubType</tt>, <tt>TransformType</tt>,
***************
*** 291,303 ****
Some NRRD fields that MetaImage doesn't seem to have analogs for:
<ul>
! <li> <tt>centers</tt>: cell-vs-node centering
! <li> <tt>axis maxs</tt>: good with histograms, scatterplots, fields of view
! <li> <tt>old min</tt>, <tt>old max</tt>:
! remembering value range pre-quantization
! <li> <tt>line skip</tt>: very handy for snarfing data from other formats,
! such as VTK, VisPack, and PostScript
<li> <tt>labels</tt>: arbitrary string per axis
<li> <tt>units</tt>: arbitrary string per axis giving units that spacing
is measured in.
</ul>
--- 312,335 ----
Some NRRD fields that MetaImage doesn't seem to have analogs for:
<ul>
!
! <li> <tt>centers</tt>: cell-vs-node centering. This is fundamental to
! properly representing the difference between histograms and other types
! of sampled signals.
!
! <li> <tt>axis maxs</tt>: Necessary for unambiguously storing
! histograms, scatterplots, and images with a specific field of view.
!
! <li> <tt>old min</tt>, <tt>old max</tt>: Very handy for remembering
! a value range pre-quantization.
!
! <li> <tt>line skip</tt>: When snarfing data from other formats (VTK,
! VFF, VisPack, and even PostScript), specifying the skip in terms of lines
! (rather than bytes) is much simpler.
!
<li> <tt>labels</tt>: arbitrary string per axis
+
<li> <tt>units</tt>: arbitrary string per axis giving units that spacing
is measured in.
+
</ul>
***************
*** 319,323 ****
tables which are good transfer functions for a given volume. I am
leaning towards implementing this multi-NRRD association with XML on
! top of regular NRRD0001 files. If you need this, though, you should
probably be using <a href="http://hdf.ncsa.uiuc.edu/">HDF
(<tt>http://hdf.ncsa.uiuc.edu/</tt>)</a>
--- 351,355 ----
tables which are good transfer functions for a given volume. I am
leaning towards implementing this multi-NRRD association with XML on
! top of regular NRRD files. If you need this, though, you should
probably be using <a href="http://hdf.ncsa.uiuc.edu/">HDF
(<tt>http://hdf.ncsa.uiuc.edu/</tt>)</a>
|
|
From: <kin...@us...> - 2003-11-14 22:08:14
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv27719
Modified Files:
encodingRaw.c read.c
Log Message:
more verbose feedback for reading raw data: using byteskip == -1 now reports how many bytes actually were skipped, and whenever any byteskip is used, a percentage of file usage is given
Index: encodingRaw.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/encodingRaw.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** encodingRaw.c 13 Oct 2003 15:05:54 -0000 1.2
--- encodingRaw.c 14 Nov 2003 22:08:05 -0000 1.3
***************
*** 32,35 ****
--- 32,36 ----
size_t num, bsize, size, ret, dio;
int car;
+ long savePos;
if (nio->skipData) {
***************
*** 96,99 ****
--- 97,108 ----
"but file not at EOF\n", me);
ungetc(car, nio->dataFile);
+ }
+ if (nrrdStateVerboseIO && nio->byteSkip && stdin != nio->dataFile) {
+ savePos = ftell(nio->dataFile);
+ if (!fseek(nio->dataFile, 0, SEEK_END)) {
+ fprintf(stderr, "(%s: used %g%% of file for nrrd data)\n",
+ me, (double)100*bsize/(ftell(nio->dataFile) + 1));
+ fseek(nio->dataFile, savePos, SEEK_SET);
+ }
}
Index: read.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/read.c,v
retrieving revision 1.81
retrieving revision 1.82
diff -C2 -d -r1.81 -r1.82
*** read.c 24 Sep 2003 07:23:48 -0000 1.81
--- read.c 14 Nov 2003 22:08:05 -0000 1.82
***************
*** 193,196 ****
--- 193,200 ----
biffAdd(NRRD, err); return 1;
}
+ if (nrrdStateVerboseIO) {
+ fprintf(stderr, "(%s: actually skipped %d bytes)\n",
+ me, (int)ftell(nio->dataFile));
+ }
} else {
for (i=1; i<=nio->byteSkip; i++) {
|
|
From: <kin...@us...> - 2003-11-14 21:10:58
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv15051
Modified Files:
keyvalue.c methodsNrrd.c
Log Message:
Nrrd (and the rest of teem) is supposed to obey a rule of thumb
with respect to strings (char*) and and their allocation:
Strings are always re-allocated, and can be free()ed without worry
char* pointers given to nrrdKeyValueAdd are airStrdup()d to make the
strings that are stored internally. But before now, nrrdKeyValueGet
and nrrdKeyValueIndex would return pointers to memory INSIDE the
nrrd, leading to problems if they were freed. Bad! Now, these
functions return NEWLY allocated copies of the strings, so that the
caller can (and should) free them.
However, power users may want to avoid this, so they can set
nrrdStateKeyValueReturnInternalPointers, which means that (as before)
internal pointers are returned.
Also, nrrdKeyValueCopy() was created, and now nrrdCopy() calls that
instead of copying key/value pairs by hand.
Index: keyvalue.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/keyvalue.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** keyvalue.c 2 Oct 2003 12:07:10 -0000 1.4
--- keyvalue.c 14 Nov 2003 21:10:53 -0000 1.5
***************
*** 21,24 ****
--- 21,30 ----
#include "privateNrrd.h"
+ /***
+ **** NONE of the nrrdKeyValue functions use biff.
+ **** They don't use them now, and they never should.
+ **** Unless I change my mind.
+ ***/
+
/*
******** nrrdKeyValueSize
***************
*** 41,46 ****
** to put to the corresponding key and value.
**
! ** NOTE: like nrrdKeyValueGet, these results point to strings
! ** INTERNAL to the nrrd struct. DO NOT FREE THEM.
*/
void
--- 47,54 ----
** to put to the corresponding key and value.
**
! ** NOTE: whether or not *keyP and *valueP are set to pointers to memory
! ** "inside" the nrrd struct (pointers which you had better not free()!)
! ** is controlled by nrrdStateKeyValueReturnInternalPointers, which defaults
! ** to AIR_FALSE
*/
void
***************
*** 53,58 ****
return;
}
! *keyP = nrrd->kvp[0 + 2*ki];
! *valueP = nrrd->kvp[1 + 2*ki];
return;
}
--- 61,71 ----
return;
}
! if (nrrdStateKeyValueReturnInternalPointers) {
! *keyP = nrrd->kvp[0 + 2*ki];
! *valueP = nrrd->kvp[1 + 2*ki];
! } else {
! *keyP = airStrdup(nrrd->kvp[0 + 2*ki]);
! *valueP = airStrdup(nrrd->kvp[1 + 2*ki]);
! }
return;
}
***************
*** 145,151 ****
******** nrrdKeyValueGet
**
! ** This will return a pointer to a string INSIDE the given
! ** nrrd struct; DO NOT FREE IT. This is for the sake of
! ** convenience, not perfect safety (obviously)
*/
char *
--- 158,165 ----
******** nrrdKeyValueGet
**
! ** NOTE: whether or not *keyP and *valueP are set to pointers to memory
! ** "inside" the nrrd struct (pointers which you had better not free()!)
! ** is controlled by nrrdStateKeyValueReturnInternalPointers, which defaults
! ** to AIR_FALSE
*/
char *
***************
*** 159,163 ****
}
if (-1 != (ki = _nrrdKeyValueIdxFind(nrrd, key))) {
! ret = nrrd->kvp[1 + 2*ki];
} else {
ret = NULL;
--- 173,181 ----
}
if (-1 != (ki = _nrrdKeyValueIdxFind(nrrd, key))) {
! if (nrrdStateKeyValueReturnInternalPointers) {
! ret = nrrd->kvp[1 + 2*ki];
! } else {
! ret = airStrdup(nrrd->kvp[1 + 2*ki]);
! }
} else {
ret = NULL;
***************
*** 206,209 ****
--- 224,259 ----
_nrrdFwriteEscaped(file, value);
fprintf(file, "\n");
+ return 0;
+ }
+
+ /*
+ ******** nrrdKeyValueCopy()
+ **
+ ** copies key/value pairs from one nrrd to another
+ ** Existing key/value pairs in nout are blown away
+ */
+ int
+ nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin) {
+ char *key, *value;
+ int ki;
+
+ if (!(nout && nin)) {
+ /* got NULL pointer */
+ return 1;
+ }
+ if (nout == nin) {
+ /* can't satisfy semantics of copying with nout==nin */
+ return 2;
+ }
+
+ nrrdKeyValueClear(nout);
+ for (ki=0; ki<nin->kvpArr->len; ki++) {
+ key = nin->kvp[0 + 2*ki];
+ value = nin->kvp[1 + 2*ki];
+ if (nrrdKeyValueAdd(nout, key, value)) {
+ return 3;
+ }
+ }
+
return 0;
}
Index: methodsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/methodsNrrd.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** methodsNrrd.c 2 Oct 2003 08:22:37 -0000 1.30
--- methodsNrrd.c 14 Nov 2003 21:10:53 -0000 1.31
***************
*** 504,517 ****
}
! /* HEY: Replace this with something more efficient */
! for (i=0; i<nrrdKeyValueSize(nin); i++) {
! char *key, *value;
! nrrdKeyValueIndex(nin, &key, &value, i);
! if (NULL != key && NULL != value) {
! if (nrrdKeyValueAdd(nout, key, value)) {
! sprintf(err, "%s: couldn't add key/value pair", me);
! biffAdd(NRRD, err); return 1;
! }
! }
}
--- 504,510 ----
}
! if (nrrdKeyValueCopy(nout, nin)) {
! sprintf(err, "%s: trouble copying key/value pairs", me);
! biffAdd(NRRD, err); return 1;
}
|
|
From: <kin...@us...> - 2003-11-14 17:54:09
|
Update of /cvsroot/teem/teem/src/nrrd In directory sc8-pr-cvs1:/tmp/cvs-serv6733 Modified Files: defaultsNrrd.c nrrd.h Log Message: added nrrd's longest symbol name: nrrdStateKeyValueReturnInternalPointers Index: defaultsNrrd.c =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/defaultsNrrd.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** defaultsNrrd.c 24 Sep 2003 06:07:01 -0000 1.12 --- defaultsNrrd.c 14 Nov 2003 17:54:05 -0000 1.13 *************** *** 64,67 **** --- 64,69 ---- int nrrdStateDisallowIntegerNonExist = AIR_TRUE; int nrrdStateGrayscaleImage3D = AIR_FALSE; + /* there is no sane reason to change this default initialization */ + int nrrdStateKeyValueReturnInternalPointers = AIR_FALSE; /* should the acceptance (or not) of malformed NRRD header fields Index: nrrd.h =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v retrieving revision 1.120 retrieving revision 1.121 diff -C2 -d -r1.120 -r1.121 *** nrrd.h 10 Nov 2003 11:02:04 -0000 1.120 --- nrrd.h 14 Nov 2003 17:54:05 -0000 1.121 *************** *** 438,441 **** --- 438,442 ---- extern nrrd_export int nrrdStateDisallowIntegerNonExist; extern nrrd_export int nrrdStateGrayscaleImage3D; + extern nrrd_export int nrrdStateKeyValueReturnInternalPointers; extern void nrrdDefGetenv(void); extern void nrrdStateGetenv(void); *************** *** 569,572 **** --- 570,574 ---- extern int nrrdKeyValueErase(Nrrd *nrrd, const char *key); extern void nrrdKeyValueClear(Nrrd *nrrd); + extern int nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin); /******** endian related */ |
|
From: <kin...@us...> - 2003-11-14 17:52:32
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv6442
Modified Files:
comment.c
Log Message:
changed erroneous return to distinct value for biff-less function
Index: comment.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/comment.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** comment.c 12 Sep 2003 12:10:05 -0000 1.14
--- comment.c 14 Nov 2003 17:52:29 -0000 1.15
***************
*** 156,159 ****
--- 156,160 ----
**
** copies comments from one nrrd to another
+ ** Existing comments in nout are blown away
**
** This does NOT use biff.
***************
*** 186,190 ****
biffMaybeAdd(NRRD, err, useBiff);
*/
! return 1;
}
return 0;
--- 187,191 ----
biffMaybeAdd(NRRD, err, useBiff);
*/
! return 3;
}
return 0;
|
|
From: <kin...@us...> - 2003-11-14 17:52:02
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv6354
Modified Files:
axis.c
Log Message:
fixed confusing typo in function documentation
Index: axis.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/axis.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** axis.c 10 Nov 2003 11:02:03 -0000 1.3
--- axis.c 14 Nov 2003 17:51:59 -0000 1.4
***************
*** 357,361 ****
case nrrdAxisInfoLabel:
/* we DO NOT do the airStrdup() here because this pointer value just
! came from nrrdAxisInfoGet(), which already did the airStrdup() */
*((char**)ptr) = info.CP[d];
/* printf("!%s: got char*[%d] = |%s|\n", "nrrdAxisInfoSet", d,
--- 357,361 ----
case nrrdAxisInfoLabel:
/* we DO NOT do the airStrdup() here because this pointer value just
! came from nrrdAxisInfoGet_nva(), which already did the airStrdup() */
*((char**)ptr) = info.CP[d];
/* printf("!%s: got char*[%d] = |%s|\n", "nrrdAxisInfoSet", d,
|
|
From: <kin...@us...> - 2003-11-14 17:49:36
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv5845
Modified Files:
talkweb.c
Log Message:
better usage info
Index: talkweb.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/talkweb.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** talkweb.c 13 Nov 2003 03:35:50 -0000 1.4
--- talkweb.c 14 Nov 2003 17:49:33 -0000 1.5
***************
*** 183,189 ****
}
slide[slideIdx] = tkwbSlideNew(title, image, text);
- AIR_FREE(title);
- AIR_FREE(image);
- AIR_FREE(text);
airMopAdd(pmop, slide[slideIdx], (airMopper)tkwbSlideNix, airMopAlways);
}
--- 183,186 ----
|
|
From: <kin...@us...> - 2003-11-13 11:25:54
|
Update of /cvsroot/teem/teem/src/unrrdu
In directory sc8-pr-cvs1:/tmp/cvs-serv23821
Modified Files:
join.c
Log Message:
unu join now allows you to set label, spacing, and min/max along the join axis
Index: join.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/join.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** join.c 16 Sep 2003 00:34:50 -0000 1.20
--- join.c 13 Nov 2003 11:25:51 -0000 1.21
***************
*** 26,40 ****
". Can stich images into volumes, or tile images side "
"by side, or attach images onto volumes. If there are many many "
! "files to name in the \"-i\" option, consider putting the list of "
"filenames into a seperate text file (e.g. \"slices.txt\"), and then "
! "name this file as a response file (e.g. \"-i @slices.txt\").");
int
unrrdu_joinMain(int argc, char **argv, char *me, hestParm *hparm) {
hestOpt *opt = NULL;
! char *out, *err;
Nrrd **nin;
Nrrd *nout;
int ninLen, axis, incrDim, pret;
airArray *mop;
--- 26,45 ----
". Can stich images into volumes, or tile images side "
"by side, or attach images onto volumes. If there are many many "
! "files to name in the \"-i\" option, and using wildcards won't work, "
! "consider putting the list of "
"filenames into a seperate text file (e.g. \"slices.txt\"), and then "
! "name this file as a response file (e.g. \"-i @slices.txt\"). "
! "This command now allows you to set the same pieces of information that "
! "previously had to be set with \"unu axinfo\": label, spacing, and min/max. "
! "These can be use whether the join axis is new (because of \"-incr\") or not.");
int
unrrdu_joinMain(int argc, char **argv, char *me, hestParm *hparm) {
hestOpt *opt = NULL;
! char *out, *err, *label;
Nrrd **nin;
Nrrd *nout;
int ninLen, axis, incrDim, pret;
+ double mm[2], spc;
airArray *mop;
***************
*** 46,54 ****
OPT_ADD_AXIS(axis, "axis to join along");
hestOptAdd(&opt, "incr", NULL, airTypeInt, 0, 0, &incrDim, NULL,
! "in situations where the join axis is among the axes of "
! "the input nrrds, then this flag signifies that the join "
"axis should be *inserted*, and the output dimension should "
"be one greater than input dimension. Without this flag, the "
"nrrds are joined side-by-side, along an existing axis.");
OPT_ADD_NOUT(out, "output nrrd");
--- 51,65 ----
OPT_ADD_AXIS(axis, "axis to join along");
hestOptAdd(&opt, "incr", NULL, airTypeInt, 0, 0, &incrDim, NULL,
! "in situations where the join axis is *not* among the existing "
! "axes of the input nrrds, then this flag signifies that the join "
"axis should be *inserted*, and the output dimension should "
"be one greater than input dimension. Without this flag, the "
"nrrds are joined side-by-side, along an existing axis.");
+ hestOptAdd(&opt, "l", "label", airTypeString, 1, 1, &label, "",
+ "label to associate with join axis");
+ hestOptAdd(&opt, "mm", "min max", airTypeDouble, 2, 2, mm, "nan nan",
+ "min and max values along join axis");
+ hestOptAdd(&opt, "sp", "spacing", airTypeDouble, 1, 1, &spc, "nan",
+ "spacing between samples along join axis");
OPT_ADD_NOUT(out, "output nrrd");
***************
*** 68,71 ****
--- 79,95 ----
airMopError(mop);
return 1;
+ }
+ if (strlen(label)) {
+ AIR_FREE(nout->axis[axis].label);
+ nout->axis[axis].label = airStrdup(label);
+ }
+ if (AIR_EXISTS(mm[0])) {
+ nout->axis[axis].min = mm[0];
+ }
+ if (AIR_EXISTS(mm[1])) {
+ nout->axis[axis].max = mm[1];
+ }
+ if (AIR_EXISTS(spc)) {
+ nout->axis[axis].spacing = spc;
}
|
|
From: <kin...@us...> - 2003-11-13 03:35:53
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv14867
Modified Files:
talkweb.c
Log Message:
changed slide numbering to start at 1
Index: talkweb.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/talkweb.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** talkweb.c 11 Nov 2003 23:28:38 -0000 1.3
--- talkweb.c 13 Nov 2003 03:35:50 -0000 1.4
***************
*** 183,188 ****
}
slide[slideIdx] = tkwbSlideNew(title, image, text);
- fprintf(stderr, "!%s: slide[%d] = %p = (%s,%s,...)\n",
- me, slideIdx, slide[slideIdx], title, image);
AIR_FREE(title);
AIR_FREE(image);
--- 183,186 ----
***************
*** 314,318 ****
for (si=0; slide[si]; si++) {
sprintf(tmp, "<li> <a href=\"slide%03d.html\">%s</a>\n",
! si, slide[si]->title);
strcat(repl, tmp);
}
--- 312,316 ----
for (si=0; slide[si]; si++) {
sprintf(tmp, "<li> <a href=\"slide%03d.html\">%s</a>\n",
! si+1, slide[si]->title);
strcat(repl, tmp);
}
***************
*** 341,346 ****
mop = airMopNew();
! sprintf(frst, "<a href=\"slide000.html\">%s</a>", link[0]);
! sprintf(last, "<a href=\"slide%03d.html\">%s</a>", numSlides-1, link[3]);
for (si=0; si<numSlides; si++) {
text = airStrdup(tmpl);
--- 339,344 ----
mop = airMopNew();
! sprintf(frst, "<a href=\"slide001.html\">%s</a>", link[0]);
! sprintf(last, "<a href=\"slide%03d.html\">%s</a>", numSlides, link[3]);
for (si=0; si<numSlides; si++) {
text = airStrdup(tmpl);
***************
*** 350,363 ****
if (si) {
tkwbStringSubst(&text, tag[TKWB_TAG_FIRST], frst);
! sprintf(prev, "<a href=\"slide%03d.html\">%s</a>", si-1, link[1]);
tkwbStringSubst(&text, tag[TKWB_TAG_PREV], prev);
}
if (si < numSlides-1) {
tkwbStringSubst(&text, tag[TKWB_TAG_LAST], last);
! sprintf(next, "<a href=\"slide%03d.html\">%s</a>", si+1, link[2]);
tkwbStringSubst(&text, tag[TKWB_TAG_NEXT], next);
}
airMopAdd(mop, text, airFree, airMopAlways);
! sprintf(name, "slide%03d.html", si);
if (tkwbWriteStringToFile(name, text)) {
sprintf(err, "%s: couldn't write \"%s\"", me, name);
--- 348,361 ----
if (si) {
tkwbStringSubst(&text, tag[TKWB_TAG_FIRST], frst);
! sprintf(prev, "<a href=\"slide%03d.html\">%s</a>", si, link[1]);
tkwbStringSubst(&text, tag[TKWB_TAG_PREV], prev);
}
if (si < numSlides-1) {
tkwbStringSubst(&text, tag[TKWB_TAG_LAST], last);
! sprintf(next, "<a href=\"slide%03d.html\">%s</a>", si+2, link[2]);
tkwbStringSubst(&text, tag[TKWB_TAG_NEXT], next);
}
airMopAdd(mop, text, airFree, airMopAlways);
! sprintf(name, "slide%03d.html", si+1);
if (tkwbWriteStringToFile(name, text)) {
sprintf(err, "%s: couldn't write \"%s\"", me, name);
***************
*** 379,383 ****
int numSlides;
- fprintf(stderr, "!%s: bingo\n", me);
mop = airMopNew();
if (tkwbReadTemplate(&index, indexS)) {
--- 377,380 ----
***************
*** 387,391 ****
airMopAdd(mop, index, airFree, airMopAlways);
- fprintf(stderr, "!%s: bingo\n", me);
if (tkwbReadTemplate(&tmpl, tmplS)) {
sprintf(err, "%s: trouble reading in slide template file", me);
--- 384,387 ----
***************
*** 394,398 ****
airMopAdd(mop, tmpl, airFree, airMopAlways);
- fprintf(stderr, "!%s: bingo\n", me);
if (tkwbReadSlides(&slide, scriptS, mop)) {
sprintf(err, "%s: trouble reading in slide script", me);
--- 390,393 ----
***************
*** 401,405 ****
airMopAdd(mop, slide, airFree, airMopAlways);
- fprintf(stderr, "!%s: bingo\n", me);
if (tkwbExpandImageInfo(slide)) {
sprintf(err, "%s: trouble learning details of images", me);
--- 396,399 ----
***************
*** 407,411 ****
}
- fprintf(stderr, "!%s: bingo\n", me);
if (tkwbWriteIndex(index, slide, tag)) {
sprintf(err, "%s: trouble writing index.html", me);
--- 401,404 ----
***************
*** 413,417 ****
}
- fprintf(stderr, "!%s: bingo\n", me);
for (numSlides=0; slide[numSlides]; numSlides++);
if (tkwbWriteSlides(slide, numSlides, tmpl, tag, link)) {
--- 406,409 ----
***************
*** 420,424 ****
}
- fprintf(stderr, "!%s: bingo\n", me);
airMopOkay(mop);
return 0;
--- 412,415 ----
|
|
From: <kin...@us...> - 2003-11-12 19:33:42
|
Update of /cvsroot/teem/teemdoc/html In directory sc8-pr-cvs1:/tmp/cvs-serv18790 Modified Files: lgpl.html index.html Log Message: fixing typos Index: lgpl.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/lgpl.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** lgpl.html 12 Nov 2003 09:37:42 -0000 1.8 --- lgpl.html 12 Nov 2003 19:33:39 -0000 1.9 *************** *** 141,145 **** constrains (mildly) how you distribute compiled software using a LGPL'd library, but because those constraints are not the same as the ! LGPL, the LGPL does not propogate itself in the same way that the GPL does. This is in contrast to what is required when the derived work involves modification of my source, in which case the full LGPL does --- 141,145 ---- constrains (mildly) how you distribute compiled software using a LGPL'd library, but because those constraints are not the same as the ! LGPL, the LGPL does not propagate itself in the same way that the GPL does. This is in contrast to what is required when the derived work involves modification of my source, in which case the full LGPL does Index: index.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/index.html,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** index.html 29 Oct 2003 18:02:09 -0000 1.15 --- index.html 12 Nov 2003 19:33:39 -0000 1.16 *************** *** 70,74 **** <ul> <li> Oct 29, 2003: <b><a href="download/index.html">Teem Version 1.6.0 released</a></b> ! <li> Sept 16, 2003: <a href="http://www.sci.utah.edu/~gk/vis03">See how teem made all the renderings</a> for an upcoming <a href="http://vis.computer.org/vis2003/">IEEE Visualization 2003</a> paper. <li> Sept 16, 2003: <a href="http://sourceforge.net/mail/?group_id=85445"><tt>teem-users</tt> and <tt>teem-coders</tt></a> mailing lists created </ul> --- 70,74 ---- <ul> <li> Oct 29, 2003: <b><a href="download/index.html">Teem Version 1.6.0 released</a></b> ! <li> Sept 16, 2003: <a href="http://www.sci.utah.edu/~gk/vis03">See how teem made all the renderings</a> for a recent <a href="http://vis.computer.org/vis2003/">IEEE Visualization 2003</a> paper. <li> Sept 16, 2003: <a href="http://sourceforge.net/mail/?group_id=85445"><tt>teem-users</tt> and <tt>teem-coders</tt></a> mailing lists created </ul> *************** *** 83,88 **** develop as part of trying out new ideas, or trying to better understand previous work, is here. Because other people have ! increasingly found this software to be useful, I distribute it, and ! try to support it. <p> --- 83,88 ---- develop as part of trying out new ideas, or trying to better understand previous work, is here. Because other people have ! increasingly found this software to be useful, I distribute it (under ! the <a href="lgpl.html">LGPL</a>), and try to support it. <p> |
|
From: <kin...@us...> - 2003-11-12 09:38:02
|
Update of /cvsroot/teem/teemdoc/html In directory sc8-pr-cvs1:/tmp/cvs-serv30908 Modified Files: lgpl.html Log Message: fixed HTML bugs Index: lgpl.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/lgpl.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** lgpl.html 12 Nov 2003 09:33:30 -0000 1.7 --- lgpl.html 12 Nov 2003 09:37:42 -0000 1.8 *************** *** 19,23 **** align=right width="125" height="37" border="0" alt="SourceForge.net Logo"></A> <table border=0 cellpadding=0 cellspacing=0> - <table width="100%" border=0 cellpadding=0 cellspacing=0> <tr> <td width="1%" height=80> --- 19,22 ---- |