Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

r_idisp.c

Go to the documentation of this file.
00001 
00002 #include "mrilib.h"
00003 #include "r_idisp.h"
00004 
00005 /*----------------------------------------------------------------------
00006  * history:
00007  *
00008  * 1.3a  2005 March 22
00009  *   - removed all tabs
00010  *
00011  * 1.3   2003 October 20
00012  *   - incorporate ALLOW_DATASET_VLIST check for r_idisp_THD_3dim_dataset
00013  *
00014  * 1.2   2003 July 27
00015  *   - apply CHECK_NULL_STR() to questionable string prints
00016  *----------------------------------------------------------------------
00017 */
00018 
00019 /*----------------------------------------------------------------------
00020  * The following routines are to display data structures.
00021  * The functions are of the form r_idisp_XXX, meaning :
00022  *     "Information Display of data structure XXX"
00023  *
00024  * Existing structures are:
00025  *   3ddata.h:
00026  *      - FD_brick
00027  *      - THD_3dim_dataset
00028  *      - THD_dataxes
00029  *      - THD_datablock
00030  *      - THD_diskptr
00031  *
00032  *   mrilib.h:
00033  *      - MRI_IMAGE
00034  *      - MRI_IMARR
00035  *
00036  *   cox_render.h:
00037  *      - CREN_stuff
00038  *
00039  *   raw data types:
00040  *      - mat33d
00041  *      - mat33f
00042  *      - vec3d
00043  *      - vec3i
00044  *
00045  * Return values:
00046  *   0    : success
00047  *   else : some error
00048  *----------------------------------------------------------------------
00049 **/
00050 
00051 
00052 /*----------------------------------------------------------------------
00053  *                new structs - local
00054  *----------------------------------------------------------------------
00055 */
00056 
00057 int r_idisp_vec3d( char * info, double * vec )
00058 {
00059     if ( info )
00060         fputs( info, stdout );
00061 
00062     if ( vec == NULL )
00063     {
00064         printf( "r_idisp_vec3d: vec == NULL" );
00065         return -1;
00066     }
00067 
00068     printf( "double vector at %p: <%f, %f, %f>\n",
00069             vec, vec[0], vec[1], vec[2] );
00070 
00071     return 0;
00072 }
00073 
00074 int r_idisp_vec3f( char * info, float * vec )
00075 {
00076     if ( info )
00077         fputs( info, stdout );
00078 
00079     if ( vec == NULL )
00080     {
00081         printf( "r_idisp_vec3f: vec == NULL" );
00082         return -1;
00083     }
00084 
00085     printf( "float vector at %p: <%f, %f, %f>\n",
00086             vec, vec[0], vec[1], vec[2] );
00087 
00088     return 0;
00089 }
00090 
00091 /*----------------------------------------------------------------------
00092  *                mrilib.h, 3ddata.h
00093  *----------------------------------------------------------------------
00094 */
00095 
00096 int r_idisp_fd_brick( char * info, FD_brick * bp )
00097 {
00098     if ( info )
00099         fputs( info, stdout );
00100 
00101     if ( bp == NULL )
00102     {
00103         printf( "r_idisp_fd_brick: bp == NULL\n" );
00104         return -1;
00105     }
00106 
00107     printf( "FD_brick structure at %p :\n", bp );
00108     r_idisp_vec3i( "   FD->nxyz : ", bp->nxyz.ijk );
00109     r_idisp_vec3i( "   FD->sxyz : ", bp->sxyz.ijk );
00110     r_idisp_vec3i( "   FD->a123 : ", bp->a123.ijk );
00111     printf( "   (n1, d1, e1)       = (%d, %d, %d)\n"
00112             "   (n2, d2, e2)       = (%d, %d, %d)\n"
00113             "   (n3, d3)           = (%d, %d)\n"
00114             "   start              = %d\n"
00115             "   (del1, del2, del3) = (%8.3f, %8.3f, %8.3f)\n"
00116             "   dset               = %p\n"
00117             "   resam_code         = %d\n"
00118             "   thr_resam_code     = %d\n"
00119             "   namecode           = <%s>\n"
00120             "   parent             = %p\n",
00121             bp->n1, bp->d1, bp->e1, bp->n2, bp->d2, bp->e2,
00122             bp->n3, bp->d3, bp->start,
00123             bp->del1, bp->del2, bp->del3,
00124             bp->dset, bp->resam_code, bp->thr_resam_code,
00125             CHECK_NULL_STR(bp->namecode), bp->parent );
00126 
00127     return 0;
00128 }
00129 
00130 int r_idisp_vec3i( char * info, int * vec )
00131 {
00132     if ( info )
00133         fputs( info, stdout );
00134 
00135     if ( vec == NULL )
00136     {
00137         printf( "r_idisp_vec3i: vec == NULL\n" );
00138         return -1;
00139     }
00140 
00141     printf( "int vec3 at %p: <%d, %d, %d>\n",
00142             vec, vec[0], vec[1], vec[2] );
00143 
00144     return 0;
00145 }
00146 
00147 int r_idisp_mri_image( char * info, MRI_IMAGE * ip )
00148 {
00149     if ( info )
00150         fputs( info, stdout );
00151 
00152     if ( ip == NULL )
00153     {
00154         printf( "r_idisp_mri_image: ip == NULL\n" );
00155         return -1;
00156     }
00157 
00158     printf( "r_idisp_mri_image structure at %p :\n"
00159             "   nx = %d, ny = %d, nz = %d\n"
00160             "   nt = %d, nu = %d, nv = %d, nw = %d\n"
00161             "   nxy = %d, nxyz = %d, nxyzt = %d\n"
00162             "   nvox = %d, pixel_size = %d\n"
00163             "   kind = %d, im = %p, name = %s\n"
00164             "   dx = %7.3f, dy = %7.3f, dz = %7.3f, dt = %7.3f\n"
00165             "   du = %7.3f, dv = %7.3f, dw = %7.3f\n"
00166             "   xo = %7.3f, yo = %7.3f, zo = %7.3f, to = %7.3f\n"
00167             "   uo = %7.3f, vo = %7.3f, wo = %7.3f\n"
00168             "   was_swapped = %d\n",
00169             ip,
00170             ip->nx, ip->ny, ip->nz, ip->nt, ip->nu, ip->nv, ip->nw,
00171             ip->nxy, ip->nxyz, ip->nxyzt, ip->nvox, ip->pixel_size,
00172             (int)ip->kind, ip->im.byte_data, CHECK_NULL_STR(ip->name),
00173             ip->dx, ip->dy, ip->dz, ip->dt, ip->du, ip->dv, ip->dw,
00174             ip->xo, ip->yo, ip->zo, ip->to, ip->uo, ip->vo, ip->wo,
00175             ip->was_swapped );
00176 
00177     return 0;
00178 }
00179 
00180 int r_idisp_mri_imarr( char * info, MRI_IMARR * ip, int images )
00181 {
00182     int c;
00183 
00184     if ( info )
00185         fputs( info, stdout );
00186 
00187     if ( ip == NULL )
00188     {
00189         printf( "r_idisp_mri_imarr: ip == NULL\n" );
00190         return -1;
00191     }
00192 
00193     printf( "r_idisp_mri_imarr structure at %p :\n"
00194             "      num = %d, nall (mem) = %d\n",
00195             ip, ip->num, ip->nall );
00196 
00197     if ( images )
00198     {
00199         for ( c = 0; c < ip->num; c++ )
00200         {
00201             r_idisp_mri_image( NULL, ip->imarr[c] );
00202         }
00203     }
00204 
00205     return 0;
00206 }
00207 
00208 int r_idisp_mat33f( char * info, float mat[3][3] )
00209 {
00210     if ( info )
00211         fputs( info, stdout );
00212 
00213     if ( mat == NULL )
00214     {
00215         printf( "r_idisp_mat33f: mat == NULL\n" );
00216         return -1;
00217     }
00218 
00219     printf( "mat33 float structure at %p :\n"
00220             "      %7.3f   %7.3f   %7.3f\n"
00221             "      %7.3f   %7.3f   %7.3f\n"
00222             "      %7.3f   %7.3f   %7.3f\n",
00223             mat,
00224             mat[0][0], mat[0][1], mat[0][2],
00225             mat[1][0], mat[1][1], mat[1][2],
00226             mat[2][0], mat[2][1], mat[2][2]
00227           );
00228     return 0;
00229 }
00230 
00231 int r_idisp_mat33d( char * info, double mat[3][3] )
00232 {
00233     if ( info )
00234         fputs( info, stdout );
00235 
00236     if ( mat == NULL )
00237     {
00238         printf( "r_idisp_mat33d: mat == NULL\n" );
00239         return -1;
00240     }
00241 
00242     printf( "mat33 double structure at %p :\n"
00243             "      %7.3f   %7.3f   %7.3f\n"
00244             "      %7.3f   %7.3f   %7.3f\n"
00245             "      %7.3f   %7.3f   %7.3f\n",
00246             mat,
00247             mat[0][0], mat[0][1], mat[0][2],
00248             mat[1][0], mat[1][1], mat[1][2],
00249             mat[2][0], mat[2][1], mat[2][2]
00250           );
00251     return 0;
00252 }
00253 
00254 int r_idisp_thd_3dim_dataset( char * info, THD_3dim_dataset * dp )
00255 {
00256     if ( info )
00257         fputs( info, stdout );
00258 
00259     if ( dp == NULL )
00260     {
00261         printf( "r_idisp_thd_3dim_dataset: dp == NULL\n" );
00262         return -1;
00263     }
00264 
00265     printf( "THD_3dim_dataset struct at %p\n"
00266             "   type         : %d\n"
00267             "   view_type    : %d\n"
00268             "   func_type    : %d\n"
00269             "   -------------------\n"
00270             "   dblk         : %p\n"
00271             "   daxes        : %p\n"
00272             "   wod_daxes    : %p\n"
00273             "   wod_flag     : %d\n"
00274             "   -------------------\n"
00275             "   taxis        : %p\n"
00276             "   markers      : %p\n"
00277             "   warp_parent  : %p\n"
00278             "   warp         : %p\n"
00279             "   vox_warp     : %p\n"
00280             "   -------------------\n"
00281             "   anat_parent  : %p\n"
00282             "   stats        : %p\n"
00283 #ifdef ALLOW_DATASET_VLIST
00284             "   pts          : %p\n"
00285             "   pts_original : %d\n"
00286 #endif
00287             "   death_mark   : %d\n"
00288             "   -------------------\n"
00289 #ifndef OMIT_DATASET_IDCODES
00290             "   idcode.str              : <%s>\n"
00291             "   idcode.date             : <%s>\n"
00292             "   anat_parent_idcode.str  : <%s>\n"
00293             "   anat_parent_idcode.date : <%s>\n"
00294             "   warp_parent_idcode.str  : <%s>\n"
00295             "   warp_parent_idcode.date : <%s>\n"
00296             "   -------------------\n"
00297 #endif
00298             "   keywords  : %p\n"
00299             "   tagset    : %p\n"
00300             "   -------------------\n"
00301             "   kl.num    : %d\n"
00302             "   kl.nalloc : %d\n"
00303             "   kl.kill   : %p\n"
00304             "   parent    : %p\n"
00305             "-------------------------------------------\n",
00306             dp, dp->type, dp->view_type, dp->func_type,
00307             dp->dblk, dp->daxes, dp->wod_daxes, dp->wod_flag,
00308             dp->taxis, dp->markers, dp->warp_parent, dp->warp, dp->vox_warp,
00309             dp->anat_parent, dp->stats,
00310 #ifdef ALLOW_DATASET_VLIST
00311             dp->pts, dp->pts_original,
00312 #endif
00313             dp->death_mark,
00314 #ifndef OMIT_DATASET_IDCODES
00315             CHECK_NULL_STR(dp->idcode.str),
00316             CHECK_NULL_STR(dp->idcode.date),
00317             CHECK_NULL_STR(dp->anat_parent_idcode.str),
00318             CHECK_NULL_STR(dp->anat_parent_idcode.date),
00319             CHECK_NULL_STR(dp->warp_parent_idcode.str),
00320             CHECK_NULL_STR(dp->warp_parent_idcode.date),
00321 #endif
00322             dp->keywords, dp->tagset,
00323             dp->kl.num, dp->kl.nalloc, dp->kl.kill, dp->parent
00324           );
00325 
00326     return 0;
00327 }
00328 
00329 
00330 int r_idisp_thd_diskptr( char * info, THD_diskptr * dp )
00331 {
00332     if ( info )
00333         fputs( info, stdout );
00334 
00335     if ( dp == NULL )
00336     {
00337         printf( "r_idisp_thd_diskptr: dp == NULL\n" );
00338         return -1;
00339     }
00340 
00341     printf( "THD_diskptr structure at %p\n"
00342             "   type (%2d)      : %d\n"
00343             "   rank (3)       : %d\n"
00344             "   dimsizes       : (%d,%d,%d)\n"
00345             "   storage_mode   : %d\n"
00346             "   byte_order     : %d\n"
00347             "   --------------------------------------\n"
00348             "   prefix         : %.60s\n"
00349             "   viewcode       : %.60s\n"
00350             "   filecode       : %.60s\n"
00351             "   --------------------------------------\n"
00352             "   directory_name : %.80s\n"
00353             "   header_name    : %.80s\n"
00354             "   brick_name     : %.80s\n"
00355             "   --------------------------------------\n",
00356             dp, DISKPTR_TYPE, dp->type, dp->rank,
00357             dp->dimsizes[0], dp->dimsizes[1], dp->dimsizes[2],
00358             dp->storage_mode, dp->byte_order,
00359             CHECK_NULL_STR(dp->prefix),      CHECK_NULL_STR(dp->viewcode),
00360             CHECK_NULL_STR(dp->filecode),    CHECK_NULL_STR(dp->directory_name),
00361             CHECK_NULL_STR(dp->header_name), CHECK_NULL_STR(dp->brick_name)
00362           );
00363 
00364     return 0;
00365 }
00366 
00367 
00368 int r_idisp_thd_datablock( char * info, THD_datablock * dp )
00369 {
00370     if ( info )
00371         fputs( info, stdout );
00372 
00373     if ( dp == NULL )
00374     {
00375         printf( "r_idisp_thd_datablock: dp == NULL\n" );
00376         return -1;
00377     }
00378 
00379     printf( "THD_datablock structure at %p\n"
00380             "   type        : %d\n"
00381             "   nvals       : %d\n"
00382             "   brick       : %p\n"
00383             "   brick_fac   : %p\n"
00384             "   brick_bytes : %p\n",
00385             dp, dp->type, dp->nvals, dp->brick,
00386             dp->brick_fac, dp->brick_bytes );
00387 
00388     if ( dp->nvals > 0 )
00389     {
00390         int c;
00391 
00392         printf( 
00393           "   ----------------------------------------\n"
00394           "   sub   fac        brick_bytes   brick_lab\n"
00395           "   ---   ---        -----------   ---------\n" );
00396         for ( c = 0; c < dp->nvals; c++ )
00397         {
00398             printf( "   %3d   ", c );
00399 
00400             if ( dp->brick_fac )
00401                 printf( "%f  ", dp->brick_fac[c] );
00402             else
00403                 printf( "         " );
00404 
00405             if ( dp->brick_bytes )
00406                 printf( " %10d    ", dp->brick_bytes[c] );
00407             else
00408                 printf( "%15s", "" );
00409 
00410             if ( dp->brick_lab )
00411                 printf( "%s\n", CHECK_NULL_STR(dp->brick_lab[c]) );
00412             else
00413                 printf( "\n" );
00414         }
00415     }
00416 
00417     printf( "   --------------------------------------\n"
00418             "   brick_keywords : %p\n"
00419             "   brick_statcode : %p\n"
00420             "   brick_stataux  : %p\n"
00421             "   --------------------------------------\n"
00422             "   total_bytes    : %d\n"
00423             "   malloc_type    : %d\n"
00424             "   locked         : %d\n"
00425             "   --------------------------------------\n"
00426             "   master_nvals   : %d\n"
00427             "   master_ival    : %p\n"
00428             "   master_bytes   : %p\n"
00429             "   master_bot     : %f\n"
00430             "   master_top     : %f\n"
00431             "   --------------------------------------\n"
00432             "   diskptr        : %p\n"
00433             "   natr           : %d\n"
00434             "   natr_alloc     : %d\n"
00435             "   atr            : %p\n"
00436             "   --------------------------------------\n"
00437             "   kl.num         : %d\n"
00438             "   kl.nalloc      : %d\n"
00439             "   kl.kill        : %p\n"
00440             "   parent         : %p\n"
00441             "-----------------------------------------\n",
00442             dp->brick_keywords, dp->brick_statcode, dp->brick_stataux,
00443             dp->total_bytes, dp->malloc_type, dp->locked,
00444             dp->master_nvals, dp->master_ival, dp->master_bytes,
00445             dp->master_bot, dp->master_top,
00446             dp->diskptr, dp->natr, dp->natr_alloc, dp->atr,
00447             dp->kl.num, dp->kl.nalloc, dp->kl.kill, dp->parent );
00448 
00449     return 0;
00450 }
00451 
00452 
00453 int r_idisp_thd_dataxes( char * info, THD_dataxes * dp )
00454 {
00455     if ( info )
00456         fputs( info, stdout );
00457 
00458     if ( dp == NULL )
00459     {
00460         printf( "r_idisp_thd_dataxes: dp == NULL\n" );
00461         return -1;
00462     }
00463 
00464     printf( "THD_dataxes structure at %p\n"
00465             "   type                  : %d\n"
00466             "   (nxx, nyy, nzz)       : (%d, %d, %d)\n"
00467             "   (xxorg, yyorg, zzorg) : (%8.3f, %8.3f, %8.3f)\n"
00468             "   (xxdel, yydel, zzdel) : (%8.3f, %8.3f, %8.3f)\n"
00469             "   (xxmin, yymin, zzmin) : (%8.3f, %8.3f, %8.3f)\n"
00470             "   (xxmax, yymax, zzmax) : (%8.3f, %8.3f, %8.3f)\n"
00471             "   (xxorient,yyorient,zzorient) : (%d, %d, %d)\n"
00472             "   parent                : %p\n"
00473             "   -----------------------\n",
00474             dp,
00475             dp->type, dp->nxx, dp->nyy, dp->nzz,
00476             dp->xxorg, dp->yyorg, dp->zzorg, dp->xxdel, dp->yydel, dp->zzdel,
00477             dp->xxmin, dp->yymin, dp->zzmin, dp->xxmax, dp->yymax, dp->zzmax,
00478             dp->xxorient, dp->yyorient, dp->zzorient, dp->parent
00479           );
00480 
00481     r_idisp_mat33f( "   to_dicomm[3][3] : ", dp->to_dicomm.mat );
00482 
00483     printf( "-------------------------------------------\n");
00484 
00485     return 0;
00486 }
00487 
00488 
00489 /*----------------------------------------------------------------------
00490  *                cox_render.h
00491  *----------------------------------------------------------------------
00492 */
00493 
00494 #ifdef _COX_RENDER_HEADER_        /* be sure we can compile this */
00495 
00496 int r_idisp_cren_stuff( char * info, CREN_stuff * cp )
00497 {
00498     if ( info )
00499         fputs( info, stdout );
00500 
00501     if ( cp == NULL )
00502     {
00503         printf( "r_idisp_thd_dataxes: cp == NULL\n" );
00504         return -1;
00505     }
00506 
00507     printf( "CREN_stuff structure at %p\n"
00508             "   type = %d, nx = %d, ny = %d, nz = %d\n"
00509             "   dx = %7.3f, dy = %7.3f, dz = %7.3f\n"
00510             "   vox = %p, vtm = %p\n"
00511             "   nrgb = %d, opargb = %7.3f, min_opacity = %7.3f\n"
00512             /* rmap, gmap, bmap, imap,   opamap */
00513             "   ax1 = %d, ax2 = %d, ac3 = %d\n"
00514             "   th1 = %7.3f, th2 = %7.3f, th3 = %7.3f\n"
00515             /* THD_mat33 skewmat */
00516             "   newvox = %d, newopa = %d, newangles = %d\n"
00517             "   renmode = %d, intmode = %d\n",
00518             cp,
00519             cp->type, cp->nx, cp->ny, cp->nz, cp->dx, cp->dy, cp->dz,
00520             cp->vox, cp->vtm,
00521             cp->nrgb, cp->opargb, cp->min_opacity,
00522             cp->ax1, cp->ax2, cp->ax3, cp->th1, cp->th2, cp->th3,
00523             cp->newvox, cp->newopa, cp->newangles, cp->renmode, cp->intmode
00524           );
00525 
00526     return 0;
00527 }
00528 
00529 #endif  /* _COX_RENDER_HEADER_ */
 

Powered by Plone

This site conforms to the following standards: