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
|
|
From: <kin...@us...> - 2003-11-12 09:33:53
|
Update of /cvsroot/teem/teemdoc/html In directory sc8-pr-cvs1:/tmp/cvs-serv30369 Modified Files: lgpl.html Log Message: some clarifications Index: lgpl.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/lgpl.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** lgpl.html 22 Jul 2003 21:39:12 -0000 1.6 --- lgpl.html 12 Nov 2003 09:33:30 -0000 1.7 *************** *** 118,131 **** <ol> ! <li> If the derived work involves a modification of the source of ! teem, then Section 2(c) of the LGPL applies as soon as you distribute ! the derived work, requiring that the derived work be licensed under ! the LGPL. ! <li> If the derived work is a binary created by linking against teem, ! then Section 6 of the LGPL applies, saying that the derived work can ! be distributed "under the terms of your choice, provided that ...", ! and goes on to describe the responsibilities of someone distributing ! the derived work. </ol> --- 118,132 ---- <ol> ! <li> If the derived work entails a modification of teem itself or some ! portion of it, then you have a "work based on the library". Section ! 2(c) of the LGPL applies to that derived work as soon as you ! distribute it, requiring that the work be licensed under the LGPL. ! <li> If the derived work is a binary created by linking against teem ! (or your modification of it), then you have a "work which uses the ! library". Section 6 of the LGPL applies to this work as soon as you ! distribute it, saying that the derived work can be distributed "under ! the terms of your choice, provided that ...", and goes on to describe ! the responsibilities of someone distributing the derived work. </ol> |
|
From: <kin...@us...> - 2003-11-12 09:01:27
|
Update of /cvsroot/teem/teemdoc/html/nrrd In directory sc8-pr-cvs1:/tmp/cvs-serv24959 Modified Files: index.html Log Message: simplified link list Index: index.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/nrrd/index.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** index.html 12 Nov 2003 08:55:57 -0000 1.7 --- index.html 12 Nov 2003 09:00:58 -0000 1.8 *************** *** 113,126 **** header can be losslessly encoded in these formats. ! <li><!-- <a href="struct.html"> --><b><tt>Nrrd</tt> Data structure</b><!-- </a> -->: ! Basic information about the <tt>Nrrd</tt> data structure, and ! description of the <b>nrrd</b> functions for creating and destroying ! <tt>Nrrd</tt>s. ! ! <li><!-- <a href="lib.html"> --><b>nrrd Library Description</b><!-- </a> -->: High-level ! documentation for the <b>nrrd</b> library and its various functions ! for manipulating <tt>Nrrd</tt>s. Also describes the connection ! between the <b>nrrd</b> library and the Utah Nrrd Utilities ! command-line program "<tt>unu</tt>". <li><a href="demo.html"><b>Demonstrations of using nrrd</b></a>: A --- 113,119 ---- header can be losslessly encoded in these formats. ! <li><a href="lib.html"><b>nrrd Library Description</b></a>: High-level ! documentation for the <b>nrrd</b> library and the various functions ! for manipulating <tt>Nrrd</tt>s. <li><a href="demo.html"><b>Demonstrations of using nrrd</b></a>: A |
|
From: <kin...@us...> - 2003-11-12 08:59:24
|
Update of /cvsroot/teem/teemdoc/html/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv24390
Modified Files:
lib.html
Log Message:
fixed HTML bugs
Index: lib.html
===================================================================
RCS file: /cvsroot/teem/teemdoc/html/nrrd/lib.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** lib.html 12 Nov 2003 08:37:59 -0000 1.3
--- lib.html 12 Nov 2003 08:59:00 -0000 1.4
***************
*** 446,450 ****
char *lab0, *lab1, *lab2, *lab3;
...
! nrrdAxisInfoGet(nvec, nrrdAxisInfoLabel, &lab0, &lab1, &lab2, &lab3);
printf("labels were: %s, %s, %s, %s\n", lab0, lab1, lab2, lab3);
</pre></blockquote>
--- 446,450 ----
char *lab0, *lab1, *lab2, *lab3;
...
! nrrdAxisInfoGet(nvec, nrrdAxisInfoLabel, &lab0, &lab1, &lab2, &lab3);
printf("labels were: %s, %s, %s, %s\n", lab0, lab1, lab2, lab3);
</pre></blockquote>
***************
*** 544,548 ****
nk = nrrdKeyValueSize(nrend);
for (ki=0; ki$lt;nk; ki++) {
! nrrdKeyValueIndex(nrend, &key, &val, ki);
printf("%s = %s\n", key, val);
}
--- 544,548 ----
nk = nrrdKeyValueSize(nrend);
for (ki=0; ki$lt;nk; ki++) {
! nrrdKeyValueIndex(nrend, &key, &val, ki);
printf("%s = %s\n", key, val);
}
|
|
From: <kin...@us...> - 2003-11-12 08:56:21
|
Update of /cvsroot/teem/teemdoc/html/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv23857
Modified Files:
index.html
Log Message:
link to new lib.html
Index: index.html
===================================================================
RCS file: /cvsroot/teem/teemdoc/html/nrrd/index.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** index.html 12 Sep 2003 12:57:06 -0000 1.6
--- index.html 12 Nov 2003 08:55:57 -0000 1.7
***************
*** 45,51 ****
- <a href="otherformat.html">Compatible file formats</a><br>
<font size="-2"> </font><br>
! - <!-- <a href="struct.html"> -->Data structure<!-- </a> --><br>
! <font size="-2"> </font><br>
! - <!-- <a href="lib.html"> -->Library description<!-- </a> --><br>
<font size="-2"> </font><br>
- <a href="demo.html">Demo of <b>nrrd</b>/<tt>unu</tt> uses</a><br>
--- 45,49 ----
- <a href="otherformat.html">Compatible file formats</a><br>
<font size="-2"> </font><br>
! - <a href="lib.html"> Library description </a> <br>
<font size="-2"> </font><br>
- <a href="demo.html">Demo of <b>nrrd</b>/<tt>unu</tt> uses</a><br>
|
|
From: <kin...@us...> - 2003-11-12 08:38:23
|
Update of /cvsroot/teem/teemdoc/html/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv20958
Modified Files:
lib.html
Added Files:
demoIO.c
Log Message:
first stab at some nrrd API documentation
--- NEW FILE: demoIO.c ---
/*
Gordon compiles with this on his powerbook:
cc -o demoIO demoIO.c \
-I/Users/gk/teem/include -I/sw/include \
-L/Users/gk/teem/darwin.32/lib -L/sw/lib \
-lteem -lpng -lbz2 -lz -lm
*/
#include <teem/nrrd.h>
void
demoIO(char *filename) {
char me[]="demoIO", newname[]="foo.nrrd", *err;
Nrrd *nin;
/* create a nrrd; at this point this is just an empty container */
nin = nrrdNew();
/* read in the nrrd from file */
if (nrrdLoad(nin, filename, NULL)) {
err = biffGetDone(NRRD);
fprintf(stderr, "%s: trouble reading \"%s\":\n%s", me, filename, err);
free(err);
return;
}
/* say something about the array */
printf("%s: \"%s\" is a %d-dimensional nrrd of type %d (%s)\n",
me, filename, nin->dim, nin->type,
airEnumStr(nrrdType, nin->type));
printf("%s: the array contains %d elements, each %d bytes in size\n",
me, (int)nrrdElementNumber(nin), (int)nrrdElementSize(nin));
/* write out the nrrd to a different file */
if (nrrdSave(newname, nin, NULL)) {
err = biffGetDone(NRRD);
fprintf(stderr, "%s: trouble writing \"%s\":\n%s", me, newname, err);
free(err);
return;
}
/* blow away both the Nrrd struct *and* the memory at nin->data
(nrrdNix() frees the struct but not the data,
nrrdEmpty() frees the data but not the struct) */
nrrdNuke(nin);
return;
}
int
main(int argc, char **argv) {
if (2 != argc) {
fprintf(stderr, "usage: demoIO <filename>\n");
return 1;
}
demoIO(argv[1]);
return 0;
}
Index: lib.html
===================================================================
RCS file: /cvsroot/teem/teemdoc/html/nrrd/lib.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** lib.html 22 Jul 2003 22:44:12 -0000 1.2
--- lib.html 12 Nov 2003 08:37:59 -0000 1.3
***************
*** 39,46 ****
</table>
! <!--
Currently, the <b>nrrd</b> library, as with all the <b>teem</b>
! libraries, is implemented completely in C. There are various aspects
of <b>nrrd</b> that smack of C++ templates, and some that cry out for
templates, but these are the exceptions. I program in C because its a
--- 39,1136 ----
</table>
[...1077 lines suppressed...]
+ <td align=left>find connected components in 1-D, 2-D or 3-D
+ <tr>
+ <td align=right><tt>nrrdCCMerge</tt>
+ <td><b>-</b>
+ <td align=left>merge some components into others, based on
+ a variety of criteria
+ <tr>
+ <td align=right><tt>nrrdCCSettle</tt>
+ <td><b>-</b>
+ <td align=left>assign set of lowest-valued possible component IDs
+ </table>
+ </center>
+
+ <!--
Currently, the <b>nrrd</b> library, as with all the <b>teem</b>
! libraries, is implemented completely in C.
!
! There are various aspects
of <b>nrrd</b> that smack of C++ templates, and some that cry out for
templates, but these are the exceptions. I program in C because its a
|
|
From: <kin...@us...> - 2003-11-11 23:28:41
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv31081
Modified Files:
talkweb.c
Log Message:
improved usage info
Index: talkweb.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/talkweb.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** talkweb.c 11 Nov 2003 07:53:45 -0000 1.2
--- talkweb.c 11 Nov 2003 23:28:38 -0000 1.3
***************
*** 25,29 ****
#include <teem/nrrd.h>
! #define TKWB "webtalk"
#define TKWB_TAG_TOC 0
--- 25,29 ----
#include <teem/nrrd.h>
! #define TKWB "talkweb"
#define TKWB_TAG_TOC 0
***************
*** 38,42 ****
#define TKWB_TAG_MAX 7
! char *tkwbInfo = ("Generates HTML pages from slide images and text");
int tkwbArrayIncr = 16;
--- 38,59 ----
#define TKWB_TAG_MAX 7
! char *tkwbInfo =
! ("Generates HTML pages from slide images and text. "
! "This program takes multiple inputs: a template for the table of contents "
! "that will become \"index.html\" (\"-i\"), a template for the pages "
! "generated for each slide e.g. \"slide000.html\" (\"-t\"), and a script "
! "text file that contains all the information that will go into the slide "
! "pages. The format of this file is:\n "
! "\t\t- Seperator line indicating slide transitions, e.g. \"-------------\"\n "
! "\t\t- Title of first slide (one line)\n "
! "\t\t- Filename for image to put on first slide (one line)\n "
! "\t\t- Body of HTML text to put with the slide image (multiple lines)\n "
! "\t\t- Seperator\n "
! "followed by information for the second slide, and so forth. Textual "
! "subtitutions are performed in the template files, according to the "
! "replacement tags (\"-r\", see below). Within the slide pages, navigation "
! "arrows are based on remaining command-line options."
! );
!
int tkwbArrayIncr = 16;
|
|
From: <kin...@us...> - 2003-11-11 07:53:49
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv30215
Modified Files:
talkweb.c
Log Message:
fixed memory bugs in talkweb
Index: talkweb.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/talkweb.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** talkweb.c 11 Nov 2003 07:00:35 -0000 1.1
--- talkweb.c 11 Nov 2003 07:53:45 -0000 1.2
***************
*** 49,53 ****
tkwbSlide *ret;
! ret = (tkwbSlide*)calloc(1, sizeof(tkwbSlide *));
if (ret) {
ret->title = airStrdup(title);
--- 49,53 ----
tkwbSlide *ret;
! ret = (tkwbSlide*)calloc(1, sizeof(tkwbSlide));
if (ret) {
ret->title = airStrdup(title);
***************
*** 80,84 ****
while (lineLen && (!( airStrlen(stop) && !strcmp(line, stop) )) ) {
lineIdx = airArrayIncrLen(allArr, 1);
! all[lineIdx] = calloc(strlen(line)+1, sizeof(char));
sprintf(all[lineIdx], "%s\n", line);
totalLen += strlen(line) + 1;
--- 80,84 ----
while (lineLen && (!( airStrlen(stop) && !strcmp(line, stop) )) ) {
lineIdx = airArrayIncrLen(allArr, 1);
! all[lineIdx] = calloc(strlen(line) + strlen("\n") + 1, sizeof(char));
sprintf(all[lineIdx], "%s\n", line);
totalLen += strlen(line) + 1;
***************
*** 168,171 ****
--- 168,174 ----
fprintf(stderr, "!%s: slide[%d] = %p = (%s,%s,...)\n",
me, slideIdx, slide[slideIdx], title, image);
+ AIR_FREE(title);
+ AIR_FREE(image);
+ AIR_FREE(text);
airMopAdd(pmop, slide[slideIdx], (airMopper)tkwbSlideNix, airMopAlways);
}
***************
*** 216,219 ****
--- 219,223 ----
}
+ airMopOkay(mop);
return 0;
}
|
|
From: <kin...@us...> - 2003-11-11 07:00:40
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv22545
Modified Files:
GNUmakefile
Added Files:
talkweb.c
Log Message:
talkweb generates a set of web pages from slide images and a script file
--- NEW FILE: talkweb.c ---
/*
teem: Gordon Kindlmann's research software
Copyright (C) 2003, 2002, 2001, 2000, 1999, 1998 University of Utah
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <errno.h>
#include <teem/air.h>
#include <teem/biff.h>
#include <teem/hest.h>
#include <teem/nrrd.h>
#define TKWB "webtalk"
#define TKWB_TAG_TOC 0
#define TKWB_TAG_TITLE 1
#define TKWB_TAG_IMAGE 2
#define TKWB_TAG_FIRST 3
#define TKWB_TAG_PREV 4
#define TKWB_TAG_NEXT 5
#define TKWB_TAG_LAST 6
#define TKWB_TAG_TEXT 7
#define TKWB_TAG_MAX 7
char *tkwbInfo = ("Generates HTML pages from slide images and text");
int tkwbArrayIncr = 16;
typedef struct {
char *title, *image, *text;
} tkwbSlide;
tkwbSlide *
tkwbSlideNew(char *title, char *image, char *text) {
tkwbSlide *ret;
ret = (tkwbSlide*)calloc(1, sizeof(tkwbSlide *));
if (ret) {
ret->title = airStrdup(title);
ret->image = airStrdup(image);
ret->text = airStrdup(text);
}
return ret;
}
tkwbSlide *
tkwbSlideNix(tkwbSlide *slide) {
AIR_FREE(slide->title);
AIR_FREE(slide->image);
AIR_FREE(slide->text);
AIR_FREE(slide);
return NULL;
}
int
tkwbReadFileToString(char **strP, int *hitEOF, FILE *file, char *stop) {
char **all, line[AIR_STRLEN_HUGE];
airArray *allArr;
int totalLen, lineIdx, lineLen, allLen;
allArr = airArrayNew((void**)(&all), &allLen, sizeof(char*), tkwbArrayIncr);
airArrayPointerCB(allArr, airNull, airFree);
lineLen = airOneLine(file, line, AIR_STRLEN_HUGE);
totalLen = 0;
while (lineLen && (!( airStrlen(stop) && !strcmp(line, stop) )) ) {
lineIdx = airArrayIncrLen(allArr, 1);
all[lineIdx] = calloc(strlen(line)+1, sizeof(char));
sprintf(all[lineIdx], "%s\n", line);
totalLen += strlen(line) + 1;
lineLen = airOneLine(file, line, AIR_STRLEN_HUGE);
}
if (hitEOF) {
*hitEOF = !lineLen;
}
*strP = (char*)calloc(totalLen+1, sizeof(char));
strcpy(*strP, "");
for (lineIdx=0; lineIdx<allLen; lineIdx++) {
strcat(*strP, all[lineIdx]);
}
airArrayNuke(allArr);
return 0;
}
int
tkwbReadTemplate(char **tmplSP, char *filename) {
char me[]="tkwbReadTemplate", err[AIR_STRLEN_MED];
FILE *file;
airArray *mop;
mop = airMopNew();
if (!( file = airFopen(filename, stdin, "rb") )) {
sprintf(err, "%s: couldn't open %s: %s", me, filename, strerror(errno));
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopAdd(mop, file, (airMopper)airFclose, airMopAlways);
if (tkwbReadFileToString(tmplSP, NULL, file, NULL)) {
sprintf(err, "%s: couldn't read in template file %s", me, filename);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopOkay(mop);
return 0;
}
int
tkwbReadSlides(tkwbSlide ***slideP, char *filename, airArray *pmop) {
char me[]="tkwbReadSlides", err[AIR_STRLEN_MED];
FILE *file;
airArray *mop, *slideArr;
tkwbSlide **slide = NULL;
char *title, *image, *text, stop[AIR_STRLEN_HUGE], line[AIR_STRLEN_HUGE];
int slideIdx, hitEOF, notReally, len;
mop = airMopNew();
if (!( file = airFopen(filename, stdin, "rb") )) {
sprintf(err, "%s: couldn't open %s: %s", me, filename, strerror(errno));
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopAdd(mop, file, (airMopper)airFclose, airMopAlways);
len = airOneLine(file, stop, AIR_STRLEN_HUGE);
if (!( len > 1 )) {
sprintf(err, "%s: didn't get a stop delimiter from %s", me, filename);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
slideArr = airArrayNew((void**)(&slide), NULL,
sizeof(tkwbSlide*), tkwbArrayIncr);
airMopAdd(mop, slideArr, (airMopper)airArrayNix, airMopAlways);
hitEOF = notReally = AIR_FALSE;
while (!hitEOF) {
slideIdx = airArrayIncrLen(slideArr, 1);
len = airOneLine(file, line, AIR_STRLEN_HUGE);
if (!len) {
/* got EOF after a division marker, that's okay */
notReally = AIR_TRUE;
break;
}
title = airStrdup(line);
len = airOneLine(file, line, AIR_STRLEN_HUGE);
if (!len) {
break;
}
image = airStrdup(line);
if (tkwbReadFileToString(&text, &hitEOF, file, stop)) {
sprintf(err, "%s: couldn't read in slide %d", me, slideIdx);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
slide[slideIdx] = tkwbSlideNew(title, image, text);
fprintf(stderr, "!%s: slide[%d] = %p = (%s,%s,...)\n",
me, slideIdx, slide[slideIdx], title, image);
airMopAdd(pmop, slide[slideIdx], (airMopper)tkwbSlideNix, airMopAlways);
}
if (!hitEOF && !notReally) {
sprintf(err, "%s: got incomplete slide info for slide %d\n", me, slideIdx);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
if (!notReally) {
slideIdx = airArrayIncrLen(slideArr, 1);
}
slide[slideIdx] = NULL;
*slideP = slide;
airMopOkay(mop);
return 0;
}
int
tkwbExpandImageInfo(tkwbSlide **slide) {
char me[]="tkwbExpandImageInfo", err[AIR_STRLEN_MED], *image;
Nrrd *nimg;
int si, sx, sy, len;
airArray *mop;
mop = airMopNew();
nimg = nrrdNew();
airMopAdd(mop, nimg, (airMopper)nrrdNuke, airMopAlways);
for (si=0; slide[si]; si++) {
if (nrrdLoad(nimg, slide[si]->image, NULL)) {
sprintf(err, "%s: trouble reading slide image \"%s\"",
me, slide[si]->image);
biffMove(TKWB, err, NRRD); airMopError(mop); return 1;
}
if (!nrrdFormatPNG->fitsInto(nimg, nrrdEncodingGzip, AIR_TRUE)) {
sprintf(err, "%s: slide image \"%s\" doesn't seem to be an image",
me, slide[si]->image);
biffMove(TKWB, err, NRRD); airMopError(mop); return 1;
}
sx = nimg->axis[nimg->dim-2].size;
sy = nimg->axis[nimg->dim-1].size;
len = (strlen("<img width=xxxx height=xxxx src=\"\">")
+ strlen(slide[si]->image) + 1);
image = (char *)calloc(len, sizeof(char));
sprintf(image, "<img width=%d height=%d src=\"%s\">",
sx, sy, slide[si]->image);
free(slide[si]->image);
slide[si]->image = image;
}
return 0;
}
int
tkwbWriteStringToFile(char *filename, char *content) {
char me[]="tkwbWriteStringToFile", err[AIR_STRLEN_MED];
FILE *file;
if (!(file = fopen(filename, "wb"))) {
sprintf(err, "%s: trouble opening file \"%s\": %s",
me, filename, strerror(errno));
biffAdd(TKWB, err); return 1;
}
fprintf(file, "%s", content);
fclose(file);
return 0;
}
int
_tkwbStringSubst(char **sP, /* string to search in */
char *f, /* find */
char *r) { /* replace */
char *p, /* place where find was found */
*n; /* new string */
p = strstr(*sP, f);
if (!p) {
/* nothing to do */
return 0;
}
n = (char*)calloc(strlen(*sP) - strlen(f) + strlen(r) + 1, sizeof(char));
strncpy(n, *sP, p - *sP);
strncpy(n + (p - *sP), r, strlen(r));
strcpy(n + (p - *sP) + strlen(r), p + strlen(f));
free(*sP);
*sP = n;
return _tkwbStringSubst(sP, f, r);
}
/*
** NOTE: this will re-allocate *stringP if a substitution is done
*/
void
tkwbStringSubst(char **sP, /* string to search in */
char *f, /* find */
char *r) { /* replace */
_tkwbStringSubst(sP, f, r);
return;
}
int
tkwbWriteIndex(char *_index, tkwbSlide **slide, char *tag[TKWB_TAG_MAX+1]) {
char me[]="tkwbWriteIndex", err[AIR_STRLEN_MED],
*repl, *index, tmp[AIR_STRLEN_MED];
int replLen, si;
airArray *mop;
mop = airMopNew();
replLen = 0;
replLen += strlen("<ol>\n");
for (si=0; slide[si]; si++) {
replLen += (strlen("<li> <a href=\"slideXXX.html\"></a>\n")
+ strlen(slide[si]->title));
}
replLen += strlen("</ol>\n");
if (!(repl = (char*)calloc(replLen+1, sizeof(char)))) {
sprintf(err, "%s: couldn't allocate link buffer!", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopAdd(mop, repl, airFree, airMopAlways);
strcpy(repl, "<ol>\n");
for (si=0; slide[si]; si++) {
sprintf(tmp, "<li> <a href=\"slide%03d.html\">%s</a>\n",
si, slide[si]->title);
strcat(repl, tmp);
}
strcat(repl, "</ol>");
index = airStrdup(_index);
tkwbStringSubst(&index, tag[TKWB_TAG_TOC], repl);
airMopAdd(mop, index, airFree, airMopAlways);
if (tkwbWriteStringToFile("index.html", index)) {
sprintf(err, "%s: couldn't write \"index.html\"", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopOkay(mop);
return 0;
}
int
tkwbWriteSlides(tkwbSlide **slide, int numSlides, char *tmpl,
char *tag[TKWB_TAG_MAX+1], char *link[4]) {
char me[]="tkwbWriteSlides", err[AIR_STRLEN_MED];
char *text, name[AIR_STRLEN_MED], frst[AIR_STRLEN_MED], prev[AIR_STRLEN_MED],
next[AIR_STRLEN_MED], last[AIR_STRLEN_MED];
int si;
airArray *mop;
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);
tkwbStringSubst(&text, tag[TKWB_TAG_TITLE], slide[si]->title);
tkwbStringSubst(&text, tag[TKWB_TAG_IMAGE], slide[si]->image);
tkwbStringSubst(&text, tag[TKWB_TAG_TEXT], slide[si]->text);
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);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
}
airMopOkay(mop);
return 0;
}
int
tkwbDoit(char *indexS, char *tmplS, char *scriptS,
char *tag[TKWB_TAG_MAX+1], char *link[4]) {
char me[]="tkwbDoit", err[AIR_STRLEN_MED];
char *index, *tmpl;
tkwbSlide **slide;
airArray *mop;
int numSlides;
fprintf(stderr, "!%s: bingo\n", me);
mop = airMopNew();
if (tkwbReadTemplate(&index, indexS)) {
sprintf(err, "%s: trouble reading in index template file", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
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);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
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);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
airMopAdd(mop, slide, airFree, airMopAlways);
fprintf(stderr, "!%s: bingo\n", me);
if (tkwbExpandImageInfo(slide)) {
sprintf(err, "%s: trouble learning details of images", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
fprintf(stderr, "!%s: bingo\n", me);
if (tkwbWriteIndex(index, slide, tag)) {
sprintf(err, "%s: trouble writing index.html", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
fprintf(stderr, "!%s: bingo\n", me);
for (numSlides=0; slide[numSlides]; numSlides++);
if (tkwbWriteSlides(slide, numSlides, tmpl, tag, link)) {
sprintf(err, "%s: trouble writing slide pages", me);
biffAdd(TKWB, err); airMopError(mop); return 1;
}
fprintf(stderr, "!%s: bingo\n", me);
airMopOkay(mop);
return 0;
}
int
main(int argc, char *argv[]) {
char *me, *err, *indexS, *tmplS, *scriptS, *pretag[TKWB_TAG_MAX+1],
*tag[AIR_STRLEN_MED],
*frstLink, *prevLink, *nextLink, *lastLink, *link[4];
hestOpt *hopt = NULL;
airArray *mop;
int ti;
me = argv[0];
hestOptAdd(&hopt, "i", "index", airTypeString, 1, 1, &indexS, NULL,
"*index* template HTML filename. This will be turned into "
"the \"index.html\" index file, after the links to all the "
"slides have been substituted in.");
hestOptAdd(&hopt, "t", "slide", airTypeString, 1, 1, &tmplS, NULL,
"*slide* template HTML filename. "
"The text of this includes the tags "
"that are replaced with their per-slide values, to produce the "
"HTML file for each slide's page. ");
hestOptAdd(&hopt, "s", "script", airTypeString, 1, 1, &scriptS, NULL,
"script filename. This file contains information about each "
"slide: the slide title, the slide image filename, and the "
"HTML text to accompany the slide image.");
hestOptAdd(&hopt, "r", "tags", airTypeString,
TKWB_TAG_MAX+1, TKWB_TAG_MAX+1, pretag,
"TOC TITLE IMAGE FIRST PREV NEXT LAST TEXT",
"replacement tags that will be converted into links. "
"The actual replcement tag is the string given here embedded "
"in an HTML comment (no space). So saying \"TOC\" means the "
"actual replacement tag will be \"<!--TOC-->\". The first tag "
"is replaced in the index template; all others are in the "
"slide template. "
"In order, the tags are for:\n "
"\b\bo In the index template, the list of links to slide pages\n "
"\b\bo The slide title\n "
"\b\bo The slide image\n "
"\b\bo The link to the first slide\n "
"\b\bo The link to the previous slide\n "
"\b\bo The link to the next slide\n "
"\b\bo The link to the last slide\n "
"\b\bo The text accompanying each slide");
hestOptAdd(&hopt, "first", "text", airTypeString, 1, 1, &frstLink,
"<b>|<<</b>", "Snippet of HTML text to be converted into "
"link to first slide. Some image could be used here. "
"Following three arguments are similar. ");
hestOptAdd(&hopt, "prev", "text", airTypeString, 1, 1, &prevLink,
"<b><--</b>", "HTML for link to previous slide");
hestOptAdd(&hopt, "next", "text", airTypeString, 1, 1, &nextLink,
"<b>--></b>", "HTML for link to next slide");
hestOptAdd(&hopt, "last", "text", airTypeString, 1, 1, &lastLink,
"<b>>>|</b>", "HTML for link to last slide");
hestParseOrDie(hopt, argc-1, argv+1, NULL, me, tkwbInfo,
AIR_TRUE, AIR_TRUE, AIR_TRUE);
mop = airMopNew();
airMopAdd(mop, hopt, (airMopper)hestOptFree, airMopAlways);
airMopAdd(mop, hopt, (airMopper)hestParseFree, airMopAlways);
link[0] = frstLink;
link[1] = prevLink;
link[2] = nextLink;
link[3] = lastLink;
for (ti=0; ti<=TKWB_TAG_MAX; ti++) {
tag[ti] = calloc(strlen(pretag[ti]) + strlen("<!---->") + 1, sizeof(char));
airMopAdd(mop, tag[ti], airFree, airMopAlways);
sprintf(tag[ti], "<!--%s-->", pretag[ti]);
}
if (tkwbDoit(indexS, tmplS, scriptS, tag, link)) {
airMopAdd(mop, err = biffGetDone(TKWB), airFree, airMopAlways);
fprintf(stderr, "%s: error:\n%s", me, err);
airMopError(mop); return 1;
}
airMopOkay(mop);
return 0;
}
Index: GNUmakefile
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/GNUmakefile,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** GNUmakefile 3 Oct 2003 00:35:48 -0000 1.27
--- GNUmakefile 11 Nov 2003 07:00:35 -0000 1.28
***************
*** 47,51 ****
## BINS: all the command-line executables associated with teem
##
! BINS = airSanity affine cubic nrrdSanity overrgb idx2pos emap undos \
pos2idx unu pprobe vprobe qbert mrender miter gkms ungantry ilk tend spots
--- 47,51 ----
## BINS: all the command-line executables associated with teem
##
! BINS = airSanity affine cubic nrrdSanity overrgb idx2pos emap undos talkweb \
pos2idx unu pprobe vprobe qbert mrender miter gkms ungantry ilk tend spots
***************
*** 97,100 ****
--- 97,101 ----
miter.need = $(call meneed,mite hoover limn nrrd ell biff air)
ungantry.need = $(call meneed,gage nrrd biff hest air)
+ talkweb.need = $(call meneed,nrrd biff hest air)
tend.need = $(call meneed,ten limn gage dye unrrdu nrrd ell biff air)
vprobe.need = $(call meneed,ten limn gage nrrd ell biff hest air)
***************
*** 127,130 ****
--- 128,132 ----
$(call _binDI,miter) : $(call used,$(miter.need))
$(call _binDI,ungantry) : $(call used,$(ungantry.need))
+ $(call _binDI,talkweb) : $(call used,$(talkweb.need))
$(call _binDI,tend) : $(call used,$(tend.need))
$(call _binDI,spots) : $(call used,$(spots.need))
|
|
From: <ik...@us...> - 2003-11-10 11:02:08
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv21237
Modified Files:
axis.c nrrd.h
Log Message:
renamed map to axmap, so that the VC6 compiler will not complain
Index: axis.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/axis.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** axis.c 12 Sep 2003 12:10:05 -0000 1.2
--- axis.c 10 Nov 2003 11:02:03 -0000 1.3
***************
*** 116,120 ****
*/
int
! nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin, const int *map, int bitflag) {
int d, from;
--- 116,120 ----
*/
int
! nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin, const int *axmap, int bitflag) {
int d, from;
***************
*** 127,136 ****
return 2;
}
! if (map) {
for (d=0; d<nout->dim; d++) {
! if (-1 == map[d]) {
continue;
}
! if (!AIR_IN_CL(0, map[d], nin->dim-1)) {
return 3;
}
--- 127,136 ----
return 2;
}
! if (axmap) {
for (d=0; d<nout->dim; d++) {
! if (-1 == axmap[d]) {
continue;
}
! if (!AIR_IN_CL(0, axmap[d], nin->dim-1)) {
return 3;
}
***************
*** 139,143 ****
for (d=0; d<nout->dim; d++) {
! from = map ? map[d] : d;
if (-1 == from) {
/* for this axis, we don't touch a thing */
--- 139,143 ----
for (d=0; d<nout->dim; d++) {
! from = axmap ? axmap[d] : d;
if (-1 == from) {
/* for this axis, we don't touch a thing */
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.119
retrieving revision 1.120
diff -C2 -d -r1.119 -r1.120
*** nrrd.h 30 Oct 2003 21:35:24 -0000 1.119
--- nrrd.h 10 Nov 2003 11:02:04 -0000 1.120
***************
*** 519,523 ****
/* axis.c */
extern int nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin,
! const int *map, int bitflag);
extern void nrrdAxisInfoSet_nva(Nrrd *nin, int axInfo, const void *info);
extern void nrrdAxisInfoSet(Nrrd *nin, int axInfo,
--- 519,523 ----
/* axis.c */
extern int nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin,
! const int *axmap, int bitflag);
extern void nrrdAxisInfoSet_nva(Nrrd *nin, int axInfo, const void *info);
extern void nrrdAxisInfoSet(Nrrd *nin, int axInfo,
|
|
From: <kin...@us...> - 2003-11-06 14:47:29
|
Update of /cvsroot/teem/teem/src/mite
In directory sc8-pr-cvs1:/tmp/cvs-serv23681/mite
Modified Files:
mite.h ray.c
Log Message:
added two-sided lighting to miter, accessible via miter -ns
Index: mite.h
===================================================================
RCS file: /cvsroot/teem/teem/src/mite/mite.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** mite.h 2 Oct 2003 03:35:24 -0000 1.21
--- mite.h 6 Nov 2003 14:47:25 -0000 1.22
***************
*** 128,135 ****
int normalSide, /* determines direction of gradient that is used
as normal for shading:
! 1 for normal pointing to lower values (higher
! values are more "inside"); -1 for normal
! pointing to higher values (low values more
! "inside") */
justSum, /* don't use opacity: just sum colors */
noDirLight; /* forget directional phong lighting, using only
--- 128,136 ----
int normalSide, /* determines direction of gradient that is used
as normal for shading:
! 1: normal points to lower values
! (higher values are more "inside");
! 0: "two-sided": dot-products are abs()'d
! -1: normal points to higher values
! (lower values more "inside") */
justSum, /* don't use opacity: just sum colors */
noDirLight; /* forget directional phong lighting, using only
Index: ray.c
===================================================================
RCS file: /cvsroot/teem/teem/src/mite/ray.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** ray.c 2 Sep 2003 01:48:17 -0000 1.14
--- ray.c 6 Nov 2003 14:47:25 -0000 1.15
***************
*** 63,69 ****
ELL_3V_SCALE(ad, ka, muu->lit->amb);
if (!muu->noDirLight && (kd || ks)) {
! ELL_3V_SCALE(N, -muu->normalSide, mtt->norm);
if (kd) {
LdotN = ELL_3V_DOT(muu->lit->dir[0], N);
if (LdotN > 0) {
ELL_3V_SCALE_ADD2(ad, 1.0, ad, LdotN*kd, muu->lit->col[0]);
--- 63,76 ----
ELL_3V_SCALE(ad, ka, muu->lit->amb);
if (!muu->noDirLight && (kd || ks)) {
! if (muu->normalSide) {
! ELL_3V_SCALE(N, -muu->normalSide, mtt->norm);
! } else {
! ELL_3V_COPY(N, mtt->norm);
! }
if (kd) {
LdotN = ELL_3V_DOT(muu->lit->dir[0], N);
+ if (!muu->normalSide) {
+ LdotN = AIR_ABS(LdotN);
+ }
if (LdotN > 0) {
ELL_3V_SCALE_ADD2(ad, 1.0, ad, LdotN*kd, muu->lit->col[0]);
***************
*** 75,78 ****
--- 82,88 ----
ELL_3V_NORM(H, H, tmp);
HdotN = ELL_3V_DOT(H, N);
+ if (!muu->normalSide) {
+ HdotN = AIR_ABS(HdotN);
+ }
if (HdotN > 0) {
HdotN = pow(HdotN, sp);
***************
*** 134,137 ****
--- 144,151 ----
mtt->mscl[miteSclNdotL] = -muu->normalSide*ELL_3V_DOT(mtt->norm,
muu->lit->dir[0]);
+ if (!muu->normalSide) {
+ mtt->mscl[miteSclNdotV] = AIR_ABS(mtt->mscl[miteSclNdotV]);
+ mtt->mscl[miteSclNdotL] = AIR_ABS(mtt->mscl[miteSclNdotL]);
+ }
ELL_3MV_MUL(kn, mtt->nPerp, mtt->V);
ELL_3V_NORM(kn, kn, len);
|
|
From: <kin...@us...> - 2003-11-06 14:47:29
|
Update of /cvsroot/teem/teem/src/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv23681/bin
Modified Files:
miter.c
Log Message:
added two-sided lighting to miter, accessible via miter -ns
Index: miter.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bin/miter.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** miter.c 2 Oct 2003 17:39:53 -0000 1.19
--- miter.c 6 Nov 2003 14:47:25 -0000 1.20
***************
*** 79,82 ****
--- 79,89 ----
"cubicdd:1,0", "second derivative kernel",
NULL, NULL, nrrdHestKernelSpec);
+ hestOptAdd(&hopt, "ns", "normal side", airTypeInt, 1, 1, &(muu->normalSide),
+ "1", "how to interpret gradients as normals:\n "
+ "\b\bo \"1\": normal points to lower values (higher == "
+ "more \"inside\")\n "
+ "\b\bo \"0\": \"two-sided\": dot-products are abs()'d\n "
+ "\b\bo \"-1\": normal points to higher values (lower == "
+ "more \"inside\")");
hestOptAdd(&hopt, "rn", NULL, airTypeBool, 0, 0, &renorm, NULL,
"renormalize kernel weights at each new sample location. "
|
|
From: <kin...@us...> - 2003-11-06 14:44:39
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv23328/nrrd
Modified Files:
nrrdEnums.h enumsNrrd.c arith.c
Log Message:
added nrrdUnaryOpRand, accessible via unu 1op rand
Index: nrrdEnums.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrdEnums.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** nrrdEnums.h 3 Oct 2003 19:20:33 -0000 1.38
--- nrrdEnums.h 6 Nov 2003 14:44:35 -0000 1.39
***************
*** 343,349 ****
nrrdUnaryOpSgn, /* 21 */
nrrdUnaryOpExists, /* 22 */
nrrdUnaryOpLast
};
! #define NRRD_UNARY_OP_MAX 22
--- 343,350 ----
nrrdUnaryOpSgn, /* 21 */
nrrdUnaryOpExists, /* 22 */
+ nrrdUnaryOpRand, /* 23 */
nrrdUnaryOpLast
};
! #define NRRD_UNARY_OP_MAX 23
Index: enumsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/enumsNrrd.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** enumsNrrd.c 30 Sep 2003 09:26:50 -0000 1.25
--- enumsNrrd.c 6 Nov 2003 14:44:35 -0000 1.26
***************
*** 611,614 ****
--- 611,615 ----
#define nuSgn nrrdUnaryOpSgn
#define nuExs nrrdUnaryOpExists
+ #define nuRnd nrrdUnaryOpRand
char
***************
*** 636,640 ****
"abs",
"sgn",
! "exists"
};
--- 637,642 ----
"abs",
"sgn",
! "exists",
! "rand"
};
***************
*** 663,667 ****
"absolute value",
"sign of value (-1, 0, or 1)",
! "value is not infinity or NaN"
};
--- 665,670 ----
"absolute value",
"sign of value (-1, 0, or 1)",
! "value is not infinity or NaN",
! "random value between 0 and 1"
};
***************
*** 690,693 ****
--- 693,697 ----
"sgn", "sign",
"exists",
+ "rand",
""
};
***************
*** 716,720 ****
nuAbs, nuAbs,
nuSgn, nuSgn,
! nuExs
};
--- 720,725 ----
nuAbs, nuAbs,
nuSgn, nuSgn,
! nuExs,
! nuRnd
};
Index: arith.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/arith.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** arith.c 12 Sep 2003 12:10:05 -0000 1.31
--- arith.c 6 Nov 2003 14:44:35 -0000 1.32
***************
*** 142,145 ****
--- 142,146 ----
return (a < 0.0 ? -1 : (a > 0.0 ? 1 : 0));}
double _nrrdUnaryOpExists(double a) {return AIR_EXISTS(a);}
+ double _nrrdUnaryOpRand(double a) {return airRand();} /* wacky! */
double (*_nrrdUnaryOp[NRRD_UNARY_OP_MAX+1])(double) = {
***************
*** 166,170 ****
_nrrdUnaryOpAbs,
_nrrdUnaryOpSgn,
! _nrrdUnaryOpExists
};
--- 167,172 ----
_nrrdUnaryOpAbs,
_nrrdUnaryOpSgn,
! _nrrdUnaryOpExists,
! _nrrdUnaryOpRand
};
|
|
From: <kin...@us...> - 2003-11-06 14:44:39
|
Update of /cvsroot/teem/teem/src/unrrdu
In directory sc8-pr-cvs1:/tmp/cvs-serv23328/unrrdu
Modified Files:
1op.c
Log Message:
added nrrdUnaryOpRand, accessible via unu 1op rand
Index: 1op.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/1op.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** 1op.c 23 Jul 2003 01:20:30 -0000 1.16
--- 1op.c 6 Nov 2003 14:44:35 -0000 1.17
***************
*** 44,48 ****
"\b\bo \"abs\": absolute value\n "
"\b\bo \"sgn\": -1, 0, 1 if value is <0, ==0, or >0\n "
! "\b\bo \"exists\": 1 iff not NaN or +/-Inf, 0 otherwise",
NULL, nrrdUnaryOp);
hestOptAdd(&opt, "t", "type", airTypeOther, 1, 1, &type, "default",
--- 44,49 ----
"\b\bo \"abs\": absolute value\n "
"\b\bo \"sgn\": -1, 0, 1 if value is <0, ==0, or >0\n "
! "\b\bo \"exists\": 1 iff not NaN or +/-Inf, 0 otherwise\n "
! "\b\bo \"rand\": random number in [0.0,1.0), no relation to input",
NULL, nrrdUnaryOp);
hestOptAdd(&opt, "t", "type", airTypeOther, 1, 1, &type, "default",
***************
*** 77,80 ****
--- 78,84 ----
} else {
ntmp = nin;
+ }
+ if (nrrdUnaryOpRand == op) {
+ airSrand();
}
if (nrrdArithUnaryOp(nout, op, ntmp)) {
|
|
From: <kin...@us...> - 2003-11-03 03:28:32
|
Update of /cvsroot/teem/teem/src/nrrd/test
In directory sc8-pr-cvs1:/tmp/cvs-serv2410/nrrd/test
Modified Files:
kv.c
Log Message:
fixed type of strlen() return in fprintf usage
Index: kv.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/test/kv.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** kv.c 30 Sep 2003 09:28:28 -0000 1.2
--- kv.c 3 Nov 2003 03:28:29 -0000 1.3
***************
*** 49,53 ****
if ((value = nrrdKeyValueGet(nrrd, key))) {
! fprintf(stderr, "%s: '%s':='%s' (%d)\n", me, key, value, strlen(value));
} else {
fprintf(stderr, "%s: value not found for key: %s\n", me, key);
--- 49,54 ----
if ((value = nrrdKeyValueGet(nrrd, key))) {
! fprintf(stderr, "%s: '%s':='%s' (%d)\n", me, key, value,
! (int)strlen(value));
} else {
fprintf(stderr, "%s: value not found for key: %s\n", me, key);
|
|
From: <kin...@us...> - 2003-10-30 21:35:28
|
Update of /cvsroot/teem/teem/src/unrrdu
In directory sc8-pr-cvs1:/tmp/cvs-serv26362/unrrdu
Modified Files:
TODO.txt cmedian.c
Log Message:
API CHANGE: nrrd:
nrrdCheapMedian now takes a new argument, "pad", which tells it to
pad the input by the radius of the filter, prior to filtering, and then
crops the output. Without this, the samples along the boundary are left
unprocessed. Note: this functionality has migrated from "unu cmedian"
down into nrrd.
"unu cmedian", on the other hand, has a new command-line flag, "-c",
which tells it to slice along axis 0, run filtering on all slices, and
then join the results together. I was too chicken to add this the nrrd
API directly, but it may migrate there.
Index: TODO.txt
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/TODO.txt,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** TODO.txt 17 Sep 2003 02:12:06 -0000 1.16
--- TODO.txt 30 Oct 2003 21:35:25 -0000 1.17
***************
*** 1,2 ****
--- 1,4 ----
+ examples of usage with the important unu commands
+
make "unu make" into a nrrd function
Index: cmedian.c
===================================================================
RCS file: /cvsroot/teem/teem/src/unrrdu/cmedian.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** cmedian.c 23 Jul 2003 01:20:30 -0000 1.14
--- cmedian.c 30 Oct 2003 21:35:25 -0000 1.15
***************
*** 38,43 ****
hestOpt *opt = NULL;
char *out, *err;
! Nrrd *nin, *ntmp, *nout;
! int bins, radius, pad, pret, mode;
airArray *mop;
float wght;
--- 38,43 ----
hestOpt *opt = NULL;
char *out, *err;
! Nrrd *nin, *nout, *ntmp, **mnout;
! int bins, radius, pad, pret, mode, chan, ni, nsize;
airArray *mop;
float wght;
***************
*** 64,67 ****
--- 64,71 ----
"overcome our cheapness and correctly "
"handle the border. Obviously, this takes more memory.");
+ hestOptAdd(&opt, "c", NULL, airTypeInt, 0, 0, &chan, NULL,
+ "Slice the input along axis 0, run filtering on all slices, "
+ "and join the results back together. This is the way you'd "
+ "want to process color (multi-channel) images or volumes.");
OPT_ADD_NIN(nin, "input nrrd");
OPT_ADD_NOUT(out, "output nrrd");
***************
*** 77,118 ****
airMopAdd(mop, nout, (airMopper)nrrdNuke, airMopAlways);
! if (pad) {
! ntmp=nrrdNew();
airMopAdd(mop, ntmp, (airMopper)nrrdNuke, airMopAlways);
! if (nrrdSimplePad(ntmp, nin, radius, nrrdBoundaryBleed)) {
airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error padding:\n%s", me, err);
airMopError(mop);
return 1;
}
! /* We want to free up memory now that we have a padded copy of the
! input. We can't nuke the input because that will be a memory
! error with nrrdNuke() called by hestParseFree() called by
! airMopOkay(), but we can empty it without any harm */
! nrrdEmpty(nin);
! }
! else {
! ntmp = nin;
! }
!
! if (nrrdCheapMedian(nout, ntmp, mode, radius, wght, bins)) {
! airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error doing cheap median:\n%s", me, err);
! airMopError(mop);
! return 1;
! }
!
! if (pad) {
! if (nrrdSimpleCrop(ntmp, nout, radius)) {
airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error cropping:\n%s", me, err);
airMopError(mop);
return 1;
}
- SAVE(out, ntmp, NULL);
- }
- else {
- SAVE(out, nout, NULL);
}
airMopOkay(mop);
--- 81,122 ----
airMopAdd(mop, nout, (airMopper)nrrdNuke, airMopAlways);
! if (chan) {
! nsize = nin->axis[0].size;
! mnout = (Nrrd **)calloc(nsize, sizeof(Nrrd));
! airMopAdd(mop, mnout, airFree, airMopAlways);
! ntmp = nrrdNew();
airMopAdd(mop, ntmp, (airMopper)nrrdNuke, airMopAlways);
! for (ni=0; ni<nsize; ni++) {
! if (nrrdSlice(ntmp, nin, 0, ni)) {
! airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error slicing input at pos = %d:\n%s",
! me, ni, err);
! airMopError(mop);
! return 1;
! }
! airMopAdd(mop, mnout[ni] = nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
! if (nrrdCheapMedian(mnout[ni], ntmp, pad, mode, radius, wght, bins)) {
! airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error doing cheap median:\n%s", me, err);
! airMopError(mop);
! return 1;
! }
! }
! if (nrrdJoin(nout, (const Nrrd**)mnout, nsize, 0, AIR_TRUE)) {
airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error doing final join:\n%s", me, err);
airMopError(mop);
return 1;
}
! } else {
! if (nrrdCheapMedian(nout, nin, pad, mode, radius, wght, bins)) {
airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways);
! fprintf(stderr, "%s: error doing cheap median:\n%s", me, err);
airMopError(mop);
return 1;
}
}
+
+ SAVE(out, nout, NULL);
airMopOkay(mop);
|
|
From: <kin...@us...> - 2003-10-30 21:35:28
|
Update of /cvsroot/teem/teem/src/ten
In directory sc8-pr-cvs1:/tmp/cvs-serv26362/ten
Modified Files:
miscTen.c
Log Message:
API CHANGE: nrrd:
nrrdCheapMedian now takes a new argument, "pad", which tells it to
pad the input by the radius of the filter, prior to filtering, and then
crops the output. Without this, the samples along the boundary are left
unprocessed. Note: this functionality has migrated from "unu cmedian"
down into nrrd.
"unu cmedian", on the other hand, has a new command-line flag, "-c",
which tells it to slice along axis 0, run filtering on all slices, and
then join the results together. I was too chicken to add this the nrrd
API directly, but it may migrate there.
Index: miscTen.c
===================================================================
RCS file: /cvsroot/teem/teem/src/ten/miscTen.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** miscTen.c 17 Oct 2003 07:00:37 -0000 1.18
--- miscTen.c 30 Oct 2003 21:35:25 -0000 1.19
***************
*** 265,269 ****
dparm[1] = 1.0; /* B-Spline kernel */
dparm[2] = 0.0;
! if (nrrdCheapMedian(ntmpA, nhist, AIR_FALSE, 2, 1.0, 1024)
|| nrrdSimpleResample(ntmpB, ntmpA,
nrrdKernelGaussian, gparm, &bins, NULL)
--- 265,269 ----
dparm[1] = 1.0; /* B-Spline kernel */
dparm[2] = 0.0;
! if (nrrdCheapMedian(ntmpA, nhist, AIR_TRUE, AIR_FALSE, 2, 1.0, 1024)
|| nrrdSimpleResample(ntmpB, ntmpA,
nrrdKernelGaussian, gparm, &bins, NULL)
|
|
From: <kin...@us...> - 2003-10-30 21:35:28
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv26362/nrrd
Modified Files:
filt.c nrrd.h
Log Message:
API CHANGE: nrrd:
nrrdCheapMedian now takes a new argument, "pad", which tells it to
pad the input by the radius of the filter, prior to filtering, and then
crops the output. Without this, the samples along the boundary are left
unprocessed. Note: this functionality has migrated from "unu cmedian"
down into nrrd.
"unu cmedian", on the other hand, has a new command-line flag, "-c",
which tells it to slice along axis 0, run filtering on all slices, and
then join the results together. I was too chicken to add this the nrrd
API directly, but it may migrate there.
Index: filt.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/filt.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** filt.c 12 Sep 2003 12:10:05 -0000 1.37
--- filt.c 30 Oct 2003 21:35:24 -0000 1.38
***************
*** 304,314 ****
*/
int
! nrrdCheapMedian(Nrrd *nout, const Nrrd *nin,
! int mode, int radius, float wght, int bins) {
char me[]="nrrdCheapMedian", func[]="cmedian", err[AIR_STRLEN_MED];
NrrdRange *range;
float *hist;
! if (!(nin && nout)) {
sprintf(err, "%s: got NULL pointer", me);
biffAdd(NRRD, err); return 1;
--- 304,317 ----
*/
int
! nrrdCheapMedian(Nrrd *_nout, const Nrrd *_nin,
! int pad, int mode,
! int radius, float wght, int bins) {
char me[]="nrrdCheapMedian", func[]="cmedian", err[AIR_STRLEN_MED];
NrrdRange *range;
float *hist;
+ Nrrd *nout, *nin;
+ airArray *mop;
! if (!(_nin && _nout)) {
sprintf(err, "%s: got NULL pointer", me);
biffAdd(NRRD, err); return 1;
***************
*** 322,335 ****
biffAdd(NRRD, err); return 1;
}
! if (!(AIR_IN_CL(1, nin->dim, 3))) {
sprintf(err, "%s: sorry, can only handle dim 1, 2, 3 (not %d)",
! me, nin->dim);
biffAdd(NRRD, err); return 1;
}
! if (nout == nin) {
sprintf(err, "%s: nout==nin disallowed", me);
biffAdd(NRRD, err); return 1;
}
! if (nrrdTypeBlock == nin->type) {
sprintf(err, "%s: can't filter nrrd type %s", me,
airEnumStr(nrrdType, nrrdTypeBlock));
--- 325,338 ----
biffAdd(NRRD, err); return 1;
}
! if (!(AIR_IN_CL(1, _nin->dim, 3))) {
sprintf(err, "%s: sorry, can only handle dim 1, 2, 3 (not %d)",
! me, _nin->dim);
biffAdd(NRRD, err); return 1;
}
! if (_nout == _nin) {
sprintf(err, "%s: nout==nin disallowed", me);
biffAdd(NRRD, err); return 1;
}
! if (nrrdTypeBlock == _nin->type) {
sprintf(err, "%s: can't filter nrrd type %s", me,
airEnumStr(nrrdType, nrrdTypeBlock));
***************
*** 337,349 ****
}
if (nrrdCopy(nout, nin)) {
! sprintf(err, "%s: failed to create copy of input", me);
! biffAdd(NRRD, err); return 1;
}
range = nrrdRangeNewSet(nin, nrrdBlind8BitRangeFalse);
if (!(hist = (float*)calloc(bins, sizeof(float)))) {
sprintf(err, "%s: couldn't allocate histogram (%d bins)", me, bins);
! biffAdd(NRRD, err); return 1;
}
if (!AIR_EXISTS(wght))
wght = 1.0;
--- 340,369 ----
}
+ mop = airMopNew();
+ /* set nin based on _nin */
+ airMopAdd(mop, nin=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
+ if (pad) {
+ airMopAdd(mop, nout=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
+ if (nrrdSimplePad(nin, _nin, radius, nrrdBoundaryBleed)) {
+ sprintf(err, "%s: trouble padding input", me);
+ biffAdd(NRRD, err); airMopError(mop); return 1;
+ }
+ } else {
+ if (nrrdCopy(nin, _nin)) {
+ sprintf(err, "%s: trouble copying input", me);
+ biffAdd(NRRD, err); airMopError(mop); return 1;
+ }
+ nout = _nout;
+ }
if (nrrdCopy(nout, nin)) {
! sprintf(err, "%s: failed to create initial copy of input", me);
! biffAdd(NRRD, err); airMopError(mop); return 1;
}
range = nrrdRangeNewSet(nin, nrrdBlind8BitRangeFalse);
if (!(hist = (float*)calloc(bins, sizeof(float)))) {
sprintf(err, "%s: couldn't allocate histogram (%d bins)", me, bins);
! biffAdd(NRRD, err); airMopError(mop); return 1;
}
+ airMopAdd(mop, hist, airFree, airMopAlways);
if (!AIR_EXISTS(wght))
wght = 1.0;
***************
*** 361,365 ****
sprintf(err, "%s: sorry, %d-dimensional median unimplemented",
me, nin->dim);
! biffAdd(NRRD, err); return 1;
}
--- 381,385 ----
sprintf(err, "%s: sorry, %d-dimensional median unimplemented",
me, nin->dim);
! biffAdd(NRRD, err); airMopError(mop); return 1;
}
***************
*** 368,376 ****
mode, radius, wght, bins)) {
sprintf(err, "%s:", me);
! biffAdd(NRRD, err); return 1;
}
nrrdPeripheralInit(nout);
! AIR_FREE(hist);
return 0;
}
--- 388,406 ----
mode, radius, wght, bins)) {
sprintf(err, "%s:", me);
! biffAdd(NRRD, err); airMopError(mop); return 1;
}
nrrdPeripheralInit(nout);
! /* set _nout based on nout */
! if (pad) {
! if (nrrdSimpleCrop(_nout, nout, radius)) {
! sprintf(err, "%s: trouble cropping output", me);
! biffAdd(NRRD, err); airMopError(mop); return 1;
! }
! } else {
! /* we've already set output in _nout == nout */
! }
!
! airMopOkay(mop);
return 0;
}
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.118
retrieving revision 1.119
diff -C2 -d -r1.118 -r1.119
*** nrrd.h 3 Oct 2003 10:58:24 -0000 1.118
--- nrrd.h 30 Oct 2003 21:35:24 -0000 1.119
***************
*** 763,767 ****
/* filt.c */
extern int nrrdCheapMedian(Nrrd *nout, const Nrrd *nin,
! int mode, int radius, float wght, int bins);
/*
--- 763,768 ----
/* filt.c */
extern int nrrdCheapMedian(Nrrd *nout, const Nrrd *nin,
! int pad, int mode,
! int radius, float wght, int bins);
/*
|
|
From: <kin...@us...> - 2003-10-30 21:35:27
|
Update of /cvsroot/teem/teem/src/bane
In directory sc8-pr-cvs1:/tmp/cvs-serv26362/bane
Modified Files:
gkmsOpac.c
Log Message:
API CHANGE: nrrd:
nrrdCheapMedian now takes a new argument, "pad", which tells it to
pad the input by the radius of the filter, prior to filtering, and then
crops the output. Without this, the samples along the boundary are left
unprocessed. Note: this functionality has migrated from "unu cmedian"
down into nrrd.
"unu cmedian", on the other hand, has a new command-line flag, "-c",
which tells it to slice along axis 0, run filtering on all slices, and
then join the results together. I was too chicken to add this the nrrd
API directly, but it may migrate there.
Index: gkmsOpac.c
===================================================================
RCS file: /cvsroot/teem/teem/src/bane/gkmsOpac.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** gkmsOpac.c 23 Jul 2003 01:20:26 -0000 1.8
--- gkmsOpac.c 30 Oct 2003 21:35:24 -0000 1.9
***************
*** 31,35 ****
hestOpt *opt = NULL;
char *outS, *perr, err[AIR_STRLEN_MED], *befS;
! Nrrd *ninfo, *nbef, *nout, *nmax, *npos, *nopac, *npadopac, *nmedpadopac;
airArray *mop;
int pret, radius, idim;
--- 31,35 ----
hestOpt *opt = NULL;
char *outS, *perr, err[AIR_STRLEN_MED], *befS;
! Nrrd *ninfo, *nbef, *nout, *nmax, *npos, *nopac;
airArray *mop;
int pret, radius, idim;
***************
*** 83,88 ****
airMopAdd(mop, npos=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
airMopAdd(mop, nopac=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
- airMopAdd(mop, npadopac=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
- airMopAdd(mop, nmedpadopac=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
airMopAdd(mop, nout=nrrdNew(), (airMopper)nrrdNuke, airMopAlways);
--- 83,86 ----
***************
*** 126,133 ****
}
if (radius) {
! if (nrrdSimplePad(npadopac, nopac, radius, nrrdBoundaryBleed)
! || nrrdCheapMedian(nmedpadopac, npadopac, AIR_FALSE, radius, 1.0, 2048)
! || nrrdSimpleCrop(nout, nmedpadopac, radius)) {
! sprintf(err, "%s: error in padding, median filtering, or cropping", me);
biffMove(BANE, err, NRRD); airMopError(mop); return 1;
}
--- 124,129 ----
}
if (radius) {
! if (nrrdCheapMedian(nout, nopac, AIR_TRUE, AIR_FALSE, radius, 1.0, 2048)) {
! sprintf(err, "%s: error in median filtering", me);
biffMove(BANE, err, NRRD); airMopError(mop); return 1;
}
|
|
From: <kin...@us...> - 2003-10-30 21:31:49
|
Update of /cvsroot/teem/teem/src In directory sc8-pr-cvs1:/tmp/cvs-serv25637 Modified Files: TODO.txt Log Message: the road ahead Index: TODO.txt =================================================================== RCS file: /cvsroot/teem/teem/src/TODO.txt,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TODO.txt 13 Sep 2003 05:51:55 -0000 1.14 --- TODO.txt 30 Oct 2003 21:31:46 -0000 1.15 *************** *** 1,2 **** --- 1,6 ---- + FAQ on teem coding standards + Banks's policy.txt: + - documenting cross-code assumptions and dependencies + image registration tool for small translational errors |
|
From: <kin...@us...> - 2003-10-30 21:30:58
|
Update of /cvsroot/teem/teem/src/ten/test In directory sc8-pr-cvs1:/tmp/cvs-serv25427/ten/test Modified Files: didthis2.txt Log Message: makes for a better demo of tend glyph Index: didthis2.txt =================================================================== RCS file: /cvsroot/teem/teem/src/ten/test/didthis2.txt,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** didthis2.txt 29 Jul 2003 01:58:30 -0000 1.6 --- didthis2.txt 30 Oct 2003 21:30:55 -0000 1.7 *************** *** 4,24 **** | emap -i - $CAM -o emap.nrrd ! alias DOIT tend glyph -emap emap.nrrd -bg 0.1 0.2 0.3 -sat 0 $CAM \ ! -ur -1.2 1.2 -vr -0.9 0.9 -or -atr 0 test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -rt -g b -is 720 540 -gsc 0.23 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-box.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -rt -g s -is 720 540 -gsc 0.29 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-sph.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -rt -g c -is 720 540 -gsc 0.25 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-cyl.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -rt -g q -is 720 540 -gsc 0.27 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-sqd.png & --- 4,24 ---- | emap -i - $CAM -o emap.nrrd ! alias DOIT tend glyph -rt -emap emap.nrrd -bg 0 0 0.15 -sat 0 $CAM \ ! -ur -1.2 1.2 -vr -0.9 0.9 -is 720 540 -or -atr 0 -ns 16 test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -g b -gsc 0.23 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-box.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -g s -gsc 0.29 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-sph.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -g c -gsc 0.25 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-cyl.png & test/tt -n 7 -p -0.45 0.2 -0.35 \ ! | DOIT -g q -gsc 0.27 \ | unu crop -min 0 0 0 -max 2 M M \ | unu quantize -b 8 -min 0 -max 1 -o tri-sqd.png & |
|
From: <kin...@us...> - 2003-10-30 21:30:14
|
Update of /cvsroot/teem/teem/src/air In directory sc8-pr-cvs1:/tmp/cvs-serv25280 Modified Files: miscAir.c Log Message: updated airTeemVersion and airTeemReleaseDate strings Index: miscAir.c =================================================================== RCS file: /cvsroot/teem/teem/src/air/miscAir.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** miscAir.c 17 Sep 2003 13:27:30 -0000 1.17 --- miscAir.c 30 Oct 2003 21:30:07 -0000 1.18 *************** *** 45,51 **** */ const char * ! airTeemVersion = "1.6 pre-release"; const char * ! airTeemReleaseDate = "17 Sept 2003"; /* --- 45,51 ---- */ const char * ! airTeemVersion = "1.7 pre-release"; const char * ! airTeemReleaseDate = "XX XXX 200X"; /* |
|
From: <kin...@us...> - 2003-10-29 18:49:33
|
Update of /cvsroot/teem/teem/src
In directory sc8-pr-cvs1:/tmp/cvs-serv32732
Modified Files:
release.txt
Log Message:
refined steps of doing release
Index: release.txt
===================================================================
RCS file: /cvsroot/teem/teem/src/release.txt,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** release.txt 18 Sep 2003 06:48:14 -0000 1.26
--- release.txt 29 Oct 2003 18:49:29 -0000 1.27
***************
*** 33,36 ****
--- 33,37 ----
| grep -v " hoover" | grep -v " _hoover" \
| grep -v " mite" | grep -v " _mite" \
+ | grep -v " alan" | grep -v " _alan" \
| grep -v " ten" | grep -v " _ten" \
| grep -v " echo" | grep -v " _echo"
***************
*** 52,57 ****
| grep -v " HOOVER" | grep -v " _HOOVER" \
| grep -v " MITE" | grep -v " _MITE" | grep -v "mite_" \
! | grep -v " TEN" | grep -v " _TEN" \
! | grep -v " ECHO" | grep -v " _ECHO"
2) Make sure it works
--- 53,59 ----
| grep -v " HOOVER" | grep -v " _HOOVER" \
| grep -v " MITE" | grep -v " _MITE" | grep -v "mite_" \
! | grep -v " ALAN" | grep -v " _ALAN" \
! | grep -v " ECHO" | grep -v " _ECHO" \
! | grep -v " TEN" | grep -v " _TEN"
2) Make sure it works
***************
*** 66,70 ****
With major releases, update the "teem" symlink.
mojojojo:
! setenv TEEM_ARCH darwin
setenv TEEM_PNG
setenv TEEM_ZLIB
--- 68,72 ----
With major releases, update the "teem" symlink.
mojojojo:
! setenv TEEM_ARCH darwin.32
setenv TEEM_PNG
setenv TEEM_ZLIB
***************
*** 74,77 ****
--- 76,90 ----
setenv TEEM_PNG_LPATH -L/home/sci/gk/usr/darwin/lib
setenv TEEM_PNG_IPATH -I/home/sci/gk/usr/darwin/include
+ tepin:
+ setenv TEEM_ARCH darwin.64
+ setenv TEEM_PNG
+ setenv TEEM_ZLIB
+ setenv TEEM_BZIP2
+ setenv TEEM_BZIP2_LPATH -L/sw/lib
+ setenv TEEM_BZIP2_IPATH -I/sw/include
+ setenv TEEM_ZLIB_LPATH -L/sw/lib
+ setenv TEEM_ZLIB_IPATH -I/sw/include
+ setenv TEEM_PNG_LPATH -L/sw/lib
+ setenv TEEM_PNG_IPATH -I/sw/include
carrot:
setenv TEEM_ARCH irix6.n32
***************
*** 127,156 ****
4) Create source-only tgz:
cvs -d /usr/sci/projects/teem/cvs co teem; cd teem
find . -name CVS -exec rm -rf {} \;
! cd ..; mv teem teem-${VERSION}
! tar czvf teem-${VERSION}.tgz teem-${VERSION}
! mv teem-${VERSION}.tgz ~/rel
5) Create Unix-ish binary builds (without src or docs):
for each TEEM_ARCH in:
irix6.n32 irix6.64 linux.32 linux.64 cygwin solaris darwin.32 darwin.64
! - ssh to some ARCH machine, copy teem-VERSION.tgz there if needed
- setenv TEEM_XXX for all the externals that it makes sense to
compile into the distributed statically linked binaries
! setenv VERSION <<version>>
! tar xzvf ~/rel/teem-${VERSION}.tgz
! cd teem-${VERSION}; setenv TEEM_DEST `pwd`
cd src; make; cd ..
mv src/LICENSE.txt .
yes | rm -rf README.txt cygwin darwin.32 darwin.64 irix6.64 irix6.n32 linux.32 linux.64 solaris win32 src
cd ..
! mv teem-${VERSION} teem-${VERSION}-${TEEM_ARCH}
! tar czvf teem-${VERSION}-${TEEM_ARCH}.tgz teem-${VERSION}-${TEEM_ARCH}
! mv teem-${VERSION}-${TEEM_ARCH}.tgz ~/rel
6) Create Windows binary builds.
! 7) Move all the binary builds to the web server
8) update online documentation (which may be done more often than releases)
--- 140,175 ----
4) Create source-only tgz:
+ setenv VERSION <<version>>
cvs -d /usr/sci/projects/teem/cvs co teem; cd teem
find . -name CVS -exec rm -rf {} \;
! cd ..; mv teem teem-${VERSION}-src
! tar czvf teem-${VERSION}-src.tar.gz teem-${VERSION}-src
! mv teem-${VERSION}-src.tar.gz ~/rel
5) Create Unix-ish binary builds (without src or docs):
for each TEEM_ARCH in:
irix6.n32 irix6.64 linux.32 linux.64 cygwin solaris darwin.32 darwin.64
! - ssh to some ARCH machine, copy teem-VERSION-src.tar.gz there if needed
- setenv TEEM_XXX for all the externals that it makes sense to
compile into the distributed statically linked binaries
! setenv VERSION 1.6.0
! tar xzvf ~/rel/teem-${VERSION}-src.tar.gz
! cd teem-${VERSION}-src; setenv TEEM_DEST `pwd`
cd src; make; cd ..
mv src/LICENSE.txt .
yes | rm -rf README.txt cygwin darwin.32 darwin.64 irix6.64 irix6.n32 linux.32 linux.64 solaris win32 src
cd ..
! mv teem-${VERSION}-src teem-${VERSION}-${TEEM_ARCH}
! tar czvf teem-${VERSION}-${TEEM_ARCH}.tar.gz teem-${VERSION}-${TEEM_ARCH}
! mv -f teem-${VERSION}-${TEEM_ARCH}.tar.gz ~/rel
! rm -rf teem-${VERSION}-${TEEM_ARCH}
6) Create Windows binary builds.
! 7) put the builds on sourceforge:
! cd ~/rel
! ftp upload.sourceforge.net
! ... binary ...
! ... cd incoming ...
8) update online documentation (which may be done more often than releases)
|
|
From: <kin...@us...> - 2003-10-29 18:02:16
|
Update of /cvsroot/teem/teemdoc/html/download
In directory sc8-pr-cvs1:/tmp/cvs-serv23658/download
Modified Files:
index.html
Log Message:
version 1.6.0 release
Index: index.html
===================================================================
RCS file: /cvsroot/teem/teemdoc/html/download/index.html,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** index.html 4 Oct 2003 04:56:00 -0000 1.15
--- index.html 29 Oct 2003 18:02:09 -0000 1.16
***************
*** 122,126 ****
<td align=left valign=middle>
<font size="+1">teem-1.6.0</font><br>
! <small>(Planned release: October 13, 2003)</small><br>
<td>
--- 122,141 ----
<td align=left valign=middle>
<font size="+1">teem-1.6.0</font><br>
! <small>(Released: October 28, 2003)</small><br>
!
! Source:
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-src.tar.gz?download">Unix</a> |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-src.zip?download">Windows</a>
!
! <br>
!
! Pre-built:
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-linux.32.tar.gz?download">32-bit GNU/Linux</a> |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-win32.zip?download">Windows</a> |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-cygwin.tar.gz?download">Cygwin</a> |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-darwin.32.tar.gz?download">32-bit Darwin</a> |
! Solaris |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-irix6.n32.tar.gz?download">Irix6.n32</a> |
! <a href="http://prdownloads.sourceforge.net/teem/teem-1.6.0-irix6.64.tar.gz?download">Irix6.64</a>
<td>
***************
*** 135,139 ****
<li> <a href="../ten/index.html"><b>ten</b></a>:
more diffusion tensor visualization and analysis, to support
! BioTensor.
</ul>
--- 150,155 ----
<li> <a href="../ten/index.html"><b>ten</b></a>:
more diffusion tensor visualization and analysis, to support
! new <a href="http://software.sci.utah.edu/scirun-biopse_1_20.html">BioTensor</a>
! stand-alone app built on top of SCIRun 1.20.
</ul>
|
|
From: <kin...@us...> - 2003-10-29 18:02:13
|
Update of /cvsroot/teem/teemdoc/html In directory sc8-pr-cvs1:/tmp/cvs-serv23658 Modified Files: index.html Log Message: version 1.6.0 release Index: index.html =================================================================== RCS file: /cvsroot/teem/teemdoc/html/index.html,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** index.html 29 Oct 2003 16:09:41 -0000 1.14 --- index.html 29 Oct 2003 18:02:09 -0000 1.15 *************** *** 69,75 **** <h2>NEWS</h2> <ul> <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 - <li> Sept 10, 2003: <b><a href="download/index.html">Teem Version 1.5.0 released</a></b> </ul> --- 69,75 ---- <h2>NEWS</h2> <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> |
|
From: <kin...@us...> - 2003-10-29 16:09:47
|
Update of /cvsroot/teem/teemdoc/html/tree In directory sc8-pr-cvs1:/tmp/cvs-serv28943/html/tree Modified Files: README.txt Log Message: pre-release text file update Index: README.txt =================================================================== RCS file: /cvsroot/teem/teemdoc/html/tree/README.txt,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** README.txt 5 Oct 2002 21:01:51 -0000 1.1.1.1 --- README.txt 29 Oct 2003 16:09:41 -0000 1.2 *************** *** 23,28 **** text of the GNU Lesser General Public License should be in the file "LICENSE.txt" in the "src" directory. See the web page at ! "html/lgpl.html" relative to this file for my understanding of exactly ! what the LGPL means for people wishing to use any of the teem libraries in their own programs. --- 23,28 ---- text of the GNU Lesser General Public License should be in the file "LICENSE.txt" in the "src" directory. See the web page at ! <http://teem.sourceforge.net/lgpl.html> for my understanding of ! exactly what the LGPL means for people wishing to use any of the teem libraries in their own programs. *************** *** 32,39 **** "irix6.n32": for irix in n32 mode "irix6.64": for irix in 64-bit mode ! "linux": for linux boxes "solaris": for solaris boxes "cygwin": if you have cygwin (www.cygwin.com) on a windows box ! "darwin": ona Mac OS X box 2: "cd src" --- 32,41 ---- "irix6.n32": for irix in n32 mode "irix6.64": for irix in 64-bit mode ! "linux.32": for 32-bit linux boxes ! "linux.64": for 64-bit linux boxes "solaris": for solaris boxes "cygwin": if you have cygwin (www.cygwin.com) on a windows box ! "darwin.32": on a 32-bit Mac OS X box ! "darwin.64": on a 64-bit Mac OS X box 2: "cd src" *************** *** 104,111 **** irix6.64/ irix6.n32/ ! linux/ solaris/ cygwin/ ! darwin/ The architecture-dependent directories, with a name which exactly matches valid settings for the environment variable TEEM_ARCH. --- 106,115 ---- irix6.64/ irix6.n32/ ! linux.32/ ! linux.64/ solaris/ cygwin/ ! darwin.32/ ! darwin.64/ The architecture-dependent directories, with a name which exactly matches valid settings for the environment variable TEEM_ARCH. |