#include "mrilib.h"

int main( int argc , char *argv[] )
{
   THD_3dim_dataset *dset ;
   int iarg=1 ;
   int nt=1 , nx=64,ny=64,nz=64 ;
   char *prefix="Empty" ;
   THD_ivec3 ixyz ;

   if( argc < 2 || strcmp(argv[1],"-help") == 0 ){
     printf(
      "Usage: 3dEmpty [options]\n"
      "Makes an 'empty' dataset .HEAD file.\n"
      "\n"
      "Options:\n"
      "=======\n"
      " -prefix p   = Prefix name for output file\n"
      " -nxyz x y z = Set number of voxels to be 'x', 'y', and 'z'\n"
      "                 along the 3 axes [defaults=64]\n"
      " -nt         = Number of time points [default=1]\n"
      "\n"
      "* Other dataset parameters can be changed with 3drefit.\n"
      "* The purpose of this program (combined with 3drefit) is to\n"
      "  allow you to make up an AFNI header for an existing file.\n"
      "\n"
     ) ;
     exit(0) ;
   }

   mainENTRY("3dEmpty") ; machdep() ;

   while( iarg < argc ){

     if( strcmp(argv[iarg],"-prefix") == 0 ){
       prefix = argv[++iarg] ;
       if( !THD_filename_ok(prefix) ) ERROR_exit("bad -prefix value") ;
       iarg++ ; continue ;
     }

     if( strcmp(argv[iarg],"-nxyz") == 0 ){
       nx = (int)strtod(argv[++iarg],NULL) ;
       ny = (int)strtod(argv[++iarg],NULL) ;
       nz = (int)strtod(argv[++iarg],NULL) ;
       if( nx < 1 || ny < 1 || nz < 1 || nx*ny*nz == 1 )
         ERROR_exit("bad -nxyz values") ;
       iarg++ ; continue ;
     }

     if( strcmp(argv[iarg],"-nt") == 0 ){
       nt = (int)strtod(argv[++iarg],NULL) ;
       if( nt < 1 ) ERROR_exit("-bad nt value") ;
       iarg++ ; continue ;
     }

     ERROR_exit("Unknown option '%s'",argv[iarg]) ;
   }

   dset = EDIT_empty_copy( NULL ) ;

   LOAD_IVEC3(ixyz,nx,ny,nz) ;
   EDIT_dset_items( dset ,
                      ADN_nxyz   , ixyz ,
                      ADN_prefix , prefix ,
                    ADN_none ) ;
   if( nt > 1 )
     EDIT_dset_items( dset ,
                        ADN_nvals  , nt ,
                        ADN_ntt    , nt ,
                        ADN_ttdel  , 1.0 ,
                        ADN_ttorg  , 0.0 ,
                        ADN_nsl    , 0 ,
                        ADN_tunits , UNITS_SEC_TYPE ,
                      ADN_none ) ;

   DSET_write_header( dset ) ;
   exit(0) ;
}


syntax highlighted by Code2HTML, v. 0.9.1