diff --git a/Source/smokeview/IOpart.c b/Source/smokeview/IOpart.c index 3c2a03a4c6..343c282229 100644 --- a/Source/smokeview/IOpart.c +++ b/Source/smokeview/IOpart.c @@ -1965,10 +1965,12 @@ FILE_SIZE ReadPart(char *file_arg, int ifile_arg, int loadflag_arg, int *errorco parti->loaded = 0; parti->display=0; +#ifndef pp_PART_SPEEDUP THREADcontrol(partload_threads, THREAD_LOCK); plotstate=GetPlotState(DYNAMIC_PLOTS); updatemenu=1; THREADcontrol(partload_threads, THREAD_UNLOCK); +#endif FREEMEMORY(parti->times); FREEMEMORY(parti->times_map); @@ -1981,6 +1983,11 @@ FILE_SIZE ReadPart(char *file_arg, int ifile_arg, int loadflag_arg, int *errorco updatemenu = 1; UpdatePart5Extremes(); PrintMemoryInfo; +#ifdef pp_PART_SPEEDUP + THREADcontrol(partload_threads, THREAD_LOCK); + plotstate=GetPlotState(DYNAMIC_PLOTS); + THREADcontrol(partload_threads, THREAD_UNLOCK); +#endif } return 0.0; } diff --git a/Source/smokeview/IOscript.c b/Source/smokeview/IOscript.c index 0114e78fd6..92e05cf743 100644 --- a/Source/smokeview/IOscript.c +++ b/Source/smokeview/IOscript.c @@ -261,6 +261,7 @@ void InitKeywords(void){ NewMemory((void **)&keywordinfo, 1000*sizeof(keyworddata)); nkeywordinfo++; + InitKeyword("dummy", -999, 0); // dummy entry used to report errors // 3d smoke InitKeyword("LOAD3DSMOKE", SCRIPT_LOAD3DSMOKE, 1); // documented InitKeyword("LOADVOLSMOKE", SCRIPT_LOADVOLSMOKE, 1); // documented @@ -501,7 +502,7 @@ int CheckScript(char *file){ /* ------------------ GetScriptKeyword ------------------------ */ keyworddata *GetScriptKeyword(FILE *stream){ - char *keyword, keyword_buffer[1024]; + char *keyword=NULL, keyword_buffer[1024]; for(;;){ char *comment; @@ -910,8 +911,8 @@ int CompileScript(char *scriptfile){ #endif scripti->cval= GetCharPointer(param_buffer); } - } break; + } // SCENECLIP // clip mode (int) diff --git a/Source/smokeview/IOslice.c b/Source/smokeview/IOslice.c index e9f51c6cec..7f42fa762d 100644 --- a/Source/smokeview/IOslice.c +++ b/Source/smokeview/IOslice.c @@ -2442,7 +2442,7 @@ void UpdateVsliceMenuLabels(sliceparmdata *sp){ /* ------------------ NewMultiSlice ------------------------ */ #ifdef pp_SLICE_MENU -int NewMultiSlice(slicedata *sdold,slicedata *sd){ +int NewMultiSlice(slicedata *sdold, slicedata *sd){ int i, j; i = sdold - sliceinfo; diff --git a/Source/smokeview/command_args.c b/Source/smokeview/command_args.c index 2ca4dee44d..3249822200 100644 --- a/Source/smokeview/command_args.c +++ b/Source/smokeview/command_args.c @@ -51,11 +51,9 @@ CommandlineArgs ParseCommandlineNew(int argc, char **argv, char *message, strcpy(args.prog, argv[0]); } int i; -#ifdef pp_OSX_1X #ifdef pp_OSX_HIGHRES args.x1 = true; args.x2 = false; -#endif #endif for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-ini") == 0) { diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 01883e1a6b..5b4f788df6 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -2673,10 +2673,11 @@ GLUI_EditText *EDIT_ini=NULL; GLUI_EditText *EDIT_renderdir=NULL; GLUI_EditText *EDIT_rendersuffix=NULL; -GLUI_Checkbox* CHECKBOX_sortslices = NULL; -GLUI_Checkbox* CHECKBOX_sortslices_debug = NULL; -GLUI_Checkbox* CHECKBOX_visColorbarHorizontal2 = NULL; -GLUI_Checkbox* CHECKBOX_visColorbarVertical2 = NULL; +GLUI_Checkbox *CHECKBOX_sliceload_isvector = NULL; +GLUI_Checkbox *CHECKBOX_sortslices = NULL; +GLUI_Checkbox *CHECKBOX_sortslices_debug = NULL; +GLUI_Checkbox *CHECKBOX_visColorbarHorizontal2 = NULL; +GLUI_Checkbox *CHECKBOX_visColorbarVertical2 = NULL; GLUI_Checkbox *CHECKBOX_show_boundary_outline=NULL; GLUI_Checkbox *CHECKBOX_use_partload_threads = NULL; GLUI_Checkbox *CHECKBOX_partfast = NULL; @@ -2865,6 +2866,17 @@ int nparticleprocinfo=0; procdata subboundprocinfo[5]; int nsubboundprocinfo=0; +#ifdef pp_LOADALL_SLICE +/* ------------------ GLUIUpdateLoadAllSlices ------------------------ */ + +extern "C" void GLUIUpdateLoadAllSlices(void){ + if(RADIO_filetype!=NULL)RADIO_filetype->set_int_val(sliceload_filetype); + if(LISTBOX_sliceload!=NULL)LISTBOX_sliceload->set_int_val(sliceload_boundtype); + if(CHECKBOX_sliceload_isvector!=NULL)CHECKBOX_sliceload_isvector->set_int_val(sliceload_isvector); + if(RADIO_sliceload_dir!=NULL)RADIO_sliceload_dir->set_int_val(sliceload_dir); +} +#endif + /* ------------------ GLUIUpdatePartPointSize ------------------------ */ extern "C" void GLUIUpdatePartPointSize(void){ @@ -5146,7 +5158,7 @@ hvacductboundsCPP.setup("hvac", ROLLOUT_hvacduct, hvacductbounds_cpp, nhvacductb } PANEL_sliceload_option = glui_bounds->add_panel_to_panel(ROLLOUT_slice_settings, "", true); glui_bounds->add_button_to_panel(PANEL_sliceload_option, _("Load all"), SLICE_LOADALL, SliceLoadCB); - glui_bounds->add_checkbox_to_panel(PANEL_sliceload_option, "vector slice", &sliceload_isvector); + CHECKBOX_sliceload_isvector = glui_bounds->add_checkbox_to_panel(PANEL_sliceload_option, "vector slice", &sliceload_isvector); PANEL_slice_xyz = glui_bounds->add_panel_to_panel(PANEL_sliceload_option, "orientation", true); RADIO_sliceload_dir = glui_bounds->add_radiogroup_to_panel(PANEL_slice_xyz, &sliceload_dir); RADIOBUTTON_sliceload_x = glui_bounds->add_radiobutton_to_group(RADIO_sliceload_dir, "x"); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 89b716d260..e32d16ae62 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -5097,7 +5097,7 @@ void LoadSliceMenu(int value){ GLUTSETCURSOR(GLUT_CURSOR_LEFT_ARROW); } -/* ------------------ LoadVMultiSliceMenu2 ------------------------ */ +/* ------------------ LoadMultiVSliceMenu ------------------------ */ void LoadMultiVSliceMenu(int value){ int i; @@ -8012,15 +8012,260 @@ void InitDuplicateSliceMenu(int *duplicateslicemenuptr){ } } +/* ----------------------- CompareSubSliceMenu ----------------------------- */ + +#ifdef pp_LOADALL_SLICE +int CompareSubSliceMenu(const void *arg1, const void *arg2){ + subslicemenudata *subslicemenui, *subslicemenuj; + char *labeli, *labelj; + + subslicemenui = (subslicemenudata *)arg1; + subslicemenuj = (subslicemenudata *)arg2; + labeli = subslicemenui->menulabel; + labelj = subslicemenuj->menulabel; + return strcmp(labeli, labelj); +} + +/* ------------------ InitSubSliceMenuInfo ------------------------ */ + +void InitSubSliceMenuInfo(){ + int i; + + if(nsliceinfo == 0 || subslicemenuinfo != NULL)return; + INIT_PRINT_TIMER(subslicemenu_timer); + NewMemory((void **)&subslicemenuinfo, nsliceinfo * sizeof(subslicemenudata)); + nsubslicex = 0; + nsubslicey = 0; + nsubslicez = 0; + nsubslicexyz = 0; + for(i = 0;iislices[0]; + if(i>0)sdim1 = sliceinfo+(multisliceinfo+i-1)->islices[0]; + + if(i==0||strcmp(sd->label.longlabel, sdim1->label.longlabel)!=0){ + si = subslicemenuinfo + nsubslicemenuinfo; + si->menulabel = sd->label.longlabel; + si->shortlabel = sd->label.shortlabel; + si->havex = 0; + si->havey = 0; + si->havez = 0; + si->havexyz = 0; + if(sd->volslice==0&& + (sd->slice_filetype == SLICE_NODE_CENTER || sd->slice_filetype == SLICE_CELL_CENTER) + ){ + si->slicetype = sd->slice_filetype-1; + } + else{ + si->slicetype = SLICE_UNKNOWN; + } + nsubslicemenuinfo++; + } + si = subslicemenuinfo + nsubslicemenuinfo-1; + if(si->slicetype!=SLICE_UNKNOWN){ + if(sd->idir == 1){ + si->havex = 1; + nsubslicex++; + } + if(sd->idir == 2){ + si->havey = 1; + nsubslicey++; + } + if(sd->idir == 3){ + si->havez = 1; + nsubslicez++; + } + if(si->havex == 1 || si->havey == 1 || si->havez == 1){ + si->havexyz = 1; + nsubslicexyz++; + } + } + } + ResizeMemory((void **)&subslicemenuinfo, nsubslicemenuinfo * sizeof(subslicemenudata)); + qsort((subslicemenudata *)subslicemenuinfo, (int)nsubslicemenuinfo, sizeof(subslicemenudata), CompareSubSliceMenu); + PRINT_TIMER(subslicemenu_timer, "Initialize load all slice menus"); +} + +/* ------------------ InitSubVectorSliceMenuInfo ------------------------ */ + +void InitSubVectorSliceMenuInfo(){ + int i; + + if(nmultivsliceinfo == 0 || subvectorslicemenuinfo != NULL)return; + INIT_PRINT_TIMER(subvectorslicemenu_timer); + NewMemory((void **)&subvectorslicemenuinfo, nmultivsliceinfo * sizeof(subslicemenudata)); + nsubvectorslicex = 0; + nsubvectorslicey = 0; + nsubvectorslicez = 0; + nsubvectorslicexyz = 0; + for(i = 0; iivslices[0]; + si = sliceinfo+vi->ival; + + if(i>0){ + vim1 = vsliceinfo+(multivsliceinfo+i-1)->ivslices[0]; + sim1 = sliceinfo+vim1->ival; + } + if(i==0||(i>0&&strcmp(si->label.longlabel, sim1->label.longlabel)!=0)){ + vd = subvectorslicemenuinfo + nsubvectorslicemenuinfo; + vd->menulabel = si->label.longlabel; + vd->shortlabel = si->label.shortlabel; + vd->havex = 0; + vd->havey = 0; + vd->havez = 0; + vd->havexyz = 0; + if( si->volslice==0&& + (si->slice_filetype == SLICE_NODE_CENTER || si->slice_filetype == SLICE_CELL_CENTER) + ){ + vd->slicetype = si->slice_filetype-1; + } + else{ + vd->slicetype = SLICE_UNKNOWN; + } + nsubvectorslicemenuinfo++; + } + vd = subvectorslicemenuinfo + nsubvectorslicemenuinfo - 1; + if(vd->slicetype!=SLICE_UNKNOWN){ + if(si->idir == 1){ + vd->havex = 1; + nsubvectorslicex++; + } + if(si->idir == 2){ + vd->havey = 1; + nsubvectorslicey++; + } + if(si->idir == 3){ + vd->havez = 1; + nsubvectorslicez++; + } + if(vd->havex == 1 || vd->havey == 1 || vd->havez == 1){ + vd->havexyz = 1; + nsubvectorslicexyz++; + } + } + } + ResizeMemory((void **)&subvectorslicemenuinfo, nsubvectorslicemenuinfo * sizeof(subslicemenudata)); + qsort((subslicemenudata *)subvectorslicemenuinfo, (int)nsubvectorslicemenuinfo, sizeof(subslicemenudata), CompareSubSliceMenu); + PRINT_TIMER(subvectorslicemenu_timer, "Initialize load all vector slice menus"); +} + +/* ------------------ GetSliceBoundType ------------------------ */ + +int GetSliceBoundType(char *label){ + int i; + + for(i=0;i0){ + +//*** load all x slices + + CREATEMENU(loadsubslicexmenu, LoadAllSlices); + *loadsubslicexmenuptr = loadsubslicexmenu; + for(i=0;ihavex==1)glutAddMenuEntry(si->menulabel,4*i); + } + +//*** load all y slices + + CREATEMENU(loadsubsliceymenu, LoadAllSlices); + *loadsubsliceymenuptr = loadsubsliceymenu; + for(i = 0;i < nsubslicemenuinfo;i++){ + subslicemenudata *si; + + si = subslicemenuinfo + i; + if(si->havey == 1)glutAddMenuEntry(si->menulabel, 4*i+1); + } + +//*** load all z slices + + CREATEMENU(loadsubslicezmenu, LoadAllSlices); + *loadsubslicezmenuptr = loadsubslicezmenu; + for(i = 0;i < nsubslicemenuinfo;i++){ + subslicemenudata *si; + + si = subslicemenuinfo + i; + if(si->havez == 1)glutAddMenuEntry(si->menulabel, 4*i+2); + } + +//*** load all x,y,z slices + + CREATEMENU(loadsubslicexyzmenu, LoadAllSlices); + *loadsubslicexyzmenuptr = loadsubslicexyzmenu; + for(i = 0;i < nsubslicemenuinfo;i++){ + subslicemenudata *si; + + si = subslicemenuinfo + i; + if(si->havexyz == 1)glutAddMenuEntry(si->menulabel, 4*i+3); + } + } +#endif CREATEMENU(loadmultislicemenu, LoadMultiSliceMenu); *loadmultislicemenuptr = loadmultislicemenu; nloadsubmslicemenu = 0; @@ -8061,6 +8306,15 @@ void InitLoadMultiSliceMenu(int *loadmultislicemenuptr, int *loadsubmslicemenu, } } +#ifdef pp_LOADALL_SLICE + if(nsubslicemenuinfo>0&&(nsubslicex>0||nsubslicey>0||nsubslicez>0||nsubslicexyz>0)){ + glutAddMenuEntry("-", MENU_DUMMY); + if(nsubslicex>0)GLUTADDSUBMENU("Load all x slices", loadsubslicexmenu); + if(nsubslicey>0)GLUTADDSUBMENU("Load all y slices", loadsubsliceymenu); + if(nsubslicez>0)GLUTADDSUBMENU("Load all z slices", loadsubslicezmenu); + if(nsubslicexyz>0)GLUTADDSUBMENU("Load all x,y,z slices", loadsubslicexyzmenu); + } +#endif if(nmultisliceinfo>0)glutAddMenuEntry("-", MENU_DUMMY); GLUTADDSUBMENU(_("Skip"), sliceskipmenu); @@ -8249,11 +8503,65 @@ void InitMultiVectorSubMenu(int **loadsubmvslicemenuptr){ /* ------------------ InitMultiVectorLoadMenu ------------------------ */ -void InitMultiVectorLoadMenu(int *loadmultivslicemenuptr, int *loadsubmvslicemenu, int duplicatevectorslicemenu, int vsliceloadmenu, int sliceloadoptionmenu, int unloadmultivslicemenu){ +void InitMultiVectorLoadMenu(int *loadmultivslicemenuptr, int *loadsubmvslicemenu, int duplicatevectorslicemenu, + int vsliceloadmenu, int sliceloadoptionmenu, int unloadmultivslicemenu +#ifdef pp_LOADALL_SLICE + , int *loadsubvectorslicexmenuptr, int *loadsubvectorsliceymenuptr, int *loadsubvectorslicezmenuptr, int *loadsubvectorslicexyzmenuptr +#endif + ){ int loadmultivslicemenu; int nloadsubmvslicemenu; int i; +#ifdef pp_LOADALL_SLICE + int loadsubvectorslicexmenu, loadsubvectorsliceymenu, loadsubvectorslicezmenu, loadsubvectorslicexyzmenu; + + InitSubVectorSliceMenuInfo(); + +//*** load all x vector slices + + CREATEMENU(loadsubvectorslicexmenu, LoadAllVectorSlices); + *loadsubvectorslicexmenuptr = loadsubvectorslicexmenu; + for(i=0;ihavex==1)glutAddMenuEntry(si->menulabel,4*i); + } + +//*** load all y vector slices + + CREATEMENU(loadsubvectorsliceymenu, LoadAllVectorSlices); + *loadsubvectorsliceymenuptr = loadsubvectorsliceymenu; + for(i=0;ihavey==1)glutAddMenuEntry(si->menulabel,4*i+1); + } + +//*** load all z vector slices + + CREATEMENU(loadsubvectorslicezmenu, LoadAllVectorSlices); + *loadsubvectorslicezmenuptr = loadsubvectorslicezmenu; + for(i=0;ihavez==1)glutAddMenuEntry(si->menulabel,4*i+2); + } + +//*** load all x,y,z vector slices + + CREATEMENU(loadsubvectorslicexyzmenu, LoadAllVectorSlices); + *loadsubvectorslicexyzmenuptr = loadsubvectorslicexyzmenu; + for(i=0;ihavexyz==1)glutAddMenuEntry(si->menulabel,4*i+3); + } +#endif nloadsubmvslicemenu = 0; CREATEMENU(loadmultivslicemenu, LoadMultiVSliceMenu); *loadmultivslicemenuptr = loadmultivslicemenu; @@ -8275,6 +8583,16 @@ void InitMultiVectorLoadMenu(int *loadmultivslicemenuptr, int *loadsubmvslicemen nloadsubmvslicemenu++; } } +#ifdef pp_LOADALL_SLICE + if(nsubvectorslicemenuinfo>0&&(nsubvectorslicex>0||nsubvectorslicey>0||nsubvectorslicez>0||nsubvectorslicexyz>0)){ + glutAddMenuEntry("-", MENU_DUMMY); + if(nsubvectorslicex>0)GLUTADDSUBMENU("Load all x vector slices", loadsubvectorslicexmenu); + if(nsubvectorslicey>0)GLUTADDSUBMENU("Load all y vector slices", loadsubvectorsliceymenu); + if(nsubvectorslicez>0)GLUTADDSUBMENU("Load all z vector slices", loadsubvectorslicezmenu); + if(nsubvectorslicexyz>0)GLUTADDSUBMENU("Load all x,y,z vector slices", loadsubvectorslicexyzmenu); + } +#endif + if(nmultivsliceinfo>0)glutAddMenuEntry("-", MENU_DUMMY); if(nslicedups > 0){ @@ -8497,6 +8815,10 @@ static int render_startmenu = 0; static int compressmenu=0; #endif static int showhideslicemenu=0, sliceskipmenu=0, showvslicemenu=0; +#ifdef pp_LOADALL_SLICE +static int loadsubslicexmenu=0, loadsubsliceymenu=0, loadsubslicezmenu=0, loadsubslicexyzmenu=0; +static int loadsubvectorslicexmenu=0, loadsubvectorsliceymenu=0, loadsubvectorslicezmenu=0, loadsubvectorslicexyzmenu=0; +#endif static int plot3dshowmenu=0, staticvariablemenu=0, helpmenu=0, webhelpmenu=0, keyboardhelpmenu=0, mousehelpmenu=0; static int vectorskipmenu=0,unitsmenu=0; static int sliceloadoptionmenu = 0, vectorsliceloadoptionmenu = 0; @@ -11679,7 +12001,12 @@ static int menu_count=0; if(have_multivslice==1){ InitMultiVectorUnloadSliceMenu(&unloadmultivslicemenu); InitMultiVectorSubMenu(&loadsubmvslicemenu); - InitMultiVectorLoadMenu(&loadmultivslicemenu, loadsubmvslicemenu, duplicatevectorslicemenu, vsliceloadmenu, vectorsliceloadoptionmenu, unloadmultivslicemenu); + InitMultiVectorLoadMenu(&loadmultivslicemenu, loadsubmvslicemenu, duplicatevectorslicemenu, vsliceloadmenu, + vectorsliceloadoptionmenu, unloadmultivslicemenu +#ifdef pp_LOADALL_SLICE + ,&loadsubvectorslicexmenu, &loadsubvectorsliceymenu, &loadsubvectorslicezmenu, &loadsubvectorslicexyzmenu +#endif + ); } } @@ -11705,7 +12032,11 @@ static int menu_count=0; InitDuplicateSliceMenu(&duplicateslicemenu); } InitLoadMultiSliceMenu(&loadmultislicemenu, loadsubmslicemenu, loadsubpatchmenu_s, nsubpatchmenus_s, - sliceskipmenu, sliceloadoptionmenu, duplicateslicemenu, loadslicemenu, nmultisliceloaded, unloadmultislicemenu); + sliceskipmenu, sliceloadoptionmenu, duplicateslicemenu, loadslicemenu, nmultisliceloaded, unloadmultislicemenu +#ifdef pp_LOADALL_SLICE + ,&loadsubslicexmenu, &loadsubsliceymenu, &loadsubslicezmenu, &loadsubslicexyzmenu +#endif + ); } diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index 1359bae691..56be718c6e 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -10,8 +10,7 @@ //#define pp_PARTBOUND_MULTI // compute particle bounds in the background //#define pp_LUA // turn on LUA option #define pp_CHOPFIX // fix to saving chop values -#define pp_OSX_1X // use -1x option by default on macs -//#define pp_SLICE_MENU // make slice menu formation consistent (sort step, build step) +#define pp_SLICE_MENU // make slice menu formation consistent (sort step, build step) #define pp_SLICE_MULTI // load slice files in parallel //#define pp_CSV_MENU // add menu for loading CSV files //#define pp_SMOKE16 // load 16 bit smoke files @@ -21,11 +20,14 @@ #define pp_FAST // set fast startup by default //#define pp_DPRINT // turn on debug print (file, line number) //#define pp_LOAD_INC // add menu item for loading new data +#define pp_PART_SPEEDUP // improve efficiency of loading particles +#define pp_SMOKE_SPEEDUP // improve efficiency of loading 3d smoke #define pp_GPU // support the GPU #define pp_THREAD // turn on multi-threading #ifdef pp_GPU #define pp_GPUTHROTTLE // pp_GPU directive must also be set #endif +#define pp_LOADALL_SLICE // add menus to load all x, y, z slice files #define pp_ONEBUFFER // consolidate memory allocations when parsing .smv file #define pp_MESH_BOUNDARY // display boundary files on blockages that are on mesh boundaries #define pp_MESHSKIP // compute mesh skip arrays to display vector slices uniformly diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index e6a4190f5c..af2b096b0d 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -21,6 +21,9 @@ EXTERNCPP void *ReadVolsmokeAllFramesAllMeshes2(void *arg); EXTERNCPP void *SetupAllIsosurfaces(void *arg); //*** glui_bounds.cpp headers +#ifdef pp_LOADALL_SLICE +EXTERNCPP void GLUIUpdateLoadAllSlices(void); +#endif EXTERNCPP void GLUIUpdateMeshBounds(void); EXTERNCPP void DrawBoxMinMax(float *bbmin, float *bbmax, float *box_color); EXTERNCPP void DrawBox(float *bb, float *box_color); diff --git a/Source/smokeview/smokeviewdefs.h b/Source/smokeview/smokeviewdefs.h index 3c03c355bc..8fc05f58cb 100644 --- a/Source/smokeview/smokeviewdefs.h +++ b/Source/smokeview/smokeviewdefs.h @@ -521,6 +521,9 @@ EXTERNCPP void _Sniff_Errors(const char *whereat, const char *file, int line); #define FED_SLICE 0 #define FED_ISO 1 +#ifdef pp_LOADALL_SLICE +#define SLICE_UNKNOWN -1 +#endif #define SLICE_NODE_CENTER 1 #define SLICE_CELL_CENTER 2 #define SLICE_TERRAIN 4 diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 48c6d095b1..b7b482e563 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -239,6 +239,12 @@ SVEXTERN char SVDECL(**movie_queues, NULL), movie_htmldir[256], movie_email[256] SVEXTERN char movie_basename[256], movie_ssf_script[256], movie_bash_script[256], movie_ini_filename[256]; SVEXTERN slicedata SVDECL(*movie_sliceinfo, NULL); +#ifdef pp_LOADALL_SLICE +SVEXTERN subslicemenudata SVDECL(*subslicemenuinfo, NULL), SVDECL(*subvectorslicemenuinfo, NULL); +SVEXTERN int SVDECL(nsubslicemenuinfo, 0), SVDECL(nsubvectorslicemenuinfo, 0); +SVEXTERN int SVDECL(nsubslicex, 0), SVDECL(nsubslicey, 0), SVDECL(nsubslicez, 0), SVDECL(nsubslicexyz, 0); +SVEXTERN int SVDECL(nsubvectorslicex, 0), SVDECL(nsubvectorslicey, 0), SVDECL(nsubvectorslicez, 0), SVDECL(nsubvectorslicexyz, 0); +#endif SVEXTERN slicemenudata SVDECL(**slicemenu_sorted, NULL); SVEXTERN int SVDECL(handle_slice_files, 1); SVEXTERN int SVDECL(plot_option, 0); diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index 797fe0546a..79a7883f5f 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -1475,6 +1475,16 @@ typedef struct _slicemenudata { slicedata *sliceinfo; } slicemenudata; +#ifdef pp_LOADALL_SLICE +/* -------------------------- _subslicemenudata ------------------------------------ */ + +typedef struct _subslicemenudata { + char *menulabel, *shortlabel; + int slicetype; + int havex, havey, havez, havexyz; +} subslicemenudata; +#endif + /* -------------------------- multislicedata ------------------------------------ */ typedef struct _multislicedata {