#include "mrilib.h"
#include "r_idisp.h"
/*----------------------------------------------------------------------
* history:
*
* 1.3a 2005 March 22
* - removed all tabs
*
* 1.3 2003 October 20
* - incorporate ALLOW_DATASET_VLIST check for r_idisp_THD_3dim_dataset
*
* 1.2 2003 July 27
* - apply CHECK_NULL_STR() to questionable string prints
*----------------------------------------------------------------------
*/
/*----------------------------------------------------------------------
* The following routines are to display data structures.
* The functions are of the form r_idisp_XXX, meaning :
* "Information Display of data structure XXX"
*
* Existing structures are:
* 3ddata.h:
* - FD_brick
* - THD_3dim_dataset
* - THD_dataxes
* - THD_datablock
* - THD_diskptr
*
* mrilib.h:
* - MRI_IMAGE
* - MRI_IMARR
*
* cox_render.h:
* - CREN_stuff
*
* raw data types:
* - mat33d
* - mat33f
* - vec3d
* - vec3i
*
* Return values:
* 0 : success
* else : some error
*----------------------------------------------------------------------
**/
/*----------------------------------------------------------------------
* new structs - local
*----------------------------------------------------------------------
*/
int r_idisp_vec3d( char * info, double * vec )
{
if ( info )
fputs( info, stdout );
if ( vec == NULL )
{
printf( "r_idisp_vec3d: vec == NULL" );
return -1;
}
printf( "double vector at %p: <%f, %f, %f>\n",
vec, vec[0], vec[1], vec[2] );
return 0;
}
int r_idisp_vec3f( char * info, float * vec )
{
if ( info )
fputs( info, stdout );
if ( vec == NULL )
{
printf( "r_idisp_vec3f: vec == NULL" );
return -1;
}
printf( "float vector at %p: <%f, %f, %f>\n",
vec, vec[0], vec[1], vec[2] );
return 0;
}
/*----------------------------------------------------------------------
* mrilib.h, 3ddata.h
*----------------------------------------------------------------------
*/
int r_idisp_fd_brick( char * info, FD_brick * bp )
{
if ( info )
fputs( info, stdout );
if ( bp == NULL )
{
printf( "r_idisp_fd_brick: bp == NULL\n" );
return -1;
}
printf( "FD_brick structure at %p :\n", bp );
r_idisp_vec3i( " FD->nxyz : ", bp->nxyz.ijk );
r_idisp_vec3i( " FD->sxyz : ", bp->sxyz.ijk );
r_idisp_vec3i( " FD->a123 : ", bp->a123.ijk );
printf( " (n1, d1, e1) = (%d, %d, %d)\n"
" (n2, d2, e2) = (%d, %d, %d)\n"
" (n3, d3) = (%d, %d)\n"
" start = %d\n"
" (del1, del2, del3) = (%8.3f, %8.3f, %8.3f)\n"
" dset = %p\n"
" resam_code = %d\n"
" thr_resam_code = %d\n"
" namecode = <%s>\n"
" parent = %p\n",
bp->n1, bp->d1, bp->e1, bp->n2, bp->d2, bp->e2,
bp->n3, bp->d3, bp->start,
bp->del1, bp->del2, bp->del3,
bp->dset, bp->resam_code, bp->thr_resam_code,
CHECK_NULL_STR(bp->namecode), bp->parent );
return 0;
}
int r_idisp_vec3i( char * info, int * vec )
{
if ( info )
fputs( info, stdout );
if ( vec == NULL )
{
printf( "r_idisp_vec3i: vec == NULL\n" );
return -1;
}
printf( "int vec3 at %p: <%d, %d, %d>\n",
vec, vec[0], vec[1], vec[2] );
return 0;
}
int r_idisp_mri_image( char * info, MRI_IMAGE * ip )
{
if ( info )
fputs( info, stdout );
if ( ip == NULL )
{
printf( "r_idisp_mri_image: ip == NULL\n" );
return -1;
}
printf( "r_idisp_mri_image structure at %p :\n"
" nx = %d, ny = %d, nz = %d\n"
" nt = %d, nu = %d, nv = %d, nw = %d\n"
" nxy = %d, nxyz = %d, nxyzt = %d\n"
" nvox = %d, pixel_size = %d\n"
" kind = %d, im = %p, name = %s\n"
" dx = %7.3f, dy = %7.3f, dz = %7.3f, dt = %7.3f\n"
" du = %7.3f, dv = %7.3f, dw = %7.3f\n"
" xo = %7.3f, yo = %7.3f, zo = %7.3f, to = %7.3f\n"
" uo = %7.3f, vo = %7.3f, wo = %7.3f\n"
" was_swapped = %d\n",
ip,
ip->nx, ip->ny, ip->nz, ip->nt, ip->nu, ip->nv, ip->nw,
ip->nxy, ip->nxyz, ip->nxyzt, ip->nvox, ip->pixel_size,
(int)ip->kind, mri_data_pointer(ip), CHECK_NULL_STR(ip->name),
ip->dx, ip->dy, ip->dz, ip->dt, ip->du, ip->dv, ip->dw,
ip->xo, ip->yo, ip->zo, ip->to, ip->uo, ip->vo, ip->wo,
ip->was_swapped );
return 0;
}
int r_idisp_mri_imarr( char * info, MRI_IMARR * ip, int images )
{
int c;
if ( info )
fputs( info, stdout );
if ( ip == NULL )
{
printf( "r_idisp_mri_imarr: ip == NULL\n" );
return -1;
}
printf( "r_idisp_mri_imarr structure at %p :\n"
" num = %d, nall (mem) = %d\n",
ip, ip->num, ip->nall );
if ( images )
{
for ( c = 0; c < ip->num; c++ )
{
r_idisp_mri_image( NULL, ip->imarr[c] );
}
}
return 0;
}
int r_idisp_mat33f( char * info, float mat[3][3] )
{
if ( info )
fputs( info, stdout );
if ( mat == NULL )
{
printf( "r_idisp_mat33f: mat == NULL\n" );
return -1;
}
printf( "mat33 float structure at %p :\n"
" %7.3f %7.3f %7.3f\n"
" %7.3f %7.3f %7.3f\n"
" %7.3f %7.3f %7.3f\n",
mat,
mat[0][0], mat[0][1], mat[0][2],
mat[1][0], mat[1][1], mat[1][2],
mat[2][0], mat[2][1], mat[2][2]
);
return 0;
}
int r_idisp_mat33d( char * info, double mat[3][3] )
{
if ( info )
fputs( info, stdout );
if ( mat == NULL )
{
printf( "r_idisp_mat33d: mat == NULL\n" );
return -1;
}
printf( "mat33 double structure at %p :\n"
" %7.3f %7.3f %7.3f\n"
" %7.3f %7.3f %7.3f\n"
" %7.3f %7.3f %7.3f\n",
mat,
mat[0][0], mat[0][1], mat[0][2],
mat[1][0], mat[1][1], mat[1][2],
mat[2][0], mat[2][1], mat[2][2]
);
return 0;
}
int r_idisp_thd_3dim_dataset( char * info, THD_3dim_dataset * dp )
{
if ( info )
fputs( info, stdout );
if ( dp == NULL )
{
printf( "r_idisp_thd_3dim_dataset: dp == NULL\n" );
return -1;
}
printf( "THD_3dim_dataset struct at %p\n"
" type : %d\n"
" view_type : %d\n"
" func_type : %d\n"
" -------------------\n"
" dblk : %p\n"
" daxes : %p\n"
" wod_daxes : %p\n"
" wod_flag : %d\n"
" -------------------\n"
" taxis : %p\n"
" markers : %p\n"
" warp_parent : %p\n"
" warp : %p\n"
" vox_warp : %p\n"
" -------------------\n"
" anat_parent : %p\n"
" stats : %p\n"
#ifdef ALLOW_DATASET_VLIST
" pts : %p\n"
" pts_original : %d\n"
#endif
" death_mark : %d\n"
" -------------------\n"
#ifndef OMIT_DATASET_IDCODES
" idcode.str : <%s>\n"
" idcode.date : <%s>\n"
" anat_parent_idcode.str : <%s>\n"
" anat_parent_idcode.date : <%s>\n"
" warp_parent_idcode.str : <%s>\n"
" warp_parent_idcode.date : <%s>\n"
" -------------------\n"
#endif
" keywords : %p\n"
" tagset : %p\n"
" -------------------\n"
" kl.num : %d\n"
" kl.nalloc : %d\n"
" kl.kill : %p\n"
" parent : %p\n"
"-------------------------------------------\n",
dp, dp->type, dp->view_type, dp->func_type,
dp->dblk, dp->daxes, dp->wod_daxes, dp->wod_flag,
dp->taxis, dp->markers, dp->warp_parent, dp->warp, dp->vox_warp,
dp->anat_parent, dp->stats,
#ifdef ALLOW_DATASET_VLIST
dp->pts, dp->pts_original,
#endif
dp->death_mark,
#ifndef OMIT_DATASET_IDCODES
CHECK_NULL_STR(dp->idcode.str),
CHECK_NULL_STR(dp->idcode.date),
CHECK_NULL_STR(dp->anat_parent_idcode.str),
CHECK_NULL_STR(dp->anat_parent_idcode.date),
CHECK_NULL_STR(dp->warp_parent_idcode.str),
CHECK_NULL_STR(dp->warp_parent_idcode.date),
#endif
dp->keywords, dp->tagset,
dp->kl.num, dp->kl.nalloc, dp->kl.kill, dp->parent
);
return 0;
}
int r_idisp_thd_diskptr( char * info, THD_diskptr * dp )
{
if ( info )
fputs( info, stdout );
if ( dp == NULL )
{
printf( "r_idisp_thd_diskptr: dp == NULL\n" );
return -1;
}
printf( "THD_diskptr structure at %p\n"
" type (%2d) : %d\n"
" rank (3) : %d\n"
" dimsizes : (%d,%d,%d)\n"
" storage_mode : %d\n"
" byte_order : %d\n"
" --------------------------------------\n"
" prefix : %.60s\n"
" viewcode : %.60s\n"
" filecode : %.60s\n"
" --------------------------------------\n"
" directory_name : %.80s\n"
" header_name : %.80s\n"
" brick_name : %.80s\n"
" --------------------------------------\n",
dp, DISKPTR_TYPE, dp->type, dp->rank,
dp->dimsizes[0], dp->dimsizes[1], dp->dimsizes[2],
dp->storage_mode, dp->byte_order,
CHECK_NULL_STR(dp->prefix), CHECK_NULL_STR(dp->viewcode),
CHECK_NULL_STR(dp->filecode), CHECK_NULL_STR(dp->directory_name),
CHECK_NULL_STR(dp->header_name), CHECK_NULL_STR(dp->brick_name)
);
return 0;
}
int r_idisp_thd_datablock( char * info, THD_datablock * dp )
{
if ( info )
fputs( info, stdout );
if ( dp == NULL )
{
printf( "r_idisp_thd_datablock: dp == NULL\n" );
return -1;
}
printf( "THD_datablock structure at %p\n"
" type : %d\n"
" nvals : %d\n"
" brick : %p\n"
" brick_fac : %p\n"
" brick_bytes : %p\n",
dp, dp->type, dp->nvals, dp->brick,
dp->brick_fac, dp->brick_bytes );
if ( dp->nvals > 0 )
{
int c;
printf(
" ----------------------------------------\n"
" sub fac brick_bytes brick_lab\n"
" --- --- ----------- ---------\n" );
for ( c = 0; c < dp->nvals; c++ )
{
printf( " %3d ", c );
if ( dp->brick_fac )
printf( "%f ", dp->brick_fac[c] );
else
printf( " " );
if ( dp->brick_bytes )
printf( " %10d ", dp->brick_bytes[c] );
else
printf( "%15s", "" );
if ( dp->brick_lab )
printf( "%s\n", CHECK_NULL_STR(dp->brick_lab[c]) );
else
printf( "\n" );
}
}
printf( " --------------------------------------\n"
" brick_keywords : %p\n"
" brick_statcode : %p\n"
" brick_stataux : %p\n"
" --------------------------------------\n"
" total_bytes : %d\n"
" malloc_type : %d\n"
" locked : %d\n"
" --------------------------------------\n"
" master_nvals : %d\n"
" master_ival : %p\n"
" master_bytes : %p\n"
" master_bot : %f\n"
" master_top : %f\n"
" --------------------------------------\n"
" diskptr : %p\n"
" natr : %d\n"
" natr_alloc : %d\n"
" atr : %p\n"
" --------------------------------------\n"
" kl.num : %d\n"
" kl.nalloc : %d\n"
" kl.kill : %p\n"
" parent : %p\n"
"-----------------------------------------\n",
dp->brick_keywords, dp->brick_statcode, dp->brick_stataux,
(int)dp->total_bytes, dp->malloc_type, dp->locked,
dp->master_nvals, dp->master_ival, dp->master_bytes,
dp->master_bot, dp->master_top,
dp->diskptr, dp->natr, dp->natr_alloc, dp->atr,
dp->kl.num, dp->kl.nalloc, dp->kl.kill, dp->parent );
return 0;
}
int r_idisp_thd_dataxes( char * info, THD_dataxes * dp )
{
if ( info )
fputs( info, stdout );
if ( dp == NULL )
{
printf( "r_idisp_thd_dataxes: dp == NULL\n" );
return -1;
}
printf( "THD_dataxes structure at %p\n"
" type : %d\n"
" (nxx, nyy, nzz) : (%d, %d, %d)\n"
" (xxorg, yyorg, zzorg) : (%8.3f, %8.3f, %8.3f)\n"
" (xxdel, yydel, zzdel) : (%8.3f, %8.3f, %8.3f)\n"
" (xxmin, yymin, zzmin) : (%8.3f, %8.3f, %8.3f)\n"
" (xxmax, yymax, zzmax) : (%8.3f, %8.3f, %8.3f)\n"
" (xxorient,yyorient,zzorient) : (%d, %d, %d)\n"
" parent : %p\n"
" -----------------------\n",
dp,
dp->type, dp->nxx, dp->nyy, dp->nzz,
dp->xxorg, dp->yyorg, dp->zzorg, dp->xxdel, dp->yydel, dp->zzdel,
dp->xxmin, dp->yymin, dp->zzmin, dp->xxmax, dp->yymax, dp->zzmax,
dp->xxorient, dp->yyorient, dp->zzorient, dp->parent
);
r_idisp_mat33f( " to_dicomm[3][3] : ", dp->to_dicomm.mat );
printf( "-------------------------------------------\n");
return 0;
}
/*----------------------------------------------------------------------
* cox_render.h
*----------------------------------------------------------------------
*/
#ifdef _COX_RENDER_HEADER_ /* be sure we can compile this */
int r_idisp_cren_stuff( char * info, CREN_stuff * cp )
{
if ( info )
fputs( info, stdout );
if ( cp == NULL )
{
printf( "r_idisp_thd_dataxes: cp == NULL\n" );
return -1;
}
printf( "CREN_stuff structure at %p\n"
" type = %d, nx = %d, ny = %d, nz = %d\n"
" dx = %7.3f, dy = %7.3f, dz = %7.3f\n"
" vox = %p, vtm = %p\n"
" nrgb = %d, opargb = %7.3f, min_opacity = %7.3f\n"
/* rmap, gmap, bmap, imap, opamap */
" ax1 = %d, ax2 = %d, ac3 = %d\n"
" th1 = %7.3f, th2 = %7.3f, th3 = %7.3f\n"
/* THD_mat33 skewmat */
" newvox = %d, newopa = %d, newangles = %d\n"
" renmode = %d, intmode = %d\n",
cp,
cp->type, cp->nx, cp->ny, cp->nz, cp->dx, cp->dy, cp->dz,
cp->vox, cp->vtm,
cp->nrgb, cp->opargb, cp->min_opacity,
cp->ax1, cp->ax2, cp->ax3, cp->th1, cp->th2, cp->th3,
cp->newvox, cp->newopa, cp->newangles, cp->renmode, cp->intmode
);
return 0;
}
#endif /* _COX_RENDER_HEADER_ */
syntax highlighted by Code2HTML, v. 0.9.1