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...> - 2004-02-19 04:02:55
|
Update of /cvsroot/teem/teem/src/mite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23368/mite Modified Files: mite.h Log Message: change from <lib>_export extern to TEEM_API Index: mite.h =================================================================== RCS file: /cvsroot/teem/teem/src/mite/mite.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** mite.h 13 Feb 2004 22:58:40 -0000 1.25 --- mite.h 19 Feb 2004 03:52:47 -0000 1.26 *************** *** 30,39 **** #include <teem/ten.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define mite_export __declspec(dllimport) - #else - #define mite_export - #endif - #ifdef __cplusplus extern "C" { --- 30,33 ---- *************** *** 329,377 **** /* defaultsMite.c */ ! extern mite_export const char *miteBiffKey; ! extern mite_export double miteDefRefStep; ! extern mite_export int miteDefRenorm; ! extern mite_export int miteDefNormalSide; ! extern mite_export double miteDefOpacNear1; ! extern mite_export double miteDefOpacMatters; /* kindnot.c */ ! extern mite_export airEnum *miteVal; ! extern mite_export gageKind *miteValGageKind; /* txf.c */ ! extern mite_export char miteRangeChar[MITE_RANGE_NUM]; ! extern void miteVariablePrint(char *buff, const gageQuerySpec *qsp); ! extern int miteVariableParse(gageQuerySpec *qsp, const char *label); ! extern int miteNtxfCheck(const Nrrd *ntxf); /* user.c */ ! extern miteUser *miteUserNew(); ! extern miteUser *miteUserNix(miteUser *muu); /* renderMite.c */ ! extern miteShadeSpec *miteShadeSpecNew(); ! extern miteShadeSpec *miteShadeSpecNix(miteShadeSpec *); ! extern int miteShadeParse(miteShadeSpec *shpec, char *shadeStr); ! extern int miteRenderBegin(miteRender **mrrP, miteUser *muu); ! extern int miteRenderEnd(miteRender *mrr, miteUser *muu); /* thread.c */ ! extern int miteThreadBegin(miteThread **mttP, miteRender *mrr, miteUser *muu, ! int whichThread); ! extern int miteThreadEnd(miteThread *mtt, miteRender *mrr, miteUser *muu); /* ray.c */ ! extern int miteRayBegin(miteThread *mtt, miteRender *mrr, miteUser *muu, ! int uIndex, int vIndex, ! double rayLen, ! double rayStartWorld[3], double rayStartIndex[3], ! double rayDirWorld[3], double rayDirIndex[3]); ! extern double miteSample(miteThread *mtt, miteRender *mrr, miteUser *muu, ! int num, double rayT, int inside, ! double samplePosWorld[3], ! double samplePosIndex[3]); ! extern int miteRayEnd(miteThread *mtt, miteRender *mrr, ! miteUser *muu); #ifdef __cplusplus --- 323,371 ---- /* defaultsMite.c */ ! TEEM_API const char *miteBiffKey; ! TEEM_API double miteDefRefStep; ! TEEM_API int miteDefRenorm; ! TEEM_API int miteDefNormalSide; ! TEEM_API double miteDefOpacNear1; ! TEEM_API double miteDefOpacMatters; /* kindnot.c */ ! TEEM_API airEnum *miteVal; ! TEEM_API gageKind *miteValGageKind; /* txf.c */ ! TEEM_API char miteRangeChar[MITE_RANGE_NUM]; ! TEEM_API void miteVariablePrint(char *buff, const gageQuerySpec *qsp); ! TEEM_API int miteVariableParse(gageQuerySpec *qsp, const char *label); ! TEEM_API int miteNtxfCheck(const Nrrd *ntxf); /* user.c */ ! TEEM_API miteUser *miteUserNew(); ! TEEM_API miteUser *miteUserNix(miteUser *muu); /* renderMite.c */ ! TEEM_API miteShadeSpec *miteShadeSpecNew(); ! TEEM_API miteShadeSpec *miteShadeSpecNix(miteShadeSpec *); ! TEEM_API int miteShadeParse(miteShadeSpec *shpec, char *shadeStr); ! TEEM_API int miteRenderBegin(miteRender **mrrP, miteUser *muu); ! TEEM_API int miteRenderEnd(miteRender *mrr, miteUser *muu); /* thread.c */ ! TEEM_API int miteThreadBegin(miteThread **mttP, miteRender *mrr, miteUser *muu, ! int whichThread); ! TEEM_API int miteThreadEnd(miteThread *mtt, miteRender *mrr, miteUser *muu); /* ray.c */ ! TEEM_API int miteRayBegin(miteThread *mtt, miteRender *mrr, miteUser *muu, ! int uIndex, int vIndex, ! double rayLen, ! double rayStartWorld[3], double rayStartIndex[3], ! double rayDirWorld[3], double rayDirIndex[3]); ! TEEM_API double miteSample(miteThread *mtt, miteRender *mrr, miteUser *muu, ! int num, double rayT, int inside, ! double samplePosWorld[3], ! double samplePosIndex[3]); ! TEEM_API int miteRayEnd(miteThread *mtt, miteRender *mrr, ! miteUser *muu); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 04:02:53
|
Update of /cvsroot/teem/teem/src/ell In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23368/ell Modified Files: ell.h Log Message: change from <lib>_export extern to TEEM_API Index: ell.h =================================================================== RCS file: /cvsroot/teem/teem/src/ell/ell.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** ell.h 7 Jan 2004 15:34:29 -0000 1.26 --- ell.h 19 Feb 2004 03:52:47 -0000 1.27 *************** *** 29,38 **** #include "ellMacros.h" - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define ell_export __declspec(dllimport) - #else - #define ell_export - #endif - #ifdef __cplusplus extern "C" { --- 29,32 ---- *************** *** 72,115 **** /* miscEll.c */ ! extern ell_export const char *ell_biff_key; ! extern ell_export int ell_debug; ! extern void ell_3m_print_f(FILE *f, float s[9]); ! extern void ell_3v_print_f(FILE *f, float s[3]); ! extern void ell_3m_print_d(FILE *f, double s[9]); ! extern void ell_3v_print_d(FILE *f, double s[3]); ! extern void ell_4m_print_f(FILE *f, float s[16]); ! extern void ell_4v_print_f(FILE *f, float s[4]); ! extern void ell_4m_print_d(FILE *f, double s[16]); ! extern void ell_4v_print_d(FILE *f, double s[4]); /* vecEll.c */ ! extern void ell_3v_perp_f(float p[3], float v[3]); ! extern void ell_3v_perp_d(double p[3], double v[3]); ! extern void ell_3mv_mul_f(float v2[3], float m[9], float v1[3]); ! extern void ell_3mv_mul_d(double v2[3], double m[9], double v1[3]); ! extern void ell_4mv_mul_f(float v2[4], float m[16], float v1[4]); ! extern void ell_4mv_mul_d(double v2[4], double m[16], double v1[4]); /* mat.c */ ! extern void ell_3m_mul_f(float m3[9], float m1[9], float m2[9]); ! extern void ell_3m_mul_d(double m3[9], double m1[9], double m2[9]); ! extern void ell_3m_pre_mul_f(float m[9], float x[9]); ! extern void ell_3m_pre_mul_d(double m[9], double x[9]); ! extern void ell_3m_post_mul_f(float m[9], float x[9]); ! extern void ell_3m_post_mul_d(double m[9], double x[9]); ! extern float ell_3m_det_f(float m[9]); ! extern double ell_3m_det_d(double m[9]); ! extern void ell_3m_inv_f(float i[9], float m[9]); ! extern void ell_3m_inv_d(double i[9], double m[9]); ! extern void ell_4m_mul_f(float m3[16], float m1[16], float m2[16]); ! extern void ell_4m_mul_d(double m3[16], double m1[16], double m2[16]); ! extern void ell_4m_pre_mul_f(float m[16], float x[16]); ! extern void ell_4m_pre_mul_d(double m[16], double x[16]); ! extern void ell_4m_post_mul_f(float m[16], float x[16]); ! extern void ell_4m_post_mul_d(double m[16], double x[16]); ! extern float ell_4m_det_f(float m[16]); ! extern double ell_4m_det_d(double m[16]); ! extern void ell_4m_inv_f(float i[16], float m[16]); ! extern void ell_4m_inv_d(double i[16], double m[16]); /* --- 66,109 ---- /* miscEll.c */ ! TEEM_API const char *ell_biff_key; ! TEEM_API int ell_debug; ! TEEM_API void ell_3m_print_f(FILE *f, float s[9]); ! TEEM_API void ell_3v_print_f(FILE *f, float s[3]); ! TEEM_API void ell_3m_print_d(FILE *f, double s[9]); ! TEEM_API void ell_3v_print_d(FILE *f, double s[3]); ! TEEM_API void ell_4m_print_f(FILE *f, float s[16]); ! TEEM_API void ell_4v_print_f(FILE *f, float s[4]); ! TEEM_API void ell_4m_print_d(FILE *f, double s[16]); ! TEEM_API void ell_4v_print_d(FILE *f, double s[4]); /* vecEll.c */ ! TEEM_API void ell_3v_perp_f(float p[3], float v[3]); ! TEEM_API void ell_3v_perp_d(double p[3], double v[3]); ! TEEM_API void ell_3mv_mul_f(float v2[3], float m[9], float v1[3]); ! TEEM_API void ell_3mv_mul_d(double v2[3], double m[9], double v1[3]); ! TEEM_API void ell_4mv_mul_f(float v2[4], float m[16], float v1[4]); ! TEEM_API void ell_4mv_mul_d(double v2[4], double m[16], double v1[4]); /* mat.c */ ! TEEM_API void ell_3m_mul_f(float m3[9], float m1[9], float m2[9]); ! TEEM_API void ell_3m_mul_d(double m3[9], double m1[9], double m2[9]); ! TEEM_API void ell_3m_pre_mul_f(float m[9], float x[9]); ! TEEM_API void ell_3m_pre_mul_d(double m[9], double x[9]); ! TEEM_API void ell_3m_post_mul_f(float m[9], float x[9]); ! TEEM_API void ell_3m_post_mul_d(double m[9], double x[9]); ! TEEM_API float ell_3m_det_f(float m[9]); ! TEEM_API double ell_3m_det_d(double m[9]); ! TEEM_API void ell_3m_inv_f(float i[9], float m[9]); ! TEEM_API void ell_3m_inv_d(double i[9], double m[9]); ! TEEM_API void ell_4m_mul_f(float m3[16], float m1[16], float m2[16]); ! TEEM_API void ell_4m_mul_d(double m3[16], double m1[16], double m2[16]); ! TEEM_API void ell_4m_pre_mul_f(float m[16], float x[16]); ! TEEM_API void ell_4m_pre_mul_d(double m[16], double x[16]); ! TEEM_API void ell_4m_post_mul_f(float m[16], float x[16]); ! TEEM_API void ell_4m_post_mul_d(double m[16], double x[16]); ! TEEM_API float ell_4m_det_f(float m[16]); ! TEEM_API double ell_4m_det_d(double m[16]); ! TEEM_API void ell_4m_inv_f(float i[16], float m[16]); ! TEEM_API void ell_4m_inv_d(double i[16], double m[16]); /* *************** *** 129,189 **** /* quat.c */ ! extern void ell_3m_to_q_f( float q[4], float m[9]); ! extern void ell_3m_to_q_d(double q[4], double m[9]); ! extern void ell_4m_to_q_f( float q[4], float m[16]); ! extern void ell_4m_to_q_d(double q[4], double m[16]); ! extern void ell_q_to_3m_f( float m[9], float q[4]); ! extern void ell_q_to_3m_d(double m[9], double q[4]); ! extern void ell_q_to_4m_f( float m[16], float q[4]); ! extern void ell_q_to_4m_d(double m[16], double q[4]); ! extern float ell_q_to_aa_f( float axis[3], float q[4]); ! extern double ell_q_to_aa_d(double axis[3], double q[4]); ! extern void ell_aa_to_q_f( float q[4], float angle, float axis[3]); ! extern void ell_aa_to_q_d(double q[4], double angle, double axis[3]); ! extern void ell_aa_to_3m_f( float m[9], float angle, float axis[3]); ! extern void ell_aa_to_3m_d(double m[9], double angle, double axis[3]); ! extern void ell_aa_to_4m_f( float m[16], float angle, float axis[3]); ! extern void ell_aa_to_4m_d(double m[16], double angle, double axis[3]); ! extern float ell_3m_to_aa_f( float axis[3], float m[9]); ! extern double ell_3m_to_aa_d(double axis[3], double m[9]); ! extern float ell_4m_to_aa_f( float axis[3], float m[16]); ! extern double ell_4m_to_aa_d(double axis[3], double m[16]); ! extern void ell_q_mul_f( float q3[4], float q1[4], float q2[4]); ! extern void ell_q_mul_d(double q3[4], double q1[4], double q2[4]); ! extern void ell_q_inv_f( float qi[4], float q[4]); ! extern void ell_q_inv_d(double qi[4], double q[4]); ! extern void ell_q_pow_f( float q2[4], float q1[4], float p); ! extern void ell_q_pow_d(double q2[4], double q1[4], double p); ! extern void ell_q_div_f( float q3[4], float q1[4], float q2[4]); ! extern void ell_q_div_d(double q3[4], double q1[4], double q2[4]); ! extern void ell_q_exp_f( float q2[4], float q1[4]); ! extern void ell_q_exp_d(double q2[4], double q1[4]); ! extern void ell_q_log_f( float q2[4], float q1[4]); ! extern void ell_q_log_d(double q2[4], double q1[4]); ! extern void ell_q_3v_rotate_f( float v2[3], float q[4], float v1[3]); ! extern void ell_q_3v_rotate_d(double v2[3], double q[4], double v1[3]); ! extern void ell_q_4v_rotate_f( float v2[4], float q[4], float v1[4]); ! extern void ell_q_4v_rotate_d(double v2[4], double q[4], double v1[4]); ! extern void ell_q_avg4_d(double avg[4], double eps, double wght[4], ! double q1[4], double q2[4], ! double q3[4], double q4[4]); /* genmat.c */ ! extern int ell_Nm_valid(Nrrd *mat); ! extern int ell_Nm_tran(Nrrd *dest, Nrrd *src); ! extern int ell_Nm_mul(Nrrd *dest, Nrrd *A, Nrrd *B); ! extern int ell_Nm_inv(Nrrd *dest, Nrrd *src); ! extern int ell_Nm_pseudo_inv(Nrrd *dest, Nrrd *src); /* cubic.c */ ! extern int ell_cubic(double root[3], double A, double B, double C, int newton); /* eigen.c */ ! extern void ell_3m_1d_nullspace_d(double ans[3], double n[9]); ! extern void ell_3m_2d_nullspace_d(double ans0[3], double ans1[3], double n[9]); ! extern int ell_3m_eigenvalues_d(double eval[3], double m[9], ! int newton); ! extern int ell_3m_eigensolve_d(double eval[3], double evec[9], double m[9], ! int newton); #ifdef __cplusplus --- 123,183 ---- /* quat.c */ ! TEEM_API void ell_3m_to_q_f( float q[4], float m[9]); ! TEEM_API void ell_3m_to_q_d(double q[4], double m[9]); ! TEEM_API void ell_4m_to_q_f( float q[4], float m[16]); ! TEEM_API void ell_4m_to_q_d(double q[4], double m[16]); ! TEEM_API void ell_q_to_3m_f( float m[9], float q[4]); ! TEEM_API void ell_q_to_3m_d(double m[9], double q[4]); ! TEEM_API void ell_q_to_4m_f( float m[16], float q[4]); ! TEEM_API void ell_q_to_4m_d(double m[16], double q[4]); ! TEEM_API float ell_q_to_aa_f( float axis[3], float q[4]); ! TEEM_API double ell_q_to_aa_d(double axis[3], double q[4]); ! TEEM_API void ell_aa_to_q_f( float q[4], float angle, float axis[3]); ! TEEM_API void ell_aa_to_q_d(double q[4], double angle, double axis[3]); ! TEEM_API void ell_aa_to_3m_f( float m[9], float angle, float axis[3]); ! TEEM_API void ell_aa_to_3m_d(double m[9], double angle, double axis[3]); ! TEEM_API void ell_aa_to_4m_f( float m[16], float angle, float axis[3]); ! TEEM_API void ell_aa_to_4m_d(double m[16], double angle, double axis[3]); ! TEEM_API float ell_3m_to_aa_f( float axis[3], float m[9]); ! TEEM_API double ell_3m_to_aa_d(double axis[3], double m[9]); ! TEEM_API float ell_4m_to_aa_f( float axis[3], float m[16]); ! TEEM_API double ell_4m_to_aa_d(double axis[3], double m[16]); ! TEEM_API void ell_q_mul_f( float q3[4], float q1[4], float q2[4]); ! TEEM_API void ell_q_mul_d(double q3[4], double q1[4], double q2[4]); ! TEEM_API void ell_q_inv_f( float qi[4], float q[4]); ! TEEM_API void ell_q_inv_d(double qi[4], double q[4]); ! TEEM_API void ell_q_pow_f( float q2[4], float q1[4], float p); ! TEEM_API void ell_q_pow_d(double q2[4], double q1[4], double p); ! TEEM_API void ell_q_div_f( float q3[4], float q1[4], float q2[4]); ! TEEM_API void ell_q_div_d(double q3[4], double q1[4], double q2[4]); ! TEEM_API void ell_q_exp_f( float q2[4], float q1[4]); ! TEEM_API void ell_q_exp_d(double q2[4], double q1[4]); ! TEEM_API void ell_q_log_f( float q2[4], float q1[4]); ! TEEM_API void ell_q_log_d(double q2[4], double q1[4]); ! TEEM_API void ell_q_3v_rotate_f( float v2[3], float q[4], float v1[3]); ! TEEM_API void ell_q_3v_rotate_d(double v2[3], double q[4], double v1[3]); ! TEEM_API void ell_q_4v_rotate_f( float v2[4], float q[4], float v1[4]); ! TEEM_API void ell_q_4v_rotate_d(double v2[4], double q[4], double v1[4]); ! TEEM_API void ell_q_avg4_d(double avg[4], double eps, double wght[4], ! double q1[4], double q2[4], ! double q3[4], double q4[4]); /* genmat.c */ ! TEEM_API int ell_Nm_valid(Nrrd *mat); ! TEEM_API int ell_Nm_tran(Nrrd *dest, Nrrd *src); ! TEEM_API int ell_Nm_mul(Nrrd *dest, Nrrd *A, Nrrd *B); ! TEEM_API int ell_Nm_inv(Nrrd *dest, Nrrd *src); ! TEEM_API int ell_Nm_pseudo_inv(Nrrd *dest, Nrrd *src); /* cubic.c */ ! TEEM_API int ell_cubic(double root[3], double A, double B, double C, int newton); /* eigen.c */ ! TEEM_API void ell_3m_1d_nullspace_d(double ans[3], double n[9]); ! TEEM_API void ell_3m_2d_nullspace_d(double ans0[3], double ans1[3], double n[9]); ! TEEM_API int ell_3m_eigenvalues_d(double eval[3], double m[9], ! int newton); ! TEEM_API int ell_3m_eigensolve_d(double eval[3], double evec[9], double m[9], ! int newton); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 04:01:38
|
Update of /cvsroot/teem/teem/src/ten In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23151/ten Modified Files: tendGlyph.c Log Message: added -nobg option to tend glyph PostScript output Index: tendGlyph.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/tendGlyph.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** tendGlyph.c 13 Feb 2004 23:00:09 -0000 1.23 --- tendGlyph.c 19 Feb 2004 03:51:31 -0000 1.24 *************** *** 52,56 **** tenGlyphParm *gparm; float bg[3]; ! int ires[2], slice[2]; /* so that command-line options can be read from file */ --- 52,56 ---- tenGlyphParm *gparm; float bg[3]; ! int ires[2], slice[2], nobg; /* so that command-line options can be read from file */ *************** *** 193,196 **** --- 193,199 ---- "scaling from screen space units to postscript units " "(in points)"); + hestOptAdd(&hopt, "nobg", NULL, airTypeInt, 0, 0, &nobg, NULL, + "(* postscript only *) " + "don't initially fill with background color"); /* ray-traced-specific options */ *************** *** 282,285 **** --- 285,289 ---- win->ps.lineWidth[limnEdgeTypeFrontFacet] = gparm->edgeWidth[2]; win->ps.creaseAngle = 70; + win->ps.noBackground = nobg; ELL_3V_COPY(win->ps.bg, bg); if (limnObjectRender(glyph, cam, win) |
|
From: <kin...@us...> - 2004-02-19 04:00:08
|
Update of /cvsroot/teem/teem/src/gage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22888 Modified Files: gage.h pvl.c scl.c sclanswer.c Log Message: change from <lib>_export extern to TEEM_API, also renamed gageSclCurvedness to gageSclTotalCurv, and added GAGE_QUERY_ADD and gageQueryAdd Index: gage.h =================================================================== RCS file: /cvsroot/teem/teem/src/gage/gage.h,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** gage.h 13 Feb 2004 22:56:15 -0000 1.59 --- gage.h 19 Feb 2004 03:50:02 -0000 1.60 *************** *** 31,40 **** #include <teem/nrrd.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define gage_export __declspec(dllimport) - #else - #define gage_export - #endif - #ifdef __cplusplus extern "C" { --- 31,34 ---- *************** *** 261,265 **** gageSclK1, /* 17: "k1", 1st principle curvature: GT[1] */ gageSclK2, /* 18: "k2", 2nd principle curvature (k2 <= k1): GT[1] */ ! gageSclCurvedness, /* 19: "cv", L2 norm(K1,K2) (not Koen.'s "C"): GT[1] */ gageSclShapeTrace, /* 20, "st", (K1+K2)/Curvedness: GT[1] */ gageSclShapeIndex, /* 21: "si", Koen.'s shape index, ("S"): GT[1] */ --- 255,259 ---- gageSclK1, /* 17: "k1", 1st principle curvature: GT[1] */ gageSclK2, /* 18: "k2", 2nd principle curvature (k2 <= k1): GT[1] */ ! gageSclTotalCurv, /* 19: "tc", L2 norm(K1,K2) (not Koen.'s "C"): GT[1] */ gageSclShapeTrace, /* 20, "st", (K1+K2)/Curvedness: GT[1] */ gageSclShapeIndex, /* 21: "si", Koen.'s shape index, ("S"): GT[1] */ *************** *** 449,452 **** --- 443,449 ---- p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3]; \ p[4] = q[4]; p[5] = q[5]; p[6] = q[6]; p[7] = q[7] + #define GAGE_QUERY_ADD(p, q) \ + p[0] |= q[0]; p[1] |= q[1]; p[2] |= q[2]; p[3] |= q[3]; \ + p[4] |= q[4]; p[5] |= q[5]; p[6] |= q[6]; p[7] |= q[7] #define GAGE_QUERY_EQUAL(p, q) \ (p[0] == q[0] && p[1] == q[1] && p[2] == q[2] && p[3] == q[3] \ *************** *** 583,600 **** /* defaultsGage.c */ ! extern gage_export const char *gageBiffKey; ! extern gage_export int gageDefVerbose; ! extern gage_export gage_t gageDefGradMagMin; ! extern gage_export gage_t gageDefGradMagCurvMin; ! extern gage_export int gageDefRenormalize; ! extern gage_export int gageDefCheckIntegrals; ! extern gage_export int gageDefNoRepadWhenSmaller; ! extern gage_export int gageDefK3Pack; ! extern gage_export gage_t gageDefDefaultSpacing; ! extern gage_export int gageDefCurvNormalSide; ! extern gage_export double gageDefKernelIntegralNearZero; ! extern gage_export int gageDefRequireAllSpacings; ! extern gage_export int gageDefRequireEqualCenters; ! extern gage_export int gageDefDefaultCenter; /* miscGage.c */ --- 580,597 ---- /* defaultsGage.c */ ! TEEM_API const char *gageBiffKey; ! TEEM_API int gageDefVerbose; ! TEEM_API gage_t gageDefGradMagMin; ! TEEM_API gage_t gageDefGradMagCurvMin; ! TEEM_API int gageDefRenormalize; ! TEEM_API int gageDefCheckIntegrals; ! TEEM_API int gageDefNoRepadWhenSmaller; ! TEEM_API int gageDefK3Pack; ! TEEM_API gage_t gageDefDefaultSpacing; ! TEEM_API int gageDefCurvNormalSide; ! TEEM_API double gageDefKernelIntegralNearZero; ! TEEM_API int gageDefRequireAllSpacings; ! TEEM_API int gageDefRequireEqualCenters; ! TEEM_API int gageDefDefaultCenter; /* miscGage.c */ *************** *** 602,658 **** gageProbe(): using biff is too heavy-weight for this, and the idea is that no ill should occur if the error is repeatedly ignored */ ! extern gage_export char gageErrStr[AIR_STRLEN_LARGE]; ! extern gage_export int gageErrNum; ! extern gage_export gage_t gageZeroNormal[3]; ! extern gage_export airEnum *gageKernel; ! extern void gageParmReset(gageParm *parm); ! extern void gagePointReset(gagePoint *point); ! extern gageItemSpec *gageItemSpecNew(void); ! extern gageItemSpec *gageItemSpecNix(gageItemSpec *isp); /* kind.c */ ! extern int gageKindCheck(gageKind *kind); ! extern int gageKindTotalAnswerLength(gageKind *kind); ! extern int gageKindAnswerOffset(gageKind *kind, int item); /* print.c */ ! extern void gageQueryPrint(FILE *file, gageKind *kind, gageQuery query); /* sclfilter.c */ ! extern void gageScl3PFilter2(gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); ! extern void gageScl3PFilter4(gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); ! extern void gageScl3PFilterN(int fd, ! gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); /* scl.c */ ! extern gage_export airEnum *gageScl; ! extern gage_export gageKind *gageKindScl; /* vecGage.c (together with vecprint.c, these contain everything to implement the "vec" kind, and could be used as examples of what it takes to create a new gageKind) */ ! extern gage_export airEnum *gageVec; ! extern gage_export gageKind *gageKindVec; /* shape.c */ ! extern void gageShapeReset(gageShape *shp); ! extern gageShape *gageShapeNew(); ! extern gageShape *gageShapeNix(gageShape *shape); ! extern int gageShapeSet(gageShape *shp, Nrrd *nin, int baseDim); ! extern void gageShapeUnitWtoI(gageShape *shape, ! double index[3], double world[3]); ! extern void gageShapeUnitItoW(gageShape *shape, ! double world[3], double index[3]); ! extern int gageShapeEqual(gageShape *shp1, char *name1, ! gageShape *shp2, char *name2); /* the organization of the next two files used to be according to --- 599,655 ---- gageProbe(): using biff is too heavy-weight for this, and the idea is that no ill should occur if the error is repeatedly ignored */ ! TEEM_API char gageErrStr[AIR_STRLEN_LARGE]; ! TEEM_API int gageErrNum; ! TEEM_API gage_t gageZeroNormal[3]; ! TEEM_API airEnum *gageKernel; ! TEEM_API void gageParmReset(gageParm *parm); ! TEEM_API void gagePointReset(gagePoint *point); ! TEEM_API gageItemSpec *gageItemSpecNew(void); ! TEEM_API gageItemSpec *gageItemSpecNix(gageItemSpec *isp); /* kind.c */ ! TEEM_API int gageKindCheck(gageKind *kind); ! TEEM_API int gageKindTotalAnswerLength(gageKind *kind); ! TEEM_API int gageKindAnswerOffset(gageKind *kind, int item); /* print.c */ ! TEEM_API void gageQueryPrint(FILE *file, gageKind *kind, gageQuery query); /* sclfilter.c */ ! TEEM_API void gageScl3PFilter2(gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); ! TEEM_API void gageScl3PFilter4(gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); ! TEEM_API void gageScl3PFilterN(int fd, ! gage_t *iv3, gage_t *iv2, gage_t *iv1, ! gage_t *fw00, gage_t *fw11, gage_t *fw22, ! gage_t *val, gage_t *gvec, gage_t *hess, ! int doV, int doD1, int doD2); /* scl.c */ ! TEEM_API airEnum *gageScl; ! TEEM_API gageKind *gageKindScl; /* vecGage.c (together with vecprint.c, these contain everything to implement the "vec" kind, and could be used as examples of what it takes to create a new gageKind) */ ! TEEM_API airEnum *gageVec; ! TEEM_API gageKind *gageKindVec; /* shape.c */ ! TEEM_API void gageShapeReset(gageShape *shp); ! TEEM_API gageShape *gageShapeNew(); ! TEEM_API gageShape *gageShapeNix(gageShape *shape); ! TEEM_API int gageShapeSet(gageShape *shp, Nrrd *nin, int baseDim); ! TEEM_API void gageShapeUnitWtoI(gageShape *shape, ! double index[3], double world[3]); ! TEEM_API void gageShapeUnitItoW(gageShape *shape, ! double world[3], double index[3]); ! TEEM_API int gageShapeEqual(gageShape *shp1, char *name1, ! gageShape *shp2, char *name2); /* the organization of the next two files used to be according to *************** *** 660,696 **** but that's just a complete mess now */ /* pvl.c */ ! extern int gageVolumeCheck(gageContext *ctx, Nrrd *nin, gageKind *kind); ! extern gagePerVolume *gagePerVolumeNew(gageContext *ctx, ! Nrrd *nin, gageKind *kind); ! extern gagePerVolume *gagePerVolumeNix(gagePerVolume *pvl); ! extern void gagePadderSet(gageContext *ctx, ! gagePerVolume *pvl, gagePadder_t *padder); ! extern void gageNixerSet(gageContext *ctx, ! gagePerVolume *pvl, gageNixer_t *nixer); ! extern gage_t *gageAnswerPointer(gageContext *ctx, ! gagePerVolume *pvl, int item); ! extern int gageQueryReset(gageContext *ctx, gagePerVolume *pvl); ! extern int gageQuerySet(gageContext *ctx, gagePerVolume *pvl, gageQuery query); ! extern int gageQueryItemOn(gageContext *ctx, gagePerVolume *pvl, int item); /* ctx.c */ ! extern gageContext *gageContextNew(); ! extern gageContext *gageContextCopy(gageContext *ctx); ! extern gageContext *gageContextNix(gageContext *ctx); ! extern void gageParmSet(gageContext *ctx, int which, gage_t val); ! extern int gagePerVolumeIsAttached(gageContext *ctx, gagePerVolume *pvl); ! extern int gagePerVolumeAttach(gageContext *ctx, gagePerVolume *pvl); ! extern int gagePerVolumeDetach(gageContext *ctx, gagePerVolume *pvl); ! extern int gageKernelSet(gageContext *ctx, ! int which, const NrrdKernel *k, double *kparm); ! extern void gageKernelReset(gageContext *ctx); ! extern int gageProbe(gageContext *ctx, gage_t x, gage_t y, gage_t z); /* update.c */ ! extern int gageUpdate(gageContext *ctx); /* st.c */ ! extern int gageStructureTensor(Nrrd *nout, Nrrd *nin, ! int dScale, int iScale, int dsmp); #ifdef __cplusplus --- 657,696 ---- but that's just a complete mess now */ /* pvl.c */ ! TEEM_API int gageVolumeCheck(gageContext *ctx, Nrrd *nin, gageKind *kind); ! TEEM_API gagePerVolume *gagePerVolumeNew(gageContext *ctx, ! Nrrd *nin, gageKind *kind); ! TEEM_API gagePerVolume *gagePerVolumeNix(gagePerVolume *pvl); ! TEEM_API void gagePadderSet(gageContext *ctx, ! gagePerVolume *pvl, gagePadder_t *padder); ! TEEM_API void gageNixerSet(gageContext *ctx, ! gagePerVolume *pvl, gageNixer_t *nixer); ! TEEM_API gage_t *gageAnswerPointer(gageContext *ctx, ! gagePerVolume *pvl, int item); ! TEEM_API int gageQueryReset(gageContext *ctx, gagePerVolume *pvl); ! TEEM_API int gageQuerySet(gageContext *ctx, gagePerVolume *pvl, ! gageQuery query); ! TEEM_API int gageQueryAdd(gageContext *ctx, gagePerVolume *pvl, ! gageQuery query); ! TEEM_API int gageQueryItemOn(gageContext *ctx, gagePerVolume *pvl, int item); /* ctx.c */ ! TEEM_API gageContext *gageContextNew(); ! TEEM_API gageContext *gageContextCopy(gageContext *ctx); ! TEEM_API gageContext *gageContextNix(gageContext *ctx); ! TEEM_API void gageParmSet(gageContext *ctx, int which, gage_t val); ! TEEM_API int gagePerVolumeIsAttached(gageContext *ctx, gagePerVolume *pvl); ! TEEM_API int gagePerVolumeAttach(gageContext *ctx, gagePerVolume *pvl); ! TEEM_API int gagePerVolumeDetach(gageContext *ctx, gagePerVolume *pvl); ! TEEM_API int gageKernelSet(gageContext *ctx, ! int which, const NrrdKernel *k, double *kparm); ! TEEM_API void gageKernelReset(gageContext *ctx); ! TEEM_API int gageProbe(gageContext *ctx, gage_t x, gage_t y, gage_t z); /* update.c */ ! TEEM_API int gageUpdate(gageContext *ctx); /* st.c */ ! TEEM_API int gageStructureTensor(Nrrd *nout, Nrrd *nin, ! int dScale, int iScale, int dsmp); #ifdef __cplusplus Index: pvl.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/pvl.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** pvl.c 13 Feb 2004 22:56:15 -0000 1.10 --- pvl.c 19 Feb 2004 03:50:02 -0000 1.11 *************** *** 284,287 **** --- 284,309 ---- int + gageQueryAdd(gageContext *ctx, gagePerVolume *pvl, gageQuery query) { + char me[]="gageQueryAdd", err[AIR_STRLEN_MED]; + + if (!( pvl )) { + sprintf(err, "%s: got NULL pointer", me); + biffAdd(GAGE, err); return 1; + } + if (pvl->thisIsACopy) { + sprintf(err, "%s: can't operate on a pervolume copy", me); + biffAdd(GAGE, err); return 1; + } + + GAGE_QUERY_ADD(pvl->query, query); + if (gageQuerySet(ctx, pvl, pvl->query)) { + sprintf(err, "%s: trouble", me); + biffAdd(GAGE, err); return 1; + } + + return 0; + } + + int gageQueryItemOn(gageContext *ctx, gagePerVolume *pvl, int item) { char me[]="gageQueryItemOn", err[AIR_STRLEN_MED]; Index: scl.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/scl.c,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** scl.c 13 Feb 2004 22:56:15 -0000 1.30 --- scl.c 19 Feb 2004 03:50:02 -0000 1.31 *************** *** 52,58 **** {gageScl2ndDD, 1, 2, {gageSclHessian, gageSclNormal, -1, -1, -1}, -1, -1}, {gageSclGeomTens, 1, 2, {gageSclHessian, gageSclNPerp, gageSclGradMag, -1, -1}, -1, -1}, ! {gageSclK1, 1, 2, {gageSclCurvedness, gageSclShapeTrace, -1, -1, -1}, -1, -1}, ! {gageSclK2, 1, 2, {gageSclCurvedness, gageSclShapeTrace, -1, -1, -1}, -1, -1}, ! {gageSclCurvedness, 1, 2, {gageSclGeomTens, -1, -1, -1, -1}, -1, -1}, {gageSclShapeTrace, 1, 2, {gageSclGeomTens, -1, -1, -1, -1}, -1, -1}, {gageSclShapeIndex, 1, 2, {gageSclK1, gageSclK2, -1, -1, -1}, -1, -1}, --- 52,58 ---- {gageScl2ndDD, 1, 2, {gageSclHessian, gageSclNormal, -1, -1, -1}, -1, -1}, {gageSclGeomTens, 1, 2, {gageSclHessian, gageSclNPerp, gageSclGradMag, -1, -1}, -1, -1}, ! {gageSclK1, 1, 2, {gageSclTotalCurv, gageSclShapeTrace, -1, -1, -1}, -1, -1}, ! {gageSclK2, 1, 2, {gageSclTotalCurv, gageSclShapeTrace, -1, -1, -1}, -1, -1}, ! {gageSclTotalCurv, 1, 2, {gageSclGeomTens, -1, -1, -1, -1}, -1, -1}, {gageSclShapeTrace, 1, 2, {gageSclGeomTens, -1, -1, -1, -1}, -1, -1}, {gageSclShapeIndex, 1, 2, {gageSclK1, gageSclK2, -1, -1, -1}, -1, -1}, *************** *** 86,90 **** "kappa1", "kappa2", ! "curvedness", "shape trace", "shape index", --- 86,90 ---- "kappa1", "kappa2", ! "total curvature", "shape trace", "shape index", *************** *** 118,123 **** "1st principal curvature (K1)", "2nd principal curvature (K2)", ! "curvedness (L2 norm of K1, K2)", ! "shape trace = (K1+K2)/curvedness", "Koenderink's shape index", "mean curvature = (K1+K2)/2", --- 118,123 ---- "1st principal curvature (K1)", "2nd principal curvature (K2)", ! "total curvature (L2 norm of K1, K2)", ! "shape trace = (K1+K2)/(total curvature)", "Koenderink's shape index", "mean curvature = (K1+K2)/2", *************** *** 150,154 **** gageSclK1, gageSclK2, ! gageSclCurvedness, gageSclShapeTrace, gageSclShapeIndex, --- 150,154 ---- gageSclK1, gageSclK2, ! gageSclTotalCurv, gageSclShapeTrace, gageSclShapeIndex, *************** *** 179,183 **** #define GS_K1 gageSclK1 #define GS_K2 gageSclK2 ! #define GS_CV gageSclCurvedness #define GS_ST gageSclShapeTrace #define GS_SI gageSclShapeIndex --- 179,183 ---- #define GS_K1 gageSclK1 #define GS_K2 gageSclK2 ! #define GS_TC gageSclTotalCurv #define GS_ST gageSclShapeTrace #define GS_SI gageSclShapeIndex *************** *** 210,214 **** "k1", "kap1", "kappa1", "k2", "kap2", "kappa2", ! "cv", "curvedness", "st", "shape trace", "si", "shape index", --- 210,214 ---- "k1", "kap1", "kappa1", "k2", "kap2", "kappa2", ! "total curv", "totalcurv", "total curvature", "tc", "cv", "curvedness", "st", "shape trace", "si", "shape index", *************** *** 242,246 **** GS_K1, GS_K1, GS_K1, GS_K2, GS_K2, GS_K2, ! GS_CV, GS_CV, GS_ST, GS_ST, GS_SI, GS_SI, --- 242,246 ---- GS_K1, GS_K1, GS_K1, GS_K2, GS_K2, GS_K2, ! GS_TC, GS_TC, GS_TC, GS_TC, GS_TC, GS_TC, GS_ST, GS_ST, GS_SI, GS_SI, Index: sclanswer.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/sclanswer.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** sclanswer.c 13 Feb 2004 23:12:52 -0000 1.16 --- sclanswer.c 19 Feb 2004 03:50:02 -0000 1.17 *************** *** 140,145 **** } } ! if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclCurvedness)) { ! curv = pvl->directAnswer[gageSclCurvedness][0] = ELL_3M_FROB(gten); } if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclShapeTrace)) { --- 140,145 ---- } } ! if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclTotalCurv)) { ! curv = pvl->directAnswer[gageSclTotalCurv][0] = ELL_3M_FROB(gten); } if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclShapeTrace)) { |
|
From: <kin...@us...> - 2004-02-19 03:56:59
|
Update of /cvsroot/teem/teem/src/bane In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22355 Modified Files: GNUmakefile bane.h clip.c defaultsBane.c gkmsFlotsam.c gkmsHvol.c hvol.c inc.c measr.c methodsBane.c privateBane.h rangeBane.c valid.c Log Message: INCOMPLETE RE-WRITE. NON_FUNCTIONALcvs diff | & more! Sorry. Index: GNUmakefile =================================================================== RCS file: /cvsroot/teem/teem/src/bane/GNUmakefile,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** GNUmakefile 7 Jan 2004 15:34:27 -0000 1.13 --- GNUmakefile 19 Feb 2004 03:46:51 -0000 1.14 *************** *** 47,56 **** $(L).PUBLIC_HEADERS = bane.h $(L).PRIVATE_HEADERS = privateBane.h ! $(L).OBJS = defaultsBane.o rangeBane.o inc.o clip.o measr.o valid.o \ ! methodsBane.o trnsf.o scat.o hvol.o trex.o \ gkmsHvol.o gkmsScat.o gkmsInfo.o gkmsPvg.o gkmsOpac.o \ ! gkmsMite.o gkmsFlotsam.o gkmsTxf.o $(L).TESTS = test/tinfo test/sigma test/pos \ ! test/opac test/tblah #### #### --- 47,57 ---- $(L).PUBLIC_HEADERS = bane.h $(L).PRIVATE_HEADERS = privateBane.h ! $(L).OBJS = defaultsBane.o rangeBane.o inc.o clip.o measr.o methodsBane.o \ ! valid.o trnsf.o scat.o hvol.o trex.o \ ! gkmsFlotsam.o \ gkmsHvol.o gkmsScat.o gkmsInfo.o gkmsPvg.o gkmsOpac.o \ ! gkmsMite.o gkmsTxf.o $(L).TESTS = test/tinfo test/sigma test/pos \ ! test/opac #### #### Index: bane.h =================================================================== RCS file: /cvsroot/teem/teem/src/bane/bane.h,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** bane.h 16 Jan 2004 17:35:11 -0000 1.42 --- bane.h 19 Feb 2004 03:46:51 -0000 1.43 *************** *** 32,41 **** #include <teem/gage.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define bane_export __declspec(dllimport) - #else - #define bane_export - #endif - #ifdef __cplusplus extern "C" { --- 32,35 ---- *************** *** 45,60 **** /* ! ** The idea is that the baneRange, baneInc, baneClip, and baneMeasr, ! ** structs, and the pointers to them declared below, are glorified ! ** constants. There is certainly nothing dynamically allocated in any ! ** of them. All the parameters to these things (the various double ! ** *xxxParm arrays) are kept in things which are dynamically allocated ! ** by the user. */ /* -------------------------- ranges -------------------------- */ /* ! ******** baneRange..._e enum ** ** Range: nature of the values generated by a measure- are they --- 39,53 ---- /* ! ******** #define BANE_PARM_NUM ! ** ! ** maximum number of parameters that may be needed by a baneInc, baneClip... */ + #define BANE_PARM_NUM 5 + /* -------------------------- ranges -------------------------- */ /* ! ******** baneRange... enum ** ** Range: nature of the values generated by a measure- are they *************** *** 64,68 **** ** value). ** ! ** The job of the ans() function in the range is not to exclude ** any data. Indeed, if the range is set correctly for the type ** of data used, then range->ans() should always return a range --- 57,61 ---- ** value). ** ! ** The job of the answer() function in the range is not to exclude ** any data. Indeed, if the range is set correctly for the type ** of data used, then range->ans() should always return a range *************** *** 73,86 **** */ enum { ! baneRangeUnknown_e, /* 0: nobody knows */ ! baneRangePos_e, /* 1: always positive: enforce that min == 0 */ ! baneRangeNeg_e, /* 2: always negative: enforce that max == 0 */ ! baneRangeZeroCent_e, /* 3: positive and negative, centered around ! zero: enforce (conservative) centering of ! interval around 0 */ ! baneRangeFloat_e, /* 4: anywhere: essentially a no-op */ ! baneRangeLast_e }; ! #define BANE_RANGE_MAX 4 /* ******** baneRange struct --- 66,79 ---- */ enum { ! baneRangeUnknown, /* 0: nobody knows */ ! baneRangePositive, /* 1: always positive: enforce that min == 0 */ ! baneRangeNegative, /* 2: always negative: enforce that max == 0 */ ! baneRangeZeroCentered, /* 3: positive and negative, centered around ! zero: enforce (conservative) centering of ! interval around 0 */ ! baneRangeAnywhere, /* 4: anywhere: essentially a no-op */ ! baneRangeLast }; ! /* ******** baneRange struct *************** *** 90,96 **** typedef struct { char name[AIR_STRLEN_SMALL]; ! int which; ! int (*ans)(double *ominP, double *omaxP, ! double imin, double imax); } baneRange; --- 83,92 ---- typedef struct { char name[AIR_STRLEN_SMALL]; ! int type; ! double center; /* for baneRangeAnywhere: nominal center of value range ! NOTE: there is currently no API for setting this, ! it has to be set manually */ ! int (*answer)(double *ominP, double *omaxP, ! double imin, double imax); } baneRange; *************** *** 98,106 **** /* ! ******** baneInc..._e enum ** ** Inc: methods for determing what range of measured values deserves ** to be included along one axes of a histogram volume. Each ! ** inclusion method has some parameters (at most BANE_INC_PARM_NUM) ** which are (or can be harmlessly cast to) floats. Some of them need ** a histogram (a Nrrd) in order to determine the new min and max, --- 94,102 ---- /* ! ******** baneInc... enum ** ** Inc: methods for determing what range of measured values deserves ** to be included along one axes of a histogram volume. Each ! ** inclusion method has some parameters (at most BANE_PARM_NUM) ** which are (or can be harmlessly cast to) floats. Some of them need ** a histogram (a Nrrd) in order to determine the new min and max, *************** *** 109,153 **** ** To make matters confusing, the behavior of some of these varies with ** the baneRange they are associated with... */ enum { ! baneIncUnknown_e, /* 0: nobody knows */ ! baneIncAbsolute_e, /* 1: within explicitly specified bounds ! incParm[0]: new min ! incParm[1]: new max */ ! baneIncRangeRatio_e, /* 2: some fraction of the total range ! incParm[0]: scales the size of the range ! after it has been sent through the ! associated range function. ! incParm[1]: (optional) for baneRangeFloat: ! midpoint of scaling; if doesn't exist, ! average of min and max is used. For all ! other range types, 0 is always used. */ ! baneIncPercentile_e, /* 3: exclude some percentile ! incParm[0]: resolution of histogram ! generated ! incParm[1]: PERCENT of hits to throw away, ! by nibbling away at lower and upper ends of ! range, in a manner dependant on the range ! type ! incParm[2]: (optional) for baneRangeFloat, ! center value that we nibble towards. If it ! doesn't exist, we use the average of the ! min and max (though perhaps the mode value ! would be better). For all other range ! types, we nibble towards 0. */ ! baneIncStdv_e, /* 4: some multiple of the standard deviation ! incParm[0]: range is standard deviation ! times this ! incParm[1]: (optional) for baneRangeFloat: ! if exists, the midpoint of the range, ! otherwise the mean is used. For all other ! range types, the range is positioned in the ! logical way. */ ! baneIncLast_e }; - #define BANE_INC_MAX 4 - #define BANE_INC_PARM_NUM 3 - - typedef void (baneIncPass)(Nrrd *hist, double val, double *incParm); /* --- 105,132 ---- ** To make matters confusing, the behavior of some of these varies with ** the baneRange they are associated with... + ** + ** As version 1.7, the incParm[] is no longer used to communicate the + ** center of a baneRangeAnywhere- that is now (as it should be) in + ** the baneRange itself. */ enum { ! baneIncUnknown, /* 0: nobody knows */ ! baneIncAbsolute, /* 1: within explicitly specified bounds ! -- incParm[0]: new min ! -- incParm[1]: new max */ ! baneIncRangeRatio, /* 2: some fraction of the total range ! -- incParm[0]: scales the size of the range, after ! it has been sent through the associated range ! function. */ ! baneIncPercentile, /* 3: exclude some percentile ! -- incParm[0]: resolution of histogram generated ! -- incParm[1]: PERCENT of hits to throw away, ! by nibbling away at lower and upper ends of ! range, in a manner dependant on the range type */ ! baneIncStdv, /* 4: some multiple of the standard deviation ! -- incParm[0]: range is standard deviation ! times this */ ! baneIncLast }; /* *************** *** 157,170 **** ** from histNew should be eventually passed to nrrdNuke. */ ! typedef struct { char name[AIR_STRLEN_SMALL]; ! int which; ! int numParm; /* assumed length of incParm in this ans() */ ! Nrrd *(*histNew)(double *incParm); ! baneIncPass *passA; ! baneIncPass *passB; ! int (*ans)(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range); } baneInc; --- 136,149 ---- ** from histNew should be eventually passed to nrrdNuke. */ ! typedef struct baneInc_t { char name[AIR_STRLEN_SMALL]; ! int type; ! double S, SS; int num; /* used for calculating standard dev */ ! Nrrd *nhist; ! baneRange *range; ! double parm[BANE_PARM_NUM]; ! void (*process[2])(struct baneInc_t *inc, double val); ! int (*answer)(double *minP, double *maxP, ! Nrrd *hist, double *parm, baneRange *range); } baneInc; *************** *** 172,176 **** /* ! ******** baneClip..._e enum ** ** Clip: how to map values in the "raw" histogram volume to the more --- 151,155 ---- /* ! ******** baneClip... enum ** ** Clip: how to map values in the "raw" histogram volume to the more *************** *** 180,192 **** */ enum { ! baneClipUnknown_e, /* 0: nobody knows */ ! baneClipAbsolute_e, /* 1: clip at explicitly specified bin count */ ! baneClipPeakRatio_e, /* 2: some fraction of maximum #hits in any bin */ ! baneClipPercentile_e, /* 3: percentile of values, sorted by hits */ ! baneClipTopN_e, /* 4: ignore the N bins with the highest counts */ baneClipLast }; ! #define BANE_CLIP_MAX 4 ! #define BANE_CLIP_PARM_NUM 1 /* ******** baneClip struct --- 159,170 ---- */ enum { ! baneClipUnknown, /* 0: nobody knows */ ! baneClipAbsolute, /* 1: clip at explicitly specified bin count */ ! baneClipPeakRatio, /* 2: some fraction of maximum #hits in any bin */ ! baneClipPercentile, /* 3: percentile of values, sorted by hits */ ! baneClipTopN, /* 4: ignore the N bins with the highest counts */ baneClipLast }; ! /* ******** baneClip struct *************** *** 196,202 **** typedef struct { char name[AIR_STRLEN_SMALL]; ! int which; ! int numParm; /* assumed length of clipParm in this ans() */ ! int (*ans)(Nrrd *hvol, double *clipParm); } baneClip; --- 174,180 ---- typedef struct { char name[AIR_STRLEN_SMALL]; ! int type; ! double parm[BANE_PARM_NUM]; ! int (*answer)(int *countP, Nrrd *hvol, double *clipParm); } baneClip; *************** *** 204,208 **** /* ! ******** baneMeasr..._e enum ** ** Measr: one of the kind of measurement which determines location along --- 182,186 ---- /* ! ******** baneMeasr... enum ** ** Measr: one of the kind of measurement which determines location along *************** *** 222,242 **** ** that eventually I'll want to do things which modify/combine those ** values in a parameter-controlled way, something which will never be ! ** in gage. Hence the measrParm arrays, even though nothing currently ** uses them. */ enum { ! baneMeasrUnknown_e, /* 0: nobody knows */ ! baneMeasrVal_e, /* 1: the data value */ ! baneMeasrGradMag_e, /* 2: gradient magnitude */ ! baneMeasrLapl_e, /* 3: Laplacian */ ! baneMeasrHess_e, /* 4: Hessian-based measure of 2nd DD along ! gradient */ ! baneMeasrCurvedness_e, /* 5: L2 norm of K1, K2 principal curvatures ! (gageSclCurvedness) */ ! baneMeasrShapeTrace_e, /* 6: shape indicator (gageSclShapeTrace) */ baneMeasrLast }; ! #define BANE_MEASR_MAX 6 ! #define BANE_MEASR_PARM_NUM 1 /* ******** baneMeasr struct --- 200,225 ---- ** that eventually I'll want to do things which modify/combine those ** values in a parameter-controlled way, something which will never be ! ** in gage. Hence the parm array, even though nothing currently ** uses them. */ enum { ! baneMeasrUnknown, /* 0: nobody knows */ ! baneMeasrValuePositive, /* 1: the data value, with positive range ! (gageSclValue) */ ! baneMeasrValueZeroCentered, /* 2: the data value, with zero-centered range ! (gageSclValue) */ ! baneMeasrValueAnywhere, /* 3: the data value, with anywhere range ! (gageSclValue) */ ! baneMeasrGradMag, /* 4: gradient magnitude (gageSclGradMag) */ ! baneMeasrLaplacian, /* 5: Laplacian (gageSclLaplacian) */ ! baneMeasr2ndDD, /* 6: Hessian-based measure of 2nd DD along ! gradient (gageScl2ndDD) */ ! baneMeasrTotalCurv, /* 7: L2 norm of K1, K2 principal curvatures ! (gageSclTotalCurv) */ ! baneMeasrFlowlineCurv, /* 8: curvature of normal streamline ! (gageSclFlowlineCurv) */ baneMeasrLast }; ! /* ******** baneMeasr struct *************** *** 244,256 **** ** things used to calculate and describe measurements */ ! typedef struct { char name[AIR_STRLEN_SMALL]; ! int which; ! int numParm; /* assumed length of measrParm in this ans() */ ! int query; /* the gageScl query needed for this measure. ! Does not need to be the recursive ! prerequisite expansion). */ baneRange *range; ! float (*ans)(gage_t *, double *measrParm); } baneMeasr; --- 227,239 ---- ** things used to calculate and describe measurements */ ! typedef struct baneMeasr_t { char name[AIR_STRLEN_SMALL]; ! int type; ! double parm[BANE_PARM_NUM]; ! gageQuery query; /* the gageScl query needed for this measure, ! but NOT its recursive prerequisite expansion). */ baneRange *range; ! int offset0; ! double (*answer)(struct baneMeasr_t *, gage_t *, double *parm); } baneMeasr; *************** *** 262,274 **** ** Information for how to do measurement and inclusion along each axis ** of the histogram volume. - ** - ** No dynamically allocated stuff in here!! */ typedef struct { int res; /* resolution = number of bins */ baneMeasr *measr; - double measrParm[BANE_MEASR_PARM_NUM]; baneInc *inc; - double incParm[BANE_INC_PARM_NUM]; } baneAxis; --- 245,253 ---- *************** *** 276,392 **** ******** baneHVolParm struct ** ! ** Information for how to create a histogram volume. NB: We have an ! ** array of baneAxis structs, not pointers to them. baneHVolParmNew ! ** does initialization of them. ** - ** No dynamically allocated stuff in here!! */ typedef struct { ! int verbose; /* status messages to stderr */ ! int makeMeasrVol; /* create a 3 x X x Y x Z volume of measurements, so that they aren't measured (as many as) three times */ ! Nrrd *measrVol; ! int measrVolDone; /* values in measrVol are filled */ ! baneAxis ax[3]; /* NB: not pointers to baneAxis */ ! int k3pack; ! int renormalize; /* use gage's mask renormalization */ const NrrdKernel *k[GAGE_KERNEL_NUM]; double kparm[GAGE_KERNEL_NUM][NRRD_KERNEL_PARMS_NUM]; baneClip *clip; - double clipParm[BANE_CLIP_PARM_NUM]; double incLimit; /* lowest permissible fraction of the data remaining after new inclusion has been determined */ } baneHVolParm; /* defaultsBane.c */ ! extern bane_export const char *baneBiffKey; ! extern bane_export int baneDefVerbose; ! extern bane_export int baneDefMakeMeasrVol; ! extern bane_export float baneDefIncLimit; ! extern bane_export int baneDefRenormalize; ! extern bane_export int baneDefPercHistBins; ! extern bane_export int baneStateHistEqBins; ! extern bane_export int baneStateHistEqSmart; ! extern bane_export int baneHack; /* rangeBane.c */ ! extern bane_export baneRange *baneRangeUnknown; ! extern bane_export baneRange *baneRangePos; ! extern bane_export baneRange *baneRangeNeg; ! extern bane_export baneRange *baneRangeZeroCent; ! extern bane_export baneRange *baneRangeFloat; ! extern bane_export baneRange *baneRangeArray[BANE_RANGE_MAX+1]; /* inc.c */ ! extern bane_export baneInc *baneIncUnknown; ! extern bane_export baneInc *baneIncAbsolute; ! extern bane_export baneInc *baneIncRangeRatio; ! extern bane_export baneInc *baneIncPercentile; ! extern bane_export baneInc *baneIncStdv; ! extern bane_export baneInc *baneIncArray[BANE_INC_MAX+1]; ! ! /* measr.c */ ! extern bane_export baneMeasr *baneMeasrUnknown; ! extern bane_export baneMeasr *baneMeasrVal; ! extern bane_export baneMeasr *baneMeasrGradMag; ! extern bane_export baneMeasr *baneMeasrLapl; ! extern bane_export baneMeasr *baneMeasrHess; ! extern bane_export baneMeasr *baneMeasrCurvedness; ! extern bane_export baneMeasr *baneMeasrShadeTrace; ! extern bane_export baneMeasr *baneMeasrArray[BANE_MEASR_MAX+1]; /* clip.c */ ! extern bane_export baneClip *baneClipUnknown; ! extern bane_export baneClip *baneClipAbsolute; ! extern bane_export baneClip *baneClipPeakRatio; ! extern bane_export baneClip *baneClipPercentile; ! extern bane_export baneClip *baneClipTopN; ! extern bane_export baneClip *baneClipArray[BANE_CLIP_MAX+1]; /* methodsBane.c */ ! extern baneHVolParm *baneHVolParmNew(); ! extern void baneHVolParmGKMSInit(baneHVolParm *hvp); ! extern baneHVolParm *baneHVolParmNix(baneHVolParm *hvp); /* valid.c */ ! extern int baneInputCheck(Nrrd *nin, baneHVolParm *hvp); ! extern int baneHVolCheck(Nrrd *hvol); ! extern int baneInfoCheck(Nrrd *info2D, int wantDim); ! extern int banePosCheck(Nrrd *pos, int wantDim); ! extern int baneBcptsCheck(Nrrd *Bcpts); /* hvol.c */ ! extern void baneProbe(double val[3], ! Nrrd *nin, baneHVolParm *hvp, gageContext *ctx, ! int x, int y, int z); ! extern int baneFindInclusion(double min[3], double max[3], ! Nrrd *nin, baneHVolParm *hvp, gageContext *ctx); ! extern int baneMakeHVol(Nrrd *hvol, Nrrd *nin, baneHVolParm *hvp); ! extern Nrrd *baneGKMSHVol(Nrrd *nin, float gradPerc, float hessPerc); /* trnsf.c */ ! extern int baneOpacInfo(Nrrd *info, Nrrd *hvol, int dim, int measr); ! extern int bane1DOpacInfoFrom2D(Nrrd *info1D, Nrrd *info2D); ! extern int baneSigmaCalc(float *sP, Nrrd *info); ! extern int banePosCalc(Nrrd *pos, float sigma, float gthresh, Nrrd *info); ! extern void _baneOpacCalcA(int lutLen, float *opacLut, ! int numCpts, float *xo, ! float *pos); ! extern void _baneOpacCalcB(int lutLen, float *opacLut, ! int numCpts, float *x, float *o, ! float *pos); ! extern int baneOpacCalc(Nrrd *opac, Nrrd *Bcpts, Nrrd *pos); /* trex.c */ ! extern float *_baneTRexRead(char *fname); ! extern void _baneTRexDone(); /* scat.c */ ! extern int baneRawScatterplots(Nrrd *nvg, Nrrd *nvh, Nrrd *hvol, int histEq); /* gkms{Flotsam,Hvol,Scat,Pvg,Opac,Mite}.c */ ! #define BANE_GKMS_DECLARE(C) extern bane_export unrrduCmd baneGkms_##C##Cmd; #define BANE_GKMS_LIST(C) &baneGkms_##C##Cmd, #define BANE_GKMS_MAP(F) \ --- 255,367 ---- ******** baneHVolParm struct ** ! ** Information for how to create a histogram volume. ** */ typedef struct { ! /* -------------- input */ ! int verbose, /* status messages to stderr */ ! makeMeasrVol, /* create a 3 x X x Y x Z volume of measurements, so that they aren't measured (as many as) three times */ ! renormalize, /* use gage's mask renormalization */ ! k3pack; const NrrdKernel *k[GAGE_KERNEL_NUM]; double kparm[GAGE_KERNEL_NUM][NRRD_KERNEL_PARMS_NUM]; baneClip *clip; double incLimit; /* lowest permissible fraction of the data remaining after new inclusion has been determined */ + baneAxis axis[3]; + /* -------------- internal */ + Nrrd *measrVol; + int measrVolDone; /* values in measrVol are filled */ } baneHVolParm; /* defaultsBane.c */ ! TEEM_API const char *baneBiffKey; ! TEEM_API int baneDefVerbose; ! TEEM_API int baneDefMakeMeasrVol; ! TEEM_API double baneDefIncLimit; ! TEEM_API int baneDefRenormalize; ! TEEM_API int baneDefPercHistBins; ! TEEM_API int baneStateHistEqBins; ! TEEM_API int baneStateHistEqSmart; ! TEEM_API int baneHack; /* rangeBane.c */ ! TEEM_API baneRange *baneRangeNew(int type); ! TEEM_API baneRange *baneRangeCopy(baneRange *range); ! TEEM_API int baneRangeAnswer(baneRange *range, ! double *ominP, double *omaxP, ! double imin, double imax); ! TEEM_API baneRange *baneRangeNix(baneRange *range); /* inc.c */ ! TEEM_API baneInc *baneIncNew(int type, baneRange *range, double *parm); ! TEEM_API void baneIncProcess(baneInc *inc, int passIdx, double val); ! TEEM_API int baneIncAnswer(baneInc *inc, double *minP, double *maxP); ! TEEM_API baneInc *baneIncCopy(baneInc *inc); ! TEEM_API baneInc *baneIncNix(baneInc *inc); /* clip.c */ ! TEEM_API baneClip *baneClipNew(int type, double *parm); ! TEEM_API int baneClipAnswer(int *countP, baneClip *clip, Nrrd *hvol); ! TEEM_API baneClip *baneClipCopy(baneClip *clip); ! TEEM_API baneClip *baneClipNix(baneClip *clip); ! ! /* measr.c */ ! TEEM_API baneMeasr *baneMeasrNew(int type, double *parm); ! TEEM_API double baneMeasrAnswer(baneMeasr *measr, gageContext *gctx); ! TEEM_API baneMeasr *baneMeasrCopy(baneMeasr *measr); ! TEEM_API baneMeasr *baneMeasrNix(baneMeasr *measr); /* methodsBane.c */ ! /* NOTE: this is NOT a complete API, like gage has. Currently there ! is only API for things that have to be allocated internally */ ! TEEM_API baneHVolParm *baneHVolParmNew(); ! TEEM_API void baneHVolParmGKMSInit(baneHVolParm *hvp); ! TEEM_API void baneHVolParmAxisSet(baneHVolParm *hvp, int axisIdx, ! int res, baneMeasr *measr, baneInc *inc); ! TEEM_API void baneHVolParmClipSet(baneHVolParm *hvp, baneClip *clip); ! TEEM_API baneHVolParm *baneHVolParmNix(baneHVolParm *hvp); /* valid.c */ ! TEEM_API int baneInputCheck(Nrrd *nin, baneHVolParm *hvp); ! TEEM_API int baneHVolCheck(Nrrd *hvol); ! TEEM_API int baneInfoCheck(Nrrd *info2D, int wantDim); ! TEEM_API int banePosCheck(Nrrd *pos, int wantDim); ! TEEM_API int baneBcptsCheck(Nrrd *Bcpts); /* hvol.c */ ! TEEM_API void baneProbe(double val[3], ! Nrrd *nin, baneHVolParm *hvp, gageContext *ctx, ! int x, int y, int z); ! TEEM_API int baneFindInclusion(double min[3], double max[3], ! Nrrd *nin, baneHVolParm *hvp, gageContext *ctx); ! TEEM_API int baneMakeHVol(Nrrd *hvol, Nrrd *nin, baneHVolParm *hvp); ! TEEM_API Nrrd *baneGKMSHVol(Nrrd *nin, float gradPerc, float hessPerc); /* trnsf.c */ ! TEEM_API int baneOpacInfo(Nrrd *info, Nrrd *hvol, int dim, int measr); ! TEEM_API int bane1DOpacInfoFrom2D(Nrrd *info1D, Nrrd *info2D); ! TEEM_API int baneSigmaCalc(float *sP, Nrrd *info); ! TEEM_API int banePosCalc(Nrrd *pos, float sigma, float gthresh, Nrrd *info); ! TEEM_API void _baneOpacCalcA(int lutLen, float *opacLut, ! int numCpts, float *xo, ! float *pos); ! TEEM_API void _baneOpacCalcB(int lutLen, float *opacLut, ! int numCpts, float *x, float *o, ! float *pos); ! TEEM_API int baneOpacCalc(Nrrd *opac, Nrrd *Bcpts, Nrrd *pos); /* trex.c */ ! TEEM_API float *_baneTRexRead(char *fname); ! TEEM_API void _baneTRexDone(); /* scat.c */ ! TEEM_API int baneRawScatterplots(Nrrd *nvg, Nrrd *nvh, Nrrd *hvol, int histEq); /* gkms{Flotsam,Hvol,Scat,Pvg,Opac,Mite}.c */ ! #define BANE_GKMS_DECLARE(C) TEEM_API unrrduCmd baneGkms_##C##Cmd; #define BANE_GKMS_LIST(C) &baneGkms_##C##Cmd, #define BANE_GKMS_MAP(F) \ *************** *** 399,408 **** F(txf) BANE_GKMS_MAP(BANE_GKMS_DECLARE) ! extern bane_export airEnum *baneGkmsMeasr; ! extern bane_export unrrduCmd *baneGkmsCmdList[]; ! extern void baneGkmsUsage(char *me, hestParm *hparm); ! extern bane_export hestCB *baneGkmsHestIncStrategy; ! extern bane_export hestCB *baneGkmsHestBEF; ! extern bane_export hestCB *baneGkmsHestGthresh; #ifdef __cplusplus --- 374,383 ---- F(txf) BANE_GKMS_MAP(BANE_GKMS_DECLARE) ! TEEM_API airEnum *baneGkmsMeasr; ! TEEM_API unrrduCmd *baneGkmsCmdList[]; ! TEEM_API void baneGkmsUsage(char *me, hestParm *hparm); ! TEEM_API hestCB *baneGkmsHestIncStrategy; ! TEEM_API hestCB *baneGkmsHestBEF; ! TEEM_API hestCB *baneGkmsHestGthresh; #ifdef __cplusplus Index: clip.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/clip.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** clip.c 7 Jan 2004 15:34:27 -0000 1.12 --- clip.c 19 Feb 2004 03:46:51 -0000 1.13 *************** *** 22,66 **** #include "privateBane.h" - /* ----------------- baneClipUnknown -------------------- */ int ! _baneClipUnknown_Ans(Nrrd *hvol, double *clipParm) { ! char me[]="_baneClipUnknown_Ans"; ! fprintf(stderr, "%s: a baneClip is unset somewhere ...\n", me); ! return -1; ! } ! ! baneClip ! _baneClipUnknown = { ! "unknown", ! baneClipUnknown_e, ! 0, ! _baneClipUnknown_Ans ! }; ! baneClip * ! baneClipUnknown = &_baneClipUnknown; ! ! /* ----------------- baneClipAbsolute -------------------- */ ! ! int ! _baneClipAbsolute_Ans(Nrrd *hvol, double *clipParm) { ! return clipParm[0]; } - baneClip - _baneClipAbsolute = { - "absolute", - baneClipAbsolute_e, - 1, - _baneClipAbsolute_Ans - }; - baneClip * - baneClipAbsolute = &_baneClipAbsolute; - - /* ----------------- baneClipPeakRatio -------------------- */ - int ! _baneClipPeakRatio_Ans(Nrrd *hvol, double *clipParm) { int *hits, maxhits; size_t idx, num; --- 22,35 ---- #include "privateBane.h" int ! _baneClipAnswer_Absolute(int *countP, Nrrd *hvol, double *clipParm) { ! *countP = clipParm[0]; ! return 0; } int ! _baneClipAnswer_PeakRatio(int *countP, Nrrd *hvol, double *clipParm) { int *hits, maxhits; size_t idx, num; *************** *** 73,104 **** } ! return maxhits*clipParm[0]; } - baneClip - _baneClipPeakRatio = { - "peak-ratio", - baneClipPeakRatio_e, - 1, - _baneClipPeakRatio_Ans - }; - baneClip * - baneClipPeakRatio = &_baneClipPeakRatio; - - /* ----------------- baneClipPercentile -------------------- */ - int ! _baneClipPercentile_Ans(Nrrd *hvol, double *clipParm) { ! char me[]="_baneClipPercentile", err[AIR_STRLEN_MED]; ! Nrrd *copy; int *hits, clip; size_t num, sum, out, outsofar, hi; ! if (nrrdCopy(copy=nrrdNew(), hvol)) { sprintf(err, "%s: couldn't create copy of histovol", me); ! biffMove(BANE, err, NRRD); return -1; } ! hits = copy->data; ! num = nrrdElementNumber(copy); qsort(hits, num, sizeof(int), nrrdValCompare[nrrdTypeInt]); sum = 0; --- 42,62 ---- } ! *countP = maxhits*clipParm[0]; ! return 0; } int ! _baneClipAnswer_Percentile(int *countP, Nrrd *hvol, double *clipParm) { ! char me[]="_baneClipAnswer_Percentile", err[AIR_STRLEN_MED]; ! Nrrd *ncopy; int *hits, clip; size_t num, sum, out, outsofar, hi; ! if (nrrdCopy(ncopy=nrrdNew(), hvol)) { sprintf(err, "%s: couldn't create copy of histovol", me); ! biffMove(BANE, err, NRRD); return 1; } ! hits = ncopy->data; ! num = nrrdElementNumber(ncopy); qsort(hits, num, sizeof(int), nrrdValCompare[nrrdTypeInt]); sum = 0; *************** *** 113,173 **** } while (outsofar < out); clip = hits[hi]; ! nrrdNuke(copy); ! return clip; } - baneClip - _baneClipPercentile = { - "percentile", - baneClipPercentile_e, - 1, - _baneClipPercentile_Ans - }; - baneClip * - baneClipPercentile = &_baneClipPercentile; - - /* ----------------- baneClipTopN -------------------- */ - int ! _baneClipTopN_Ans(Nrrd *hvol, double *clipParm) { ! char me[]="_baneClipTopN", err[AIR_STRLEN_MED]; Nrrd *copy; ! int *hits, clip; size_t num; if (nrrdCopy(copy=nrrdNew(), hvol)) { sprintf(err, "%s: couldn't create copy of histovol", me); ! biffMove(BANE, err, NRRD); return -1; } hits = copy->data; num = nrrdElementNumber(copy); qsort(hits, num, sizeof(int), nrrdValCompare[nrrdTypeInt]); ! clipParm[0] = AIR_CLAMP(0, (int)clipParm[0], num-1); ! clip = hits[num-(int)clipParm[0]-1]; nrrdNuke(copy); ! return clip; } - baneClip - _baneClipTopN = { - "top-N", - baneClipTopN_e, - 1, - _baneClipTopN_Ans - }; baneClip * ! baneClipTopN = &_baneClipTopN; ! /* --------------------------------------------------- */ baneClip * ! baneClipArray[BANE_CLIP_MAX+1] = { ! &_baneClipUnknown, ! &_baneClipAbsolute, ! &_baneClipPeakRatio, ! &_baneClipPercentile, ! &_baneClipTopN ! }; --- 71,186 ---- } while (outsofar < out); clip = hits[hi]; ! nrrdNuke(ncopy); ! *countP = clip; ! return 0; } int ! _baneClipAnswer_TopN(int *countP, Nrrd *hvol, double *clipParm) { ! char me[]="_baneClipAnwer_TopN", err[AIR_STRLEN_MED]; Nrrd *copy; ! int *hits, tmp; size_t num; if (nrrdCopy(copy=nrrdNew(), hvol)) { sprintf(err, "%s: couldn't create copy of histovol", me); ! biffMove(BANE, err, NRRD); return 1; } hits = copy->data; num = nrrdElementNumber(copy); qsort(hits, num, sizeof(int), nrrdValCompare[nrrdTypeInt]); ! tmp = AIR_CLAMP(0, (int)clipParm[0], num-1); ! *countP = hits[num-tmp-1]; nrrdNuke(copy); ! return 0; } baneClip * ! baneClipNew(int type, double *parm) { ! char me[]="baneClipNew", err[AIR_STRLEN_MED]; ! baneClip *clip; ! if (!( AIR_IN_OP(baneClipUnknown, type, baneClipLast) )) { ! sprintf(err, "%s: baneClip %d invalid", me, type); ! biffAdd(BANE, err); return NULL; ! } ! if (!parm) { ! sprintf(err, "%s: got NULL pointer", me); ! biffAdd(BANE, err); return NULL; ! } ! if (!(AIR_EXISTS(parm[0]))) { ! sprintf(err, "%s: parm[0] doesn't exist", me); ! biffAdd(BANE, err); return NULL; ! } ! clip = (baneClip*)calloc(1, sizeof(baneClip)); ! if (!clip) { ! sprintf(err, "%s: couldn't allocate baneClip!", me); ! biffAdd(BANE, err); return NULL; ! } ! clip->parm[0] = parm[0]; ! clip->type = type; ! switch(type) { ! case baneClipAbsolute: ! sprintf(clip->name, "absolute"); ! clip->answer = _baneClipAnswer_Absolute; ! break; ! case baneClipPeakRatio: ! sprintf(clip->name, "peak ratio"); ! clip->answer = _baneClipAnswer_PeakRatio; ! break; ! case baneClipPercentile: ! sprintf(clip->name, "percentile"); ! clip->answer = _baneClipAnswer_Percentile; ! break; ! case baneClipTopN: ! sprintf(clip->name, "top N"); ! clip->answer = _baneClipAnswer_TopN; ! break; ! default: ! sprintf(err, "%s: sorry, baneClip %d not implemented", me, type); ! biffAdd(BANE, err); baneClipNix(clip); return NULL; ! break; ! } ! return clip; ! } ! ! int ! baneClipAnswer(int *countP, baneClip *clip, Nrrd *hvol) { ! char me[]="baneClipAnswer", err[AIR_STRLEN_MED]; ! ! if (!( countP && clip && hvol )) { ! sprintf(err, "%s: got NULL pointer", me); ! biffAdd(BANE, err); return 0; ! } ! if (clip->answer(countP, hvol, clip->parm)) { ! sprintf(err, "%s: trouble", me); ! biffAdd(BANE, err); return 0; ! } ! return 0; ! } baneClip * ! baneClipCopy(baneClip *clip) { ! char me[]="baneClipCopy", err[AIR_STRLEN_MED]; ! baneClip *ret = NULL; ! ! ret = baneClipNew(clip->type, clip->parm); ! if (!ret) { ! sprintf(err, "%s: couldn't make new clip", me); ! biffAdd(BANE, err); return NULL; ! } ! return ret; ! } ! ! baneClip * ! baneClipNix(baneClip *clip) { ! ! if (clip) { ! airFree(clip->name); ! airFree(clip); ! } ! return NULL; ! } Index: defaultsBane.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/defaultsBane.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** defaultsBane.c 7 Jan 2004 15:34:27 -0000 1.6 --- defaultsBane.c 19 Feb 2004 03:46:51 -0000 1.7 *************** *** 29,37 **** baneDefMakeMeasrVol = AIR_TRUE; ! float baneDefIncLimit = 0.80; /* throwing away more than 20% is too much */ int ! baneDefRenormalize = AIR_FALSE; int --- 29,37 ---- baneDefMakeMeasrVol = AIR_TRUE; ! double baneDefIncLimit = 0.80; /* throwing away more than 20% is too much */ int ! baneDefRenormalize = AIR_TRUE; int Index: gkmsFlotsam.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/gkmsFlotsam.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gkmsFlotsam.c 7 Jan 2004 15:34:27 -0000 1.7 --- gkmsFlotsam.c 19 Feb 2004 03:46:51 -0000 1.8 *************** *** 28,32 **** ** baneGkmsParseIncStrategy ** ! ** inc[0]: member of baneInc*_e enum ** inc[1], inc[2] ... : incParm[0], incParm[1] ... */ --- 28,32 ---- ** baneGkmsParseIncStrategy ** ! ** inc[0]: member of baneInc* enum ** inc[1], inc[2] ... : incParm[0], incParm[1] ... */ *************** *** 43,72 **** inc = ptr; incParm = inc + 1; ! for (i=0; i<BANE_INC_PARM_NUM; i++) { incParm[i] = AIR_NAN; } if (1 == sscanf(str, "f:%lg", incParm+0) || 2 == sscanf(str, "f:%lg,%lg", incParm+0, incParm+1)) { ! inc[0] = baneIncRangeRatio_e; return 0; } if (1 == sscanf(str, "p:%lg", incParm+1) || 2 == sscanf(str, "p:%lg,%lg", incParm+1, incParm+2)) { ! inc[0] = baneIncPercentile_e; incParm[0] = baneDefPercHistBins; return 0; } if (3 == sscanf(str, "p:%d,%lg,%lg", &bins, incParm+1, incParm+2)) { ! inc[0] = baneIncPercentile_e; incParm[0] = bins; return 0; } if (2 == sscanf(str, "a:%lg,%lg", incParm+0, incParm+1)) { ! inc[0] = baneIncAbsolute_e; return 0; } if (1 == sscanf(str, "s:%lg", incParm+0) || 2 == sscanf(str, "s:%lg,%lg", incParm+1, incParm+2)) { ! inc[0] = baneIncStdv_e; return 0; } --- 43,72 ---- inc = ptr; incParm = inc + 1; ! for (i=0; i<BANE_PARM_NUM; i++) { incParm[i] = AIR_NAN; } if (1 == sscanf(str, "f:%lg", incParm+0) || 2 == sscanf(str, "f:%lg,%lg", incParm+0, incParm+1)) { ! inc[0] = baneIncRangeRatio; return 0; } if (1 == sscanf(str, "p:%lg", incParm+1) || 2 == sscanf(str, "p:%lg,%lg", incParm+1, incParm+2)) { ! inc[0] = baneIncPercentile; incParm[0] = baneDefPercHistBins; return 0; } if (3 == sscanf(str, "p:%d,%lg,%lg", &bins, incParm+1, incParm+2)) { ! inc[0] = baneIncPercentile; incParm[0] = bins; return 0; } if (2 == sscanf(str, "a:%lg,%lg", incParm+0, incParm+1)) { ! inc[0] = baneIncAbsolute; return 0; } if (1 == sscanf(str, "s:%lg", incParm+0) || 2 == sscanf(str, "s:%lg,%lg", incParm+1, incParm+2)) { ! inc[0] = baneIncStdv; return 0; } *************** *** 79,83 **** hestCB _baneGkmsHestIncStrategy = { ! (1+BANE_INC_PARM_NUM)*sizeof(double), "inclusion strategy", baneGkmsParseIncStrategy, --- 79,83 ---- hestCB _baneGkmsHestIncStrategy = { ! (1+BANE_PARM_NUM)*sizeof(double), "inclusion strategy", baneGkmsParseIncStrategy, Index: gkmsHvol.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/gkmsHvol.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** gkmsHvol.c 7 Jan 2004 15:34:27 -0000 1.10 --- gkmsHvol.c 19 Feb 2004 03:46:51 -0000 1.11 *************** *** 36,40 **** airArray *mop; int pret, dim[3], lapl, i, j, perm[3] = {1,2,0}, slow, gz = AIR_FALSE; ! double inc[3*(1+BANE_INC_PARM_NUM)]; baneHVolParm *hvp; NrrdIoState *nio; --- 36,40 ---- airArray *mop; int pret, dim[3], lapl, i, j, perm[3] = {1,2,0}, slow, gz = AIR_FALSE; ! double inc[3*(1+BANE_PARM_NUM)]; baneHVolParm *hvp; NrrdIoState *nio; *************** *** 100,107 **** hvp->makeMeasrVol = !slow; ! hvp->ax[0].res = dim[perm[0]]; ! hvp->ax[1].res = dim[perm[1]]; ! hvp->ax[2].res = dim[perm[2]]; ! hvp->ax[1].measr = lapl ? baneMeasrLapl : baneMeasrHess; for (i=0; i<=2; i++) { hvp->ax[i].inc = baneIncArray[(int)inc[(1+BANE_INC_PARM_NUM)*perm[i]]]; --- 100,109 ---- hvp->makeMeasrVol = !slow; ! fprintf(stderr, "!%s: need to be using baneHVolParmAxisSet\n", me); ! /* ! hvp->axis[0].res = dim[perm[0]]; ! hvp->axis[1].res = dim[perm[1]]; ! hvp->axis[2].res = dim[perm[2]]; ! hvp->axis[1].measr = lapl ? baneMeasrLapl : baneMeasrHess; for (i=0; i<=2; i++) { hvp->ax[i].inc = baneIncArray[(int)inc[(1+BANE_INC_PARM_NUM)*perm[i]]]; *************** *** 110,113 **** --- 112,116 ---- } } + */ hvp->k3pack = AIR_TRUE; nrrdKernelParmSet(&hvp->k[gageKernel00], hvp->kparm[gageKernel00], ksp00); Index: hvol.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/hvol.c,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** hvol.c 7 Jan 2004 15:34:27 -0000 1.29 --- hvol.c 19 Feb 2004 03:46:51 -0000 1.30 *************** *** 37,41 **** _baneAxisCheck (baneAxis *ax) { char me[]="_baneAxisCheck", err[AIR_STRLEN_MED]; - int i; if (!(ax->res >= 2)) { --- 37,40 ---- *************** *** 47,76 **** biffAdd(BANE, err); return 1; } - for (i=0; i<ax->measr->numParm; i++) { - if (!AIR_EXISTS(ax->measrParm[i])) { - sprintf(err, "%s: didn't get %d parms for %s measurement", - me, ax->measr->numParm, ax->measr->name); - biffAdd(BANE, err); return 1; - } - } if (!ax->inc) { sprintf(err, "%s: have NULL baneInc", me); biffAdd(BANE, err); return 1; } - for (i=0; i<ax->inc->numParm; i++) { - if (!AIR_EXISTS(ax->incParm[i])) { - sprintf(err, "%s: didn't get %d parms for %s inclusion", - me, ax->inc->numParm, ax->inc->name); - biffAdd(BANE, err); return 1; - } - } - if (_baneInc_HistNew == ax->inc->histNew) { - /* a histogram is needed for inclusion */ - if (!( 3 < ax->incParm[0] )) { - sprintf(err, "%s: won't make a size-%d histogram for %s inclusion", - me, (int)(ax->incParm[0]), ax->inc->name); - biffAdd(BANE, err); return 1; - } - } /* all okay */ --- 46,53 ---- *************** *** 82,89 **** Nrrd *nin, baneHVolParm *hvp, gageContext *ctx, int x, int y, int z) { - gage_t *san; float *data=NULL; - san = ctx->pvl[0]->ans; if (hvp->makeMeasrVol) { data = ( (float*)(hvp->measrVol->data) --- 59,64 ---- *************** *** 92,98 **** if (!hvp->makeMeasrVol || !hvp->measrVolDone) { gageProbe(ctx, x, y, z); ! val[0] = hvp->ax[0].measr->ans(san, hvp->ax[0].measrParm); ! val[1] = hvp->ax[1].measr->ans(san, hvp->ax[1].measrParm); ! val[2] = hvp->ax[2].measr->ans(san, hvp->ax[2].measrParm); if (hvp->makeMeasrVol) { data[0] = val[0]; --- 67,73 ---- if (!hvp->makeMeasrVol || !hvp->measrVolDone) { gageProbe(ctx, x, y, z); ! val[0] = baneMeasrAnswer(hvp->axis[0].measr, ctx); ! val[1] = baneMeasrAnswer(hvp->axis[1].measr, ctx); ! val[2] = baneMeasrAnswer(hvp->axis[2].measr, ctx); if (hvp->makeMeasrVol) { data[0] = val[0]; *************** *** 122,134 **** sy = nin->axis[1].size; sz = nin->axis[2].size; ! inc[0] = hvp->ax[0].inc; ! inc[1] = hvp->ax[1].inc; ! inc[2] = hvp->ax[2].inc; if (hvp->verbose) { fprintf(stderr, "%s: inclusions: %s %s %s\n", me, inc[0]->name, inc[1]->name, inc[2]->name); fprintf(stderr, "%s: measures: %s %s %s\n", me, ! hvp->ax[0].measr->name, hvp->ax[1].measr->name, ! hvp->ax[2].measr->name); /* fprintf(stderr, "%s: gage query:\n", me); --- 97,109 ---- sy = nin->axis[1].size; sz = nin->axis[2].size; ! inc[0] = hvp->axis[0].inc; ! inc[1] = hvp->axis[1].inc; ! inc[2] = hvp->axis[2].inc; if (hvp->verbose) { fprintf(stderr, "%s: inclusions: %s %s %s\n", me, inc[0]->name, inc[1]->name, inc[2]->name); fprintf(stderr, "%s: measures: %s %s %s\n", me, ! hvp->axis[0].measr->name, hvp->axis[1].measr->name, ! hvp->axis[2].measr->name); /* fprintf(stderr, "%s: gage query:\n", me); *************** *** 137,159 **** } - E = 0; - if (!E) { - ai = 0; - E |= (!(hist[0] = inc[0]->histNew(hvp->ax[0].incParm))); - } - if (!E) { - ai = 1; - E |= (!(hist[1] = inc[1]->histNew(hvp->ax[1].incParm))); - } - if (!E) { - ai = 2; - E |= (!(hist[2] = inc[2]->histNew(hvp->ax[2].incParm))); - } - if (E) { - sprintf(err, "%s: trouble getting Nrrds for axis %d (%s) inclusions", - me, ai, aname[ai]); - biffAdd(BANE, err); return 1; - } - /* Determining the inclusion ranges for the histogram volume takes some work- either finding the min and max values of some measure, --- 112,115 ---- *************** *** 169,173 **** fflush(stderr); } ! if (inc[0]->passA || inc[1]->passA || inc[2]->passA) { /* fprintf(stderr, "%s: inclusion pass CBs = %p %p %p \n", me, --- 125,131 ---- fflush(stderr); } ! if (inc[0]->process[0] ! || inc[1]->process[0] ! || inc[2]->process[0]) { /* fprintf(stderr, "%s: inclusion pass CBs = %p %p %p \n", me, *************** *** 190,199 **** for (x=0; x<sx; x++) { baneProbe(val, nin, hvp, ctx, x, y, z); ! if (inc[0]->passA) inc[0]->passA(hist[0], val[0], ! hvp->ax[0].incParm); ! if (inc[1]->passA) inc[1]->passA(hist[1], val[1], ! hvp->ax[1].incParm); ! if (inc[2]->passA) inc[2]->passA(hist[2], val[2], ! hvp->ax[2].incParm); } } --- 148,154 ---- for (x=0; x<sx; x++) { baneProbe(val, nin, hvp, ctx, x, y, z); ! if (inc[0]->process[0]) inc[0]->process[0](inc[0], val[0]); ! if (inc[1]->process[0]) inc[1]->process[0](inc[1], val[1]); ! if (inc[2]->process[0]) inc[2]->process[0](inc[2], val[2]); } } *************** *** 218,222 **** fflush(stderr); } ! if (inc[0]->passB || inc[1]->passB || inc[2]->passB) { if (hvp->makeMeasrVol && !hvp->measrVol) { if (nrrdMaybeAlloc(hvp->measrVol=nrrdNew(), nrrdTypeFloat, 4, --- 173,179 ---- fflush(stderr); } ! if (inc[0]->process[1] ! || inc[1]->process[1] ! || inc[2]->process[1]) { if (hvp->makeMeasrVol && !hvp->measrVol) { if (nrrdMaybeAlloc(hvp->measrVol=nrrdNew(), nrrdTypeFloat, 4, *************** *** 235,244 **** for (x=0; x<sx; x++) { baneProbe(val, nin, hvp, ctx, x, y, z); ! if (inc[0]->passB) inc[0]->passB(hist[0], val[0], ! hvp->ax[0].incParm); ! if (inc[1]->passB) inc[1]->passB(hist[1], val[1], ! hvp->ax[1].incParm); ! if (inc[2]->passB) inc[2]->passB(hist[2], val[2], ! hvp->ax[2].incParm); } } --- 192,198 ---- for (x=0; x<sx; x++) { baneProbe(val, nin, hvp, ctx, x, y, z); ! if (inc[0]->process[1]) inc[0]->process[1](inc[0], val[0]); ! if (inc[1]->process[1]) inc[1]->process[1](inc[1], val[1]); ! if (inc[2]->process[1]) inc[2]->process[1](inc[2], val[2]); } } *************** *** 265,280 **** if (!E) { ai = 0; ! E |= inc[0]->ans(0 + min, 0 + max, hist[0], hvp->ax[0].incParm, ! hvp->ax[0].measr->range); } if (!E) { ai = 1; ! E |= inc[1]->ans(1 + min, 1 + max, hist[1], hvp->ax[1].incParm, ! hvp->ax[1].measr->range); } if (!E) { ai = 2; ! E |= inc[2]->ans(2 + min, 2 + max, hist[2], hvp->ax[2].incParm, ! hvp->ax[2].measr->range); } if (E) { --- 219,231 ---- if (!E) { ai = 0; ! E |= baneIncAnswer(inc[0], 0 + min, 0 + max); } if (!E) { ai = 1; ! E |= baneIncAnswer(inc[1], 1 + min, 1 + max); } if (!E) { ai = 2; ! E |= baneIncAnswer(inc[2], 2 + min, 2 + max); } if (E) { *************** *** 342,348 **** if (!E) E |= gageKernelSet(ctx, gageKernel22, hvp->k[gageKernel22], hvp->kparm[gageKernel22]); ! if (!E) E |= gageQuerySet(ctx, pvl, (hvp->ax[0].measr->query | ! hvp->ax[1].measr->query | ! hvp->ax[2].measr->query)); if (!E) E |= gageUpdate(ctx); if (E) { --- 293,300 ---- if (!E) E |= gageKernelSet(ctx, gageKernel22, hvp->k[gageKernel22], hvp->kparm[gageKernel22]); ! if (!E) E |= gageQueryReset(ctx, pvl); ! if (!E) E |= gageQueryAdd(ctx, pvl, hvp->axis[0].measr->query); ! if (!E) E |= gageQueryAdd(ctx, pvl, hvp->axis[1].measr->query); ! if (!E) E |= gageQueryAdd(ctx, pvl, hvp->axis[2].measr->query); if (!E) E |= gageUpdate(ctx); if (E) { *************** *** 383,389 **** fflush(stderr); } ! shx = hvp->ax[0].res; ! shy = hvp->ax[1].res; ! shz = hvp->ax[2].res; if (nrrdMaybeAlloc(rawhvol=nrrdNew(), nrrdTypeInt, 3, shx, shy, shz)) { sprintf(err, "%s: couldn't allocate raw histovol (%dx%dx%d)", me, --- 335,341 ---- fflush(stderr); } ! shx = hvp->axis[0].res; ! shy = hvp->axis[1].res; ! shz = hvp->axis[2].res; if (nrrdMaybeAlloc(rawhvol=nrrdNew(), nrrdTypeInt, 3, shx, shy, shz)) { sprintf(err, "%s: couldn't allocate raw histovol (%dx%dx%d)", me, *************** *** 433,438 **** /* determine the clipping value and produce the final histogram volume */ ! clipVal = hvp->clip->ans(rawhvol, hvp->clipParm); ! if (-1 == clipVal) { sprintf(err, "%s: trouble determining clip value", me); biffAdd(BANE, err); airMopError(mop); return 1; --- 385,389 ---- /* determine the clipping value and produce the final histogram volume */ ! if (baneClipAnswer(&clipVal, hvp->clip, rawhvol)) { sprintf(err, "%s: trouble determining clip value", me); biffAdd(BANE, err); airMopError(mop); return 1; *************** *** 455,461 **** hvol->axis[1].max = max[1]; hvol->axis[2].max = max[2]; ! hvol->axis[0].label = airStrdup(hvp->ax[0].measr->name); ! hvol->axis[1].label = airStrdup(hvp->ax[1].measr->name); ! hvol->axis[2].label = airStrdup(hvp->ax[2].measr->name); hvol->axis[0].center = nrrdCenterCell; hvol->axis[1].center = nrrdCenterCell; --- 406,412 ---- hvol->axis[1].max = max[1]; hvol->axis[2].max = max[2]; ! hvol->axis[0].label = airStrdup(hvp->axis[0].measr->name); ! hvol->axis[1].label = airStrdup(hvp->axis[1].measr->name); ! hvol->axis[2].label = airStrdup(hvp->axis[2].measr->name); hvol->axis[0].center = nrrdCenterCell; hvol->axis[1].center = nrrdCenterCell; *************** *** 494,499 **** } baneHVolParmGKMSInit(hvp); ! hvp->ax[0].incParm[1] = gradPerc; ! hvp->ax[1].incParm[1] = hessPerc; hvol = nrrdNew(); if (baneMakeHVol(hvol, nin, hvp)) { --- 445,450 ---- } baneHVolParmGKMSInit(hvp); ! hvp->axis[0].inc->parm[1] = gradPerc; ! hvp->axis[1].inc->parm[1] = hessPerc; hvol = nrrdNew(); if (baneMakeHVol(hvol, nin, hvp)) { Index: inc.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/inc.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** inc.c 7 Jan 2004 15:34:27 -0000 1.18 --- inc.c 19 Feb 2004 03:46:51 -0000 1.19 *************** *** 21,109 **** #include "privateBane.h" - Nrrd * - _baneInc_EmptyHistNew(double *incParm) { - - return nrrdNew(); - } - - Nrrd * - _baneInc_HistNew(double *incParm) { - char me[]="_baneInc_HistNew", err[AIR_STRLEN_MED]; - Nrrd *nhist; - - if (nrrdMaybeAlloc(nhist=nrrdNew(), nrrdTypeInt, 1, (int)(incParm[0]))) { - sprintf(err, "%s: ", me); - biffMove(BANE, err, NRRD); return NULL; - } - return nhist; - } - - /* - ** _baneInc_LearnMinMax() and _baneInc_HistFill() are - ** candidates for the baneIncPass *passA and *passB - ** that are in the baneInc struct - */ - void ! _baneInc_LearnMinMax(Nrrd *n, double val, double *incParm) { ! if (AIR_EXISTS(n->axis[0].min)) { /* then both min and max have seen at least one valid value */ ! n->axis[0].min = AIR_MIN(n->axis[0].min, val); ! n->axis[0].max = AIR_MAX(n->axis[0].max, val); } else { ! n->axis[0].min = n->axis[0].max = val; } /* fprintf(stderr, "## _baneInc_LearnMinMax: (%g,%g)\n", ! n->axis[0].min, n->axis[0].max); */ } void ! _baneInc_HistFill(Nrrd *n, double val, double *incParm) { int idx, *hist; ! AIR_INDEX(n->axis[0].min, val, n->axis[0].max, n->axis[0].size, idx); /* fprintf(stderr, "## _baneInc_HistFill: (%g,%g,%g) %d ---> %d\n", ! n->axis[0].min, val, n->axis[0].max, n->axis[0].size, idx); */ ! if (AIR_IN_CL(0, idx, n->axis[0].size-1)) { ! hist = (int*)n->data; hist[idx]++; } } - /* ----------------- baneIncUnknown -------------------- */ - - int - _baneIncUnknown_Ans(double *minP, double *maxP, - Nrrd *hist, double *incParm, - baneRange *range) { - char me[]="_baneIncUnknown_Ans", err[AIR_STRLEN_MED]; - - sprintf(err, "%s: a baneInc is unset", me); - biffAdd(BANE, err); - return 1; - } - - baneInc - _baneIncUnknown = { - "unknown", - baneIncUnknown_e, - 0, - _baneInc_EmptyHistNew, - NULL, - NULL, - _baneIncUnknown_Ans - }; - baneInc * - baneIncUnknown = &_baneIncUnknown; - - /* ----------------- baneIncAbsolute -------------------- */ - /* ! ** _baneIncAbsolute_Ans ** ** incParm[0]: new min --- 21,70 ---- #include "privateBane.h" void ! _baneIncProcess_LearnMinMax(baneInc *inc, double val) { ! if (AIR_EXISTS(inc->nhist->axis[0].min)) { /* then both min and max have seen at least one valid value */ ! inc->nhist->axis[0].min = AIR_MIN(inc->nhist->axis[0].min, val); ! inc->nhist->axis[0].max = AIR_MAX(inc->nhist->axis[0].max, val); } else { ! inc->nhist->axis[0].min = inc->nhist->axis[0].max = val; } /* fprintf(stderr, "## _baneInc_LearnMinMax: (%g,%g)\n", ! inc->nhist->axis[0].min, inc->nhist->axis[0].max); */ + return; + } + + void + _baneIncProcess_Stdv(baneInc *inc, double val) { + + inc->S += val; + inc->SS += val*val; + inc->num += 1; + return; } void ! _baneIncProcess_HistFill(baneInc *inc, double val) { int idx, *hist; ! AIR_INDEX(inc->nhist->axis[0].min, val, inc->nhist->axis[0].max, ! inc->nhist->axis[0].size, idx); /* fprintf(stderr, "## _baneInc_HistFill: (%g,%g,%g) %d ---> %d\n", ! inc->nhist->axis[0].min, val, inc->nhist->axis[0].max, ! inc->nhist->axis[0].size, idx); */ ! if (AIR_IN_CL(0, idx, inc->nhist->axis[0].size-1)) { ! hist = (int*)inc->nhist->data; hist[idx]++; } + return; } /* ! ** _baneIncAnswer_Absolute ** ** incParm[0]: new min *************** *** 111,117 **** */ int ! _baneIncAbsolute_Ans(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { *minP = incParm[0]; *maxP = incParm[1]; --- 72,78 ---- */ int ! _baneIncAnswer_Absolute(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { *minP = incParm[0]; *maxP = incParm[1]; *************** *** 119,159 **** } - baneInc - _baneIncAbsolute = { - "absolute", - baneIncAbsolute_e, - 2, - _baneInc_EmptyHistNew, - NULL, - NULL, - _baneIncAbsolute_Ans - }; - baneInc * - baneIncAbsolute = &_baneIncAbsolute; - - /* ----------------- baneIncRangeRatio -------------------- */ - /* ! ** _baneIncRangeRatio_Ans ** ** incParm[0]: scales the size of the range after it has been ** sent through the associated range function. - ** incParm[1]: (optional) for baneRangeFloat: midpoint of scaling; - ** if doesn't exist, average of min and max is used. For all other - ** range types, 0 is always used. */ int ! _baneIncRangeRatio_Ans(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { ! char me[]="_baneIncRangeRatio_Ans", err[AIR_STRLEN_MED]; double mid; ! if (range->ans(minP, maxP, hist->axis[0].min, hist->axis[0].max)) { ! sprintf(err, "%s:", me); biffAdd(BANE, err); return 1; } ! ! if (baneRangeFloat_e == range->which) { ! mid = AIR_EXISTS(incParm[1]) ? incParm[1] : (*minP + *maxP)/2; *minP = AIR_AFFINE(-1, -incParm[0], 0, *minP, mid); *maxP = AIR_AFFINE(0, incParm[0], 1, mid, *maxP); --- 80,103 ---- } /* ! ** _baneIncAnswer_RangeRatio ** ** incParm[0]: scales the size of the range after it has been ** sent through the associated range function. */ int ! _baneIncAnswer_RangeRatio(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { ! char me[]="_baneIncAnwer_RangeRatio", err[AIR_STRLEN_MED]; double mid; ! if (range->answer(minP, maxP, hist->axis[0].min, hist->axis[0].max)) { ! sprintf(err, "%s: trouble", me); ! biffAdd(BANE, err); return 1; } ! ! if (baneRangeAnywhere == range->type) { ! mid = AIR_EXISTS(range->center) ? range->center : (*minP + *maxP)/2; *minP = AIR_AFFINE(-1, -incParm[0], 0, *minP, mid); *maxP = AIR_AFFINE(0, incParm[0], 1, mid, *maxP); *************** *** 165,186 **** } - baneInc - _baneIncRangeRatio = { - "range-ratio", - baneIncRangeRatio_e, - 1, /* HEY: only one is required, two can be used */ - _baneInc_EmptyHistNew, - NULL, - _baneInc_LearnMinMax, - _baneIncRangeRatio_Ans - }; - baneInc * - baneIncRangeRatio = &_baneIncRangeRatio; - - - /* ----------------- baneIncPercentile -------------------- */ - /* ! ** _baneIncPercentile_Ans ** ** incParm[0]: resolution of histogram generated --- 109,114 ---- } /* ! ** _baneIncAnswer_Percentile ** ** incParm[0]: resolution of histogram generated *************** *** 188,201 **** ** lower and upper ends of range, in a manner dependant on the ** range type - ** incParm[2]: (optional) for baneRangeFloat, center value - ** that we nibble towards. If it doesn't exist, we use the - ** average of the min and max (though perhaps the mode value would - ** be better). For all other range types, we nibble towards 0. */ int ! _baneIncPercentile_Ans(double *minP, double *maxP, ! Nrrd *nhist, double *incParm, ! baneRange *range) { ! char me[]="_baneIncPercentile_Ans", err[AIR_STRLEN_MED]; int *hist, i, histSize, sum; float minIncr, maxIncr, out, outsofar, mid, minIdx, maxIdx; --- 116,125 ---- ** lower and upper ends of range, in a manner dependant on the ** range type */ int ! _baneIncAnswer_Percentile(double *minP, double *maxP, ! Nrrd *nhist, double *incParm, ! baneRange *range) { ! char me[]="_baneIncAnswer_Percentile", err[AIR_STRLEN_MED]; int *hist, i, histSize, sum; float minIncr, maxIncr, out, outsofar, mid, minIdx, maxIdx; *************** *** 220,224 **** fprintf(stderr, "##%s: hist's size=%d, sum=%d --> out = %g\n", me, histSize, sum, out); ! if (range->ans(&min, &max, nhist->axis[0].min, nhist->axis[0].max)) { sprintf(err, "%s:", me); biffAdd(BANE, err); return 1; } --- 144,148 ---- fprintf(stderr, "##%s: hist's size=%d, sum=%d --> out = %g\n", me, histSize, sum, out); ! if (range->answer(&min, &max, nhist->axis[0].min, nhist->axis[0].max)) { sprintf(err, "%s:", me); biffAdd(BANE, err); return 1; } *************** *** 226,231 **** me, nhist->axis[0].min, nhist->axis[0].max, range->name, min, max); ! if (baneRangeFloat_e == range->which) { ! mid = AIR_EXISTS(incParm[2]) ? incParm[2] : (min + max)/2; } else { mid = 0; --- 150,155 ---- me, nhist->axis[0].min, nhist->axis[0].max, range->name, min, max); ! if (baneRangeAnywhere == range->type) { ! mid = AIR_EXISTS(range->center) ? range->center : (min + max)/2; } else { mid = 0; *************** *** 233,237 **** from both ends, but we control the rate of marching according to the distance to the ends. So if min == mid == 0, then ! there is no marching up from below */ } fprintf(stderr, "##%s: hist (%g,%g) --> min,max = (%g,%g) --> mid = %g\n", --- 157,162 ---- from both ends, but we control the rate of marching according to the distance to the ends. So if min == mid == 0, then ! there is no marching up from below ! HOWEVER: the mode of histogram would probably be better ... */ } fprintf(stderr, "##%s: hist (%g,%g) --> min,max = (%g,%g) --> mid = %g\n", *************** *** 279,339 **** } - baneInc - _baneIncPercentile = { - "percentile", - baneIncPercentile_e, - 2, /* HEY: only 2 are required, three can be used */ - _baneInc_HistNew, - _baneInc_LearnMinMax, - _baneInc_HistFill, - _baneIncPercentile_Ans, - }; - baneInc * - baneIncPercentile = &_baneIncPercentile; - - /* ----------------- baneIncStdv -------------------- */ - - Nrrd * - _baneIncStdv_EmptyHistNew(double *incParm) { - Nrrd *hist; - - hist = nrrdNew(); - /* this is a total horrid sham and a hack: we don't need a histogram - at all; but we're going to use axis[1].min to store the sum of - all values, and axis[1].max to store the sum of all squared - values, and axis[1].size to store the number of values. It may - be tempting to use incParm for this, but its only meant for - input and we can't surprise anyone by over-writing values. - - The road to hell ... - */ - hist->axis[1].min = 0.0; - hist->axis[1].max = 0.0; - hist->axis[1].size = 0; - return hist; - } - - void - _baneIncStdv_Pass(Nrrd *hist, double val, double *incParm) { - - _baneInc_LearnMinMax(hist, val, incParm); - hist->axis[1].min += val; - hist->axis[1].max += val*val; - hist->axis[1].size += 1; - } - - /* ! ** _baneIncStdv_Ans() ** ** incParm[0]: range is standard deviation times this - ** incParm[1]: (optional) for baneRangeFloat: if exists, the midpoint - ** of the range, otherwise the mean is used. For all other range - ** types, the range is positioned in the logical way. */ int ! _baneIncStdv_Ans(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { float SS, stdv, mid, mean, width; int count; --- 204,216 ---- } /* ! ** _baneIncAnswer_Stdv() ** ** incParm[0]: range is standard deviation times this */ int ! _baneIncAnswer_Stdv(double *minP, double *maxP, ! Nrrd *hist, double *incParm, ! baneRange *range) { float SS, stdv, mid, mean, width; int count; *************** *** 345,364 **** width = incParm[0]*stdv; fprintf(stderr, "##%s: mean=%g, stdv=%g --> width=%g\n", ! "_baneIncStdv_Ans", mean, stdv, width); ! switch (range->which) { ! case baneRangePos_e: *minP = 0; *maxP = width; break; ! case baneRangeNeg_e: *minP = -width; *maxP = 0; break; ! case baneRangeZeroCent_e: *minP = -width/2; *maxP = width/2; break; ! case baneRangeFloat_e: ! mid = AIR_EXISTS(incParm[1]) ? incParm[1] : mean; *minP = mid - width/2; *maxP = mid + width/2; --- 222,241 ---- width = incParm[0]*stdv; fprintf(stderr, "##%s: mean=%g, stdv=%g --> width=%g\n", ! "_baneIncAnswer_Stdv", mean, stdv, width); ! switch (range->type) { ! case baneRangePositive: *minP = 0; *maxP = width; break; ! case baneRangeNegative: *minP = -width; *maxP = 0; break; ! case baneRangeZeroCentered: *minP = -width/2; *maxP = width/2; break; ! case baneRangeAnywhere: ! mid = AIR_EXISTS(range->center) ? range->center : mean; *minP = mid - width/2; *maxP = mid + width/2; *******... [truncated message content] |
|
From: <kin...@us...> - 2004-02-19 03:56:57
|
Update of /cvsroot/teem/teem/src/bane/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22355/test Modified Files: tblah.c Log Message: INCOMPLETE RE-WRITE. NON_FUNCTIONALcvs diff | & more! Sorry. Index: tblah.c =================================================================== RCS file: /cvsroot/teem/teem/src/bane/test/tblah.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tblah.c 7 Jan 2004 15:34:27 -0000 1.4 --- tblah.c 19 Feb 2004 03:46:52 -0000 1.5 *************** *** 29,37 **** printf("input range (%g,%g) ---------------------\n", imin, imax); ! for (i=1; i<=BANE_RANGE_MAX; i++) { ! range = baneRangeArray[i]; ! range->ans(&omin, &omax, imin, imax); printf("%s: range %s --> (%g,%g)\n", me, range->name, omin, omax); } } --- 29,38 ---- printf("input range (%g,%g) ---------------------\n", imin, imax); ! for (i=1; i<baneRangeLast; i++) { ! range = baneRangeNew(i); ! range->answer(&omin, &omax, imin, imax); printf("%s: range %s --> (%g,%g)\n", me, range->name, omin, omax); + range = baneRangeNix(range); } } *************** *** 39,43 **** void incTest(char *me, int num, baneRange *range) { ! double *val, tmp, incParm[BANE_INC_PARM_NUM], omin, omax, rmin, rmax; baneInc *inc; Nrrd *hist; --- 40,44 ---- void incTest(char *me, int num, baneRange *range) { ! double *val, tmp, incParm[BANE_PARM_NUM], omin, omax, rmin, rmax; baneInc *inc; Nrrd *hist; *************** *** 62,92 **** fprintf(stderr, "incTest: real min,max = %g,%g\n", rmin, rmax); ! for (i=1; i<=BANE_INC_MAX; i++) { ! inc = baneIncArray[i]; printf("%s: inclusion %s ------\n", me, inc->name); switch(i) { ! case baneIncAbsolute_e: ELL_3V_SET(incParm, -0.8, 1.5, AIR_NAN); break; ! case baneIncRangeRatio_e: ELL_3V_SET(incParm, 0.99, AIR_NAN, AIR_NAN); break; ! case baneIncPercentile_e: ELL_3V_SET(incParm, 1024, 10, AIR_NAN); break; ! case baneIncStdv_e: ELL_3V_SET(incParm, 1.0, AIR_NAN, AIR_NAN); break; } ! hist = inc->histNew(incParm); if (inc->passA) { for (j=0; j<num; j++) ! inc->passA(hist, val[j], incParm); } if (inc->passB) { for (j=0; j<num; j++) ! inc->passB(hist, val[j], incParm); } inc->ans(&omin, &omax, hist, incParm, range); printf(" --> (%g,%g)\n", omin, omax); } --- 63,96 ---- fprintf(stderr, "incTest: real min,max = %g,%g\n", rmin, rmax); ! for (i=1; i<baneIncLast; i++) { ! /* NOTE: THIS IS BROKEN !!! */ ! inc = baneIncNew(i, NULL, incParm); printf("%s: inclusion %s ------\n", me, inc->name); switch(i) { ! case baneIncAbsolute: ELL_3V_SET(incParm, -0.8, 1.5, AIR_NAN); break; ! case baneIncRangeRatio: ELL_3V_SET(incParm, 0.99, AIR_NAN, AIR_NAN); break; ! case baneIncPercentile: ELL_3V_SET(incParm, 1024, 10, AIR_NAN); break; ! case baneIncStdv: ELL_3V_SET(incParm, 1.0, AIR_NAN, AIR_NAN); break; } ! fprintf(stderr, "!%s: THIS IS BROKEN!!!\n", "incTest"); ! /* if (inc->passA) { for (j=0; j<num; j++) ! inc->process[0](hist, val[j], incParm); } if (inc->passB) { for (j=0; j<num; j++) ! inc->process[1](hist, val[j], incParm); } inc->ans(&omin, &omax, hist, incParm, range); + */ printf(" --> (%g,%g)\n", omin, omax); } |
|
From: <kin...@us...> - 2004-02-19 03:55:03
|
Update of /cvsroot/teem/teem/src/hoover In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21979/hoover Modified Files: hoover.h Log Message: change from <lib>_export extern to TEEM_API Index: hoover.h =================================================================== RCS file: /cvsroot/teem/teem/src/hoover/hoover.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** hoover.h 7 Jan 2004 15:34:29 -0000 1.22 --- hoover.h 19 Feb 2004 03:44:57 -0000 1.23 *************** *** 31,40 **** #include <teem/limn.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define hoover_export __declspec(dllimport) - #else - #define hoover_export - #endif - #ifdef __cplusplus extern "C" { --- 31,34 ---- *************** *** 252,275 **** /* defaultsHoover.c */ ! extern hoover_export const char *hooverBiffKey; ! extern hoover_export int hooverDefVolCentering; ! extern hoover_export int hooverDefImgCentering; /* methodsHoover.c */ ! extern hooverContext *hooverContextNew(); ! extern int hooverContextCheck(hooverContext *ctx); ! extern void hooverContextNix(hooverContext *ctx); /* rays.c */ ! extern int hooverRender(hooverContext *ctx, int *errCodeP, int *errThreadP); /* stub.c */ ! extern hoover_export hooverRenderBegin_t hooverStubRenderBegin; ! extern hoover_export hooverThreadBegin_t hooverStubThreadBegin; ! extern hoover_export hooverRayBegin_t hooverStubRayBegin; ! extern hoover_export hooverSample_t hooverStubSample; ! extern hoover_export hooverRayEnd_t hooverStubRayEnd; ! extern hoover_export hooverThreadEnd_t hooverStubThreadEnd; ! extern hoover_export hooverRenderEnd_t hooverStubRenderEnd; #ifdef __cplusplus --- 246,269 ---- /* defaultsHoover.c */ ! TEEM_API const char *hooverBiffKey; ! TEEM_API int hooverDefVolCentering; ! TEEM_API int hooverDefImgCentering; /* methodsHoover.c */ ! TEEM_API hooverContext *hooverContextNew(); ! TEEM_API int hooverContextCheck(hooverContext *ctx); ! TEEM_API void hooverContextNix(hooverContext *ctx); /* rays.c */ ! TEEM_API int hooverRender(hooverContext *ctx, int *errCodeP, int *errThreadP); /* stub.c */ ! TEEM_API hooverRenderBegin_t hooverStubRenderBegin; ! TEEM_API hooverThreadBegin_t hooverStubThreadBegin; ! TEEM_API hooverRayBegin_t hooverStubRayBegin; ! TEEM_API hooverSample_t hooverStubSample; ! TEEM_API hooverRayEnd_t hooverStubRayEnd; ! TEEM_API hooverThreadEnd_t hooverStubThreadEnd; ! TEEM_API hooverRenderEnd_t hooverStubRenderEnd; #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:17
|
Update of /cvsroot/teem/teem/src/dye In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/dye Modified Files: dye.h Log Message: change from <lib>_export extern to TEEM_API Index: dye.h =================================================================== RCS file: /cvsroot/teem/teem/src/dye/dye.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** dye.h 7 Jan 2004 15:34:28 -0000 1.14 --- dye.h 19 Feb 2004 03:44:08 -0000 1.15 *************** *** 29,38 **** #include <teem/ell.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define dye_export __declspec(dllimport) - #else - #define dye_export - #endif - #ifdef __cplusplus extern "C" { --- 29,32 ---- *************** *** 64,107 **** /* methodsDye.c */ ! extern dye_export const char *dyeBiffKey; ! extern dye_export char dyeSpaceToStr[][AIR_STRLEN_SMALL]; ! extern int dyeStrToSpace(char *str); ! extern dyeColor *dyeColorInit(dyeColor *col); ! extern dyeColor *dyeColorSet(dyeColor *col, int space, float v0, float v1, float v2); ! extern int dyeColorGet(float *v0P, float *v1P, float *v2P, dyeColor *col); ! extern int dyeColorGetAs(float *v0P, float *v1P, float *v2P, dyeColor *col, int space); ! extern dyeColor *dyeColorNew(); ! extern dyeColor *dyeColorCopy(dyeColor *c1, dyeColor *c0); ! extern dyeColor *dyeColorNix(dyeColor *col); ! extern int dyeColorParse(dyeColor *col, char *str); ! extern char *dyeColorSprintf(char *str, dyeColor *col); /* convertDye.c */ typedef void (*dyeConverter)(float*, float*, float*, float, float, float); ! extern void dyeRGBtoHSV(float *H, float *S, float *V, ! float R, float G, float B); ! extern void dyeHSVtoRGB(float *R, float *G, float *B, ! float H, float S, float V); ! extern void dyeRGBtoHSL(float *H, float *S, float *L, ! float R, float G, float B); ! extern void dyeHSLtoRGB(float *R, float *G, float *B, ! float H, float S, float L); ! extern void dyeRGBtoXYZ(float *X, float *Y, float *Z, ! float R, float G, float B); ! extern void dyeXYZtoRGB(float *R, float *G, float *B, ! float X, float Y, float Z); ! extern void dyeXYZtoLAB(float *L, float *A, float *B, ! float X, float Y, float Z); ! extern void dyeXYZtoLUV(float *L, float *U, float *V, ! float X, float Y, float Z); ! extern void dyeLABtoXYZ(float *X, float *Y, float *Z, ! float L, float A, float B); ! extern void dyeLUVtoXYZ(float *X, float *Y, float *Z, ! float L, float U, float V); ! extern dye_export dyeConverter dyeSimpleConvert[DYE_MAX_SPACE+1][DYE_MAX_SPACE+1]; ! extern int dyeConvert(dyeColor *col, int space); #ifdef __cplusplus --- 58,101 ---- /* methodsDye.c */ ! TEEM_API const char *dyeBiffKey; ! TEEM_API char dyeSpaceToStr[][AIR_STRLEN_SMALL]; ! TEEM_API int dyeStrToSpace(char *str); ! TEEM_API dyeColor *dyeColorInit(dyeColor *col); ! TEEM_API dyeColor *dyeColorSet(dyeColor *col, int space, float v0, float v1, float v2); ! TEEM_API int dyeColorGet(float *v0P, float *v1P, float *v2P, dyeColor *col); ! TEEM_API int dyeColorGetAs(float *v0P, float *v1P, float *v2P, dyeColor *col, int space); ! TEEM_API dyeColor *dyeColorNew(); ! TEEM_API dyeColor *dyeColorCopy(dyeColor *c1, dyeColor *c0); ! TEEM_API dyeColor *dyeColorNix(dyeColor *col); ! TEEM_API int dyeColorParse(dyeColor *col, char *str); ! TEEM_API char *dyeColorSprintf(char *str, dyeColor *col); /* convertDye.c */ typedef void (*dyeConverter)(float*, float*, float*, float, float, float); ! TEEM_API void dyeRGBtoHSV(float *H, float *S, float *V, ! float R, float G, float B); ! TEEM_API void dyeHSVtoRGB(float *R, float *G, float *B, ! float H, float S, float V); ! TEEM_API void dyeRGBtoHSL(float *H, float *S, float *L, ! float R, float G, float B); ! TEEM_API void dyeHSLtoRGB(float *R, float *G, float *B, ! float H, float S, float L); ! TEEM_API void dyeRGBtoXYZ(float *X, float *Y, float *Z, ! float R, float G, float B); ! TEEM_API void dyeXYZtoRGB(float *R, float *G, float *B, ! float X, float Y, float Z); ! TEEM_API void dyeXYZtoLAB(float *L, float *A, float *B, ! float X, float Y, float Z); ! TEEM_API void dyeXYZtoLUV(float *L, float *U, float *V, ! float X, float Y, float Z); ! TEEM_API void dyeLABtoXYZ(float *X, float *Y, float *Z, ! float L, float A, float B); ! TEEM_API void dyeLUVtoXYZ(float *X, float *Y, float *Z, ! float L, float U, float V); ! TEEM_API dyeConverter dyeSimpleConvert[DYE_MAX_SPACE+1][DYE_MAX_SPACE+1]; ! TEEM_API int dyeConvert(dyeColor *col, int space); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:17
|
Update of /cvsroot/teem/teem/src/alan In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/alan Modified Files: alan.h Log Message: change from <lib>_export extern to TEEM_API Index: alan.h =================================================================== RCS file: /cvsroot/teem/teem/src/alan/alan.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** alan.h 7 Jan 2004 15:34:27 -0000 1.11 --- alan.h 19 Feb 2004 03:44:08 -0000 1.12 *************** *** 29,38 **** #include <teem/nrrd.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define alan_export __declspec(dllimport) - #else - #define alan_export - #endif - #ifdef __cplusplus extern "C" { --- 29,32 ---- *************** *** 146,167 **** /* methodsAlan.c */ ! extern alan_export const char *alanBiffKey; ! extern alanContext *alanContextNew(); ! extern alanContext *alanContextNix(alanContext *actx); ! extern int alanDimensionSet(alanContext *actx, int dim); ! extern int alan2DSizeSet(alanContext *actx, int sizeX, int sizeY); ! extern int alan3DSizeSet(alanContext *actx, int sizeX, int sizeY, int sizeZ); ! extern int alanTensorSet(alanContext *actx, Nrrd *nten, int oversample); ! extern int alanParmSet(alanContext *actx, int whichParm, double parm); /* enumsAlan.c */ ! extern alan_export airEnum *alanStop; /* coreAlan.c */ ! extern int alanUpdate(alanContext *actx); ! extern int alanInit(alanContext *actx, ! const Nrrd *nlevInit, const Nrrd *nparmInit); ! extern int alanPriorityParm(alanContext *actx, const Nrrd *npri); ! extern int alanRun(alanContext *actx); #ifdef __cplusplus --- 140,161 ---- /* methodsAlan.c */ ! TEEM_API const char *alanBiffKey; ! TEEM_API alanContext *alanContextNew(); ! TEEM_API alanContext *alanContextNix(alanContext *actx); ! TEEM_API int alanDimensionSet(alanContext *actx, int dim); ! TEEM_API int alan2DSizeSet(alanContext *actx, int sizeX, int sizeY); ! TEEM_API int alan3DSizeSet(alanContext *actx, int sizeX, int sizeY, int sizeZ); ! TEEM_API int alanTensorSet(alanContext *actx, Nrrd *nten, int oversample); ! TEEM_API int alanParmSet(alanContext *actx, int whichParm, double parm); /* enumsAlan.c */ ! TEEM_API airEnum *alanStop; /* coreAlan.c */ ! TEEM_API int alanUpdate(alanContext *actx); ! TEEM_API int alanInit(alanContext *actx, ! const Nrrd *nlevInit, const Nrrd *nparmInit); ! TEEM_API int alanPriorityParm(alanContext *actx, const Nrrd *npri); ! TEEM_API int alanRun(alanContext *actx); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:17
|
Update of /cvsroot/teem/teem/src/echo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/echo Modified Files: echo.h Log Message: change from <lib>_export extern to TEEM_API Index: echo.h =================================================================== RCS file: /cvsroot/teem/teem/src/echo/echo.h,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** echo.h 9 Feb 2004 07:18:21 -0000 1.60 --- echo.h 19 Feb 2004 03:44:07 -0000 1.61 *************** *** 30,39 **** #include <teem/limn.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define echo_export __declspec(dllimport) - #else - #define echo_export - #endif - #ifdef __cplusplus extern "C" { --- 30,33 ---- *************** *** 392,510 **** /* enumsEcho.c ------------------------------------------ */ ! extern echo_export airEnum *echoJitter; ! extern echo_export airEnum *echoType; ! extern echo_export airEnum *echoMatter; /* methodsEcho.c --------------------------------------- */ ! extern echo_export const char *echoBiffKey; ! extern echoRTParm *echoRTParmNew(); ! extern echoRTParm *echoRTParmNix(echoRTParm *parm); ! extern echoGlobalState *echoGlobalStateNew(); ! extern echoGlobalState *echoGlobalStateNix(echoGlobalState *state); ! extern echoThreadState *echoThreadStateNew(); ! extern echoThreadState *echoThreadStateNix(echoThreadState *state); ! extern echoScene *echoSceneNew(); ! extern echoScene *echoSceneNix(echoScene *scene); /* objmethods.c --------------------------------------- */ ! extern echoObject *echoObjectNew(echoScene *scene, signed char type); ! extern int echoObjectAdd(echoScene *scene, echoObject *obj); ! extern echoObject *echoObjectNix(echoObject *obj); /* model.c ---------------------------------------- */ ! extern echoObject *echoRoughSphereNew(echoScene *scene, int theRes, int phiRes, ! echoPos_t *matx); /* bounds.c --------------------------------------- */ ! extern void echoBoundsGet(echoPos_t *lo, echoPos_t *hi, echoObject *obj); /* list.c --------------------------------------- */ ! extern void echoListAdd(echoObject *parent, echoObject *child); ! extern echoObject *echoListSplit(echoScene *scene, ! echoObject *list, int axis); ! extern echoObject *echoListSplit3(echoScene *scene, ! echoObject *list, int depth); /* set.c --------------------------------------- */ ! extern void echoSphereSet(echoObject *sphere, ! echoPos_t x, echoPos_t y, ! echoPos_t z, echoPos_t rad); ! extern void echoCylinderSet(echoObject *cylind, ! int axis); ! extern void echoSuperquadSet(echoObject *squad, ! int axis, echoPos_t A, echoPos_t B); ! extern void echoRectangleSet(echoObject *rect, ! echoPos_t ogx, echoPos_t ogy, echoPos_t ogz, ! echoPos_t x0, echoPos_t y0, echoPos_t z0, ! echoPos_t x1, echoPos_t y1, echoPos_t z1); ! extern void echoTriangleSet(echoObject *tri, ! echoPos_t x0, echoPos_t y0, echoPos_t z0, ! echoPos_t x1, echoPos_t y1, echoPos_t z1, ! echoPos_t x2, echoPos_t y2, echoPos_t z2); ! extern void echoTriMeshSet(echoObject *trim, ! int numV, echoPos_t *pos, ! int numF, int *vert); ! extern void echoInstanceSet(echoObject *inst, ! echoPos_t *M, echoObject *obj); /* matter.c ------------------------------------------ */ ! extern echo_export int echoObjectHasMatter[ECHO_TYPE_NUM]; ! extern void echoColorSet(echoObject *obj, ! echoCol_t R, echoCol_t G, echoCol_t B, echoCol_t A); ! extern void echoMatterPhongSet(echoScene *scene, echoObject *obj, ! echoCol_t ka, echoCol_t kd, ! echoCol_t ks, echoCol_t sp); ! extern void echoMatterGlassSet(echoScene *scene, echoObject *obj, ! echoCol_t index, echoCol_t ka, ! echoCol_t kd, echoCol_t fuzzy); ! extern void echoMatterMetalSet(echoScene *scene, echoObject *obj, ! echoCol_t R0, echoCol_t ka, ! echoCol_t kd, echoCol_t fuzzy); ! extern void echoMatterLightSet(echoScene *scene, echoObject *obj, ! echoCol_t power, echoCol_t unit); ! extern void echoMatterTextureSet(echoScene *scene, echoObject *obj, ! Nrrd *ntext); /* lightEcho.c ------------------------------------------- */ ! extern void echoLightPosition(echoPos_t pos[3], echoObject *light, ! echoThreadState *tstate); ! extern void echoLightColor(echoCol_t rgb[3], echoPos_t Ldist, ! echoObject *light, echoRTParm *parm, ! echoThreadState *tstate); ! extern void echoEnvmapLookup(echoCol_t rgb[3], echoPos_t norm[3], ! Nrrd *envmap); /* color.c ------------------------------------------- */ ! extern void echoTextureLookup(echoCol_t rgba[4], Nrrd *ntext, ! echoPos_t u, echoPos_t v, echoRTParm *parm); ! extern void echoIntxMaterialColor(echoCol_t rgba[4], echoIntx *intx, ! echoRTParm *parm); ! extern void echoIntxLightColor(echoCol_t ambi[3], echoCol_t diff[3], ! echoCol_t spec[3], echoCol_t sp, ! echoIntx *intx, echoScene *scene, ! echoRTParm *parm, echoThreadState *tstate); ! extern void echoIntxFuzzify(echoIntx *intx, echoCol_t fuzz, ! echoThreadState *tstate); /* intx.c ------------------------------------------- */ ! extern int echoRayIntx(echoIntx *intx, echoRay *ray, echoScene *scene, ! echoRTParm *parm, echoThreadState *tstate); ! extern void echoIntxColor(echoCol_t rgba[4], echoIntx *intx, ! echoScene *scene, echoRTParm *parm, ! echoThreadState *tstate); /* renderEcho.c ---------------------------------------- */ ! extern int echoThreadStateInit(echoThreadState *tstate, ! echoRTParm *parm, echoGlobalState *gstate); ! extern void echoJitterCompute(echoRTParm *parm, echoThreadState *state); ! extern void echoRayColor(echoCol_t rgba[4], echoRay *ray, ! echoScene *scene, echoRTParm *parm, ! echoThreadState *tstate); ! extern void echoChannelAverage(echoCol_t *img, echoRTParm *parm, echoThreadState *tstate); ! extern int echoRTRenderCheck(Nrrd *nraw, limnCamera *cam, echoScene *scene, ! echoRTParm *parm, echoGlobalState *gstate); ! extern int echoRTRender(Nrrd *nraw, limnCamera *cam, echoScene *scene, ! echoRTParm *parm, echoGlobalState *gstate); #ifdef __cplusplus --- 386,504 ---- /* enumsEcho.c ------------------------------------------ */ ! TEEM_API airEnum *echoJitter; ! TEEM_API airEnum *echoType; ! TEEM_API airEnum *echoMatter; /* methodsEcho.c --------------------------------------- */ ! TEEM_API const char *echoBiffKey; ! TEEM_API echoRTParm *echoRTParmNew(); ! TEEM_API echoRTParm *echoRTParmNix(echoRTParm *parm); ! TEEM_API echoGlobalState *echoGlobalStateNew(); ! TEEM_API echoGlobalState *echoGlobalStateNix(echoGlobalState *state); ! TEEM_API echoThreadState *echoThreadStateNew(); ! TEEM_API echoThreadState *echoThreadStateNix(echoThreadState *state); ! TEEM_API echoScene *echoSceneNew(); ! TEEM_API echoScene *echoSceneNix(echoScene *scene); /* objmethods.c --------------------------------------- */ ! TEEM_API echoObject *echoObjectNew(echoScene *scene, signed char type); ! TEEM_API int echoObjectAdd(echoScene *scene, echoObject *obj); ! TEEM_API echoObject *echoObjectNix(echoObject *obj); /* model.c ---------------------------------------- */ ! TEEM_API echoObject *echoRoughSphereNew(echoScene *scene, int theRes, int phiRes, ! echoPos_t *matx); /* bounds.c --------------------------------------- */ ! TEEM_API void echoBoundsGet(echoPos_t *lo, echoPos_t *hi, echoObject *obj); /* list.c --------------------------------------- */ ! TEEM_API void echoListAdd(echoObject *parent, echoObject *child); ! TEEM_API echoObject *echoListSplit(echoScene *scene, ! echoObject *list, int axis); ! TEEM_API echoObject *echoListSplit3(echoScene *scene, ! echoObject *list, int depth); /* set.c --------------------------------------- */ ! TEEM_API void echoSphereSet(echoObject *sphere, ! echoPos_t x, echoPos_t y, ! echoPos_t z, echoPos_t rad); ! TEEM_API void echoCylinderSet(echoObject *cylind, ! int axis); ! TEEM_API void echoSuperquadSet(echoObject *squad, ! int axis, echoPos_t A, echoPos_t B); ! TEEM_API void echoRectangleSet(echoObject *rect, ! echoPos_t ogx, echoPos_t ogy, echoPos_t ogz, ! echoPos_t x0, echoPos_t y0, echoPos_t z0, ! echoPos_t x1, echoPos_t y1, echoPos_t z1); ! TEEM_API void echoTriangleSet(echoObject *tri, ! echoPos_t x0, echoPos_t y0, echoPos_t z0, ! echoPos_t x1, echoPos_t y1, echoPos_t z1, ! echoPos_t x2, echoPos_t y2, echoPos_t z2); ! TEEM_API void echoTriMeshSet(echoObject *trim, ! int numV, echoPos_t *pos, ! int numF, int *vert); ! TEEM_API void echoInstanceSet(echoObject *inst, ! echoPos_t *M, echoObject *obj); /* matter.c ------------------------------------------ */ ! TEEM_API int echoObjectHasMatter[ECHO_TYPE_NUM]; ! TEEM_API void echoColorSet(echoObject *obj, ! echoCol_t R, echoCol_t G, echoCol_t B, echoCol_t A); ! TEEM_API void echoMatterPhongSet(echoScene *scene, echoObject *obj, ! echoCol_t ka, echoCol_t kd, ! echoCol_t ks, echoCol_t sp); ! TEEM_API void echoMatterGlassSet(echoScene *scene, echoObject *obj, ! echoCol_t index, echoCol_t ka, ! echoCol_t kd, echoCol_t fuzzy); ! TEEM_API void echoMatterMetalSet(echoScene *scene, echoObject *obj, ! echoCol_t R0, echoCol_t ka, ! echoCol_t kd, echoCol_t fuzzy); ! TEEM_API void echoMatterLightSet(echoScene *scene, echoObject *obj, ! echoCol_t power, echoCol_t unit); ! TEEM_API void echoMatterTextureSet(echoScene *scene, echoObject *obj, ! Nrrd *ntext); /* lightEcho.c ------------------------------------------- */ ! TEEM_API void echoLightPosition(echoPos_t pos[3], echoObject *light, ! echoThreadState *tstate); ! TEEM_API void echoLightColor(echoCol_t rgb[3], echoPos_t Ldist, ! echoObject *light, echoRTParm *parm, ! echoThreadState *tstate); ! TEEM_API void echoEnvmapLookup(echoCol_t rgb[3], echoPos_t norm[3], ! Nrrd *envmap); /* color.c ------------------------------------------- */ ! TEEM_API void echoTextureLookup(echoCol_t rgba[4], Nrrd *ntext, ! echoPos_t u, echoPos_t v, echoRTParm *parm); ! TEEM_API void echoIntxMaterialColor(echoCol_t rgba[4], echoIntx *intx, ! echoRTParm *parm); ! TEEM_API void echoIntxLightColor(echoCol_t ambi[3], echoCol_t diff[3], ! echoCol_t spec[3], echoCol_t sp, ! echoIntx *intx, echoScene *scene, ! echoRTParm *parm, echoThreadState *tstate); ! TEEM_API void echoIntxFuzzify(echoIntx *intx, echoCol_t fuzz, ! echoThreadState *tstate); /* intx.c ------------------------------------------- */ ! TEEM_API int echoRayIntx(echoIntx *intx, echoRay *ray, echoScene *scene, ! echoRTParm *parm, echoThreadState *tstate); ! TEEM_API void echoIntxColor(echoCol_t rgba[4], echoIntx *intx, ! echoScene *scene, echoRTParm *parm, ! echoThreadState *tstate); /* renderEcho.c ---------------------------------------- */ ! TEEM_API int echoThreadStateInit(echoThreadState *tstate, ! echoRTParm *parm, echoGlobalState *gstate); ! TEEM_API void echoJitterCompute(echoRTParm *parm, echoThreadState *state); ! TEEM_API void echoRayColor(echoCol_t rgba[4], echoRay *ray, ! echoScene *scene, echoRTParm *parm, ! echoThreadState *tstate); ! TEEM_API void echoChannelAverage(echoCol_t *img, echoRTParm *parm, echoThreadState *tstate); ! TEEM_API int echoRTRenderCheck(Nrrd *nraw, limnCamera *cam, echoScene *scene, ! echoRTParm *parm, echoGlobalState *gstate); ! TEEM_API int echoRTRender(Nrrd *nraw, limnCamera *cam, echoScene *scene, ! echoRTParm *parm, echoGlobalState *gstate); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:13
|
Update of /cvsroot/teem/teem/src/hest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/hest Modified Files: hest.h Log Message: change from <lib>_export extern to TEEM_API Index: hest.h =================================================================== RCS file: /cvsroot/teem/teem/src/hest/hest.h,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** hest.h 7 Jan 2004 15:34:29 -0000 1.35 --- hest.h 19 Feb 2004 03:44:07 -0000 1.36 *************** *** 32,41 **** #endif - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define hest_export __declspec(dllimport) - #else - #define hest_export - #endif - /* ******** hestCB struct --- 32,35 ---- *************** *** 158,206 **** /* defaultsHest.c */ ! extern hest_export int hestVerbosity; ! extern hest_export int hestRespFileEnable; ! extern hest_export int hestElideSingleEnumType; ! extern hest_export int hestElideSingleOtherType; ! extern hest_export int hestElideSingleOtherDefault; ! extern hest_export int hestElideSingleNonExistFloatDefault; ! extern hest_export int hestElideMultipleNonExistFloatDefault; ! extern hest_export int hestElideSingleEmptyStringDefault; ! extern hest_export int hestElideMultipleEmptyStringDefault; ! extern hest_export int hestGreedySingleString; ! extern hest_export int hestCleverPluralizeOtherY; ! extern hest_export int hestColumns; ! extern hest_export char hestRespFileFlag; ! extern hest_export char hestRespFileComment; ! extern hest_export char hestVarParamStopFlag; ! extern hest_export char hestMultiFlagSep; /* methodsHest.c */ ! extern hestParm *hestParmNew(void); ! extern hestParm *hestParmFree(hestParm *parm); ! extern void hestOptAdd(hestOpt **optP, ! char *flag, char *name, ! int type, int min, int max, ! void *valueP, const char *dflt, const char *info, ! ... /* int *sawP, airEnum *enm , hestCB *CB */); ! extern hestOpt *hestOptFree(hestOpt *opt); ! extern int hestOptCheck(hestOpt *opt, char **errP); /* parseHest.c */ ! extern int hestParse(hestOpt *opt, int argc, char **argv, ! char **errP, hestParm *parm); ! extern void *hestParseFree(hestOpt *opt); ! extern void hestParseOrDie(hestOpt *opt, int argc, char **argv, hestParm *parm, ! char *me, char *info, ! int doInfo, int doUsage, int doGlossary); /* usage.c */ ! extern void _hestPrintStr(FILE *f, int indent, int already, int width, ! const char *_str, int bslash); ! extern int hestMinNumArgs(hestOpt *opt); ! extern void hestUsage(FILE *file, hestOpt *opt, const char *argv0, ! hestParm *parm); ! extern void hestGlossary(FILE *file, hestOpt *opt, hestParm *parm); ! extern void hestInfo(FILE *file, const char *argv0, const char *info, ! hestParm *parm); #ifdef __cplusplus --- 152,200 ---- /* defaultsHest.c */ ! TEEM_API int hestVerbosity; ! TEEM_API int hestRespFileEnable; ! TEEM_API int hestElideSingleEnumType; ! TEEM_API int hestElideSingleOtherType; ! TEEM_API int hestElideSingleOtherDefault; ! TEEM_API int hestElideSingleNonExistFloatDefault; ! TEEM_API int hestElideMultipleNonExistFloatDefault; ! TEEM_API int hestElideSingleEmptyStringDefault; ! TEEM_API int hestElideMultipleEmptyStringDefault; ! TEEM_API int hestGreedySingleString; ! TEEM_API int hestCleverPluralizeOtherY; ! TEEM_API int hestColumns; ! TEEM_API char hestRespFileFlag; ! TEEM_API char hestRespFileComment; ! TEEM_API char hestVarParamStopFlag; ! TEEM_API char hestMultiFlagSep; /* methodsHest.c */ ! TEEM_API hestParm *hestParmNew(void); ! TEEM_API hestParm *hestParmFree(hestParm *parm); ! TEEM_API void hestOptAdd(hestOpt **optP, ! char *flag, char *name, ! int type, int min, int max, ! void *valueP, const char *dflt, const char *info, ! ... /* int *sawP, airEnum *enm , hestCB *CB */); ! TEEM_API hestOpt *hestOptFree(hestOpt *opt); ! TEEM_API int hestOptCheck(hestOpt *opt, char **errP); /* parseHest.c */ ! TEEM_API int hestParse(hestOpt *opt, int argc, char **argv, ! char **errP, hestParm *parm); ! TEEM_API void *hestParseFree(hestOpt *opt); ! TEEM_API void hestParseOrDie(hestOpt *opt, int argc, char **argv, hestParm *parm, ! char *me, char *info, ! int doInfo, int doUsage, int doGlossary); /* usage.c */ ! TEEM_API void _hestPrintStr(FILE *f, int indent, int already, int width, ! const char *_str, int bslash); ! TEEM_API int hestMinNumArgs(hestOpt *opt); ! TEEM_API void hestUsage(FILE *file, hestOpt *opt, const char *argv0, ! hestParm *parm); ! TEEM_API void hestGlossary(FILE *file, hestOpt *opt, hestParm *parm); ! TEEM_API void hestInfo(FILE *file, const char *argv0, const char *info, ! hestParm *parm); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:13
|
Update of /cvsroot/teem/teem/src/limn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/limn Modified Files: limn.h Log Message: change from <lib>_export extern to TEEM_API Index: limn.h =================================================================== RCS file: /cvsroot/teem/teem/src/limn/limn.h,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** limn.h 13 Feb 2004 22:57:29 -0000 1.48 --- limn.h 19 Feb 2004 03:44:07 -0000 1.49 *************** *** 31,40 **** #include <teem/nrrd.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define limn_export __declspec(dllimport) - #else - #define limn_export - #endif - #ifdef __cplusplus extern "C" { --- 31,34 ---- *************** *** 352,487 **** /* defaultsLimn.c */ ! extern limn_export const char *limnBiffKey; ! extern limn_export int limnDefCameraAtRelative; ! extern limn_export int limnDefCameraOrthographic; ! extern limn_export int limnDefCameraRightHanded; /* qn.c */ ! extern limn_export int limnQNBins[LIMN_QN_MAX+1]; ! extern limn_export void (*limnQNtoV_f[LIMN_QN_MAX+1])(float *vec, int qn); ! extern limn_export void (*limnQNtoV_d[LIMN_QN_MAX+1])(double *vec, int qn); ! extern limn_export int (*limnVtoQN_f[LIMN_QN_MAX+1])(float *vec); ! extern limn_export int (*limnVtoQN_d[LIMN_QN_MAX+1])(double *vec); /* light.c */ ! extern void limnLightSet(limnLight *lit, int which, int vsp, ! float r, float g, float b, ! float x, float y, float z); ! extern void limnLightSetAmbient(limnLight *lit, float r, float g, float b); ! extern void limnLightSwitch(limnLight *lit, int which, int on); ! extern void limnLightReset(limnLight *lit); ! extern int limnLightUpdate(limnLight *lit, limnCamera *cam); /* env.c */ typedef void (*limnEnvMapCB)(float rgb[3], float vec[3], void *data); ! extern int limnEnvMapFill(Nrrd *envMap, limnEnvMapCB cb, int qnMethod, void *data); ! extern void limnLightDiffuseCB(float rgb[3], float vec[3], void *_lit); ! extern int limnEnvMapCheck(Nrrd *envMap); /* methodsLimn.c */ ! extern limnLight *limnLightNew(void); ! extern void limnCameraInit(limnCamera *cam); ! extern limnLight *limnLightNix(limnLight *); ! extern limnCamera *limnCameraNew(void); ! extern limnCamera *limnCameraNix(limnCamera *cam); ! extern limnWindow *limnWindowNew(int device); ! extern limnWindow *limnWindowNix(limnWindow *win); /* hestLimn.c */ ! extern void limnHestCameraOptAdd(hestOpt **hoptP, limnCamera *cam, ! char *frDef, char *atDef, char *upDef, ! char *dnDef, char *diDef, char *dfDef, ! char *urDef, char *vrDef); /* cam.c */ ! extern int limnCameraUpdate(limnCamera *cam); ! extern int limnCameraPathMake(limnCamera *cam, int numFrames, ! limnCamera *keycam, double *time, ! int numKeys, int trackFrom, ! limnSplineTypeSpec *quatType, ! limnSplineTypeSpec *posType, ! limnSplineTypeSpec *distType, ! limnSplineTypeSpec *uvType); /* obj.c */ ! extern int limnObjectLookAdd(limnObject *obj); ! extern limnObject *limnObjectNew(int incr, int doEdges); ! extern limnObject *limnObjectNix(limnObject *obj); ! extern int limnObjectPartAdd(limnObject *obj); ! extern int limnObjectVertexAdd(limnObject *obj, int partIdx, int lookIdx, ! float x, float y, float z); ! extern int limnObjectEdgeAdd(limnObject *obj, int partIdx, int lookIdx, ! int faceIdxIdx, int vertIdxIdx0, int vertIdxIdx1); ! extern int limnObjectFaceAdd(limnObject *obj, int partIdx, ! int lookIdx, int sideNum, int *vertIdxIdx); /* io.c */ ! extern int limnObjectDescribe(FILE *file, limnObject *obj); ! extern int limnObjectOFFRead(limnObject *obj, FILE *file); ! extern int limnObjectOFFWrite(FILE *file, limnObject *obj); /* shapes.c */ ! extern int limnObjectCubeAdd(limnObject *obj, int lookIdx); ! extern int limnObjectSquareAdd(limnObject *obj, int lookIdx); ! extern int limnObjectLoneEdgeAdd(limnObject *obj, int lookIdx); ! extern int limnObjectCylinderAdd(limnObject *obj, int lookIdx, ! int axis,int res); ! extern int limnObjectPolarSphereAdd(limnObject *obj, int lookIdx, int axis, ! int thetaRes, int phiRes); ! extern int limnObjectConeAdd(limnObject *obj, int lookIdx, int axis, int res); ! extern int limnObjectPolarSuperquadAdd(limnObject *obj, int lookIdx, int axis, ! float A, float B, ! int thetaRes, int phiRes); /* transform.c */ ! extern int limnObjectHomog(limnObject *obj, int space); ! extern int limnObjectNormals(limnObject *obj, int space); ! extern int limnObjectSpaceTransform(limnObject *obj, limnCamera *cam, ! limnWindow *win, int space); ! extern int limnObjectPartTransform(limnObject *obj, int partIdx, float tx[16]); ! extern int limnObjectDepthSortParts(limnObject *obj); ! extern int limnObjectDepthSortFaces(limnObject *obj); ! extern int limnObjectFaceReverse(limnObject *obj); /* renderLimn.c */ ! extern int limnObjectRender(limnObject *obj, limnCamera *cam, limnWindow *win); ! extern int limnObjectPSDraw(limnObject *obj, limnCamera *cam, ! Nrrd *envMap, limnWindow *win); ! extern int limnObjectPSDrawConcave(limnObject *obj, limnCamera *cam, ! Nrrd *envMap, limnWindow *win); /* splineMethods.c */ ! extern limnSplineTypeSpec *limnSplineTypeSpecNew(int type, ...); ! extern limnSplineTypeSpec *limnSplineTypeSpecNix(limnSplineTypeSpec *spec); ! extern limnSpline *limnSplineNew(Nrrd *ncpt, int info, ! limnSplineTypeSpec *spec); ! extern limnSpline *limnSplineNix(limnSpline *spline); ! extern int limnSplineNrrdCleverFix(Nrrd *nout, Nrrd *nin, int info, int type); ! extern limnSpline *limnSplineCleverNew(Nrrd *ncpt, int info, ! limnSplineTypeSpec *spec); ! extern int limnSplineUpdate(limnSpline *spline, Nrrd *ncpt); /* splineMisc.c */ ! extern limn_export airEnum *limnSplineType; ! extern limn_export airEnum *limnSplineInfo; ! extern limnSpline *limnSplineParse(char *str); ! extern limnSplineTypeSpec *limnSplineTypeSpecParse(char *str); ! extern limn_export hestCB *limnHestSpline; ! extern limn_export hestCB *limnHestSplineTypeSpec; ! extern limn_export int limnSplineInfoSize[LIMN_SPLINE_INFO_MAX+1]; ! extern limn_export ! int limnSplineTypeHasImplicitTangents[LIMN_SPLINE_TYPE_MAX+1]; ! extern int limnSplineNumPoints(limnSpline *spline); ! extern double limnSplineMinT(limnSpline *spline); ! extern double limnSplineMaxT(limnSpline *spline); ! extern void limnSplineBCSet(limnSpline *spline, double B, double C); /* splineEval.c */ ! extern void limnSplineEvaluate(double *out, limnSpline *spline, double time); ! extern int limnSplineNrrdEvaluate(Nrrd *nout, limnSpline *spline, Nrrd *nin); ! extern int limnSplineSample(Nrrd *nout, limnSpline *spline, ! double minT, int M, double maxT); --- 346,480 ---- /* defaultsLimn.c */ ! TEEM_API const char *limnBiffKey; ! TEEM_API int limnDefCameraAtRelative; ! TEEM_API int limnDefCameraOrthographic; ! TEEM_API int limnDefCameraRightHanded; /* qn.c */ ! TEEM_API int limnQNBins[LIMN_QN_MAX+1]; ! TEEM_API void (*limnQNtoV_f[LIMN_QN_MAX+1])(float *vec, int qn); ! TEEM_API void (*limnQNtoV_d[LIMN_QN_MAX+1])(double *vec, int qn); ! TEEM_API int (*limnVtoQN_f[LIMN_QN_MAX+1])(float *vec); ! TEEM_API int (*limnVtoQN_d[LIMN_QN_MAX+1])(double *vec); /* light.c */ ! TEEM_API void limnLightSet(limnLight *lit, int which, int vsp, ! float r, float g, float b, ! float x, float y, float z); ! TEEM_API void limnLightSetAmbient(limnLight *lit, float r, float g, float b); ! TEEM_API void limnLightSwitch(limnLight *lit, int which, int on); ! TEEM_API void limnLightReset(limnLight *lit); ! TEEM_API int limnLightUpdate(limnLight *lit, limnCamera *cam); /* env.c */ typedef void (*limnEnvMapCB)(float rgb[3], float vec[3], void *data); ! TEEM_API int limnEnvMapFill(Nrrd *envMap, limnEnvMapCB cb, int qnMethod, void *data); ! TEEM_API void limnLightDiffuseCB(float rgb[3], float vec[3], void *_lit); ! TEEM_API int limnEnvMapCheck(Nrrd *envMap); /* methodsLimn.c */ ! TEEM_API limnLight *limnLightNew(void); ! TEEM_API void limnCameraInit(limnCamera *cam); ! TEEM_API limnLight *limnLightNix(limnLight *); ! TEEM_API limnCamera *limnCameraNew(void); ! TEEM_API limnCamera *limnCameraNix(limnCamera *cam); ! TEEM_API limnWindow *limnWindowNew(int device); ! TEEM_API limnWindow *limnWindowNix(limnWindow *win); /* hestLimn.c */ ! TEEM_API void limnHestCameraOptAdd(hestOpt **hoptP, limnCamera *cam, ! char *frDef, char *atDef, char *upDef, ! char *dnDef, char *diDef, char *dfDef, ! char *urDef, char *vrDef); /* cam.c */ ! TEEM_API int limnCameraUpdate(limnCamera *cam); ! TEEM_API int limnCameraPathMake(limnCamera *cam, int numFrames, ! limnCamera *keycam, double *time, ! int numKeys, int trackFrom, ! limnSplineTypeSpec *quatType, ! limnSplineTypeSpec *posType, ! limnSplineTypeSpec *distType, ! limnSplineTypeSpec *uvType); /* obj.c */ ! TEEM_API int limnObjectLookAdd(limnObject *obj); ! TEEM_API limnObject *limnObjectNew(int incr, int doEdges); ! TEEM_API limnObject *limnObjectNix(limnObject *obj); ! TEEM_API int limnObjectPartAdd(limnObject *obj); ! TEEM_API int limnObjectVertexAdd(limnObject *obj, int partIdx, int lookIdx, ! float x, float y, float z); ! TEEM_API int limnObjectEdgeAdd(limnObject *obj, int partIdx, int lookIdx, ! int faceIdxIdx, int vertIdxIdx0, int vertIdxIdx1); ! TEEM_API int limnObjectFaceAdd(limnObject *obj, int partIdx, ! int lookIdx, int sideNum, int *vertIdxIdx); /* io.c */ ! TEEM_API int limnObjectDescribe(FILE *file, limnObject *obj); ! TEEM_API int limnObjectOFFRead(limnObject *obj, FILE *file); ! TEEM_API int limnObjectOFFWrite(FILE *file, limnObject *obj); /* shapes.c */ ! TEEM_API int limnObjectCubeAdd(limnObject *obj, int lookIdx); ! TEEM_API int limnObjectSquareAdd(limnObject *obj, int lookIdx); ! TEEM_API int limnObjectLoneEdgeAdd(limnObject *obj, int lookIdx); ! TEEM_API int limnObjectCylinderAdd(limnObject *obj, int lookIdx, ! int axis,int res); ! TEEM_API int limnObjectPolarSphereAdd(limnObject *obj, int lookIdx, int axis, ! int thetaRes, int phiRes); ! TEEM_API int limnObjectConeAdd(limnObject *obj, int lookIdx, int axis, int res); ! TEEM_API int limnObjectPolarSuperquadAdd(limnObject *obj, int lookIdx, int axis, ! float A, float B, ! int thetaRes, int phiRes); /* transform.c */ ! TEEM_API int limnObjectHomog(limnObject *obj, int space); ! TEEM_API int limnObjectNormals(limnObject *obj, int space); ! TEEM_API int limnObjectSpaceTransform(limnObject *obj, limnCamera *cam, ! limnWindow *win, int space); ! TEEM_API int limnObjectPartTransform(limnObject *obj, int partIdx, float tx[16]); ! TEEM_API int limnObjectDepthSortParts(limnObject *obj); ! TEEM_API int limnObjectDepthSortFaces(limnObject *obj); ! TEEM_API int limnObjectFaceReverse(limnObject *obj); /* renderLimn.c */ ! TEEM_API int limnObjectRender(limnObject *obj, limnCamera *cam, limnWindow *win); ! TEEM_API int limnObjectPSDraw(limnObject *obj, limnCamera *cam, ! Nrrd *envMap, limnWindow *win); ! TEEM_API int limnObjectPSDrawConcave(limnObject *obj, limnCamera *cam, ! Nrrd *envMap, limnWindow *win); /* splineMethods.c */ ! TEEM_API limnSplineTypeSpec *limnSplineTypeSpecNew(int type, ...); ! TEEM_API limnSplineTypeSpec *limnSplineTypeSpecNix(limnSplineTypeSpec *spec); ! TEEM_API limnSpline *limnSplineNew(Nrrd *ncpt, int info, ! limnSplineTypeSpec *spec); ! TEEM_API limnSpline *limnSplineNix(limnSpline *spline); ! TEEM_API int limnSplineNrrdCleverFix(Nrrd *nout, Nrrd *nin, int info, int type); ! TEEM_API limnSpline *limnSplineCleverNew(Nrrd *ncpt, int info, ! limnSplineTypeSpec *spec); ! TEEM_API int limnSplineUpdate(limnSpline *spline, Nrrd *ncpt); /* splineMisc.c */ ! TEEM_API airEnum *limnSplineType; ! TEEM_API airEnum *limnSplineInfo; ! TEEM_API limnSpline *limnSplineParse(char *str); ! TEEM_API limnSplineTypeSpec *limnSplineTypeSpecParse(char *str); ! TEEM_API hestCB *limnHestSpline; ! TEEM_API hestCB *limnHestSplineTypeSpec; ! TEEM_API int limnSplineInfoSize[LIMN_SPLINE_INFO_MAX+1]; ! TEEM_API int limnSplineTypeHasImplicitTangents[LIMN_SPLINE_TYPE_MAX+1]; ! TEEM_API int limnSplineNumPoints(limnSpline *spline); ! TEEM_API double limnSplineMinT(limnSpline *spline); ! TEEM_API double limnSplineMaxT(limnSpline *spline); ! TEEM_API void limnSplineBCSet(limnSpline *spline, double B, double C); /* splineEval.c */ ! TEEM_API void limnSplineEvaluate(double *out, limnSpline *spline, double time); ! TEEM_API int limnSplineNrrdEvaluate(Nrrd *nout, limnSpline *spline, Nrrd *nin); ! TEEM_API int limnSplineSample(Nrrd *nout, limnSpline *spline, ! double minT, int M, double maxT); |
|
From: <kin...@us...> - 2004-02-19 03:54:12
|
Update of /cvsroot/teem/teem/src/unrrdu In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/unrrdu Modified Files: unrrdu.h Log Message: change from <lib>_export extern to TEEM_API Index: unrrdu.h =================================================================== RCS file: /cvsroot/teem/teem/src/unrrdu/unrrdu.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** unrrdu.h 7 Jan 2004 15:34:31 -0000 1.24 --- unrrdu.h 19 Feb 2004 03:44:06 -0000 1.25 *************** *** 26,35 **** #include <teem/nrrd.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define unrrdu_export __declspec(dllimport) - #else - #define unrrdu_export - #endif - #ifdef __cplusplus extern "C" { --- 26,29 ---- *************** *** 94,98 **** That's it. ********************************************************** */ ! #define UNRRDU_DECLARE(C) extern unrrdu_export unrrduCmd unrrdu_##C##Cmd; #define UNRRDU_LIST(C) &unrrdu_##C##Cmd, #define UNRRDU_MAP(F) \ --- 88,92 ---- That's it. ********************************************************** */ ! #define UNRRDU_DECLARE(C) TEEM_API unrrduCmd unrrdu_##C##Cmd; #define UNRRDU_LIST(C) &unrrdu_##C##Cmd, #define UNRRDU_MAP(F) \ *************** *** 163,177 **** /* flotsam.c */ ! extern unrrdu_export const char *unrrduBiffKey; ! extern unrrdu_export int unrrduDefNumColumns; /* addresses of all unrrdu_xxxCmd */ ! extern unrrdu_export unrrduCmd *unrrduCmdList[]; ! extern void unrrduUsage(const char *me, hestParm *hparm); ! extern unrrdu_export hestCB unrrduHestPosCB; ! extern unrrdu_export hestCB unrrduHestMaybeTypeCB; ! extern unrrdu_export hestCB unrrduHestScaleCB; ! extern unrrdu_export hestCB unrrduHestBitsCB; ! extern unrrdu_export hestCB unrrduHestFileCB; ! extern unrrdu_export hestCB unrrduHestEncodingCB; --- 157,171 ---- /* flotsam.c */ ! TEEM_API const char *unrrduBiffKey; ! TEEM_API int unrrduDefNumColumns; /* addresses of all unrrdu_xxxCmd */ ! TEEM_API unrrduCmd *unrrduCmdList[]; ! TEEM_API void unrrduUsage(const char *me, hestParm *hparm); ! TEEM_API hestCB unrrduHestPosCB; ! TEEM_API hestCB unrrduHestMaybeTypeCB; ! TEEM_API hestCB unrrduHestScaleCB; ! TEEM_API hestCB unrrduHestBitsCB; ! TEEM_API hestCB unrrduHestFileCB; ! TEEM_API hestCB unrrduHestEncodingCB; |
|
From: <kin...@us...> - 2004-02-19 03:54:12
|
Update of /cvsroot/teem/teem/src/ten In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/ten Modified Files: ten.h Log Message: change from <lib>_export extern to TEEM_API Index: ten.h =================================================================== RCS file: /cvsroot/teem/teem/src/ten/ten.h,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** ten.h 13 Feb 2004 23:00:08 -0000 1.71 --- ten.h 19 Feb 2004 03:44:06 -0000 1.72 *************** *** 35,44 **** #include "tenMacros.h" - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define ten_export __declspec(dllimport) - #else - #define ten_export - #endif - #ifdef __cplusplus extern "C" { --- 35,38 ---- *************** *** 332,461 **** /* defaultsTen.c */ ! extern ten_export const char *tenBiffKey; ! extern ten_export const char tenDefFiberKernel[]; ! extern ten_export double tenDefFiberStepSize; ! extern ten_export int tenDefFiberUseIndexSpace; ! extern ten_export double tenDefFiberMaxHalfLen; ! extern ten_export int tenDefFiberAnisoType; ! extern ten_export double tenDefFiberAnisoThresh; ! extern ten_export int tenDefFiberIntg; ! extern ten_export double tenDefFiberWPunct; /* enumsTen.c */ ! extern ten_export airEnum *tenAniso; ! extern ten_export airEnum _tenGage; ! extern ten_export airEnum *tenGage; ! extern ten_export airEnum *tenFiberType; ! extern ten_export airEnum *tenFiberStop; ! extern ten_export airEnum *tenGlyphType; /* glyph.c */ ! extern tenGlyphParm *tenGlyphParmNew(); ! extern tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm); ! extern int tenGlyphParmCheck(tenGlyphParm *parm, ! Nrrd *nten, Nrrd *npos, Nrrd *nslc); ! extern int tenGlyphGen(limnObject *glyphs, echoScene *scene, ! tenGlyphParm *parm, ! Nrrd *nten, Nrrd *npos, Nrrd *nslc); /* tensor.c */ ! extern ten_export int tenVerbose; ! extern int tenTensorCheck(Nrrd *nin, int wantType, int want4D, int useBiff); ! extern int tenExpand(Nrrd *tnine, Nrrd *tseven, float scale, float thresh); ! extern int tenShrink(Nrrd *tseven, Nrrd *nconf, Nrrd *tnine); ! extern int tenEigensolve(float eval[3], float evec[9], float ten[7]); ! extern void tenMakeOne(float ten[7], float conf, float eval[3], float evec[9]); ! extern int tenMake(Nrrd *nout, Nrrd *nconf, Nrrd *neval, Nrrd *nevec); ! extern int tenSlice(Nrrd *nout, Nrrd *nten, int axis, int pos, int dim); /* chan.c */ /* old tenCalc* functions replaced by tenEstimate* */ ! extern int tenBMatrixCalc(Nrrd *nbmat, Nrrd *ngrad); ! extern int tenEMatrixCalc(Nrrd *nemat, Nrrd *nbmat, int knownB0); ! extern void tenEstimateLinearSingle(float *ten, float *B0P, float *dwi, ! double *emat, int DD, int knownB0, ! float thresh, float soft, float b); ! extern int tenEstimateLinear3D(Nrrd *nten, Nrrd **nterrP, Nrrd **nB0P, ! Nrrd **ndwi, int dwiLen, ! Nrrd *nbmat, int knownB0, ! float thresh, float soft, float b); ! extern int tenEstimateLinear4D(Nrrd *nten, Nrrd **nterrP, Nrrd **nB0P, ! Nrrd *ndwi, Nrrd *_nbmat, int knownB0, ! float thresh, float soft, float b); ! extern void tenSimulateOne(float *dwi, float B0, float *ten, ! double *bmat, int DD, float b); ! extern int tenSimulate(Nrrd *ndwi, Nrrd *nT2, Nrrd *nten, ! Nrrd *nbmat, float b); /* aniso.c */ ! extern ten_export float tenAnisoSigma; /* added to denominator ! in Westin anisos */ ! extern void tenAnisoCalc(float c[TEN_ANISO_MAX+1], float eval[3]); ! extern int tenAnisoPlot(Nrrd *nout, int aniso, int res, int whole); ! extern int tenAnisoVolume(Nrrd *nout, Nrrd *nin, int aniso, float thresh); ! extern int tenAnisoHistogram(Nrrd *nout, Nrrd *nin, ! int version, int resolution); /* miscTen.c */ ! extern int tenEvecRGB(Nrrd *nout, Nrrd *nin, int which, int aniso, ! float gamma, float bgGray, float isoGray); ! extern short tenEvqOne(float vec[3], float scl); ! extern int tenEvqVolume(Nrrd *nout, Nrrd *nin, int which, ! int aniso, int scaleByAniso); ! extern int tenGradCheck(Nrrd *ngrad); ! extern int tenBMatrixCheck(Nrrd *nbmat); ! extern int _tenFindValley(float *valP, Nrrd *nhist, float tweak); /* fiberMethods.c */ ! extern tenFiberContext *tenFiberContextNew(Nrrd *dtvol); ! extern int tenFiberTypeSet(tenFiberContext *tfx, int type); ! extern int tenFiberKernelSet(tenFiberContext *tfx, ! const NrrdKernel *kern, ! double parm[NRRD_KERNEL_PARMS_NUM]); ! extern int tenFiberIntgSet(tenFiberContext *tfx, int intg); ! extern int tenFiberStopSet(tenFiberContext *tfx, int stop, ...); ! extern void tenFiberStopReset(tenFiberContext *tfx); ! extern int tenFiberIntSet(tenFiberContext *tfx, int intType); ! extern int tenFiberParmSet(tenFiberContext *tfx, int parm, double val); ! extern int tenFiberUpdate(tenFiberContext *tfx); ! extern tenFiberContext *tenFiberContextNix(tenFiberContext *tfx); /* fiber.c */ ! extern int tenFiberTrace(tenFiberContext *tfx, Nrrd *fiber, double start[3]); /* epireg.c */ ! extern int tenEpiRegister3D(Nrrd **nout, Nrrd **ndwi, int dwiLen, Nrrd *ngrad, ! int reference, ! float bwX, float bwY, float fitFrac, float DWthr, ! int doCC, ! const NrrdKernel *kern, double *kparm, ! int progress, int verbose); ! extern int tenEpiRegister4D(Nrrd *nout, Nrrd *nin, Nrrd *ngrad, ! int reference, ! float bwX, float bwY, float fitFrac, ! float DWthr, int doCC, ! const NrrdKernel *kern, double *kparm, ! int progress, int verbose); /* mod.c */ ! extern int tenSizeNormalize(Nrrd *nout, Nrrd *nin, float weight[3], ! float amount, float target); ! extern int tenSizeScale(Nrrd *nout, Nrrd *nin, float amount); ! extern int tenAnisoScale(Nrrd *nout, Nrrd *nin, float amount, ! int fixDet, int makePositive); ! extern int tenEigenvaluePower(Nrrd *nout, Nrrd *nin, float expo); ! extern int tenEigenvalueClamp(Nrrd *nout, Nrrd *nin, float min, float max); ! extern int tenEigenvalueAdd(Nrrd *nout, Nrrd *nin, float val); /* tenGage.c */ ! extern ten_export gageKind *tenGageKind; /* bimod.c */ ! extern tenEMBimodalParm* tenEMBimodalParmNew(void); ! extern tenEMBimodalParm* tenEMBimodalParmNix(tenEMBimodalParm *biparm); ! extern int tenEMBimodal(tenEMBimodalParm *biparm, Nrrd *nhisto); /* tend{Flotsam,Anplot,Anvol,Evec,Eval,...}.c */ ! #define TEND_DECLARE(C) extern ten_export unrrduCmd tend_##C##Cmd; #define TEND_LIST(C) &tend_##C##Cmd, /* removed from below (superseded by estim): F(calc) \ */ --- 326,454 ---- /* defaultsTen.c */ ! TEEM_API const char *tenBiffKey; ! TEEM_API const char tenDefFiberKernel[]; ! TEEM_API double tenDefFiberStepSize; ! TEEM_API int tenDefFiberUseIndexSpace; ! TEEM_API double tenDefFiberMaxHalfLen; ! TEEM_API int tenDefFiberAnisoType; ! TEEM_API double tenDefFiberAnisoThresh; ! TEEM_API int tenDefFiberIntg; ! TEEM_API double tenDefFiberWPunct; /* enumsTen.c */ ! TEEM_API airEnum *tenAniso; ! TEEM_API airEnum _tenGage; ! TEEM_API airEnum *tenGage; ! TEEM_API airEnum *tenFiberType; ! TEEM_API airEnum *tenFiberStop; ! TEEM_API airEnum *tenGlyphType; /* glyph.c */ ! TEEM_API tenGlyphParm *tenGlyphParmNew(); ! TEEM_API tenGlyphParm *tenGlyphParmNix(tenGlyphParm *parm); ! TEEM_API int tenGlyphParmCheck(tenGlyphParm *parm, ! Nrrd *nten, Nrrd *npos, Nrrd *nslc); ! TEEM_API int tenGlyphGen(limnObject *glyphs, echoScene *scene, ! tenGlyphParm *parm, ! Nrrd *nten, Nrrd *npos, Nrrd *nslc); /* tensor.c */ ! TEEM_API int tenVerbose; ! TEEM_API int tenTensorCheck(Nrrd *nin, int wantType, int want4D, int useBiff); ! TEEM_API int tenExpand(Nrrd *tnine, Nrrd *tseven, float scale, float thresh); ! TEEM_API int tenShrink(Nrrd *tseven, Nrrd *nconf, Nrrd *tnine); ! TEEM_API int tenEigensolve(float eval[3], float evec[9], float ten[7]); ! TEEM_API void tenMakeOne(float ten[7], float conf, float eval[3], float evec[9]); ! TEEM_API int tenMake(Nrrd *nout, Nrrd *nconf, Nrrd *neval, Nrrd *nevec); ! TEEM_API int tenSlice(Nrrd *nout, Nrrd *nten, int axis, int pos, int dim); /* chan.c */ /* old tenCalc* functions replaced by tenEstimate* */ ! TEEM_API int tenBMatrixCalc(Nrrd *nbmat, Nrrd *ngrad); ! TEEM_API int tenEMatrixCalc(Nrrd *nemat, Nrrd *nbmat, int knownB0); ! TEEM_API void tenEstimateLinearSingle(float *ten, float *B0P, float *dwi, ! double *emat, int DD, int knownB0, ! float thresh, float soft, float b); ! TEEM_API int tenEstimateLinear3D(Nrrd *nten, Nrrd **nterrP, Nrrd **nB0P, ! Nrrd **ndwi, int dwiLen, ! Nrrd *nbmat, int knownB0, ! float thresh, float soft, float b); ! TEEM_API int tenEstimateLinear4D(Nrrd *nten, Nrrd **nterrP, Nrrd **nB0P, ! Nrrd *ndwi, Nrrd *_nbmat, int knownB0, ! float thresh, float soft, float b); ! TEEM_API void tenSimulateOne(float *dwi, float B0, float *ten, ! double *bmat, int DD, float b); ! TEEM_API int tenSimulate(Nrrd *ndwi, Nrrd *nT2, Nrrd *nten, ! Nrrd *nbmat, float b); /* aniso.c */ ! TEEM_API float tenAnisoSigma; /* added to denominator in Westin anisos */ ! TEEM_API void tenAnisoCalc(float c[TEN_ANISO_MAX+1], float eval[3]); ! TEEM_API int tenAnisoPlot(Nrrd *nout, int aniso, int res, int whole); ! TEEM_API int tenAnisoVolume(Nrrd *nout, Nrrd *nin, int aniso, float thresh); ! TEEM_API int tenAnisoHistogram(Nrrd *nout, Nrrd *nin, ! int version, int resolution); /* miscTen.c */ ! TEEM_API int tenEvecRGB(Nrrd *nout, Nrrd *nin, int which, int aniso, ! float gamma, float bgGray, float isoGray); ! TEEM_API short tenEvqOne(float vec[3], float scl); ! TEEM_API int tenEvqVolume(Nrrd *nout, Nrrd *nin, int which, ! int aniso, int scaleByAniso); ! TEEM_API int tenGradCheck(Nrrd *ngrad); ! TEEM_API int tenBMatrixCheck(Nrrd *nbmat); ! TEEM_API int _tenFindValley(float *valP, Nrrd *nhist, float tweak); /* fiberMethods.c */ ! TEEM_API tenFiberContext *tenFiberContextNew(Nrrd *dtvol); ! TEEM_API int tenFiberTypeSet(tenFiberContext *tfx, int type); ! TEEM_API int tenFiberKernelSet(tenFiberContext *tfx, ! const NrrdKernel *kern, ! double parm[NRRD_KERNEL_PARMS_NUM]); ! TEEM_API int tenFiberIntgSet(tenFiberContext *tfx, int intg); ! TEEM_API int tenFiberStopSet(tenFiberContext *tfx, int stop, ...); ! TEEM_API void tenFiberStopReset(tenFiberContext *tfx); ! TEEM_API int tenFiberIntSet(tenFiberContext *tfx, int intType); ! TEEM_API int tenFiberParmSet(tenFiberContext *tfx, int parm, double val); ! TEEM_API int tenFiberUpdate(tenFiberContext *tfx); ! TEEM_API tenFiberContext *tenFiberContextNix(tenFiberContext *tfx); /* fiber.c */ ! TEEM_API int tenFiberTrace(tenFiberContext *tfx, Nrrd *fiber, double start[3]); /* epireg.c */ ! TEEM_API int tenEpiRegister3D(Nrrd **nout, Nrrd **ndwi, int dwiLen, Nrrd *ngrad, ! int reference, ! float bwX, float bwY, float fitFrac, float DWthr, ! int doCC, ! const NrrdKernel *kern, double *kparm, ! int progress, int verbose); ! TEEM_API int tenEpiRegister4D(Nrrd *nout, Nrrd *nin, Nrrd *ngrad, ! int reference, ! float bwX, float bwY, float fitFrac, ! float DWthr, int doCC, ! const NrrdKernel *kern, double *kparm, ! int progress, int verbose); /* mod.c */ ! TEEM_API int tenSizeNormalize(Nrrd *nout, Nrrd *nin, float weight[3], ! float amount, float target); ! TEEM_API int tenSizeScale(Nrrd *nout, Nrrd *nin, float amount); ! TEEM_API int tenAnisoScale(Nrrd *nout, Nrrd *nin, float amount, ! int fixDet, int makePositive); ! TEEM_API int tenEigenvaluePower(Nrrd *nout, Nrrd *nin, float expo); ! TEEM_API int tenEigenvalueClamp(Nrrd *nout, Nrrd *nin, float min, float max); ! TEEM_API int tenEigenvalueAdd(Nrrd *nout, Nrrd *nin, float val); /* tenGage.c */ ! TEEM_API gageKind *tenGageKind; /* bimod.c */ ! TEEM_API tenEMBimodalParm* tenEMBimodalParmNew(void); ! TEEM_API tenEMBimodalParm* tenEMBimodalParmNix(tenEMBimodalParm *biparm); ! TEEM_API int tenEMBimodal(tenEMBimodalParm *biparm, Nrrd *nhisto); /* tend{Flotsam,Anplot,Anvol,Evec,Eval,...}.c */ ! #define TEND_DECLARE(C) TEEM_API unrrduCmd tend_##C##Cmd; #define TEND_LIST(C) &tend_##C##Cmd, /* removed from below (superseded by estim): F(calc) \ */ *************** *** 489,495 **** F(satin) TEND_MAP(TEND_DECLARE) ! extern ten_export unrrduCmd *tendCmdList[]; ! extern void tendUsage(char *me, hestParm *hparm); ! extern ten_export hestCB *tendFiberStopCB; #ifdef __cplusplus --- 482,488 ---- F(satin) TEND_MAP(TEND_DECLARE) ! TEEM_API unrrduCmd *tendCmdList[]; ! TEEM_API void tendUsage(char *me, hestParm *hparm); ! TEEM_API hestCB *tendFiberStopCB; #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-19 03:54:12
|
Update of /cvsroot/teem/teem/src/moss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21818/moss Modified Files: moss.h Log Message: change from <lib>_export extern to TEEM_API Index: moss.h =================================================================== RCS file: /cvsroot/teem/teem/src/moss/moss.h,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** moss.h 16 Jan 2004 17:40:14 -0000 1.19 --- moss.h 19 Feb 2004 03:44:07 -0000 1.20 *************** *** 29,38 **** #include <teem/nrrd.h> - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define moss_export __declspec(dllimport) - #else - #define moss_export - #endif - #ifdef __cplusplus extern "C" { --- 29,32 ---- *************** *** 75,123 **** /* defaultsMoss.c */ ! extern moss_export const char *mossBiffKey; ! extern moss_export int mossDefBoundary; ! extern moss_export int mossDefCenter; ! extern moss_export int mossVerbose; /* methodsMoss.c */ ! extern mossSampler *mossSamplerNew(); ! extern int mossSamplerFill(mossSampler *smplr, int fdiam, int ncol); ! extern void mossSamplerEmpty(mossSampler *smplr); ! extern mossSampler *mossSamplerNix(mossSampler *smplr); ! extern int mossImageCheck(Nrrd *image); ! extern int mossImageAlloc(Nrrd *image, int type, int sx, int sy, int ncol); /* sampler.c */ ! extern int mossSamplerImageSet(mossSampler *smplr, Nrrd *image, float *bg); ! extern int mossSamplerKernelSet(mossSampler *smplr, ! const NrrdKernel *kernel, double *kparm); ! extern int mossSamplerUpdate(mossSampler *smplr); ! extern int mossSamplerSample(float *val, mossSampler *smplr, ! double xPos, double yPos); /* hestMoss.c */ ! extern moss_export hestCB *mossHestTransform; ! extern moss_export hestCB *mossHestOrigin; /* xform.c */ ! extern void mossMatPrint(FILE *f, double *mat); ! extern double *mossMatRightMultiply(double *mat, double *x); ! extern double *mossMatLeftMultiply (double *mat, double *x); ! extern double *mossMatInvert(double *inv, double *mat); ! extern double *mossMatIdentitySet(double *mat); ! extern double *mossMatTranslateSet(double *mat, double tx, double ty); ! extern double *mossMatRotateSet(double *mat, double angle); ! extern double *mossMatFlipSet(double *mat, double angle); ! extern double *mossMatShearSet(double *mat, double angleFixed, ! double amount); ! extern double *mossMatScaleSet(double *mat, double sx, double sy); ! extern void mossMatApply(double *ox, double *oy, double *mat, ! double ix, double iy); ! extern int mossLinearTransform(Nrrd *nout, Nrrd *nin, float *bg, ! double *mat, ! mossSampler *msp, ! double xMin, double xMax, ! double yMin, double yMax, ! int sx, int sy); --- 69,117 ---- /* defaultsMoss.c */ ! TEEM_API const char *mossBiffKey; ! TEEM_API int mossDefBoundary; ! TEEM_API int mossDefCenter; ! TEEM_API int mossVerbose; /* methodsMoss.c */ ! TEEM_API mossSampler *mossSamplerNew(); ! TEEM_API int mossSamplerFill(mossSampler *smplr, int fdiam, int ncol); ! TEEM_API void mossSamplerEmpty(mossSampler *smplr); ! TEEM_API mossSampler *mossSamplerNix(mossSampler *smplr); ! TEEM_API int mossImageCheck(Nrrd *image); ! TEEM_API int mossImageAlloc(Nrrd *image, int type, int sx, int sy, int ncol); /* sampler.c */ ! TEEM_API int mossSamplerImageSet(mossSampler *smplr, Nrrd *image, float *bg); ! TEEM_API int mossSamplerKernelSet(mossSampler *smplr, ! const NrrdKernel *kernel, double *kparm); ! TEEM_API int mossSamplerUpdate(mossSampler *smplr); ! TEEM_API int mossSamplerSample(float *val, mossSampler *smplr, ! double xPos, double yPos); /* hestMoss.c */ ! TEEM_API hestCB *mossHestTransform; ! TEEM_API hestCB *mossHestOrigin; /* xform.c */ ! TEEM_API void mossMatPrint(FILE *f, double *mat); ! TEEM_API double *mossMatRightMultiply(double *mat, double *x); ! TEEM_API double *mossMatLeftMultiply (double *mat, double *x); ! TEEM_API double *mossMatInvert(double *inv, double *mat); ! TEEM_API double *mossMatIdentitySet(double *mat); ! TEEM_API double *mossMatTranslateSet(double *mat, double tx, double ty); ! TEEM_API double *mossMatRotateSet(double *mat, double angle); ! TEEM_API double *mossMatFlipSet(double *mat, double angle); ! TEEM_API double *mossMatShearSet(double *mat, double angleFixed, ! double amount); ! TEEM_API double *mossMatScaleSet(double *mat, double sx, double sy); ! TEEM_API void mossMatApply(double *ox, double *oy, double *mat, ! double ix, double iy); ! TEEM_API int mossLinearTransform(Nrrd *nout, Nrrd *nin, float *bg, ! double *mat, ! mossSampler *msp, ! double xMin, double xMax, ! double yMin, double yMax, ! int sx, int sy); |
|
From: <kin...@us...> - 2004-02-14 20:33:20
|
Update of /cvsroot/teem/NrrdIO In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23698 Modified Files: NrrdIO.h enum.c keyvalue.c miscAir.c read.c sane.c Log Message: now with TEEM_API Index: NrrdIO.h =================================================================== RCS file: /cvsroot/teem/NrrdIO/NrrdIO.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** NrrdIO.h 21 Dec 2003 06:40:51 -0000 1.1.1.1 --- NrrdIO.h 14 Feb 2004 20:26:32 -0000 1.2 *************** *** 44,62 **** #endif ! #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) ! #define air_export __declspec(dllimport) ! #else ! #define air_export #endif ! #ifdef _WIN32 ! #if _MSC_VER < 1300 || !defined(_USE_MATH_DEFINES) ! #ifndef M_PI ! #define M_PI 3.14159265358979323846 ! #endif ! #ifndef M_E ! #define M_E 2.71828182845904523536 ! #endif ! #endif #endif --- 44,71 ---- #endif ! /* define TEEM_API */ ! #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(TEEM_STATIC) ! # if defined(TEEM_BUILD) ! # define TEEM_API extern __declspec(dllexport) ! # else ! # define TEEM_API extern __declspec(dllimport) ! # endif ! #else /* TEEM_STATIC || UNIX */ ! # define TEEM_API extern #endif ! #if defined(_MSC_VER) ! /* get rid of some warnings on VC++ */ ! # pragma warning ( disable : 4244 ) ! # pragma warning ( disable : 4305 ) ! # pragma warning ( disable : 4309 ) ! # pragma warning ( disable : 4273 ) ! /* add essential math definitions */ ! # ifndef M_PI ! # define M_PI 3.14159265358979323846 ! # endif ! # ifndef M_E ! # define M_E 2.71828182845904523536 ! # endif #endif *************** *** 117,126 **** int sense; /* require case matching on strings */ } airEnum; ! extern int airEnumUnknown(airEnum *enm); ! extern int airEnumValCheck(airEnum *enm, int val); ! extern char *airEnumStr(airEnum *enm, int val); ! extern char *airEnumDesc(airEnum *enm, int val); ! extern int airEnumVal(airEnum *enm, const char *str); ! extern char *airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt); /* --- 126,136 ---- int sense; /* require case matching on strings */ } airEnum; ! TEEM_API int airEnumUnknown(airEnum *enm); ! TEEM_API int airEnumValCheck(airEnum *enm, int val); ! TEEM_API char *airEnumStr(airEnum *enm, int val); ! TEEM_API char *airEnumDesc(airEnum *enm, int val); ! TEEM_API int airEnumVal(airEnum *enm, const char *str); ! TEEM_API char *airEnumFmtDesc(airEnum *enm, int val, int canon, ! const char *fmt); /* *************** *** 138,143 **** }; /* endianAir.c */ ! extern air_export airEnum *airEndian; ! extern air_export const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ --- 148,153 ---- }; /* endianAir.c */ ! TEEM_API airEnum *airEndian; ! TEEM_API const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ *************** *** 179,191 **** } airArray; ! extern airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! extern void airArrayStructCB(airArray *a, ! void (*initCB)(void *), void (*doneCB)(void *)); ! extern void airArrayPointerCB(airArray *a, ! void *(*allocCB)(void), void *(*freeCB)(void *)); ! extern int airArraySetLen(airArray *a, int newlen); ! extern int airArrayIncrLen(airArray *a, int delta); ! extern airArray *airArrayNix(airArray *a); ! extern airArray *airArrayNuke(airArray *a); --- 189,201 ---- } airArray; ! TEEM_API airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! TEEM_API void airArrayStructCB(airArray *a, void (*initCB)(void *), ! void (*doneCB)(void *)); ! TEEM_API void airArrayPointerCB(airArray *a, void *(*allocCB)(void), ! void *(*freeCB)(void *)); ! TEEM_API int airArraySetLen(airArray *a, int newlen); ! TEEM_API int airArrayIncrLen(airArray *a, int delta); ! TEEM_API airArray *airArrayNix(airArray *a); ! TEEM_API airArray *airArrayNuke(airArray *a); *************** *** 227,253 **** double d; } airDouble; ! extern air_export const int airMyQNaNHiBit; ! extern air_export const int airMyBigBitField; ! extern float airFPPartsToVal_f(int sign, int exp, int frac); ! extern void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! extern double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! extern void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, ! double v); ! extern float airFPGen_f(int cls); ! extern double airFPGen_d(int cls); ! extern int airFPClass_f(float val); ! extern int airFPClass_d(double val); ! extern void airFPFprintf_f(FILE *file, float val); ! extern void airFPFprintf_d(FILE *file, double val); ! extern air_export const airFloat airFloatQNaN; ! extern air_export const airFloat airFloatSNaN; ! extern air_export const airFloat airFloatPosInf; ! extern air_export const airFloat airFloatNegInf; ! extern float airNaN(); ! extern int airIsNaN(float f); ! extern int airIsInf_f(float f); ! extern int airIsInf_d(double d); ! extern int airExists_f(float f); ! extern int airExists_d(double d); /* --- 237,263 ---- double d; } airDouble; ! TEEM_API const int airMyQNaNHiBit; ! TEEM_API const int airMyBigBitField; ! TEEM_API float airFPPartsToVal_f(int sign, int exp, int frac); ! TEEM_API void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! TEEM_API double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! TEEM_API void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, ! double v); ! TEEM_API float airFPGen_f(int cls); ! TEEM_API double airFPGen_d(int cls); ! TEEM_API int airFPClass_f(float val); ! TEEM_API int airFPClass_d(double val); ! TEEM_API void airFPFprintf_f(FILE *file, float val); ! TEEM_API void airFPFprintf_d(FILE *file, double val); ! TEEM_API const airFloat airFloatQNaN; ! TEEM_API const airFloat airFloatSNaN; ! TEEM_API const airFloat airFloatPosInf; ! TEEM_API const airFloat airFloatNegInf; ! TEEM_API float airNaN(); ! TEEM_API int airIsNaN(float f); ! TEEM_API int airIsInf_f(float f); ! TEEM_API int airIsInf_d(double d); ! TEEM_API int airExists_f(float f); ! TEEM_API int airExists_d(double d); /* *************** *** 272,309 **** #define AIR_TYPE_MAX 8 /* parseAir.c */ ! extern double airAtod(const char *str); ! extern int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! extern airEnum *airBool; ! extern int airParseStrB(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! extern int airParseStrI(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! extern int airParseStrF(float *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! extern int airParseStrD(double *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! extern int airParseStrC(char *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! extern int airParseStrS(char **out, const char *s, ! const char *ct, int n, ... /* REQUIRED, even if n>1: ! int greedy */); ! extern int airParseStrE(int *out, const char *s, ! const char *ct, int n, ... /* REQUIRED: airEnum *e */); ! extern air_export int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, ! const char *, int, ...); /* string.c */ ! extern char *airStrdup(const char *s); ! extern size_t airStrlen(const char *s); ! extern air_export int airStrtokQuoting; ! extern char *airStrtok(char *s, const char *ct, char **last); ! extern int airStrntok(const char *s, const char *ct); ! extern char *airStrtrans(char *s, char from, char to); ! extern int airEndsWith(const char *s, const char *suff); ! extern char *airUnescape(char *s); ! extern char *airOneLinify(char *s); ! extern char *airToLower(char *str); ! extern char *airToUpper(char *str); ! extern int airOneLine(FILE *file, char *line, int size); /* sane.c */ --- 282,319 ---- #define AIR_TYPE_MAX 8 /* parseAir.c */ ! TEEM_API double airAtod(const char *str); ! TEEM_API int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! TEEM_API airEnum *airBool; ! TEEM_API int airParseStrB(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrI(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrF(float *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrD(double *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrC(char *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrS(char **out, const char *s, ! const char *ct, int n, ... /* REQUIRED, even if n>1: ! int greedy */); ! TEEM_API int airParseStrE(int *out, const char *s, ! const char *ct, int n, ... /* REQ'ED: airEnum *e */); ! TEEM_API int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, ! const char *, int, ...); /* string.c */ ! TEEM_API char *airStrdup(const char *s); ! TEEM_API size_t airStrlen(const char *s); ! TEEM_API int airStrtokQuoting; ! TEEM_API char *airStrtok(char *s, const char *ct, char **last); ! TEEM_API int airStrntok(const char *s, const char *ct); ! TEEM_API char *airStrtrans(char *s, char from, char to); ! TEEM_API int airEndsWith(const char *s, const char *suff); ! TEEM_API char *airUnescape(char *s); ! TEEM_API char *airOneLinify(char *s); ! TEEM_API char *airToLower(char *str); ! TEEM_API char *airToUpper(char *str); ! TEEM_API int airOneLine(FILE *file, char *line, int size); /* sane.c */ *************** *** 325,346 **** airInsane_dio, /* 7: airMyDio set to something invalid */ airInsane_32Bit, /* 8: airMy32Bit is wrong */ ! airInsane_FISize, /* 9: sizeof(float), sizeof(int) not 4 */ ! airInsane_DLSize /* 10: sizeof(double), sizeof(airLLong) not 8 */ }; ! #define AIR_INSANE_MAX 10 ! extern const char *airInsaneErr(int insane); ! extern int airSanity(); /* miscAir.c */ ! extern air_export const char *airTeemVersion; ! extern air_export const char *airTeemReleaseDate; ! extern void *airNull(void); ! extern void *airSetNull(void **ptrP); ! extern void *airFree(void *ptr); ! extern void *airFreeP(void *_ptrP); ! extern FILE *airFopen(const char *name, FILE *std, const char *mode); ! extern FILE *airFclose(FILE *file); ! extern int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! extern air_export const int airMy32Bit; /* dio.c */ --- 335,357 ---- airInsane_dio, /* 7: airMyDio set to something invalid */ airInsane_32Bit, /* 8: airMy32Bit is wrong */ ! airInsane_UCSize, /* 9: unsigned char isn't 8 bits */ ! airInsane_FISize, /* 10: sizeof(float), sizeof(int) not 4 */ ! airInsane_DLSize /* 11: sizeof(double), sizeof(airLLong) not 8 */ }; ! #define AIR_INSANE_MAX 11 ! TEEM_API const char *airInsaneErr(int insane); ! TEEM_API int airSanity(); /* miscAir.c */ ! TEEM_API const char *airTeemVersion; ! TEEM_API const char *airTeemReleaseDate; ! TEEM_API void *airNull(void); ! TEEM_API void *airSetNull(void **ptrP); ! TEEM_API void *airFree(void *ptr); ! TEEM_API void *airFreeP(void *_ptrP); ! TEEM_API FILE *airFopen(const char *name, FILE *std, const char *mode); ! TEEM_API FILE *airFclose(FILE *file); ! TEEM_API int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! TEEM_API const int airMy32Bit; /* dio.c */ *************** *** 367,377 **** }; #define AIR_NODIO_MAX 12 ! extern const char *airNoDioErr(int noDio); ! extern air_export const int airMyDio; ! extern air_export int airDisableDio; ! extern int airDioInfo(int *mem, int *min, int *max, FILE *file); ! extern int airDioTest(size_t size, FILE *file, void *ptr); ! extern size_t airDioRead(FILE *file, void **ptrP, size_t size); ! extern size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ --- 378,388 ---- }; #define AIR_NODIO_MAX 12 ! TEEM_API const char *airNoDioErr(int noDio); ! TEEM_API const int airMyDio; ! TEEM_API int airDisableDio; ! TEEM_API int airDioInfo(int *mem, int *min, int *max, FILE *file); ! TEEM_API int airDioTest(size_t size, FILE *file, void *ptr); ! TEEM_API size_t airDioRead(FILE *file, void **ptrP, size_t size); ! TEEM_API size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ *************** *** 388,402 **** int when; /* from the airMopWhen enum */ } airMop; ! extern airArray *airMopNew(void); ! extern void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! extern void airMopSub(airArray *arr, void *ptr, airMopper mop); ! extern void airMopMem(airArray *arr, void *_ptrP, int when); ! extern void airMopUnMem(airArray *arr, void *_ptrP); ! extern void airMopPrint(airArray *arr, void *_str, int when); ! extern void airMopDone(airArray *arr, int error); ! extern void airMopError(airArray *arr); ! extern void airMopOkay(airArray *arr); ! extern void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ --- 399,413 ---- int when; /* from the airMopWhen enum */ } airMop; ! TEEM_API airArray *airMopNew(void); ! TEEM_API void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! TEEM_API void airMopSub(airArray *arr, void *ptr, airMopper mop); ! TEEM_API void airMopMem(airArray *arr, void *_ptrP, int when); ! TEEM_API void airMopUnMem(airArray *arr, void *_ptrP); ! TEEM_API void airMopPrint(airArray *arr, void *_str, int when); ! TEEM_API void airMopDone(airArray *arr, int error); ! TEEM_API void airMopError(airArray *arr); ! TEEM_API void airMopOkay(airArray *arr); ! TEEM_API void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ *************** *** 739,750 **** the null termination) */ ! extern void biffSet(const char *key, const char *err); ! extern void biffAdd(const char *key, const char *err); ! extern void biffMaybeAdd(const char *key, const char *err, int useBiff); ! extern int biffCheck(const char *key); ! extern void biffDone(const char *key); ! extern void biffMove(const char *destKey, const char *err, const char *srcKey); ! extern char *biffGet(const char *key); ! extern char *biffGetDone(const char *key); #ifdef __cplusplus --- 750,762 ---- the null termination) */ ! TEEM_API void biffSet(const char *key, const char *err); ! TEEM_API void biffAdd(const char *key, const char *err); ! TEEM_API void biffMaybeAdd(const char *key, const char *err, int useBiff); ! TEEM_API int biffCheck(const char *key); ! TEEM_API void biffDone(const char *key); ! TEEM_API void biffMove(const char *destKey, const char *err, ! const char *srcKey); ! TEEM_API char *biffGet(const char *key); ! TEEM_API char *biffGetDone(const char *key); #ifdef __cplusplus *************** *** 1183,1192 **** - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define nrrd_export __declspec(dllimport) - #else - #define nrrd_export - #endif - #ifdef __cplusplus extern "C" { --- 1195,1198 ---- *************** *** 1432,1616 **** /******** defaults (nrrdDef..) and state (nrrdState..) */ /* defaultsNrrd.c */ ! extern nrrd_export const NrrdEncoding *nrrdDefWriteEncoding; ! extern nrrd_export int nrrdDefWriteBareText; ! extern nrrd_export int nrrdDefWriteCharsPerLine; ! extern nrrd_export int nrrdDefWriteValsPerLine; ! extern nrrd_export int nrrdDefCenter; ! extern nrrd_export double nrrdDefSpacing; ! extern nrrd_export int nrrdStateVerboseIO; ! extern nrrd_export int nrrdStateAlwaysSetContent; ! extern nrrd_export int nrrdStateDisableContent; ! extern nrrd_export char *nrrdStateUnknownContent; ! extern nrrd_export int nrrdStateGrayscaleImage3D; ! extern nrrd_export int nrrdStateKeyValueReturnInternalPointers; /******** all the airEnums used through-out nrrd */ /* (the actual C enums are in nrrdEnums.h) */ /* enumsNrrd.c */ ! extern nrrd_export airEnum *nrrdFormatType; ! extern nrrd_export airEnum *nrrdType; ! extern nrrd_export airEnum *nrrdEncodingType; ! extern nrrd_export airEnum *nrrdCenter; ! extern nrrd_export airEnum *nrrdAxisInfo; ! extern nrrd_export airEnum *nrrdField; /******** arrays of things (poor-man's functions/predicates) */ /* arraysNrrd.c */ ! extern nrrd_export char nrrdTypePrintfStr[][AIR_STRLEN_SMALL]; ! extern nrrd_export int nrrdTypeSize[]; ! extern nrrd_export double nrrdTypeMin[]; ! extern nrrd_export double nrrdTypeMax[]; ! extern nrrd_export int nrrdTypeIsIntegral[]; ! extern nrrd_export int nrrdTypeIsUnsigned[]; ! extern nrrd_export double nrrdTypeNumberOfValues[]; /******** pseudo-constructors, pseudo-destructors, and such */ /* methodsNrrd.c */ ! extern NrrdIoState *nrrdIoStateNew(void); ! extern void nrrdIoStateInit(NrrdIoState *io); ! extern NrrdIoState *nrrdIoStateNix(NrrdIoState *io); ! extern void nrrdInit(Nrrd *nrrd); ! extern Nrrd *nrrdNew(void); ! extern Nrrd *nrrdNix(Nrrd *nrrd); ! extern Nrrd *nrrdEmpty(Nrrd *nrrd); ! extern Nrrd *nrrdNuke(Nrrd *nrrd); ! extern int nrrdWrap_nva(Nrrd *nrrd, void *data, int type, ! int dim, const int *size); ! extern int nrrdWrap(Nrrd *nrrd, void *data, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdCopy(Nrrd *nout, const Nrrd *nin); ! extern int nrrdAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! extern int nrrdAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdMaybeAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! extern int nrrdMaybeAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdPPM(Nrrd *, int sx, int sy); ! extern int nrrdPGM(Nrrd *, int sx, int sy); /******** axis info related */ /* 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, ! ... /* const void* */); ! extern void nrrdAxisInfoGet_nva(const Nrrd *nrrd, int axInfo, void *info); ! extern void nrrdAxisInfoGet(const Nrrd *nrrd, int axInfo, ! ... /* void* */); ! extern double nrrdAxisPos(const Nrrd *nrrd, int ax, double idx); ! extern double nrrdAxisIdx(const Nrrd *nrrd, int ax, double pos); ! extern void nrrdAxisPosRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loIdx, double hiIdx); ! extern void nrrdAxisIdxRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loPos, double hiPos); ! extern void nrrdAxisSpacingSet(Nrrd *nrrd, int ax); ! extern void nrrdAxisMinMaxSet(Nrrd *nrrd, int ax, int defCenter); /******** simple things */ /* simple.c */ ! extern nrrd_export const char *nrrdBiffKey; ! extern const Nrrd **nrrdCNPP(Nrrd **nin, int N); ! extern int nrrdPeripheralInit(Nrrd *nrrd); ! extern int nrrdPeripheralCopy(Nrrd *nout, const Nrrd *nin); ! extern int nrrdContentSet(Nrrd *nout, const char *func, ! const Nrrd *nin, const char *format, ! ... /* printf-style arg list */ ); ! extern void nrrdDescribe(FILE *file, const Nrrd *nrrd); ! extern int nrrdCheck(const Nrrd *nrrd); ! extern int nrrdElementSize(const Nrrd *nrrd); ! extern size_t nrrdElementNumber(const Nrrd *nrrd); ! extern int nrrdSanity(void); ! extern int nrrdSameSize(const Nrrd *n1, const Nrrd *n2, int useBiff); /******** comments related */ /* comment.c */ ! extern int nrrdCommentAdd(Nrrd *nrrd, const char *str); ! extern void nrrdCommentClear(Nrrd *nrrd); ! extern int nrrdCommentCopy(Nrrd *nout, const Nrrd *nin); /******** key/value pairs */ /* keyvalue.c */ ! extern int nrrdKeyValueSize(const Nrrd *nrrd); ! extern int nrrdKeyValueAdd(Nrrd *nrrd, const char *key, const char *value); ! extern char *nrrdKeyValueGet(const Nrrd *nrrd, const char *key); ! extern void nrrdKeyValueIndex(const Nrrd *nrrd, char **keyP, char **valueP, int ki); ! extern int nrrdKeyValueErase(Nrrd *nrrd, const char *key); ! extern void nrrdKeyValueClear(Nrrd *nrrd); ! extern int nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin); /******** endian related */ /* endianNrrd.c */ ! extern void nrrdSwapEndian(Nrrd *nrrd); /******** getting information to and from files */ /* formatXXX.c */ ! extern nrrd_export const NrrdFormat *const nrrdFormatNRRD; ! extern nrrd_export const NrrdFormat *const nrrdFormatPNM; ! extern nrrd_export const NrrdFormat *const nrrdFormatPNG; ! extern nrrd_export const NrrdFormat *const nrrdFormatVTK; ! extern nrrd_export const NrrdFormat *const nrrdFormatText; ! extern nrrd_export const NrrdFormat *const nrrdFormatEPS; /* format.c */ ! extern nrrd_export const NrrdFormat *const nrrdFormatUnknown; ! extern nrrd_export const NrrdFormat * const nrrdFormatArray[NRRD_FORMAT_TYPE_MAX+1]; /* encodingXXX.c */ ! extern nrrd_export const NrrdEncoding *const nrrdEncodingRaw; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingAscii; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingHex; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingGzip; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingBzip2; /* encoding.c */ ! extern nrrd_export const NrrdEncoding *const nrrdEncodingUnknown; ! extern nrrd_export const NrrdEncoding * 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 nrrdIoStateSet(NrrdIoState *io, int parm, int value); ! extern int nrrdIoStateSetEncoding(NrrdIoState *io, ! const NrrdEncoding *encoding); ! extern int nrrdIoStateSetFormat(NrrdIoState *io, ! const NrrdFormat *format); ! extern int nrrdIoStateGet(NrrdIoState *io, int parm); ! extern const NrrdEncoding *nrrdIoStateGetEncoding(NrrdIoState *io); ! extern const NrrdFormat *nrrdIoStateBetFormat(NrrdIoState *io); ! extern int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io); ! extern int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io); /******** getting value into and out of an array of general type, and all other simplistic functionality pseudo-parameterized by type */ /* accessors.c */ ! extern nrrd_export int (*nrrdILoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export float (*nrrdFLoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export double (*nrrdDLoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export int (*nrrdIStore[NRRD_TYPE_MAX+1])(void *v, int j); ! extern nrrd_export float (*nrrdFStore[NRRD_TYPE_MAX+1])(void *v, float f); ! extern nrrd_export double (*nrrdDStore[NRRD_TYPE_MAX+1])(void *v, double d); ! extern nrrd_export int (*nrrdILookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export float (*nrrdFLookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export double (*nrrdDLookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export int (*nrrdIInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, int j); ! extern nrrd_export float (*nrrdFInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, float f); ! extern nrrd_export double (*nrrdDInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, double d); ! extern nrrd_export int (*nrrdSprint[NRRD_TYPE_MAX+1])(char *, const void *); /******** permuting, shuffling, and all flavors of reshaping */ /* reorder.c */ ! extern int nrrdAxesInsert(Nrrd *nout, const Nrrd *nin, int ax); #ifdef __cplusplus --- 1438,1617 ---- /******** defaults (nrrdDef..) and state (nrrdState..) */ /* defaultsNrrd.c */ ! TEEM_API const NrrdEncoding *nrrdDefWriteEncoding; ! TEEM_API int nrrdDefWriteBareText; ! TEEM_API int nrrdDefWriteCharsPerLine; ! TEEM_API int nrrdDefWriteValsPerLine; ! TEEM_API int nrrdDefCenter; ! TEEM_API double nrrdDefSpacing; ! TEEM_API int nrrdStateVerboseIO; ! TEEM_API int nrrdStateAlwaysSetContent; ! TEEM_API int nrrdStateDisableContent; ! TEEM_API char *nrrdStateUnknownContent; ! TEEM_API int nrrdStateGrayscaleImage3D; ! TEEM_API int nrrdStateKeyValueReturnInternalPointers; /******** all the airEnums used through-out nrrd */ /* (the actual C enums are in nrrdEnums.h) */ /* enumsNrrd.c */ ! TEEM_API airEnum *nrrdFormatType; ! TEEM_API airEnum *nrrdType; ! TEEM_API airEnum *nrrdEncodingType; ! TEEM_API airEnum *nrrdCenter; ! TEEM_API airEnum *nrrdAxisInfo; ! TEEM_API airEnum *nrrdField; /******** arrays of things (poor-man's functions/predicates) */ /* arraysNrrd.c */ ! TEEM_API char nrrdTypePrintfStr[][AIR_STRLEN_SMALL]; ! TEEM_API int nrrdTypeSize[]; ! TEEM_API double nrrdTypeMin[]; ! TEEM_API double nrrdTypeMax[]; ! TEEM_API int nrrdTypeIsIntegral[]; ! TEEM_API int nrrdTypeIsUnsigned[]; ! TEEM_API double nrrdTypeNumberOfValues[]; /******** pseudo-constructors, pseudo-destructors, and such */ /* methodsNrrd.c */ ! TEEM_API NrrdIoState *nrrdIoStateNew(void); ! TEEM_API void nrrdIoStateInit(NrrdIoState *io); ! TEEM_API NrrdIoState *nrrdIoStateNix(NrrdIoState *io); ! TEEM_API void nrrdInit(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdNew(void); ! TEEM_API Nrrd *nrrdNix(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdEmpty(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdNuke(Nrrd *nrrd); ! TEEM_API int nrrdWrap_nva(Nrrd *nrrd, void *data, int type, ! int dim, const int *size); ! TEEM_API int nrrdWrap(Nrrd *nrrd, void *data, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdCopy(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! TEEM_API int nrrdAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdMaybeAlloc_nva(Nrrd *nrrd, int type, int dim, ! const int *size); ! TEEM_API int nrrdMaybeAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdPPM(Nrrd *, int sx, int sy); ! TEEM_API int nrrdPGM(Nrrd *, int sx, int sy); /******** axis info related */ /* axis.c */ ! TEEM_API int nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin, ! const int *axmap, int bitflag); ! TEEM_API void nrrdAxisInfoSet_nva(Nrrd *nin, int axInfo, const void *info); ! TEEM_API void nrrdAxisInfoSet(Nrrd *nin, int axInfo, ! ... /* const void* */); ! TEEM_API void nrrdAxisInfoGet_nva(const Nrrd *nrrd, int axInfo, void *info); ! TEEM_API void nrrdAxisInfoGet(const Nrrd *nrrd, int axInfo, ! ... /* void* */); ! TEEM_API double nrrdAxisPos(const Nrrd *nrrd, int ax, double idx); ! TEEM_API double nrrdAxisIdx(const Nrrd *nrrd, int ax, double pos); ! TEEM_API void nrrdAxisPosRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loIdx, double hiIdx); ! TEEM_API void nrrdAxisIdxRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loPos, double hiPos); ! TEEM_API void nrrdAxisSpacingSet(Nrrd *nrrd, int ax); ! TEEM_API void nrrdAxisMinMaxSet(Nrrd *nrrd, int ax, int defCenter); /******** simple things */ /* simple.c */ ! TEEM_API const char *nrrdBiffKey; ! TEEM_API const Nrrd **nrrdCNPP(Nrrd **nin, int N); ! TEEM_API int nrrdPeripheralInit(Nrrd *nrrd); ! TEEM_API int nrrdPeripheralCopy(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdContentSet(Nrrd *nout, const char *func, ! const Nrrd *nin, const char *format, ! ... /* printf-style arg list */ ); ! TEEM_API void nrrdDescribe(FILE *file, const Nrrd *nrrd); ! TEEM_API int nrrdCheck(const Nrrd *nrrd); ! TEEM_API int nrrdElementSize(const Nrrd *nrrd); ! TEEM_API size_t nrrdElementNumber(const Nrrd *nrrd); ! TEEM_API int nrrdSanity(void); ! TEEM_API int nrrdSameSize(const Nrrd *n1, const Nrrd *n2, int useBiff); /******** comments related */ /* comment.c */ ! TEEM_API int nrrdCommentAdd(Nrrd *nrrd, const char *str); ! TEEM_API void nrrdCommentClear(Nrrd *nrrd); ! TEEM_API int nrrdCommentCopy(Nrrd *nout, const Nrrd *nin); /******** key/value pairs */ /* keyvalue.c */ ! TEEM_API int nrrdKeyValueSize(const Nrrd *nrrd); ! TEEM_API int nrrdKeyValueAdd(Nrrd *nrrd, const char *key, const char *value); ! TEEM_API char *nrrdKeyValueGet(const Nrrd *nrrd, const char *key); ! TEEM_API void nrrdKeyValueIndex(const Nrrd *nrrd, char **keyP, char **valueP, int ki); ! TEEM_API int nrrdKeyValueErase(Nrrd *nrrd, const char *key); ! TEEM_API void nrrdKeyValueClear(Nrrd *nrrd); ! TEEM_API int nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin); /******** endian related */ /* endianNrrd.c */ ! TEEM_API void nrrdSwapEndian(Nrrd *nrrd); /******** getting information to and from files */ /* formatXXX.c */ ! TEEM_API const NrrdFormat *const nrrdFormatNRRD; ! TEEM_API const NrrdFormat *const nrrdFormatPNM; ! TEEM_API const NrrdFormat *const nrrdFormatPNG; ! TEEM_API const NrrdFormat *const nrrdFormatVTK; ! TEEM_API const NrrdFormat *const nrrdFormatText; ! TEEM_API const NrrdFormat *const nrrdFormatEPS; /* format.c */ ! TEEM_API const NrrdFormat *const nrrdFormatUnknown; ! TEEM_API const NrrdFormat * const nrrdFormatArray[NRRD_FORMAT_TYPE_MAX+1]; /* encodingXXX.c */ ! TEEM_API const NrrdEncoding *const nrrdEncodingRaw; ! TEEM_API const NrrdEncoding *const nrrdEncodingAscii; ! TEEM_API const NrrdEncoding *const nrrdEncodingHex; ! TEEM_API const NrrdEncoding *const nrrdEncodingGzip; ! TEEM_API const NrrdEncoding *const nrrdEncodingBzip2; /* encoding.c */ ! TEEM_API const NrrdEncoding *const nrrdEncodingUnknown; ! TEEM_API const NrrdEncoding * const nrrdEncodingArray[NRRD_ENCODING_TYPE_MAX+1]; /* read.c */ ! TEEM_API int nrrdLineSkip(NrrdIoState *io); ! TEEM_API int nrrdByteSkip(Nrrd *nrrd, NrrdIoState *io); ! TEEM_API int nrrdLoad(Nrrd *nrrd, const char *filename, NrrdIoState *io); ! TEEM_API int nrrdRead(Nrrd *nrrd, FILE *file, NrrdIoState *io); /* write.c */ ! TEEM_API int nrrdIoStateSet(NrrdIoState *io, int parm, int value); ! TEEM_API int nrrdIoStateSetEncoding(NrrdIoState *io, ! const NrrdEncoding *encoding); ! TEEM_API int nrrdIoStateSetFormat(NrrdIoState *io, ! const NrrdFormat *format); ! TEEM_API int nrrdIoStateGet(NrrdIoState *io, int parm); ! TEEM_API const NrrdEncoding *nrrdIoStateGetEncoding(NrrdIoState *io); ! TEEM_API const NrrdFormat *nrrdIoStateBetFormat(NrrdIoState *io); ! TEEM_API int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io); ! TEEM_API int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io); /******** getting value into and out of an array of general type, and all other simplistic functionality pseudo-parameterized by type */ /* accessors.c */ ! TEEM_API int (*nrrdILoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API float (*nrrdFLoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API double (*nrrdDLoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API int (*nrrdIStore[NRRD_TYPE_MAX+1])(void *v, int j); ! TEEM_API float (*nrrdFStore[NRRD_TYPE_MAX+1])(void *v, float f); ! TEEM_API double (*nrrdDStore[NRRD_TYPE_MAX+1])(void *v, double d); ! TEEM_API int (*nrrdILookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API float (*nrrdFLookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API double (*nrrdDLookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API int (*nrrdIInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, int j); ! TEEM_API float (*nrrdFInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, float f); ! TEEM_API double (*nrrdDInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, double d); ! TEEM_API int (*nrrdSprint[NRRD_TYPE_MAX+1])(char *, const void *); /******** permuting, shuffling, and all flavors of reshaping */ /* reorder.c */ ! TEEM_API int nrrdAxesInsert(Nrrd *nout, const Nrrd *nin, int ax); #ifdef __cplusplus Index: enum.c =================================================================== RCS file: /cvsroot/teem/NrrdIO/enum.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** enum.c 21 Dec 2003 06:40:52 -0000 1.1.1.1 --- enum.c 14 Feb 2004 20:26:33 -0000 1.2 *************** *** 154,158 **** airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt) { char *buff, *_ident, *desc, ident[AIR_STRLEN_SMALL]; ! int i, len; if (!(enm && enm->desc && fmt)) { --- 154,159 ---- airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt) { char *buff, *_ident, *desc, ident[AIR_STRLEN_SMALL]; ! int i; ! size_t len; if (!(enm && enm->desc && fmt)) { Index: keyvalue.c =================================================================== RCS file: /cvsroot/teem/NrrdIO/keyvalue.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** keyvalue.c 21 Dec 2003 06:40:52 -0000 1.1.1.1 --- keyvalue.c 14 Feb 2004 20:26:33 -0000 1.2 *************** *** 197,201 **** void _nrrdFwriteEscaped(FILE *file, const char *str) { ! int ci; for (ci=0; ci<strlen(str); ci++) { --- 197,201 ---- void _nrrdFwriteEscaped(FILE *file, const char *str) { ! size_t ci; for (ci=0; ci<strlen(str); ci++) { Index: miscAir.c =================================================================== RCS file: /cvsroot/teem/NrrdIO/miscAir.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** miscAir.c 21 Dec 2003 06:40:52 -0000 1.1.1.1 --- miscAir.c 14 Feb 2004 20:26:33 -0000 1.2 *************** *** 34,37 **** --- 34,38 ---- /* timer functions */ #ifdef _WIN32 + #include <io.h> #include <fcntl.h> #include <time.h> Index: read.c =================================================================== RCS file: /cvsroot/teem/NrrdIO/read.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** read.c 21 Dec 2003 06:40:52 -0000 1.1.1.1 --- read.c 14 Feb 2004 20:26:33 -0000 1.2 *************** *** 208,212 **** } numbytes = nrrdElementNumber(nrrd)*nrrdElementSize(nrrd); ! if (fseek(nio->dataFile, -numbytes, SEEK_END)) { sprintf(err, "%s: failed to fseek(dataFile, " _AIR_SIZE_T_FMT ", SEEK_END)", me, numbytes); --- 208,212 ---- } numbytes = nrrdElementNumber(nrrd)*nrrdElementSize(nrrd); ! if (fseek(nio->dataFile, -((long)numbytes), SEEK_END)) { sprintf(err, "%s: failed to fseek(dataFile, " _AIR_SIZE_T_FMT ", SEEK_END)", me, numbytes); *************** *** 344,348 **** void _nrrdSplitName (char **dirP, char **baseP, const char *name) { ! int i; if (dirP) { --- 344,348 ---- void _nrrdSplitName (char **dirP, char **baseP, const char *name) { ! char *where; if (dirP) { *************** *** 352,365 **** AIR_FREE(*baseP); } ! i = strrchr(name, '/') - name; /* we found a valid break if the last directory character is somewhere in the string except the last character */ ! if (i>=0 && i<strlen(name)-1) { if (dirP) { *dirP = airStrdup(name); ! (*dirP)[i] = 0; } if (baseP) { ! *baseP = airStrdup(name + i + 1); } } else { --- 352,365 ---- AIR_FREE(*baseP); } ! where = strrchr(name, '/'); /* we found a valid break if the last directory character is somewhere in the string except the last character */ ! if (where && airStrlen(where) > 1) { if (dirP) { *dirP = airStrdup(name); ! (*dirP)[where - name] = 0; } if (baseP) { ! *baseP = airStrdup(where + 1); } } else { Index: sane.c =================================================================== RCS file: /cvsroot/teem/NrrdIO/sane.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** sane.c 21 Dec 2003 06:40:52 -0000 1.1.1.1 --- sane.c 14 Feb 2004 20:26:33 -0000 1.2 *************** *** 44,47 **** --- 44,48 ---- int tmpI, sign, exp, frac, size; char endian; + unsigned char uc0, uc1; static int _airSanity=0; *************** *** 65,69 **** } ! /* checks on sizes of float, int, double, airLLong */ /* these justify the AIR_EXISTS_F and AIR_EXISTS_D macros */ if (!( (sizeof(float) == sizeof(int)) && (4 == sizeof(int)) )) { --- 66,75 ---- } ! /* checks on sizes of uchar, float, int, double, airLLong */ ! uc0 = 255; ! uc1 = uc0 + 1; /* to avoid compiler warnings */ ! if (!( 255 == uc0 && 0 == uc1 )) { ! return airInsane_UCSize; ! } /* these justify the AIR_EXISTS_F and AIR_EXISTS_D macros */ if (!( (sizeof(float) == sizeof(int)) && (4 == sizeof(int)) )) { *************** *** 139,142 **** --- 145,149 ---- "TEEM_DIO has invalid value", "TEEM_32BIT is wrong", + "unsigned char isn't 8 bits", "sizeof(float), sizeof(int) not both == 4", "sizeof(double), sizeof(airLLong) not both == 8", |
|
From: <kin...@us...> - 2004-02-14 20:07:53
|
Update of /cvsroot/teem/teem/src/nrrd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19605 Modified Files: arith.c Log Message: fixed a bug in which nrrdArithGamma generated all NaNs if input min and max were equal Index: arith.c =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/arith.c,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** arith.c 7 Jan 2004 15:34:30 -0000 1.33 --- arith.c 14 Feb 2004 20:01:07 -0000 1.34 *************** *** 74,77 **** --- 74,81 ---- min = range->min; max = range->max; + if (min == max) { + /* this is stupid. We want min < max to avoid making NaNs */ + max += 1; + } lup = nrrdDLookup[nin->type]; ins = nrrdDInsert[nout->type]; |
|
From: <kin...@us...> - 2004-02-14 19:21:15
|
Update of /cvsroot/teem/teem/src/nrrd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10879/nrrd Modified Files: nrrd.h Log Message: TEEM_API comes to biff and nrrd Index: nrrd.h =================================================================== RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v retrieving revision 1.132 retrieving revision 1.133 diff -C2 -d -r1.132 -r1.133 *** nrrd.h 16 Jan 2004 17:35:12 -0000 1.132 --- nrrd.h 14 Feb 2004 19:14:31 -0000 1.133 *************** *** 41,50 **** /* ---- END non-NrrdIO */ - #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) - #define nrrd_export __declspec(dllimport) - #else - #define nrrd_export - #endif - #ifdef __cplusplus extern "C" { --- 41,44 ---- *************** *** 424,459 **** /******** defaults (nrrdDef..) and state (nrrdState..) */ /* defaultsNrrd.c */ ! extern nrrd_export const NrrdEncoding *nrrdDefWriteEncoding; ! extern nrrd_export int nrrdDefWriteBareText; ! extern nrrd_export int nrrdDefWriteCharsPerLine; ! extern nrrd_export int nrrdDefWriteValsPerLine; /* ---- BEGIN non-NrrdIO */ ! extern nrrd_export int nrrdDefRsmpBoundary; ! extern nrrd_export int nrrdDefRsmpType; ! extern nrrd_export double nrrdDefRsmpScale; ! extern nrrd_export int nrrdDefRsmpRenormalize; ! extern nrrd_export int nrrdDefRsmpRound; ! extern nrrd_export int nrrdDefRsmpClamp; ! extern nrrd_export double nrrdDefRsmpPadValue; ! extern nrrd_export double nrrdDefKernelParm0; /* ---- END non-NrrdIO */ ! extern nrrd_export int nrrdDefCenter; ! extern nrrd_export double nrrdDefSpacing; ! extern nrrd_export int nrrdStateVerboseIO; /* ---- BEGIN non-NrrdIO */ ! extern nrrd_export int nrrdStateBlind8BitRange; ! extern nrrd_export int nrrdStateMeasureType; ! extern nrrd_export int nrrdStateMeasureModeBins; ! extern nrrd_export int nrrdStateMeasureHistoType; ! extern nrrd_export int nrrdStateDisallowIntegerNonExist; /* ---- END non-NrrdIO */ ! extern nrrd_export int nrrdStateAlwaysSetContent; ! extern nrrd_export int nrrdStateDisableContent; ! extern nrrd_export char *nrrdStateUnknownContent; ! extern nrrd_export int nrrdStateGrayscaleImage3D; ! extern nrrd_export int nrrdStateKeyValueReturnInternalPointers; /* ---- BEGIN non-NrrdIO */ ! extern void nrrdDefGetenv(void); ! extern void nrrdStateGetenv(void); /* ---- END non-NrrdIO */ --- 418,453 ---- /******** defaults (nrrdDef..) and state (nrrdState..) */ /* defaultsNrrd.c */ ! TEEM_API const NrrdEncoding *nrrdDefWriteEncoding; ! TEEM_API int nrrdDefWriteBareText; ! TEEM_API int nrrdDefWriteCharsPerLine; ! TEEM_API int nrrdDefWriteValsPerLine; /* ---- BEGIN non-NrrdIO */ ! TEEM_API int nrrdDefRsmpBoundary; ! TEEM_API int nrrdDefRsmpType; ! TEEM_API double nrrdDefRsmpScale; ! TEEM_API int nrrdDefRsmpRenormalize; ! TEEM_API int nrrdDefRsmpRound; ! TEEM_API int nrrdDefRsmpClamp; ! TEEM_API double nrrdDefRsmpPadValue; ! TEEM_API double nrrdDefKernelParm0; /* ---- END non-NrrdIO */ ! TEEM_API int nrrdDefCenter; ! TEEM_API double nrrdDefSpacing; ! TEEM_API int nrrdStateVerboseIO; /* ---- BEGIN non-NrrdIO */ ! TEEM_API int nrrdStateBlind8BitRange; ! TEEM_API int nrrdStateMeasureType; ! TEEM_API int nrrdStateMeasureModeBins; ! TEEM_API int nrrdStateMeasureHistoType; ! TEEM_API int nrrdStateDisallowIntegerNonExist; /* ---- END non-NrrdIO */ ! TEEM_API int nrrdStateAlwaysSetContent; ! TEEM_API int nrrdStateDisableContent; ! TEEM_API char *nrrdStateUnknownContent; ! TEEM_API int nrrdStateGrayscaleImage3D; ! TEEM_API int nrrdStateKeyValueReturnInternalPointers; /* ---- BEGIN non-NrrdIO */ ! TEEM_API void nrrdDefGetenv(void); ! TEEM_API void nrrdStateGetenv(void); /* ---- END non-NrrdIO */ *************** *** 461,651 **** /* (the actual C enums are in nrrdEnums.h) */ /* enumsNrrd.c */ ! extern nrrd_export airEnum *nrrdFormatType; ! extern nrrd_export airEnum *nrrdType; ! extern nrrd_export airEnum *nrrdEncodingType; ! extern nrrd_export airEnum *nrrdCenter; ! extern nrrd_export airEnum *nrrdAxisInfo; ! extern nrrd_export airEnum *nrrdField; /* ---- BEGIN non-NrrdIO */ ! extern nrrd_export airEnum *nrrdBoundary; ! extern nrrd_export airEnum *nrrdMeasure; ! extern nrrd_export airEnum *nrrdUnaryOp; ! extern nrrd_export airEnum *nrrdBinaryOp; ! extern nrrd_export airEnum *nrrdTernaryOp; /* ---- END non-NrrdIO */ /******** arrays of things (poor-man's functions/predicates) */ /* arraysNrrd.c */ ! extern nrrd_export char nrrdTypePrintfStr[][AIR_STRLEN_SMALL]; ! extern nrrd_export int nrrdTypeSize[]; ! extern nrrd_export double nrrdTypeMin[]; ! extern nrrd_export double nrrdTypeMax[]; ! extern nrrd_export int nrrdTypeIsIntegral[]; ! extern nrrd_export int nrrdTypeIsUnsigned[]; ! extern nrrd_export double nrrdTypeNumberOfValues[]; /******** pseudo-constructors, pseudo-destructors, and such */ /* methodsNrrd.c */ ! extern NrrdIoState *nrrdIoStateNew(void); ! extern void nrrdIoStateInit(NrrdIoState *io); ! extern NrrdIoState *nrrdIoStateNix(NrrdIoState *io); /* ---- BEGIN non-NrrdIO */ ! extern NrrdResampleInfo *nrrdResampleInfoNew(void); ! extern NrrdResampleInfo *nrrdResampleInfoNix(NrrdResampleInfo *info); ! extern NrrdKernelSpec *nrrdKernelSpecNew(); ! extern void nrrdKernelSpecSet(NrrdKernelSpec *ksp, const NrrdKernel *k, ! double kparm[NRRD_KERNEL_PARMS_NUM]); ! extern void nrrdKernelParmSet(const NrrdKernel **kP, ! double kparm[NRRD_KERNEL_PARMS_NUM], ! NrrdKernelSpec *ksp); ! extern NrrdKernelSpec *nrrdKernelSpecNix(NrrdKernelSpec *ksp); /* ---- END non-NrrdIO */ ! extern void nrrdInit(Nrrd *nrrd); ! extern Nrrd *nrrdNew(void); ! extern Nrrd *nrrdNix(Nrrd *nrrd); ! extern Nrrd *nrrdEmpty(Nrrd *nrrd); ! extern Nrrd *nrrdNuke(Nrrd *nrrd); ! extern int nrrdWrap_nva(Nrrd *nrrd, void *data, int type, ! int dim, const int *size); ! extern int nrrdWrap(Nrrd *nrrd, void *data, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdCopy(Nrrd *nout, const Nrrd *nin); ! extern int nrrdAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! extern int nrrdAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdMaybeAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! extern int nrrdMaybeAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! extern int nrrdPPM(Nrrd *, int sx, int sy); ! extern int nrrdPGM(Nrrd *, int sx, int sy); /******** axis info related */ /* 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, ! ... /* const void* */); ! extern void nrrdAxisInfoGet_nva(const Nrrd *nrrd, int axInfo, void *info); ! extern void nrrdAxisInfoGet(const Nrrd *nrrd, int axInfo, ! ... /* void* */); ! extern double nrrdAxisPos(const Nrrd *nrrd, int ax, double idx); ! extern double nrrdAxisIdx(const Nrrd *nrrd, int ax, double pos); ! extern void nrrdAxisPosRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loIdx, double hiIdx); ! extern void nrrdAxisIdxRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loPos, double hiPos); ! extern void nrrdAxisSpacingSet(Nrrd *nrrd, int ax); ! extern void nrrdAxisMinMaxSet(Nrrd *nrrd, int ax, int defCenter); /******** simple things */ /* simple.c */ ! extern nrrd_export const char *nrrdBiffKey; ! extern const Nrrd **nrrdCNPP(Nrrd **nin, int N); ! extern int nrrdPeripheralInit(Nrrd *nrrd); ! extern int nrrdPeripheralCopy(Nrrd *nout, const Nrrd *nin); ! extern int nrrdContentSet(Nrrd *nout, const char *func, ! const Nrrd *nin, const char *format, ! ... /* printf-style arg list */ ); ! extern void nrrdDescribe(FILE *file, const Nrrd *nrrd); ! extern int nrrdCheck(const Nrrd *nrrd); ! extern int nrrdElementSize(const Nrrd *nrrd); ! extern size_t nrrdElementNumber(const Nrrd *nrrd); ! extern int nrrdSanity(void); ! extern int nrrdSameSize(const Nrrd *n1, const Nrrd *n2, int useBiff); /******** comments related */ /* comment.c */ ! extern int nrrdCommentAdd(Nrrd *nrrd, const char *str); ! extern void nrrdCommentClear(Nrrd *nrrd); ! extern int nrrdCommentCopy(Nrrd *nout, const Nrrd *nin); /******** key/value pairs */ /* keyvalue.c */ ! extern int nrrdKeyValueSize(const Nrrd *nrrd); ! extern int nrrdKeyValueAdd(Nrrd *nrrd, const char *key, const char *value); ! extern char *nrrdKeyValueGet(const Nrrd *nrrd, const char *key); ! extern void nrrdKeyValueIndex(const Nrrd *nrrd, char **keyP, char **valueP, int ki); ! extern int nrrdKeyValueErase(Nrrd *nrrd, const char *key); ! extern void nrrdKeyValueClear(Nrrd *nrrd); ! extern int nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin); /******** endian related */ /* endianNrrd.c */ ! extern void nrrdSwapEndian(Nrrd *nrrd); /******** getting information to and from files */ /* formatXXX.c */ ! extern nrrd_export const NrrdFormat *const nrrdFormatNRRD; ! extern nrrd_export const NrrdFormat *const nrrdFormatPNM; ! extern nrrd_export const NrrdFormat *const nrrdFormatPNG; ! extern nrrd_export const NrrdFormat *const nrrdFormatVTK; ! extern nrrd_export const NrrdFormat *const nrrdFormatText; ! extern nrrd_export const NrrdFormat *const nrrdFormatEPS; /* format.c */ ! extern nrrd_export const NrrdFormat *const nrrdFormatUnknown; ! extern nrrd_export const NrrdFormat * const nrrdFormatArray[NRRD_FORMAT_TYPE_MAX+1]; /* encodingXXX.c */ ! extern nrrd_export const NrrdEncoding *const nrrdEncodingRaw; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingAscii; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingHex; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingGzip; ! extern nrrd_export const NrrdEncoding *const nrrdEncodingBzip2; /* encoding.c */ ! extern nrrd_export const NrrdEncoding *const nrrdEncodingUnknown; ! extern nrrd_export const NrrdEncoding * 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 nrrdIoStateSet(NrrdIoState *io, int parm, int value); ! extern int nrrdIoStateSetEncoding(NrrdIoState *io, ! const NrrdEncoding *encoding); ! extern int nrrdIoStateSetFormat(NrrdIoState *io, ! const NrrdFormat *format); ! extern int nrrdIoStateGet(NrrdIoState *io, int parm); ! extern const NrrdEncoding *nrrdIoStateGetEncoding(NrrdIoState *io); ! extern const NrrdFormat *nrrdIoStateBetFormat(NrrdIoState *io); ! extern int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io); ! extern int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io); /******** getting value into and out of an array of general type, and all other simplistic functionality pseudo-parameterized by type */ /* accessors.c */ ! extern nrrd_export int (*nrrdILoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export float (*nrrdFLoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export double (*nrrdDLoad[NRRD_TYPE_MAX+1])(const void *v); ! extern nrrd_export int (*nrrdIStore[NRRD_TYPE_MAX+1])(void *v, int j); ! extern nrrd_export float (*nrrdFStore[NRRD_TYPE_MAX+1])(void *v, float f); ! extern nrrd_export double (*nrrdDStore[NRRD_TYPE_MAX+1])(void *v, double d); ! extern nrrd_export int (*nrrdILookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export float (*nrrdFLookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export double (*nrrdDLookup[NRRD_TYPE_MAX+1])(const void *v, ! size_t I); ! extern nrrd_export int (*nrrdIInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, int j); ! extern nrrd_export float (*nrrdFInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, float f); ! extern nrrd_export double (*nrrdDInsert[NRRD_TYPE_MAX+1])(void *v, ! size_t I, double d); ! extern nrrd_export int (*nrrdSprint[NRRD_TYPE_MAX+1])(char *, const void *); /* ---- BEGIN non-NrrdIO */ ! extern nrrd_export int (*nrrdFprint[NRRD_TYPE_MAX+1])(FILE *, const void *); ! extern nrrd_export float (*nrrdFClamp[NRRD_TYPE_MAX+1])(float); ! extern nrrd_export double (*nrrdDClamp[NRRD_TYPE_MAX+1])(double); ! extern nrrd_export void ! (*nrrdMinMaxExactFind[NRRD_TYPE_MAX+1])(void *minP, void *maxP, ! int *hasNonExistP, const Nrrd *nrrd); ! extern nrrd_export int (*nrrdValCompare[NRRD_TYPE_MAX+1])(const void *, ! const void *); /* ---- END non-NrrdIO */ --- 455,639 ---- /* (the actual C enums are in nrrdEnums.h) */ /* enumsNrrd.c */ ! TEEM_API airEnum *nrrdFormatType; ! TEEM_API airEnum *nrrdType; ! TEEM_API airEnum *nrrdEncodingType; ! TEEM_API airEnum *nrrdCenter; ! TEEM_API airEnum *nrrdAxisInfo; ! TEEM_API airEnum *nrrdField; /* ---- BEGIN non-NrrdIO */ ! TEEM_API airEnum *nrrdBoundary; ! TEEM_API airEnum *nrrdMeasure; ! TEEM_API airEnum *nrrdUnaryOp; ! TEEM_API airEnum *nrrdBinaryOp; ! TEEM_API airEnum *nrrdTernaryOp; /* ---- END non-NrrdIO */ /******** arrays of things (poor-man's functions/predicates) */ /* arraysNrrd.c */ ! TEEM_API char nrrdTypePrintfStr[][AIR_STRLEN_SMALL]; ! TEEM_API int nrrdTypeSize[]; ! TEEM_API double nrrdTypeMin[]; ! TEEM_API double nrrdTypeMax[]; ! TEEM_API int nrrdTypeIsIntegral[]; ! TEEM_API int nrrdTypeIsUnsigned[]; ! TEEM_API double nrrdTypeNumberOfValues[]; /******** pseudo-constructors, pseudo-destructors, and such */ /* methodsNrrd.c */ ! TEEM_API NrrdIoState *nrrdIoStateNew(void); ! TEEM_API void nrrdIoStateInit(NrrdIoState *io); ! TEEM_API NrrdIoState *nrrdIoStateNix(NrrdIoState *io); /* ---- BEGIN non-NrrdIO */ ! TEEM_API NrrdResampleInfo *nrrdResampleInfoNew(void); ! TEEM_API NrrdResampleInfo *nrrdResampleInfoNix(NrrdResampleInfo *info); ! TEEM_API NrrdKernelSpec *nrrdKernelSpecNew(); ! TEEM_API void nrrdKernelSpecSet(NrrdKernelSpec *ksp, const NrrdKernel *k, ! double kparm[NRRD_KERNEL_PARMS_NUM]); ! TEEM_API void nrrdKernelParmSet(const NrrdKernel **kP, ! double kparm[NRRD_KERNEL_PARMS_NUM], ! NrrdKernelSpec *ksp); ! TEEM_API NrrdKernelSpec *nrrdKernelSpecNix(NrrdKernelSpec *ksp); /* ---- END non-NrrdIO */ ! TEEM_API void nrrdInit(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdNew(void); ! TEEM_API Nrrd *nrrdNix(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdEmpty(Nrrd *nrrd); ! TEEM_API Nrrd *nrrdNuke(Nrrd *nrrd); ! TEEM_API int nrrdWrap_nva(Nrrd *nrrd, void *data, int type, ! int dim, const int *size); ! TEEM_API int nrrdWrap(Nrrd *nrrd, void *data, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdCopy(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdAlloc_nva(Nrrd *nrrd, int type, int dim, const int *size); ! TEEM_API int nrrdAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdMaybeAlloc_nva(Nrrd *nrrd, int type, int dim, ! const int *size); ! TEEM_API int nrrdMaybeAlloc(Nrrd *nrrd, int type, int dim, ! ... /* sx, sy, .., axis(dim-1) size */); ! TEEM_API int nrrdPPM(Nrrd *, int sx, int sy); ! TEEM_API int nrrdPGM(Nrrd *, int sx, int sy); /******** axis info related */ /* axis.c */ ! TEEM_API int nrrdAxisInfoCopy(Nrrd *nout, const Nrrd *nin, ! const int *axmap, int bitflag); ! TEEM_API void nrrdAxisInfoSet_nva(Nrrd *nin, int axInfo, const void *info); ! TEEM_API void nrrdAxisInfoSet(Nrrd *nin, int axInfo, ! ... /* const void* */); ! TEEM_API void nrrdAxisInfoGet_nva(const Nrrd *nrrd, int axInfo, void *info); ! TEEM_API void nrrdAxisInfoGet(const Nrrd *nrrd, int axInfo, ! ... /* void* */); ! TEEM_API double nrrdAxisPos(const Nrrd *nrrd, int ax, double idx); ! TEEM_API double nrrdAxisIdx(const Nrrd *nrrd, int ax, double pos); ! TEEM_API void nrrdAxisPosRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loIdx, double hiIdx); ! TEEM_API void nrrdAxisIdxRange(double *loP, double *hiP, ! const Nrrd *nrrd, int ax, ! double loPos, double hiPos); ! TEEM_API void nrrdAxisSpacingSet(Nrrd *nrrd, int ax); ! TEEM_API void nrrdAxisMinMaxSet(Nrrd *nrrd, int ax, int defCenter); /******** simple things */ /* simple.c */ ! TEEM_API const char *nrrdBiffKey; ! TEEM_API const Nrrd **nrrdCNPP(Nrrd **nin, int N); ! TEEM_API int nrrdPeripheralInit(Nrrd *nrrd); ! TEEM_API int nrrdPeripheralCopy(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdContentSet(Nrrd *nout, const char *func, ! const Nrrd *nin, const char *format, ! ... /* printf-style arg list */ ); ! TEEM_API void nrrdDescribe(FILE *file, const Nrrd *nrrd); ! TEEM_API int nrrdCheck(const Nrrd *nrrd); ! TEEM_API int nrrdElementSize(const Nrrd *nrrd); ! TEEM_API size_t nrrdElementNumber(const Nrrd *nrrd); ! TEEM_API int nrrdSanity(void); ! TEEM_API int nrrdSameSize(const Nrrd *n1, const Nrrd *n2, int useBiff); /******** comments related */ /* comment.c */ ! TEEM_API int nrrdCommentAdd(Nrrd *nrrd, const char *str); ! TEEM_API void nrrdCommentClear(Nrrd *nrrd); ! TEEM_API int nrrdCommentCopy(Nrrd *nout, const Nrrd *nin); /******** key/value pairs */ /* keyvalue.c */ ! TEEM_API int nrrdKeyValueSize(const Nrrd *nrrd); ! TEEM_API int nrrdKeyValueAdd(Nrrd *nrrd, const char *key, const char *value); ! TEEM_API char *nrrdKeyValueGet(const Nrrd *nrrd, const char *key); ! TEEM_API void nrrdKeyValueIndex(const Nrrd *nrrd, char **keyP, char **valueP, int ki); ! TEEM_API int nrrdKeyValueErase(Nrrd *nrrd, const char *key); ! TEEM_API void nrrdKeyValueClear(Nrrd *nrrd); ! TEEM_API int nrrdKeyValueCopy(Nrrd *nout, const Nrrd *nin); /******** endian related */ /* endianNrrd.c */ ! TEEM_API void nrrdSwapEndian(Nrrd *nrrd); /******** getting information to and from files */ /* formatXXX.c */ ! TEEM_API const NrrdFormat *const nrrdFormatNRRD; ! TEEM_API const NrrdFormat *const nrrdFormatPNM; ! TEEM_API const NrrdFormat *const nrrdFormatPNG; ! TEEM_API const NrrdFormat *const nrrdFormatVTK; ! TEEM_API const NrrdFormat *const nrrdFormatText; ! TEEM_API const NrrdFormat *const nrrdFormatEPS; /* format.c */ ! TEEM_API const NrrdFormat *const nrrdFormatUnknown; ! TEEM_API const NrrdFormat * const nrrdFormatArray[NRRD_FORMAT_TYPE_MAX+1]; /* encodingXXX.c */ ! TEEM_API const NrrdEncoding *const nrrdEncodingRaw; ! TEEM_API const NrrdEncoding *const nrrdEncodingAscii; ! TEEM_API const NrrdEncoding *const nrrdEncodingHex; ! TEEM_API const NrrdEncoding *const nrrdEncodingGzip; ! TEEM_API const NrrdEncoding *const nrrdEncodingBzip2; /* encoding.c */ ! TEEM_API const NrrdEncoding *const nrrdEncodingUnknown; ! TEEM_API const NrrdEncoding * const nrrdEncodingArray[NRRD_ENCODING_TYPE_MAX+1]; /* read.c */ ! TEEM_API int nrrdLineSkip(NrrdIoState *io); ! TEEM_API int nrrdByteSkip(Nrrd *nrrd, NrrdIoState *io); ! TEEM_API int nrrdLoad(Nrrd *nrrd, const char *filename, NrrdIoState *io); ! TEEM_API int nrrdRead(Nrrd *nrrd, FILE *file, NrrdIoState *io); /* write.c */ ! TEEM_API int nrrdIoStateSet(NrrdIoState *io, int parm, int value); ! TEEM_API int nrrdIoStateSetEncoding(NrrdIoState *io, ! const NrrdEncoding *encoding); ! TEEM_API int nrrdIoStateSetFormat(NrrdIoState *io, ! const NrrdFormat *format); ! TEEM_API int nrrdIoStateGet(NrrdIoState *io, int parm); ! TEEM_API const NrrdEncoding *nrrdIoStateGetEncoding(NrrdIoState *io); ! TEEM_API const NrrdFormat *nrrdIoStateBetFormat(NrrdIoState *io); ! TEEM_API int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io); ! TEEM_API int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io); /******** getting value into and out of an array of general type, and all other simplistic functionality pseudo-parameterized by type */ /* accessors.c */ ! TEEM_API int (*nrrdILoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API float (*nrrdFLoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API double (*nrrdDLoad[NRRD_TYPE_MAX+1])(const void *v); ! TEEM_API int (*nrrdIStore[NRRD_TYPE_MAX+1])(void *v, int j); ! TEEM_API float (*nrrdFStore[NRRD_TYPE_MAX+1])(void *v, float f); ! TEEM_API double (*nrrdDStore[NRRD_TYPE_MAX+1])(void *v, double d); ! TEEM_API int (*nrrdILookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API float (*nrrdFLookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API double (*nrrdDLookup[NRRD_TYPE_MAX+1])(const void *v, size_t I); ! TEEM_API int (*nrrdIInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, int j); ! TEEM_API float (*nrrdFInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, float f); ! TEEM_API double (*nrrdDInsert[NRRD_TYPE_MAX+1])(void *v, size_t I, double d); ! TEEM_API int (*nrrdSprint[NRRD_TYPE_MAX+1])(char *, const void *); /* ---- BEGIN non-NrrdIO */ ! TEEM_API int (*nrrdFprint[NRRD_TYPE_MAX+1])(FILE *, const void *); ! TEEM_API float (*nrrdFClamp[NRRD_TYPE_MAX+1])(float); ! TEEM_API double (*nrrdDClamp[NRRD_TYPE_MAX+1])(double); ! TEEM_API void (*nrrdMinMaxExactFind[NRRD_TYPE_MAX+1])(void *minP, void *maxP, ! int *hasNonExistP, ! const Nrrd *nrrd); ! TEEM_API int (*nrrdValCompare[NRRD_TYPE_MAX+1])(const void *, const void *); /* ---- END non-NrrdIO */ *************** *** 653,800 **** /******** permuting, shuffling, and all flavors of reshaping */ /* reorder.c */ ! extern int nrrdAxesInsert(Nrrd *nout, const Nrrd *nin, int ax); /* ---- BEGIN non-NrrdIO */ ! extern int nrrdInvertPerm(int *invp, const int *perm, int n); ! extern int nrrdAxesPermute(Nrrd *nout, const Nrrd *nin, const int *axes); ! extern int nrrdAxesSwap(Nrrd *nout, const Nrrd *nin, int ax1, int ax2); ! extern int nrrdShuffle(Nrrd *nout, const Nrrd *nin, int axis, const int *perm); ! extern int nrrdFlip(Nrrd *nout, const Nrrd *nin, int axis); ! extern int nrrdJoin(Nrrd *nout, const Nrrd *const *nin, int numNin, ! int axis, int incrDim); ! extern int nrrdReshape(Nrrd *nout, const Nrrd *nin, int dim, ! ... /* sx, sy, .., axis(dim-1) size */ ); ! extern int nrrdReshape_nva(Nrrd *nout, const Nrrd *nin, ! int dim, const int *size); ! extern int nrrdAxesSplit(Nrrd *nout, const Nrrd *nin, int ax, ! int sizeFast, int sizeSlow); ! extern int nrrdAxesDelete(Nrrd *nout, const Nrrd *nin, int ax); ! extern int nrrdAxesMerge(Nrrd *nout, const Nrrd *nin, int ax); ! extern int nrrdBlock(Nrrd *nout, const Nrrd *nin); ! extern int nrrdUnblock(Nrrd *nout, const Nrrd *nin, int type); /******** things useful with hest */ /* hestNrrd.c */ ! extern nrrd_export hestCB *nrrdHestNrrd; ! extern nrrd_export hestCB *nrrdHestKernelSpec; ! extern nrrd_export hestCB *nrrdHestIter; /******** nrrd value iterator gadget */ /* iter.c */ ! extern NrrdIter *nrrdIterNew(void); ! extern void nrrdIterSetValue(NrrdIter *iter, double val); ! extern void nrrdIterSetNrrd(NrrdIter *iter, const Nrrd *nrrd); ! extern void nrrdIterSetOwnNrrd(NrrdIter *iter, Nrrd *nrrd); ! extern double nrrdIterValue(NrrdIter *iter); ! extern char *nrrdIterContent(NrrdIter *iter); ! extern NrrdIter *nrrdIterNix(NrrdIter *iter); /******** expressing the range of values in a nrrd */ /* range.c */ ! extern NrrdRange *nrrdRangeNew(double min, double max); ! extern NrrdRange *nrrdRangeCopy(const NrrdRange *range); ! extern NrrdRange *nrrdRangeNix(NrrdRange *range); ! extern void nrrdRangeReset(NrrdRange *range); ! extern void nrrdRangeSet(NrrdRange *range, ! const Nrrd *nrrd, int blind8BitRange); ! extern void nrrdRangeSafeSet(NrrdRange *range, ! const Nrrd *nrrd, int blind8BitRange); ! extern NrrdRange *nrrdRangeNewSet(const Nrrd *nrrd, int blind8BitRange); ! extern int nrrdHasNonExist(const Nrrd *nrrd); /******** some of the point-wise value remapping, conversion, and such */ /* map.c */ ! extern int nrrdConvert(Nrrd *nout, const Nrrd *nin, int type); ! extern int nrrdQuantize(Nrrd *nout, const Nrrd *nin, ! const NrrdRange *range, int bits); ! extern int nrrdUnquantize(Nrrd *nout, const Nrrd *nin, int type); ! extern int nrrdHistoEq(Nrrd *nout, const Nrrd *nin, Nrrd **nhistP, ! int bins, int smart, float amount); /******** rest of point-wise value remapping, and "color"mapping */ /* apply1D.c */ ! extern int nrrdApply1DLut(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nlut, int typeOut, int rescale); ! extern int nrrdApply1DRegMap(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nmap, int typeOut, int rescale); ! extern int nrrd1DIrregMapCheck(const Nrrd *nmap); ! extern int nrrd1DIrregAclGenerate(Nrrd *nacl, const Nrrd *nmap, int aclLen); ! extern int nrrd1DIrregAclCheck(const Nrrd *nacl); ! extern int nrrdApply1DIrregMap(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nmap, const Nrrd *nacl, ! int typeOut, int rescale); /******** sampling, slicing, cropping */ /* subset.c */ ! extern int nrrdSample_nva(void *val, const Nrrd *nin, const int *coord); ! extern int nrrdSample(void *val, const Nrrd *nin, ! ... /* coord0, coord1, .., coord(dim-1) */ ); ! extern int nrrdSlice(Nrrd *nout, const Nrrd *nin, int axis, int pos); ! extern int nrrdCrop(Nrrd *nout, const Nrrd *nin, int *min, int *max); ! extern int nrrdSimpleCrop(Nrrd *nout, const Nrrd *nin, int crop); /******** padding */ /* superset.c */ ! extern int nrrdSplice(Nrrd *nout, const Nrrd *nin, const Nrrd *nslice, ! int axis, int pos); ! extern int nrrdPad_nva(Nrrd *nout, const Nrrd *nin, ! const int *min, const int *max, ! int boundary, double padValue); ! extern int nrrdPad(Nrrd *nout, const Nrrd *nin, ! const int *min, const int *max, int boundary, ! ... /* if nrrdBoundaryPad, what value */); ! extern int nrrdSimplePad_nva(Nrrd *nout, const Nrrd *nin, int pad, ! int boundary, double padValue); ! extern int nrrdSimplePad(Nrrd *nout, const Nrrd *nin, int pad, int boundary, ! ... /* if nrrdBoundaryPad, what value */); ! extern int nrrdInset(Nrrd *nout, const Nrrd *nin, ! const Nrrd *nsub, const int *min); /******** measuring and projecting */ /* measure.c */ ! extern nrrd_export void ! (*nrrdMeasureLine[NRRD_MEASURE_MAX+1])(void *ans, int ansType, ! const void *line, int lineType, ! int lineLen, ! double axMin, double axMax); ! extern int nrrdProject(Nrrd *nout, const Nrrd *nin, ! int axis, int measr, int type); /********* various kinds of histograms */ /* histogram.c */ ! extern int nrrdHisto(Nrrd *nout, const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nwght, int bins, int type); ! extern int nrrdHistoDraw(Nrrd *nout, const Nrrd *nin, int sy, ! int showLog, double max); ! extern int nrrdHistoAxis(Nrrd *nout, const Nrrd *nin, const NrrdRange *range, ! int axis, int bins, int type); ! extern int nrrdHistoJoint(Nrrd *nout, const Nrrd *const *nin, ! const NrrdRange *const *range, int numNin, ! const Nrrd *nwght, const int *bins, ! int type, const int *clamp); /******** arithmetic and math on nrrds */ /* arith.c */ ! extern int nrrdArithGamma(Nrrd *nout, const Nrrd *nin, ! const NrrdRange *range, double gamma); ! extern int nrrdArithUnaryOp(Nrrd *nout, int op, const Nrrd *nin); ! extern int nrrdArithBinaryOp(Nrrd *nout, int op, ! const Nrrd *ninA, const Nrrd *ninB); ! extern int nrrdArithTernaryOp(Nrrd *nout, int op, ! const Nrrd *ninA, const Nrrd *ninB, ! const Nrrd *ninC); ! extern int nrrdArithIterBinaryOp(Nrrd *nout, int op, ! NrrdIter *inA, NrrdIter *inB); ! extern int nrrdArithIterTernaryOp(Nrrd *nout, int op, ! NrrdIter *inA, NrrdIter *inB, NrrdIter *inC); /******** filtering and re-sampling */ /* filt.c */ ! extern int nrrdCheapMedian(Nrrd *nout, const Nrrd *nin, ! int pad, int mode, ! int radius, float wght, int bins); /* --- 641,790 ---- /******** permuting, shuffling, and all flavors of reshaping */ /* reorder.c */ ! TEEM_API int nrrdAxesInsert(Nrrd *nout, const Nrrd *nin, int ax); /* ---- BEGIN non-NrrdIO */ ! TEEM_API int nrrdInvertPerm(int *invp, const int *perm, int n); ! TEEM_API int nrrdAxesPermute(Nrrd *nout, const Nrrd *nin, const int *axes); ! TEEM_API int nrrdAxesSwap(Nrrd *nout, const Nrrd *nin, int ax1, int ax2); ! TEEM_API int nrrdShuffle(Nrrd *nout, const Nrrd *nin, int axis, ! const int *perm); ! TEEM_API int nrrdFlip(Nrrd *nout, const Nrrd *nin, int axis); ! TEEM_API int nrrdJoin(Nrrd *nout, const Nrrd *const *nin, int numNin, ! int axis, int incrDim); ! TEEM_API int nrrdReshape(Nrrd *nout, const Nrrd *nin, int dim, ! ... /* sx, sy, .., axis(dim-1) size */ ); ! TEEM_API int nrrdReshape_nva(Nrrd *nout, const Nrrd *nin, ! int dim, const int *size); ! TEEM_API int nrrdAxesSplit(Nrrd *nout, const Nrrd *nin, int ax, ! int sizeFast, int sizeSlow); ! TEEM_API int nrrdAxesDelete(Nrrd *nout, const Nrrd *nin, int ax); ! TEEM_API int nrrdAxesMerge(Nrrd *nout, const Nrrd *nin, int ax); ! TEEM_API int nrrdBlock(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdUnblock(Nrrd *nout, const Nrrd *nin, int type); /******** things useful with hest */ /* hestNrrd.c */ ! TEEM_API hestCB *nrrdHestNrrd; ! TEEM_API hestCB *nrrdHestKernelSpec; ! TEEM_API hestCB *nrrdHestIter; /******** nrrd value iterator gadget */ /* iter.c */ ! TEEM_API NrrdIter *nrrdIterNew(void); ! TEEM_API void nrrdIterSetValue(NrrdIter *iter, double val); ! TEEM_API void nrrdIterSetNrrd(NrrdIter *iter, const Nrrd *nrrd); ! TEEM_API void nrrdIterSetOwnNrrd(NrrdIter *iter, Nrrd *nrrd); ! TEEM_API double nrrdIterValue(NrrdIter *iter); ! TEEM_API char *nrrdIterContent(NrrdIter *iter); ! TEEM_API NrrdIter *nrrdIterNix(NrrdIter *iter); /******** expressing the range of values in a nrrd */ /* range.c */ ! TEEM_API NrrdRange *nrrdRangeNew(double min, double max); ! TEEM_API NrrdRange *nrrdRangeCopy(const NrrdRange *range); ! TEEM_API NrrdRange *nrrdRangeNix(NrrdRange *range); ! TEEM_API void nrrdRangeReset(NrrdRange *range); ! TEEM_API void nrrdRangeSet(NrrdRange *range, ! const Nrrd *nrrd, int blind8BitRange); ! TEEM_API void nrrdRangeSafeSet(NrrdRange *range, ! const Nrrd *nrrd, int blind8BitRange); ! TEEM_API NrrdRange *nrrdRangeNewSet(const Nrrd *nrrd, int blind8BitRange); ! TEEM_API int nrrdHasNonExist(const Nrrd *nrrd); /******** some of the point-wise value remapping, conversion, and such */ /* map.c */ ! TEEM_API int nrrdConvert(Nrrd *nout, const Nrrd *nin, int type); ! TEEM_API int nrrdQuantize(Nrrd *nout, const Nrrd *nin, ! const NrrdRange *range, int bits); ! TEEM_API int nrrdUnquantize(Nrrd *nout, const Nrrd *nin, int type); ! TEEM_API int nrrdHistoEq(Nrrd *nout, const Nrrd *nin, Nrrd **nhistP, ! int bins, int smart, float amount); /******** rest of point-wise value remapping, and "color"mapping */ /* apply1D.c */ ! TEEM_API int nrrdApply1DLut(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nlut, int typeOut, int rescale); ! TEEM_API int nrrdApply1DRegMap(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nmap, int typeOut, int rescale); ! TEEM_API int nrrd1DIrregMapCheck(const Nrrd *nmap); ! TEEM_API int nrrd1DIrregAclGenerate(Nrrd *nacl, const Nrrd *nmap, int aclLen); ! TEEM_API int nrrd1DIrregAclCheck(const Nrrd *nacl); ! TEEM_API int nrrdApply1DIrregMap(Nrrd *nout, ! const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nmap, const Nrrd *nacl, ! int typeOut, int rescale); /******** sampling, slicing, cropping */ /* subset.c */ ! TEEM_API int nrrdSample_nva(void *val, const Nrrd *nin, const int *coord); ! TEEM_API int nrrdSample(void *val, const Nrrd *nin, ! ... /* coord0, coord1, .., coord(dim-1) */ ); ! TEEM_API int nrrdSlice(Nrrd *nout, const Nrrd *nin, int axis, int pos); ! TEEM_API int nrrdCrop(Nrrd *nout, const Nrrd *nin, int *min, int *max); ! TEEM_API int nrrdSimpleCrop(Nrrd *nout, const Nrrd *nin, int crop); /******** padding */ /* superset.c */ ! TEEM_API int nrrdSplice(Nrrd *nout, const Nrrd *nin, const Nrrd *nslice, ! int axis, int pos); ! TEEM_API int nrrdPad_nva(Nrrd *nout, const Nrrd *nin, ! const int *min, const int *max, ! int boundary, double padValue); ! TEEM_API int nrrdPad(Nrrd *nout, const Nrrd *nin, ! const int *min, const int *max, int boundary, ! ... /* if nrrdBoundaryPad, what value */); ! TEEM_API int nrrdSimplePad_nva(Nrrd *nout, const Nrrd *nin, int pad, ! int boundary, double padValue); ! TEEM_API int nrrdSimplePad(Nrrd *nout, const Nrrd *nin, int pad, int boundary, ! ... /* if nrrdBoundaryPad, what value */); ! TEEM_API int nrrdInset(Nrrd *nout, const Nrrd *nin, ! const Nrrd *nsub, const int *min); /******** measuring and projecting */ /* measure.c */ ! TEEM_API void (*nrrdMeasureLine[NRRD_MEASURE_MAX+1])(void *ans, int ansType, ! const void *line, ! int lineType, int lineLen, ! double axMin, ! double axMax); ! TEEM_API int nrrdProject(Nrrd *nout, const Nrrd *nin, ! int axis, int measr, int type); /********* various kinds of histograms */ /* histogram.c */ ! TEEM_API int nrrdHisto(Nrrd *nout, const Nrrd *nin, const NrrdRange *range, ! const Nrrd *nwght, int bins, int type); ! TEEM_API int nrrdHistoDraw(Nrrd *nout, const Nrrd *nin, int sy, ! int showLog, double max); ! TEEM_API int nrrdHistoAxis(Nrrd *nout, const Nrrd *nin, const NrrdRange *range, ! int axis, int bins, int type); ! TEEM_API int nrrdHistoJoint(Nrrd *nout, const Nrrd *const *nin, ! const NrrdRange *const *range, int numNin, ! const Nrrd *nwght, const int *bins, ! int type, const int *clamp); /******** arithmetic and math on nrrds */ /* arith.c */ ! TEEM_API int nrrdArithGamma(Nrrd *nout, const Nrrd *nin, ! const NrrdRange *range, double gamma); ! TEEM_API int nrrdArithUnaryOp(Nrrd *nout, int op, const Nrrd *nin); ! TEEM_API int nrrdArithBinaryOp(Nrrd *nout, int op, ! const Nrrd *ninA, const Nrrd *ninB); ! TEEM_API int nrrdArithTernaryOp(Nrrd *nout, int op, ! const Nrrd *ninA, const Nrrd *ninB, ! const Nrrd *ninC); ! TEEM_API int nrrdArithIterBinaryOp(Nrrd *nout, int op, ! NrrdIter *inA, NrrdIter *inB); ! TEEM_API int nrrdArithIterTernaryOp(Nrrd *nout, int op, ! NrrdIter *inA, NrrdIter *inB, ! NrrdIter *inC); /******** filtering and re-sampling */ /* filt.c */ ! TEEM_API int nrrdCheapMedian(Nrrd *nout, const Nrrd *nin, ! int pad, int mode, ! int radius, float wght, int bins); /* *************** *** 820,843 **** /* resampleNrrd.c */ ! extern int nrrdSpatialResample(Nrrd *nout, const Nrrd *nin, ! const NrrdResampleInfo *info); ! extern int nrrdSimpleResample(Nrrd *nout, Nrrd *nin, ! const NrrdKernel *kernel, const double *parm, ! const int *samples, const double *scalings); /******** connected component extraction and manipulation */ /* ccmethods.c */ ! extern int nrrdCCValid(const Nrrd *nin); ! extern int nrrdCCSize(Nrrd *nout, const Nrrd *nin); ! extern int nrrdCCMax(const Nrrd *nin); ! extern int nrrdCCNum(const Nrrd *nin); /* cc.c */ ! extern int nrrdCCFind(Nrrd *nout, Nrrd **nvalP, const Nrrd *nin, ! int type, int conny); ! extern int nrrdCCAdjacency(Nrrd *nout, const Nrrd *nin, int conny); ! extern int nrrdCCMerge(Nrrd *nout, const Nrrd *nin, Nrrd *nval, ! int dir, int maxSize, int maxNeighbor, int conny); ! extern int nrrdCCRevalue (Nrrd *nout, const Nrrd *nin, const Nrrd *nval); ! extern int nrrdCCSettle(Nrrd *nout, Nrrd **nvalP, const Nrrd *nin); /******** kernels (interpolation, 1st and 2nd derivatives) */ --- 810,833 ---- /* resampleNrrd.c */ ! TEEM_API int nrrdSpatialResample(Nrrd *nout, const Nrrd *nin, ! const NrrdResampleInfo *info); ! TEEM_API int nrrdSimpleResample(Nrrd *nout, Nrrd *nin, ! const NrrdKernel *kernel, const double *parm, ! const int *samples, const double *scalings); /******** connected component extraction and manipulation */ /* ccmethods.c */ ! TEEM_API int nrrdCCValid(const Nrrd *nin); ! TEEM_API int nrrdCCSize(Nrrd *nout, const Nrrd *nin); ! TEEM_API int nrrdCCMax(const Nrrd *nin); ! TEEM_API int nrrdCCNum(const Nrrd *nin); /* cc.c */ ! TEEM_API int nrrdCCFind(Nrrd *nout, Nrrd **nvalP, const Nrrd *nin, ! int type, int conny); ! TEEM_API int nrrdCCAdjacency(Nrrd *nout, const Nrrd *nin, int conny); ! TEEM_API int nrrdCCMerge(Nrrd *nout, const Nrrd *nin, Nrrd *nval, ! int dir, int maxSize, int maxNeighbor, int conny); ! TEEM_API int nrrdCCRevalue (Nrrd *nout, const Nrrd *nin, const Nrrd *nval); ! TEEM_API int nrrdCCSettle(Nrrd *nout, Nrrd **nvalP, const Nrrd *nin); /******** kernels (interpolation, 1st and 2nd derivatives) */ *************** *** 846,855 **** Dth-derivative, C-order continuous ("smooth"), A-order accurate (for D and C, index 0 accesses the function for -1) */ ! extern nrrd_export NrrdKernel *const nrrdKernelTMF[4][5][5]; ! extern nrrd_export int nrrdKernelTMF_maxD; ! extern nrrd_export int nrrdKernelTMF_maxC; ! extern nrrd_export int nrrdKernelTMF_maxA; /* winKernel.c : various kinds of windowed sincs */ ! extern nrrd_export NrrdKernel *const nrrdKernelHann, /* Hann (cosine-bell) windowed sinc */ *const nrrdKernelHannD, /* 1st derivative of Hann windowed since */ --- 836,845 ---- Dth-derivative, C-order continuous ("smooth"), A-order accurate (for D and C, index 0 accesses the function for -1) */ ! TEEM_API NrrdKernel *const nrrdKernelTMF[4][5][5]; ! TEEM_API int nrrdKernelTMF_maxD; ! TEEM_API int nrrdKernelTMF_maxC; ! TEEM_API int nrrdKernelTMF_maxA; /* winKernel.c : various kinds of windowed sincs */ ! TEEM_API NrrdKernel *const nrrdKernelHann, /* Hann (cosine-bell) windowed sinc */ *const nrrdKernelHannD, /* 1st derivative of Hann windowed since */ *************** *** 859,863 **** *const nrrdKernelBlackmanDD; /* 2nd derivative */ /* kernel.c */ ! extern nrrd_export NrrdKernel *const nrrdKernelZero, /* zero everywhere */ *const nrrdKernelBox, /* box filter (nearest neighbor) */ --- 849,853 ---- *const nrrdKernelBlackmanDD; /* 2nd derivative */ /* kernel.c */ ! TEEM_API NrrdKernel *const nrrdKernelZero, /* zero everywhere */ *const nrrdKernelBox, /* box filter (nearest neighbor) */ *************** *** 874,881 **** *const nrrdKernelGaussianD, /* 1st derivative of Gaussian */ *const nrrdKernelGaussianDD; /* 2nd derivative of Gaussian */ ! extern int nrrdKernelParse(const NrrdKernel **kernelP, ! double *parm, ! const char *str); ! extern int nrrdKernelSpecParse(NrrdKernelSpec *ksp, const char *str); /* ---- END non-NrrdIO */ --- 864,871 ---- *const nrrdKernelGaussianD, /* 1st derivative of Gaussian */ *const nrrdKernelGaussianDD; /* 2nd derivative of Gaussian */ ! TEEM_API int nrrdKernelParse(const NrrdKernel **kernelP, ! double *parm, ! const char *str); ! TEEM_API int nrrdKernelSpecParse(NrrdKernelSpec *ksp, const char *str); /* ---- END non-NrrdIO */ |
|
From: <kin...@us...> - 2004-02-14 19:21:13
|
Update of /cvsroot/teem/teem/src/biff In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10879/biff Modified Files: biff.h Log Message: TEEM_API comes to biff and nrrd Index: biff.h =================================================================== RCS file: /cvsroot/teem/teem/src/biff/biff.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** biff.h 7 Jan 2004 15:34:28 -0000 1.16 --- biff.h 14 Feb 2004 19:14:30 -0000 1.17 *************** *** 38,49 **** the null termination) */ ! extern void biffSet(const char *key, const char *err); ! extern void biffAdd(const char *key, const char *err); ! extern void biffMaybeAdd(const char *key, const char *err, int useBiff); ! extern int biffCheck(const char *key); ! extern void biffDone(const char *key); ! extern void biffMove(const char *destKey, const char *err, const char *srcKey); ! extern char *biffGet(const char *key); ! extern char *biffGetDone(const char *key); #ifdef __cplusplus --- 38,50 ---- the null termination) */ ! TEEM_API void biffSet(const char *key, const char *err); ! TEEM_API void biffAdd(const char *key, const char *err); ! TEEM_API void biffMaybeAdd(const char *key, const char *err, int useBiff); ! TEEM_API int biffCheck(const char *key); ! TEEM_API void biffDone(const char *key); ! TEEM_API void biffMove(const char *destKey, const char *err, ! const char *srcKey); ! TEEM_API char *biffGet(const char *key); ! TEEM_API char *biffGetDone(const char *key); #ifdef __cplusplus |
|
From: <kin...@us...> - 2004-02-14 19:03:39
|
Update of /cvsroot/teem/teem/src/air In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7050 Modified Files: air.h Log Message: spelling change TEEMAPI --> TEEM_API Index: air.h =================================================================== RCS file: /cvsroot/teem/teem/src/air/air.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** air.h 14 Feb 2004 03:21:21 -0000 1.37 --- air.h 14 Feb 2004 18:56:54 -0000 1.38 *************** *** 33,61 **** #endif ! /* define TEEMAPI */ #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(TEEM_STATIC) ! #if defined(TEEM_BUILD) ! #define TEEMAPI extern __declspec(dllexport) ! #else ! #define TEEMAPI extern __declspec(dllimport) ! #endif #else /* TEEM_STATIC || UNIX */ ! #define TEEMAPI extern #endif #if defined(_MSC_VER) /* get rid of some warnings on VC++ */ ! #pragma warning ( disable : 4244 ) ! #pragma warning ( disable : 4305 ) ! #pragma warning ( disable : 4309 ) ! #pragma warning ( disable : 4273 ) /* add essential math definitions */ ! #ifndef M_PI ! #define M_PI 3.14159265358979323846 ! #endif ! #ifndef M_E ! #define M_E 2.71828182845904523536 ! #endif ! #endif #endif --- 33,60 ---- #endif ! /* define TEEM_API */ #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(TEEM_STATIC) ! # if defined(TEEM_BUILD) ! # define TEEM_API extern __declspec(dllexport) ! # else ! # define TEEM_API extern __declspec(dllimport) ! # endif #else /* TEEM_STATIC || UNIX */ ! # define TEEM_API extern #endif #if defined(_MSC_VER) /* get rid of some warnings on VC++ */ ! # pragma warning ( disable : 4244 ) ! # pragma warning ( disable : 4305 ) ! # pragma warning ( disable : 4309 ) ! # pragma warning ( disable : 4273 ) /* add essential math definitions */ ! # ifndef M_PI ! # define M_PI 3.14159265358979323846 ! # endif ! # ifndef M_E ! # define M_E 2.71828182845904523536 ! # endif #endif *************** *** 116,125 **** int sense; /* require case matching on strings */ } airEnum; ! TEEMAPI int airEnumUnknown(airEnum *enm); ! TEEMAPI int airEnumValCheck(airEnum *enm, int val); ! TEEMAPI char *airEnumStr(airEnum *enm, int val); ! TEEMAPI char *airEnumDesc(airEnum *enm, int val); ! TEEMAPI int airEnumVal(airEnum *enm, const char *str); ! TEEMAPI char *airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt); /* --- 115,125 ---- int sense; /* require case matching on strings */ } airEnum; ! TEEM_API int airEnumUnknown(airEnum *enm); ! TEEM_API int airEnumValCheck(airEnum *enm, int val); ! TEEM_API char *airEnumStr(airEnum *enm, int val); ! TEEM_API char *airEnumDesc(airEnum *enm, int val); ! TEEM_API int airEnumVal(airEnum *enm, const char *str); ! TEEM_API char *airEnumFmtDesc(airEnum *enm, int val, int canon, ! const char *fmt); /* *************** *** 137,142 **** }; /* endianAir.c */ ! TEEMAPI airEnum *airEndian; ! TEEMAPI const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ --- 137,142 ---- }; /* endianAir.c */ ! TEEM_API airEnum *airEndian; ! TEEM_API const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ *************** *** 178,190 **** } airArray; ! TEEMAPI airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! TEEMAPI void airArrayStructCB(airArray *a, ! void (*initCB)(void *), void (*doneCB)(void *)); ! TEEMAPI void airArrayPointerCB(airArray *a, ! void *(*allocCB)(void), void *(*freeCB)(void *)); ! TEEMAPI int airArraySetLen(airArray *a, int newlen); ! TEEMAPI int airArrayIncrLen(airArray *a, int delta); ! TEEMAPI airArray *airArrayNix(airArray *a); ! TEEMAPI airArray *airArrayNuke(airArray *a); /* ---- BEGIN non-NrrdIO */ --- 178,190 ---- } airArray; ! TEEM_API airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! TEEM_API void airArrayStructCB(airArray *a, void (*initCB)(void *), ! void (*doneCB)(void *)); ! TEEM_API void airArrayPointerCB(airArray *a, void *(*allocCB)(void), ! void *(*freeCB)(void *)); ! TEEM_API int airArraySetLen(airArray *a, int newlen); ! TEEM_API int airArrayIncrLen(airArray *a, int delta); ! TEEM_API airArray *airArrayNix(airArray *a); ! TEEM_API airArray *airArrayNuke(airArray *a); /* ---- BEGIN non-NrrdIO */ *************** *** 197,201 **** ** via pthreads, or via Windows stuff */ ! TEEMAPI const int airThreadCapable; /* --- 197,201 ---- ** via pthreads, or via Windows stuff */ ! TEEM_API const int airThreadCapable; /* *************** *** 207,211 **** ** warning to this effect when those constructs are used */ ! TEEMAPI int airThreadNoopWarning; /* opaque typedefs for OS-specific stuff */ --- 207,211 ---- ** warning to this effect when those constructs are used */ ! TEEM_API int airThreadNoopWarning; /* opaque typedefs for OS-specific stuff */ *************** *** 219,242 **** } airThreadBarrier; ! TEEMAPI airThread *airThreadNew(void); ! TEEMAPI int airThreadStart(airThread *thread, ! void *(*threadBody)(void *), void *arg); ! TEEMAPI int airThreadJoin(airThread *thread, void **retP); ! TEEMAPI airThread *airThreadNix(airThread *thread); ! TEEMAPI airThreadMutex *airThreadMutexNew(); ! TEEMAPI int airThreadMutexLock(airThreadMutex *mutex); ! TEEMAPI int airThreadMutexUnlock(airThreadMutex *mutex); ! TEEMAPI airThreadMutex *airThreadMutexNix(airThreadMutex *mutex); ! TEEMAPI airThreadCond *airThreadCondNew(); ! TEEMAPI int airThreadCondWait(airThreadCond *cond, airThreadMutex *mutex); ! TEEMAPI int airThreadCondSignal(airThreadCond *cond); ! TEEMAPI int airThreadCondBroadcast(airThreadCond *cond); ! TEEMAPI airThreadCond *airThreadCondNix(airThreadCond *cond); ! TEEMAPI airThreadBarrier *airThreadBarrierNew(unsigned numUsers); ! TEEMAPI int airThreadBarrierWait(airThreadBarrier *barrier); ! TEEMAPI airThreadBarrier *airThreadBarrierNix(airThreadBarrier *barrier); /* ---- END non-NrrdIO */ --- 219,242 ---- } airThreadBarrier; ! TEEM_API airThread *airThreadNew(void); ! TEEM_API int airThreadStart(airThread *thread, ! void *(*threadBody)(void *), void *arg); ! TEEM_API int airThreadJoin(airThread *thread, void **retP); ! TEEM_API airThread *airThreadNix(airThread *thread); ! TEEM_API airThreadMutex *airThreadMutexNew(); ! TEEM_API int airThreadMutexLock(airThreadMutex *mutex); ! TEEM_API int airThreadMutexUnlock(airThreadMutex *mutex); ! TEEM_API airThreadMutex *airThreadMutexNix(airThreadMutex *mutex); ! TEEM_API airThreadCond *airThreadCondNew(); ! TEEM_API int airThreadCondWait(airThreadCond *cond, airThreadMutex *mutex); ! TEEM_API int airThreadCondSignal(airThreadCond *cond); ! TEEM_API int airThreadCondBroadcast(airThreadCond *cond); ! TEEM_API airThreadCond *airThreadCondNix(airThreadCond *cond); ! TEEM_API airThreadBarrier *airThreadBarrierNew(unsigned numUsers); ! TEEM_API int airThreadBarrierWait(airThreadBarrier *barrier); ! TEEM_API airThreadBarrier *airThreadBarrierNix(airThreadBarrier *barrier); /* ---- END non-NrrdIO */ *************** *** 279,305 **** double d; } airDouble; ! TEEMAPI const int airMyQNaNHiBit; ! TEEMAPI const int airMyBigBitField; ! TEEMAPI float airFPPartsToVal_f(int sign, int exp, int frac); ! TEEMAPI void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! TEEMAPI double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! TEEMAPI void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, ! double v); ! TEEMAPI float airFPGen_f(int cls); ! TEEMAPI double airFPGen_d(int cls); ! TEEMAPI int airFPClass_f(float val); ! TEEMAPI int airFPClass_d(double val); ! TEEMAPI void airFPFprintf_f(FILE *file, float val); ! TEEMAPI void airFPFprintf_d(FILE *file, double val); ! TEEMAPI const airFloat airFloatQNaN; ! TEEMAPI const airFloat airFloatSNaN; ! TEEMAPI const airFloat airFloatPosInf; ! TEEMAPI const airFloat airFloatNegInf; ! TEEMAPI float airNaN(); ! TEEMAPI int airIsNaN(float f); ! TEEMAPI int airIsInf_f(float f); ! TEEMAPI int airIsInf_d(double d); ! TEEMAPI int airExists_f(float f); ! TEEMAPI int airExists_d(double d); /* --- 279,305 ---- double d; } airDouble; ! TEEM_API const int airMyQNaNHiBit; ! TEEM_API const int airMyBigBitField; ! TEEM_API float airFPPartsToVal_f(int sign, int exp, int frac); ! TEEM_API void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! TEEM_API double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! TEEM_API void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, ! double v); ! TEEM_API float airFPGen_f(int cls); ! TEEM_API double airFPGen_d(int cls); ! TEEM_API int airFPClass_f(float val); ! TEEM_API int airFPClass_d(double val); ! TEEM_API void airFPFprintf_f(FILE *file, float val); ! TEEM_API void airFPFprintf_d(FILE *file, double val); ! TEEM_API const airFloat airFloatQNaN; ! TEEM_API const airFloat airFloatSNaN; ! TEEM_API const airFloat airFloatPosInf; ! TEEM_API const airFloat airFloatNegInf; ! TEEM_API float airNaN(); ! TEEM_API int airIsNaN(float f); ! TEEM_API int airIsInf_f(float f); ! TEEM_API int airIsInf_d(double d); ! TEEM_API int airExists_f(float f); ! TEEM_API int airExists_d(double d); /* *************** *** 324,361 **** #define AIR_TYPE_MAX 8 /* parseAir.c */ ! TEEMAPI double airAtod(const char *str); ! TEEMAPI int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! TEEMAPI airEnum *airBool; ! TEEMAPI int airParseStrB(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrI(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrF(float *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrD(double *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrC(char *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrS(char **out, const char *s, ! const char *ct, int n, ... /* REQUIRED, even if n>1: ! int greedy */); ! TEEMAPI int airParseStrE(int *out, const char *s, ! const char *ct, int n, ... /* REQUIRED: airEnum *e */); ! TEEMAPI int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, ! const char *, int, ...); /* string.c */ ! TEEMAPI char *airStrdup(const char *s); ! TEEMAPI size_t airStrlen(const char *s); ! TEEMAPI int airStrtokQuoting; ! TEEMAPI char *airStrtok(char *s, const char *ct, char **last); ! TEEMAPI int airStrntok(const char *s, const char *ct); ! TEEMAPI char *airStrtrans(char *s, char from, char to); ! TEEMAPI int airEndsWith(const char *s, const char *suff); ! TEEMAPI char *airUnescape(char *s); ! TEEMAPI char *airOneLinify(char *s); ! TEEMAPI char *airToLower(char *str); ! TEEMAPI char *airToUpper(char *str); ! TEEMAPI int airOneLine(FILE *file, char *line, int size); /* sane.c */ --- 324,361 ---- #define AIR_TYPE_MAX 8 /* parseAir.c */ ! TEEM_API double airAtod(const char *str); ! TEEM_API int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! TEEM_API airEnum *airBool; ! TEEM_API int airParseStrB(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrI(int *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrF(float *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrD(double *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrC(char *out, const char *s, ! const char *ct, int n, ... /* nothing used */); ! TEEM_API int airParseStrS(char **out, const char *s, ! const char *ct, int n, ... /* REQUIRED, even if n>1: ! int greedy */); ! TEEM_API int airParseStrE(int *out, const char *s, ! const char *ct, int n, ... /* REQ'ED: airEnum *e */); ! TEEM_API int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, ! const char *, int, ...); /* string.c */ ! TEEM_API char *airStrdup(const char *s); ! TEEM_API size_t airStrlen(const char *s); ! TEEM_API int airStrtokQuoting; ! TEEM_API char *airStrtok(char *s, const char *ct, char **last); ! TEEM_API int airStrntok(const char *s, const char *ct); ! TEEM_API char *airStrtrans(char *s, char from, char to); ! TEEM_API int airEndsWith(const char *s, const char *suff); ! TEEM_API char *airUnescape(char *s); ! TEEM_API char *airOneLinify(char *s); ! TEEM_API char *airToLower(char *str); ! TEEM_API char *airToUpper(char *str); ! TEEM_API int airOneLine(FILE *file, char *line, int size); /* sane.c */ *************** *** 382,422 **** }; #define AIR_INSANE_MAX 11 ! TEEMAPI const char *airInsaneErr(int insane); ! TEEMAPI int airSanity(); /* miscAir.c */ ! TEEMAPI const char *airTeemVersion; ! TEEMAPI const char *airTeemReleaseDate; ! TEEMAPI void *airNull(void); ! TEEMAPI void *airSetNull(void **ptrP); ! TEEMAPI void *airFree(void *ptr); ! TEEMAPI void *airFreeP(void *_ptrP); ! TEEMAPI FILE *airFopen(const char *name, FILE *std, const char *mode); ! TEEMAPI FILE *airFclose(FILE *file); ! TEEMAPI int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! TEEMAPI const int airMy32Bit; /* ---- BEGIN non-NrrdIO */ ! TEEMAPI const char airMyFmt_size_t[]; ! TEEMAPI void airSrand(void); ! TEEMAPI double airRand(void); ! TEEMAPI int airRandInt(int N); ! TEEMAPI void airShuffle(int *buff, int N, int perm); ! TEEMAPI char *airDoneStr(float start, float here, float end, char *str); ! TEEMAPI double airTime(); ! TEEMAPI double airCbrt(double); ! TEEMAPI double airSgnPow(double, double); ! TEEMAPI int airSgn(double); ! TEEMAPI int airLog2(float n); ! TEEMAPI void airBinaryPrintUInt(FILE *file, int digits, unsigned int N); ! TEEMAPI double airErf(double x); ! TEEMAPI double airGaussian(double x, double mean, double stdv); ! TEEMAPI const char airTypeStr[AIR_TYPE_MAX+1][AIR_STRLEN_SMALL]; ! TEEMAPI const int airTypeSize[AIR_TYPE_MAX+1]; ! TEEMAPI int airILoad(void *v, int t); ! TEEMAPI float airFLoad(void *v, int t); ! TEEMAPI double airDLoad(void *v, int t); ! TEEMAPI int airIStore(void *v, int t, int i); ! TEEMAPI float airFStore(void *v, int t, float f); ! TEEMAPI double airDStore(void *v, int t, double d); /* ---- END non-NrrdIO */ --- 382,422 ---- }; #define AIR_INSANE_MAX 11 ! TEEM_API const char *airInsaneErr(int insane); ! TEEM_API int airSanity(); /* miscAir.c */ ! TEEM_API const char *airTeemVersion; ! TEEM_API const char *airTeemReleaseDate; ! TEEM_API void *airNull(void); ! TEEM_API void *airSetNull(void **ptrP); ! TEEM_API void *airFree(void *ptr); ! TEEM_API void *airFreeP(void *_ptrP); ! TEEM_API FILE *airFopen(const char *name, FILE *std, const char *mode); ! TEEM_API FILE *airFclose(FILE *file); ! TEEM_API int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! TEEM_API const int airMy32Bit; /* ---- BEGIN non-NrrdIO */ ! TEEM_API const char airMyFmt_size_t[]; ! TEEM_API void airSrand(void); ! TEEM_API double airRand(void); ! TEEM_API int airRandInt(int N); ! TEEM_API void airShuffle(int *buff, int N, int perm); ! TEEM_API char *airDoneStr(float start, float here, float end, char *str); ! TEEM_API double airTime(); ! TEEM_API double airCbrt(double); ! TEEM_API double airSgnPow(double, double); ! TEEM_API int airSgn(double); ! TEEM_API int airLog2(float n); ! TEEM_API void airBinaryPrintUInt(FILE *file, int digits, unsigned int N); ! TEEM_API double airErf(double x); ! TEEM_API double airGaussian(double x, double mean, double stdv); ! TEEM_API const char airTypeStr[AIR_TYPE_MAX+1][AIR_STRLEN_SMALL]; ! TEEM_API const int airTypeSize[AIR_TYPE_MAX+1]; ! TEEM_API int airILoad(void *v, int t); ! TEEM_API float airFLoad(void *v, int t); ! TEEM_API double airDLoad(void *v, int t); ! TEEM_API int airIStore(void *v, int t, int i); ! TEEM_API float airFStore(void *v, int t, float f); ! TEEM_API double airDStore(void *v, int t, double d); /* ---- END non-NrrdIO */ *************** *** 444,454 **** }; #define AIR_NODIO_MAX 12 ! TEEMAPI const char *airNoDioErr(int noDio); ! TEEMAPI const int airMyDio; ! TEEMAPI int airDisableDio; ! TEEMAPI int airDioInfo(int *mem, int *min, int *max, FILE *file); ! TEEMAPI int airDioTest(size_t size, FILE *file, void *ptr); ! TEEMAPI size_t airDioRead(FILE *file, void **ptrP, size_t size); ! TEEMAPI size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ --- 444,454 ---- }; #define AIR_NODIO_MAX 12 ! TEEM_API const char *airNoDioErr(int noDio); ! TEEM_API const int airMyDio; ! TEEM_API int airDisableDio; ! TEEM_API int airDioInfo(int *mem, int *min, int *max, FILE *file); ! TEEM_API int airDioTest(size_t size, FILE *file, void *ptr); ! TEEM_API size_t airDioRead(FILE *file, void **ptrP, size_t size); ! TEEM_API size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ *************** *** 465,479 **** int when; /* from the airMopWhen enum */ } airMop; ! TEEMAPI airArray *airMopNew(void); ! TEEMAPI void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! TEEMAPI void airMopSub(airArray *arr, void *ptr, airMopper mop); ! TEEMAPI void airMopMem(airArray *arr, void *_ptrP, int when); ! TEEMAPI void airMopUnMem(airArray *arr, void *_ptrP); ! TEEMAPI void airMopPrint(airArray *arr, void *_str, int when); ! TEEMAPI void airMopDone(airArray *arr, int error); ! TEEMAPI void airMopError(airArray *arr); ! TEEMAPI void airMopOkay(airArray *arr); ! TEEMAPI void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ --- 465,479 ---- int when; /* from the airMopWhen enum */ } airMop; ! TEEM_API airArray *airMopNew(void); ! TEEM_API void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! TEEM_API void airMopSub(airArray *arr, void *ptr, airMopper mop); ! TEEM_API void airMopMem(airArray *arr, void *_ptrP, int when); ! TEEM_API void airMopUnMem(airArray *arr, void *_ptrP); ! TEEM_API void airMopPrint(airArray *arr, void *_str, int when); ! TEEM_API void airMopDone(airArray *arr, int error); ! TEEM_API void airMopError(airArray *arr); ! TEEM_API void airMopOkay(airArray *arr); ! TEEM_API void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ |
|
From: <ik...@us...> - 2004-02-14 03:27:32
|
Update of /cvsroot/teem/teem/src/air In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13033 Modified Files: air.h Log Message: added TEAT approved export definition -- NOTE: tree is broken Index: air.h =================================================================== RCS file: /cvsroot/teem/teem/src/air/air.h,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** air.h 13 Feb 2004 03:40:58 -0000 1.36 --- air.h 14 Feb 2004 03:21:21 -0000 1.37 *************** *** 33,52 **** #endif ! /* Get rid of some warnings on VC++ */ ! #ifdef _MSC_VER #pragma warning ( disable : 4244 ) #pragma warning ( disable : 4305 ) #pragma warning ( disable : 4309 ) #pragma warning ( disable : 4273 ) ! #endif /* _MSC_VER */ ! ! #if defined(_WIN32) && !defined(TEEM_STATIC) && !defined(__CYGWIN__) ! #define air_export __declspec(dllimport) ! #else ! #define air_export ! #endif ! ! #ifdef _WIN32 ! #if _MSC_VER < 1300 || !defined(_USE_MATH_DEFINES) #ifndef M_PI #define M_PI 3.14159265358979323846 --- 33,54 ---- #endif ! /* define TEEMAPI */ ! #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(TEEM_STATIC) ! #if defined(TEEM_BUILD) ! #define TEEMAPI extern __declspec(dllexport) ! #else ! #define TEEMAPI extern __declspec(dllimport) ! #endif ! #else /* TEEM_STATIC || UNIX */ ! #define TEEMAPI extern ! #endif ! ! #if defined(_MSC_VER) ! /* get rid of some warnings on VC++ */ #pragma warning ( disable : 4244 ) #pragma warning ( disable : 4305 ) #pragma warning ( disable : 4309 ) #pragma warning ( disable : 4273 ) ! /* add essential math definitions */ #ifndef M_PI #define M_PI 3.14159265358979323846 *************** *** 114,123 **** int sense; /* require case matching on strings */ } airEnum; ! extern int airEnumUnknown(airEnum *enm); ! extern int airEnumValCheck(airEnum *enm, int val); ! extern char *airEnumStr(airEnum *enm, int val); ! extern char *airEnumDesc(airEnum *enm, int val); ! extern int airEnumVal(airEnum *enm, const char *str); ! extern char *airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt); /* --- 116,125 ---- int sense; /* require case matching on strings */ } airEnum; ! TEEMAPI int airEnumUnknown(airEnum *enm); ! TEEMAPI int airEnumValCheck(airEnum *enm, int val); ! TEEMAPI char *airEnumStr(airEnum *enm, int val); ! TEEMAPI char *airEnumDesc(airEnum *enm, int val); ! TEEMAPI int airEnumVal(airEnum *enm, const char *str); ! TEEMAPI char *airEnumFmtDesc(airEnum *enm, int val, int canon, const char *fmt); /* *************** *** 135,140 **** }; /* endianAir.c */ ! extern air_export airEnum *airEndian; ! extern air_export const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ --- 137,142 ---- }; /* endianAir.c */ ! TEEMAPI airEnum *airEndian; ! TEEMAPI const int airMyEndian; /* array.c: poor-man's dynamically resizable arrays */ *************** *** 176,188 **** } airArray; ! extern airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! extern void airArrayStructCB(airArray *a, void (*initCB)(void *), void (*doneCB)(void *)); ! extern void airArrayPointerCB(airArray *a, void *(*allocCB)(void), void *(*freeCB)(void *)); ! extern int airArraySetLen(airArray *a, int newlen); ! extern int airArrayIncrLen(airArray *a, int delta); ! extern airArray *airArrayNix(airArray *a); ! extern airArray *airArrayNuke(airArray *a); /* ---- BEGIN non-NrrdIO */ --- 178,190 ---- } airArray; ! TEEMAPI airArray *airArrayNew(void **dataP, int *lenP, size_t unit, int incr); ! TEEMAPI void airArrayStructCB(airArray *a, void (*initCB)(void *), void (*doneCB)(void *)); ! TEEMAPI void airArrayPointerCB(airArray *a, void *(*allocCB)(void), void *(*freeCB)(void *)); ! TEEMAPI int airArraySetLen(airArray *a, int newlen); ! TEEMAPI int airArrayIncrLen(airArray *a, int delta); ! TEEMAPI airArray *airArrayNix(airArray *a); ! TEEMAPI airArray *airArrayNuke(airArray *a); /* ---- BEGIN non-NrrdIO */ *************** *** 195,199 **** ** via pthreads, or via Windows stuff */ ! extern air_export const int airThreadCapable; /* --- 197,201 ---- ** via pthreads, or via Windows stuff */ ! TEEMAPI const int airThreadCapable; /* *************** *** 205,209 **** ** warning to this effect when those constructs are used */ ! extern air_export int airThreadNoopWarning; /* opaque typedefs for OS-specific stuff */ --- 207,211 ---- ** warning to this effect when those constructs are used */ ! TEEMAPI int airThreadNoopWarning; /* opaque typedefs for OS-specific stuff */ *************** *** 217,240 **** } airThreadBarrier; ! extern airThread *airThreadNew(void); ! extern int airThreadStart(airThread *thread, void *(*threadBody)(void *), void *arg); ! extern int airThreadJoin(airThread *thread, void **retP); ! extern airThread *airThreadNix(airThread *thread); ! extern airThreadMutex *airThreadMutexNew(); ! extern int airThreadMutexLock(airThreadMutex *mutex); ! extern int airThreadMutexUnlock(airThreadMutex *mutex); ! extern airThreadMutex *airThreadMutexNix(airThreadMutex *mutex); ! extern airThreadCond *airThreadCondNew(); ! extern int airThreadCondWait(airThreadCond *cond, airThreadMutex *mutex); ! extern int airThreadCondSignal(airThreadCond *cond); ! extern int airThreadCondBroadcast(airThreadCond *cond); ! extern airThreadCond *airThreadCondNix(airThreadCond *cond); ! extern airThreadBarrier *airThreadBarrierNew(unsigned numUsers); ! extern int airThreadBarrierWait(airThreadBarrier *barrier); ! extern airThreadBarrier *airThreadBarrierNix(airThreadBarrier *barrier); /* ---- END non-NrrdIO */ --- 219,242 ---- } airThreadBarrier; ! TEEMAPI airThread *airThreadNew(void); ! TEEMAPI int airThreadStart(airThread *thread, void *(*threadBody)(void *), void *arg); ! TEEMAPI int airThreadJoin(airThread *thread, void **retP); ! TEEMAPI airThread *airThreadNix(airThread *thread); ! TEEMAPI airThreadMutex *airThreadMutexNew(); ! TEEMAPI int airThreadMutexLock(airThreadMutex *mutex); ! TEEMAPI int airThreadMutexUnlock(airThreadMutex *mutex); ! TEEMAPI airThreadMutex *airThreadMutexNix(airThreadMutex *mutex); ! TEEMAPI airThreadCond *airThreadCondNew(); ! TEEMAPI int airThreadCondWait(airThreadCond *cond, airThreadMutex *mutex); ! TEEMAPI int airThreadCondSignal(airThreadCond *cond); ! TEEMAPI int airThreadCondBroadcast(airThreadCond *cond); ! TEEMAPI airThreadCond *airThreadCondNix(airThreadCond *cond); ! TEEMAPI airThreadBarrier *airThreadBarrierNew(unsigned numUsers); ! TEEMAPI int airThreadBarrierWait(airThreadBarrier *barrier); ! TEEMAPI airThreadBarrier *airThreadBarrierNix(airThreadBarrier *barrier); /* ---- END non-NrrdIO */ *************** *** 277,303 **** double d; } airDouble; ! extern air_export const int airMyQNaNHiBit; ! extern air_export const int airMyBigBitField; ! extern float airFPPartsToVal_f(int sign, int exp, int frac); ! extern void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! extern double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! extern void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, double v); ! extern float airFPGen_f(int cls); ! extern double airFPGen_d(int cls); ! extern int airFPClass_f(float val); ! extern int airFPClass_d(double val); ! extern void airFPFprintf_f(FILE *file, float val); ! extern void airFPFprintf_d(FILE *file, double val); ! extern air_export const airFloat airFloatQNaN; ! extern air_export const airFloat airFloatSNaN; ! extern air_export const airFloat airFloatPosInf; ! extern air_export const airFloat airFloatNegInf; ! extern float airNaN(); ! extern int airIsNaN(float f); ! extern int airIsInf_f(float f); ! extern int airIsInf_d(double d); ! extern int airExists_f(float f); ! extern int airExists_d(double d); /* --- 279,305 ---- double d; } airDouble; ! TEEMAPI const int airMyQNaNHiBit; ! TEEMAPI const int airMyBigBitField; ! TEEMAPI float airFPPartsToVal_f(int sign, int exp, int frac); ! TEEMAPI void airFPValToParts_f(int *signP, int *expP, int *fracP, float v); ! TEEMAPI double airFPPartsToVal_d(int sign, int exp, airULLong frac); ! TEEMAPI void airFPValToParts_d(int *signP, int *expP, airULLong *fracP, double v); ! TEEMAPI float airFPGen_f(int cls); ! TEEMAPI double airFPGen_d(int cls); ! TEEMAPI int airFPClass_f(float val); ! TEEMAPI int airFPClass_d(double val); ! TEEMAPI void airFPFprintf_f(FILE *file, float val); ! TEEMAPI void airFPFprintf_d(FILE *file, double val); ! TEEMAPI const airFloat airFloatQNaN; ! TEEMAPI const airFloat airFloatSNaN; ! TEEMAPI const airFloat airFloatPosInf; ! TEEMAPI const airFloat airFloatNegInf; ! TEEMAPI float airNaN(); ! TEEMAPI int airIsNaN(float f); ! TEEMAPI int airIsInf_f(float f); ! TEEMAPI int airIsInf_d(double d); ! TEEMAPI int airExists_f(float f); ! TEEMAPI int airExists_d(double d); /* *************** *** 322,359 **** #define AIR_TYPE_MAX 8 /* parseAir.c */ ! extern double airAtod(const char *str); ! extern int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! extern airEnum *airBool; ! extern int airParseStrB(int *out, const char *s, const char *ct, int n, ... /* nothing used */); ! extern int airParseStrI(int *out, const char *s, const char *ct, int n, ... /* nothing used */); ! extern int airParseStrF(float *out, const char *s, const char *ct, int n, ... /* nothing used */); ! extern int airParseStrD(double *out, const char *s, const char *ct, int n, ... /* nothing used */); ! extern int airParseStrC(char *out, const char *s, const char *ct, int n, ... /* nothing used */); ! extern int airParseStrS(char **out, const char *s, const char *ct, int n, ... /* REQUIRED, even if n>1: int greedy */); ! extern int airParseStrE(int *out, const char *s, const char *ct, int n, ... /* REQUIRED: airEnum *e */); ! extern air_export int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, const char *, int, ...); /* string.c */ ! extern char *airStrdup(const char *s); ! extern size_t airStrlen(const char *s); ! extern air_export int airStrtokQuoting; ! extern char *airStrtok(char *s, const char *ct, char **last); ! extern int airStrntok(const char *s, const char *ct); ! extern char *airStrtrans(char *s, char from, char to); ! extern int airEndsWith(const char *s, const char *suff); ! extern char *airUnescape(char *s); ! extern char *airOneLinify(char *s); ! extern char *airToLower(char *str); ! extern char *airToUpper(char *str); ! extern int airOneLine(FILE *file, char *line, int size); /* sane.c */ --- 324,361 ---- #define AIR_TYPE_MAX 8 /* parseAir.c */ ! TEEMAPI double airAtod(const char *str); ! TEEMAPI int airSingleSscanf(const char *str, const char *fmt, void *ptr); ! TEEMAPI airEnum *airBool; ! TEEMAPI int airParseStrB(int *out, const char *s, const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrI(int *out, const char *s, const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrF(float *out, const char *s, const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrD(double *out, const char *s, const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrC(char *out, const char *s, const char *ct, int n, ... /* nothing used */); ! TEEMAPI int airParseStrS(char **out, const char *s, const char *ct, int n, ... /* REQUIRED, even if n>1: int greedy */); ! TEEMAPI int airParseStrE(int *out, const char *s, const char *ct, int n, ... /* REQUIRED: airEnum *e */); ! TEEMAPI int (*airParseStr[AIR_TYPE_MAX+1])(void *, const char *, const char *, int, ...); /* string.c */ ! TEEMAPI char *airStrdup(const char *s); ! TEEMAPI size_t airStrlen(const char *s); ! TEEMAPI int airStrtokQuoting; ! TEEMAPI char *airStrtok(char *s, const char *ct, char **last); ! TEEMAPI int airStrntok(const char *s, const char *ct); ! TEEMAPI char *airStrtrans(char *s, char from, char to); ! TEEMAPI int airEndsWith(const char *s, const char *suff); ! TEEMAPI char *airUnescape(char *s); ! TEEMAPI char *airOneLinify(char *s); ! TEEMAPI char *airToLower(char *str); ! TEEMAPI char *airToUpper(char *str); ! TEEMAPI int airOneLine(FILE *file, char *line, int size); /* sane.c */ *************** *** 380,420 **** }; #define AIR_INSANE_MAX 11 ! extern const char *airInsaneErr(int insane); ! extern int airSanity(); /* miscAir.c */ ! extern air_export const char *airTeemVersion; ! extern air_export const char *airTeemReleaseDate; ! extern void *airNull(void); ! extern void *airSetNull(void **ptrP); ! extern void *airFree(void *ptr); ! extern void *airFreeP(void *_ptrP); ! extern FILE *airFopen(const char *name, FILE *std, const char *mode); ! extern FILE *airFclose(FILE *file); ! extern int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! extern air_export const int airMy32Bit; /* ---- BEGIN non-NrrdIO */ ! extern air_export const char airMyFmt_size_t[]; ! extern void airSrand(void); ! extern double airRand(void); ! extern int airRandInt(int N); ! extern void airShuffle(int *buff, int N, int perm); ! extern char *airDoneStr(float start, float here, float end, char *str); ! extern double airTime(); ! extern double airCbrt(double); ! extern double airSgnPow(double, double); ! extern int airSgn(double); ! extern int airLog2(float n); ! extern void airBinaryPrintUInt(FILE *file, int digits, unsigned int N); ! extern double airErf(double x); ! extern double airGaussian(double x, double mean, double stdv); ! extern air_export const char airTypeStr[AIR_TYPE_MAX+1][AIR_STRLEN_SMALL]; ! extern air_export const int airTypeSize[AIR_TYPE_MAX+1]; ! extern int airILoad(void *v, int t); ! extern float airFLoad(void *v, int t); ! extern double airDLoad(void *v, int t); ! extern int airIStore(void *v, int t, int i); ! extern float airFStore(void *v, int t, float f); ! extern double airDStore(void *v, int t, double d); /* ---- END non-NrrdIO */ --- 382,422 ---- }; #define AIR_INSANE_MAX 11 ! TEEMAPI const char *airInsaneErr(int insane); ! TEEMAPI int airSanity(); /* miscAir.c */ ! TEEMAPI const char *airTeemVersion; ! TEEMAPI const char *airTeemReleaseDate; ! TEEMAPI void *airNull(void); ! TEEMAPI void *airSetNull(void **ptrP); ! TEEMAPI void *airFree(void *ptr); ! TEEMAPI void *airFreeP(void *_ptrP); ! TEEMAPI FILE *airFopen(const char *name, FILE *std, const char *mode); ! TEEMAPI FILE *airFclose(FILE *file); ! TEEMAPI int airSinglePrintf(FILE *file, char *str, const char *fmt, ...); ! TEEMAPI const int airMy32Bit; /* ---- BEGIN non-NrrdIO */ ! TEEMAPI const char airMyFmt_size_t[]; ! TEEMAPI void airSrand(void); ! TEEMAPI double airRand(void); ! TEEMAPI int airRandInt(int N); ! TEEMAPI void airShuffle(int *buff, int N, int perm); ! TEEMAPI char *airDoneStr(float start, float here, float end, char *str); ! TEEMAPI double airTime(); ! TEEMAPI double airCbrt(double); ! TEEMAPI double airSgnPow(double, double); ! TEEMAPI int airSgn(double); ! TEEMAPI int airLog2(float n); ! TEEMAPI void airBinaryPrintUInt(FILE *file, int digits, unsigned int N); ! TEEMAPI double airErf(double x); ! TEEMAPI double airGaussian(double x, double mean, double stdv); ! TEEMAPI const char airTypeStr[AIR_TYPE_MAX+1][AIR_STRLEN_SMALL]; ! TEEMAPI const int airTypeSize[AIR_TYPE_MAX+1]; ! TEEMAPI int airILoad(void *v, int t); ! TEEMAPI float airFLoad(void *v, int t); ! TEEMAPI double airDLoad(void *v, int t); ! TEEMAPI int airIStore(void *v, int t, int i); ! TEEMAPI float airFStore(void *v, int t, float f); ! TEEMAPI double airDStore(void *v, int t, double d); /* ---- END non-NrrdIO */ *************** *** 442,452 **** }; #define AIR_NODIO_MAX 12 ! extern const char *airNoDioErr(int noDio); ! extern air_export const int airMyDio; ! extern air_export int airDisableDio; ! extern int airDioInfo(int *mem, int *min, int *max, FILE *file); ! extern int airDioTest(size_t size, FILE *file, void *ptr); ! extern size_t airDioRead(FILE *file, void **ptrP, size_t size); ! extern size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ --- 444,454 ---- }; #define AIR_NODIO_MAX 12 ! TEEMAPI const char *airNoDioErr(int noDio); ! TEEMAPI const int airMyDio; ! TEEMAPI int airDisableDio; ! TEEMAPI int airDioInfo(int *mem, int *min, int *max, FILE *file); ! TEEMAPI int airDioTest(size_t size, FILE *file, void *ptr); ! TEEMAPI size_t airDioRead(FILE *file, void **ptrP, size_t size); ! TEEMAPI size_t airDioWrite(FILE *file, void *ptr, size_t size); /* mop.c: clean-up utilities */ *************** *** 463,477 **** int when; /* from the airMopWhen enum */ } airMop; ! extern airArray *airMopNew(void); ! extern void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! extern void airMopSub(airArray *arr, void *ptr, airMopper mop); ! extern void airMopMem(airArray *arr, void *_ptrP, int when); ! extern void airMopUnMem(airArray *arr, void *_ptrP); ! extern void airMopPrint(airArray *arr, void *_str, int when); ! extern void airMopDone(airArray *arr, int error); ! extern void airMopError(airArray *arr); ! extern void airMopOkay(airArray *arr); ! extern void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ --- 465,479 ---- int when; /* from the airMopWhen enum */ } airMop; ! TEEMAPI airArray *airMopNew(void); ! TEEMAPI void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); ! TEEMAPI void airMopSub(airArray *arr, void *ptr, airMopper mop); ! TEEMAPI void airMopMem(airArray *arr, void *_ptrP, int when); ! TEEMAPI void airMopUnMem(airArray *arr, void *_ptrP); ! TEEMAPI void airMopPrint(airArray *arr, void *_str, int when); ! TEEMAPI void airMopDone(airArray *arr, int error); ! TEEMAPI void airMopError(airArray *arr); ! TEEMAPI void airMopOkay(airArray *arr); ! TEEMAPI void airMopDebug(airArray *arr); /******* the interminable sea of defines and macros *******/ |
|
From: <kin...@us...> - 2004-02-13 23:22:08
|
Update of /cvsroot/teem/teem/src/ten In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv907 Modified Files: tenGage.c Log Message: ssssh compiler warnings Index: tenGage.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/tenGage.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tenGage.c 13 Feb 2004 23:00:09 -0000 1.11 --- tenGage.c 13 Feb 2004 23:16:04 -0000 1.12 *************** *** 107,111 **** _tenGageAnswer (gageContext *ctx, gagePerVolume *pvl) { /* char me[]="_tenGageAnswer"; */ ! gage_t *ans, *tenAns, *tgradAns, *QgradAns, *evalAns, *evecAns, tmptmp=0, dtA=0, dtB=0, dtC=0, dtD=0, dtE=0, dtF=0, cbA, cbB; int wantEvals, wantEvecs; --- 107,111 ---- _tenGageAnswer (gageContext *ctx, gagePerVolume *pvl) { /* char me[]="_tenGageAnswer"; */ ! gage_t *tenAns, *tgradAns, *QgradAns, *evalAns, *evecAns, tmptmp=0, dtA=0, dtB=0, dtC=0, dtD=0, dtE=0, dtF=0, cbA, cbB; int wantEvals, wantEvecs; *************** *** 116,120 **** #endif - ans = pvl->answer; tenAns = pvl->directAnswer[tenGageTensor]; tgradAns = pvl->directAnswer[tenGageTensorGrad]; --- 116,119 ---- |
|
From: <kin...@us...> - 2004-02-13 23:20:50
|
Update of /cvsroot/teem/teem/src/limn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv645 Modified Files: transform.c Log Message: ssssh compiler warnings Index: transform.c =================================================================== RCS file: /cvsroot/teem/teem/src/limn/transform.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** transform.c 10 Feb 2004 09:26:53 -0000 1.20 --- transform.c 13 Feb 2004 23:14:47 -0000 1.21 *************** *** 330,334 **** char me[]="limnObjectFaceReverse", err[AIR_STRLEN_MED]; limnFace *face; int faceIdx; - limnPart *part; int *buff, sii; --- 330,333 ---- *************** *** 340,344 **** for (faceIdx=0; faceIdx<obj->faceNum; faceIdx++) { face = obj->face + faceIdx; - part = obj->part + face->partIdx; buff = (int *)calloc(face->sideNum, sizeof(int)); if (!(buff)) { --- 339,342 ---- |
|
From: <kin...@us...> - 2004-02-13 23:18:56
|
Update of /cvsroot/teem/teem/src/gage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32666 Modified Files: sclanswer.c vecGage.c Log Message: ssssh compiler warnings Index: sclanswer.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/sclanswer.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** sclanswer.c 13 Feb 2004 22:56:15 -0000 1.15 --- sclanswer.c 13 Feb 2004 23:12:52 -0000 1.16 *************** *** 24,28 **** _gageSclAnswer (gageContext *ctx, gagePerVolume *pvl) { char me[]="_gageSclAnswer"; ! gage_t *ans, gmag=0, *hess, *norm, *gvec, *gten, *k1, *k2, sHess[9], curv=0; double tmpMat[9], tmpVec[3], hevec[9], heval[3]; --- 24,28 ---- _gageSclAnswer (gageContext *ctx, gagePerVolume *pvl) { char me[]="_gageSclAnswer"; ! gage_t gmag=0, *hess, *norm, *gvec, *gten, *k1, *k2, sHess[9], curv=0; double tmpMat[9], tmpVec[3], hevec[9], heval[3]; *************** *** 30,34 **** double T, N, D; - ans = pvl->answer; /* convenience pointers for work below */ hess = pvl->directAnswer[gageSclHessian]; --- 30,33 ---- Index: vecGage.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/vecGage.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** vecGage.c 13 Feb 2004 22:56:15 -0000 1.14 --- vecGage.c 13 Feb 2004 23:12:52 -0000 1.15 *************** *** 101,107 **** char me[]="_gageVecAnswer"; double tmpMat[9], mgevec[9], mgeval[3]; ! gage_t *ans, *vecAns, *normAns, *jacAns; - ans = pvl->answer; vecAns = pvl->directAnswer[gageVecVector]; jacAns = pvl->directAnswer[gageVecJacobian]; --- 101,106 ---- char me[]="_gageVecAnswer"; double tmpMat[9], mgevec[9], mgeval[3]; ! gage_t *vecAns, *normAns, *jacAns; vecAns = pvl->directAnswer[gageVecVector]; jacAns = pvl->directAnswer[gageVecJacobian]; |
|
From: <kin...@us...> - 2004-02-13 23:13:18
|
Update of /cvsroot/teem/teem/src/gage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31555 Added Files: kind.c Log Message: gage internal reorganization --- NEW FILE: kind.c --- /* teem: Gordon Kindlmann's research software Copyright (C) 2004, 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 "gage.h" #include "privateGage.h" /* ******** gageKindCheck ** ** some some basic checking of the gageEntryItem array (the "table") for ** the sorts of mistakes that may be introduced by its hand-coding, although ** theoretically this is good for dynamically-generated gageKinds as well. */ int gageKindCheck(gageKind *kind) { char me[]="gageKindCheck", err[AIR_STRLEN_MED]; int ii, pitem, pindex, alen; if (!kind) { sprintf(err, "%s: got NULL pointer", me); biffAdd(GAGE, err); return 1; } if (kind->itemMax > GAGE_ITEM_MAX) { sprintf(err, "%s: kind \"%s\" item max %d > GAGE_ITEM_MAX %d", me, kind->name, kind->itemMax, GAGE_ITEM_MAX); biffAdd(GAGE, err); return 1; } for (ii=0; ii<=kind->itemMax; ii++) { if (ii != kind->table[ii].enumVal) { sprintf(err, "%s: item %d of kind \"%s\" has enumVal %d (not %d)", me, ii, kind->name, kind->table[ii].enumVal, ii); biffAdd(GAGE, err); return 1; } alen = kind->table[ii].answerLength; if (!(1 <= alen)) { sprintf(err, "%s: item %d of kind \"%s\" has invalid answerLength %d", me, ii, kind->name, alen); biffAdd(GAGE, err); return 1; } if (!(AIR_IN_CL(0, kind->table[ii].needDeriv, 2))) { sprintf(err, "%s: item %d of kind \"%s\" has invalid needDeriv %d", me, ii, kind->name, kind->table[ii].needDeriv); biffAdd(GAGE, err); return 1; } pitem = kind->table[ii].parentItem; pindex = kind->table[ii].parentIndex; if (-1 != pitem) { if (-1 != kind->table[pitem].parentItem) { sprintf(err, "%s: item %d of kind \"%s\" has parent %d which " "wants to have parent %d: can't have sub-sub-items", me, ii, kind->name, pitem, kind->table[pitem].parentItem); biffAdd(GAGE, err); return 1; } if (!( 0 <= pindex && (pindex + alen <= kind->table[pitem].answerLength) )) { sprintf(err, "%s: item %d of kind \"%s\" wants index range [%d,%d] " "of parent %d, which isn't in valid range [0,%d]", me, ii, kind->name, pindex, pindex + alen - 1, pitem, kind->table[pitem].answerLength - 1); biffAdd(GAGE, err); return 1; } } } return 0; } int gageKindTotalAnswerLength(gageKind *kind) { char me[]="gageKindTotalAnswerLength", *err; int ii, alen; if (gageKindCheck(kind)) { err = biffGetDone(GAGE); fprintf(stderr, "%s: PANIC:\n %s", me, err); free(err); exit(1); } alen = 0; for (ii=0; ii<=kind->itemMax; ii++) { alen += (-1 == kind->table[ii].parentItem ? kind->table[ii].answerLength : 0); } return alen; } int _gageKindAnswerOffset(gageKind *kind, int item) { return (item ? (kind->table[item-1].answerLength + _gageKindAnswerOffset(kind, item-1)) : 0); } int gageKindAnswerOffset(gageKind *kind, int item) { char me[]="gageKindAnswerOffset", *err; if (gageKindCheck(kind)) { err = biffGetDone(GAGE); fprintf(stderr, "%s: PANIC:\n %s", me, err); free(err); exit(1); } /* here's why its important that there are no sub-sub-items */ return (-1 == kind->table[item].parentItem ? _gageKindAnswerOffset(kind, item) : (kind->table[item].parentIndex + _gageKindAnswerOffset(kind, kind->table[item].parentItem))); } |