Beispiel #1
0
void usage(char *prog){
  char prog_version[100];
  char revision[100];
  char pp[] = "%";

  getPROGversion(prog_version);  // get version (ie 5.x.z)
  getRevision(revision);    // get revision

  printf("\n");
  printf("background %s(%s) - %s\n",prog_version,revision,__DATE__);
  printf("  Runs a program in the background when resources are available\n\nUsage:\n\n");
  printf("  %s",prog);
  printf(" [-d delay time (s) -h -u max_usage -v] prog [arguments]\n\n");

  printf("where\n\n");

  printf("  -d dtime  - wait dtime seconds before running prog in the background\n");
  printf("  -debug    - display debug messages\n");
  printf("  -h        - display this message\n");
#ifdef pp_LINUX  
  printf("  -hosts hostfiles - file containing a list of host names to run jobs on\n");
#endif
  printf("  -m max    - wait to run prog until memory usage is less than max (25-100%s)\n",pp);
#ifdef pp_LINUX  
  printf("  -p path   - specify directory path to change to after ssh'ing to remote host\n");
#endif  
  printf("  -u max    - wait to run prog until cpu usage is less than max (25-100%s)\n",pp);
  printf("  -v        - display version information\n");
  printf("  prog      - program to run in the background\n");
  printf("  arguments - command line arguments of prog\n\n");
  printf("Example:\n");
  printf("  background -d 1.5 -u 50 prog arg1 arg2\n");
  printf("    runs prog (with arguments arg1 and arg2) after 1.5 seconds\n    and when the CPU usage drops below 50%s\n",pp);
}
Beispiel #2
0
void version(void){
    char smv_version[100];
    char revision[100];

    getPROGversion(smv_version);  // get Smokeview version (ie 5.x.z)
    getRevision(revision);    // get revision
    printf("\n");
    printf("background\n\n");
    printf("Version: %s\n",smv_version);
    printf("Revision: %s\n",revision);
    printf("Compile Date: %s\n",__DATE__);
}
Beispiel #3
0
void version(void){
    char smv_version[100];
    char revision[100];

    getPROGversion(smv_version);  // get Smokeview version (ie 5.x.z)
    getRevision(revision);    // get revision
    PRINTF("\n");
    PRINTF("Smokediff\n\n");
    PRINTF("Version: %s\n",smv_version);
    PRINTF("Revision: %s\n",revision);
    PRINTF("Compile Date: %s\n",__DATE__);
#ifdef X64
    PRINTF("Platform: WIN64\n");
#endif
#ifdef WIN32
#ifndef X64
    PRINTF("Platform: WIN32\n");
#endif
#endif
#ifndef pp_OSX64
#ifdef pp_OSX
    PRINTF("Platform: OSX\n");
#endif
#endif
#ifdef pp_OSX64
    PRINTF("Platform: OSX64\n");
#endif
#ifndef pp_LINUX64
#ifdef pp_LINUX
    PRINTF("Platform: LINUX\n");
#endif
#endif
#ifdef pp_LINUX64
    PRINTF("Platform: LINUX64\n");
#endif


}
Beispiel #4
0
void usage(char *prog){
  char smv_version[100];
  char buffer[1000];
  char revision[256];

  getPROGversion(smv_version);  // get Smokeview version (ie 5.x.z)
  getRevision(revision);    // get svn revision number

  PRINTF("\n");
  PRINTF("  smokezip %s(%s) - %s\n\n",smv_version,revision,__DATE__);
  PRINTF("  Compress FDS data files\n\n");
  PRINTF("  %s [options] casename\n\n",get_basefilename(buffer,prog));
  PRINTF("  casename - Smokeview .smv file for case to be compressed\n\n");
  PRINTF("options:\n");
  PRINTF("  -c  - cleans or removes all compressed files\n");
#ifdef pp_THREAD
  PRINTF("  -t nthread - Compress nthread files at a time (up to %i)\n",NTHREADS_MAX);
#endif
  PRINTF("overwrite options:\n");
  PRINTF("  -f  - overwrites all compressed files\n");
  PRINTF("  -2  - overwrites 2d slice compressed files\n");
  PRINTF("  -3  - overwrites 3d smoke files\n");
  PRINTF("  -b  - overwrites boundary compressed files\n");
#ifdef pp_PLOT3D
  PRINTF("  -p  - overwrites PLOT3D files\n");
#endif
#ifdef pp_PART2
  PRINTF("  -P  - overwrites particle files\n");
#endif
#ifdef pp_PART
  PRINTF("  -part2iso - generate isosurfaces from particle data\n");
#endif
  PRINTF("bound options:\n");
  PRINTF("  -bounds - estimate data bounds for all file types\n");
  PRINTF("  -bb - estimate data bounds for boundary files\n");
  PRINTF("  -bs - estimate data bounds for slice files\n");
  PRINTF("  -no_chop - do not chop or truncate slice data.  Smokezip compresses\n");
  PRINTF("        slice data truncating data above and below chop values\n");
  PRINTF("        specified in the .ini file\n");
#ifdef pp_PLOT3D
  PRINTF("  -bp - estimate data bounds for plot3d files\n");
#endif
#ifdef pp_PART2
  PRINTF("  -bP - estimate data bounds for particle files\n");
#endif
  PRINTF("compress options:\n");
  PRINTF("  -n3 - do not compress 3d smoke files\n");
  PRINTF("  -nb - do not compress boundary files\n");
#ifdef pp_PLOT3D
  PRINTF("  -np - do not compress PLOT3D files\n");
#endif
  PRINTF("  -ns - do not compress slice files\n");
#ifdef pp_PART2
  PRINTF("  -nP - do not compress particle files\n");
  PRINTF("  -yP - compress particle files\n");
#endif
  PRINTF("output options:\n");
  PRINTF("  -auto - compress only files that are auto-loaded by Smokeview\n");
  PRINTF("  -d destdir - copies compressed files (and files needed by Smokeview\n");
  PRINTF("        to view the case) to the directory destdir\n"); 
  PRINTF("  -s GLOBsourcedir - specifies directory containing source files\n");
  PRINTF("  -demo - Creates the files (compressed and .svd ) needed by the\n");
  PRINTF("        Smokeview demonstrator mode.  Compresses files that are autoloaded, \n");
  PRINTF("        uses (20.0,620.0) and (0.0,0.23) for temperature and oxygen bounds\n");
  PRINTF("        and creates the .svd file which activates the Smokeview demonstrator\n");
  PRINTF("        mode.\n");
  PRINTF("  -skip skipval - skip frames when compressing files\n\n");
  PRINTF("  -h  - display this message\n\n");
}
Beispiel #5
0
void initvars(void){
  int i;

  if(moviefiletype==WMV){
    strcpy(movie_ext, ".wmv");
  }
  else if(moviefiletype==MP4){
    strcpy(movie_ext, ".mp4");
  }
  else{
    strcpy(movie_ext, ".avi");
  }
  for(i=0;i<10;i++){
    tetrabox_vis[i]=1;
  }
  for(i=0;i<200;i++){
    face_id[i]=1;
  }
  for(i=0;i<10;i++){
    face_vis[i]=1;
    face_vis_old[i]=1;
  }
  for(i=0;i<7;i++){
    b_state[i]=-1;
  }
#ifdef pp_DEG
  degC[0]=176; // deg symbol (small superscript 0)
  degC[1]='C';
  degC[2]='\0';
#else
  strcpy(degC,"C");
#endif
  
#ifdef pp_DEG
  degF[0]=176; // deg symbol (small superscript 0)
  degF[1]='F';
  degF[2]='\0';
#else
  strcpy(degF,"F");
#endif

  strcpy(default_fed_colorbar,"FED");

  label_first_ptr = &label_first;
  label_last_ptr = &label_last;

  label_first_ptr->prev = NULL;
  label_first_ptr->next = label_last_ptr;
  strcpy(label_first_ptr->name,"first");

  label_last_ptr->prev = label_first_ptr;
  label_last_ptr->next = NULL;
  strcpy(label_last_ptr->name,"last");

  {
    labeldata *gl;
  
    gl=&LABEL_default;
    gl->rgb[0]=0;
    gl->rgb[1]=0;
    gl->rgb[2]=0;
    gl->rgb[3]=255;
    gl->frgb[0]=0.0;
    gl->frgb[1]=0.0;
    gl->frgb[2]=0.0;
    gl->frgb[3]=1.0;
    gl->tstart_stop[0]=0.0;
    gl->tstart_stop[1]=1.0;
    gl->useforegroundcolor=1;
    gl->show_always=1;
    strcpy(gl->name,"new");
    gl->xyz[0]=0.0;
    gl->xyz[1]=0.0;
    gl->xyz[2]=0.0;
    gl->labeltype=TYPE_INI;
    memcpy(&LABEL_local,&LABEL_default,sizeof(labeldata));
  }

#ifdef pp_LANG
  strcpy(startup_lang_code,"en");
#endif
  mat_specular_orig[0]=0.5f;
  mat_specular_orig[1]=0.5f;
  mat_specular_orig[2]=0.2f;
  mat_specular_orig[3]=1.0f;
  mat_specular2=getcolorptr(mat_specular_orig);

  mat_ambient_orig[0] = 0.5f;
  mat_ambient_orig[1] = 0.5f;
  mat_ambient_orig[2] = 0.2f;
  mat_ambient_orig[3] = 1.0f;
  mat_ambient2=getcolorptr(mat_ambient_orig);

  ventcolor_orig[0]=1.0;
  ventcolor_orig[1]=0.0;
  ventcolor_orig[2]=1.0;
  ventcolor_orig[3]=1.0;
  ventcolor=getcolorptr(ventcolor_orig);

  block_ambient_orig[0] = 1.0;
  block_ambient_orig[1] = 0.8;
  block_ambient_orig[2] = 0.4;
  block_ambient_orig[3] = 1.0;
  block_ambient2=getcolorptr(block_ambient_orig);

  for(i=0;i<256;i++){
    boundarylevels256[i]=(float)i/255.0;
  }

  first_scriptfile.id=-1;
  first_scriptfile.prev=NULL;
  first_scriptfile.next=&last_scriptfile;

  last_scriptfile.id=-1;
  last_scriptfile.prev=&first_scriptfile;
  last_scriptfile.next=NULL;

  first_inifile.id=-1;
  first_inifile.prev=NULL;
  first_inifile.next=&last_inifile;

  last_inifile.id=-1;
  last_inifile.prev=&first_inifile;
  last_inifile.next=NULL;

  FontMenu(fontindex);

  treecharcolor[0]=0.3;
  treecharcolor[1]=0.3;
  treecharcolor[2]=0.3;
  treecharcolor[3]=1.0;
  trunccolor[0]=0.6;
  trunccolor[1]=0.2;
  trunccolor[2]=0.0;
  trunccolor[3]=1.0;

  direction_color[0]=39.0/255.0;
  direction_color[1]=64.0/255.0;
  direction_color[2]=139.0/255.0;
  direction_color[3]=1.0;

  direction_color_ptr=getcolorptr(direction_color);
  arg_iblank=0;
  show_slice_terrain=0;

  shooter_uvw[0]=0.0;
  shooter_uvw[1]=0.0;
  shooter_uvw[2]=0.0;
  vis_slice_contours=0;
  update_slicecontours=0;
  
  partfacedir[0]=0.0;
  partfacedir[1]=0.0;
  partfacedir[2]=1.0;
  
  sb_atstart=1;
  select_device=0;
  selected_device_tag=-1;
  navatar_types=0;
  select_avatar=0;
  selected_avatar_tag=-1;
  select_device_color_ptr=NULL;
  avatar_types=NULL;
  navatar_colors=0;
  avatar_colors=NULL;
  view_from_selected_avatar=0;
  revision_fds=-1;
  revision_smv=getmaxrevision();
  force_isometric=0;
  cb_valmin=0.0;
  cb_valmax=100.0;
  cb_val=50.0;
  cb_colorindex=128;

  rgb_terrain[0][0]=1.0;
  rgb_terrain[0][1]=0.0;
  rgb_terrain[0][2]=0.0;
  rgb_terrain[0][3]=1.0;

  rgb_terrain[1][0]=0.5;
  rgb_terrain[1][1]=0.5;
  rgb_terrain[1][2]=0.0;
  rgb_terrain[1][3]=1.0;

  rgb_terrain[2][0]=0.0;
  rgb_terrain[2][1]=1.0;
  rgb_terrain[2][2]=0.0;
  rgb_terrain[2][3]=1.0;

  rgb_terrain[3][0]=0.0;
  rgb_terrain[3][1]=0.5;
  rgb_terrain[3][2]=0.0;
  rgb_terrain[3][3]=1.0;

  rgb_terrain[4][0]=0.0;
  rgb_terrain[4][1]=0.5;
  rgb_terrain[4][2]=0.5;
  rgb_terrain[4][3]=1.0;

  rgb_terrain[5][0]=0.0;
  rgb_terrain[5][1]=0.0;
  rgb_terrain[5][2]=1.0;
  rgb_terrain[5][3]=1.0;

  rgb_terrain[6][0]=0.5;
  rgb_terrain[6][1]=0.0;
  rgb_terrain[6][2]=0.5;
  rgb_terrain[6][3]=1.0;

  rgb_terrain[7][0]=1.0;
  rgb_terrain[7][1]=0.5;
  rgb_terrain[7][2]=0.0;
  rgb_terrain[7][3]=1.0;

  rgb_terrain[8][0]=1.0;
  rgb_terrain[8][1]=0.5;
  rgb_terrain[8][2]=0.5;
  rgb_terrain[8][3]=1.0;

  rgb_terrain[9][0]=1.0;
  rgb_terrain[9][1]=0.25;
  rgb_terrain[9][2]=0.5;
  rgb_terrain[9][3]=1.0;

  render_multi=0;
  render_multi_state=0;
  render_from_menu=0;
  percentile_level=0.01;

  strcpy(script_inifile_suffix,"");
  strcpy(script_renderdir,"");
  strcpy(script_renderfilesuffix,"");
  strcpy(script_renderfile,"");
  trainerview=1;
  show_bothsides_int=1;
  show_bothsides_ext=0;
  skip_slice_in_embedded_mesh=0;
  offset_slice=0;
  trainer_pause=0;
  trainee_location=0;
  trainer_inside=0;
  from_glui_trainer=0;
  trainer_path_old=-3;
  trainer_outline=1;
  trainer_viewpoints=-1;
  ntrainer_viewpoints=0;
  trainer_realtime=1;
  trainer_path=0;
  trainer_xzy[0]=0.0;
  trainer_xzy[1]=0.0;
  trainer_xzy[2]=0.0;
  trainer_ab[0]=0.0;
  trainer_ab[1]=0.0;
  motion_ab[0]=0.0;
  motion_ab[1]=0.0;
  motion_dir[0]=0.0;
  motion_dir[1]=0.0;
  fontsize_save=0;
  trainer_mode=0;
  trainer_active=0;
  show_slice_average=0;
  vis_slice_average=1;
  slice_average_interval=10.0;
#ifdef pp_CULL
  cullsmoke=1;
  cullplaneinfo=NULL;
  ncullplaneinfo=0;
  have_setpixelcount=0;
  update_initcullplane=1;
#endif

  show_transparent_vents=1;
  maxtourframes=500;
  blockageSelect=0;
  stretch_var_black=0; 
  stretch_var_white=0; 
  move_var=0;

  showhide_option=0;
  snifferrornumber=0;
  xyz_dir=0;
  which_face=2;
  showfontmenu=1;

  glui_active=0;

  drawColorLabel=0;
  olddrawColorLabel=0;
  staticframe0=0;
  visStaticSmoke=1;
  vis3DSmoke3D=1;
  smokeskip=1;
  smokeskipm1=0;
  nrooms=0;
  nzoneinfo=0;
  nfires=0;
  UpdateLIGHTS=1;

  windowsize_pointer=0;
  fontindex=0;

  xbar=1.0, ybar=1.0, zbar=1.0;
  xbar0=0.0, ybar0=0.0, zbar0=0.0;
  xbarORIG=1.0, ybarORIG=1.0, zbarORIG=1.0;
  xbar0ORIG=0.0, ybar0ORIG=0.0, zbar0ORIG=0.0;
  ReadPlot3dFile=0, ReadIsoFile=0;

  ReadVolSlice=0;
  Read3DSmoke3DFile=0;
  ReadZoneFile=0, ReadPartFile=0, ReadEvacFile=0;;

  editwindow_status=-1;
  startup_pass=1;
  ntargtimes=500;

  slicefilenumber=0;
  exportdata=0;
  nspr=0;
  smoke3dframestep=1;
  smoke3dframeskip=0;
  vectorskip=1;
  rotation_type=ROTATION_2AXIS;
  eyeview_level=1;
  rotation_type_old=ROTATION_2AXIS,eyeview_SAVE=0,eyeview_last=0;
  frameratevalue=1000;
  setpartmin=PERCENTILE_MIN, setpartmax=PERCENTILE_MAX;
  setpartmin_old=setpartmin;
  setpartmax_old=setpartmax;
  setpatchmin=GLOBAL_MIN, setpatchmax=GLOBAL_MAX, setzonemin=0, setzonemax=0;
  loadpatchbysteps=0;
  settargetmin=0, settargetmax=0;
  setpartchopmin=0, setpartchopmax=0;
  partchopmin=1.0,  partchopmax=0.;
  slicechopmin=0, slicechopmax=0;

  temp_threshold=400.0;
  vis_onlythreshold=0, vis_threshold=0;
  activate_threshold=1;
  canshow_threshold=1;
  settmin_p=0, settmin_b=0, settmin_s=0, settmin_z=0, settmin_i=0;
  settmax_p=0, settmax_b=0, settmax_s=0, settmax_z=0, settmax_i=0;
  tmin_p=1., tmin_b=1., tmin_s=1., tmin_z=1., tmin_i=1.;
  tmax_p=0., tmax_b=0., tmax_s=0., tmax_z=0., tmax_i=0.;
  patchmin=1., patchmax=0.;
  targetmin=1.0, targetmax=0.0;
  partmin=1., partmax=0., slicemin=1., slicemax=0.;
  speedmax=0.0;
  hrrpuv_max_smv=1200.0;
  FlowDir=1,ClipDir=1;
  plotn=1;
  stept=0;
  plotstate=NO_PLOTS;
  visVector=0;
  visSmokePart=2, visSprinkPart=1, havesprinkpart=0;
  visaxislabels=0;
  numplot3dvars=0;
  p3dsurfacesmooth=1;
  p3dsurfacetype=1;
  parttype=0;
  allexterior=1,showexterior=1;
  allinterior=1;
  hrrpuv_iso_color[0]=1.0;
  hrrpuv_iso_color[1]=0.5;
  hrrpuv_iso_color[2]=0.0;
  hrrpuv_iso_color[3]=1.0;
  showterrain=0;
  showgluitrainer=0;
  colorbartype=0;
  colorbartype_ini=-1;
  current_colorbar=colorbarinfo;
  colorbartype_save=colorbartype;
  colorbartype_default=colorbartype;
  colorbarpoint=0;
  vectorspresent=0;

  smokediff=0;
  smoke3d_cvis=1.0;
  show_smokesensors=1;
  test_smokesensors=0;
  active_smokesensors=0;
  loadplot3dall=0;
  visTarg = 0;
  ReadTargFile=0;
  showtarget=0;
  visAIso=1;
  surfincrement=0,visiso=0;
  isotest=0;
  isolevelindex=0, isolevelindex2=0;
  pref=101325.,pamb=0.,tamb=293.15;
  ntc_total=0, nspr_total=0, nheat_total=0;
  n_devices=0;

  npartinfo=0, nsliceinfo=0, nvsliceinfo=0, nslice2=0, npatch2=0, nplot3dinfo=0, npatchinfo=0;
  nevac=0;
  current_particle_type=-1,last_particle_type=-2;
  nsmoke3dinfo=0;
  nisoinfo=0, niso_bounds=0;
  ntrnx=0, ntrny=0, ntrnz=0,npdim=0,nmeshes=0,clip_mesh=0;
  noffset=0;
  visLabels=0;
  ntarginfo=0;
  showallslicevectors=0;
  framerate=-1.0;
  itimes=0, itimeold=-999, seqnum=0,RenderTime=0; RenderTimeOld=0; itime_save=-1;
  nopart=1;
  uindex=-1, vindex=-1, windex=-1;

  cullfaces=1;
  showonly_hiddenfaces=0;

  windowresized=0;

  first_display=2;

  updatemenu=0;
  updatezoommenu=0;
  updatemenu_count=0;

  updatefaces=0,updatefacelists=0;
  updateOpenSMVFile=0;

  periodic_reloads=0;
  periodic_value=-2;

  slicefilenum=-1;
  partfilenum=-1,zonefilenum=-1;
  targfilenum=-1;

  setPDIM=0;
  menustatus=GLUT_MENU_NOT_IN_USE;

  vertical_factor=1.0;
  terrain_rgba_zmin[0]=90;
  terrain_rgba_zmin[1]=50;
  terrain_rgba_zmin[2]=50; 

  terrain_rgba_zmax[0]=200;
  terrain_rgba_zmax[1]=200;
  terrain_rgba_zmax[2]=200;

#ifdef pp_memstatus
  visAvailmemory=0;
#endif
  visBlocks=visBLOCKAsInput;
  visSmoothAsNormal=1;
  visTransparentBlockage=0;
  visBlocksSave=visBLOCKAsInput;
  blocklocation=BLOCKlocation_grid;
  ncadgeom=0;
  visFloor=0, visFrame=1;
  visNormalEditColors=1;
  visWalls=0, visGrid=0, visCeiling=0, cursorPlot3D=0;
  visSensor=1, visSensorNorm=1, hasSensorNorm=0;
  partframestep=1, sliceframestep=1, boundframestep=1;
  partframeskip=0, sliceframeskip=0, boundframeskip=0;
  boundzipstep=1, boundzipskip=0;
  smoke3dzipstep=1, smoke3dzipskip=0;
  isozipstep=1, isozipskip=0;
  slicezipstep=1, slicezipskip=0;
  evacframeskip=0, evacframestep=1;
  partpointstep=1;
  partpointstep_old=0;
  partpointskip=0;
  render_option=RenderWindow;
  RenderMenu(render_option);
  viewoption=0;
  
  partpointsize=4.0,vectorpointsize=3.0,streaklinewidth=1.0;
  isopointsize=4.0;
  isolinewidth=2.0;
  plot3dpointsize=4.0;
  plot3dlinewidth=2.0;
  sprinklerabssize=0.076f, sensorabssize=0.038f, heatabssize=0.076f;

  linewidth=2.0, ventlinewidth=2.0, highlight_linewidth=4.0;
  solidlinewidth=linewidth;
  visBLOCKold=-1;

  nrgb=NRGB;
  nrgb_ini=0;
  nrgb2_ini=0;
  rgb_white=NRGB, rgb_yellow=NRGB+1, rgb_blue=NRGB+2, rgb_red=NRGB+3;
  rgb_green=NRGB+4, rgb_magenta=NRGB+5, rgb_cyan=NRGB+6, rgb_black=NRGB+7;
  numColorbars=0;
  setbw=0,colorbarflip=0;
  setbwSAVE=setbw;
  background_flip=1;
  antialiasflag=1;
  nrgb_full=256;
  nrgb_cad=256;
  eyexfactor=0.5f, eyeyfactor=-0.9f, eyezfactor=0.5f;

  frameinterval=1.0;

  use_tload_begin=0;
  use_tload_end=0;
  use_tload_skip=0;
  tload_begin=0.0;
  tload_end=1.0;
  tload_skip=0;

  defaulttour_loaded=0;
  blockages_dirty=0;
  usetextures=0;
  canrestorelastview=0;
  ntargets=0;
  endian_data=0, endian_native=0, setendian=0;

  mainwindow_id=0;
  rendertourcount=0;

  static_color[0]=0.0;
  static_color[1]=1.0;
  static_color[2]=0.0;
  static_color[3]=1.0;

  sensorcolor[0]=1.0;
  sensorcolor[1]=1.0;
  sensorcolor[2]=0.0;
  sensorcolor[3]=1.0;
  
  
  sensornormcolor[0]=1.0;
  sensornormcolor[1]=1.0;
  sensornormcolor[2]=0.0;
  sensornormcolor[3]=1.0;


  sprinkoncolor[0]=0.0;
  sprinkoncolor[1]=1.0;
  sprinkoncolor[2]=0.0;
  sprinkoncolor[3]=1.0;

  sprinkoffcolor[0]=1.0; //xxxx check
  sprinkoffcolor[1]=0.0;
  sprinkoffcolor[2]=0.0;
  sprinkoffcolor[3]=1.0;


  heatoncolor[0]=1.0; //xxx check
  heatoncolor[1]=0.0;
  heatoncolor[2]=0.0;
  heatoncolor[3]=1.0;

  heatoffcolor[0]=1.0;
  heatoffcolor[1]=0.0;
  heatoffcolor[2]=0.0;
  heatoffcolor[3]=1.0;

  backgroundbasecolor[0]=0.0;
  backgroundbasecolor[1]=0.0;
  backgroundbasecolor[2]=0.0;
  backgroundbasecolor[3]=1.0;

  backgroundcolor[0]=0.0;
  backgroundcolor[1]=0.0;
  backgroundcolor[2]=0.0;
  backgroundcolor[3]=1.0;

  foregroundbasecolor[0]=1.0;
  foregroundbasecolor[1]=1.0;
  foregroundbasecolor[2]=1.0;
  foregroundbasecolor[3]=1.0;

  foregroundcolor[0]=1.0;
  foregroundcolor[1]=1.0;
  foregroundcolor[2]=1.0;
  foregroundcolor[3]=1.0;

  boundcolor[0]=0.5;
  boundcolor[1]=0.5;
  boundcolor[2]=0.5;
  boundcolor[3]=1.0;

  timebarcolor[0]=0.6;
  timebarcolor[1]=0.6;
  timebarcolor[2]=0.6;
  timebarcolor[3]=1.0;
 
  redcolor[0]=1.0;
  redcolor[1]=0.0;
  redcolor[2]=0.0;
  redcolor[3]=1.0;

  loadfiles_at_startup=0;

  nmenus=0;
  showbuild=0;

  strcpy(TITLERELEASE,"");
  strcpy(TITLE,"");
  strcpy(FULLTITLE,"");
  strcpy(emptylabel,"");
  large_font=GLUT_BITMAP_HELVETICA_12;
  small_font=GLUT_BITMAP_HELVETICA_10;

  texture_origin[0]=0.0;
  texture_origin[1]=0.0;
  texture_origin[2]=0.0;

  isZoneFireModel=0;
  nunitclasses=0,nunitclasses_default=0,nunitclasses_ini=0;
  callfrom_tourglui=0;
  showtours_whenediting=0;

  right_green=0.0;
  right_blue=1.0;
  showstereo=STEREO_NONE;
  showstereoOLD=showstereo;
  showstereo_frame=2;
  show_parallax=0;
  stereoactive=0;
  apertureindex=2;
  zoomindex=2;
  projection_type=0;
  apertures[0]=30.;
  apertures[1]=45.;
  apertures[2]=60.;
  apertures[3]=75.;
  apertures[3]=90.;
  planar_terrain_slice=0;

  aperture=60.;
  aperture_glui=aperture;
  aperture_default=aperture;
  zooms[0]=0.25;
  zooms[1]=0.5;
  zooms[2]=1.0;
  zooms[3]=2.0;
  zooms[4]=4.0;
  zoom=1.0;

  {
    int ii;
    rgbmask[0]=1;
    for(ii=1;ii<16;ii++){
      rgbmask[ii]=2*rgbmask[ii-1]+1;
    }
  }

  sv_age=0;
  titlesafe_offset=0;
  titlesafe_offsetBASE=45;
  reset_frame=0;
  reset_time=0.0,start_frametime=0.0,stop_frametime=0.0;
  reset_time_flag=0;
  RenderOnceNow=0, RenderOnceNowR=0, RenderOnceNowL=0;

  nsorted_surfidlist=0;

  overwrite_all=0,erase_all=0;
  compress_autoloaded=0;
  strcpy(ext_png,".png");
  strcpy(ext_jpg,".jpg");
  renderfiletype=0;
  strcpy(part_ext,".part");
  strcpy(ini_ext,".ini");

  start_xyz0[0]=0.0;
  start_xyz0[1]=0.0;
  start_xyz0[2]=0.0;
  glui_move_mode=-1;

  timeoffset=0.0;
  update_tourlist=0;
  desired_view_height=1.5;
  resetclock=1,initialtime=0;
  realtime_flag=0;
  islicetype=-1,islicetype_save=-1,ipatchtype=-1;
  iisotype=-1;


  cpuframe=0;

  adjustalphaflag=3;

  highlight_block=-1, highlight_mesh=0, highlight_flag=2;
  updatesmoothblocks=1;
  menusmooth=0;
  use_menusmooth=0;
  smoothing_blocks=0;
  blocksneedsmoothing=0;

  visUSERticks=0;
  user_tick_show_x=1;
  user_tick_show_y=1;
  user_tick_show_z=1;
  auto_user_tick_placement=1;

  pixel_skip=0;
  smoke_extinct=7.600,smoke_dens=.50,smoke_pathlength=1.0;
  smoketest=0,show_smoketest=0;
  showall_textures=0;

  do_threshold=0;
  updateindexcolors=0;
  show_path_knots=0;
  keyframe_snap=0;
  tourviewtype=0;
  tourlocus_type=0;
  tourrad_avatar=0.1;
  dirtycircletour=0;
  view_tstart=0.0, view_tstop=100.0;
  tour_constant_vel=0;
  tour_bias=0.0,tour_continuity=0.0;
  view_ntimes=1000;
  ntours=0,selectedtour_index=-1,selectedtour_index_old=-1,selectedtour_index_ini=-1;
  glui_avatar_index=0;
  iavatar_evac=0;
  update_selectedtour_index=0;
  viewtourfrompath=0,viewalltours=0,viewanytours=0,edittour=0;
  tour_usecurrent=0;
  visFDSticks=0;
  visCadTextures=1;
  visTerrainTexture=1;
  nselectblocks=0;
  surface_indices[0]=0;
  surface_indices[1]=0;
  surface_indices[2]=0;
  surface_indices[3]=0;
  surface_indices[4]=0;
  surface_indices[5]=0;
  wall_case=0;
  strcpy(surfacedefaultlabel,"");
  mscale[0]=1.0;
  mscale[1]=1.0;
  mscale[2]=1.0;
  nearclip=0.001,farclip=3.0;
  updateclipvals=0;
  updateUpdateFrameRateMenu=0;
  ntextures=0;
  nskyboxinfo=0;
  part5show=1;
  streak5show=0;
  update_streaks=0;

  streak_rvalue[0]=0.25;
  streak_rvalue[1]=0.5;
  streak_rvalue[2]=1.0;
  streak_rvalue[3]=2.0;
  streak_rvalue[4]=4.0;
  streak_rvalue[5]=8.0;
  streak_rvalue[6]=16.0;
  streak_rvalue[7]=32.0;
  nstreak_rvalue=8;
  streak_index=-1;
  float_streak5value=0.0;
  if(streak_index>=0)float_streak5value=streak_rvalue[streak_index];

  streak5step=0;
  showstreakhead=1;
  npartclassinfo=0;
  prop_index=1;
  noutlineinfo=0;
  nmultisliceinfo=0;
  nmultivsliceinfo=0;

  svofile_exists=0;
  devicenorm_length = 0.1;
  ndeviceinfo=0;
  nobject_defs=0;
  strcpy(object_def_first.label,"first");
  object_def_first.next=&object_def_last;
  object_def_first.prev=NULL;

  strcpy(object_def_last.label,"last");
  object_def_last.next=NULL;
  object_def_last.prev=&object_def_first;
  object_defs=NULL;
 
  showfiles=0;
 
  fire_red=255, fire_green=128, fire_blue=0;
  fire_halfdepth=2.0;

  smokecullflag=1;
  smokedrawtest=0,smokedrawtest2=0;
  visMAINmenus=0;
  smoke3d_thick=0;
#ifdef pp_GPU
  smoke3d_rthick=1.0;
  usegpu=0;
#endif
  smokedrawtest_nummin=1;
  smokedrawtest_nummax=1;
  ijkbarmax=5;
  blockage_as_input=0;
  blockage_snapped=1;
  show_cad_and_grid=0;
  nplot3dtimelist=0;

  buffertype=DOUBLE_BUFFER;
  opengldefined=0;

  {
    char version[100];
    char svn_version[100];
    int svn_num;

    svn_num=getmaxrevision();    // get svn revision number
    sprintf(svn_version,"%i",svn_num); // convert svn revision number to a character string

// construct string of the form:
//   5.x.y_#

    getPROGversion(version);

    strcpy(TITLEBASE,"Smokeview ");

    strcat(TITLEBASE,version);
#ifdef pp_BETA
    strcat(TITLEBASE," (");
    strcat(TITLEBASE,svn_version);
    strcat(TITLEBASE,")");
#else
#ifndef pp_OFFICIAL_RELEASE
    strcat(TITLEBASE," (");
    strcat(TITLEBASE,svn_version);
    strcat(TITLEBASE,")");
#endif
#endif
    strcat(TITLEBASE," - ");
  }
#ifdef _DEBUG
  STRCPY(TITLE,TITLEBASE);
  STRCAT(TITLE,__DATE__);
#else
  STRCPY(TITLE,TITLEBASE);
  STRCAT(TITLE,__DATE__);
#endif
#ifdef pp_BETA
  STRCAT(TITLE," - ");
  STRCAT(TITLE,__TIME__);
#endif

  STRCPY(FULLTITLE,TITLE);

  STRCPY(TITLERELEASE,TITLE);

  strcpy(INIfile,"smokeview.ini");
  strcpy(WRITEINIfile,"Write smokeview.ini");

  tourcol_selectedpathline[0]=1.0;
  tourcol_selectedpathline[1]=0.0;
  tourcol_selectedpathline[2]=0.0;


  tourcol_selectedpathlineknots[0]=1.0;
  tourcol_selectedpathlineknots[1]=0.0;
  tourcol_selectedpathlineknots[2]=0.0;


  tourcol_selectedknot[0]=0.0;
  tourcol_selectedknot[1]=1.0;
  tourcol_selectedknot[2]=0.0;


  tourcol_selectedview[0]=1.0;
  tourcol_selectedview[1]=1.0;
  tourcol_selectedview[2]=0.0;


  tourcol_pathline[0]=-1.0;
  tourcol_pathline[1]=-1.0;
  tourcol_pathline[2]=-1.0;

  tourcol_pathknots[0]=-1.0;
  tourcol_pathknots[1]=-1.0;
  tourcol_pathknots[2]=-1.0;

  tourcol_text[0]=-1.0;
  tourcol_text[1]=-1.0;
  tourcol_text[2]=-1.0;


  tourcol_avatar[0]=1.0;
  tourcol_avatar[1]=0.0;
  tourcol_avatar[2]=0.0;

  iso_specular[0] = 0.7;
  iso_specular[1] = 0.7;
  iso_specular[2] = 0.7;
  iso_specular[3] = 1.0;
  iso_shininess = 10.0f;

  light_position0[0] = 1.0f;
  light_position0[1] = 1.0f;
  light_position0[2] = 1.0f;
  light_position0[3] = 0.0f;

  light_position1[0] = -1.0f;
  light_position1[1] = -1.0f;
  light_position1[2] =  1.0f;
  light_position1[3] =  0.0f;


  ambientlight[0] = 0.6f;
  ambientlight[1] = 0.6f;
  ambientlight[2] = 0.6f;
  ambientlight[3] = 1.0f;


  diffuselight[0] = 0.50f;
  diffuselight[1] = 0.50f;
  diffuselight[2] = 0.50f;
  diffuselight[3] = 1.00f;


  list_p3_index_old=0, list_slice_index_old=0, list_patch_index_old=0;

  videoSTEREO=0;
  fzero=0.25;
 

  strcpy(blank_global,"");

  demo_mode=0;
  update_demo=1;
  mxplot3dvars=MAXPLOT3DVARS;

  valindex=0;

#define NDEFAULT_ISO_COLORS 3
  iso_colors[0] = 0.96;
  iso_colors[1] = 0.00;
  iso_colors[2] = 0.96;
  iso_colors[3] = 1.00;
  iso_colors[4] = 0.75;
  iso_colors[5] = 0.80;
  iso_colors[6] = 0.80;
  iso_colors[7] = 1.00;
  iso_colors[8] = 0.00;
  iso_colors[9] = 0.96;
  iso_colors[10] = 0.28;
  iso_colors[11] = 1.0;
  for(i = NDEFAULT_ISO_COLORS; i<MAX_ISO_COLORS; i++){
    int grey;

    grey = 1.0 - (float)(i - NDEFAULT_ISO_COLORS) / (float)(MAX_ISO_COLORS - NDEFAULT_ISO_COLORS-1);
    iso_colors[4*i+0]=grey;
    iso_colors[4*i+1]=grey;
    iso_colors[4*i+2]=grey;
    iso_colors[4*i+3]=1.0;
  }

  for(i = 0; i < MAX_ISO_COLORS; i++){
    float graylevel;

    graylevel = color2bw(iso_colors+4*i);
    iso_colorsbw[4*i+0] = graylevel;
    iso_colorsbw[4*i+1] = graylevel;
    iso_colorsbw[4*i+2] = graylevel;
    iso_colorsbw[4*i+3] = 1.0;
    iso_transparencies[i] = transparent_level;
  }
  glui_iso_colors[0] = CLAMP(255 * iso_colors[0]+0.1, 0, 255);
  glui_iso_colors[1] = CLAMP(255 * iso_colors[1]+0.1, 0, 255);
  glui_iso_colors[2] = CLAMP(255 * iso_colors[2]+0.1, 0, 255);
  glui_iso_colors[3] = CLAMP(255 * iso_colors[3]+0.1, 0, 255);
  glui_iso_transparency = CLAMP(255 * iso_transparencies[0]+0.1, 0, 255);
  CheckMemory;

  iso_transparency=0.8;
  mouse_deltax=0.0, mouse_deltay=0.0;

  char_color[0]=0.0;
  char_color[1]=0.0;
  char_color[2]=0.0;
  char_color[3]=0.0;

  movedir[0]=0.0;
  movedir[1]=1.0;
  movedir[2]=0.0;

  memcpy(rgb_base,rgb_baseBASE,MAXRGB*4*sizeof(float));
  memcpy(bw_base,bw_baseBASE,MAXRGB*4*sizeof(float));
  memcpy(rgb2,rgb2BASE,MAXRGB*3*sizeof(float));
  memcpy(bw_base,bw_baseBASE,MAXRGB*4*sizeof(float));
  
  nrgb2=8;

  ncamera_list=0,i_view_list=1,init_camera_list_flag=1;
  camera_max_id=2;
  startup=0,startup_view_ini=1,selected_view=-999;
  

  {
    int iii;

    for(iii=0;iii<7;iii++){
      visPatchType[iii]=0;
    }
    visPatchType[0]=1;
    for(iii=0;iii<MAXPLOT3DVARS;iii++){
      setp3min[iii]=PERCENTILE_MIN;
      p3min[iii]=1.0f;
      p3chopmin[iii]=1.0f;
      setp3max[iii]=PERCENTILE_MAX;
      p3max[iii]=1.0f;
      p3chopmax[iii]=0.0f;
    }
  }
}