From aa957d999820c716af92a7c29197c415e024fdc1 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 23 May 2023 14:05:14 -0400 Subject: [PATCH 01/49] smokeview source: organize colorbars into groups --- Source/smokeview/colortimebar.c | 92 ++++++++++++++++++++---------- Source/smokeview/glui_colorbar.cpp | 2 +- Source/smokeview/menus.c | 27 +++++---- Source/smokeview/smokeviewvars.h | 3 +- Source/smokeview/startup.c | 2 - 5 files changed, 82 insertions(+), 44 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index ee750a4b07..fbf348ae43 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1304,6 +1304,31 @@ void RevertColorBar(colorbardata *cbi){ } #endif +/* ------------------ CompareColorbars ------------------------ */ + +int CompareColorbars(const void *arg1, const void *arg2){ + colorbardata *cbi, *cbj; + + cbi = *(colorbardata **)arg1; + cbj = *(colorbardata **)arg2; + + return STRCMP(cbi->label_ptr, cbj->label_ptr); +} + +/* ------------------ SortColorBars ------------------------ */ + +void SortColorBars(void){ + int i; + + FREEMEMORY(colorbars_sorted); + NewMemory((void **)&colorbars_sorted, ncolorbars*sizeof(colorbardata *)); + colorbartype_default = 0; + for(i = 0;i < ncolorbars;i++){ + colorbars_sorted[i] = colorbarinfo + i; + } + qsort((colorbardata *)colorbars_sorted, (size_t)ncolorbars, sizeof(colorbardata *), CompareColorbars); +} + /* ------------------ InitDefaultColorbars ------------------------ */ void InitDefaultColorbars(int nini){ @@ -1372,7 +1397,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12]=255; cbi->rgb_node[13]=0; cbi->rgb_node[14]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "rainbow"); cbi++; // Rainbow 2 colorbar @@ -1441,7 +1466,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[33]=215; cbi->rgb_node[34]=5; cbi->rgb_node[35]=13; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "rainbow"); cbi++; // yellow/red @@ -1460,7 +1485,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3]=255; cbi->rgb_node[4]=0; cbi->rgb_node[5]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "linear"); cbi++; // blue/green/red @@ -1484,7 +1509,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6]=255; cbi->rgb_node[7]=0; cbi->rgb_node[8]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "deprecated"); cbi++; // blue/yellow/white @@ -1517,7 +1542,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "deprecated"); cbi++; // blue->red split @@ -1547,7 +1572,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=0; cbi->rgb_node[11]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "divergent"); cbi++; // black->white @@ -1568,7 +1593,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3] =255; cbi->rgb_node[4]=255; cbi->rgb_node[5]=255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "linear"); cbi++; // FED @@ -1608,7 +1633,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=255; cbi->rgb_node[16]=155; cbi->rgb_node[17]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "blocked"); cbi++; // fire (original) @@ -1640,7 +1665,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=128; cbi->rgb_node[11]=0; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "divergent"); cbi++; // fire 2 @@ -1702,7 +1727,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[27]=255; cbi->rgb_node[28]=255; cbi->rgb_node[29]=238; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "divergent"); cbi++; // fire 3 @@ -1735,7 +1760,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "linear"); cbi++; // cool @@ -1782,7 +1807,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[18] = 255; cbi->rgb_node[19] = 255; cbi->rgb_node[20] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "deprecated"); cbi++; // fire line (level set) @@ -1823,10 +1848,9 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=0; cbi->rgb_node[16]=1; cbi->rgb_node[17]=2; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "blocked"); cbi++; - // fire line (wall thickness) wallthickness_colorbar=cbi-colorbarinfo; @@ -1855,7 +1879,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=253; cbi->rgb_node[10]=254; cbi->rgb_node[11]=255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "blocked"); cbi++; // split @@ -1875,7 +1899,7 @@ void InitDefaultColorbars(int nini){ for(i = 0; i < 12; i++){ cbi->rgb_node[i] = colorsplit[i]; } - strcpy(cbi->type, "original"); + strcpy(cbi->type, "divergent"); cbi++; @@ -1906,7 +1930,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "divergent"); cbi++; // Propane @@ -1941,7 +1965,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12] = 255; cbi->rgb_node[13] = 255; cbi->rgb_node[14] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "linear"); cbi++; // CO2 @@ -1967,7 +1991,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6] = 255; cbi->rgb_node[7] = 255; cbi->rgb_node[8] = 255; - strcpy(cbi->type, "original"); + strcpy(cbi->type, "linear"); cbi++; #ifdef pp_COLORBARS_CSV @@ -1991,16 +2015,6 @@ void InitDefaultColorbars(int nini){ InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user"); cbi++; } -#ifdef pp_COLOR_NEW - if(rainbow_filelist>0){ - memcpy(colorbarinfo+1, colorbarinfo, sizeof(colorbardata)); - strcpy(colorbarinfo[1].label, "Rainbow(original)"); - - memcpy(colorbarinfo, cbi - nrainbow_filelist, sizeof(colorbardata)); - strcpy(colorbarinfo->label, "Rainbow"); - strcpy(colorbarinfo->type, "original"); - } -#endif #endif // construct colormaps from color node info @@ -2012,6 +2026,26 @@ void InitDefaultColorbars(int nini){ UpdateColorbarSplits(cbi); memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); } + SortColorBars(); + colorbartype = colorbartype_default; + iso_colorbar_index = colorbartype_default; +#ifdef pp_COLOR_NEW + if(rainbow_filelist>0){ + int new_rainbow_index = -1; + for(i = 0;i < ncolorbars;i++){ + if(strcmp(colorbarinfo[i].label, "CET-R2.csv")==0)new_rainbow_index = i; + } + + if(new_rainbow_index>=0){ + memcpy(colorbarinfo+1, colorbarinfo, sizeof(colorbardata)); + strcpy(colorbarinfo[1].label, "Rainbow(original)"); + + memcpy(colorbarinfo, colorbarinfo + new_rainbow_index, sizeof(colorbardata)); + strcpy(colorbarinfo->label, "Rainbow"); + strcpy(colorbarinfo->type, "rainbow"); + } + } +#endif } /* ------------------ UpdateColorbarSplits ------------------------ */ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 3efe8a31fd..1b954eef86 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -104,7 +104,7 @@ extern "C" void UpdateColorbarList(void){ /* ------------------ UpdateColorbarType ------------------------ */ extern "C" void UpdateColorbarType(void){ - LISTBOX_colorbar->set_int_val(colorbartype); + if(LISTBOX_colorbar!=NULL)LISTBOX_colorbar->set_int_val(colorbartype); } /* ------------------ HideGluiColorbar ------------------------ */ diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 48be122a67..94c115bc85 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8273,7 +8273,7 @@ void MakeColorbarMenu(int *menuptr, int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, int *submenu4ptr, int *submenu5ptr, #endif void (*CBMenu)(int)){ - int i; + int i, ii; int menu = 0; #ifdef pp_COLORBARS_CSV int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0; @@ -8286,8 +8286,9 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; char ccolorbarmenu[256]; - for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; if(strcmp(cbi->type, "linear") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "linear_"); @@ -8310,8 +8311,9 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; char ccolorbarmenu[256]; - for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; if(strcmp(cbi->type, "circular") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "circular_"); @@ -8334,8 +8336,9 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; char ccolorbarmenu[256]; - for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; if(strcmp(cbi->type, "rainbow") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "rainbow_"); @@ -8358,8 +8361,9 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; char ccolorbarmenu[256]; - for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; if(strcmp(cbi->type, "divergent") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "divergent_"); @@ -8382,8 +8386,9 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; char ccolorbarmenu[256]; - for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; if(strcmp(cbi->type, "user") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "user_"); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 9f1fd639ab..5297cb7b26 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1374,7 +1374,7 @@ SVEXTERN int SVDECL(*shooter_timeslist,NULL); SVEXTERN int SVDECL(shooter_itime,0); SVEXTERN int showgluitrainer; -SVEXTERN int colorbartype,colorbartype_ini,colorbartype_default; +SVEXTERN int SVDECL(colorbartype,0),SVDECL(colorbartype_ini,-1), SVDECL(colorbartype_default, 0); SVEXTERN char colorbarname[1024]; SVEXTERN int SVDECL(update_colorbartype,0); SVEXTERN int colorbartype_save; @@ -1883,6 +1883,7 @@ SVEXTERN int showall_textures; SVEXTERN int SVDECL(enable_texture_lighting,0); SVEXTERN int SVDECL(ncolorbars,0); +SVEXTERN colorbardata SVDECL(**colorbars_sorted, NULL); SVEXTERN int ndefaultcolorbars; SVEXTERN colorbardata SVDECL(*colorbarinfo,NULL),SVDECL(*current_colorbar,NULL); diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index 17ace6823a..3addb83b37 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -1701,8 +1701,6 @@ void InitVars(void){ hrrpuv_iso_color[2]=0.0; hrrpuv_iso_color[3]=1.0; showgluitrainer=0; - colorbartype=0; - colorbartype_ini=-1; UpdateCurrentColorbar(colorbarinfo); colorbartype_save=colorbartype; colorbartype_default=colorbartype; From 606725521552118b1df71597a73426df0ea75e5b Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 23 May 2023 14:06:05 -0400 Subject: [PATCH 02/49] smokeview source: set pp_COLOR directives --- Source/smokeview/options.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index e1111ee016..6afd4d0f61 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -24,10 +24,10 @@ #define pp_PART_BOUND // use .prt.bnd for global part bound file extension #define pp_COLORBARS_CSV // add csv colorbars// -//#define pp_COLOR_CIE // output color diffs -//#define pp_COLOR_TOGGLE // add option to toggle colorbars +#define pp_COLOR_CIE // output color diffs +#define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) -//#define pp_COLOR_NEW // set uniform rainbow colorbar as new rainbow colorbar +#define pp_COLOR_NEW // set uniform rainbow colorbar as new rainbow colorbar //#define pp_TOUR_ADJUST // adjust tour times #define pp_TOUR_DUP // handle duplicate keyframes From b85f81e72abb7928390b0848749315ca0ed9ca25 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 23 May 2023 15:15:24 -0400 Subject: [PATCH 03/49] smokeview source: remove unused code --- Source/smokeview/glui_bounds.cpp | 14 +------------- Source/smokeview/glui_colorbar.cpp | 3 ++- Source/smokeview/smokeheaders.h | 2 -- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 235536f3ae..fbb37619ad 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -3597,24 +3597,12 @@ extern "C" void UpdateExtreme(void){ ExtremeCB(COLORBAR_EXTREME); } -/* ------------------ GetColorbarListIndex ------------------------ */ - -extern "C" int GetColorbarListIndex(void){ - return LIST_colorbar2->get_int_val(); -} - /* ------------------ UpdateColorbarList2 ------------------------ */ extern "C" void UpdateColorbarList2(void){ if(LIST_colorbar2!=NULL)LIST_colorbar2->set_int_val(selectedcolorbar_index2); } -/* ------------------ AddColorbarList2 ------------------------ */ - -extern "C" void AddColorbarList2(int index, char *label){ - LIST_colorbar2->add_item(index, label); -} - /* ------------------ SetColorbarListIndex ------------------------ */ extern "C" void SetColorbarListIndex(int val){ @@ -6421,7 +6409,7 @@ extern "C" void SliceBoundCB(int var){ GetZoneColors(zonetl, nzonetotal, izonetl, zonemin, zonemax, nrgb, nrgb_full, colorlabelzone, colorvalueszone, zonelevels256); break; case COLORBAR_LIST2: - selectedcolorbar_index= GetColorbarListIndex(); + selectedcolorbar_index = LIST_colorbar2->get_int_val(); UpdateColorbarList(); ColorbarMenu(selectedcolorbar_index); ColorbarGlobal2Local(); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 1b954eef86..5904ef89c2 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -29,6 +29,7 @@ GLUI_Listbox *LISTBOX_colorbar2 = NULL; extern GLUI_Listbox *LISTBOX_colorbar1a; extern GLUI_Listbox *LISTBOX_colorbar2a; #endif +extern GLUI_Listbox *LISTBOX_colorbar2a; GLUI_Spinner *SPINNER_rgb[3]; #ifdef pp_COLOR_CIE @@ -395,7 +396,7 @@ extern "C" void ColorbarCB(int var){ cbi = colorbarinfo + colorbartype; //AddColorbar resizes (and possibly moves) colorbarinfo LISTBOX_colorbar->add_item(colorbartype, cbi->label); LISTBOX_colorbar->set_int_val(colorbartype); - AddColorbarList2(colorbartype, cbi->label); + LISTBOX_colorbar2->add_item(colorbartype, cbi->label); ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 365cd012dc..1c0871b90a 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -341,7 +341,6 @@ EXTERNCPP void ScriptCB(int var); EXTERNCPP void TourCB(int var); EXTERNCPP void SetClipControls(int val); EXTERNCPP void ExtremeCB(int var); -EXTERNCPP void AddColorbarList2(int index, char *label); EXTERNCPP void UpdateExtremeVals(void); EXTERNCPP void PartBoundCB(int var); EXTERNCPP void ShowHideMenu(int val); @@ -540,7 +539,6 @@ EXTERNCPP void UpdateSmokeColormap(int option); EXTERNCPP void UpdateCO2Colormap(void); EXTERNCPP void DefineVolsmokeTextures(void); EXTERNCPP void SetColorbarListIndex(int val); -EXTERNCPP int GetColorbarListIndex(void); EXTERNCPP int GetColorbarIndex(int flag, int x, int y); EXTERNCPP void GetViewportInfo(void); From b12c872c9d42e325ff4602f0d54624ec152620c0 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 23 May 2023 16:52:11 -0400 Subject: [PATCH 04/49] smokeview source: add headers to colorbar menus and dialogs --- Source/smokeview/glui_bounds.cpp | 41 ++++++++++++++++++---- Source/smokeview/glui_colorbar.cpp | 40 ++++++++++++++++++---- Source/smokeview/menus.c | 55 ++++++++++++++++++++++++------ Source/smokeview/smokeviewvars.h | 1 + 4 files changed, 113 insertions(+), 24 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index fbb37619ad..237922bcb5 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4606,6 +4606,29 @@ extern "C" void UpdateSliceXYZ(void){ if(SPINNER_slice_z!=NULL)SPINNER_slice_z->set_float_val(slice_xyz[2]); } +/* ------------------ AddColorbarList ------------------------ */ + +void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg){ + char cbar_type[256]; + int ii; + + strcpy(cbar_type, "***"); + strcat(cbar_type, label_arg); + strcat(cbar_type, "***"); + LIST_cbar->add_item(-1, cbar_type); + for(ii = 0; ii < ncolorbars; ii++){ + colorbardata *cbi; + int i; + + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; + + if(strcmp(cbi->type, label_arg) != 0)continue; + cbi->label_ptr = cbi->label; + LIST_colorbar2->add_item(i, cbi->label_ptr); + } +} + /* ------------------ GluiBoundsSetup ------------------------ */ extern "C" void GluiBoundsSetup(int main_window){ @@ -5422,13 +5445,13 @@ extern "C" void GluiBoundsSetup(int main_window){ selectedcolorbar_index2 = -1; LIST_colorbar2 = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); - for(i = 0; ilabel_ptr = cbi->label; - LIST_colorbar2->add_item(i, cbi->label_ptr); - } LIST_colorbar2->set_int_val(colorbartype); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Previous"), COLORBAR_LIST2_PREV, SliceBoundCB); @@ -6409,7 +6432,11 @@ extern "C" void SliceBoundCB(int var){ GetZoneColors(zonetl, nzonetotal, izonetl, zonemin, zonemax, nrgb, nrgb_full, colorlabelzone, colorvalueszone, zonelevels256); break; case COLORBAR_LIST2: - selectedcolorbar_index = LIST_colorbar2->get_int_val(); + int list_index; + + list_index = LIST_colorbar2->get_int_val(); + if(list_index<0)break; + selectedcolorbar_index = list_index; UpdateColorbarList(); ColorbarMenu(selectedcolorbar_index); ColorbarGlobal2Local(); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 5904ef89c2..7e49f3d77c 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -329,7 +329,11 @@ extern "C" void ColorbarCB(int var){ UpdateRGBColors(COLORBAR_INDEX_NONE); break; case COLORBAR_LIST: - selectedcolorbar_index2 = LISTBOX_colorbar->get_int_val(); + int list_index; + + list_index = LISTBOX_colorbar->get_int_val(); + if(list_index<0)break; + selectedcolorbar_index2 = list_index; if(show_firecolormap==0){ colorbartype=selectedcolorbar_index2; } @@ -441,6 +445,29 @@ extern "C" void ColorbarCB(int var){ } } +/* ------------------ AddColorbarList2 ------------------------ */ + +void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg){ + char cbar_type[256]; + int ii; + + strcpy(cbar_type, "***"); + strcat(cbar_type, label_arg); + strcat(cbar_type, "***"); + LIST_cbar->add_item(-1, cbar_type); + for(ii = 0; ii < ncolorbars; ii++){ + colorbardata *cbi; + int i; + + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; + + if(strcmp(cbi->type, label_arg) != 0)continue; + cbi->label_ptr = cbi->label; + LIST_cbar->add_item(i, cbi->label_ptr); + } +} + /* ------------------ GluiColorbarSetup ------------------------ */ extern "C" void GluiColorbarSetup(int main_window){ @@ -486,11 +513,12 @@ extern "C" void GluiColorbarSetup(int main_window){ selectedcolorbar_index=-1; LISTBOX_colorbar=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); - for(i=0;ilabel_ptr=cbi->label; - LISTBOX_colorbar->add_item(i,cbi->label_ptr); - } + AddColorbarList2(LISTBOX_colorbar, "rainbow"); + AddColorbarList2(LISTBOX_colorbar, "linear"); + AddColorbarList2(LISTBOX_colorbar, "divergent"); + AddColorbarList2(LISTBOX_colorbar, "circular"); + AddColorbarList2(LISTBOX_colorbar, "deprecated"); + AddColorbarList2(LISTBOX_colorbar, "user"); LISTBOX_colorbar->set_int_val(colorbartype); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 94c115bc85..0477002524 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8270,13 +8270,13 @@ char *GetLabelPtr(char *label, char *clabel, char *type){ void MakeColorbarMenu(int *menuptr, #ifdef pp_COLORBARS_CSV - int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, int *submenu4ptr, int *submenu5ptr, + int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, int *submenu4ptr, int *submenu5ptr, int *submenu6ptr, #endif void (*CBMenu)(int)){ int i, ii; int menu = 0; #ifdef pp_COLORBARS_CSV - int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0; + int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0, submenu6=0; char label[256], *labelptr; #endif @@ -8381,6 +8381,31 @@ void MakeColorbarMenu(int *menuptr, glutAddMenuEntry(ccolorbarmenu, i); } } + { + CREATEMENU(submenu6, CBMenu); + colorbardata *cbi; + char ccolorbarmenu[256]; + + for(ii = 0; ii < ncolorbars; ii++){ + cbi = colorbars_sorted[ii]; + i = cbi - colorbarinfo; + + if(strcmp(cbi->type, "deprecated") != 0)continue; + labelptr = GetLabelPtr(label, cbi->label, "deprecated_"); + strcpy(ccolorbarmenu, " "); + if(colorbartype == i){ + strcat(ccolorbarmenu, "*"); + strcat(ccolorbarmenu, labelptr); + } + else{ + strcat(ccolorbarmenu, labelptr); + } + char *ext; + ext = strrchr(ccolorbarmenu, '.'); + if(ext != NULL)*ext = 0; + glutAddMenuEntry(ccolorbarmenu, i); + } + } if(nuser_filelist > 0){ CREATEMENU(submenu5, CBMenu); colorbardata *cbi; @@ -8429,17 +8454,20 @@ void MakeColorbarMenu(int *menuptr, } } #ifdef pp_COLORBARS_CSV + if(nrainbow_filelist > 0){ + GLUTADDSUBMENU("rainbow", submenu3); + } if(nlinear_filelist > 0){ GLUTADDSUBMENU(_("linear"), submenu1); } + if(ndivergent_filelist > 0){ + GLUTADDSUBMENU("divergent", submenu4); + } if(ncircular_filelist > 0){ - GLUTADDSUBMENU("circular", submenu2); + GLUTADDSUBMENU("circular", submenu2); } if(nrainbow_filelist > 0){ - GLUTADDSUBMENU("rainbow", submenu3); - } - if(ndivergent_filelist > 0){ - GLUTADDSUBMENU("divergent", submenu4); + GLUTADDSUBMENU("deprecated", submenu6); } if(nuser_filelist > 0){ GLUTADDSUBMENU("user", submenu5); @@ -8449,6 +8477,7 @@ void MakeColorbarMenu(int *menuptr, *submenu3ptr = submenu3; *submenu4ptr = submenu4; *submenu5ptr = submenu5; + *submenu6ptr = submenu6; #endif *menuptr = menu; } @@ -8466,8 +8495,10 @@ static int filesdialogmenu = 0, viewdialogmenu = 0, datadialogmenu = 0, windowdi static int labelmenu=0, titlemenu=0, colorbarmenu=0, colorbarsmenu=0, colorbarshademenu, smokecolorbarmenu=0, showhidemenu=0,colorbardigitmenu=0; static int optionmenu=0, rotatetypemenu=0; #ifdef pp_COLORBARS_CSV -static int colorbars_submenu1 = 0, colorbars_submenu2 = 0, colorbars_submenu3 = 0, colorbars_submenu4 = 0, colorbars_submenu5 = 0; -static int smokecolorbars_submenu1=0, smokecolorbars_submenu2 = 0, smokecolorbars_submenu3 = 0, smokecolorbars_submenu4 = 0, smokecolorbars_submenu5 = 0; +static int colorbars_submenu1 = 0, colorbars_submenu2 = 0, colorbars_submenu3 = 0; +static int colorbars_submenu4 = 0, colorbars_submenu5 = 0, colorbars_submenu6 = 0; +static int smokecolorbars_submenu1 = 0, smokecolorbars_submenu2 = 0, smokecolorbars_submenu3 = 0; +static int smokecolorbars_submenu4 = 0, smokecolorbars_submenu5 = 0, smokecolorbars_submenu6 = 0; #endif static int resetmenu=0, defaultviewmenu=0, frameratemenu=0, rendermenu=0, smokeviewinimenu=0, inisubmenu=0, resolutionmultipliermenu=0; static int terrain_geom_showmenu = 0; @@ -10487,7 +10518,8 @@ updatemenu=0; if(nsmoke3dloaded>0||nvolrenderinfo>0){ MakeColorbarMenu(&smokecolorbarmenu, #ifdef pp_COLORBARS_CSV - &smokecolorbars_submenu1, &smokecolorbars_submenu2, &smokecolorbars_submenu3, &smokecolorbars_submenu4, &smokecolorbars_submenu5, + &smokecolorbars_submenu1, &smokecolorbars_submenu2, &smokecolorbars_submenu3, + &smokecolorbars_submenu4, &smokecolorbars_submenu5, &smokecolorbars_submenu6, #endif SmokeColorbarMenu); @@ -10694,7 +10726,8 @@ updatemenu=0; } MakeColorbarMenu(&colorbarsmenu, #ifdef pp_COLORBARS_CSV - &colorbars_submenu1, &colorbars_submenu2, &colorbars_submenu3, &colorbars_submenu4, &colorbars_submenu5, + &colorbars_submenu1, &colorbars_submenu2, &colorbars_submenu3, + &colorbars_submenu4, &colorbars_submenu5, &colorbars_submenu6, #endif ColorbarMenu); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 5297cb7b26..3d45e7a117 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1610,6 +1610,7 @@ SVEXTERN char SVDECL(*colorbars_divergent_dir, NULL); SVEXTERN char SVDECL(*colorbars_circular_dir, NULL); SVEXTERN char SVDECL(*colorbars_userdir, NULL); SVEXTERN int SVDECL(nlinear_filelist,0), SVDECL(ncircular_filelist,0), SVDECL(nrainbow_filelist,0), SVDECL(ndivergent_filelist,0); +SVEXTERN int SVDECL(ndeprecated_filelist, 0); SVEXTERN int SVDECL(nuser_filelist, 0); #endif SVEXTERN char release_title[1024]; From f04aa4c9c603835f903a56e8beb7244a36b2573f Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 23 May 2023 17:10:26 -0400 Subject: [PATCH 05/49] smokeview source: fix compiler warnings --- Source/smokeview/glui_bounds.cpp | 2 ++ Source/smokeview/glui_colorbar.cpp | 11 ++++++++--- Source/smokeview/menus.c | 3 ++- Source/smokeview/startup.c | 2 ++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 237922bcb5..f8301e0683 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4625,7 +4625,9 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg){ if(strcmp(cbi->type, label_arg) != 0)continue; cbi->label_ptr = cbi->label; +#ifdef pp_COLOR_TOGGLE LIST_colorbar2->add_item(i, cbi->label_ptr); +#endif } } diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 7e49f3d77c..c7a86274dc 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -400,7 +400,9 @@ extern "C" void ColorbarCB(int var){ cbi = colorbarinfo + colorbartype; //AddColorbar resizes (and possibly moves) colorbarinfo LISTBOX_colorbar->add_item(colorbartype, cbi->label); LISTBOX_colorbar->set_int_val(colorbartype); +#ifdef pp_COLOR_TOGGLE LISTBOX_colorbar2->add_item(colorbartype, cbi->label); +#endif ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE @@ -471,9 +473,6 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg){ /* ------------------ GluiColorbarSetup ------------------------ */ extern "C" void GluiColorbarSetup(int main_window){ - colorbardata *cbi; - int i; - cb_valmin=0.0; cb_valmax=100.0; cb_val=50.0; @@ -529,9 +528,13 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_column_to_panel(PANEL_cb11r,false); BUTTON_next = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Next"), COLORBAR_NEXT, ColorbarCB); #ifdef pp_COLOR_TOGGLE + int i; + PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar1=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); for(i=0;ilabel_ptr=cbi->label; LISTBOX_colorbar1->add_item(i,cbi->label_ptr); @@ -540,6 +543,8 @@ extern "C" void GluiColorbarSetup(int main_window){ LISTBOX_colorbar2=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 2",&index_colorbar2, COLORBAR_LISTB, ColorbarCB); for(i=0;ilabel_ptr=cbi->label; LISTBOX_colorbar2->add_item(i,cbi->label_ptr); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 0477002524..76e005d737 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8273,9 +8273,10 @@ void MakeColorbarMenu(int *menuptr, int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, int *submenu4ptr, int *submenu5ptr, int *submenu6ptr, #endif void (*CBMenu)(int)){ - int i, ii; + int i; int menu = 0; #ifdef pp_COLORBARS_CSV + int ii; int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0, submenu6=0; char label[256], *labelptr; #endif diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index 3addb83b37..a093bf3690 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -432,6 +432,7 @@ void InitStartupDirs(void){ MKDIR(smokeview_scratchdir); } +#ifdef pp_COLORBARS_CSV NewMemory((void **)&colorbars_userdir, strlen(homedir) + strlen(dirseparator) + strlen(".smokeview") + strlen(dirseparator) + strlen("colorbars") + 1); strcpy(colorbars_userdir, homedir); strcat(colorbars_userdir, dirseparator); @@ -441,6 +442,7 @@ void InitStartupDirs(void){ if(FileExistsOrig(colorbars_userdir) == NO){ FREEMEMORY(colorbars_userdir); } +#endif NewMemory((void **)&smokeviewini_filename, strlen(smokeview_scratchdir)+strlen(dirseparator)+strlen("smokeview.ini")+2); strcpy(smokeviewini_filename, smokeview_scratchdir); From 41586f16557a169a2aec12d57bafa59265bf1b3a Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 24 May 2023 00:28:23 -0400 Subject: [PATCH 06/49] smokeview source: remove a variable from colorbar data structure, change way colorbars are sorted --- Source/smokeview/colortimebar.c | 105 ++++++++++++----------------- Source/smokeview/glui_bounds.cpp | 25 +++---- Source/smokeview/glui_colorbar.cpp | 21 ++---- Source/smokeview/glui_display.cpp | 2 +- Source/smokeview/glui_smoke.cpp | 6 +- Source/smokeview/menus.c | 51 ++++++-------- Source/smokeview/readsmv.c | 1 - Source/smokeview/smokeviewvars.h | 1 - Source/smokeview/startup.c | 1 - Source/smokeview/structures.h | 2 +- 10 files changed, 86 insertions(+), 129 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index fbf348ae43..69a0b8309b 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -168,10 +168,7 @@ void AddColorbar(int icolorbar){ memcpy(cb_to,cb_from,sizeof(colorbardata)); strcpy(cb_to->label,"Copy of "); strcat(cb_to->label,cb_from->label); - cb_to->label_ptr=cb_to->label; - RemapColorbar(cb_to); - } /* ------------------ DrawSelectColorbar ------------------------ */ @@ -1232,7 +1229,6 @@ void InitColorbar(colorbardata *cbptr, char *dir, char *file, char *type){ } strcpy(cbptr->label, file); - cbptr->label_ptr = cbptr->label; cbptr->nodehilight = 0; field1 = strtok(buffer, ","); @@ -1309,24 +1305,15 @@ void RevertColorBar(colorbardata *cbi){ int CompareColorbars(const void *arg1, const void *arg2){ colorbardata *cbi, *cbj; - cbi = *(colorbardata **)arg1; - cbj = *(colorbardata **)arg2; - - return STRCMP(cbi->label_ptr, cbj->label_ptr); + cbi = (colorbardata *)arg1; + cbj = (colorbardata *)arg2; + return STRCMP(cbi->label, cbj->label); } /* ------------------ SortColorBars ------------------------ */ void SortColorBars(void){ - int i; - - FREEMEMORY(colorbars_sorted); - NewMemory((void **)&colorbars_sorted, ncolorbars*sizeof(colorbardata *)); - colorbartype_default = 0; - for(i = 0;i < ncolorbars;i++){ - colorbars_sorted[i] = colorbarinfo + i; - } - qsort((colorbardata *)colorbars_sorted, (size_t)ncolorbars, sizeof(colorbardata *), CompareColorbars); + qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); } /* ------------------ InitDefaultColorbars ------------------------ */ @@ -1369,7 +1356,6 @@ void InitDefaultColorbars(int nini){ strcpy(cbi->label,"Rainbow"); - cbi->label_ptr=cbi->label; cbi->nnodes=5; cbi->nodehilight=0; @@ -1403,7 +1389,6 @@ void InitDefaultColorbars(int nini){ // Rainbow 2 colorbar strcpy(cbi->label,"Rainbow 2"); - cbi->label_ptr=cbi->label; cbi->nnodes=12; cbi->nodehilight=0; @@ -1472,7 +1457,6 @@ void InitDefaultColorbars(int nini){ // yellow/red strcpy(cbi->label,"yellow->red"); - cbi->label_ptr=cbi->label; cbi->nnodes=2; cbi->nodehilight=0; @@ -1491,7 +1475,6 @@ void InitDefaultColorbars(int nini){ // blue/green/red strcpy(cbi->label,"blue->green->red"); - cbi->label_ptr=cbi->label; cbi->nnodes=3; cbi->nodehilight=0; @@ -1515,7 +1498,6 @@ void InitDefaultColorbars(int nini){ // blue/yellow/white strcpy(cbi->label, "blue->yellow->white"); - cbi->label_ptr = cbi->label; cbi->nnodes = 4; cbi->nodehilight = 0; @@ -1548,8 +1530,6 @@ void InitDefaultColorbars(int nini){ // blue->red split strcpy(cbi->label,"blue->red split"); - cbi->label_ptr=cbi->label; - cbi->nnodes=4; cbi->nodehilight=0; @@ -1577,9 +1557,7 @@ void InitDefaultColorbars(int nini){ // black->white - bw_colorbar_index = cbi - colorbarinfo; strcpy(cbi->label,"black->white"); - cbi->label_ptr=cbi->label; cbi->nnodes=2; cbi->nodehilight=0; @@ -1599,7 +1577,6 @@ void InitDefaultColorbars(int nini){ // FED strcpy(cbi->label,"FED"); - cbi->label_ptr=cbi->label; cbi->nnodes=6; cbi->nodehilight=0; @@ -1638,10 +1615,7 @@ void InitDefaultColorbars(int nini){ // fire (original) - fire_colorbar_index=cbi-colorbarinfo; - fire_colorbar=cbi; strcpy(cbi->label,"fire"); - cbi->label_ptr=cbi->label; cbi->nnodes=4; cbi->nodehilight=0; @@ -1670,10 +1644,7 @@ void InitDefaultColorbars(int nini){ // fire 2 - fire_colorbar_index=cbi-colorbarinfo; - fire_colorbar=cbi; strcpy(cbi->label,"fire 2"); - cbi->label_ptr=cbi->label; cbi->nnodes=10; cbi->nodehilight=0; @@ -1732,11 +1703,8 @@ void InitDefaultColorbars(int nini){ // fire 3 - fire_colorbar_index = cbi - colorbarinfo; - fire_colorbar = cbi; strcpy(cbi->label, "fire 3"); strcpy(cbi->type, "original"); - cbi->label_ptr = cbi->label; cbi->nnodes = 4; cbi->nodehilight = 0; @@ -1765,10 +1733,7 @@ void InitDefaultColorbars(int nini){ // cool - fire_colorbar_index = cbi - colorbarinfo; - fire_colorbar = cbi; strcpy(cbi->label, "cool"); - cbi->label_ptr = cbi->label; cbi->nnodes = 7; cbi->nodehilight = 0; @@ -1812,9 +1777,7 @@ void InitDefaultColorbars(int nini){ // fire line (level set) - levelset_colorbar=cbi-colorbarinfo; strcpy(cbi->label,"fire line (level set)"); - cbi->label_ptr=cbi->label; cbi->nnodes=6; cbi->nodehilight=0; @@ -1855,7 +1818,6 @@ void InitDefaultColorbars(int nini){ wallthickness_colorbar=cbi-colorbarinfo; strcpy(cbi->label,"fire line (wall thickness)"); - cbi->label_ptr=cbi->label; cbi->nnodes=4; cbi->nodehilight=0; @@ -1884,10 +1846,7 @@ void InitDefaultColorbars(int nini){ // split - split_colorbar_index = cbi - colorbarinfo; - split_colorbar = cbi; strcpy(cbi->label, "split"); - cbi->label_ptr = cbi->label; cbi->nnodes = 4; cbi->nodehilight = 0; @@ -1906,7 +1865,6 @@ void InitDefaultColorbars(int nini){ // Methanol strcpy(cbi->label, "Methanol"); - cbi->label_ptr = cbi->label; cbi->nnodes = 4; cbi->nodehilight = 0; @@ -1936,7 +1894,6 @@ void InitDefaultColorbars(int nini){ // Propane strcpy(cbi->label, "Propane"); - cbi->label_ptr = cbi->label; cbi->nnodes = 5; cbi->nodehilight = 0; @@ -1970,9 +1927,7 @@ void InitDefaultColorbars(int nini){ // CO2 - co2_colorbar_index = cbi - colorbarinfo; strcpy(cbi->label, "CO2"); - cbi->label_ptr = cbi->label; cbi->nnodes = 3; cbi->nodehilight = 0; @@ -2027,23 +1982,51 @@ void InitDefaultColorbars(int nini){ memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); } SortColorBars(); + + colorbardata *cb; + cb = GetColorbar("Rainbow"); + if(cb != NULL)colorbartype_default = cb - colorbarinfo; + + bw_colorbar_index = -1; + cb = GetColorbar("black->white"); + if(cb != NULL)bw_colorbar_index = cb - colorbarinfo; + + cb = GetColorbar("fire"); + fire_colorbar_index=cb-colorbarinfo; + fire_colorbar=cb; + + cb = GetColorbar("level set"); + levelset_colorbar=cb-colorbarinfo; + + cb = GetColorbar("split"); + split_colorbar=cb; + split_colorbar_index = cb - colorbarinfo; + + cb = GetColorbar("CO2"); + co2_colorbar_index = cb - colorbarinfo; + colorbartype = colorbartype_default; iso_colorbar_index = colorbartype_default; #ifdef pp_COLOR_NEW - if(rainbow_filelist>0){ - int new_rainbow_index = -1; - for(i = 0;i < ncolorbars;i++){ - if(strcmp(colorbarinfo[i].label, "CET-R2.csv")==0)new_rainbow_index = i; - } + int rainbow2_index = -1; + int new_rainbow_index = -1; + int rainbow_index=-1; - if(new_rainbow_index>=0){ - memcpy(colorbarinfo+1, colorbarinfo, sizeof(colorbardata)); - strcpy(colorbarinfo[1].label, "Rainbow(original)"); + rainbow_index = colorbartype_default; - memcpy(colorbarinfo, colorbarinfo + new_rainbow_index, sizeof(colorbardata)); - strcpy(colorbarinfo->label, "Rainbow"); - strcpy(colorbarinfo->type, "rainbow"); - } + cb = GetColorbar("Rainbow 2"); + if(cb != NULL)rainbow2_index = cb - colorbarinfo; + + cb = GetColorbar("CET-R2.csv"); + if(cb != NULL)new_rainbow_index = cb - colorbarinfo; + + if(rainbow_filelist>0&&rainbow2_index>=0&&new_rainbow_index>=0&&rainbow_index>=0){ + memcpy(colorbarinfo + rainbow2_index, colorbarinfo+rainbow_index, sizeof(colorbardata)); + strcpy(colorbarinfo[rainbow2_index].label, "Rainbow(original)"); + + memcpy(colorbarinfo+rainbow_index, colorbarinfo + new_rainbow_index, sizeof(colorbardata)); + strcpy(colorbarinfo[rainbow_index].label, "Rainbow"); + strcpy(colorbarinfo[rainbow_index].type, "rainbow"); } #endif } diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index f8301e0683..7a8d67e16d 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4610,23 +4610,19 @@ extern "C" void UpdateSliceXYZ(void){ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg){ char cbar_type[256]; - int ii; + int i; strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); LIST_cbar->add_item(-1, cbar_type); - for(ii = 0; ii < ncolorbars; ii++){ + for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; - int i; - - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + cbi = colorbarinfo + i; if(strcmp(cbi->type, label_arg) != 0)continue; - cbi->label_ptr = cbi->label; #ifdef pp_COLOR_TOGGLE - LIST_colorbar2->add_item(i, cbi->label_ptr); + LIST_colorbar2->add_item(i, cbi->label); #endif } } @@ -4983,8 +4979,7 @@ extern "C" void GluiBoundsSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo+i; - cbi->label_ptr = cbi->label; - LIST_iso_colorbar->add_item(i, cbi->label_ptr); + LIST_iso_colorbar->add_item(i, cbi->label); } LIST_iso_colorbar->set_int_val(iso_colorbar_index); IsoBoundCB(ISO_COLORBAR_LIST); @@ -5454,7 +5449,7 @@ extern "C" void GluiBoundsSetup(int main_window){ AddColorbarList(LIST_colorbar2, "deprecated"); AddColorbarList(LIST_colorbar2, "user"); - LIST_colorbar2->set_int_val(colorbartype); + LIST_colorbar2->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Previous"), COLORBAR_LIST2_PREV, SliceBoundCB); #ifdef pp_COLOR_TOGGLE @@ -5464,8 +5459,7 @@ extern "C" void GluiBoundsSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo + i; - cbi->label_ptr = cbi->label; - LISTBOX_colorbar1a->add_item(i, cbi->label_ptr); + LISTBOX_colorbar1a->add_item(i, cbi->label); } LISTBOX_colorbar1a->set_int_val(index_colorbar1); @@ -5474,8 +5468,7 @@ extern "C" void GluiBoundsSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo + i; - cbi->label_ptr = cbi->label; - LISTBOX_colorbar2a->add_item(i, cbi->label_ptr); + LISTBOX_colorbar2a->add_item(i, cbi->label); } LISTBOX_colorbar2a->set_int_val(index_colorbar2); @@ -6442,7 +6435,7 @@ extern "C" void SliceBoundCB(int var){ UpdateColorbarList(); ColorbarMenu(selectedcolorbar_index); ColorbarGlobal2Local(); - if(selectedcolorbar_index2 == bw_colorbar_index){ + if(selectedcolorbar_index2 == bw_colorbar_index&&bw_colorbar_index>=0){ setbwdata = 1; ColorbarMenu(bw_colorbar_index); } diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index c7a86274dc..3cfb4cbb97 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -426,7 +426,6 @@ extern "C" void ColorbarCB(int var){ cb_to = colorbarinfo + i; cb_from = cb_to + 1; memcpy(cb_to, cb_from, sizeof(colorbardata)); - cb_to->label_ptr = cb_to->label; } for(i = colorbartype;i < ncolorbars;i++){ LISTBOX_colorbar->delete_item(i); @@ -434,7 +433,7 @@ extern "C" void ColorbarCB(int var){ ncolorbars--; for(i = colorbartype;i < ncolorbars;i++){ cbi = colorbarinfo + i; - LISTBOX_colorbar->add_item(i, cbi->label_ptr); + LISTBOX_colorbar->add_item(i, cbi->label); } if(colorbartype == ncolorbars)colorbartype--; LISTBOX_colorbar->set_int_val(0); @@ -451,22 +450,18 @@ extern "C" void ColorbarCB(int var){ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg){ char cbar_type[256]; - int ii; + int i; strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); LIST_cbar->add_item(-1, cbar_type); - for(ii = 0; ii < ncolorbars; ii++){ + for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; - int i; - - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + cbi = colorbarinfo + i; if(strcmp(cbi->type, label_arg) != 0)continue; - cbi->label_ptr = cbi->label; - LIST_cbar->add_item(i, cbi->label_ptr); + LIST_cbar->add_item(i, cbi->label); } } @@ -536,8 +531,7 @@ extern "C" void GluiColorbarSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo + i; - cbi->label_ptr=cbi->label; - LISTBOX_colorbar1->add_item(i,cbi->label_ptr); + LISTBOX_colorbar1->add_item(i,cbi->label); } LISTBOX_colorbar1->set_int_val(index_colorbar1); @@ -546,8 +540,7 @@ extern "C" void GluiColorbarSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo + i; - cbi->label_ptr=cbi->label; - LISTBOX_colorbar2->add_item(i,cbi->label_ptr); + LISTBOX_colorbar2->add_item(i,cbi->label); } LISTBOX_colorbar2->set_int_val(index_colorbar2); diff --git a/Source/smokeview/glui_display.cpp b/Source/smokeview/glui_display.cpp index ff42dd16d5..4d10049ef7 100644 --- a/Source/smokeview/glui_display.cpp +++ b/Source/smokeview/glui_display.cpp @@ -1242,7 +1242,7 @@ extern "C" void LabelsCB(int var){ InitRGB(); break; case LABELS_shadedata: - if(setbwdata==1){ + if(setbwdata==1 && bw_colorbar_index>=0){ colorbartype_save=colorbartype; ColorbarMenu(bw_colorbar_index); } diff --git a/Source/smokeview/glui_smoke.cpp b/Source/smokeview/glui_smoke.cpp index ffce715e0a..9d5c70e53a 100644 --- a/Source/smokeview/glui_smoke.cpp +++ b/Source/smokeview/glui_smoke.cpp @@ -438,8 +438,7 @@ extern "C" void Glui3dSmokeSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo + i; - cbi->label_ptr = cbi->label; - LISTBOX_smoke_colorbar->add_item(i, cbi->label_ptr); + LISTBOX_smoke_colorbar->add_item(i, cbi->label); } LISTBOX_smoke_colorbar->set_int_val(fire_colorbar_index); glui_3dsmoke->add_column_to_panel(PANEL_colormap3,false); @@ -520,8 +519,7 @@ extern "C" void Glui3dSmokeSetup(int main_window){ colorbardata *cbi; cbi = colorbarinfo+i; - cbi->label_ptr = cbi->label; - LISTBOX_co2_colorbar->add_item(i, cbi->label_ptr); + LISTBOX_co2_colorbar->add_item(i, cbi->label); } LISTBOX_co2_colorbar->set_int_val(co2_colorbar_index); } diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 76e005d737..d4f931c3d0 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -985,7 +985,7 @@ void ColorbarMenu(int value){ break; case COLORBAR_TOGGLE_BW_DATA: setbwdata = 1 - setbwdata; - if(setbwdata==1){ + if(setbwdata==1&&bw_colorbar_index>=0){ colorbartype_save=colorbartype; ColorbarMenu(bw_colorbar_index); } @@ -1045,7 +1045,7 @@ void ColorbarMenu(int value){ UpdateCurrentColorbar(colorbarinfo+colorbartype); UpdateColorbarType(); UpdateColorbarList2(); - if(colorbartype == bw_colorbar_index){ + if(colorbartype == bw_colorbar_index&&bw_colorbar_index>=0){ setbwdata = 1; } else{ @@ -8276,7 +8276,6 @@ void MakeColorbarMenu(int *menuptr, int i; int menu = 0; #ifdef pp_COLORBARS_CSV - int ii; int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0, submenu6=0; char label[256], *labelptr; #endif @@ -8284,13 +8283,12 @@ void MakeColorbarMenu(int *menuptr, #ifdef pp_COLORBARS_CSV if(nlinear_filelist > 0){ CREATEMENU(submenu1, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "linear") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "linear_"); strcpy(ccolorbarmenu, " "); @@ -8309,13 +8307,12 @@ void MakeColorbarMenu(int *menuptr, } if(ncircular_filelist > 0){ CREATEMENU(submenu2, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "circular") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "circular_"); strcpy(ccolorbarmenu, " "); @@ -8334,13 +8331,12 @@ void MakeColorbarMenu(int *menuptr, } if(nrainbow_filelist > 0){ CREATEMENU(submenu3, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "rainbow") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "rainbow_"); strcpy(ccolorbarmenu, " "); @@ -8359,13 +8355,12 @@ void MakeColorbarMenu(int *menuptr, } if(ndivergent_filelist > 0){ CREATEMENU(submenu4, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "divergent") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "divergent_"); strcpy(ccolorbarmenu, " "); @@ -8384,13 +8379,12 @@ void MakeColorbarMenu(int *menuptr, } { CREATEMENU(submenu6, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "deprecated") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "deprecated_"); strcpy(ccolorbarmenu, " "); @@ -8409,13 +8403,12 @@ void MakeColorbarMenu(int *menuptr, } if(nuser_filelist > 0){ CREATEMENU(submenu5, CBMenu); - colorbardata *cbi; char ccolorbarmenu[256]; - for(ii = 0; ii < ncolorbars; ii++){ - cbi = colorbars_sorted[ii]; - i = cbi - colorbarinfo; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "user") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "user_"); strcpy(ccolorbarmenu, " "); @@ -8436,12 +8429,12 @@ void MakeColorbarMenu(int *menuptr, CREATEMENU(menu, CBMenu); { - colorbardata *cbi; char ccolorbarmenu[256]; for(i = 0; i < ncolorbars; i++){ - cbi = colorbarinfo + i; + colorbardata *cbi; + cbi = colorbarinfo + i; if(strcmp(cbi->type, "original") != 0)continue; strcpy(ccolorbarmenu, " "); if(colorbartype == i){ diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index fe6164854b..6bde43c37e 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -14889,7 +14889,6 @@ int ReadIni2(char *inifile, int localfile){ cbi->nodehilight = 0; } - cbi->label_ptr = cbi->label; for(i = 0; innodes; i++){ int icbar; int nn; diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 3d45e7a117..65e2eaae5a 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1884,7 +1884,6 @@ SVEXTERN int showall_textures; SVEXTERN int SVDECL(enable_texture_lighting,0); SVEXTERN int SVDECL(ncolorbars,0); -SVEXTERN colorbardata SVDECL(**colorbars_sorted, NULL); SVEXTERN int ndefaultcolorbars; SVEXTERN colorbardata SVDECL(*colorbarinfo,NULL),SVDECL(*current_colorbar,NULL); diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index a093bf3690..4d89d2b147 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -1705,7 +1705,6 @@ void InitVars(void){ showgluitrainer=0; UpdateCurrentColorbar(colorbarinfo); colorbartype_save=colorbartype; - colorbartype_default=colorbartype; colorbarpoint=0; vectorspresent=0; diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index 119f7d7649..b8e53b3d43 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -283,7 +283,7 @@ typedef struct _treedata { /* -------------------------- colorbardata ------------------------------------ */ typedef struct _colorbardata { - char label[1024], *label_ptr ; // menu label + char label[1024]; // menu label char type[256]; int nnodes,nodehilight,nsplits; unsigned char rgb_node_orig[3*1024], rgb_node[3*1024]; From db34d7f0215413a46c6cb98e0e19991c299b03e4 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 24 May 2023 10:30:05 -0400 Subject: [PATCH 07/49] smokeview source: fix to colorbar dialog Next/Previsous buttons --- Source/smokeview/colortimebar.c | 72 ++++++++++++++++++------------ Source/smokeview/glui_bounds.cpp | 21 ++++----- Source/smokeview/glui_colorbar.cpp | 21 ++++----- Source/smokeview/menus.c | 14 +++--- Source/smokeview/smokeviewvars.h | 2 + Source/smokeview/structures.h | 11 ++++- 6 files changed, 84 insertions(+), 57 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 69a0b8309b..a83593c3f9 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1208,7 +1208,7 @@ void RemapColorbarType(int cb_oldtype, char *cb_newname){ #ifdef pp_COLORBARS_CSV /* ------------------ InitColorbar ------------------------ */ -void InitColorbar(colorbardata *cbptr, char *dir, char *file, char *type){ +void InitColorbar(colorbardata *cbptr, char *dir, char *file, char *ctype, int type){ FILE *stream; int i,n=0; char fullfile[1024]; @@ -1268,7 +1268,8 @@ void InitColorbar(colorbardata *cbptr, char *dir, char *file, char *type){ cbptr->rgb_node[3 * i + 1] = (unsigned char)CLAMP(rgbscopy[1], 0, 255); cbptr->rgb_node[3 * i + 2] = (unsigned char)CLAMP(rgbscopy[2], 0, 255); cbptr->index_node[i] = i; - strcpy(cbptr->type, type); + strcpy(cbptr->ctype, ctype); + cbptr->type = type; rgbscopy += 3; } cbptr->nnodes = n; @@ -1307,12 +1308,28 @@ int CompareColorbars(const void *arg1, const void *arg2){ cbi = (colorbardata *)arg1; cbj = (colorbardata *)arg2; + if(cbi->typetype)return -1; + if(cbi->type>cbj->type)return 1; return STRCMP(cbi->label, cbj->label); } /* ------------------ SortColorBars ------------------------ */ void SortColorBars(void){ + int i; + + for(i=0; itype = CB_OTHER; + if(strcmp(cbi->ctype, "rainbow")==0)cbi->type = CB_RAINBOW; + if(strcmp(cbi->ctype, "linear")==0)cbi->type = CB_LINEAR; + if(strcmp(cbi->ctype, "divergent")==0)cbi->type = CB_DIVERGENT; + if(strcmp(cbi->ctype, "circular")==0)cbi->type = CB_CIRCULAR; + if(strcmp(cbi->ctype, "deprecated")==0)cbi->type = CB_DEPRECATED; + if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; + } qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); } @@ -1383,7 +1400,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12]=255; cbi->rgb_node[13]=0; cbi->rgb_node[14]=0; - strcpy(cbi->type, "rainbow"); + strcpy(cbi->ctype, "rainbow"); cbi++; // Rainbow 2 colorbar @@ -1451,7 +1468,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[33]=215; cbi->rgb_node[34]=5; cbi->rgb_node[35]=13; - strcpy(cbi->type, "rainbow"); + strcpy(cbi->ctype, "rainbow"); cbi++; // yellow/red @@ -1469,7 +1486,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3]=255; cbi->rgb_node[4]=0; cbi->rgb_node[5]=0; - strcpy(cbi->type, "linear"); + strcpy(cbi->ctype, "linear"); cbi++; // blue/green/red @@ -1492,7 +1509,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6]=255; cbi->rgb_node[7]=0; cbi->rgb_node[8]=0; - strcpy(cbi->type, "deprecated"); + strcpy(cbi->ctype, "deprecated"); cbi++; // blue/yellow/white @@ -1524,7 +1541,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "deprecated"); + strcpy(cbi->ctype, "deprecated"); cbi++; // blue->red split @@ -1552,7 +1569,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=0; cbi->rgb_node[11]=0; - strcpy(cbi->type, "divergent"); + strcpy(cbi->ctype, "divergent"); cbi++; // black->white @@ -1571,7 +1588,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3] =255; cbi->rgb_node[4]=255; cbi->rgb_node[5]=255; - strcpy(cbi->type, "linear"); + strcpy(cbi->ctype, "linear"); cbi++; // FED @@ -1610,7 +1627,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=255; cbi->rgb_node[16]=155; cbi->rgb_node[17]=0; - strcpy(cbi->type, "blocked"); + strcpy(cbi->ctype, "blocked"); cbi++; // fire (original) @@ -1639,7 +1656,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=128; cbi->rgb_node[11]=0; - strcpy(cbi->type, "divergent"); + strcpy(cbi->ctype, "divergent"); cbi++; // fire 2 @@ -1698,13 +1715,12 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[27]=255; cbi->rgb_node[28]=255; cbi->rgb_node[29]=238; - strcpy(cbi->type, "divergent"); + strcpy(cbi->ctype, "divergent"); cbi++; // fire 3 strcpy(cbi->label, "fire 3"); - strcpy(cbi->type, "original"); cbi->nnodes = 4; cbi->nodehilight = 0; @@ -1728,7 +1744,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "linear"); + strcpy(cbi->ctype, "linear"); cbi++; // cool @@ -1772,7 +1788,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[18] = 255; cbi->rgb_node[19] = 255; cbi->rgb_node[20] = 255; - strcpy(cbi->type, "deprecated"); + strcpy(cbi->ctype, "deprecated"); cbi++; // fire line (level set) @@ -1811,7 +1827,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=0; cbi->rgb_node[16]=1; cbi->rgb_node[17]=2; - strcpy(cbi->type, "blocked"); + strcpy(cbi->ctype, "blocked"); cbi++; // fire line (wall thickness) @@ -1841,7 +1857,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=253; cbi->rgb_node[10]=254; cbi->rgb_node[11]=255; - strcpy(cbi->type, "blocked"); + strcpy(cbi->ctype, "blocked"); cbi++; // split @@ -1858,7 +1874,7 @@ void InitDefaultColorbars(int nini){ for(i = 0; i < 12; i++){ cbi->rgb_node[i] = colorsplit[i]; } - strcpy(cbi->type, "divergent"); + strcpy(cbi->ctype, "divergent"); cbi++; @@ -1888,7 +1904,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->type, "divergent"); + strcpy(cbi->ctype, "divergent"); cbi++; // Propane @@ -1922,7 +1938,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12] = 255; cbi->rgb_node[13] = 255; cbi->rgb_node[14] = 255; - strcpy(cbi->type, "linear"); + strcpy(cbi->ctype, "linear"); cbi++; // CO2 @@ -1946,28 +1962,28 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6] = 255; cbi->rgb_node[7] = 255; cbi->rgb_node[8] = 255; - strcpy(cbi->type, "linear"); + strcpy(cbi->ctype, "linear"); cbi++; #ifdef pp_COLORBARS_CSV for(i = 0;i < nlinear_filelist;i++){ - InitColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear"); + InitColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear", CB_LINEAR); cbi++; } for(i = 0;i < ncircular_filelist;i++){ - InitColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular"); + InitColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular", CB_CIRCULAR); cbi++; } for(i = 0;i < nrainbow_filelist;i++){ - InitColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow"); + InitColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow", CB_RAINBOW); cbi++; } for(i = 0;i < ndivergent_filelist;i++){ - InitColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent"); + InitColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent", CB_DIVERGENT); cbi++; } for(i = 0;i < nuser_filelist;i++){ - InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user"); + InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); cbi++; } #endif @@ -1982,7 +1998,7 @@ void InitDefaultColorbars(int nini){ memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); } SortColorBars(); - + colorbardata *cb; cb = GetColorbar("Rainbow"); if(cb != NULL)colorbartype_default = cb - colorbarinfo; @@ -2026,7 +2042,7 @@ void InitDefaultColorbars(int nini){ memcpy(colorbarinfo+rainbow_index, colorbarinfo + new_rainbow_index, sizeof(colorbardata)); strcpy(colorbarinfo[rainbow_index].label, "Rainbow"); - strcpy(colorbarinfo[rainbow_index].type, "rainbow"); + strcpy(colorbarinfo[rainbow_index].ctype, "rainbow"); } #endif } diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 7a8d67e16d..694d3ff3ff 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4608,7 +4608,7 @@ extern "C" void UpdateSliceXYZ(void){ /* ------------------ AddColorbarList ------------------------ */ -void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg){ +void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ char cbar_type[256]; int i; @@ -4620,9 +4620,10 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg){ colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, label_arg) != 0)continue; + if(strcmp(cbi->ctype, label_arg) != 0)continue; #ifdef pp_COLOR_TOGGLE LIST_colorbar2->add_item(i, cbi->label); + *max_index = MAX(i, *max_index); #endif } } @@ -5442,12 +5443,12 @@ extern "C" void GluiBoundsSetup(int main_window){ selectedcolorbar_index2 = -1; LIST_colorbar2 = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); - AddColorbarList(LIST_colorbar2, "rainbow"); - AddColorbarList(LIST_colorbar2, "linear"); - AddColorbarList(LIST_colorbar2, "divergent"); - AddColorbarList(LIST_colorbar2, "circular"); - AddColorbarList(LIST_colorbar2, "deprecated"); - AddColorbarList(LIST_colorbar2, "user"); + AddColorbarList(LIST_colorbar2, "rainbow", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, "linear", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, "divergent", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, "circular", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, "deprecated", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, "user", &max_LIST_colorbar2); LIST_colorbar2->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); @@ -6296,8 +6297,8 @@ extern "C" void SliceBoundCB(int var){ case COLORBAR_LIST2_PREV: if(var==COLORBAR_LIST2_NEXT)selectedcolorbar_index2++; if(var==COLORBAR_LIST2_PREV)selectedcolorbar_index2--; - if(selectedcolorbar_index2<0)selectedcolorbar_index2=ncolorbars-1; - if(selectedcolorbar_index2>ncolorbars-1)selectedcolorbar_index2=0; + if(selectedcolorbar_index2<0)selectedcolorbar_index2= max_LIST_colorbar2; + if(selectedcolorbar_index2> max_LIST_colorbar2)selectedcolorbar_index2=0; LIST_colorbar2->set_int_val(selectedcolorbar_index2); SliceBoundCB(COLORBAR_LIST2); break; diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 3cfb4cbb97..9442fa4ccd 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -369,8 +369,8 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_NEXT: if(var==COLORBAR_PREV)colorbartype--; if(var==COLORBAR_NEXT)colorbartype++; - if(colorbartype<0)colorbartype=ncolorbars-1; - if(colorbartype>ncolorbars-1)colorbartype=0; + if(colorbartype<0)colorbartype= max_LIST_colorbar; + if(colorbartype> max_LIST_colorbar)colorbartype=0; LISTBOX_colorbar->set_int_val(colorbartype); ColorbarCB(COLORBAR_LIST); break; @@ -448,7 +448,7 @@ extern "C" void ColorbarCB(int var){ /* ------------------ AddColorbarList2 ------------------------ */ -void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg){ +void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ char cbar_type[256]; int i; @@ -460,8 +460,9 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg){ colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, label_arg) != 0)continue; + if(strcmp(cbi->ctype, label_arg) != 0)continue; LIST_cbar->add_item(i, cbi->label); + *max_index = MAX(i, *max_index); } } @@ -507,12 +508,12 @@ extern "C" void GluiColorbarSetup(int main_window){ selectedcolorbar_index=-1; LISTBOX_colorbar=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); - AddColorbarList2(LISTBOX_colorbar, "rainbow"); - AddColorbarList2(LISTBOX_colorbar, "linear"); - AddColorbarList2(LISTBOX_colorbar, "divergent"); - AddColorbarList2(LISTBOX_colorbar, "circular"); - AddColorbarList2(LISTBOX_colorbar, "deprecated"); - AddColorbarList2(LISTBOX_colorbar, "user"); + AddColorbarList2(LISTBOX_colorbar, "rainbow", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, "linear", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, "divergent", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, "circular", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, "deprecated", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, "user", &max_LIST_colorbar); LISTBOX_colorbar->set_int_val(colorbartype); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index d4f931c3d0..3e47df1fa1 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8289,7 +8289,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "linear") != 0)continue; + if(strcmp(cbi->ctype, "linear") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "linear_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8313,7 +8313,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "circular") != 0)continue; + if(strcmp(cbi->ctype, "circular") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "circular_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8337,7 +8337,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "rainbow") != 0)continue; + if(strcmp(cbi->ctype, "rainbow") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "rainbow_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8361,7 +8361,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "divergent") != 0)continue; + if(strcmp(cbi->ctype, "divergent") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "divergent_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8385,7 +8385,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "deprecated") != 0)continue; + if(strcmp(cbi->ctype, "deprecated") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "deprecated_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8409,7 +8409,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "user") != 0)continue; + if(strcmp(cbi->ctype, "user") != 0)continue; labelptr = GetLabelPtr(label, cbi->label, "user_"); strcpy(ccolorbarmenu, " "); if(colorbartype == i){ @@ -8435,7 +8435,7 @@ void MakeColorbarMenu(int *menuptr, colorbardata *cbi; cbi = colorbarinfo + i; - if(strcmp(cbi->type, "original") != 0)continue; + if(strcmp(cbi->ctype, "original") != 0)continue; strcpy(ccolorbarmenu, " "); if(colorbartype == i){ strcat(ccolorbarmenu, "*"); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 65e2eaae5a..34a4a79c13 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -535,6 +535,8 @@ SVEXTERN histogramdata SVDECL(*full_part_histogram, NULL); SVEXTERN histogramdata SVDECL(*full_plot3D_histograms, NULL); SVEXTERN int SVDECL(update_loadall_textures, 1); +SVEXTERN int SVDECL(max_LIST_colorbar2, 0); +SVEXTERN int SVDECL(max_LIST_colorbar, 0); #ifdef pp_COLOR_CIE SVEXTERN int SVDECL(interp_cielab, 1); SVEXTERN int SVDECL(update_colorbar_orig, 0); diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index b8e53b3d43..5909c30da9 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -282,10 +282,17 @@ typedef struct _treedata { /* -------------------------- colorbardata ------------------------------------ */ +#define CB_RAINBOW 0 +#define CB_LINEAR 1 +#define CB_DIVERGENT 2 +#define CB_CIRCULAR 3 +#define CB_DEPRECATED 4 +#define CB_USER 5 +#define CB_OTHER 6 typedef struct _colorbardata { char label[1024]; // menu label - char type[256]; - int nnodes,nodehilight,nsplits; + char ctype[256]; + int nnodes,nodehilight,nsplits,type; unsigned char rgb_node_orig[3*1024], rgb_node[3*1024]; unsigned char alpha[1024]; unsigned char index_node[1024]; // colorbar index From a0f0ed73478c881babe2b78bf3f41482240c8eca Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 24 May 2023 17:12:34 -0400 Subject: [PATCH 08/49] smokeview source: don't output a colorbar sub-directory if there arn't any colorbars in it --- Source/smokeview/colortimebar.c | 16 +++++++++++----- Source/smokeview/glui_bounds.cpp | 11 ++++++++++- Source/smokeview/glui_colorbar.cpp | 11 ++++++++++- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index a83593c3f9..8be0203f9d 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -2037,12 +2037,18 @@ void InitDefaultColorbars(int nini){ if(cb != NULL)new_rainbow_index = cb - colorbarinfo; if(rainbow_filelist>0&&rainbow2_index>=0&&new_rainbow_index>=0&&rainbow_index>=0){ - memcpy(colorbarinfo + rainbow2_index, colorbarinfo+rainbow_index, sizeof(colorbardata)); - strcpy(colorbarinfo[rainbow2_index].label, "Rainbow(original)"); + colorbardata *cb_rainbow, *cb_rainbow2, *cb_new_rainbow; - memcpy(colorbarinfo+rainbow_index, colorbarinfo + new_rainbow_index, sizeof(colorbardata)); - strcpy(colorbarinfo[rainbow_index].label, "Rainbow"); - strcpy(colorbarinfo[rainbow_index].ctype, "rainbow"); + cb_rainbow = colorbarinfo + rainbow_index; + cb_rainbow2 = colorbarinfo + rainbow2_index; + cb_new_rainbow = colorbarinfo + new_rainbow_index; + + strcpy(cb_new_rainbow->label, "Rainbow"); + strcpy(cb_new_rainbow->ctype, "rainbow"); + + strcpy(cb_rainbow->ctype, "deprecated"); + strcpy(cb_rainbow2->ctype, "deprecated"); + SortColorBars(); } #endif } diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 694d3ff3ff..58df67eaa2 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4610,8 +4610,17 @@ extern "C" void UpdateSliceXYZ(void){ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ char cbar_type[256]; - int i; + int i, nitems = 0; + + + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; + if(strcmp(cbi->ctype, label_arg) != 0)continue; + nitems++; + } + if(nitems == 0)return; strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 9442fa4ccd..e5cf2a16fc 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -450,8 +450,17 @@ extern "C" void ColorbarCB(int var){ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ char cbar_type[256]; - int i; + int i, nitems=0; + + + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + cbi = colorbarinfo + i; + if(strcmp(cbi->ctype, label_arg) != 0)continue; + nitems++; + } + if(nitems == 0)return; strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); From 06bd7a2a2751d05114df586e7bacf394d57b313b Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 24 May 2023 20:08:36 -0400 Subject: [PATCH 09/49] smokeview source: simplify colorbar menu coding --- Source/smokeview/colortimebar.c | 45 +++--- Source/smokeview/menus.c | 252 +++++++++----------------------- Source/smokeview/structures.h | 3 +- 3 files changed, 101 insertions(+), 199 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 8be0203f9d..6afe5a1f38 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1328,6 +1328,7 @@ void SortColorBars(void){ if(strcmp(cbi->ctype, "divergent")==0)cbi->type = CB_DIVERGENT; if(strcmp(cbi->ctype, "circular")==0)cbi->type = CB_CIRCULAR; if(strcmp(cbi->ctype, "deprecated")==0)cbi->type = CB_DEPRECATED; + if(strcmp(cbi->ctype, "original") == 0)cbi->type = CB_ORIGINAL; if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; } qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); @@ -1400,7 +1401,11 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12]=255; cbi->rgb_node[13]=0; cbi->rgb_node[14]=0; +#ifdef pp_COLOR_NEW + strcpy(cbi->ctype, "original"); +#else strcpy(cbi->ctype, "rainbow"); +#endif cbi++; // Rainbow 2 colorbar @@ -1468,7 +1473,11 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[33]=215; cbi->rgb_node[34]=5; cbi->rgb_node[35]=13; +#ifdef pp_COLOR_NEW + strcpy(cbi->ctype, "original"); +#else strcpy(cbi->ctype, "rainbow"); +#endif cbi++; // yellow/red @@ -1509,7 +1518,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6]=255; cbi->rgb_node[7]=0; cbi->rgb_node[8]=0; - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; // blue/yellow/white @@ -1541,7 +1550,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; // blue->red split @@ -1569,7 +1578,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=0; cbi->rgb_node[11]=0; - strcpy(cbi->ctype, "divergent"); + strcpy(cbi->ctype, "original"); cbi++; // black->white @@ -1588,7 +1597,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3] =255; cbi->rgb_node[4]=255; cbi->rgb_node[5]=255; - strcpy(cbi->ctype, "linear"); + strcpy(cbi->ctype, "original"); cbi++; // FED @@ -1627,7 +1636,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=255; cbi->rgb_node[16]=155; cbi->rgb_node[17]=0; - strcpy(cbi->ctype, "blocked"); + strcpy(cbi->ctype, "original"); cbi++; // fire (original) @@ -1656,7 +1665,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=128; cbi->rgb_node[11]=0; - strcpy(cbi->ctype, "divergent"); + strcpy(cbi->ctype, "original"); cbi++; // fire 2 @@ -1715,7 +1724,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[27]=255; cbi->rgb_node[28]=255; cbi->rgb_node[29]=238; - strcpy(cbi->ctype, "divergent"); + strcpy(cbi->ctype, "original"); cbi++; // fire 3 @@ -1744,7 +1753,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->ctype, "linear"); + strcpy(cbi->ctype, "original"); cbi++; // cool @@ -1827,7 +1836,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[15]=0; cbi->rgb_node[16]=1; cbi->rgb_node[17]=2; - strcpy(cbi->ctype, "blocked"); + strcpy(cbi->ctype, "original"); cbi++; // fire line (wall thickness) @@ -1857,7 +1866,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=253; cbi->rgb_node[10]=254; cbi->rgb_node[11]=255; - strcpy(cbi->ctype, "blocked"); + strcpy(cbi->ctype, "original"); cbi++; // split @@ -1874,7 +1883,7 @@ void InitDefaultColorbars(int nini){ for(i = 0; i < 12; i++){ cbi->rgb_node[i] = colorsplit[i]; } - strcpy(cbi->ctype, "divergent"); + strcpy(cbi->ctype, "original"); cbi++; @@ -1904,7 +1913,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->ctype, "divergent"); + strcpy(cbi->ctype, "original"); cbi++; // Propane @@ -1938,7 +1947,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12] = 255; cbi->rgb_node[13] = 255; cbi->rgb_node[14] = 255; - strcpy(cbi->ctype, "linear"); + strcpy(cbi->ctype, "original"); cbi++; // CO2 @@ -1962,20 +1971,20 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6] = 255; cbi->rgb_node[7] = 255; cbi->rgb_node[8] = 255; - strcpy(cbi->ctype, "linear"); + strcpy(cbi->ctype, "original"); cbi++; #ifdef pp_COLORBARS_CSV for(i = 0;i < nlinear_filelist;i++){ - InitColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear", CB_LINEAR); + InitColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear", CB_LINEAR); cbi++; } for(i = 0;i < ncircular_filelist;i++){ - InitColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular", CB_CIRCULAR); + InitColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular", CB_CIRCULAR); cbi++; } for(i = 0;i < nrainbow_filelist;i++){ - InitColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow", CB_RAINBOW); + InitColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow", CB_RAINBOW); cbi++; } for(i = 0;i < ndivergent_filelist;i++){ @@ -1983,7 +1992,7 @@ void InitDefaultColorbars(int nini){ cbi++; } for(i = 0;i < nuser_filelist;i++){ - InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); + InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); cbi++; } #endif diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 3e47df1fa1..8e3c518407 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8258,176 +8258,89 @@ void InitPatchSubMenus(int **loadsubpatchmenu_sptr, int **nsubpatchmenus_sptr){ } } -/* ------------------ GetLabelPtr ------------------------ */ +/* ------------------ MakeSubColorbarMenu ------------------------ */ -char *GetLabelPtr(char *label, char *clabel, char *type){ - strcpy(label, clabel); - // if(strncmp(label, type, strlen(type))==0)return label + strlen(type); - return label; -} - -/* ------------------ InitMenus ------------------------ */ - -void MakeColorbarMenu(int *menuptr, -#ifdef pp_COLORBARS_CSV - int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, int *submenu4ptr, int *submenu5ptr, int *submenu6ptr, -#endif - void (*CBMenu)(int)){ - int i; - int menu = 0; -#ifdef pp_COLORBARS_CSV - int submenu1=0, submenu2=0, submenu3=0, submenu4=0, submenu5=0, submenu6=0; - char label[256], *labelptr; -#endif +int MakeSubColorbarMenu(int *submenuptr, int *nmenusptr, char *ctype, void (*CBMenu)(int)){ + int i, nitems=0, submenu, nmenus; -#ifdef pp_COLORBARS_CSV - if(nlinear_filelist > 0){ - CREATEMENU(submenu1, CBMenu); - char ccolorbarmenu[256]; - - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "linear") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "linear_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); - } + cbi = colorbarinfo + i; + if(strcmp(cbi->ctype, ctype) != 0)continue; + nitems++; + break; } - if(ncircular_filelist > 0){ - CREATEMENU(submenu2, CBMenu); - char ccolorbarmenu[256]; + if(nitems == 0)return 0; - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; + nmenus = *nmenusptr; + CREATEMENU(submenu, CBMenu); + *nmenusptr = nmenus; + *submenuptr = submenu; + char ccolorbarmenu[256]; - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "circular") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "circular_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); - } - } - if(nrainbow_filelist > 0){ - CREATEMENU(submenu3, CBMenu); - char ccolorbarmenu[256]; - - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "rainbow") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "rainbow_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); + cbi = colorbarinfo + i; + if(strcmp(cbi->ctype, ctype) != 0)continue; + strcpy(ccolorbarmenu, ""); + if(colorbartype == i){ + strcat(ccolorbarmenu, "*"); + strcat(ccolorbarmenu, cbi->label); } - } - if(ndivergent_filelist > 0){ - CREATEMENU(submenu4, CBMenu); - char ccolorbarmenu[256]; - - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "divergent") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "divergent_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); - } - } - { - CREATEMENU(submenu6, CBMenu); - char ccolorbarmenu[256]; - - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "deprecated") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "deprecated_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); + else{ + strcat(ccolorbarmenu, cbi->label); } + char *ext; + ext = strrchr(ccolorbarmenu, '.'); + if(ext != NULL)*ext = 0; + glutAddMenuEntry(ccolorbarmenu, i); } - if(nuser_filelist > 0){ - CREATEMENU(submenu5, CBMenu); - char ccolorbarmenu[256]; + return 1; +} - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; +/* ------------------ MakeColorbarMenu ------------------------ */ - cbi = colorbarinfo + i; - if(strcmp(cbi->ctype, "user") != 0)continue; - labelptr = GetLabelPtr(label, cbi->label, "user_"); - strcpy(ccolorbarmenu, " "); - if(colorbartype == i){ - strcat(ccolorbarmenu, "*"); - strcat(ccolorbarmenu, labelptr); - } - else{ - strcat(ccolorbarmenu, labelptr); - } - char *ext; - ext = strrchr(ccolorbarmenu, '.'); - if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); - } - } +void MakeColorbarMenu(int *menuptr, +#ifdef pp_COLORBARS_CSV + int *submenu1ptr, int *submenu2ptr, int *submenu3ptr, + int *submenu4ptr, int *submenu5ptr, int *submenu6ptr, + int *submenu7ptr, +#endif + void (*CBMenu)(int)){ + int menu = 0; +#ifdef pp_COLORBARS_CSV + int submenu1 = 0, submenu2 = 0, submenu3 = 0; + int submenu4 = 0, submenu5 = 0, submenu6 = 0; + int submenu7 = 0; + + MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); + MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); + MakeSubColorbarMenu(&submenu3, &nmenus, "rainbow", CBMenu); + MakeSubColorbarMenu(&submenu4, &nmenus, "divergent", CBMenu); + MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); + MakeSubColorbarMenu(&submenu7, &nmenus, "original", CBMenu); + MakeSubColorbarMenu(&submenu5, &nmenus, "user", CBMenu); #endif CREATEMENU(menu, CBMenu); +#ifdef pp_COLORBARS_CSV + if(submenu3 > 0)GLUTADDSUBMENU("rainbow", submenu3); + if(submenu1 > 0)GLUTADDSUBMENU("linear", submenu1); + if(submenu4 > 0)GLUTADDSUBMENU("divergent", submenu4); + if(submenu3 > 0)GLUTADDSUBMENU("circular", submenu2); + if(submenu7 > 0 )GLUTADDSUBMENU("original", submenu7); + if(submenu6 > 0)GLUTADDSUBMENU("deprecated", submenu6); + if(submenu5 > 0)GLUTADDSUBMENU("user", submenu5); + *submenu1ptr = submenu1; + *submenu2ptr = submenu2; + *submenu3ptr = submenu3; + *submenu4ptr = submenu4; + *submenu5ptr = submenu5; + *submenu6ptr = submenu6; + *submenu7ptr = submenu7; +#else { char ccolorbarmenu[256]; @@ -8447,31 +8360,6 @@ void MakeColorbarMenu(int *menuptr, glutAddMenuEntry(ccolorbarmenu, i); } } -#ifdef pp_COLORBARS_CSV - if(nrainbow_filelist > 0){ - GLUTADDSUBMENU("rainbow", submenu3); - } - if(nlinear_filelist > 0){ - GLUTADDSUBMENU(_("linear"), submenu1); - } - if(ndivergent_filelist > 0){ - GLUTADDSUBMENU("divergent", submenu4); - } - if(ncircular_filelist > 0){ - GLUTADDSUBMENU("circular", submenu2); - } - if(nrainbow_filelist > 0){ - GLUTADDSUBMENU("deprecated", submenu6); - } - if(nuser_filelist > 0){ - GLUTADDSUBMENU("user", submenu5); - } - *submenu1ptr = submenu1; - *submenu2ptr = submenu2; - *submenu3ptr = submenu3; - *submenu4ptr = submenu4; - *submenu5ptr = submenu5; - *submenu6ptr = submenu6; #endif *menuptr = menu; } @@ -8491,8 +8379,10 @@ static int optionmenu=0, rotatetypemenu=0; #ifdef pp_COLORBARS_CSV static int colorbars_submenu1 = 0, colorbars_submenu2 = 0, colorbars_submenu3 = 0; static int colorbars_submenu4 = 0, colorbars_submenu5 = 0, colorbars_submenu6 = 0; +static int colorbars_submenu7 = 0; static int smokecolorbars_submenu1 = 0, smokecolorbars_submenu2 = 0, smokecolorbars_submenu3 = 0; static int smokecolorbars_submenu4 = 0, smokecolorbars_submenu5 = 0, smokecolorbars_submenu6 = 0; +static int smokecolorbars_submenu7 = 0; #endif static int resetmenu=0, defaultviewmenu=0, frameratemenu=0, rendermenu=0, smokeviewinimenu=0, inisubmenu=0, resolutionmultipliermenu=0; static int terrain_geom_showmenu = 0; @@ -10514,6 +10404,7 @@ updatemenu=0; #ifdef pp_COLORBARS_CSV &smokecolorbars_submenu1, &smokecolorbars_submenu2, &smokecolorbars_submenu3, &smokecolorbars_submenu4, &smokecolorbars_submenu5, &smokecolorbars_submenu6, + &smokecolorbars_submenu7, #endif SmokeColorbarMenu); @@ -10722,6 +10613,7 @@ updatemenu=0; #ifdef pp_COLORBARS_CSV &colorbars_submenu1, &colorbars_submenu2, &colorbars_submenu3, &colorbars_submenu4, &colorbars_submenu5, &colorbars_submenu6, + &colorbars_submenu7, #endif ColorbarMenu); diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index 5909c30da9..b16e7c02ec 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -288,7 +288,8 @@ typedef struct _treedata { #define CB_CIRCULAR 3 #define CB_DEPRECATED 4 #define CB_USER 5 -#define CB_OTHER 6 +#define CB_ORIGINAL 6 +#define CB_OTHER 7 typedef struct _colorbardata { char label[1024]; // menu label char ctype[256]; From 82a0d9db42c9a934865456534e12bf5cc8e5c3c3 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 24 May 2023 23:05:47 -0400 Subject: [PATCH 10/49] smokeview source: incorporiate colorbars when added from a dialog box --- Source/smokeview/colortimebar.c | 114 ++++++++++++++++------------- Source/smokeview/glui_bounds.cpp | 28 +++++-- Source/smokeview/glui_colorbar.cpp | 32 +++++--- Source/smokeview/smokeheaders.h | 3 + 4 files changed, 108 insertions(+), 69 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 6afe5a1f38..65f46cff65 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -148,29 +148,6 @@ void DrawTimebar(float xleft, float xright, float ybot, float ytop){ glEnd(); } -/* ------------------ AddColorbar ------------------------ */ - -void AddColorbar(int icolorbar){ - colorbardata *cb_to, *cb_from; - - ncolorbars++; - CheckMemory; - ResizeMemory((void **)&colorbarinfo,ncolorbars*sizeof(colorbardata)); - UpdateCurrentColorbar(colorbarinfo + colorbartype); - - cb_from = colorbarinfo + icolorbar; - CheckMemory; - - // new colorbar - - cb_to=colorbarinfo+ncolorbars-1; - - memcpy(cb_to,cb_from,sizeof(colorbardata)); - strcpy(cb_to->label,"Copy of "); - strcat(cb_to->label,cb_from->label); - RemapColorbar(cb_to); -} - /* ------------------ DrawSelectColorbar ------------------------ */ void DrawSelectColorbar(void){ @@ -1332,6 +1309,66 @@ void SortColorBars(void){ if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; } qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); + + colorbardata *cb; + cb = GetColorbar("Rainbow"); + if(cb != NULL)colorbartype_default = cb - colorbarinfo; + + bw_colorbar_index = -1; + cb = GetColorbar("black->white"); + if(cb != NULL)bw_colorbar_index = cb - colorbarinfo; + + cb = GetColorbar("fire"); + fire_colorbar_index=cb-colorbarinfo; + fire_colorbar=cb; + + cb = GetColorbar("level set"); + levelset_colorbar=cb-colorbarinfo; + + cb = GetColorbar("split"); + split_colorbar=cb; + split_colorbar_index = cb - colorbarinfo; + + cb = GetColorbar("CO2"); + co2_colorbar_index = cb - colorbarinfo; + + colorbartype = colorbartype_default; + iso_colorbar_index = colorbartype_default; +} + +/* ------------------ AddColorbar ------------------------ */ + +void AddColorbar(int icolorbar){ + colorbardata *cb_to, *cb_from; + char cb_label[255]; + + ncolorbars++; + CheckMemory; + ResizeMemory((void **)&colorbarinfo, ncolorbars * sizeof(colorbardata)); + UpdateCurrentColorbar(colorbarinfo + colorbartype); + + cb_from = colorbarinfo + icolorbar; + CheckMemory; + + // new colorbar + + cb_to = colorbarinfo + ncolorbars - 1; + + memcpy(cb_to, cb_from, sizeof(colorbardata)); + strcpy(cb_to->label, "Copy of "); + strcat(cb_to->label, cb_from->label); + strcpy(cb_label, cb_to->label); + strcpy(cb_to->ctype, "user"); + RemapColorbar(cb_to); + SortColorBars(); + UpdateColorbarListAll(); + UpdateColorbarList2All(); + + colorbardata *cbnew; + + cbnew = GetColorbar(cb_label); + if(cbnew!=NULL)selectedcolorbar_index = cbnew - colorbarinfo; + UpdateColorbarList(); } /* ------------------ InitDefaultColorbars ------------------------ */ @@ -1495,7 +1532,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[3]=255; cbi->rgb_node[4]=0; cbi->rgb_node[5]=0; - strcpy(cbi->ctype, "linear"); + strcpy(cbi->ctype, "original"); cbi++; // blue/green/red @@ -2008,30 +2045,6 @@ void InitDefaultColorbars(int nini){ } SortColorBars(); - colorbardata *cb; - cb = GetColorbar("Rainbow"); - if(cb != NULL)colorbartype_default = cb - colorbarinfo; - - bw_colorbar_index = -1; - cb = GetColorbar("black->white"); - if(cb != NULL)bw_colorbar_index = cb - colorbarinfo; - - cb = GetColorbar("fire"); - fire_colorbar_index=cb-colorbarinfo; - fire_colorbar=cb; - - cb = GetColorbar("level set"); - levelset_colorbar=cb-colorbarinfo; - - cb = GetColorbar("split"); - split_colorbar=cb; - split_colorbar_index = cb - colorbarinfo; - - cb = GetColorbar("CO2"); - co2_colorbar_index = cb - colorbarinfo; - - colorbartype = colorbartype_default; - iso_colorbar_index = colorbartype_default; #ifdef pp_COLOR_NEW int rainbow2_index = -1; int new_rainbow_index = -1; @@ -2039,6 +2052,7 @@ void InitDefaultColorbars(int nini){ rainbow_index = colorbartype_default; + colorbardata *cb; cb = GetColorbar("Rainbow 2"); if(cb != NULL)rainbow2_index = cb - colorbarinfo; @@ -2049,14 +2063,12 @@ void InitDefaultColorbars(int nini){ colorbardata *cb_rainbow, *cb_rainbow2, *cb_new_rainbow; cb_rainbow = colorbarinfo + rainbow_index; - cb_rainbow2 = colorbarinfo + rainbow2_index; + cb_rainbow2 = colorbarinfo + rainbow2_index; cb_new_rainbow = colorbarinfo + new_rainbow_index; strcpy(cb_new_rainbow->label, "Rainbow"); strcpy(cb_new_rainbow->ctype, "rainbow"); - strcpy(cb_rainbow->ctype, "deprecated"); - strcpy(cb_rainbow2->ctype, "deprecated"); SortColorBars(); } #endif diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 58df67eaa2..369dd5ac9d 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4608,7 +4608,7 @@ extern "C" void UpdateSliceXYZ(void){ /* ------------------ AddColorbarList ------------------------ */ -void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ +void AddColorbarList(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ char cbar_type[256]; int i, nitems = 0; @@ -4624,7 +4624,7 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); - LIST_cbar->add_item(-1, cbar_type); + LIST_cbar->add_item(index, cbar_type); for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; @@ -4637,6 +4637,23 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ } } +/* ------------------ UpdateColorbarList2All ------------------------ */ + +extern "C" void UpdateColorbarList2All(void){ + int i; + + for(i=-7;idelete_item(i); + } + AddColorbarList(LIST_colorbar2, -1, "rainbow", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -2, "linear", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -3, "divergent", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -4, "circular", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -7, "original", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -5, "deprecated", &max_LIST_colorbar2); + AddColorbarList(LIST_colorbar2, -6, "user", &max_LIST_colorbar2); +} + /* ------------------ GluiBoundsSetup ------------------------ */ extern "C" void GluiBoundsSetup(int main_window){ @@ -5452,12 +5469,7 @@ extern "C" void GluiBoundsSetup(int main_window){ selectedcolorbar_index2 = -1; LIST_colorbar2 = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); - AddColorbarList(LIST_colorbar2, "rainbow", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, "linear", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, "divergent", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, "circular", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, "deprecated", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, "user", &max_LIST_colorbar2); + UpdateColorbarList2All(); LIST_colorbar2->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index e5cf2a16fc..fb871cc0d7 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -448,7 +448,7 @@ extern "C" void ColorbarCB(int var){ /* ------------------ AddColorbarList2 ------------------------ */ -void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ +void AddColorbarList2(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ char cbar_type[256]; int i, nitems=0; @@ -459,12 +459,13 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ cbi = colorbarinfo + i; if(strcmp(cbi->ctype, label_arg) != 0)continue; nitems++; + break; } if(nitems == 0)return; strcpy(cbar_type, "***"); strcat(cbar_type, label_arg); strcat(cbar_type, "***"); - LIST_cbar->add_item(-1, cbar_type); + LIST_cbar->add_item(index, cbar_type); for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; @@ -475,6 +476,24 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, char *label_arg, int *max_index){ } } +/* ------------------ UpdateColorbarListAll ------------------------ */ + +extern "C" void UpdateColorbarListAll(void){ + int i; + + for(i=-7;idelete_item(i); + } + AddColorbarList2(LISTBOX_colorbar, -1, "rainbow", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -2, "linear", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -3, "divergent", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -4, "circular", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -7, "original", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -5, "deprecated", &max_LIST_colorbar); + AddColorbarList2(LISTBOX_colorbar, -6, "user", &max_LIST_colorbar); + LISTBOX_colorbar->set_int_val(colorbartype); +} + /* ------------------ GluiColorbarSetup ------------------------ */ extern "C" void GluiColorbarSetup(int main_window){ @@ -516,14 +535,7 @@ extern "C" void GluiColorbarSetup(int main_window){ if(ncolorbars>0){ selectedcolorbar_index=-1; LISTBOX_colorbar=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); - - AddColorbarList2(LISTBOX_colorbar, "rainbow", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, "linear", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, "divergent", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, "circular", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, "deprecated", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, "user", &max_LIST_colorbar); - LISTBOX_colorbar->set_int_val(colorbartype); + UpdateColorbarListAll(); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); BUTTON_update=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Update label"),COLORBAR_UPDATE,ColorbarCB); diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 1c0871b90a..347b23c11c 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -692,6 +692,9 @@ EXTERNCPP sv_object *GetSmvObjectType2(char *label, sv_object *default_object); EXTERNCPP void FreeAllObjects(void); EXTERNCPP void UpdatePartClassDepend(partclassdata *partclassi); +EXTERNCPP void UpdateColorbarList2All(void); +EXTERNCPP void UpdateColorbarListAll(void); + #ifdef pp_COLOR_CIE EXTERNCPP void AdjustColorBar(colorbardata *cbi); EXTERNCPP void RevertColorBar(colorbardata *cbi); From 6aa7b9dd2aec0a050b33110b6b65d47c50923432 Mon Sep 17 00:00:00 2001 From: gforney Date: Fri, 26 May 2023 22:48:33 -0400 Subject: [PATCH 11/49] smokeview source: add directives to isolate colorbar adjust and revert code --- Source/smokeview/colortimebar.c | 53 +++++++++++++++++------------- Source/smokeview/glui_colorbar.cpp | 16 +++++++++ Source/smokeview/options.h | 1 + Source/smokeview/smokeheaders.h | 2 ++ 4 files changed, 50 insertions(+), 22 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 65f46cff65..71a39402cf 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -273,7 +273,9 @@ void DrawColorbarPathRGB(void){ glPushMatrix(); glScalef(SCALE2SMV(1.0),SCALE2SMV(1.0),SCALE2SMV(1.0)); glTranslatef(-xbar0,-ybar0,-zbar0); - for(i=0;innodes;i++){ + int skip = 1; + if(cbi->nnodes > 20)skip = cbi->nnodes / 20; + for(i=0;innodes;i+=skip){ char cbuff[1024]; float dzpoint; @@ -506,7 +508,9 @@ void DrawColorbarPathCIE(void){ glPushMatrix(); glScalef(SCALE2SMV(1.0), SCALE2SMV(1.0), SCALE2SMV(1.0)); glTranslatef(-xbar0, -ybar0, -zbar0); - for(i = 0;i < cbi->nnodes;i++){ + int skip = 1; + if(cbi->nnodes > 20)skip = cbi->nnodes / 20; + for(i = 0;i < cbi->nnodes;i+=skip){ char cbuff[1024]; float dzpoint; @@ -831,7 +835,7 @@ void CIE2Rgbs(unsigned char *rgbs255, float *frgbs, float *cies){ } /* ------------------ CIEdE2Csv ------------------------ */ - +#ifdef pp_COLOR_ADJUST void CIEdE2Csv(char *file){ int i; FILE *stream; @@ -861,6 +865,7 @@ void CIEdE2Csv(char *file){ } fclose(stream); } +#endif /* ------------------ CheckCIE ------------------------ */ #ifdef pp_COLOR_CIE_CHECK @@ -945,14 +950,14 @@ void RemapColorbar(colorbardata *cbi){ unsigned char *rgb_node; unsigned char *alpha; #ifdef pp_COLOR_CIE - float *cie; + float *cie_rgb; #endif CheckMemory; colorbar=cbi->colorbar; rgb_node=cbi->rgb_node; #ifdef pp_COLOR_CIE - cie = cbi->cie_rgb; + cie_rgb = cbi->cie_rgb; #endif alpha=cbi->alpha; @@ -991,21 +996,12 @@ void RemapColorbar(colorbardata *cbi){ factor = (float)(j-i1)/(float)(i2-i1); #ifdef pp_COLOR_CIE - float *ciej, *ciej2; + float *ciej; - ciej = cie + 3*j; - ciej2 = ciej - 3; + ciej = cie_rgb + 3*j; ciej[0]=MIX(factor,cie2[0],cie1[0]); ciej[1]=MIX(factor,cie2[1],cie1[1]); ciej[2]=MIX(factor,cie2[2],cie1[2]); - if(j > 0){ - float *dE, dist; - float dx, dy, dz; - - dE = cbi->dE + j - 1; - DDIST3(ciej, ciej2, dist); - *dE = dist; - } if(interp_cielab == 1){ unsigned char rgb_val[3]; float frgb[3]; @@ -1038,6 +1034,19 @@ void RemapColorbar(colorbardata *cbi){ } } } +#ifdef pp_COLOR_CIE + for(i=1;innodes;i++){ + float *ciei1, *ciei2; + float *dE, dist; + float dx, dy, dz; + + ciei1 = cbi->cie_rgb + 3*i; + ciei2 = ciei1 - 3; + dE = cbi->dE + i - 1; + DDIST3(ciei1, ciei2, dist); + *dE = dist; + } +#endif rgb_node = cbi->rgb_node+3*(cbi->nnodes-1); for(i=cbi->index_node[cbi->nnodes-1];i<256;i++){ colorbar[0+3*i]=rgb_node[0]/255.0; @@ -1185,7 +1194,7 @@ void RemapColorbarType(int cb_oldtype, char *cb_newname){ #ifdef pp_COLORBARS_CSV /* ------------------ InitColorbar ------------------------ */ -void InitColorbar(colorbardata *cbptr, char *dir, char *file, char *ctype, int type){ +void ReadCSVColorbar(colorbardata *cbptr, char *dir, char *file, char *ctype, int type){ FILE *stream; int i,n=0; char fullfile[1024]; @@ -2013,23 +2022,23 @@ void InitDefaultColorbars(int nini){ #ifdef pp_COLORBARS_CSV for(i = 0;i < nlinear_filelist;i++){ - InitColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear", CB_LINEAR); + ReadCSVColorbar(cbi, colorbars_linear_dir, linear_filelist[i].file, "linear", CB_LINEAR); cbi++; } for(i = 0;i < ncircular_filelist;i++){ - InitColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular", CB_CIRCULAR); + ReadCSVColorbar(cbi, colorbars_circular_dir, circular_filelist[i].file, "circular", CB_CIRCULAR); cbi++; } for(i = 0;i < nrainbow_filelist;i++){ - InitColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow", CB_RAINBOW); + ReadCSVColorbar(cbi, colorbars_rainbow_dir, rainbow_filelist[i].file, "rainbow", CB_RAINBOW); cbi++; } for(i = 0;i < ndivergent_filelist;i++){ - InitColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent", CB_DIVERGENT); + ReadCSVColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent", CB_DIVERGENT); cbi++; } for(i = 0;i < nuser_filelist;i++){ - InitColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); + ReadCSVColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); cbi++; } #endif diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index fb871cc0d7..7467998db4 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -90,8 +90,10 @@ int cb_usecolorbar_extreme; #define COLORBAR_NEXT 22 #ifdef pp_COLOR_CIE #define COLORBAR_ADJUST 23 +#ifdef pp_COLOR_ADJUST #define COLORBAR_REVERT 24 #define COLORBAR_CIE_OUTPUT 25 +#endif #define COLORBAR_LAB2 26 #define COLORBAR_RGB2 27 #endif @@ -302,14 +304,18 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_CB1: interp_cielab = 0; LISTBOX_colorbar->set_int_val(index_colorbar1); +#ifdef pp_COLOR_ADJUST ColorbarCB(COLORBAR_ADJUST); +#endif ColorbarCB(COLORBAR_LIST); CHECKBOX_cb_interp->set_int_val(interp_cielab); break; case COLORBAR_CB2: interp_cielab = 1; LISTBOX_colorbar->set_int_val(index_colorbar2); +#ifdef pp_COLOR_ADJUST ColorbarCB(COLORBAR_ADJUST); +#endif ColorbarCB(COLORBAR_LIST); CHECKBOX_cb_interp->set_int_val(interp_cielab); break; @@ -406,17 +412,23 @@ extern "C" void ColorbarCB(int var){ ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE +#ifdef pp_COLOR_ADJUST case COLORBAR_CIE_OUTPUT: CIEdE2Csv(dEcsv_filename); break; +#endif case COLORBAR_ADJUST: +#ifdef pp_COLOR_ADJUST AdjustColorBar(colorbarinfo + colorbartype); +#endif ColorbarCB(COLORBAR_RGB); break; +#ifdef pp_COLOR_ADJUST case COLORBAR_REVERT: RevertColorBar(colorbarinfo + colorbartype); ColorbarCB(COLORBAR_RGB); break; +#endif #endif case COLORBAR_DELETE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ @@ -519,8 +531,10 @@ extern "C" void GluiColorbarSetup(int main_window){ BUTTON_new=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("New colorbar"),COLORBAR_NEW,ColorbarCB); BUTTON_delete=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Delete colorbar"),COLORBAR_DELETE,ColorbarCB); #ifdef pp_COLOR_CIE +#ifdef pp_COLOR_ADJUST glui_colorbar->add_button_to_panel(PANEL_cb2R2, _("Adjust colorbar"), COLORBAR_ADJUST, ColorbarCB); glui_colorbar->add_button_to_panel(PANEL_cb2R2, _("Output CIElab distances"), COLORBAR_CIE_OUTPUT, ColorbarCB); +#endif #endif colorbar_hidescene=1; CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); @@ -529,7 +543,9 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "cielab"); CHECKBOX_cb_interp = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2, "interpolate using cielab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); +#ifdef pp_COLOR_ADJUST glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Revert CIE"), COLORBAR_REVERT, ColorbarCB); +#endif #endif PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); if(ncolorbars>0){ diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index 58365d9c57..9b2cf445c5 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -28,6 +28,7 @@ #define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) #define pp_COLOR_NEW // set uniform rainbow colorbar as new rainbow colorbar +//#define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars //#define pp_SMOKE_LIGHT // turn on smoke lighting //#define pp_SMOKE_ADAPT // turn on volume render smoke adaptive integration diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 347b23c11c..3c4a1987d1 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -701,7 +701,9 @@ EXTERNCPP void RevertColorBar(colorbardata *cbi); EXTERNCPP void Rgb2CIE(unsigned char *rgb, float *cie); EXTERNCPP void Rgb2CIEs(unsigned char *rgbs255, float *cies); EXTERNCPP void UpdateColorbarOrig(void); +#ifdef pp_COLOR_ADJUST EXTERNCPP void CIEdE2Csv(char *file); +#endif EXTERNCPP void CIE2Rgb(unsigned char *rgb255, float *frgb, float *cie); EXTERNCPP void FRgb2CIE(float *rgb_arg, float *cie); #endif From 16a849a628b5f098e1864e98c5a985214ab5a10d Mon Sep 17 00:00:00 2001 From: gforney Date: Fri, 26 May 2023 22:55:49 -0400 Subject: [PATCH 12/49] smokeview source: fix compiler warnings --- Source/smokeview/colortimebar.c | 4 +--- Source/smokeview/menus.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 71a39402cf..2e43ceb139 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -2069,10 +2069,8 @@ void InitDefaultColorbars(int nini){ if(cb != NULL)new_rainbow_index = cb - colorbarinfo; if(rainbow_filelist>0&&rainbow2_index>=0&&new_rainbow_index>=0&&rainbow_index>=0){ - colorbardata *cb_rainbow, *cb_rainbow2, *cb_new_rainbow; + colorbardata *cb_new_rainbow; - cb_rainbow = colorbarinfo + rainbow_index; - cb_rainbow2 = colorbarinfo + rainbow2_index; cb_new_rainbow = colorbarinfo + new_rainbow_index; strcpy(cb_new_rainbow->label, "Rainbow"); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 8e3c518407..bcb6aa8afc 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8261,7 +8261,7 @@ void InitPatchSubMenus(int **loadsubpatchmenu_sptr, int **nsubpatchmenus_sptr){ /* ------------------ MakeSubColorbarMenu ------------------------ */ int MakeSubColorbarMenu(int *submenuptr, int *nmenusptr, char *ctype, void (*CBMenu)(int)){ - int i, nitems=0, submenu, nmenus; + int i, nitems=0, submenu; for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; @@ -8273,9 +8273,7 @@ int MakeSubColorbarMenu(int *submenuptr, int *nmenusptr, char *ctype, void (*CBM } if(nitems == 0)return 0; - nmenus = *nmenusptr; CREATEMENU(submenu, CBMenu); - *nmenusptr = nmenus; *submenuptr = submenu; char ccolorbarmenu[256]; From 82556172036819d11033b65e1dc09416dc4bbb01 Mon Sep 17 00:00:00 2001 From: gforney Date: Sat, 27 May 2023 17:15:20 -0400 Subject: [PATCH 13/49] smokeview source: make file search routine more general to handle directories --- Source/shared/file_util.c | 23 +++++++++++++++++------ Source/shared/file_util.h | 7 +++++-- Source/smokeview/colortimebar.c | 31 +++++++++++++++++-------------- Source/smokeview/glui_objects.cpp | 4 ++-- Source/smokeview/readsmv.c | 12 ++++++------ Source/smokeview/smokeviewvars.h | 3 ++- Source/smokeview/startup.c | 19 ++++++++++--------- 7 files changed, 59 insertions(+), 40 deletions(-) diff --git a/Source/shared/file_util.c b/Source/shared/file_util.c index 2f25b71c01..8c02be7142 100644 --- a/Source/shared/file_util.c +++ b/Source/shared/file_util.c @@ -518,12 +518,13 @@ void FreeFileList(filelistdata *filelist, int *nfilelist){ *nfilelist=0; } - /* ------------------ get_nfilelist ------------------------ */ +/* ------------------ GetFileListSize ------------------------ */ -int GetFileListSize(const char *path, char *filter){ +int GetFileListSize(const char *path, char *filter, int mode){ struct dirent *entry; DIR *dp; int maxfiles=0; + int d_type; if(path == NULL||filter==NULL)return maxfiles; dp = opendir(path); @@ -531,8 +532,13 @@ int GetFileListSize(const char *path, char *filter){ perror("opendir"); return 0; } + d_type = DT_REG; + if(mode==DIR_MODE)d_type = DT_DIR; while( (entry = readdir(dp))!=NULL ){ - if(((entry->d_type==DT_REG||entry->d_type==DT_UNKNOWN)&&MatchWild(entry->d_name,filter)==1))maxfiles++; + if(((entry->d_type==d_type||entry->d_type==DT_UNKNOWN)&&MatchWild(entry->d_name,filter)==1)){ + if(strcmp(entry->d_name,".")==0||strcmp(entry->d_name,"..")==0)continue; + maxfiles++; + } } closedir(dp); return maxfiles; @@ -574,7 +580,8 @@ int CompareFileList(const void *arg1, const void *arg2){ return strcmp(x->file, y->file); } -/* ------------------ getfile ------------------------ */ +/* ------------------ FileInList ------------------------ */ + filelistdata *FileInList(char *file, filelistdata *filelist, int nfiles, filelistdata *filelist2, int nfiles2){ filelistdata *entry=NULL, fileitem; @@ -593,11 +600,12 @@ filelistdata *FileInList(char *file, filelistdata *filelist, int nfiles, filelis /* ------------------ MakeFileList ------------------------ */ -int MakeFileList(const char *path, char *filter, int maxfiles, int sort_files, filelistdata **filelist){ +int MakeFileList(const char *path, char *filter, int maxfiles, int sort_files, filelistdata **filelist, int mode){ struct dirent *entry; DIR *dp; int nfiles=0; filelistdata *flist; + int d_type; // DT_DIR - is a directory // DT_REG - is a regular file @@ -613,11 +621,14 @@ int MakeFileList(const char *path, char *filter, int maxfiles, int sort_files, f return 0; } NewMemory((void **)&flist,maxfiles*sizeof(filelistdata)); + d_type = DT_REG; + if(mode==DIR_MODE)d_type = DT_DIR; while( (entry = readdir(dp))!=NULL&&nfilesd_type==DT_REG||entry->d_type==DT_UNKNOWN)&&MatchWild(entry->d_name,filter)==1){ + if((entry->d_type==d_type||entry->d_type==DT_UNKNOWN)&&MatchWild(entry->d_name,filter)==1){ char *file; filelistdata *flisti; + if(strcmp(entry->d_name,".")==0||strcmp(entry->d_name,"..")==0)continue; flisti = flist + nfiles; NewMemory((void **)&file,strlen(entry->d_name)+1); strcpy(file,entry->d_name); diff --git a/Source/shared/file_util.h b/Source/shared/file_util.h index 675da48be7..2f1117ac32 100644 --- a/Source/shared/file_util.h +++ b/Source/shared/file_util.h @@ -46,6 +46,9 @@ typedef struct { #define REPLACE_FILE 0 #define APPEND_FILE 1 +#define FILE_MODE 0 +#define DIR_MODE 1 + #define NOT_FORCE_IN_DIR 0 #define FORCE_IN_DIR 1 @@ -122,8 +125,8 @@ EXTERNCPP int Writable(char *dir); EXTERNCPP int FileExists(char *filename, filelistdata *filelist, int nfiles, filelistdata *filelist2, int nfiles2); EXTERNCPP filelistdata *FileInList(char *file, filelistdata *filelist, int nfiles, filelistdata *filelist2, int nfiles2); EXTERNCPP void FreeFileList(filelistdata *filelist, int *nfilelist); -EXTERNCPP int GetFileListSize(const char *path, char *filter) ; -EXTERNCPP int MakeFileList(const char *path, char *filter, int maxfiles, int sort_files, filelistdata **filelist); +EXTERNCPP int GetFileListSize(const char *path, char *filter, int mode); +EXTERNCPP int MakeFileList(const char *path, char *filter, int maxfiles, int sort_files, filelistdata **filelist, int mode); EXTERNCPP char *Which(char *progname); EXTERNCPP FILE_SIZE GetFileSizeSMV(const char *filename); EXTERNCPP time_t FileModtime(char *filename); diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 2e43ceb139..f339943dd8 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1385,24 +1385,27 @@ void AddColorbar(int icolorbar){ void InitDefaultColorbars(int nini){ int i; colorbardata *cbi; + int ncolorbars_dirlist; ndefaultcolorbars = 0; #ifdef pp_COLORBARS_CSV filelistdata *linear_filelist=NULL, *circular_filelist=NULL, *rainbow_filelist=NULL, *divergent_filelist = NULL; - filelistdata *user_filelist = NULL; - - nuser_filelist = GetFileListSize(colorbars_userdir, "*.csv"); - nlinear_filelist = GetFileListSize(colorbars_linear_dir, "*.csv"); - ncircular_filelist = GetFileListSize(colorbars_circular_dir, "*.csv"); - nrainbow_filelist = GetFileListSize(colorbars_rainbow_dir, "*.csv"); - ndivergent_filelist = GetFileListSize(colorbars_divergent_dir, "*.csv"); - - MakeFileList(colorbars_userdir, "*.csv", nuser_filelist, NO, &user_filelist); - MakeFileList(colorbars_linear_dir, "*.csv", nlinear_filelist, NO, &linear_filelist); - MakeFileList(colorbars_circular_dir, "*.csv", ncircular_filelist, NO, &circular_filelist); - MakeFileList(colorbars_rainbow_dir, "*.csv", nrainbow_filelist, NO, &rainbow_filelist); - MakeFileList(colorbars_divergent_dir, "*.csv", ndivergent_filelist, NO, &divergent_filelist); + filelistdata *user_filelist = NULL, *colorbars_dirlist = NULL; + + ncolorbars_dirlist = GetFileListSize(colorbars_dir, "*", DIR_MODE); + nuser_filelist = GetFileListSize(colorbars_user_dir, "*.csv", FILE_MODE); + nlinear_filelist = GetFileListSize(colorbars_linear_dir, "*.csv", FILE_MODE); + ncircular_filelist = GetFileListSize(colorbars_circular_dir, "*.csv", FILE_MODE); + nrainbow_filelist = GetFileListSize(colorbars_rainbow_dir, "*.csv", FILE_MODE); + ndivergent_filelist = GetFileListSize(colorbars_divergent_dir, "*.csv", FILE_MODE); + + MakeFileList(colorbars_dir, "*", ncolorbars_dirlist, NO, &colorbars_dirlist, DIR_MODE); + MakeFileList(colorbars_user_dir, "*.csv", nuser_filelist, NO, &user_filelist, FILE_MODE); + MakeFileList(colorbars_linear_dir, "*.csv", nlinear_filelist, NO, &linear_filelist, FILE_MODE); + MakeFileList(colorbars_circular_dir, "*.csv", ncircular_filelist, NO, &circular_filelist, FILE_MODE); + MakeFileList(colorbars_rainbow_dir, "*.csv", nrainbow_filelist, NO, &rainbow_filelist, FILE_MODE); + MakeFileList(colorbars_divergent_dir, "*.csv", ndivergent_filelist, NO, &divergent_filelist, FILE_MODE); ndefaultcolorbars+=nlinear_filelist + ncircular_filelist + nrainbow_filelist + ndivergent_filelist + nuser_filelist; #endif @@ -2038,7 +2041,7 @@ void InitDefaultColorbars(int nini){ cbi++; } for(i = 0;i < nuser_filelist;i++){ - ReadCSVColorbar(cbi, colorbars_userdir, user_filelist[i].file, "user", CB_USER); + ReadCSVColorbar(cbi, colorbars_user_dir, user_filelist[i].file, "user", CB_USER); cbi++; } #endif diff --git a/Source/smokeview/glui_objects.cpp b/Source/smokeview/glui_objects.cpp index f316043841..b8f435194b 100644 --- a/Source/smokeview/glui_objects.cpp +++ b/Source/smokeview/glui_objects.cpp @@ -2357,11 +2357,11 @@ void OpenCB(int var){ LIST_open->delete_item(label); } FreeFileList(gluiopen_filelist,&gluiopen_nfilelist); - gluiopen_nfilelist=GetFileListSize(gluiopen_path_dir,gluiopen_filter); + gluiopen_nfilelist=GetFileListSize(gluiopen_path_dir,gluiopen_filter,FILE_MODE); if(gluiopen_nfilelist==0){ LIST_open->add_item(0,""); } - MakeFileList(gluiopen_path_dir, gluiopen_filter,gluiopen_nfilelist,NO,&gluiopen_filelist); + MakeFileList(gluiopen_path_dir, gluiopen_filter,gluiopen_nfilelist,NO,&gluiopen_filelist, FILE_MODE); if(gluiopen_nfilelist>0&&gluiopen_filelist[0].type==1){ BUTTON_open_down->enable(); } diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index e61afcf621..a9a2647cbc 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -873,9 +873,9 @@ void UpdateINIList(void){ strcpy(filter,fdsprefix); strcat(filter,"*.ini"); FreeFileList(ini_filelist,&nini_filelist); - nini_filelist=GetFileListSize(".",filter); + nini_filelist=GetFileListSize(".",filter, FILE_MODE); if(nini_filelist>0){ - MakeFileList(".",filter,nini_filelist,NO,&ini_filelist); + MakeFileList(".",filter,nini_filelist,NO,&ini_filelist, FILE_MODE); for(i=0;i0)strcat(return_path, subdir); return return_path; } /* ------------------ InitColorbarsDir ------------------------ */ void InitColorbarsDir(void){ + colorbars_dir = InitColorbarsSubDir(""); colorbars_linear_dir = InitColorbarsSubDir("linear"); colorbars_divergent_dir = InitColorbarsSubDir("divergent"); colorbars_rainbow_dir = InitColorbarsSubDir("rainbow"); From a87ad379531b363ec4ddcd071487f0d1669fbbee Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 31 May 2023 09:41:36 -0400 Subject: [PATCH 14/49] smokeview source: use GetData routine to read isosurface quantity data same routine used to read geometry slice and geometry boundary data files --- Source/smokeview/IOiso.c | 8 ++- Source/smokeview/getdata.c | 123 -------------------------------- Source/smokeview/getdata.h | 4 -- Source/smokeview/smokeheaders.h | 3 + 4 files changed, 8 insertions(+), 130 deletions(-) diff --git a/Source/smokeview/IOiso.c b/Source/smokeview/IOiso.c index 321e90eaac..60a2034e92 100644 --- a/Source/smokeview/IOiso.c +++ b/Source/smokeview/IOiso.c @@ -276,8 +276,10 @@ FILE_SIZE ReadIsoGeom(int ifile, int load_flag, int *geom_frame_index, int *erro int filesize; int ntimes_local; float *valptr; + float tmin_local, tmax_local; - getgeomdatasize(isoi->tfile, &ntimes_local, &isoi->geom_nvals, &error); + + ntimes_local = GetGeomDataSize(isoi->tfile, &isoi->geom_nvals, &tmin_local, &tmax_local, ALL_FRAMES, NULL, NULL, &error); if(isoi->geom_nvals>0&&ntimes_local>0){ NewMemoryMemID((void **)&isoi->geom_nstatics, ntimes_local*sizeof(int), isoi->memory_id); @@ -286,8 +288,8 @@ FILE_SIZE ReadIsoGeom(int ifile, int load_flag, int *geom_frame_index, int *erro NewMemoryMemID((void **)&isoi->geom_vals, isoi->geom_nvals*sizeof(float), isoi->memory_id); } - getgeomdata(isoi->tfile, ntimes_local, isoi->geom_nvals, isoi->geom_times, - isoi->geom_nstatics, isoi->geom_ndynamics, isoi->geom_vals, &filesize, &error); + filesize = GetGeomData(isoi->tfile, ntimes_local, isoi->geom_nvals, isoi->geom_times, + isoi->geom_nstatics, isoi->geom_ndynamics, isoi->geom_vals, ALL_FRAMES, NULL, NULL, &error); return_filesize += filesize; FREEMEMORY(isoi->geom_nstatics); FREEMEMORY(isoi->geom_times); diff --git a/Source/smokeview/getdata.c b/Source/smokeview/getdata.c index 2dcc33c21b..076761c3a0 100644 --- a/Source/smokeview/getdata.c +++ b/Source/smokeview/getdata.c @@ -121,53 +121,6 @@ int fortseek(FILE *file, size_t size, size_t count, int whence) { whence); } -// ------------------ getgeomdatasize ------------------------ - -void getgeomdatasize(const char *filename, int *ntimes, int *nvars, - int *error) { - float time, dummy; - int one, version; - int nvert_s, nvert_d, nface_s, nface_d; - FILE *file = FOPEN(filename, "rb"); - if (file == NULL) { - printf(" The boundary element file name, %s does not exist\n", filename); - *error = 1; - return; - } - - *error = 0; - *error = fortread(&one, 1, 1, file); - *error = fortread(&version, 1, 1, file); - *ntimes = 0; - *nvars = 0; - size_t error_local; - uint32_t counts[4] = {0}; - while (1) { - error_local = fortread(&time, sizeof(time), 1, file); - if (error_local == 0) { - error_local = fortread(&counts, sizeof(*counts), 4, file); - nvert_s = counts[0]; - nface_s = counts[1]; - nvert_d = counts[2]; - nface_d = counts[3]; - } - if (error_local == 0 && nvert_s > 0) - error_local = fortread(&dummy, sizeof(dummy), nvert_s, file); - if (error_local == 0 && nvert_d > 0) - error_local = fortread(&dummy, sizeof(dummy), nvert_d, file); - if (error_local == 0 && nface_s > 0) - error_local = fortread(&dummy, sizeof(dummy), nface_s, file); - if (error_local == 0 && nface_d > 0) - error_local = fortread(&dummy, sizeof(dummy), nface_d, file); - if (error_local != 0) { - break; - } - *nvars += nvert_s + nvert_d + nface_s + nface_d; - ntimes++; - } - fclose(file); -} - // ------------------ getzonesize ------------------------ void getzonesize(const char *zonefilename, int *nzonet, int *nrooms, int *nfires, int *error) { @@ -697,82 +650,6 @@ void getpartdataframe(FILE *file, int nclasses, int *nquantities, int *npoints, return; } -// ! ------------------ getgeomdata ------------------------ - -void getgeomdata(const char *filename, int ntimes, int nvals, float *times, - int *nstatics, int *ndynamics, float *vals, int *file_size, - int *error) { - int one, nvars; - int nvert_s, ntri_s, nvert_d, ntri_d; - int version; - - *file_size = 0; - FILE *file = FOPEN(filename, "rb"); - if (file == NULL) { - printf(" The boundary element file name, %s does not exist\n", filename); - *error = 1; - return; - } - - *error = 0; - *error = fortread(&one, 1, 1, file); - if (*error != 0) goto end; - *error = fortread(&version, sizeof(version), 1, file); - if (*error != 0) goto end; - *file_size = 2 * (4 + 4 + 4); - nvars = 0; - - int itime; - for (itime = 0; itime < ntimes; itime++) { - - *error = fortread(×[itime], sizeof(times[itime]), 1, file); - if (*error != 0) goto end; - *file_size += (4 + 4 + 4); - - int counts[4] = {0}; - *error = fortread(&counts, sizeof(*counts), 4, file); - nvert_s = counts[0]; - ntri_s = counts[1]; - nvert_d = counts[2]; - ntri_d = counts[3]; - *file_size += (4 + 4 * 4 + 4); - nstatics[itime] = nvert_s + ntri_s; - - if (nvert_s > 0) { - *error = fortread(&vals[nvars], sizeof(vals[nvars]), nvert_s, file); - if (*error != 0) goto end; - *file_size += (4 + 4 * nvert_s + 4); - } - nvars = nvars + nvert_s; - - if (ntri_s > 0) { - *error = fortread(&vals[nvars], sizeof(vals[nvars]), ntri_s, file); - if (*error != 0) goto end; - *file_size += (4 + 4 * ntri_s + 4); - } - nvars = nvars + ntri_s; - - ndynamics[itime] = nvert_d + ntri_d; - if (nvert_d > 0) { - *error = fortread(&vals[nvars], sizeof(vals[nvars]), nvert_d, file); - if (*error != 0) goto end; - file_size += (4 + 4 * nvert_d + 4); - } - nvars = nvars + nvert_d; - - if (ntri_d > 0) { - *error = fortread(&vals[nvars], sizeof(vals[nvars]), ntri_d, file); - if (*error != 0) goto end; - *file_size += (4 + 4 * ntri_d + 4); - } - nvars = nvars + ntri_d; - } - -end: - fclose(file); - return; -} - // ! ------------------ getzonedata ------------------------ void getzonedata(const char *zonefilename, int *nzonet, int *nrooms, diff --git a/Source/smokeview/getdata.h b/Source/smokeview/getdata.h index 4ecb087dac..1c775ca37e 100644 --- a/Source/smokeview/getdata.h +++ b/Source/smokeview/getdata.h @@ -5,7 +5,6 @@ // TODO: remove this as a public-facing API when possible int fortread(void *ptr, size_t size, size_t count, FILE *file); -void getgeomdatasize(const char *filename, int *ntimes, int *nvars, int *error); void getzonesize(const char *zonefilename, int *nzonet, int *nrooms, int *nfires, int *error); void getpatchsizes1(FILE **file, const char *patchfilename, int *npatch, @@ -36,9 +35,6 @@ void getpartheader2(FILE *file, int nclasses, int *nquantities, int *size); void getpartdataframe(FILE *file, int nclasses, int *nquantities, int *npoints, float *time, int *tagdata, float *pdata, int *size, int *error); -void getgeomdata(const char *filename, int ntimes, int nvals, float *times, - int *nstatics, int *ndynamics, float *vals, int *file_size, - int *error); void getzonedata(const char *zonefilename, int *nzonet, int *nrooms, int *nfires, float *zonet, float *zoneqfire, float *zonepr, float *zoneylay, float *zonetl, float *zonetu, int *error); diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 3c4a1987d1..5b8b1f3f08 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -75,6 +75,9 @@ EXTERNCPP void SetCurrentViewPoint(char *viewpoint_label); EXTERNCPP int GetGeomDataSize(char *file, int *nvals, float *tmin, float *tmax, int time_frame, int *geom_offsets, int *geom_offset_flag, int *error); +EXTERNCPP FILE_SIZE GetGeomData(char *filename, int ntimes, int nvals, float *times, int *nstatics, int *ndynamics, float *vals, + int time_frame, float *time_value, int *geom_offsets, int *error); + EXTERNCPP void UpdateMovieParms(void); From 41e848ebc7c25abe65cb0fa0597b9180a35673e1 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 31 May 2023 09:58:00 -0400 Subject: [PATCH 15/49] smokeview source: move geometry data read routines to IOgeometry.c --- Source/smokeview/IOboundary.c | 500 --------------------------------- Source/smokeview/IOgeometry.c | 503 ++++++++++++++++++++++++++++++++++ 2 files changed, 503 insertions(+), 500 deletions(-) diff --git a/Source/smokeview/IOboundary.c b/Source/smokeview/IOboundary.c index 4daee5d969..00d8880539 100644 --- a/Source/smokeview/IOboundary.c +++ b/Source/smokeview/IOboundary.c @@ -12,10 +12,6 @@ #define FIRST_TIME 1 -#define MAX_FRAMES 1000000 -#define BUILD_GEOM_OFFSETS 0 -#define GET_GEOM_OFFSETS -1 - #define IJKBF(i,j) ((i)*ncol+(j)) #define BOUNDCONVERT(val, valmin, valmax) ( (val-valmin)/(valmax-valmin) ) @@ -2574,502 +2570,6 @@ FILE_SIZE ReadBoundaryBndf(int ifile, int flag, int *errorcode){ return return_filesize; } -/* ------------------ ReadGeomDataSize ------------------------ */ - -int GetGeomDataSize(char *filename, int *nvars, float *tmin, float *tmax, int time_frame, - int *geom_offsets, int *geom_offset_flag, int *error){ - - float time; - int one, version; - int nvert_s, nvert_d, nface_s, nface_d; - FILE *stream=NULL; - int returncode=0; - int nvars_local, ntimes_local; - int first = 1; - int iframe; - int geom_offset_index=0, geom_offset = 0, frame_start; - - *error=1; - *tmin = 0.0; - *tmax = 1.0; - *nvars = 0; - if(filename==NULL)return 0; - stream = fopen(filename,"rb"); - if(stream==NULL)printf(" The boundary element file name, %s, does not exist",filename); - - *error = 0; - - FORTREAD(&one, 1, stream); - FORTREAD(&version, 1, stream); - - geom_offset = 0; - ntimes_local = 0; - nvars_local = 0; - if(geom_offset_flag==NULL||*geom_offset_flag==BUILD_GEOM_OFFSETS||time_frame==ALL_FRAMES){ - frame_start = 0; - } - else{ - frame_start = time_frame; - fseek(stream, geom_offsets[time_frame], SEEK_CUR); - } - for(iframe=frame_start;;iframe++){ - int nvals[4], nskip; - - if(geom_offset_flag!=NULL&&*geom_offset_flag==BUILD_GEOM_OFFSETS)geom_offsets[geom_offset_index] = geom_offset; - FORTREAD(&time, 1, stream); - geom_offset += (4+4+4); - if(time_frame==ALL_FRAMES||time_frame==iframe){ - if(first==1){ - first = 0; - *tmin = time; - } - *tmax = time; - } - if(returncode==0)break; - FORTREAD(nvals, 4, stream); - geom_offset += (4+4*4+4); - if(returncode==0)break; - nvert_s = nvals[0]; - nface_s = nvals[1]; - nvert_d = nvals[2]; - nface_d = nvals[3]; - nskip = 0; - if(nvert_s>0)nskip += 4 + 4*nvert_s + 4; - if(nface_s>0)nskip += 4 + 4*nface_s + 4; - if(nvert_d>0)nskip += 4 + 4*nvert_d + 4; - if(nface_d>0)nskip += 4 + 4*nface_d + 4; - geom_offset += nskip; - if(time_frame==ALL_FRAMES||time_frame==iframe){ - nvars_local += nvert_s+nvert_d+nface_s+nface_d; - ntimes_local++; - } - geom_offset_index++; - if(geom_offset_flag!=NULL&&*geom_offset_flag==GET_GEOM_OFFSETS&&time_frame==iframe)break; - if(fseek(stream, nskip, SEEK_CUR)!=0)break; - } - fclose(stream); - *nvars = nvars_local; - if(geom_offset_flag!=NULL&&*geom_offset_flag==BUILD_GEOM_OFFSETS)*geom_offset_flag = geom_offset_index; - return ntimes_local; -} - -/* ------------------ GetGeomData------------------------ */ - -FILE_SIZE GetGeomData(char *filename, int ntimes, int nvals, float *times, int *nstatics, int *ndynamics, float *vals, - int time_frame, float *time_value, int *geom_offsets, int *error){ - FILE_SIZE file_size; - - int one, nvars; - int nvert_s, ntri_s, nvert_d, ntri_d; - int version; - int returncode=0; - int count; - float time; - int iframe, frame_start, frame_stop; - - FILE *stream; - - file_size = 0; - *error = 1; - if(filename==NULL)return 0; - stream = fopen(filename, "rb"); - if(stream==NULL){ - printf(" The boundary file name %s does not exist\n",filename); - return 0; - } - - *error = 0; - FORTREAD(&one, 1, stream); - FORTREAD(&version, 1, stream); - file_size = 2*(4+4+4); - nvars = 0; - count = 0; - if(time_frame==ALL_FRAMES){ - frame_start = 0; - frame_stop = ntimes; - } - else{ - frame_start = time_frame; - frame_stop = time_frame+1; - fseek(stream, geom_offsets[time_frame], SEEK_CUR); - } - for(iframe = frame_start; iframe0){ - if(time_frame==ALL_FRAMES||time_frame==iframe){ - FORTREAD(vals+nvars, nvert_s, stream); - if(returncode==0)break; - file_size += (4+4*nvert_s+4); - nvars += nvert_s; - } - else{ - fseek(stream, 4+4*nvert_s+4, SEEK_CUR); - } - } - - if(ntri_s>0){ - if(time_frame==ALL_FRAMES||time_frame==iframe){ - FORTREAD(vals+nvars, ntri_s, stream); - if(returncode==0)break; - file_size += (4+4*ntri_s+4); - nvars += ntri_s; - } - else{ - fseek(stream, (4+4*ntri_s+4), SEEK_CUR); - } - } - - if(time_frame==ALL_FRAMES||time_frame==iframe)ndynamics[count] = nvert_d+ntri_d; - if(nvert_d>0){ - if(time_frame==ALL_FRAMES||time_frame==iframe){ - FORTREAD(vals+nvars, nvert_d, stream); - if(returncode==0)break; - file_size += (4+4*nvert_d+4); - nvars += nvert_d; - } - else{ - fseek(stream, 4+4*nvert_d+4, SEEK_CUR); - } - } - - if(ntri_d>0){ - if(time_frame==ALL_FRAMES||time_frame==iframe){ - FORTREAD(vals+nvars, ntri_d, stream); - if(returncode==0)break; - file_size += (4+4*ntri_d+4); - nvars += ntri_d; - } - else{ - fseek(stream, 4+4*ntri_d+4, SEEK_CUR); - } - } - if(time_frame==iframe){ - *time_value = times[count]; - break; - } - if(time_frame==ALL_FRAMES)count++; - } - fclose(stream); - return file_size; -} - -/* ------------------ ReadGeomData ------------------------ */ - -FILE_SIZE ReadGeomData(patchdata *patchi, slicedata *slicei, int load_flag, int time_frame, float *time_value, int *errorcode){ - char *file; - int ntimes_local; - int i; - int nvals; - int n; - int error; - FILE_SIZE return_filesize = 0; - float total_time; - float tmin_local, tmax_local; - int *geom_offsets=NULL, geom_offset_flag; - - // 1 - // time - // nstatic - // vals_1, ...vals_nstatic - // ndynamic - // vals_1, ... vals_ndyamic - - if(patchi->structured == YES)return 0; - - START_TIMER(total_time); - file = patchi->file; - - patchi->loaded = 0; - patchi->display = 0; - if(slicei != NULL){ - slicei->loaded = 0; - slicei->display = 0; - slicei->vloaded = 0; - slicei->ntimes = 0; - slicei->times = NULL; - } - patchi->bounds.defined=0; - - FREEMEMORY(patchi->geom_nstatics); - FREEMEMORY(patchi->geom_ndynamics); - FREEMEMORY(patchi->geom_ivals_static); - FREEMEMORY(patchi->geom_ivals_dynamic); - FREEMEMORY(patchi->geom_vals_static); - FREEMEMORY(patchi->geom_vals_dynamic); - FREEMEMORY(patchi->geom_vals); - FREEMEMORY(patchi->geom_ivals); - FREEMEMORY(patchi->geom_times); - if(load_flag==UNLOAD){ - plotstate = GetPlotState(DYNAMIC_PLOTS); - if(patchi->boundary==1)UpdateBoundaryType(); - UpdateUnitDefs(); - UpdateTimes(); - update_draw_hist = 1; - PrintMemoryInfo; - return 0; - } - if(patchi->skip == 1)return 0; - - //GetGeomDataHeader(file,&ntimes,&nvals); - - if(time_value!=NULL){ - NewMemory((void **)&geom_offsets, MAX_FRAMES*sizeof(int)); - geom_offset_flag = BUILD_GEOM_OFFSETS; - } - else{ - geom_offset_flag = GET_GEOM_OFFSETS; - } - - ntimes_local = GetGeomDataSize(file, &nvals, &tmin_local, &tmax_local, time_frame, geom_offsets, &geom_offset_flag, &error); - - if(time_value!=NULL){ - if(geom_offset_flag>0){ - ResizeMemory((void **)&geom_offsets, geom_offset_flag*sizeof(int)); - if(patchi!=NULL)patchi->geom_offsets = geom_offsets; - if(slicei!=NULL)slicei->geom_offsets = geom_offsets; - - } - else if(geom_offset_flag==0){ - FREEMEMORY(geom_offsets); - } - else{ - if(patchi!=NULL)geom_offsets = patchi->geom_offsets; - if(slicei!=NULL)geom_offsets = slicei->geom_offsets; - } - } - - if(ntimes_local>0){ - NewMemory((void **)&patchi->geom_nstatics, ntimes_local*sizeof(int)); - NewMemory((void **)&patchi->geom_ndynamics, ntimes_local*sizeof(int)); - NewMemory((void **)&patchi->geom_times, ntimes_local*sizeof(float)); - NewMemory((void **)&patchi->geom_ivals_static, ntimes_local*sizeof(int *)); - NewMemory((void **)&patchi->geom_ivals_dynamic, ntimes_local*sizeof(int *)); - NewMemory((void **)&patchi->geom_vals_static, ntimes_local*sizeof(float *)); - NewMemory((void **)&patchi->geom_vals_dynamic, ntimes_local*sizeof(float *)); - } - if(nvals>0){ - NewMemory((void **)&patchi->geom_vals, nvals*sizeof(float)); - NewMemory((void **)&patchi->geom_ivals, nvals*sizeof(char)); - } - - if(load_flag == UPDATE_HIST){ - GetGeomData(file, ntimes_local, nvals, patchi->geom_times, - patchi->geom_nstatics, patchi->geom_ndynamics, patchi->geom_vals, time_frame, time_value, geom_offsets, &error); - ResetHistogram(patchi->histogram, NULL, NULL); - UpdateHistogram(patchi->geom_vals, NULL, nvals, patchi->histogram); - CompleteHistogram(patchi->histogram); - return 0; - } - else{ - int filesize; - - if(current_script_command==NULL||current_script_command->command!=SCRIPT_LOADSLICERENDER){ - PRINTF("Loading %s(%s)", file, patchi->label.shortlabel); - } - filesize=GetGeomData(file, ntimes_local, nvals, patchi->geom_times, - patchi->geom_nstatics, patchi->geom_ndynamics, patchi->geom_vals, time_frame, time_value, geom_offsets, &error); - return_filesize += filesize; - } - - patchi->ngeom_times = ntimes_local; - patchi->geom_nvals = nvals; - patchi->geom_ivals_static[0] = patchi->geom_ivals; - patchi->geom_ivals_dynamic[0] = patchi->geom_ivals_static[0]+patchi->geom_nstatics[0]; - for(i = 1;igeom_ivals_static[i] = patchi->geom_ivals_dynamic[i-1] + patchi->geom_ndynamics[i-1]; - patchi->geom_ivals_dynamic[i] = patchi->geom_ivals_static[i] + patchi->geom_nstatics[i]; - } - - patchi->geom_vals_static[0] = patchi->geom_vals; - patchi->geom_vals_dynamic[0] = patchi->geom_vals_static[0] + patchi->geom_nstatics[0]; - for(i = 1; igeom_vals_static[i] = patchi->geom_vals_dynamic[i-1] + patchi->geom_ndynamics[i-1]; - patchi->geom_vals_dynamic[i] = patchi->geom_vals_static[i] + patchi->geom_nstatics[i]; - } - - patchi->loaded = 1; - patchi->display = 1; - - if(slicei == NULL){ - if(colorlabelpatch != NULL){ - for (n = 0; n < MAXRGB; n++){ - FREEMEMORY(colorlabelpatch[n]); - } - FREEMEMORY(colorlabelpatch); - } - if(NewMemory((void **)&colorlabelpatch, MAXRGB * sizeof(char *)) == 0){ - ReadGeomData(patchi, NULL, UNLOAD, time_frame, time_value, &error); - return 0; - } - for (n = 0; n < MAXRGB; n++){ - colorlabelpatch[n] = NULL; - } - for (n = 0; n < nrgb; n++){ - if(NewMemory((void **)&colorlabelpatch[n], 11) == 0){ - ReadGeomData(patchi, NULL, UNLOAD, time_frame, time_value, &error); - return 0; - } - } - int set_valmin, set_valmax; - float valmin, valmax; - char *label; - - label = patchi->label.shortlabel; - - GetMinMax(BOUND_PATCH, label, &set_valmin, &valmin, &set_valmax, &valmax); - GetBoundaryColors3(patchi, patchi->geom_vals, 0, patchi->geom_nvals, patchi->geom_ivals, - &valmin, &valmax, - nrgb, colorlabelpatch, colorvaluespatch, boundarylevels256, - &patchi->extreme_min, &patchi->extreme_max, 1); - if(cache_boundary_data==0){ - FREEMEMORY(patchi->geom_vals); - } - } - else { - int slicetype; - boundsdata *sb; - float qmin, qmax; - - slicetype = GetSliceBoundsIndex(slicei); - sb = slicebounds + slicetype; - sb->label = &(slicei->label); - - HideSlices(slicei->label.longlabel); - slicei->loaded = 1; - slicei->display = 1; - slicei->ntimes = patchi->ngeom_times; - slicei->times = patchi->geom_times; - - UpdateLoadedLists(); - GetSliceDataBounds(slicei, &qmin, &qmax); - slicei->globalmin = qmin; - slicei->globalmax = qmax; - slicei->valmin_smv = qmin; - slicei->valmax_smv = qmax; - if(slice_average_flag==1){ - int data_per_timestep, nvals2, ntimes; - float *vals, *times; - - show_slice_average = 1; - vals = slicei->patchgeom->geom_vals; - nvals2 = slicei->patchgeom->geom_nvals; - times = patchi->geom_times; - ntimes = patchi->ngeom_times; - data_per_timestep = nvals2/ntimes; - if(TimeAverageData(vals, vals, nvals2, data_per_timestep, times, ntimes, slice_average_interval)==1){ - show_slice_average = 0; - } - } - slicei->valmin = qmin; - slicei->valmax = qmax; - slicei->valmin_data = qmin; - slicei->valmax_data = qmax; - for (i = 0; i < 256; i++){ - slicei->qval256[i] = (qmin*(255 - i) + qmax*i) / 255; - } - UpdateSliceBounds(); - slicefile_labelindex = GetSliceBoundsIndexFromLabel(patchi->label.shortlabel); - UpdateAllSliceColors(slicefile_labelindex, errorcode); - list_slice_index = slicefile_labelindex; - SliceBounds2Glui(slicefile_labelindex); - - GetSliceColors(patchi->geom_vals, patchi->geom_nvals, patchi->geom_ivals, - glui_slicemin, glui_slicemax, nrgb_full, nrgb, - sb->colorlabels, sb->colorvalues, sb->levels256, - &slicei->extreme_min, &slicei->extreme_max, 1 - ); - } - - if(patchi->boundary == 1){ - iboundarytype = GetBoundaryType(patchi); - } - else { - slicefile_labelindex = GetSliceBoundsIndexFromLabel(patchi->label.shortlabel); - } - if((slicei==NULL&&patchi->finalize==1)||(slicei!=NULL&&slicei->finalize==1)){ - plotstate = GetPlotState(DYNAMIC_PLOTS); - if(patchi->boundary==1)UpdateBoundaryType(); - cpp_boundsdata *bounds; - int bound_type; - - if(patchi->boundary==1){ - bound_type = BOUND_PATCH; - } - else{ - bound_type = BOUND_SLICE; - } - - bounds = GetBoundsData(bound_type); - if(bounds->set_valmin==BOUND_PERCENTILE_MIN||bounds->set_valmax==BOUND_PERCENTILE_MAX){ - float global_min = 0.0, global_max = 1.0; - - if(patchi->boundary==1){ - GetGlobalBoundsMinMax(BOUND_PATCH, bounds->label, &global_min, &global_max); - ComputeLoadedPatchHist(bounds->label, &(bounds->hist), &global_min, &global_max); - } - else{ - ComputeLoadedSliceHist(bounds->label, &(bounds->hist)); - } - if(bounds->hist->defined==1){ - if(bounds->set_valmin==BOUND_PERCENTILE_MIN){ - float per_valmin; - - GetHistogramValProc(bounds->hist, percentile_level_min, &per_valmin); - SetMin(bound_type, bounds->label, BOUND_PERCENTILE_MIN, per_valmin); - } - if(bounds->set_valmax==BOUND_PERCENTILE_MAX){ - float per_valmax; - - GetHistogramValProc(bounds->hist, percentile_level_max, &per_valmax); - SetMax(bound_type, bounds->label, BOUND_PERCENTILE_MAX, per_valmax); - } - } - } - if(bounds->set_valmin==BOUND_SET_MIN||bounds->set_valmax==BOUND_SET_MAX){ - if(patchi->boundary==1){ - } - else{ - int set_valmin, set_valmax; - float valmin_dlg, valmax_dlg; - - GetMinMax(BOUND_SLICE, bounds->label, &set_valmin, &valmin_dlg, &set_valmax, &valmax_dlg); - } - } - if(patchi->boundary==1){ - PatchBoundsCPP_CB(BOUND_UPDATE_COLORS); - } - else{ - SliceBoundsCPP_CB(BOUND_UPDATE_COLORS); - } - UpdateUnitDefs(); - UpdateTimes(); - force_redisplay = 1; - UpdateFrameNumber(1); - } - stept = 1; - force_redisplay = 1; - updatemenu = 1; - STOP_TIMER(total_time); - if(current_script_command==NULL||current_script_command->command!=SCRIPT_LOADSLICERENDER){ - PRINTF(" - %.1f MB/%.1f s\n", (float)return_filesize/1000000., total_time); - } - PrintMemoryInfo; - return return_filesize; -} - /* ------------------ SetTimeState ------------------------ */ void SetTimeState(void){ diff --git a/Source/smokeview/IOgeometry.c b/Source/smokeview/IOgeometry.c index 998c436fd4..8a08e9c942 100644 --- a/Source/smokeview/IOgeometry.c +++ b/Source/smokeview/IOgeometry.c @@ -3,8 +3,14 @@ #include #include #include +#include GLUT_H #include "smokeviewvars.h" +#include "IOscript.h" + +#define MAX_FRAMES 1000000 +#define BUILD_GEOM_OFFSETS 0 +#define GET_GEOM_OFFSETS -1 void UpdateGeomTriangles(geomdata *geomi, int geom_type); @@ -2074,6 +2080,503 @@ void ReadGeomHeader(geomdata *geomi, int *geom_frame_index, int *ntimes_local){ } } + +/* ------------------ GetGeomDataSize ------------------------ */ + +int GetGeomDataSize(char *filename, int *nvars, float *tmin, float *tmax, int time_frame, + int *geom_offsets, int *geom_offset_flag, int *error){ + + float time; + int one, version; + int nvert_s, nvert_d, nface_s, nface_d; + FILE *stream=NULL; + int returncode=0; + int nvars_local, ntimes_local; + int first = 1; + int iframe; + int geom_offset_index=0, geom_offset = 0, frame_start; + + *error=1; + *tmin = 0.0; + *tmax = 1.0; + *nvars = 0; + if(filename==NULL)return 0; + stream = fopen(filename,"rb"); + if(stream==NULL)printf(" The boundary element file name, %s, does not exist",filename); + + *error = 0; + + FORTREAD(&one, 1, stream); + FORTREAD(&version, 1, stream); + + geom_offset = 0; + ntimes_local = 0; + nvars_local = 0; + if(geom_offset_flag==NULL||*geom_offset_flag==BUILD_GEOM_OFFSETS||time_frame==ALL_FRAMES){ + frame_start = 0; + } + else{ + frame_start = time_frame; + fseek(stream, geom_offsets[time_frame], SEEK_CUR); + } + for(iframe=frame_start;;iframe++){ + int nvals[4], nskip; + + if(geom_offset_flag!=NULL&&*geom_offset_flag==BUILD_GEOM_OFFSETS)geom_offsets[geom_offset_index] = geom_offset; + FORTREAD(&time, 1, stream); + geom_offset += (4+4+4); + if(time_frame==ALL_FRAMES||time_frame==iframe){ + if(first==1){ + first = 0; + *tmin = time; + } + *tmax = time; + } + if(returncode==0)break; + FORTREAD(nvals, 4, stream); + geom_offset += (4+4*4+4); + if(returncode==0)break; + nvert_s = nvals[0]; + nface_s = nvals[1]; + nvert_d = nvals[2]; + nface_d = nvals[3]; + nskip = 0; + if(nvert_s>0)nskip += 4 + 4*nvert_s + 4; + if(nface_s>0)nskip += 4 + 4*nface_s + 4; + if(nvert_d>0)nskip += 4 + 4*nvert_d + 4; + if(nface_d>0)nskip += 4 + 4*nface_d + 4; + geom_offset += nskip; + if(time_frame==ALL_FRAMES||time_frame==iframe){ + nvars_local += nvert_s+nvert_d+nface_s+nface_d; + ntimes_local++; + } + geom_offset_index++; + if(geom_offset_flag!=NULL&&*geom_offset_flag==GET_GEOM_OFFSETS&&time_frame==iframe)break; + if(fseek(stream, nskip, SEEK_CUR)!=0)break; + } + fclose(stream); + *nvars = nvars_local; + if(geom_offset_flag!=NULL&&*geom_offset_flag==BUILD_GEOM_OFFSETS)*geom_offset_flag = geom_offset_index; + return ntimes_local; +} + +/* ------------------ GetGeomData------------------------ */ + +FILE_SIZE GetGeomData(char *filename, int ntimes, int nvals, float *times, int *nstatics, int *ndynamics, float *vals, + int time_frame, float *time_value, int *geom_offsets, int *error){ + FILE_SIZE file_size; + + int one, nvars; + int nvert_s, ntri_s, nvert_d, ntri_d; + int version; + int returncode=0; + int count; + float time; + int iframe, frame_start, frame_stop; + + FILE *stream; + + file_size = 0; + *error = 1; + if(filename==NULL)return 0; + stream = fopen(filename, "rb"); + if(stream==NULL){ + printf(" The boundary file name %s does not exist\n",filename); + return 0; + } + + *error = 0; + FORTREAD(&one, 1, stream); + FORTREAD(&version, 1, stream); + file_size = 2*(4+4+4); + nvars = 0; + count = 0; + if(time_frame==ALL_FRAMES){ + frame_start = 0; + frame_stop = ntimes; + } + else{ + frame_start = time_frame; + frame_stop = time_frame+1; + fseek(stream, geom_offsets[time_frame], SEEK_CUR); + } + for(iframe = frame_start; iframe0){ + if(time_frame==ALL_FRAMES||time_frame==iframe){ + FORTREAD(vals+nvars, nvert_s, stream); + if(returncode==0)break; + file_size += (4+4*nvert_s+4); + nvars += nvert_s; + } + else{ + fseek(stream, 4+4*nvert_s+4, SEEK_CUR); + } + } + + if(ntri_s>0){ + if(time_frame==ALL_FRAMES||time_frame==iframe){ + FORTREAD(vals+nvars, ntri_s, stream); + if(returncode==0)break; + file_size += (4+4*ntri_s+4); + nvars += ntri_s; + } + else{ + fseek(stream, (4+4*ntri_s+4), SEEK_CUR); + } + } + + if(time_frame==ALL_FRAMES||time_frame==iframe)ndynamics[count] = nvert_d+ntri_d; + if(nvert_d>0){ + if(time_frame==ALL_FRAMES||time_frame==iframe){ + FORTREAD(vals+nvars, nvert_d, stream); + if(returncode==0)break; + file_size += (4+4*nvert_d+4); + nvars += nvert_d; + } + else{ + fseek(stream, 4+4*nvert_d+4, SEEK_CUR); + } + } + + if(ntri_d>0){ + if(time_frame==ALL_FRAMES||time_frame==iframe){ + FORTREAD(vals+nvars, ntri_d, stream); + if(returncode==0)break; + file_size += (4+4*ntri_d+4); + nvars += ntri_d; + } + else{ + fseek(stream, 4+4*ntri_d+4, SEEK_CUR); + } + } + if(time_frame==iframe){ + *time_value = times[count]; + break; + } + if(time_frame==ALL_FRAMES)count++; + } + fclose(stream); + return file_size; +} + +/* ------------------ ReadGeomData ------------------------ */ + +FILE_SIZE ReadGeomData(patchdata *patchi, slicedata *slicei, int load_flag, int time_frame, float *time_value, int *errorcode){ + char *file; + int ntimes_local; + int i; + int nvals; + int n; + int error; + FILE_SIZE return_filesize = 0; + float total_time; + float tmin_local, tmax_local; + int *geom_offsets=NULL, geom_offset_flag; + + // 1 + // time + // nstatic + // vals_1, ...vals_nstatic + // ndynamic + // vals_1, ... vals_ndyamic + + if(patchi->structured == YES)return 0; + + START_TIMER(total_time); + file = patchi->file; + + patchi->loaded = 0; + patchi->display = 0; + if(slicei != NULL){ + slicei->loaded = 0; + slicei->display = 0; + slicei->vloaded = 0; + slicei->ntimes = 0; + slicei->times = NULL; + } + patchi->bounds.defined=0; + + FREEMEMORY(patchi->geom_nstatics); + FREEMEMORY(patchi->geom_ndynamics); + FREEMEMORY(patchi->geom_ivals_static); + FREEMEMORY(patchi->geom_ivals_dynamic); + FREEMEMORY(patchi->geom_vals_static); + FREEMEMORY(patchi->geom_vals_dynamic); + FREEMEMORY(patchi->geom_vals); + FREEMEMORY(patchi->geom_ivals); + FREEMEMORY(patchi->geom_times); + if(load_flag==UNLOAD){ + plotstate = GetPlotState(DYNAMIC_PLOTS); + if(patchi->boundary==1)UpdateBoundaryType(); + UpdateUnitDefs(); + UpdateTimes(); + update_draw_hist = 1; + PrintMemoryInfo; + return 0; + } + if(patchi->skip == 1)return 0; + + //GetGeomDataHeader(file,&ntimes,&nvals); + + if(time_value!=NULL){ + NewMemory((void **)&geom_offsets, MAX_FRAMES*sizeof(int)); + geom_offset_flag = BUILD_GEOM_OFFSETS; + } + else{ + geom_offset_flag = GET_GEOM_OFFSETS; + } + + ntimes_local = GetGeomDataSize(file, &nvals, &tmin_local, &tmax_local, time_frame, geom_offsets, &geom_offset_flag, &error); + + if(time_value!=NULL){ + if(geom_offset_flag>0){ + ResizeMemory((void **)&geom_offsets, geom_offset_flag*sizeof(int)); + if(patchi!=NULL)patchi->geom_offsets = geom_offsets; + if(slicei!=NULL)slicei->geom_offsets = geom_offsets; + + } + else if(geom_offset_flag==0){ + FREEMEMORY(geom_offsets); + } + else{ + if(patchi!=NULL)geom_offsets = patchi->geom_offsets; + if(slicei!=NULL)geom_offsets = slicei->geom_offsets; + } + } + + if(ntimes_local>0){ + NewMemory((void **)&patchi->geom_nstatics, ntimes_local*sizeof(int)); + NewMemory((void **)&patchi->geom_ndynamics, ntimes_local*sizeof(int)); + NewMemory((void **)&patchi->geom_times, ntimes_local*sizeof(float)); + NewMemory((void **)&patchi->geom_ivals_static, ntimes_local*sizeof(int *)); + NewMemory((void **)&patchi->geom_ivals_dynamic, ntimes_local*sizeof(int *)); + NewMemory((void **)&patchi->geom_vals_static, ntimes_local*sizeof(float *)); + NewMemory((void **)&patchi->geom_vals_dynamic, ntimes_local*sizeof(float *)); + } + if(nvals>0){ + NewMemory((void **)&patchi->geom_vals, nvals*sizeof(float)); + NewMemory((void **)&patchi->geom_ivals, nvals*sizeof(char)); + } + + if(load_flag == UPDATE_HIST){ + GetGeomData(file, ntimes_local, nvals, patchi->geom_times, + patchi->geom_nstatics, patchi->geom_ndynamics, patchi->geom_vals, time_frame, time_value, geom_offsets, &error); + ResetHistogram(patchi->histogram, NULL, NULL); + UpdateHistogram(patchi->geom_vals, NULL, nvals, patchi->histogram); + CompleteHistogram(patchi->histogram); + return 0; + } + else{ + int filesize; + + if(current_script_command==NULL||current_script_command->command!=SCRIPT_LOADSLICERENDER){ + PRINTF("Loading %s(%s)", file, patchi->label.shortlabel); + } + filesize=GetGeomData(file, ntimes_local, nvals, patchi->geom_times, + patchi->geom_nstatics, patchi->geom_ndynamics, patchi->geom_vals, time_frame, time_value, geom_offsets, &error); + return_filesize += filesize; + } + + patchi->ngeom_times = ntimes_local; + patchi->geom_nvals = nvals; + patchi->geom_ivals_static[0] = patchi->geom_ivals; + patchi->geom_ivals_dynamic[0] = patchi->geom_ivals_static[0]+patchi->geom_nstatics[0]; + for(i = 1;igeom_ivals_static[i] = patchi->geom_ivals_dynamic[i-1] + patchi->geom_ndynamics[i-1]; + patchi->geom_ivals_dynamic[i] = patchi->geom_ivals_static[i] + patchi->geom_nstatics[i]; + } + + patchi->geom_vals_static[0] = patchi->geom_vals; + patchi->geom_vals_dynamic[0] = patchi->geom_vals_static[0] + patchi->geom_nstatics[0]; + for(i = 1; igeom_vals_static[i] = patchi->geom_vals_dynamic[i-1] + patchi->geom_ndynamics[i-1]; + patchi->geom_vals_dynamic[i] = patchi->geom_vals_static[i] + patchi->geom_nstatics[i]; + } + + patchi->loaded = 1; + patchi->display = 1; + + if(slicei == NULL){ + if(colorlabelpatch != NULL){ + for (n = 0; n < MAXRGB; n++){ + FREEMEMORY(colorlabelpatch[n]); + } + FREEMEMORY(colorlabelpatch); + } + if(NewMemory((void **)&colorlabelpatch, MAXRGB * sizeof(char *)) == 0){ + ReadGeomData(patchi, NULL, UNLOAD, time_frame, time_value, &error); + return 0; + } + for (n = 0; n < MAXRGB; n++){ + colorlabelpatch[n] = NULL; + } + for (n = 0; n < nrgb; n++){ + if(NewMemory((void **)&colorlabelpatch[n], 11) == 0){ + ReadGeomData(patchi, NULL, UNLOAD, time_frame, time_value, &error); + return 0; + } + } + int set_valmin, set_valmax; + float valmin, valmax; + char *label; + + label = patchi->label.shortlabel; + + GetMinMax(BOUND_PATCH, label, &set_valmin, &valmin, &set_valmax, &valmax); + GetBoundaryColors3(patchi, patchi->geom_vals, 0, patchi->geom_nvals, patchi->geom_ivals, + &valmin, &valmax, + nrgb, colorlabelpatch, colorvaluespatch, boundarylevels256, + &patchi->extreme_min, &patchi->extreme_max, 1); + if(cache_boundary_data==0){ + FREEMEMORY(patchi->geom_vals); + } + } + else { + int slicetype; + boundsdata *sb; + float qmin, qmax; + + slicetype = GetSliceBoundsIndex(slicei); + sb = slicebounds + slicetype; + sb->label = &(slicei->label); + + HideSlices(slicei->label.longlabel); + slicei->loaded = 1; + slicei->display = 1; + slicei->ntimes = patchi->ngeom_times; + slicei->times = patchi->geom_times; + + UpdateLoadedLists(); + GetSliceDataBounds(slicei, &qmin, &qmax); + slicei->globalmin = qmin; + slicei->globalmax = qmax; + slicei->valmin_smv = qmin; + slicei->valmax_smv = qmax; + if(slice_average_flag==1){ + int data_per_timestep, nvals2, ntimes; + float *vals, *times; + + show_slice_average = 1; + vals = slicei->patchgeom->geom_vals; + nvals2 = slicei->patchgeom->geom_nvals; + times = patchi->geom_times; + ntimes = patchi->ngeom_times; + data_per_timestep = nvals2/ntimes; + if(TimeAverageData(vals, vals, nvals2, data_per_timestep, times, ntimes, slice_average_interval)==1){ + show_slice_average = 0; + } + } + slicei->valmin = qmin; + slicei->valmax = qmax; + slicei->valmin_data = qmin; + slicei->valmax_data = qmax; + for (i = 0; i < 256; i++){ + slicei->qval256[i] = (qmin*(255 - i) + qmax*i) / 255; + } + UpdateSliceBounds(); + slicefile_labelindex = GetSliceBoundsIndexFromLabel(patchi->label.shortlabel); + UpdateAllSliceColors(slicefile_labelindex, errorcode); + list_slice_index = slicefile_labelindex; + SliceBounds2Glui(slicefile_labelindex); + + GetSliceColors(patchi->geom_vals, patchi->geom_nvals, patchi->geom_ivals, + glui_slicemin, glui_slicemax, nrgb_full, nrgb, + sb->colorlabels, sb->colorvalues, sb->levels256, + &slicei->extreme_min, &slicei->extreme_max, 1 + ); + } + + if(patchi->boundary == 1){ + iboundarytype = GetBoundaryType(patchi); + } + else { + slicefile_labelindex = GetSliceBoundsIndexFromLabel(patchi->label.shortlabel); + } + if((slicei==NULL&&patchi->finalize==1)||(slicei!=NULL&&slicei->finalize==1)){ + plotstate = GetPlotState(DYNAMIC_PLOTS); + if(patchi->boundary==1)UpdateBoundaryType(); + cpp_boundsdata *bounds; + int bound_type; + + if(patchi->boundary==1){ + bound_type = BOUND_PATCH; + } + else{ + bound_type = BOUND_SLICE; + } + + bounds = GetBoundsData(bound_type); + if(bounds->set_valmin==BOUND_PERCENTILE_MIN||bounds->set_valmax==BOUND_PERCENTILE_MAX){ + float global_min = 0.0, global_max = 1.0; + + if(patchi->boundary==1){ + GetGlobalBoundsMinMax(BOUND_PATCH, bounds->label, &global_min, &global_max); + ComputeLoadedPatchHist(bounds->label, &(bounds->hist), &global_min, &global_max); + } + else{ + ComputeLoadedSliceHist(bounds->label, &(bounds->hist)); + } + if(bounds->hist->defined==1){ + if(bounds->set_valmin==BOUND_PERCENTILE_MIN){ + float per_valmin; + + GetHistogramValProc(bounds->hist, percentile_level_min, &per_valmin); + SetMin(bound_type, bounds->label, BOUND_PERCENTILE_MIN, per_valmin); + } + if(bounds->set_valmax==BOUND_PERCENTILE_MAX){ + float per_valmax; + + GetHistogramValProc(bounds->hist, percentile_level_max, &per_valmax); + SetMax(bound_type, bounds->label, BOUND_PERCENTILE_MAX, per_valmax); + } + } + } + if(bounds->set_valmin==BOUND_SET_MIN||bounds->set_valmax==BOUND_SET_MAX){ + if(patchi->boundary==1){ + } + else{ + int set_valmin, set_valmax; + float valmin_dlg, valmax_dlg; + + GetMinMax(BOUND_SLICE, bounds->label, &set_valmin, &valmin_dlg, &set_valmax, &valmax_dlg); + } + } + if(patchi->boundary==1){ + PatchBoundsCPP_CB(BOUND_UPDATE_COLORS); + } + else{ + SliceBoundsCPP_CB(BOUND_UPDATE_COLORS); + } + UpdateUnitDefs(); + UpdateTimes(); + force_redisplay = 1; + UpdateFrameNumber(1); + } + stept = 1; + force_redisplay = 1; + updatemenu = 1; + STOP_TIMER(total_time); + if(current_script_command==NULL||current_script_command->command!=SCRIPT_LOADSLICERENDER){ + PRINTF(" - %.1f MB/%.1f s\n", (float)return_filesize/1000000., total_time); + } + PrintMemoryInfo; + return return_filesize; +} + /* ------------------ GetGeomDataHeader ------------------------ */ void GetGeomDataHeader(char *file, int *ntimes_local, int *nvals){ From 5a994c6aa32f240fd41cc32ff5dbd23915913e87 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 31 May 2023 22:14:42 -0400 Subject: [PATCH 16/49] smokeview source: add equi-distance bars to when drawing cie colorbars in the color editor --- Source/smokeview/colortimebar.c | 21 +++++++++++++++++++-- Source/smokeview/glui_colorbar.cpp | 1 + Source/smokeview/smokeviewvars.h | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index f339943dd8..b3384209da 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -274,7 +274,7 @@ void DrawColorbarPathRGB(void){ glScalef(SCALE2SMV(1.0),SCALE2SMV(1.0),SCALE2SMV(1.0)); glTranslatef(-xbar0,-ybar0,-zbar0); int skip = 1; - if(cbi->nnodes > 20)skip = cbi->nnodes / 20; + if(cbi->nnodes > 16)skip = cbi->nnodes / 16; for(i=0;innodes;i+=skip){ char cbuff[1024]; float dzpoint; @@ -384,6 +384,7 @@ void DrawColorbarPathRGB(void){ void DrawColorbarPathCIE(void){ int i; colorbardata *cbi; + float cie_dist[256], cie_last[3], ddist, current_dist=0.0; if(show_firecolormap == 0){ cbi = colorbarinfo + colorbartype; @@ -393,6 +394,7 @@ void DrawColorbarPathCIE(void){ } glPointSize(5.0); glBegin(GL_POINTS); + cie_dist[0] = 0.0; for(i = 0; i < 256; i++){ float *rgbi, cie[3], xyz[3]; unsigned char rgb255[3]; @@ -406,8 +408,18 @@ void DrawColorbarPathCIE(void){ xyz[2] = cie[0] / 100.0; xyz[0] = (cie[1]+87.9)/183.28; xyz[1] = (cie[2]+126.39)/211.11; + if(i > 0){ + float dx, dy, dz; + + dx = cie[0] - cie_last[0]; + dy = cie[1] - cie_last[1]; + dz = cie[2] - cie_last[2]; + cie_dist[i] = cie_dist[i-1] + sqrt(dx * dx + dy * dy + dz * dz); + } + memcpy(cie_last, cie, 3 * sizeof(float)); glVertex3fv(xyz); } + ddist = cie_dist[255] / 16.0; #ifdef pp_COLOR_CIE_CHECK for(i = 0; i < 17 * 17 * 17; i++){ float xyz[3], *cie; @@ -509,7 +521,7 @@ void DrawColorbarPathCIE(void){ glScalef(SCALE2SMV(1.0), SCALE2SMV(1.0), SCALE2SMV(1.0)); glTranslatef(-xbar0, -ybar0, -zbar0); int skip = 1; - if(cbi->nnodes > 20)skip = cbi->nnodes / 20; + if(cbi->nnodes > 16)skip = cbi->nnodes / 16; for(i = 0;i < cbi->nnodes;i+=skip){ char cbuff[1024]; float dzpoint; @@ -532,6 +544,7 @@ void DrawColorbarPathCIE(void){ for(i=1;icolorbar+3*i; } + if(show_Lab_dist_bars==1&&ncolors == 255&&cie_dist[i]>current_dist){ + rgbi = black; + current_dist+=ddist; + } glColor3fv(rgbi); zbot=(float)i/(float)ncolors; ztop=(float)(i+1)/(float)ncolors; diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 7467998db4..ca854078fc 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -543,6 +543,7 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "cielab"); CHECKBOX_cb_interp = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2, "interpolate using cielab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2, "show equi-distance bars (cielab)", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Revert CIE"), COLORBAR_REVERT, ColorbarCB); #endif diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 89cfa08fce..88c91b525e 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -542,6 +542,7 @@ SVEXTERN int SVDECL(update_loadall_textures, 1); SVEXTERN int SVDECL(max_LIST_colorbar2, 0); SVEXTERN int SVDECL(max_LIST_colorbar, 0); #ifdef pp_COLOR_CIE +SVEXTERN int SVDECL(show_Lab_dist_bars, 0); SVEXTERN int SVDECL(interp_cielab, 1); SVEXTERN int SVDECL(update_colorbar_orig, 0); SVEXTERN float SVDECL(*cielab_check_xyz, NULL); From 4c4bcc50639e145fadeb67d42f71543d53c3f839 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 14 Jun 2023 18:30:07 -0400 Subject: [PATCH 17/49] smokeview source: fix some compiler warnings --- Source/smokeview/glui_bounds.cpp | 22 +++++++++++++++------- Source/smokeview/glui_colorbar.cpp | 22 +++++++++++++++------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 369dd5ac9d..f5e8c9b822 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4641,17 +4641,25 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *m extern "C" void UpdateColorbarList2All(void){ int i; + char label[64]; for(i=-7;idelete_item(i); } - AddColorbarList(LIST_colorbar2, -1, "rainbow", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -2, "linear", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -3, "divergent", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -4, "circular", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -7, "original", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -5, "deprecated", &max_LIST_colorbar2); - AddColorbarList(LIST_colorbar2, -6, "user", &max_LIST_colorbar2); + strcpy(label, "rainbow"); + AddColorbarList(LIST_colorbar2, -1, label, &max_LIST_colorbar2); + strcpy(label, "linear"); + AddColorbarList(LIST_colorbar2, -2, label, &max_LIST_colorbar2); + strcpy(label, "divergent"); + AddColorbarList(LIST_colorbar2, -3, label, &max_LIST_colorbar2); + strcpy(label, "circular"); + AddColorbarList(LIST_colorbar2, -4, label, &max_LIST_colorbar2); + strcpy(label, "original"); + AddColorbarList(LIST_colorbar2, -7, label, &max_LIST_colorbar2); + strcpy(label, "deprecated"); + AddColorbarList(LIST_colorbar2, -5, label, &max_LIST_colorbar2); + strcpy(label, "user"); + AddColorbarList(LIST_colorbar2, -6, label, &max_LIST_colorbar2); } /* ------------------ GluiBoundsSetup ------------------------ */ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index ca854078fc..b2387c1d57 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -492,17 +492,25 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int * extern "C" void UpdateColorbarListAll(void){ int i; + char label[64]; for(i=-7;idelete_item(i); } - AddColorbarList2(LISTBOX_colorbar, -1, "rainbow", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -2, "linear", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -3, "divergent", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -4, "circular", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -7, "original", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -5, "deprecated", &max_LIST_colorbar); - AddColorbarList2(LISTBOX_colorbar, -6, "user", &max_LIST_colorbar); + strcpy(label, "rainbow"); + AddColorbarList2(LISTBOX_colorbar, -1, label, &max_LIST_colorbar); + strcpy(label, "linear"); + AddColorbarList2(LISTBOX_colorbar, -2, label, &max_LIST_colorbar); + strcpy(label, "divergent"); + AddColorbarList2(LISTBOX_colorbar, -3, label, &max_LIST_colorbar); + strcpy(label, "circular"); + AddColorbarList2(LISTBOX_colorbar, -4, label, &max_LIST_colorbar); + strcpy(label, "original"); + AddColorbarList2(LISTBOX_colorbar, -7, label, &max_LIST_colorbar); + strcpy(label, "deprecated"); + AddColorbarList2(LISTBOX_colorbar, -5, label, &max_LIST_colorbar); + strcpy(label, "user"); + AddColorbarList2(LISTBOX_colorbar, -6, label, &max_LIST_colorbar); LISTBOX_colorbar->set_int_val(colorbartype); } From 787d5f5795b7702be6a680a23abe47819a059e51 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 15 Jun 2023 09:57:44 -0400 Subject: [PATCH 18/49] smokeview source: add button to toggle colorbars --- Source/smokeview/glui_bounds.cpp | 54 ++++++++++++++---------------- Source/smokeview/glui_colorbar.cpp | 41 ++++++----------------- Source/smokeview/smokeviewdefs.h | 3 +- Source/smokeview/smokeviewvars.h | 1 + 4 files changed, 38 insertions(+), 61 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index f5e8c9b822..69f3872f4a 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -52,8 +52,7 @@ int update_hist_bounds; #ifdef pp_COLOR_TOGGLE GLUI_Panel *PANEL_toggle_cba = NULL; -GLUI_Button *BUTTON_colorbar1a = NULL; -GLUI_Button *BUTTON_colorbar2a = NULL; +GLUI_Button *BUTTON_toggle2 = NULL; extern GLUI_Button *BUTTON_colorbar1; extern GLUI_Button *BUTTON_colorbar2; @@ -5482,32 +5481,6 @@ extern "C" void GluiBoundsSetup(int main_window){ LIST_colorbar2->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Previous"), COLORBAR_LIST2_PREV, SliceBoundCB); -#ifdef pp_COLOR_TOGGLE - PANEL_toggle_cba = glui_bounds->add_panel_to_panel(ROLLOUT_coloring, _("toggle colorbars")); - LISTBOX_colorbar1a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - LISTBOX_colorbar1a->add_item(i, cbi->label); - } - LISTBOX_colorbar1a->set_int_val(index_colorbar1); - - LISTBOX_colorbar2a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "colorbar 2", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - LISTBOX_colorbar2a->add_item(i, cbi->label); - } - LISTBOX_colorbar2a->set_int_val(index_colorbar2); - - BUTTON_colorbar1a = glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("colorbar 1"), COLORBAR_CB1, ColorbarCB); - ColorbarCB(COLORBAR_LISTA); - - BUTTON_colorbar2a = glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("colorbar 2"), COLORBAR_CB2, ColorbarCB); - ColorbarCB(COLORBAR_LISTB); -#endif } CHECKBOX_visColorbarVertical2 = glui_bounds->add_checkbox_to_panel(PANEL_colorbar_properties, "vertical", &visColorbarVertical, LABELS_vcolorbar, LabelsCB); @@ -5545,6 +5518,31 @@ extern "C" void GluiBoundsSetup(int main_window){ SPINNER_labels_transparency_data->set_float_limits(0.0, 1.0, GLUI_LIMIT_CLAMP); CHECKBOX_use_lighting = glui_bounds->add_checkbox_to_panel(PANEL_coloring, _("Lighting"), &use_lighting, CB_USE_LIGHTING, LabelsCB); +#ifdef pp_COLOR_TOGGLE + PANEL_toggle_cba = glui_bounds->add_panel_to_panel(PANEL_cb11, _("toggle colorbars")); + LISTBOX_colorbar1a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + + cbi = colorbarinfo + i; + LISTBOX_colorbar1a->add_item(i, cbi->label); + } + LISTBOX_colorbar1a->set_int_val(index_colorbar1); + + LISTBOX_colorbar2a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); + for(i = 0; i < ncolorbars; i++){ + colorbardata *cbi; + + cbi = colorbarinfo + i; + LISTBOX_colorbar2a->add_item(i, cbi->label); + } + LISTBOX_colorbar2a->set_int_val(index_colorbar2); + + BUTTON_toggle2 = glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); + ColorbarCB(COLORBAR_LISTA); + ColorbarCB(COLORBAR_LISTB); +#endif + PANEL_extreme = glui_bounds->add_panel_to_panel(ROLLOUT_coloring, "", GLUI_PANEL_NONE); if(use_data_extremes==1){ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index b2387c1d57..572a6c2080 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -53,10 +53,7 @@ GLUI_Button *BUTTON_colorbar_save=NULL; GLUI_Button *BUTTON_colorbar_close=NULL; GLUI_Button *BUTTON_autonodes = NULL; #ifdef pp_COLOR_TOGGLE -GLUI_Button *BUTTON_colorbar1 = NULL; -GLUI_Button *BUTTON_colorbar2 = NULL; -extern GLUI_Button *BUTTON_colorbar1a; -extern GLUI_Button *BUTTON_colorbar2a; +GLUI_Button *BUTTON_toggle = NULL; #endif GLUI_RadioGroup *RADIO_colorbar_coord_type; @@ -301,23 +298,15 @@ extern "C" void ColorbarCB(int var){ SPINNER_rgb2[2]->set_float_val(cb_frgb2[2]); break; #ifdef pp_COLOR_TOGGLE - case COLORBAR_CB1: - interp_cielab = 0; - LISTBOX_colorbar->set_int_val(index_colorbar1); -#ifdef pp_COLOR_ADJUST - ColorbarCB(COLORBAR_ADJUST); -#endif - ColorbarCB(COLORBAR_LIST); - CHECKBOX_cb_interp->set_int_val(interp_cielab); - break; - case COLORBAR_CB2: - interp_cielab = 1; - LISTBOX_colorbar->set_int_val(index_colorbar2); -#ifdef pp_COLOR_ADJUST - ColorbarCB(COLORBAR_ADJUST); -#endif + case COLORBAR_TOGGLE: + colorbar_toggle = 1 - colorbar_toggle; + if(colorbar_toggle == 0){ + LISTBOX_colorbar->set_int_val(index_colorbar1); + } + else{ + LISTBOX_colorbar->set_int_val(index_colorbar2); + } ColorbarCB(COLORBAR_LIST); - CHECKBOX_cb_interp->set_int_val(interp_cielab); break; #endif #endif @@ -352,18 +341,10 @@ extern "C" void ColorbarCB(int var){ break; #ifdef pp_COLOR_TOGGLE case COLORBAR_LISTA: - if(BUTTON_colorbar1 != NULL)BUTTON_colorbar1->set_name(colorbarinfo[index_colorbar1].label); - if(BUTTON_colorbar2 != NULL)BUTTON_colorbar2->set_name(colorbarinfo[index_colorbar2].label); - if(BUTTON_colorbar1a!=NULL)BUTTON_colorbar1a->set_name(colorbarinfo[index_colorbar1].label); - if(BUTTON_colorbar2a != NULL)BUTTON_colorbar2a->set_name(colorbarinfo[index_colorbar2].label); if(LISTBOX_colorbar1!=NULL)LISTBOX_colorbar1->set_int_val(index_colorbar1); if(LISTBOX_colorbar1a!=NULL)LISTBOX_colorbar1a->set_int_val(index_colorbar1); break; case COLORBAR_LISTB: - if(BUTTON_colorbar1 != NULL)BUTTON_colorbar1->set_name(colorbarinfo[index_colorbar1].label); - if(BUTTON_colorbar2 != NULL)BUTTON_colorbar2->set_name(colorbarinfo[index_colorbar2].label); - if(BUTTON_colorbar1a!=NULL)BUTTON_colorbar1a->set_name(colorbarinfo[index_colorbar1].label); - if(BUTTON_colorbar2a != NULL)BUTTON_colorbar2a->set_name(colorbarinfo[index_colorbar2].label); if(LISTBOX_colorbar2!=NULL)LISTBOX_colorbar2->set_int_val(index_colorbar2); if(LISTBOX_colorbar2a!=NULL)LISTBOX_colorbar2a->set_int_val(index_colorbar2); break; @@ -591,10 +572,8 @@ extern "C" void GluiColorbarSetup(int main_window){ } LISTBOX_colorbar2->set_int_val(index_colorbar2); - BUTTON_colorbar1 = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("colorbar 1"), COLORBAR_CB1, ColorbarCB); + BUTTON_toggle = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); ColorbarCB(COLORBAR_LISTA); - - BUTTON_colorbar2 = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("colorbar 2"), COLORBAR_CB2, ColorbarCB); ColorbarCB(COLORBAR_LISTB); #endif PANEL_point = glui_colorbar->add_panel(_("Node")); diff --git a/Source/smokeview/smokeviewdefs.h b/Source/smokeview/smokeviewdefs.h index 7b601ada34..99418644ff 100644 --- a/Source/smokeview/smokeviewdefs.h +++ b/Source/smokeview/smokeviewdefs.h @@ -131,8 +131,7 @@ EXTERNCPP void _Sniff_Errors(const char *whereat, const char *file, int line); #define COLORBAR_SELECTION_WIDTH_MAX 10 #ifdef pp_COLOR_TOGGLE -#define COLORBAR_CB1 28 -#define COLORBAR_CB2 29 +#define COLORBAR_TOGGLE 28 #define COLORBAR_LISTA 30 #define COLORBAR_LISTB 31 #endif diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index eefe426425..ff2ecdcce3 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -551,6 +551,7 @@ SVEXTERN float cb_lab2[3], cb_frgb2[3]; SVEXTERN int cb_rgb2[3]; #ifdef pp_COLOR_TOGGLE SVEXTERN int SVDECL(index_colorbar1, 0), SVDECL(index_colorbar2, 1); +SVEXTERN int SVDECL(colorbar_toggle, 1); #endif #ifdef pp_COLOR_CIE_CHECK SVEXTERN unsigned char SVDECL(*cielab_check_rgb255, NULL); From d5120ec090090abb11584e621ae1e039145db39c Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 15 Jun 2023 10:42:15 -0400 Subject: [PATCH 19/49] smokeview source: change 'cool' colorbar from 'deprecated' to 'original' --- Source/smokeview/colortimebar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 886a5a1e32..ddce3bf8b1 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1863,7 +1863,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[18] = 255; cbi->rgb_node[19] = 255; cbi->rgb_node[20] = 255; - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; // fire line (level set) From 8d584fee8e74e120219471c18af4c0a3f6fa7149 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 15 Jun 2023 13:54:05 -0400 Subject: [PATCH 20/49] smokeview source: make colorbar lists consistent --- Source/smokeview/colortimebar.c | 4 +- Source/smokeview/glui_bounds.cpp | 59 +++++++++++++++------------ Source/smokeview/glui_colorbar.cpp | 64 ++++++++++++++++-------------- Source/smokeview/smokeheaders.h | 4 +- Source/smokeview/smokeviewdefs.h | 2 + 5 files changed, 74 insertions(+), 59 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index ddce3bf8b1..0c7dd21480 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1387,8 +1387,8 @@ void AddColorbar(int icolorbar){ strcpy(cb_to->ctype, "user"); RemapColorbar(cb_to); SortColorBars(); - UpdateColorbarListAll(); - UpdateColorbarList2All(); + UpdateColorbarListEdit(1,CB_DELETE); + UpdateColorbarListBound(1); colorbardata *cbnew; diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 69f3872f4a..05d8ded189 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4605,9 +4605,9 @@ extern "C" void UpdateSliceXYZ(void){ if(SPINNER_slice_z!=NULL)SPINNER_slice_z->set_float_val(slice_xyz[2]); } -/* ------------------ AddColorbarList ------------------------ */ +/* ------------------ AddColorbarListBound ------------------------ */ -void AddColorbarList(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ +void AddColorbarListBound(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ char cbar_type[256]; int i, nitems = 0; @@ -4630,35 +4630,52 @@ void AddColorbarList(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *m cbi = colorbarinfo + i; if(strcmp(cbi->ctype, label_arg) != 0)continue; #ifdef pp_COLOR_TOGGLE - LIST_colorbar2->add_item(i, cbi->label); + LIST_cbar->add_item(i, cbi->label); *max_index = MAX(i, *max_index); #endif } } -/* ------------------ UpdateColorbarList2All ------------------------ */ +/* ------------------ UpdateColorbarListBound ------------------------ */ -extern "C" void UpdateColorbarList2All(void){ +extern "C" void UpdateColorbarListBound(int flag){ int i; char label[64]; + GLUI_Listbox *LIST_cb; + + switch (flag){ + case 1: + LIST_cb = LIST_colorbar2; + break; + case 2: + LIST_cb = LISTBOX_colorbar1a; + break; + case 3: + LIST_cb = LISTBOX_colorbar2a; + break; + default: + LIST_cb = LIST_colorbar2; + ASSERT(FFALSE); + break; + } for(i=-7;idelete_item(i); + LIST_cb->delete_item(i); } strcpy(label, "rainbow"); - AddColorbarList(LIST_colorbar2, -1, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -1, label, &max_LIST_colorbar2); strcpy(label, "linear"); - AddColorbarList(LIST_colorbar2, -2, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -2, label, &max_LIST_colorbar2); strcpy(label, "divergent"); - AddColorbarList(LIST_colorbar2, -3, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -3, label, &max_LIST_colorbar2); strcpy(label, "circular"); - AddColorbarList(LIST_colorbar2, -4, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -4, label, &max_LIST_colorbar2); strcpy(label, "original"); - AddColorbarList(LIST_colorbar2, -7, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -7, label, &max_LIST_colorbar2); strcpy(label, "deprecated"); - AddColorbarList(LIST_colorbar2, -5, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -5, label, &max_LIST_colorbar2); strcpy(label, "user"); - AddColorbarList(LIST_colorbar2, -6, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -6, label, &max_LIST_colorbar2); } /* ------------------ GluiBoundsSetup ------------------------ */ @@ -5476,7 +5493,7 @@ extern "C" void GluiBoundsSetup(int main_window){ selectedcolorbar_index2 = -1; LIST_colorbar2 = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); - UpdateColorbarList2All(); + UpdateColorbarListBound(1); LIST_colorbar2->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); @@ -5521,21 +5538,11 @@ extern "C" void GluiBoundsSetup(int main_window){ #ifdef pp_COLOR_TOGGLE PANEL_toggle_cba = glui_bounds->add_panel_to_panel(PANEL_cb11, _("toggle colorbars")); LISTBOX_colorbar1a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - LISTBOX_colorbar1a->add_item(i, cbi->label); - } + UpdateColorbarListBound(2); LISTBOX_colorbar1a->set_int_val(index_colorbar1); LISTBOX_colorbar2a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); - for(i = 0; i < ncolorbars; i++){ - colorbardata *cbi; - - cbi = colorbarinfo + i; - LISTBOX_colorbar2a->add_item(i, cbi->label); - } + UpdateColorbarListBound(3); LISTBOX_colorbar2a->set_int_val(index_colorbar2); BUTTON_toggle2 = glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 572a6c2080..0045f7fe99 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -439,9 +439,9 @@ extern "C" void ColorbarCB(int var){ } } -/* ------------------ AddColorbarList2 ------------------------ */ +/* ------------------ AddColorbarListEdit ------------------------ */ -void AddColorbarList2(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ +void AddColorbarListEdit(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int *max_index){ char cbar_type[256]; int i, nitems=0; @@ -469,30 +469,48 @@ void AddColorbarList2(GLUI_Listbox *LIST_cbar, int index, char *label_arg, int * } } -/* ------------------ UpdateColorbarListAll ------------------------ */ +/* ------------------ UpdateColorbarListEdit ------------------------ */ -extern "C" void UpdateColorbarListAll(void){ +extern "C" void UpdateColorbarListEdit(int flag, int del){ int i; char label[64]; + GLUI_Listbox *LISTBOX_cb; - for(i=-7;idelete_item(i); + switch(flag){ + case 1: + LISTBOX_cb = LISTBOX_colorbar; + break; + case 2: + LISTBOX_cb = LISTBOX_colorbar1; + break; + case 3: + LISTBOX_cb = LISTBOX_colorbar2; + break; + default: + LISTBOX_cb = LISTBOX_colorbar; + ASSERT(FFALSE); + break; + } + + if(del == CB_DELETE){ + for(i = -7; i < ncolorbars; i++){ + LISTBOX_cb->delete_item(i); + } } strcpy(label, "rainbow"); - AddColorbarList2(LISTBOX_colorbar, -1, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LIST_colorbar); strcpy(label, "linear"); - AddColorbarList2(LISTBOX_colorbar, -2, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LIST_colorbar); strcpy(label, "divergent"); - AddColorbarList2(LISTBOX_colorbar, -3, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LIST_colorbar); strcpy(label, "circular"); - AddColorbarList2(LISTBOX_colorbar, -4, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LIST_colorbar); strcpy(label, "original"); - AddColorbarList2(LISTBOX_colorbar, -7, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LIST_colorbar); strcpy(label, "deprecated"); - AddColorbarList2(LISTBOX_colorbar, -5, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LIST_colorbar); strcpy(label, "user"); - AddColorbarList2(LISTBOX_colorbar, -6, label, &max_LIST_colorbar); - LISTBOX_colorbar->set_int_val(colorbartype); + AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LIST_colorbar); } /* ------------------ GluiColorbarSetup ------------------------ */ @@ -541,7 +559,7 @@ extern "C" void GluiColorbarSetup(int main_window){ if(ncolorbars>0){ selectedcolorbar_index=-1; LISTBOX_colorbar=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); - UpdateColorbarListAll(); + UpdateColorbarListEdit(1,CB_KEEP); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); BUTTON_update=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Update label"),COLORBAR_UPDATE,ColorbarCB); @@ -551,25 +569,13 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_column_to_panel(PANEL_cb11r,false); BUTTON_next = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Next"), COLORBAR_NEXT, ColorbarCB); #ifdef pp_COLOR_TOGGLE - int i; - PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar1=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); - for(i=0;iadd_item(i,cbi->label); - } + UpdateColorbarListEdit(2, CB_KEEP); LISTBOX_colorbar1->set_int_val(index_colorbar1); LISTBOX_colorbar2=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 2",&index_colorbar2, COLORBAR_LISTB, ColorbarCB); - for(i=0;iadd_item(i,cbi->label); - } + UpdateColorbarListEdit(3, CB_KEEP); LISTBOX_colorbar2->set_int_val(index_colorbar2); BUTTON_toggle = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index d0b1fdbe00..c91eb2b7a1 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -697,8 +697,8 @@ EXTERNCPP sv_object *GetSmvObjectType2(char *label, sv_object *default_object); EXTERNCPP void FreeAllObjects(void); EXTERNCPP void UpdatePartClassDepend(partclassdata *partclassi); -EXTERNCPP void UpdateColorbarList2All(void); -EXTERNCPP void UpdateColorbarListAll(void); +EXTERNCPP void UpdateColorbarListBound(int flag); +EXTERNCPP void UpdateColorbarListEdit(int flag,int del); #ifdef pp_COLOR_CIE EXTERNCPP void AdjustColorBar(colorbardata *cbi); diff --git a/Source/smokeview/smokeviewdefs.h b/Source/smokeview/smokeviewdefs.h index 99418644ff..e852d85243 100644 --- a/Source/smokeview/smokeviewdefs.h +++ b/Source/smokeview/smokeviewdefs.h @@ -134,6 +134,8 @@ EXTERNCPP void _Sniff_Errors(const char *whereat, const char *file, int line); #define COLORBAR_TOGGLE 28 #define COLORBAR_LISTA 30 #define COLORBAR_LISTB 31 +#define CB_KEEP 0 +#define CB_DELETE 1 #endif From c82724499101db926c5e8bae0d1baabec37c3dc6 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 15 Jun 2023 14:14:49 -0400 Subject: [PATCH 21/49] smokeview source: append (original) to original Rainbow colorbar name so its name is not duplicated --- Source/smokeview/colortimebar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 0c7dd21480..4823ccc658 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1439,7 +1439,7 @@ void InitDefaultColorbars(int nini){ // rainbow colorbar - strcpy(cbi->label,"Rainbow"); + strcpy(cbi->label,"Rainbow(original)"); cbi->nnodes=5; cbi->nodehilight=0; From 573997089847f5af9b32633ae21a4a9d104d1830 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 15 Jun 2023 16:42:11 -0400 Subject: [PATCH 22/49] smokeview source: set some colorbars to be deprecated --- Source/smokeview/colortimebar.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 4823ccc658..c13a9f7fee 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1468,7 +1468,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[13]=0; cbi->rgb_node[14]=0; #ifdef pp_COLOR_NEW - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); #else strcpy(cbi->ctype, "rainbow"); #endif @@ -1540,7 +1540,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[34]=5; cbi->rgb_node[35]=13; #ifdef pp_COLOR_NEW - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); #else strcpy(cbi->ctype, "rainbow"); #endif @@ -1616,7 +1616,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // blue->red split @@ -1644,7 +1644,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=0; cbi->rgb_node[11]=0; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // black->white @@ -1731,7 +1731,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=128; cbi->rgb_node[11]=0; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // fire 2 @@ -1863,7 +1863,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[18] = 255; cbi->rgb_node[19] = 255; cbi->rgb_node[20] = 255; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // fire line (level set) @@ -1949,7 +1949,7 @@ void InitDefaultColorbars(int nini){ for(i = 0; i < 12; i++){ cbi->rgb_node[i] = colorsplit[i]; } - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; @@ -1979,7 +1979,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9] = 255; cbi->rgb_node[10] = 255; cbi->rgb_node[11] = 255; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // Propane @@ -2013,7 +2013,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12] = 255; cbi->rgb_node[13] = 255; cbi->rgb_node[14] = 255; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; // CO2 @@ -2037,7 +2037,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6] = 255; cbi->rgb_node[7] = 255; cbi->rgb_node[8] = 255; - strcpy(cbi->ctype, "original"); + strcpy(cbi->ctype, "deprecated"); cbi++; #ifdef pp_COLORBARS_CSV From 07beb5a9327f79c0b082920ba0364a1d3f31b07b Mon Sep 17 00:00:00 2001 From: gforney Date: Fri, 16 Jun 2023 10:02:22 -0400 Subject: [PATCH 23/49] smokeview source: improve formatting of colorbar dialog editor --- Source/smokeview/glui_colorbar.cpp | 46 ++++++++++++++---------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 0045f7fe99..0a9261d23f 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -545,16 +545,6 @@ extern "C" void GluiColorbarSetup(int main_window){ #endif colorbar_hidescene=1; CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); -#ifdef pp_COLOR_CIE - RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup_to_panel(PANEL_cb2R2, &colorbar_coord_type); - glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); - glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "cielab"); - CHECKBOX_cb_interp = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2, "interpolate using cielab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); - glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2, "show equi-distance bars (cielab)", &show_Lab_dist_bars); -#ifdef pp_COLOR_ADJUST - glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Revert CIE"), COLORBAR_REVERT, ColorbarCB); -#endif -#endif PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); if(ncolorbars>0){ selectedcolorbar_index=-1; @@ -568,20 +558,6 @@ extern "C" void GluiColorbarSetup(int main_window){ BUTTON_prev = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Previous"), COLORBAR_PREV, ColorbarCB); glui_colorbar->add_column_to_panel(PANEL_cb11r,false); BUTTON_next = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Next"), COLORBAR_NEXT, ColorbarCB); -#ifdef pp_COLOR_TOGGLE - PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); - LISTBOX_colorbar1=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); - UpdateColorbarListEdit(2, CB_KEEP); - LISTBOX_colorbar1->set_int_val(index_colorbar1); - - LISTBOX_colorbar2=glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb,"colorbar 2",&index_colorbar2, COLORBAR_LISTB, ColorbarCB); - UpdateColorbarListEdit(3, CB_KEEP); - LISTBOX_colorbar2->set_int_val(index_colorbar2); - - BUTTON_toggle = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); - ColorbarCB(COLORBAR_LISTA); - ColorbarCB(COLORBAR_LISTB); -#endif PANEL_point = glui_colorbar->add_panel(_("Node")); PANEL_cb5 = glui_colorbar->add_panel_to_panel(PANEL_point,"",GLUI_PANEL_NONE); @@ -606,6 +582,28 @@ extern "C" void GluiColorbarSetup(int main_window){ SPINNER_rgb[2]->set_int_limits(0,255); #ifdef pp_COLOR_CIE + RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup(&colorbar_coord_type); + glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); + glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); + CHECKBOX_cb_interp = glui_colorbar->add_checkbox("interpolate using CIELab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_checkbox("show equal distance bars in CIELab space", &show_Lab_dist_bars); +#ifdef pp_COLOR_ADJUST + glui_colorbar->add_button(_("Revert CIE"), COLORBAR_REVERT, ColorbarCB); +#endif +#ifdef pp_COLOR_TOGGLE + PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); + LISTBOX_colorbar1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); + UpdateColorbarListEdit(2, CB_KEEP); + LISTBOX_colorbar1->set_int_val(index_colorbar1); + + LISTBOX_colorbar2 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "colorbar 2", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); + UpdateColorbarListEdit(3, CB_KEEP); + LISTBOX_colorbar2->set_int_val(index_colorbar2); + + BUTTON_toggle = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); + ColorbarCB(COLORBAR_LISTA); + ColorbarCB(COLORBAR_LISTB); +#endif PANEL_cb12 = glui_colorbar->add_panel("rgb<->CIELab"); cb_frgb2[0] = 0.0; cb_frgb2[1] = 0.0; From 4b49751fda22c7063d5d8b820124ae21cb3bca24 Mon Sep 17 00:00:00 2001 From: gforney Date: Fri, 16 Jun 2023 10:22:23 -0400 Subject: [PATCH 24/49] smokeview source: fix problem with scene display when editing colorbars --- Source/smokeview/callbacks.c | 1 + Source/smokeview/colortimebar.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/smokeview/callbacks.c b/Source/smokeview/callbacks.c index 3ae4f36fe2..820d39d11d 100644 --- a/Source/smokeview/callbacks.c +++ b/Source/smokeview/callbacks.c @@ -265,6 +265,7 @@ void MouseEditColorbar(int x, int y){ GLubyte r, g, b; colorbardata *cbi; + if(colorbar_hidescene==0)return; // don't edit colorbar with mouse if showing scene if(show_firecolormap==0){ cbi = colorbarinfo + colorbartype; } diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index c13a9f7fee..b0c5998f27 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -241,7 +241,7 @@ void DrawColorbarPathRGB(void){ glColor3ubv(rgbleft); glVertex3f(rgbleft[0]/255.0,rgbleft[1]/255.0,rgbleft[2]/255.0); glEnd(); - if(show_colorbar_hint==1){ + if(colorbar_hidescene==1&&show_colorbar_hint==1){ float xyz[3]; xyz[0] = rgbleft[0] / 255.0 + 0.1; From bb06b78cfc82d216fbe28744d3e6be008b930d46 Mon Sep 17 00:00:00 2001 From: gforney Date: Fri, 16 Jun 2023 22:36:45 -0400 Subject: [PATCH 25/49] smokeview source: make original rainbow colorbar the default --- Source/smokeview/colortimebar.c | 37 +-------------------------------- Source/smokeview/options.h | 1 - 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index b0c5998f27..f2ed290290 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1438,8 +1438,7 @@ void InitDefaultColorbars(int nini){ // rainbow colorbar - - strcpy(cbi->label,"Rainbow(original)"); + strcpy(cbi->label,"Rainbow"); cbi->nnodes=5; cbi->nodehilight=0; @@ -1467,11 +1466,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[12]=255; cbi->rgb_node[13]=0; cbi->rgb_node[14]=0; -#ifdef pp_COLOR_NEW - strcpy(cbi->ctype, "deprecated"); -#else strcpy(cbi->ctype, "rainbow"); -#endif cbi++; // Rainbow 2 colorbar @@ -1539,11 +1534,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[33]=215; cbi->rgb_node[34]=5; cbi->rgb_node[35]=13; -#ifdef pp_COLOR_NEW strcpy(cbi->ctype, "deprecated"); -#else - strcpy(cbi->ctype, "rainbow"); -#endif cbi++; // yellow/red @@ -2073,32 +2064,6 @@ void InitDefaultColorbars(int nini){ memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); } SortColorBars(); - -#ifdef pp_COLOR_NEW - int rainbow2_index = -1; - int new_rainbow_index = -1; - int rainbow_index=-1; - - rainbow_index = colorbartype_default; - - colorbardata *cb; - cb = GetColorbar("Rainbow 2"); - if(cb != NULL)rainbow2_index = cb - colorbarinfo; - - cb = GetColorbar("CET-R2.csv"); - if(cb != NULL)new_rainbow_index = cb - colorbarinfo; - - if(rainbow_filelist>0&&rainbow2_index>=0&&new_rainbow_index>=0&&rainbow_index>=0){ - colorbardata *cb_new_rainbow; - - cb_new_rainbow = colorbarinfo + new_rainbow_index; - - strcpy(cb_new_rainbow->label, "Rainbow"); - strcpy(cb_new_rainbow->ctype, "rainbow"); - - SortColorBars(); - } -#endif } /* ------------------ UpdateColorbarSplits ------------------------ */ diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index 5747ac420f..b0c3a0fdb9 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -27,7 +27,6 @@ #define pp_COLOR_CIE // output color diffs #define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) -#define pp_COLOR_NEW // set uniform rainbow colorbar as new rainbow colorbar //#define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars //#define pp_SMOKE_LIGHT // turn on smoke lighting From 9875b642a11a4a002034fa6ce678a7a02a2e2311 Mon Sep 17 00:00:00 2001 From: gforney Date: Sun, 18 Jun 2023 07:27:55 -0400 Subject: [PATCH 26/49] smokeview source: cleanup and fixes to colorbar dialogs --- Source/smokeview/IOslice.c | 2 +- Source/smokeview/colortimebar.c | 84 ++++++++++++++++-- Source/smokeview/glui_bounds.cpp | 77 ++++++++-------- Source/smokeview/glui_colorbar.cpp | 138 +++++++++++++++++------------ Source/smokeview/menus.c | 2 +- Source/smokeview/options.h | 2 +- Source/smokeview/smokeheaders.h | 14 ++- Source/smokeview/smokeviewdefs.h | 4 +- Source/smokeview/smokeviewvars.h | 7 +- 9 files changed, 217 insertions(+), 113 deletions(-) diff --git a/Source/smokeview/IOslice.c b/Source/smokeview/IOslice.c index 29b36f02c4..d7f5a30a9a 100644 --- a/Source/smokeview/IOslice.c +++ b/Source/smokeview/IOslice.c @@ -1253,7 +1253,7 @@ void ReadFed(int file_index, int time_frame, float *time_value, int flag, int fi cb = GetColorbar(default_fed_colorbar); if(cb!=NULL){ colorbartype=cb-colorbarinfo; - SetColorbarListIndex(colorbartype); + SetColorbarListEdit(colorbartype); SliceBoundCB(COLORBAR_LIST2); UpdateCurrentColorbar(cb); } diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index f2ed290290..dba7c9487d 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1320,6 +1320,40 @@ int CompareColorbars(const void *arg1, const void *arg2){ void SortColorBars(void){ int i; + char label_bound[255], label_edit[255]; +#ifdef pp_COLOR_TOGGLE + char toggle_label1[255], toggle_label2[255]; + char *toggle1, *toggle2; + + toggle1 = GetToggleLabel(1); + toggle2 = GetToggleLabel(2); + + strcpy(toggle_label1, ""); + if(index_colorbar1 >= 0){ + colorbardata *cbt1; + cbt1 = colorbarinfo + index_colorbar1; + strcpy(toggle_label1,cbt1->label); + } + strcpy(toggle_label2, ""); + if(index_colorbar2 >= 0){ + colorbardata *cbt2; + + cbt2 = colorbarinfo + index_colorbar2; + strcpy(toggle_label2, cbt2->label); + } +#endif + strcpy(label_edit, ""); + if(selectedcolorbar_index >= 0){ + colorbardata *cbt1; + cbt1 = colorbarinfo + selectedcolorbar_index; + strcpy(label_edit, cbt1->label); + } + strcpy(label_bound, ""); + if(selectedcolorbar_index2 >= 0){ + colorbardata *cbt1; + cbt1 = colorbarinfo + selectedcolorbar_index2; + strcpy(label_bound, cbt1->label); + } for(i=0; ictype, "original") == 0)cbi->type = CB_ORIGINAL; if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; } - qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); + //qsort((colorbardata *)colorbarinfo, (size_t)ncolorbars, sizeof(colorbardata), CompareColorbars); colorbardata *cb; cb = GetColorbar("Rainbow"); @@ -1360,11 +1394,27 @@ void SortColorBars(void){ colorbartype = colorbartype_default; iso_colorbar_index = colorbartype_default; +#ifdef pp_COLOR_TOGGLE + cb = NULL; + if(strlen(toggle_label1)>0)cb = GetColorbar(toggle_label1); + if(cb!=NULL)index_colorbar1 = cb - colorbarinfo; + + cb = NULL; + if(strlen(toggle_label2) > 0)cb = GetColorbar(toggle_label2); + if(cb != NULL)index_colorbar2 = cb - colorbarinfo; +#endif + cb = NULL; + if(strlen(label_edit) > 0)cb = GetColorbar(label_edit); + if(cb != NULL)selectedcolorbar_index = cb - colorbarinfo; + + cb = NULL; + if(strlen(label_bound) > 0)cb = GetColorbar(label_bound); + if(cb != NULL)selectedcolorbar_index2= cb - colorbarinfo; } /* ------------------ AddColorbar ------------------------ */ -void AddColorbar(int icolorbar){ +int AddColorbar(int icolorbar){ colorbardata *cb_to, *cb_from; char cb_label[255]; @@ -1387,14 +1437,28 @@ void AddColorbar(int icolorbar){ strcpy(cb_to->ctype, "user"); RemapColorbar(cb_to); SortColorBars(); - UpdateColorbarListEdit(1,CB_DELETE); + UpdateColorbarListEdit(1, CB_DELETE); UpdateColorbarListBound(1); +#ifdef pp_COLOR_TOGGLE + UpdateColorbarListEdit(2, CB_DELETE); + UpdateColorbarListEdit(3, CB_DELETE); + UpdateColorbarListBound(2); + UpdateColorbarListBound(3); +#endif + UpdateColorbarBound(); + UpdateColorbarEdit(); + colorbardata *cbnew; cbnew = GetColorbar(cb_label); - if(cbnew!=NULL)selectedcolorbar_index = cbnew - colorbarinfo; - UpdateColorbarList(); + if(cbnew != NULL){ + selectedcolorbar_index = cbnew - colorbarinfo; + selectedcolorbar_index2 = selectedcolorbar_index; + } + SetColorbarListEdit(selectedcolorbar_index); + SetColorbarListBound(selectedcolorbar_index2); + return selectedcolorbar_index; } /* ------------------ InitDefaultColorbars ------------------------ */ @@ -2064,6 +2128,16 @@ void InitDefaultColorbars(int nini){ memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); } SortColorBars(); + UpdateColorbarListEdit(1, CB_DELETE); + UpdateColorbarListBound(1); +#ifdef pp_COLOR_TOGGLE + UpdateColorbarListEdit(2, CB_DELETE); + UpdateColorbarListEdit(3, CB_DELETE); + UpdateColorbarListBound(2); + UpdateColorbarListBound(3); +#endif + UpdateColorbarEdit(); + UpdateColorbarBound(); } /* ------------------ UpdateColorbarSplits ------------------------ */ diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 05d8ded189..a068d7d01c 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -52,12 +52,8 @@ int update_hist_bounds; #ifdef pp_COLOR_TOGGLE GLUI_Panel *PANEL_toggle_cba = NULL; -GLUI_Button *BUTTON_toggle2 = NULL; -extern GLUI_Button *BUTTON_colorbar1; -extern GLUI_Button *BUTTON_colorbar2; - -GLUI_Listbox *LISTBOX_colorbar1a = NULL; -GLUI_Listbox *LISTBOX_colorbar2a = NULL; +GLUI_Listbox *LISTBOX_colorbar_toggle_bound1 = NULL; +GLUI_Listbox *LISTBOX_colorbar_toggle_bound2 = NULL; #endif /* ------------------ bounds_dialog class ------------------------ */ @@ -3036,7 +3032,7 @@ extern GLUI *glui_shooter, *glui_tour, *glui_stereo, *glui_trainer; int cb_up_rgb[3], cb_down_rgb[3]; -GLUI_Listbox *LIST_colorbar2 = NULL; +GLUI_Listbox *LISTBOX_colorbar_bound = NULL; GLUI_Rollout *ROLLOUT_zone_bound=NULL; GLUI_Rollout *ROLLOUT_coloring=NULL; @@ -3596,16 +3592,20 @@ extern "C" void UpdateExtreme(void){ ExtremeCB(COLORBAR_EXTREME); } -/* ------------------ UpdateColorbarList2 ------------------------ */ +/* ------------------ UpdateColorbarBound ------------------------ */ -extern "C" void UpdateColorbarList2(void){ - if(LIST_colorbar2!=NULL)LIST_colorbar2->set_int_val(selectedcolorbar_index2); +extern "C" void UpdateColorbarBound(void){ + if(LISTBOX_colorbar_bound != NULL)LISTBOX_colorbar_bound->set_int_val(selectedcolorbar_index2); +#ifdef pp_COLOR_TOGGLE + if(LISTBOX_colorbar_toggle_bound1!=NULL)LISTBOX_colorbar_toggle_bound1->set_int_val(index_colorbar1); + if(LISTBOX_colorbar_toggle_bound2!=NULL)LISTBOX_colorbar_toggle_bound2->set_int_val(index_colorbar2); +#endif } -/* ------------------ SetColorbarListIndex ------------------------ */ +/* ------------------ SetColorbarListBound ------------------------ */ -extern "C" void SetColorbarListIndex(int val){ - if(LIST_colorbar2!=NULL)LIST_colorbar2->set_int_val(val); +extern "C" void SetColorbarListBound(int val){ + if(LISTBOX_colorbar_bound!=NULL)LISTBOX_colorbar_bound->set_int_val(val); } /* ------------------ SetColorbarDigits ------------------------ */ @@ -4645,37 +4645,40 @@ extern "C" void UpdateColorbarListBound(int flag){ switch (flag){ case 1: - LIST_cb = LIST_colorbar2; + LIST_cb = LISTBOX_colorbar_bound; break; +#ifdef pp_COLOR_TOGGLE case 2: - LIST_cb = LISTBOX_colorbar1a; + LIST_cb = LISTBOX_colorbar_toggle_bound1; break; case 3: - LIST_cb = LISTBOX_colorbar2a; + LIST_cb = LISTBOX_colorbar_toggle_bound2; break; +#endif default: - LIST_cb = LIST_colorbar2; + LIST_cb = LISTBOX_colorbar_bound; ASSERT(FFALSE); break; } + if(LIST_cb == NULL)return; for(i=-7;idelete_item(i); } strcpy(label, "rainbow"); - AddColorbarListBound(LIST_cb, -1, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -1, label, &max_LISTBOX_colorbar_bound); strcpy(label, "linear"); - AddColorbarListBound(LIST_cb, -2, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -2, label, &max_LISTBOX_colorbar_bound); strcpy(label, "divergent"); - AddColorbarListBound(LIST_cb, -3, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -3, label, &max_LISTBOX_colorbar_bound); strcpy(label, "circular"); - AddColorbarListBound(LIST_cb, -4, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); strcpy(label, "original"); - AddColorbarListBound(LIST_cb, -7, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); strcpy(label, "deprecated"); - AddColorbarListBound(LIST_cb, -5, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -5, label, &max_LISTBOX_colorbar_bound); strcpy(label, "user"); - AddColorbarListBound(LIST_cb, -6, label, &max_LIST_colorbar2); + AddColorbarListBound(LIST_cb, -6, label, &max_LISTBOX_colorbar_bound); } /* ------------------ GluiBoundsSetup ------------------------ */ @@ -5491,11 +5494,11 @@ extern "C" void GluiBoundsSetup(int main_window){ if(ncolorbars>0){ selectedcolorbar_index2 = -1; - LIST_colorbar2 = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); + LISTBOX_colorbar_bound = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); UpdateColorbarListBound(1); - LIST_colorbar2->set_int_val(colorbartype_default); + LISTBOX_colorbar_bound->set_int_val(colorbartype_default); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Previous"), COLORBAR_LIST2_PREV, SliceBoundCB); } @@ -5537,19 +5540,19 @@ extern "C" void GluiBoundsSetup(int main_window){ #ifdef pp_COLOR_TOGGLE PANEL_toggle_cba = glui_bounds->add_panel_to_panel(PANEL_cb11, _("toggle colorbars")); - LISTBOX_colorbar1a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); + LISTBOX_colorbar_toggle_bound1 = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); UpdateColorbarListBound(2); - LISTBOX_colorbar1a->set_int_val(index_colorbar1); + LISTBOX_colorbar_toggle_bound1->set_int_val(index_colorbar1); - LISTBOX_colorbar2a = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); + LISTBOX_colorbar_toggle_bound2 = glui_bounds->add_listbox_to_panel(PANEL_toggle_cba, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); UpdateColorbarListBound(3); - LISTBOX_colorbar2a->set_int_val(index_colorbar2); + LISTBOX_colorbar_toggle_bound2->set_int_val(index_colorbar2); - BUTTON_toggle2 = glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); + glui_bounds->add_button_to_panel(PANEL_toggle_cba, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); ColorbarCB(COLORBAR_LISTA); ColorbarCB(COLORBAR_LISTB); #endif - + UpdateColorbarBound(); PANEL_extreme = glui_bounds->add_panel_to_panel(ROLLOUT_coloring, "", GLUI_PANEL_NONE); if(use_data_extremes==1){ @@ -6331,9 +6334,9 @@ extern "C" void SliceBoundCB(int var){ case COLORBAR_LIST2_PREV: if(var==COLORBAR_LIST2_NEXT)selectedcolorbar_index2++; if(var==COLORBAR_LIST2_PREV)selectedcolorbar_index2--; - if(selectedcolorbar_index2<0)selectedcolorbar_index2= max_LIST_colorbar2; - if(selectedcolorbar_index2> max_LIST_colorbar2)selectedcolorbar_index2=0; - LIST_colorbar2->set_int_val(selectedcolorbar_index2); + if(selectedcolorbar_index2<0)selectedcolorbar_index2= max_LISTBOX_colorbar_bound; + if(selectedcolorbar_index2> max_LISTBOX_colorbar_bound)selectedcolorbar_index2=0; + LISTBOX_colorbar_bound->set_int_val(selectedcolorbar_index2); SliceBoundCB(COLORBAR_LIST2); break; case SLICE_SIZE: @@ -6464,10 +6467,10 @@ extern "C" void SliceBoundCB(int var){ case COLORBAR_LIST2: int list_index; - list_index = LIST_colorbar2->get_int_val(); + list_index = LISTBOX_colorbar_bound->get_int_val(); if(list_index<0)break; selectedcolorbar_index = list_index; - UpdateColorbarList(); + SetColorbarListEdit(selectedcolorbar_index); ColorbarMenu(selectedcolorbar_index); ColorbarGlobal2Local(); if(selectedcolorbar_index2 == bw_colorbar_index&&bw_colorbar_index>=0){ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 0a9261d23f..5c25741798 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -22,14 +22,14 @@ GLUI_Panel *PANEL_cb12 = NULL; GLUI_Panel *PANEL_toggle_cb = NULL; #endif -GLUI_Listbox *LISTBOX_colorbar=NULL; +GLUI_Listbox *LISTBOX_colorbar_edit=NULL; #ifdef pp_COLOR_TOGGLE -GLUI_Listbox *LISTBOX_colorbar1 = NULL; -GLUI_Listbox *LISTBOX_colorbar2 = NULL; -extern GLUI_Listbox *LISTBOX_colorbar1a; -extern GLUI_Listbox *LISTBOX_colorbar2a; +GLUI_Listbox *LISTBOX_colorbar_toggle_edit1 = NULL; +GLUI_Listbox *LISTBOX_colorbar_toggle_edit2 = NULL; +extern GLUI_Listbox *LISTBOX_colorbar_toggle_bound1; +extern GLUI_Listbox *LISTBOX_colorbar_toggle_bound2; #endif -extern GLUI_Listbox *LISTBOX_colorbar2a; +extern GLUI_Listbox *LISTBOX_colorbar_toggle_bound2; GLUI_Spinner *SPINNER_rgb[3]; #ifdef pp_COLOR_CIE @@ -52,10 +52,6 @@ GLUI_Button *BUTTON_update=NULL; GLUI_Button *BUTTON_colorbar_save=NULL; GLUI_Button *BUTTON_colorbar_close=NULL; GLUI_Button *BUTTON_autonodes = NULL; -#ifdef pp_COLOR_TOGGLE -GLUI_Button *BUTTON_toggle = NULL; -#endif - GLUI_RadioGroup *RADIO_colorbar_coord_type; GLUI_Checkbox *CHECKBOX_hidesv=NULL; @@ -95,16 +91,20 @@ int cb_usecolorbar_extreme; #define COLORBAR_RGB2 27 #endif -/* ------------------ UpdateColorbarList ------------------------ */ +/* ------------------ UpdateColorbarEdit ------------------------ */ -extern "C" void UpdateColorbarList(void){ - LISTBOX_colorbar->set_int_val(selectedcolorbar_index); +extern "C" void UpdateColorbarEdit(void){ +if(LISTBOX_colorbar_edit != NULL)LISTBOX_colorbar_edit->set_int_val(selectedcolorbar_index); +#ifdef pp_COLOR_TOGGLE + if(LISTBOX_colorbar_toggle_edit1!=NULL)LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); + if(LISTBOX_colorbar_toggle_edit2!=NULL)LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); +#endif } /* ------------------ UpdateColorbarType ------------------------ */ extern "C" void UpdateColorbarType(void){ - if(LISTBOX_colorbar!=NULL)LISTBOX_colorbar->set_int_val(colorbartype); + if(LISTBOX_colorbar_edit!=NULL)LISTBOX_colorbar_edit->set_int_val(colorbartype); } /* ------------------ HideGluiColorbar ------------------------ */ @@ -155,6 +155,12 @@ extern "C" void ShowGluiColorbar(void){ } } +/* ------------------ SetColorbarListEdit ------------------------ */ + +extern "C" void SetColorbarListEdit(int val){ + if(LISTBOX_colorbar_edit!=NULL)LISTBOX_colorbar_edit->set_int_val(val); +} + /* ------------------ ColorbarCB ------------------------ */ extern "C" void ColorbarCB(int var){ @@ -195,10 +201,10 @@ extern "C" void ColorbarCB(int var){ cbi = colorbarinfo + colorbartype; clabel = EDITTEXT_colorbar_label->get_text(); strcpy(cbi->label, clabel); - LISTBOX_colorbar->delete_item(colorbartype); - LISTBOX_colorbar->add_item(colorbartype, colorbar_label); - LISTBOX_colorbar->set_int_val(0); - LISTBOX_colorbar->set_int_val(colorbartype); + LISTBOX_colorbar_edit->delete_item(colorbartype); + LISTBOX_colorbar_edit->add_item(colorbartype, colorbar_label); + LISTBOX_colorbar_edit->set_int_val(0); + LISTBOX_colorbar_edit->set_int_val(colorbartype); updatemenu = 1; } break; @@ -301,10 +307,10 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_TOGGLE: colorbar_toggle = 1 - colorbar_toggle; if(colorbar_toggle == 0){ - LISTBOX_colorbar->set_int_val(index_colorbar1); + LISTBOX_colorbar_edit->set_int_val(index_colorbar1); } else{ - LISTBOX_colorbar->set_int_val(index_colorbar2); + LISTBOX_colorbar_edit->set_int_val(index_colorbar2); } ColorbarCB(COLORBAR_LIST); break; @@ -326,7 +332,7 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_LIST: int list_index; - list_index = LISTBOX_colorbar->get_int_val(); + list_index = LISTBOX_colorbar_edit->get_int_val(); if(list_index<0)break; selectedcolorbar_index2 = list_index; if(show_firecolormap==0){ @@ -335,18 +341,18 @@ extern "C" void ColorbarCB(int var){ else{ fire_colorbar_index= selectedcolorbar_index2; } - UpdateColorbarList2(); + SetColorbarListBound(selectedcolorbar_index2); ColorbarMenu(selectedcolorbar_index2); ColorbarGlobal2Local(); break; #ifdef pp_COLOR_TOGGLE case COLORBAR_LISTA: - if(LISTBOX_colorbar1!=NULL)LISTBOX_colorbar1->set_int_val(index_colorbar1); - if(LISTBOX_colorbar1a!=NULL)LISTBOX_colorbar1a->set_int_val(index_colorbar1); + if(LISTBOX_colorbar_toggle_edit1!=NULL)LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); + if(LISTBOX_colorbar_toggle_bound1!=NULL)LISTBOX_colorbar_toggle_bound1->set_int_val(index_colorbar1); break; case COLORBAR_LISTB: - if(LISTBOX_colorbar2!=NULL)LISTBOX_colorbar2->set_int_val(index_colorbar2); - if(LISTBOX_colorbar2a!=NULL)LISTBOX_colorbar2a->set_int_val(index_colorbar2); + if(LISTBOX_colorbar_toggle_edit2!=NULL)LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); + if(LISTBOX_colorbar_toggle_bound2!=NULL)LISTBOX_colorbar_toggle_bound2->set_int_val(index_colorbar2); break; #endif case COLORBAR_CLOSE: @@ -356,9 +362,9 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_NEXT: if(var==COLORBAR_PREV)colorbartype--; if(var==COLORBAR_NEXT)colorbartype++; - if(colorbartype<0)colorbartype= max_LIST_colorbar; - if(colorbartype> max_LIST_colorbar)colorbartype=0; - LISTBOX_colorbar->set_int_val(colorbartype); + if(colorbartype<0)colorbartype= max_LISTBOX_colorbar_edit; + if(colorbartype> max_LISTBOX_colorbar_edit)colorbartype=0; + LISTBOX_colorbar_edit->set_int_val(colorbartype); ColorbarCB(COLORBAR_LIST); break; case COLORBAR_NODE_NEXT: @@ -380,16 +386,9 @@ extern "C" void ColorbarCB(int var){ break; case COLORBAR_NEW: if(colorbartype < 0 || colorbartype >= ncolorbars)return; - AddColorbar(colorbartype); - colorbartype = ncolorbars - 1; + colorbartype = AddColorbar(colorbartype); UpdateCurrentColorbar(colorbarinfo + colorbartype); UpdateColorbarSplits(current_colorbar); - cbi = colorbarinfo + colorbartype; //AddColorbar resizes (and possibly moves) colorbarinfo - LISTBOX_colorbar->add_item(colorbartype, cbi->label); - LISTBOX_colorbar->set_int_val(colorbartype); -#ifdef pp_COLOR_TOGGLE - LISTBOX_colorbar2->add_item(colorbartype, cbi->label); -#endif ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE @@ -421,15 +420,15 @@ extern "C" void ColorbarCB(int var){ memcpy(cb_to, cb_from, sizeof(colorbardata)); } for(i = colorbartype;i < ncolorbars;i++){ - LISTBOX_colorbar->delete_item(i); + LISTBOX_colorbar_edit->delete_item(i); } ncolorbars--; for(i = colorbartype;i < ncolorbars;i++){ cbi = colorbarinfo + i; - LISTBOX_colorbar->add_item(i, cbi->label); + LISTBOX_colorbar_edit->add_item(i, cbi->label); } if(colorbartype == ncolorbars)colorbartype--; - LISTBOX_colorbar->set_int_val(0); + LISTBOX_colorbar_edit->set_int_val(0); ColorbarCB(COLORBAR_LIST); } break; @@ -469,6 +468,21 @@ void AddColorbarListEdit(GLUI_Listbox *LIST_cbar, int index, char *label_arg, in } } +/* ------------------ UpdateColorbarListEdit ------------------------ */ +#ifdef pp_COLOR_TOGGLE +extern "C" char *GetToggleLabel(int flag){ + char *label=NULL; + + if(flag == 1){ + if(LISTBOX_colorbar_toggle_edit1!=NULL)label = LISTBOX_colorbar_toggle_edit1->curr_text; + } + else{ + if(LISTBOX_colorbar_toggle_edit2 != NULL)label = LISTBOX_colorbar_toggle_edit2->curr_text; + } + return label; +} +#endif + /* ------------------ UpdateColorbarListEdit ------------------------ */ extern "C" void UpdateColorbarListEdit(int flag, int del){ @@ -478,39 +492,41 @@ extern "C" void UpdateColorbarListEdit(int flag, int del){ switch(flag){ case 1: - LISTBOX_cb = LISTBOX_colorbar; + LISTBOX_cb = LISTBOX_colorbar_edit; break; +#ifdef pp_COLOR_TOGGLE case 2: - LISTBOX_cb = LISTBOX_colorbar1; + LISTBOX_cb = LISTBOX_colorbar_toggle_edit1; break; case 3: - LISTBOX_cb = LISTBOX_colorbar2; + LISTBOX_cb = LISTBOX_colorbar_toggle_edit2; break; +#endif default: - LISTBOX_cb = LISTBOX_colorbar; + LISTBOX_cb = LISTBOX_colorbar_edit; ASSERT(FFALSE); break; } - + if(LISTBOX_cb == NULL)return; if(del == CB_DELETE){ for(i = -7; i < ncolorbars; i++){ LISTBOX_cb->delete_item(i); } } strcpy(label, "rainbow"); - AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LISTBOX_colorbar_edit); strcpy(label, "linear"); - AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LISTBOX_colorbar_edit); strcpy(label, "divergent"); - AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LISTBOX_colorbar_edit); strcpy(label, "circular"); - AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); strcpy(label, "original"); - AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); strcpy(label, "deprecated"); - AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LISTBOX_colorbar_edit); strcpy(label, "user"); - AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LIST_colorbar); + AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LISTBOX_colorbar_edit); } /* ------------------ GluiColorbarSetup ------------------------ */ @@ -548,7 +564,8 @@ extern "C" void GluiColorbarSetup(int main_window){ PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); if(ncolorbars>0){ selectedcolorbar_index=-1; - LISTBOX_colorbar=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); + + LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); UpdateColorbarListEdit(1,CB_KEEP); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); @@ -592,18 +609,20 @@ extern "C" void GluiColorbarSetup(int main_window){ #endif #ifdef pp_COLOR_TOGGLE PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); - LISTBOX_colorbar1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "colorbar 1", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); + LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); UpdateColorbarListEdit(2, CB_KEEP); - LISTBOX_colorbar1->set_int_val(index_colorbar1); + LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); - LISTBOX_colorbar2 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "colorbar 2", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); + LISTBOX_colorbar_toggle_edit2 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); UpdateColorbarListEdit(3, CB_KEEP); - LISTBOX_colorbar2->set_int_val(index_colorbar2); + LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); - BUTTON_toggle = glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); ColorbarCB(COLORBAR_LISTA); ColorbarCB(COLORBAR_LISTB); #endif + UpdateColorbarEdit(); + PANEL_cb12 = glui_colorbar->add_panel("rgb<->CIELab"); cb_frgb2[0] = 0.0; cb_frgb2[1] = 0.0; @@ -655,7 +674,8 @@ extern "C" void ColorbarGlobal2Local(void){ strcpy(colorbar_label,cbi->label); EDITTEXT_colorbar_label->set_text(colorbar_label); - icolorbar=LISTBOX_colorbar->get_int_val(); + icolorbar=LISTBOX_colorbar_edit->get_int_val(); + if(icolorbar>=ndefaultcolorbars){ BUTTON_delete->enable(); EDITTEXT_colorbar_label->enable(); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index d364148b0b..381faa12d4 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -1044,7 +1044,7 @@ void ColorbarMenu(int value){ selectedcolorbar_index2=colorbartype; UpdateCurrentColorbar(colorbarinfo+colorbartype); UpdateColorbarType(); - UpdateColorbarList2(); + SetColorbarListBound(selectedcolorbar_index2); if(colorbartype == bw_colorbar_index&&bw_colorbar_index>=0){ setbwdata = 1; } diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index b0c3a0fdb9..02e3aceccc 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -27,7 +27,7 @@ #define pp_COLOR_CIE // output color diffs #define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) -//#define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars +#define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars //#define pp_SMOKE_LIGHT // turn on smoke lighting //#define pp_SMOKE_ADAPT // turn on volume render smoke adaptive integration diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index c91eb2b7a1..8ac2e2d16b 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -543,7 +543,8 @@ EXTERNCPP void DrawCircVents(int option); EXTERNCPP void UpdateSmokeColormap(int option); EXTERNCPP void UpdateCO2Colormap(void); EXTERNCPP void DefineVolsmokeTextures(void); -EXTERNCPP void SetColorbarListIndex(int val); +EXTERNCPP void SetColorbarListEdit(int val); +EXTERNCPP void SetColorbarListBound(int val); EXTERNCPP int GetColorbarIndex(int flag, int x, int y); EXTERNCPP void GetViewportInfo(void); @@ -620,8 +621,6 @@ EXTERNCPP void UpdateTBounds(void); EXTERNCPP void UpdateGluiTimeBounds(float time_min, float time_max); EXTERNCPP void SetTimeVal(float timeval); EXTERNCPP void GetIndepVarIndices(sv_object *smv_object,char **var_indep_strings, int nvars_indep,int *index); -EXTERNCPP void UpdateColorbarList(void); -EXTERNCPP void UpdateColorbarList2(void); EXTERNCPP void UpdateColorbarFlip(void); EXTERNCPP void LoadSmokeFrame(int meshnum, int framenum); @@ -714,7 +713,7 @@ EXTERNCPP void FRgb2CIE(float *rgb_arg, float *cie); #endif EXTERNCPP char *GetChid(char *file, char *buffer); -EXTERNCPP void AddColorbar(int icolorbar); +EXTERNCPP int AddColorbar(int icolorbar); EXTERNCPP void ReloadMenu(int value); EXTERNCPP void ColorbarMenu(int val); EXTERNCPP void InitDefaultColorbars(int nini); @@ -722,10 +721,17 @@ EXTERNCPP void DrawColorbarPathRGB(void); EXTERNCPP void UpdateColorbarSplits(colorbardata *cbi); EXTERNCPP void UpdateColorbarNodes(colorbardata *cbi); EXTERNCPP void RemapColorbar(colorbardata *cbi); +EXTERNCPP void SortColorBars(void); EXTERNCPP colorbardata *GetColorbar(char *label); EXTERNCPP void RemapColorbarType(int cb_oldtype, char *cb_newname); EXTERNCPP void InitOpenGL(int option); EXTERNCPP void TextureShowMenu(int value); +EXTERNCPP void UpdateColorbarBound(void); +EXTERNCPP void UpdateColorbarEdit(void); +#ifdef pp_COLOR_TOGGLE +EXTERNCPP char *GetToggleLabel(int flag); +#endif + EXTERNCPP void CopyArgs(int *argc, char **aargv, char ***argv_sv); EXTERNCPP void InitUserTicks(void); EXTERNCPP void DrawUserTicks(void); diff --git a/Source/smokeview/smokeviewdefs.h b/Source/smokeview/smokeviewdefs.h index e852d85243..c96598c4f3 100644 --- a/Source/smokeview/smokeviewdefs.h +++ b/Source/smokeview/smokeviewdefs.h @@ -130,12 +130,12 @@ EXTERNCPP void _Sniff_Errors(const char *whereat, const char *file, int line); #define COLORBAR_SELECTION_WIDTH_MIN 1 #define COLORBAR_SELECTION_WIDTH_MAX 10 +#define CB_DELETE 1 +#define CB_KEEP 0 #ifdef pp_COLOR_TOGGLE #define COLORBAR_TOGGLE 28 #define COLORBAR_LISTA 30 #define COLORBAR_LISTB 31 -#define CB_KEEP 0 -#define CB_DELETE 1 #endif diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index ff2ecdcce3..c8d63c92d0 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -539,8 +539,8 @@ SVEXTERN histogramdata SVDECL(*full_part_histogram, NULL); SVEXTERN histogramdata SVDECL(*full_plot3D_histograms, NULL); SVEXTERN int SVDECL(update_loadall_textures, 1); -SVEXTERN int SVDECL(max_LIST_colorbar2, 0); -SVEXTERN int SVDECL(max_LIST_colorbar, 0); +SVEXTERN int SVDECL(max_LISTBOX_colorbar_bound, 0); +SVEXTERN int SVDECL(max_LISTBOX_colorbar_edit, 0); #ifdef pp_COLOR_CIE SVEXTERN int SVDECL(show_Lab_dist_bars, 0); SVEXTERN int SVDECL(interp_cielab, 1); @@ -552,6 +552,7 @@ SVEXTERN int cb_rgb2[3]; #ifdef pp_COLOR_TOGGLE SVEXTERN int SVDECL(index_colorbar1, 0), SVDECL(index_colorbar2, 1); SVEXTERN int SVDECL(colorbar_toggle, 1); +SVEXTERN char toggle_label1[256], toggle_label2[256]; #endif #ifdef pp_COLOR_CIE_CHECK SVEXTERN unsigned char SVDECL(*cielab_check_rgb255, NULL); @@ -1380,7 +1381,7 @@ SVEXTERN int SVDECL(*shooter_timeslist,NULL); SVEXTERN int SVDECL(shooter_itime,0); SVEXTERN int showgluitrainer; -SVEXTERN int SVDECL(colorbartype,0),SVDECL(colorbartype_ini,-1), SVDECL(colorbartype_default, 0); +SVEXTERN int SVDECL(colorbartype,0),SVDECL(colorbartype_ini,-1), SVDECL(colorbartype_default, 0), SVDECL(colorbartype_last, -1); SVEXTERN char colorbarname[1024]; SVEXTERN int SVDECL(update_colorbartype,0); SVEXTERN int colorbartype_save; From b780d7a2a6f0bd928a02ab9f3c24cddf832a4fba Mon Sep 17 00:00:00 2001 From: gforney Date: Sun, 18 Jun 2023 07:36:27 -0400 Subject: [PATCH 27/49] smokeview source: remove unused colorbar variables and routines --- Source/smokeview/colortimebar.c | 4 ---- Source/smokeview/glui_colorbar.cpp | 15 --------------- Source/smokeview/smokeheaders.h | 3 --- Source/smokeview/smokeviewvars.h | 1 - 4 files changed, 23 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index dba7c9487d..1a8de79c86 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1323,10 +1323,6 @@ void SortColorBars(void){ char label_bound[255], label_edit[255]; #ifdef pp_COLOR_TOGGLE char toggle_label1[255], toggle_label2[255]; - char *toggle1, *toggle2; - - toggle1 = GetToggleLabel(1); - toggle2 = GetToggleLabel(2); strcpy(toggle_label1, ""); if(index_colorbar1 >= 0){ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 5c25741798..4028ea10a0 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -468,21 +468,6 @@ void AddColorbarListEdit(GLUI_Listbox *LIST_cbar, int index, char *label_arg, in } } -/* ------------------ UpdateColorbarListEdit ------------------------ */ -#ifdef pp_COLOR_TOGGLE -extern "C" char *GetToggleLabel(int flag){ - char *label=NULL; - - if(flag == 1){ - if(LISTBOX_colorbar_toggle_edit1!=NULL)label = LISTBOX_colorbar_toggle_edit1->curr_text; - } - else{ - if(LISTBOX_colorbar_toggle_edit2 != NULL)label = LISTBOX_colorbar_toggle_edit2->curr_text; - } - return label; -} -#endif - /* ------------------ UpdateColorbarListEdit ------------------------ */ extern "C" void UpdateColorbarListEdit(int flag, int del){ diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 8ac2e2d16b..632809cdc0 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -728,9 +728,6 @@ EXTERNCPP void InitOpenGL(int option); EXTERNCPP void TextureShowMenu(int value); EXTERNCPP void UpdateColorbarBound(void); EXTERNCPP void UpdateColorbarEdit(void); -#ifdef pp_COLOR_TOGGLE -EXTERNCPP char *GetToggleLabel(int flag); -#endif EXTERNCPP void CopyArgs(int *argc, char **aargv, char ***argv_sv); EXTERNCPP void InitUserTicks(void); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index c8d63c92d0..f2a1458c29 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -552,7 +552,6 @@ SVEXTERN int cb_rgb2[3]; #ifdef pp_COLOR_TOGGLE SVEXTERN int SVDECL(index_colorbar1, 0), SVDECL(index_colorbar2, 1); SVEXTERN int SVDECL(colorbar_toggle, 1); -SVEXTERN char toggle_label1[256], toggle_label2[256]; #endif #ifdef pp_COLOR_CIE_CHECK SVEXTERN unsigned char SVDECL(*cielab_check_rgb255, NULL); From 97c14fea7252e340235379916a94b6622d39cbc7 Mon Sep 17 00:00:00 2001 From: gforney Date: Sun, 18 Jun 2023 17:02:10 -0400 Subject: [PATCH 28/49] smv vv: add colorbars case --- vistest/colorbars/colorbars.fds | 74 ++++ vistest/colorbars/colorbars.ini | 664 ++++++++++++++++++++++++++++++++ 2 files changed, 738 insertions(+) create mode 100644 vistest/colorbars/colorbars.fds create mode 100644 vistest/colorbars/colorbars.ini diff --git a/vistest/colorbars/colorbars.fds b/vistest/colorbars/colorbars.fds new file mode 100644 index 0000000000..072dd35d8a --- /dev/null +++ b/vistest/colorbars/colorbars.fds @@ -0,0 +1,74 @@ +&HEAD CHID='colorbars',TITLE='Plume whirl case' / + +this case is used to setup and save colorbars + +&MESH IJK=16,16,32, XB=0.0,1.6,0.0,1.6,0.0,3.2 / + +&MISC IBLANK_SMV=.TRUE. / + +&DUMP NFRAMES=400 DT_PL3D=8.0, DT_SL3D=0.1 / + +&INIT XB=0.2,1.4,0.2,1.4,0.5,2.2 TEMPERATURE=600.0 / + +&TIME T_END=40. / Total simulation time + +&MATL ID = 'FABRIC' + FYI = 'Properties completely fabricated' + SPECIFIC_HEAT = 1.0 + CONDUCTIVITY = 0.1 + DENSITY = 100.0 + N_REACTIONS = 1 + NU_SPEC = 1. + SPEC_ID = 'PROPANE' + REFERENCE_TEMPERATURE = 350. + HEAT_OF_REACTION = 3000. + HEAT_OF_COMBUSTION = 15000. / + +&MATL ID = 'FOAM' + FYI = 'Properties completely fabricated' + SPECIFIC_HEAT = 1.0 + CONDUCTIVITY = 0.05 + DENSITY = 40.0 + N_REACTIONS = 1 + NU_SPEC = 1. + SPEC_ID = 'PROPANE' + REFERENCE_TEMPERATURE = 350. + HEAT_OF_REACTION = 1500. + HEAT_OF_COMBUSTION = 30000. / + +&SURF ID = 'UPHOLSTERY_LOWER' + FYI = 'Properties completely fabricated' + RGB = 151,96,88 + BURN_AWAY = .FALSE. + MATL_ID(1:2,1) = 'FABRIC','FOAM' + THICKNESS(1:2) = 0.002,0.1 +/ + +&SURF ID = 'UPHOLSTERY_UPPER' + FYI = 'Properties completely fabricated' + RGB = 151,96,88 + BURN_AWAY = .FALSE. + TMP_FRONT = 600.0 +/ +&REAC SOOT_YIELD=0.01,FUEL='PROPANE'/ +&SURF ID='BURNER',HRRPUA=600.0,PART_ID='tracers' / Ignition source + +&VENT XB=0.5,1.1,0.5,1.1,0.1,0.1,SURF_ID='BURNER' / fire source on kitchen stove + +&OBST XB=0.5,1.1,0.5,1.1,0.0,0.1 / + +&VENT MB='XMIN',SURF_ID='OPEN'/ +&VENT MB='XMAX',SURF_ID='OPEN'/ +&VENT MB='YMIN',SURF_ID='OPEN'/ +&VENT MB='YMAX',SURF_ID='OPEN'/ +&VENT MB='ZMAX',SURF_ID='OPEN'/ + +&PART ID='tracers',MASSLESS=.TRUE., + QUANTITIES(1:3)='PARTICLE U','PARTICLE V','PARTICLE W' + SAMPLING_FACTOR=10 / Description of massless tracer particles. Apply at a + solid surface with the PART_ID='tracers' + Y slices + +&SLCF PBY=0.8,QUANTITY='TEMPERATURE' / + +&TAIL / diff --git a/vistest/colorbars/colorbars.ini b/vistest/colorbars/colorbars.ini new file mode 100644 index 0000000000..fa79f29082 --- /dev/null +++ b/vistest/colorbars/colorbars.ini @@ -0,0 +1,664 @@ +# NIST Smokeview configuration file, Release Jun 15 2023 + + + ------------ global ini settings ------------ + + *** COLOR/LIGHTING *** + +BACKGROUNDCOLOR + 0.000000 0.000000 0.000000 +BLOCKCOLOR + 1.000000 0.800000 0.400000 +BLOCKSHININESS + 100.000000 +BLOCKSPECULAR + 0.000000 0.000000 0.000000 +BOUNDCOLOR + 0.500000 0.500000 0.500000 +COLORBAR + 12 1 -1 5 + 0.000000 0.203922 0.960784 + 0.000000 0.396078 0.709804 + 0.176471 0.509804 0.482353 + 0.247059 0.603922 0.247059 + 0.376471 0.678431 0.062745 + 0.596078 0.729412 0.101961 + 0.803922 0.780392 0.145098 + 0.976471 0.796078 0.172549 + 1.000000 0.678431 0.125490 + 1.000000 0.549020 0.074510 + 1.000000 0.403922 0.023529 + 0.992157 0.188235 0.000000 +COLOR2BAR + 8 + 1.000000 1.000000 1.000000 :white + 1.000000 1.000000 0.000000 :yellow + 0.000000 0.000000 1.000000 :blue + 1.000000 0.000000 0.000000 :red + 0.000000 1.000000 0.000000 :green + 1.000000 0.000000 1.000000 :magenta + 0.000000 1.000000 1.000000 :cyan + 0.000000 0.000000 0.000000 :black +COLORBAR_FLIP + 0 1 +COLORBAR_SPLIT + 0 0 0 64 64 255 + 0 192 0 255 0 0 + -1.000000 0.000000 1.000000 +CO2COLOR + 64 156 215 +DIRECTIONCOLOR + 0.152941 0.250980 0.545098 +FLIP + 1 +FOREGROUNDCOLOR + 1.000000 1.000000 1.000000 +GEOMSELECTCOLOR + 255 255 255 + 0 0 0 + 255 128 0 +HEATOFFCOLOR + 1.000000 0.000000 0.000000 +HEATONCOLOR + 1.000000 0.000000 0.000000 +ISOCOLORS + 10.000000 0.118000 1 1 : shininess, default opaqueness + 0.700000 0.700000 0.700000 : specular + 10 : number of levels + 0.957255 0.000392 0.957255 0.118039 : red, green, blue, alpha (opaqueness) + 0.750000 0.800000 0.800000 0.119608 + 0.000000 0.960000 0.280000 0.119608 + 0.000000 0.000000 1.000000 0.119608 + 0.000000 0.718750 1.000000 0.119608 + 0.000000 1.000000 0.562500 0.119608 + 0.171875 1.000000 0.000000 0.119608 + 0.890625 1.000000 0.000000 0.119608 + 1.000000 0.380952 0.000000 0.119608 + 1.000000 0.000000 0.000000 0.119608 +COLORTABLE + 2 + 210 180 140 255 % tan + 178 34 34 255 % firebrick +LIGHTING + 1 +LIGHTFACES + 1 +LIGHTANGLES0 + 45.000000 30.000000 1 +LIGHTANGLES1 + 135.000000 30.000000 1 +LIGHTPROP + 0.600000 0.600000 0.600000 + 0.500000 0.500000 0.500000 +SENSORCOLOR + 1.000000 1.000000 0.000000 +SENSORNORMCOLOR + 1.000000 1.000000 0.000000 +SETBW + 0 0 +SPRINKOFFCOLOR + 1.000000 0.000000 0.000000 +SPRINKONCOLOR + 0.000000 1.000000 0.000000 +STATICPARTCOLOR + 0.000000 1.000000 0.000000 +TIMEBARCOLOR + 0.600000 0.600000 0.600000 +VENTCOLOR + 1.000000 0.000000 1.000000 + + *** SIZES/OFFSETS *** + +GEOMSAXIS + 1.000000 1.000000 +GRIDLINEWIDTH + 2.000000 +ISOLINEWIDTH + 2.000000 +ISOPOINTSIZE + 4.000000 +LINEWIDTH + 2.000000 +PARTPOINTSIZE + 4.000000 +PLOT3DLINEWIDTH + 2.000000 +PLOT3DPOINTSIZE + 4.000000 +SENSORABSSIZE + 0.038000 +SENSORRELSIZE + 1.000000 +SLICEOFFSET + 0.100000 0.000000 1 +SMOOTHLINES + 1 +SPHERESEGS + 6 +SORTSLICES + 1 +SPRINKLERABSSIZE + 0.076000 +STREAKLINEWIDTH + 1.000000 +TICKLINEWIDTH + 2.000000 +USENEWDRAWFACE + 0 +VECCONTOURS + 0 1 +VECLENGTH + 4 1.000000 1.000000 0 0 0 +VECTORLINEWIDTH + 1.000000 1.000000 +VECTORPOINTSIZE + 2.000000 +VENTLINEWIDTH + 2.000000 +VENTOFFSET + 0.100000 +WINDOWOFFSET + 45 +WINDOWWIDTH + 640 +WINDOWHEIGHT + 480 + + *** DATA LOADING *** + +FED + 0 +FEDCOLORBAR + FED +LOADINC + 0 +NOPART + 1 +PARTFAST + 1 0 1 +PERCENTILEMODE + 0 +RESEARCHMODE + 1 1 1.000000 4 0 4 0 0 +SHOWFEDAREA + 1 +SLICEAVERAGE + 0 10.000000 0 +SMOKELOAD + 0 1 +SLICEDATAOUT + 0 +USER_ROTATE + -3 0 0.250000 0.250000 0.500000 +ZIPSTEP + 1 + + *** VIEW PARAMETERS *** + +APERTURE + 2 +BLOCKLOCATION + 5 +BEAM + 1 4.000000 0 255 255 255 +BLENDMODE + 0 0 0 +BOUNDARYMESH + 0 +BOUNDARYTWOSIDE + 0 +CLIP + 0.001000 3.000000 +CONTOURTYPE + 0 +CULLFACES + 1 +ENABLETEXTURELIGHTING + 0 +EYEVIEW + 0 +FONTSIZE + 0 +FIREPARAMS + 1.000000 0.500000 0.100000 0.800000 0.900000 0.000000 300.000000 0.000000 +FRAMERATEVALUE + 1000 +FREEZEVOLSMOKE + 0 1 +GEOMBOUNDARYPROPS + 1 0 0 5.000000 5.000000 2 +SHOWSLICEVALS + 0 0 0 +GEOMCELLPROPS + 2 + 2 2 2 + 1 0 1 5.000000 1 0 1 + 0 0 0 + 0 0 0 +GEOMDOMAIN + 1 1 +GEOMSHOW + 0 1 1 0 1 0 0.500000 2.000000 1 0 6.000000 0.001000 0.010000 + 0 0 0 0 + 1.000000 30.000000 0 0 2 0 +GVERSION + 0 +GVECDOWN + 1 +HISTOGRAM + 0 10 0 0 0 25.000000 +ISOTRAN2 + 4 +NORTHANGLE + 0 + 0.000000 0.000000 0.100000 +OFFSETSLICE + 0 +OUTLINEMODE + 1 0 +P3DSURFACETYPE + 1 +P3DSURFACESMOOTH + 1 +PLOT2DHRRBOUNDS + 0 0.000000 0 1.000000 +PROJECTION + 0 +SCALEDFONT + 12 1.000000 1 + 32 1.000000 1 +SHOWALLTEXTURES + 1 +SHOWAXISLABELS + 0 +SHOWBLOCKLABEL + 0 +SHOWBLOCKS + 1 +SHOWBOUNDS + 0 0 +SHOWCADOPAQUE + 0 +SHOWCEILING + 0 +SHOWCHID + 0 +SHOWCOLORBARS + 1 0 +SHOWCVENTS + 0 0 +SHOWDUMMYVENTS + 1 +SHOWFIRECUTOFF + 0 +SHOWFLOOR + 0 +SHOWFRAME + 1 +SHOWFRAMELABEL + 0 +SHOWFRAMETIMELABEL + 1 +SHOWFRAMERATE + 0 +SHOWGRID + 0 +SHOWGRIDLOC + 0 +SHOWHMSTIMELABEL + 0 +SHOWHRRLABEL + 0 +SHOWISO + 1 +SHOWISONORMALS + 0 +SHOWLABELS + 0 +SHOWMEMLOAD + 0 +SHOWOPENVENTS + 0 0 +SHOWOTHERVENTS + 1 +SHOWROOMS + 1 +SHOWSENSORS + 1 1 +SHOWSLICEINOBST + 0 +SHOWSMOKEPART + 2 +SHOWSPRINKPART + 1 +SHOWSTREAK + 0 0 1 -2 +SHOWTERRAIN + 0 0 +SHOWTHRESHOLD + 0 0 400.000000 +SHOWTICKS + 0 +SHOWTIMEBAR + 1 2 +SHOWTIMELABEL + 1 +SHOWTITLE + 0 0 0 +SHOWTRACERSALWAYS + 0 +SHOWTRANSPARENT + 0 +SHOWTRIANGLES + 1 0 0 0 1 1 +SHOWTRANSPARENTVENTS + 1 +SHOWTRIANGLECOUNT + 0 +SHOWVENTFLOW + 1 0 1 1 1 +SHOWTARGETS + 1 +SHOWVENTS + 1 +SHOWWALLS + 0 0 +SKIPEMBEDSLICE + 0 +SLICEDUP + 1 0 1 +SMOKESENSORS + 1 0 +STARTUPLANG + en +STEREO + 0 +SURFINC + 0 +TERRAINPARMS + 90 50 50 + 200 200 200 + 1.000000 +TITLESAFE + 0 +TRAINERVIEW + 1 +TRANSPARENT + 1 0.800000 1 1 +TREEPARMS + 3 0 0 1 +TWOSIDEDVENTS + 1 0 +VECTORSKIP + 1 +VISBOUNDARYTYPE + 1 1 1 1 1 1 1 0 0 +WINDROSEDEVICE + 0 1 1 0 0 0 1 0 1 + 8 12 0 0.640000 5 25 +WINDROSEMERGE + 0 0.000000 0.000000 0.000000 0.000000 +ZOOM + 2 1.000000 + + *** MISC *** + +SHOWSLICEVALS + 0 +INPUT_FILE + colorbars.fds +LABELSTARTUPVIEW + external +RENDERCLIP + 0 0 0 0 0 +RENDERFILELABEL + 0 +RENDERFILETYPE + 0 0 2 +MOVIEFILETYPE +MOVIEFILETYPE + 0 10 5000 1 17 +MOVIEPARMS + 0 10 0 +RENDEROPTION + 993 1 512 +UNITCLASSES + 6 + 0 + 0 + 0 + 0 + 0 + 0 +SHOWGRAVVECTOR + 0 + + *** 3D SMOKE INFO *** + +COLORBARTYPE + 1 % Rainbow +CO2COLORMAP + 1 13 +EXTREMECOLORS + 0 0 0 0 0 0 +FIRECOLOR + 255 128 0 +FIRECOLORMAP + 1 8 +FIREDEPTH + 3.000000 10.000000 10.000000 0 +HRRPUVCUTOFF + 200.000000 +SHOWEXTREMEDATA + 0 0 0 +SLICESKIP + 1 1 1 1 +SMOKECOLOR + 0 0 0 1 +SMOKECULL + 0 +SMOKEFIREPROP + 0 1 +SMOKEPROP +8700.000000 +SMOKESKIP + 0 1 1 1 1 +USEGPU + 0 +VOLSMOKE + 0 1 1 0 0 + 20.000000 600.000000 2000.000000 3.000000 8700.000000 1.000000 1.000000 + + *** ZONE FIRE PARAMETRES *** + +SHOWHAZARDCOLORS + 0 +SHOWZONEPLANE + 2 1 +SHOWSZONE + 0 +SHOWZONEFIRE + 1 + + *** TOUR INFO *** + +SHOWAVATAR + 1 +SHOWPATHNODES + 0 +SHOWTOURROUTE + 0 +TOURCOLORS + 1.000000 0.000000 0.000000 :selected path line + 1.000000 0.000000 0.000000 :selected path line knots + 0.000000 1.000000 0.000000 :selected knot + -1.000000 -1.000000 -1.000000 :path line + -1.000000 -1.000000 -1.000000 :path knots + -1.000000 -1.000000 -1.000000 :text + 1.000000 0.000000 0.000000 :avatar +VIEWALLTOURS + 0 +VIEWTIMES + 0.000000 40.000000 400 +VIEWTOURFROMPATH + 0 0 0.000000 + + ------------ local ini settings ------------ + +DEVICEVECTORDIMENSIONS + 1.000000 0.100000 0.200000 0.200000 +DEVICEBOUNDS + 0.000000 1.000000 +DEVICEORIENTATION + 0 1.000000 +GRIDPARMS + 0 1 0 + 8 8 16 +GSLICEPARMS + 0 0 0 0 + 0.800000 0.800000 1.600000 + 0.000000 90.000000 +LOADFILESATSTARTUP + 0 +MSCALE + 1.000000 1.000000 1.000000 +SLICEAUTO + 1 + 1 +MSLICEAUTO + 1 + 0 +COMPRESSAUTO + 0 +PART5PROPDISP + 1 + 1 + 1 + 1 +PART5COLOR + 0 +partclassdataVIS + 1 + 1 +PROPINDEX + 2 + 0 0 + 1 0 +SHOOTER + 0.250000 0.000000 0.500000 + 0.125000 0.000000 0.000000 + 0.000000 0.000000 0.000000 + 1.000000 0.000000 4.000000 + 10 1 100 0 0 + 1.000000 1.000000 +SHOWDEVICES + 8 0 0 + sensor + human_fixed + human_altered_with_data + ellipsoid + disk + fire_fighter + airpack + helmit +SHOWDEVICEPLOTS + 0 1 1 0.150000 1.000000 5.000000 0.000000 0.000000 0.000000 1.200000 +SHOWGENPLOTXLABEL + 0, 0.000000 +time +SHOWGENPLOTS + 0 + 1 1 0 1 1 0 0.000000 1 1 +GENPLOTLABELS + 0 +SHOWDEVICEVALS + 0 0 0 0 0 0 1 1 0 +SHOWHRRPLOT + 1 0 46006.992188 0.150000 0 +SHOWMISSINGOBJECTS + 1 +SHOWSLICEPLOT + 0.000000 0.000000 0.000000 0.150000 0 1 0.000000 0.000000 0.000000 0 1 +SMOKE3DCUTOFFS + 1.000000 200.000000 +SHOWGEOMTERRAIN +0 1 0 0 1 +TOURCIRCLE +0.800000 0.800000 1.600000 0.800000 0.800000 1.600000 5.995964 0.000000 +TOURINDEX + -1 +USERTICKS + 0 1 5 1 1 1 1.000000 1 + 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 + 1.600000 1.600000 3.200000 + 1.000000 1.000000 1.000000 + 1 1 1 +XYZCLIP + 0 + 0 -0.001600 0 1.601600 + 0 -0.001600 0 1.601600 + 0 -0.003200 0 3.203200 + + *** TIME/DATA BOUNDS *** + (0/1 min max skip (1=set, 0=unset) + +C_PARTICLES + 0 1.000000 0 0.000000 Uniform +C_PARTICLES + 0 -2.465354 0 2.497977 u +C_PARTICLES + 0 -2.548624 0 2.871834 v +C_PARTICLES + 0 -0.224888 0 10.259110 w +C_PLOT3D + 0 +C_SLICE + 0 1.000000 0 0.000000 temp +CACHE_DATA + 1 1 1 1 +PATCHDATAOUT + 0 0.000000 40.000000 0.000000 1.600000 0.000000 1.600000 0.000000 3.200000 +PERCENTILELEVEL + 0.010000 0.990000 +TIMEOFFSET + 0.000000 +TLOAD + 0 0.000000 0 1.000000 0 0 +V2_PARTICLES + 1 0.000000 1 1.000000 Uniform +V2_PARTICLES + 1 1.000000 1 0.000000 u +V2_PARTICLES + 1 1.000000 1 0.000000 v +V2_PARTICLES + 1 1.000000 1 0.000000 w +V2_SLICE + 1 20.000000 1 1124.189941 temp : 0.000000 1.000000 1 +V_TARGET + 0 1.000000 0 0.000000 + + +# FDS/Smokeview Environment +# ------------------------- + +# Smokeview Version: Test +# Smokeview Build: SMV-6.8.0-253-gf11db13-devel +# Smokeview Build Date: Jun 15 2023 +# FDS Version: FDS-6.8.0-213-g4ab035b-nightly +# FDS Build: FDS-6.8.0-213-g4ab035b-nightly +# Platform: WIN64 + + +# Graphics Environment +# -------------------- + +# OpenGL Version: 4.6.0 - Build 31.0.101.4032 +# GLSL Version: 4.60 - Build 31.0.101.4032 +# Red bits:8 +# Green bits:8 +# Blue bits:8 +# Alpha bits:8 +# Depth bits:24 +# max texture size:16384 + From 30488c9371646484655d9e9ad1d3b8242f33972a Mon Sep 17 00:00:00 2001 From: gforney Date: Sun, 18 Jun 2023 19:33:26 -0400 Subject: [PATCH 29/49] smokeview source: add option to output colorbar data in csv format --- Source/smokeview/glui_colorbar.cpp | 56 +++++++++++++++++++++++------- Source/smokeview/smokeviewvars.h | 4 ++- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 4028ea10a0..0e34043788 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -49,7 +49,6 @@ GLUI_Button *BUTTON_addpoint=NULL; GLUI_Button *BUTTON_deletepoint=NULL; GLUI_Button *BUTTON_savesettings=NULL; GLUI_Button *BUTTON_update=NULL; -GLUI_Button *BUTTON_colorbar_save=NULL; GLUI_Button *BUTTON_colorbar_close=NULL; GLUI_Button *BUTTON_autonodes = NULL; GLUI_RadioGroup *RADIO_colorbar_coord_type; @@ -60,6 +59,7 @@ GLUI_Checkbox *CHECKBOX_cb_interp = NULL; #endif GLUI_EditText *EDITTEXT_colorbar_label=NULL; +GLUI_EditText *EDITTEXT_colorbar_filename = NULL; GLUI_StaticText *STATICTEXT_left=NULL, *STATICTEXT_right=NULL; @@ -72,7 +72,7 @@ int cb_usecolorbar_extreme; #define COLORBAR_NEW 5 #define COLORBAR_ADDPOINT 7 #define COLORBAR_DELETEPOINT 8 -#define COLORBAR_SAVE 9 +#define COLORBAR_SAVE_INI 9 #define COLORBAR_LABEL 10 #define COLORBAR_UPDATE 11 #define COLORBAR_COLORINDEX 12 @@ -89,6 +89,7 @@ int cb_usecolorbar_extreme; #endif #define COLORBAR_LAB2 26 #define COLORBAR_RGB2 27 +#define COLORBAR_SAVE 32 #endif /* ------------------ UpdateColorbarEdit ------------------------ */ @@ -161,6 +162,28 @@ extern "C" void SetColorbarListEdit(int val){ if(LISTBOX_colorbar_edit!=NULL)LISTBOX_colorbar_edit->set_int_val(val); } +/* ------------------ Colorbar2File ------------------------ */ + +void Colorbar2File(colorbardata *cbi, char *file, char *label){ + FILE *stream=NULL; + int i; + + if(file!=NULL&&strlen(file)>0&&label!=NULL&&strlen(label)>0)stream = fopen(file, "w"); + if(stream==NULL)return; + fprintf(stream, "name,%s\n", label); + for(i=0;i<256;i++){ + float *rgbi; + int rgb255[3]; + + rgbi=cbi->colorbar+3*i; + rgb255[0] = rgbi[0] * 255.0; + rgb255[1] = rgbi[1] * 255.0; + rgb255[2] = rgbi[2] * 255.0; + fprintf(stream, "%i,%i,%i\n",rgb255[0],rgb255[1],rgb255[2]); + } + fclose(stream); +} + /* ------------------ ColorbarCB ------------------------ */ extern "C" void ColorbarCB(int var){ @@ -208,7 +231,7 @@ extern "C" void ColorbarCB(int var){ updatemenu = 1; } break; - case COLORBAR_SAVE: + case COLORBAR_SAVE_INI: updatemenu = 1; WriteIni(LOCAL_INI, NULL); break; @@ -410,6 +433,12 @@ extern "C" void ColorbarCB(int var){ break; #endif #endif + case COLORBAR_SAVE: + if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ + cbi = colorbarinfo + colorbartype; + Colorbar2File(cbi, colorbar_filename, colorbar_label); + } + break; case COLORBAR_DELETE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ colorbardata *cb_from, *cb_to; @@ -528,6 +557,9 @@ extern "C" void GluiColorbarSetup(int main_window){ NewMemory((void **)&colorbar_label,sizeof(GLUI_String)); strcpy(colorbar_label,_("New colorbar")); + NewMemory((void **)&colorbar_filename,sizeof(GLUI_String)); + strcpy(colorbar_filename,"colorbar.csv"); + if(glui_colorbar!=NULL){ glui_colorbar->close(); glui_colorbar=NULL; @@ -538,12 +570,6 @@ extern "C" void GluiColorbarSetup(int main_window){ PANEL_cb2R2 = glui_colorbar->add_panel("",GLUI_PANEL_NONE); BUTTON_new=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("New colorbar"),COLORBAR_NEW,ColorbarCB); BUTTON_delete=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Delete colorbar"),COLORBAR_DELETE,ColorbarCB); -#ifdef pp_COLOR_CIE -#ifdef pp_COLOR_ADJUST - glui_colorbar->add_button_to_panel(PANEL_cb2R2, _("Adjust colorbar"), COLORBAR_ADJUST, ColorbarCB); - glui_colorbar->add_button_to_panel(PANEL_cb2R2, _("Output CIElab distances"), COLORBAR_CIE_OUTPUT, ColorbarCB); -#endif -#endif colorbar_hidescene=1; CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); @@ -553,7 +579,8 @@ extern "C" void GluiColorbarSetup(int main_window){ LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); UpdateColorbarListEdit(1,CB_KEEP); } - EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); + EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label:"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); + EDITTEXT_colorbar_label->set_w(200); BUTTON_update=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Update label"),COLORBAR_UPDATE,ColorbarCB); BUTTON_autonodes=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Distribute nodes uniformly"),COLORBAR_UNIFORM,ColorbarCB); PANEL_cb11r = glui_colorbar->add_panel_to_panel(PANEL_cb1,"",GLUI_PANEL_NONE); @@ -590,8 +617,13 @@ extern "C" void GluiColorbarSetup(int main_window){ CHECKBOX_cb_interp = glui_colorbar->add_checkbox("interpolate using CIELab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); glui_colorbar->add_checkbox("show equal distance bars in CIELab space", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST - glui_colorbar->add_button(_("Revert CIE"), COLORBAR_REVERT, ColorbarCB); + glui_colorbar->add_button(_("Output CIElab distances"), COLORBAR_CIE_OUTPUT, ColorbarCB); + glui_colorbar->add_button(_("Adjust colorbar to be perceptually uniform"), COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_button(_("Revert colorbar"), COLORBAR_REVERT, ColorbarCB); #endif + glui_colorbar->add_button(_("Save colorbar"), COLORBAR_SAVE, ColorbarCB); + EDITTEXT_colorbar_filename = glui_colorbar->add_edittext("colorbar filename:",GLUI_EDITTEXT_TEXT,colorbar_filename); + EDITTEXT_colorbar_filename->set_w(200); #ifdef pp_COLOR_TOGGLE PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); @@ -630,7 +662,7 @@ extern "C" void GluiColorbarSetup(int main_window){ ColorbarGlobal2Local(); PANEL_cb10 = glui_colorbar->add_panel("",GLUI_PANEL_NONE); - BUTTON_colorbar_save=glui_colorbar->add_button_to_panel(PANEL_cb10,_("Save settings"),COLORBAR_SAVE,ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb10,_("Save settings"),COLORBAR_SAVE_INI,ColorbarCB); glui_colorbar->add_column_to_panel(PANEL_cb10,false); BUTTON_colorbar_close=glui_colorbar->add_button_to_panel(PANEL_cb10,_("Close"),COLORBAR_CLOSE,ColorbarCB); #ifdef pp_CLOSEOFF diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index f2a1458c29..0c62b37344 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1206,7 +1206,9 @@ SVEXTERN int ncamera_list,i_view_list,SVDECL(init_camera_list, 1); SVEXTERN int camera_max_id; SVEXTERN int startup,startup_view_ini,selected_view; SVEXTERN char viewpoint_label_startup[256]; -SVEXTERN char SVDECL(*camera_label,NULL), SVDECL(*colorbar_label,NULL); +SVEXTERN char SVDECL(*camera_label,NULL); +SVEXTERN char SVDECL(*colorbar_label,NULL); +SVEXTERN char SVDECL(*colorbar_filename, NULL); SVEXTERN int vis_boundary_type[7], SVDECL(update_ini_boundary_type,0); SVEXTERN int p3_extreme_min[MAXPLOT3DVARS], p3_extreme_max[MAXPLOT3DVARS]; From a92aad029efaa55089447ba7e5477a83c17dab72 Mon Sep 17 00:00:00 2001 From: gforney Date: Mon, 19 Jun 2023 08:40:06 -0400 Subject: [PATCH 30/49] smokeview source: set default colorbar index to 0 --- Source/smokeview/glui_colorbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 0e34043788..008b8bbbbe 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -574,7 +574,7 @@ extern "C" void GluiColorbarSetup(int main_window){ CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); if(ncolorbars>0){ - selectedcolorbar_index=-1; + selectedcolorbar_index=0; LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); UpdateColorbarListEdit(1,CB_KEEP); From 531a18a2d9a4b32cfe484d6b91ada74487794254 Mon Sep 17 00:00:00 2001 From: gforney Date: Mon, 19 Jun 2023 21:49:52 -0400 Subject: [PATCH 31/49] smokeview source: update colorbar lists if a colorbar is deleted, when saving a colorbar to a file use the colorbar labe as the file name --- Source/smokeview/colortimebar.c | 1 - Source/smokeview/glui_colorbar.cpp | 31 +++++++++++++++++++++--------- Source/smokeview/smokeviewvars.h | 1 - 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 1a8de79c86..a79bb3b83f 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1444,7 +1444,6 @@ int AddColorbar(int icolorbar){ UpdateColorbarBound(); UpdateColorbarEdit(); - colorbardata *cbnew; cbnew = GetColorbar(cb_label); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 008b8bbbbe..d87ffdc7fb 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -59,7 +59,6 @@ GLUI_Checkbox *CHECKBOX_cb_interp = NULL; #endif GLUI_EditText *EDITTEXT_colorbar_label=NULL; -GLUI_EditText *EDITTEXT_colorbar_filename = NULL; GLUI_StaticText *STATICTEXT_left=NULL, *STATICTEXT_right=NULL; @@ -164,11 +163,18 @@ extern "C" void SetColorbarListEdit(int val){ /* ------------------ Colorbar2File ------------------------ */ -void Colorbar2File(colorbardata *cbi, char *file, char *label){ +void Colorbar2File(colorbardata *cbi, char *label){ FILE *stream=NULL; int i; + char file[256]; - if(file!=NULL&&strlen(file)>0&&label!=NULL&&strlen(label)>0)stream = fopen(file, "w"); + if(label == NULL || strlen(label) == 0)return; + strcpy(file, label); + for(i = 0;i < strlen(file);i++){ + if(file[i] == ' ')file[i] = '_'; + } + strcat(file, ".csv"); + stream = fopen(file, "w"); if(stream==NULL)return; fprintf(stream, "name,%s\n", label); for(i=0;i<256;i++){ @@ -436,7 +442,7 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_SAVE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ cbi = colorbarinfo + colorbartype; - Colorbar2File(cbi, colorbar_filename, colorbar_label); + Colorbar2File(cbi, colorbar_label); } break; case COLORBAR_DELETE: @@ -459,6 +465,18 @@ extern "C" void ColorbarCB(int var){ if(colorbartype == ncolorbars)colorbartype--; LISTBOX_colorbar_edit->set_int_val(0); ColorbarCB(COLORBAR_LIST); + + SortColorBars(); + UpdateColorbarListEdit(1, CB_DELETE); + UpdateColorbarListBound(1); +#ifdef pp_COLOR_TOGGLE + UpdateColorbarListEdit(2, CB_DELETE); + UpdateColorbarListEdit(3, CB_DELETE); + UpdateColorbarListBound(2); + UpdateColorbarListBound(3); +#endif + UpdateColorbarBound(); + UpdateColorbarEdit(); } break; default: @@ -557,9 +575,6 @@ extern "C" void GluiColorbarSetup(int main_window){ NewMemory((void **)&colorbar_label,sizeof(GLUI_String)); strcpy(colorbar_label,_("New colorbar")); - NewMemory((void **)&colorbar_filename,sizeof(GLUI_String)); - strcpy(colorbar_filename,"colorbar.csv"); - if(glui_colorbar!=NULL){ glui_colorbar->close(); glui_colorbar=NULL; @@ -622,8 +637,6 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_button(_("Revert colorbar"), COLORBAR_REVERT, ColorbarCB); #endif glui_colorbar->add_button(_("Save colorbar"), COLORBAR_SAVE, ColorbarCB); - EDITTEXT_colorbar_filename = glui_colorbar->add_edittext("colorbar filename:",GLUI_EDITTEXT_TEXT,colorbar_filename); - EDITTEXT_colorbar_filename->set_w(200); #ifdef pp_COLOR_TOGGLE PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 0c62b37344..6aaf52f255 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1208,7 +1208,6 @@ SVEXTERN int startup,startup_view_ini,selected_view; SVEXTERN char viewpoint_label_startup[256]; SVEXTERN char SVDECL(*camera_label,NULL); SVEXTERN char SVDECL(*colorbar_label,NULL); -SVEXTERN char SVDECL(*colorbar_filename, NULL); SVEXTERN int vis_boundary_type[7], SVDECL(update_ini_boundary_type,0); SVEXTERN int p3_extreme_min[MAXPLOT3DVARS], p3_extreme_max[MAXPLOT3DVARS]; From 26ab2e4338dbf9cf28c78b93d42405eaa1bb47cf Mon Sep 17 00:00:00 2001 From: gforney Date: Mon, 19 Jun 2023 23:49:20 -0400 Subject: [PATCH 32/49] smokeview source: fix to colorbar sorting, fix to colorbar next and previous display buttons --- Source/smokeview/colortimebar.c | 28 +++++++++++++++++++++++----- Source/smokeview/glui_bounds.cpp | 8 +++++--- Source/smokeview/glui_colorbar.cpp | 8 +++++--- Source/smokeview/menus.c | 6 +++--- Source/smokeview/smokeviewvars.h | 2 ++ Source/smokeview/structures.h | 6 +++--- 6 files changed, 41 insertions(+), 17 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index a79bb3b83f..936d52aeb3 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1242,10 +1242,14 @@ void ReadCSVColorbar(colorbardata *cbptr, char *dir, char *file, char *ctype, in field2 = strtok(NULL, ","); if(field2 != NULL){ strcpy(cbptr->label, field2); + TrimBack(cbptr->label); } } rewind(stream); - if(have_name == 1)fgets(buffer, 255, stream); + if(have_name == 1){ + fgets(buffer, 255, stream); + TrimBack(buffer); + } for(;;){ if(fgets(buffer, 255, stream) == NULL)break; n++; @@ -1255,7 +1259,10 @@ void ReadCSVColorbar(colorbardata *cbptr, char *dir, char *file, char *ctype, in NewMemory((void **)&rgbs, 3 * n * sizeof(int)); rgbscopy = rgbs; - if(have_name==1)fgets(buffer, 255, stream); + if(have_name == 1){ + fgets(buffer, 255, stream); + TrimBack(buffer); + } for(i=0;itypetype)return -1; if(cbi->type>cbj->type)return 1; return STRCMP(cbi->label, cbj->label); @@ -1351,6 +1361,10 @@ void SortColorBars(void){ strcpy(label_bound, cbt1->label); } + FREEMEMORY(colorbar_list_sorted); + NewMemory((void **)&colorbar_list_sorted, ncolorbars*sizeof(int)); + FREEMEMORY(colorbar_list_inverse); + NewMemory((void **)&colorbar_list_inverse, ncolorbars*sizeof(int)); for(i=0; ictype, "deprecated")==0)cbi->type = CB_DEPRECATED; if(strcmp(cbi->ctype, "original") == 0)cbi->type = CB_ORIGINAL; if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; + colorbar_list_sorted[i] = i; + } + qsort((colorbardata *)colorbar_list_sorted, (size_t)ncolorbars, sizeof(int), CompareColorbars); + for(i=0; ictype, label_arg) != 0)continue; #ifdef pp_COLOR_TOGGLE - LIST_cbar->add_item(i, cbi->label); - *max_index = MAX(i, *max_index); + LIST_cbar->add_item(colorbar_list_sorted[i], cbi->label); + *max_index = MAX(colorbar_list_sorted[i], *max_index); #endif } } @@ -6332,10 +6332,12 @@ extern "C" void SliceBoundCB(int var){ switch(var){ case COLORBAR_LIST2_NEXT: case COLORBAR_LIST2_PREV: + selectedcolorbar_index2 = colorbar_list_inverse[selectedcolorbar_index2]; if(var==COLORBAR_LIST2_NEXT)selectedcolorbar_index2++; if(var==COLORBAR_LIST2_PREV)selectedcolorbar_index2--; if(selectedcolorbar_index2<0)selectedcolorbar_index2= max_LISTBOX_colorbar_bound; if(selectedcolorbar_index2> max_LISTBOX_colorbar_bound)selectedcolorbar_index2=0; + selectedcolorbar_index2 = colorbar_list_sorted[selectedcolorbar_index2]; LISTBOX_colorbar_bound->set_int_val(selectedcolorbar_index2); SliceBoundCB(COLORBAR_LIST2); break; diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index d87ffdc7fb..8abd09bcd1 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -389,10 +389,12 @@ extern "C" void ColorbarCB(int var){ break; case COLORBAR_PREV: case COLORBAR_NEXT: + colorbartype = colorbar_list_inverse[colorbartype]; if(var==COLORBAR_PREV)colorbartype--; if(var==COLORBAR_NEXT)colorbartype++; if(colorbartype<0)colorbartype= max_LISTBOX_colorbar_edit; if(colorbartype> max_LISTBOX_colorbar_edit)colorbartype=0; + colorbartype = colorbar_list_sorted[colorbartype]; LISTBOX_colorbar_edit->set_int_val(colorbartype); ColorbarCB(COLORBAR_LIST); break; @@ -508,10 +510,10 @@ void AddColorbarListEdit(GLUI_Listbox *LIST_cbar, int index, char *label_arg, in for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; - cbi = colorbarinfo + i; + cbi = colorbarinfo + colorbar_list_sorted[i]; if(strcmp(cbi->ctype, label_arg) != 0)continue; - LIST_cbar->add_item(i, cbi->label); - *max_index = MAX(i, *max_index); + LIST_cbar->add_item(colorbar_list_sorted[i], cbi->label); + *max_index = MAX(colorbar_list_sorted[i], *max_index); } } diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 381faa12d4..74d76cae50 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8262,10 +8262,10 @@ int MakeSubColorbarMenu(int *submenuptr, int *nmenusptr, char *ctype, void (*CBM for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; - cbi = colorbarinfo + i; + cbi = colorbarinfo + colorbar_list_sorted[i]; if(strcmp(cbi->ctype, ctype) != 0)continue; strcpy(ccolorbarmenu, ""); - if(colorbartype == i){ + if(colorbartype == colorbar_list_sorted[i]){ strcat(ccolorbarmenu, "*"); strcat(ccolorbarmenu, cbi->label); } @@ -8275,7 +8275,7 @@ int MakeSubColorbarMenu(int *submenuptr, int *nmenusptr, char *ctype, void (*CBM char *ext; ext = strrchr(ccolorbarmenu, '.'); if(ext != NULL)*ext = 0; - glutAddMenuEntry(ccolorbarmenu, i); + glutAddMenuEntry(ccolorbarmenu, colorbar_list_sorted[i]); } return 1; } diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 6aaf52f255..fb47864371 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -541,6 +541,8 @@ SVEXTERN int SVDECL(update_loadall_textures, 1); SVEXTERN int SVDECL(max_LISTBOX_colorbar_bound, 0); SVEXTERN int SVDECL(max_LISTBOX_colorbar_edit, 0); +SVEXTERN int SVDECL(*colorbar_list_sorted, NULL); +SVEXTERN int SVDECL(*colorbar_list_inverse, NULL); #ifdef pp_COLOR_CIE SVEXTERN int SVDECL(show_Lab_dist_bars, 0); SVEXTERN int SVDECL(interp_cielab, 1); diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index 7761e0d386..e73149f216 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -268,9 +268,9 @@ typedef struct _treedata { #define CB_LINEAR 1 #define CB_DIVERGENT 2 #define CB_CIRCULAR 3 -#define CB_DEPRECATED 4 -#define CB_USER 5 -#define CB_ORIGINAL 6 +#define CB_ORIGINAL 4 +#define CB_DEPRECATED 5 +#define CB_USER 6 #define CB_OTHER 7 typedef struct _colorbardata { char label[1024]; // menu label From 656686e558bdb25ee3287ef2e8d3e122c3fdc5b9 Mon Sep 17 00:00:00 2001 From: gforney Date: Mon, 19 Jun 2023 23:52:55 -0400 Subject: [PATCH 33/49] smokeview source: fix compiler warning --- Source/smokeview/glui_colorbar.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 8abd09bcd1..a568793468 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -170,7 +170,10 @@ void Colorbar2File(colorbardata *cbi, char *label){ if(label == NULL || strlen(label) == 0)return; strcpy(file, label); - for(i = 0;i < strlen(file);i++){ + int lenfile; + + lenfile = strlen(file); + for(i = 0;i < lenfile; i++){ if(file[i] == ' ')file[i] = '_'; } strcat(file, ".csv"); From 764c21a0d3f480050727ae4854f97aa6af6dfd2a Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 09:11:25 -0400 Subject: [PATCH 34/49] smokeview source: minor formatting edits to colorbar dialog box --- Source/smokeview/colortimebar.c | 2 ++ Source/smokeview/glui_colorbar.cpp | 20 ++++++++++++-------- Source/smokeview/menus.c | 1 + 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 936d52aeb3..d60c3a102d 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1479,7 +1479,9 @@ int AddColorbar(int icolorbar){ void InitDefaultColorbars(int nini){ int i; colorbardata *cbi; +#ifdef pp_COLORBARS_CSV int ncolorbars_dirlist; +#endif ndefaultcolorbars = 0; diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index a568793468..fe896fb9df 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -10,6 +10,9 @@ GLUI *glui_colorbar=NULL; +#ifdef pp_COLOR_CIE +GLUI_Panel *PANEL_cb_display = NULL; +#endif GLUI_Panel *PANEL_cb1=NULL; GLUI_Panel *PANEL_cb2R2=NULL; GLUI_Panel *PANEL_cb4=NULL; @@ -442,7 +445,6 @@ extern "C" void ColorbarCB(int var){ RevertColorBar(colorbarinfo + colorbartype); ColorbarCB(COLORBAR_RGB); break; -#endif #endif case COLORBAR_SAVE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ @@ -450,6 +452,7 @@ extern "C" void ColorbarCB(int var){ Colorbar2File(cbi, colorbar_label); } break; +#endif case COLORBAR_DELETE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ colorbardata *cb_from, *cb_to; @@ -631,17 +634,18 @@ extern "C" void GluiColorbarSetup(int main_window){ SPINNER_rgb[2]->set_int_limits(0,255); #ifdef pp_COLOR_CIE - RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup(&colorbar_coord_type); + PANEL_cb_display = glui_colorbar->add_panel("Colorbar display"); + RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup_to_panel(PANEL_cb_display,&colorbar_coord_type); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); - CHECKBOX_cb_interp = glui_colorbar->add_checkbox("interpolate using CIELab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); - glui_colorbar->add_checkbox("show equal distance bars in CIELab space", &show_Lab_dist_bars); + CHECKBOX_cb_interp = glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Interpolate using CIELab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Show CIELab equal distance bars", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST - glui_colorbar->add_button(_("Output CIElab distances"), COLORBAR_CIE_OUTPUT, ColorbarCB); - glui_colorbar->add_button(_("Adjust colorbar to be perceptually uniform"), COLORBAR_ADJUST, ColorbarCB); - glui_colorbar->add_button(_("Revert colorbar"), COLORBAR_REVERT, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save CIElab distances", COLORBAR_CIE_OUTPUT, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust colorbar", COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert colorbar", COLORBAR_REVERT, ColorbarCB); #endif - glui_colorbar->add_button(_("Save colorbar"), COLORBAR_SAVE, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save colorbar", COLORBAR_SAVE, ColorbarCB); #ifdef pp_COLOR_TOGGLE PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index 74d76cae50..e47c47a116 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8324,6 +8324,7 @@ void MakeColorbarMenu(int *menuptr, { char ccolorbarmenu[256]; + int i; for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; From a4cb25a462b855370a59474a52a25748cb91a9d9 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 11:18:38 -0400 Subject: [PATCH 35/49] smokeview source: fixes to colorbars defined in the ini file --- Source/smokeview/colortimebar.c | 2 -- Source/smokeview/glui_bounds.cpp | 3 +-- Source/smokeview/glui_colorbar.cpp | 1 + Source/smokeview/readsmv.c | 15 +++++++++++++++ Source/smokeview/update.c | 16 ++++++++++++++++ 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index d60c3a102d..e1ed337d7c 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1385,8 +1385,6 @@ void SortColorBars(void){ } colorbardata *cb; - cb = GetColorbar("Rainbow"); - if(cb != NULL)colorbartype_default = cb - colorbarinfo; bw_colorbar_index = -1; cb = GetColorbar("black->white"); diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index c12502de99..1280f1b158 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -5495,10 +5495,9 @@ extern "C" void GluiBoundsSetup(int main_window){ if(ncolorbars>0){ selectedcolorbar_index2 = -1; LISTBOX_colorbar_bound = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); - UpdateColorbarListBound(1); - LISTBOX_colorbar_bound->set_int_val(colorbartype_default); + glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Next"), COLORBAR_LIST2_NEXT, SliceBoundCB); glui_bounds->add_button_to_panel(PANEL_colorbar_properties, _("Previous"), COLORBAR_LIST2_PREV, SliceBoundCB); } diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index fe896fb9df..a1d97d63ff 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -601,6 +601,7 @@ extern "C" void GluiColorbarSetup(int main_window){ LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); UpdateColorbarListEdit(1,CB_KEEP); + LISTBOX_colorbar_edit->set_int_val(colorbartype_default); } EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label:"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); EDITTEXT_colorbar_label->set_w(200); diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index c3d79c3d6f..f55e893641 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -14840,6 +14840,8 @@ int ReadIni2(char *inifile, int localfile){ TrimBack(buffer); cb_buffptr = TrimFront(buffer); strcpy(cbi->label, cb_buffptr); + cbi->type = CB_USER; + strcpy(cbi->ctype, "user"); fgets(buffer, 255, stream); sscanf(buffer, "%i %i", &cbi->nnodes, &cbi->nodehilight); @@ -14863,7 +14865,20 @@ int ReadIni2(char *inifile, int localfile){ } RemapColorbar(cbi); UpdateColorbarSplits(cbi); + + SortColorBars(); + UpdateColorbarListEdit(1, CB_DELETE); + UpdateColorbarListBound(1); +#ifdef pp_COLOR_TOGGLE + UpdateColorbarListEdit(2, CB_DELETE); + UpdateColorbarListEdit(3, CB_DELETE); + UpdateColorbarListBound(2); + UpdateColorbarListBound(3); +#endif + UpdateColorbarBound(); + UpdateColorbarEdit(); } + continue; } diff --git a/Source/smokeview/update.c b/Source/smokeview/update.c index eeab1ae0b0..69ea0363d6 100644 --- a/Source/smokeview/update.c +++ b/Source/smokeview/update.c @@ -2497,10 +2497,26 @@ void UpdateDisplay(void){ cb = GetColorbar(colorbarname); if(cb != NULL){ colorbartype = cb - colorbarinfo; + colorbartype_default = colorbartype; UpdateCurrentColorbar(cb); if(colorbartype != colorbartype_default){ colorbartype_ini = colorbartype; } + if(colorbarinfo != NULL){ + SortColorBars(); + UpdateColorbarListEdit(1, CB_DELETE); + UpdateColorbarListBound(1); +#ifdef pp_COLOR_TOGGLE + UpdateColorbarListEdit(2, CB_DELETE); + UpdateColorbarListEdit(3, CB_DELETE); + UpdateColorbarListBound(2); + UpdateColorbarListBound(3); +#endif + selectedcolorbar_index = colorbartype_default; + selectedcolorbar_index2 = colorbartype_default; + UpdateColorbarBound(); + UpdateColorbarEdit(); + } } update_colorbartype = 0; } From 7d154bc1ab8a93ff76733f0eb1efdc0e06d6c262 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 15:08:24 -0400 Subject: [PATCH 36/49] smokeview source: unify variables namesfor representing the colorbar index used --- Source/smokeview/colortimebar.c | 21 ++++++++++----------- Source/smokeview/glui_bounds.cpp | 28 ++++++++++++++-------------- Source/smokeview/glui_colorbar.cpp | 16 ++++++++-------- Source/smokeview/menus.c | 3 +-- Source/smokeview/smokeviewvars.h | 1 - Source/smokeview/update.c | 3 +-- 6 files changed, 34 insertions(+), 38 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index e1ed337d7c..882326237a 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1349,15 +1349,15 @@ void SortColorBars(void){ } #endif strcpy(label_edit, ""); - if(selectedcolorbar_index >= 0){ + if(colorbartype >= 0){ colorbardata *cbt1; - cbt1 = colorbarinfo + selectedcolorbar_index; + cbt1 = colorbarinfo + colorbartype; strcpy(label_edit, cbt1->label); } strcpy(label_bound, ""); - if(selectedcolorbar_index2 >= 0){ + if(colorbartype >= 0){ colorbardata *cbt1; - cbt1 = colorbarinfo + selectedcolorbar_index2; + cbt1 = colorbarinfo + colorbartype; strcpy(label_bound, cbt1->label); } @@ -1417,11 +1417,11 @@ void SortColorBars(void){ #endif cb = NULL; if(strlen(label_edit) > 0)cb = GetColorbar(label_edit); - if(cb != NULL)selectedcolorbar_index = cb - colorbarinfo; + if(cb != NULL)colorbartype = cb - colorbarinfo; cb = NULL; if(strlen(label_bound) > 0)cb = GetColorbar(label_bound); - if(cb != NULL)selectedcolorbar_index2= cb - colorbarinfo; + if(cb != NULL)colorbartype= cb - colorbarinfo; } /* ------------------ AddColorbar ------------------------ */ @@ -1464,12 +1464,11 @@ int AddColorbar(int icolorbar){ cbnew = GetColorbar(cb_label); if(cbnew != NULL){ - selectedcolorbar_index = cbnew - colorbarinfo; - selectedcolorbar_index2 = selectedcolorbar_index; + colorbartype = cbnew - colorbarinfo; } - SetColorbarListEdit(selectedcolorbar_index); - SetColorbarListBound(selectedcolorbar_index2); - return selectedcolorbar_index; + SetColorbarListEdit(colorbartype); + SetColorbarListBound(colorbartype); + return colorbartype; } /* ------------------ InitDefaultColorbars ------------------------ */ diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 1280f1b158..d8c655e5fd 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -3595,7 +3595,7 @@ extern "C" void UpdateExtreme(void){ /* ------------------ UpdateColorbarBound ------------------------ */ extern "C" void UpdateColorbarBound(void){ - if(LISTBOX_colorbar_bound != NULL)LISTBOX_colorbar_bound->set_int_val(selectedcolorbar_index2); + if(LISTBOX_colorbar_bound != NULL)LISTBOX_colorbar_bound->set_int_val(colorbartype); #ifdef pp_COLOR_TOGGLE if(LISTBOX_colorbar_toggle_bound1!=NULL)LISTBOX_colorbar_toggle_bound1->set_int_val(index_colorbar1); if(LISTBOX_colorbar_toggle_bound2!=NULL)LISTBOX_colorbar_toggle_bound2->set_int_val(index_colorbar2); @@ -5493,8 +5493,8 @@ extern "C" void GluiBoundsSetup(int main_window){ if(ncolorbars>0){ - selectedcolorbar_index2 = -1; - LISTBOX_colorbar_bound = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &selectedcolorbar_index2, COLORBAR_LIST2, SliceBoundCB); + colorbartype = -1; + LISTBOX_colorbar_bound = glui_bounds->add_listbox_to_panel(PANEL_colorbar_properties, "", &colorbartype, COLORBAR_LIST2, SliceBoundCB); UpdateColorbarListBound(1); LISTBOX_colorbar_bound->set_int_val(colorbartype_default); @@ -6331,13 +6331,13 @@ extern "C" void SliceBoundCB(int var){ switch(var){ case COLORBAR_LIST2_NEXT: case COLORBAR_LIST2_PREV: - selectedcolorbar_index2 = colorbar_list_inverse[selectedcolorbar_index2]; - if(var==COLORBAR_LIST2_NEXT)selectedcolorbar_index2++; - if(var==COLORBAR_LIST2_PREV)selectedcolorbar_index2--; - if(selectedcolorbar_index2<0)selectedcolorbar_index2= max_LISTBOX_colorbar_bound; - if(selectedcolorbar_index2> max_LISTBOX_colorbar_bound)selectedcolorbar_index2=0; - selectedcolorbar_index2 = colorbar_list_sorted[selectedcolorbar_index2]; - LISTBOX_colorbar_bound->set_int_val(selectedcolorbar_index2); + colorbartype = colorbar_list_inverse[colorbartype]; + if(var==COLORBAR_LIST2_NEXT)colorbartype++; + if(var==COLORBAR_LIST2_PREV)colorbartype--; + if(colorbartype<0)colorbartype= max_LISTBOX_colorbar_bound; + if(colorbartype> max_LISTBOX_colorbar_bound)colorbartype=0; + colorbartype = colorbar_list_sorted[colorbartype]; + LISTBOX_colorbar_bound->set_int_val(colorbartype); SliceBoundCB(COLORBAR_LIST2); break; case SLICE_SIZE: @@ -6470,11 +6470,11 @@ extern "C" void SliceBoundCB(int var){ list_index = LISTBOX_colorbar_bound->get_int_val(); if(list_index<0)break; - selectedcolorbar_index = list_index; - SetColorbarListEdit(selectedcolorbar_index); - ColorbarMenu(selectedcolorbar_index); + colorbartype = list_index; + SetColorbarListEdit(colorbartype); + ColorbarMenu(colorbartype); ColorbarGlobal2Local(); - if(selectedcolorbar_index2 == bw_colorbar_index&&bw_colorbar_index>=0){ + if(colorbartype == bw_colorbar_index&&bw_colorbar_index>=0){ setbwdata = 1; ColorbarMenu(bw_colorbar_index); } diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index a1d97d63ff..e63dcdb4b0 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -97,7 +97,7 @@ int cb_usecolorbar_extreme; /* ------------------ UpdateColorbarEdit ------------------------ */ extern "C" void UpdateColorbarEdit(void){ -if(LISTBOX_colorbar_edit != NULL)LISTBOX_colorbar_edit->set_int_val(selectedcolorbar_index); +if(LISTBOX_colorbar_edit != NULL)LISTBOX_colorbar_edit->set_int_val(colorbartype); #ifdef pp_COLOR_TOGGLE if(LISTBOX_colorbar_toggle_edit1!=NULL)LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); if(LISTBOX_colorbar_toggle_edit2!=NULL)LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); @@ -369,15 +369,15 @@ extern "C" void ColorbarCB(int var){ list_index = LISTBOX_colorbar_edit->get_int_val(); if(list_index<0)break; - selectedcolorbar_index2 = list_index; + colorbartype = list_index; if(show_firecolormap==0){ - colorbartype=selectedcolorbar_index2; + colorbartype=colorbartype; } else{ - fire_colorbar_index= selectedcolorbar_index2; + fire_colorbar_index= colorbartype; } - SetColorbarListBound(selectedcolorbar_index2); - ColorbarMenu(selectedcolorbar_index2); + SetColorbarListBound(colorbartype); + ColorbarMenu(colorbartype); ColorbarGlobal2Local(); break; #ifdef pp_COLOR_TOGGLE @@ -597,9 +597,9 @@ extern "C" void GluiColorbarSetup(int main_window){ CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); if(ncolorbars>0){ - selectedcolorbar_index=0; + colorbartype=0; - LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&selectedcolorbar_index,COLORBAR_LIST,ColorbarCB); + LISTBOX_colorbar_edit=glui_colorbar->add_listbox_to_panel(PANEL_cb1,"",&colorbartype,COLORBAR_LIST,ColorbarCB); UpdateColorbarListEdit(1,CB_KEEP); LISTBOX_colorbar_edit->set_int_val(colorbartype_default); } diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index e47c47a116..ca689023d5 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -1041,10 +1041,9 @@ void ColorbarMenu(int value){ iso_colorbar = colorbarinfo + iso_colorbar_index; update_texturebar=1; UpdateListIsoColorobar(); - selectedcolorbar_index2=colorbartype; UpdateCurrentColorbar(colorbarinfo+colorbartype); UpdateColorbarType(); - SetColorbarListBound(selectedcolorbar_index2); + SetColorbarListBound(colorbartype); if(colorbartype == bw_colorbar_index&&bw_colorbar_index>=0){ setbwdata = 1; } diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index fb47864371..a22dcffbb8 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1506,7 +1506,6 @@ SVEXTERN float linewidth, ventlinewidth, highlight_linewidth,solidlinewidth; SVEXTERN float SVDECL(sliceoffset_factor,0.1), SVDECL(ventoffset_factor,0.1); SVEXTERN int visBLOCKold; -SVEXTERN int selectedcolorbar_index,selectedcolorbar_index2; SVEXTERN int planar_terrain_slice; SVEXTERN int SVDECL(nrgb, NRGB); SVEXTERN int nrgb_ini; diff --git a/Source/smokeview/update.c b/Source/smokeview/update.c index 69ea0363d6..240b534787 100644 --- a/Source/smokeview/update.c +++ b/Source/smokeview/update.c @@ -2512,8 +2512,7 @@ void UpdateDisplay(void){ UpdateColorbarListBound(2); UpdateColorbarListBound(3); #endif - selectedcolorbar_index = colorbartype_default; - selectedcolorbar_index2 = colorbartype_default; + colorbartype = colorbartype_default; UpdateColorbarBound(); UpdateColorbarEdit(); } From 6ee45adf8e9d6439c65077ddbeed62bfa1effa3d Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 15:31:06 -0400 Subject: [PATCH 37/49] smokeview source: add back file name when outputting colorbar data --- Source/smokeview/glui_colorbar.cpp | 37 +++++++++++++++--------------- Source/smokeview/smokeviewvars.h | 1 + 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index e63dcdb4b0..7ad7b5f4d3 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -61,7 +61,8 @@ GLUI_Checkbox *CHECKBOX_hidesv=NULL; GLUI_Checkbox *CHECKBOX_cb_interp = NULL; #endif -GLUI_EditText *EDITTEXT_colorbar_label=NULL; +GLUI_EditText *EDITTEXT_colorbar_label =NULL; +GLUI_EditText *EDITTEXT_colorbar_filename = NULL; GLUI_StaticText *STATICTEXT_left=NULL, *STATICTEXT_right=NULL; @@ -166,32 +167,22 @@ extern "C" void SetColorbarListEdit(int val){ /* ------------------ Colorbar2File ------------------------ */ -void Colorbar2File(colorbardata *cbi, char *label){ - FILE *stream=NULL; +void Colorbar2File(colorbardata *cbi, char *file, char *label){ + FILE *stream = NULL; int i; - char file[256]; - if(label == NULL || strlen(label) == 0)return; - strcpy(file, label); - int lenfile; - - lenfile = strlen(file); - for(i = 0;i < lenfile; i++){ - if(file[i] == ' ')file[i] = '_'; - } - strcat(file, ".csv"); - stream = fopen(file, "w"); - if(stream==NULL)return; + if(file != NULL && strlen(file) > 0 && label != NULL && strlen(label) > 0)stream = fopen(file, "w"); + if(stream == NULL)return; fprintf(stream, "name,%s\n", label); - for(i=0;i<256;i++){ + for(i = 0;i < 256;i++){ float *rgbi; int rgb255[3]; - rgbi=cbi->colorbar+3*i; + rgbi = cbi->colorbar + 3 * i; rgb255[0] = rgbi[0] * 255.0; rgb255[1] = rgbi[1] * 255.0; rgb255[2] = rgbi[2] * 255.0; - fprintf(stream, "%i,%i,%i\n",rgb255[0],rgb255[1],rgb255[2]); + fprintf(stream, "%i,%i,%i\n", rgb255[0], rgb255[1], rgb255[2]); } fclose(stream); } @@ -449,7 +440,7 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_SAVE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ cbi = colorbarinfo + colorbartype; - Colorbar2File(cbi, colorbar_label); + Colorbar2File(cbi, colorbar_filename, colorbar_label); } break; #endif @@ -583,6 +574,12 @@ extern "C" void GluiColorbarSetup(int main_window){ NewMemory((void **)&colorbar_label,sizeof(GLUI_String)); strcpy(colorbar_label,_("New colorbar")); + if(colorbar_filename != NULL){ + FREEMEMORY(colorbar_filename); + } + NewMemory((void **)&colorbar_filename, sizeof(GLUI_String)); + strcpy(colorbar_filename, "colorbar.csv"); + if(glui_colorbar!=NULL){ glui_colorbar->close(); glui_colorbar=NULL; @@ -647,6 +644,8 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert colorbar", COLORBAR_REVERT, ColorbarCB); #endif glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save colorbar", COLORBAR_SAVE, ColorbarCB); + EDITTEXT_colorbar_filename = glui_colorbar->add_edittext_to_panel(PANEL_cb_display, "colorbar filename:", GLUI_EDITTEXT_TEXT, colorbar_filename); + EDITTEXT_colorbar_filename->set_w(200); #ifdef pp_COLOR_TOGGLE PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index a22dcffbb8..d71f7b06df 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -1210,6 +1210,7 @@ SVEXTERN int startup,startup_view_ini,selected_view; SVEXTERN char viewpoint_label_startup[256]; SVEXTERN char SVDECL(*camera_label,NULL); SVEXTERN char SVDECL(*colorbar_label,NULL); +SVEXTERN char SVDECL(*colorbar_filename, NULL); SVEXTERN int vis_boundary_type[7], SVDECL(update_ini_boundary_type,0); SVEXTERN int p3_extreme_min[MAXPLOT3DVARS], p3_extreme_max[MAXPLOT3DVARS]; From 5c20d08cd8b0e4701e6fd30e9f5437eaa94b4a5b Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 15:59:00 -0400 Subject: [PATCH 38/49] smokeview source: fix to circular colorbar menus when there are no circular colorbars --- Source/smokeview/menus.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index ca689023d5..b4e37c7ca0 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8294,12 +8294,12 @@ void MakeColorbarMenu(int *menuptr, int submenu4 = 0, submenu5 = 0, submenu6 = 0; int submenu7 = 0; - MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); - MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); MakeSubColorbarMenu(&submenu3, &nmenus, "rainbow", CBMenu); + MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); MakeSubColorbarMenu(&submenu4, &nmenus, "divergent", CBMenu); - MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); + MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); MakeSubColorbarMenu(&submenu7, &nmenus, "original", CBMenu); + MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); MakeSubColorbarMenu(&submenu5, &nmenus, "user", CBMenu); #endif @@ -8308,7 +8308,7 @@ void MakeColorbarMenu(int *menuptr, if(submenu3 > 0)GLUTADDSUBMENU("rainbow", submenu3); if(submenu1 > 0)GLUTADDSUBMENU("linear", submenu1); if(submenu4 > 0)GLUTADDSUBMENU("divergent", submenu4); - if(submenu3 > 0)GLUTADDSUBMENU("circular", submenu2); + if(submenu2 > 0)GLUTADDSUBMENU("circular", submenu2); if(submenu7 > 0 )GLUTADDSUBMENU("original", submenu7); if(submenu6 > 0)GLUTADDSUBMENU("deprecated", submenu6); if(submenu5 > 0)GLUTADDSUBMENU("user", submenu5); From bc14291edecc2889bc92cd2143057031aa6cd82d Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 16:03:59 -0400 Subject: [PATCH 39/49] smv vv: update colorbar ini file --- vistest/colorbars/colorbars.ini | 871 +++++++++++++++++++++++++++++++- 1 file changed, 843 insertions(+), 28 deletions(-) diff --git a/vistest/colorbars/colorbars.ini b/vistest/colorbars/colorbars.ini index fa79f29082..37c7791cf6 100644 --- a/vistest/colorbars/colorbars.ini +++ b/vistest/colorbars/colorbars.ini @@ -1,4 +1,4 @@ -# NIST Smokeview configuration file, Release Jun 15 2023 +# NIST Smokeview configuration file, Release Jun 20 2023 ------------ global ini settings ------------ @@ -17,18 +17,18 @@ BOUNDCOLOR 0.500000 0.500000 0.500000 COLORBAR 12 1 -1 5 - 0.000000 0.203922 0.960784 - 0.000000 0.396078 0.709804 - 0.176471 0.509804 0.482353 - 0.247059 0.603922 0.247059 - 0.376471 0.678431 0.062745 - 0.596078 0.729412 0.101961 - 0.803922 0.780392 0.145098 - 0.976471 0.796078 0.172549 - 1.000000 0.678431 0.125490 - 1.000000 0.549020 0.074510 - 1.000000 0.403922 0.023529 - 0.992157 0.188235 0.000000 + 0.000000 0.000000 1.000000 + 0.321569 0.450980 1.000000 + 0.321569 0.760784 1.000000 + 0.149020 1.000000 0.941176 + 0.274510 1.000000 0.658824 + 0.207843 1.000000 0.352941 + 0.396078 1.000000 0.000000 + 0.705882 1.000000 0.000000 + 0.937255 1.000000 0.000000 + 1.000000 0.819608 0.000000 + 1.000000 0.537255 0.000000 + 1.000000 0.000000 0.000000 COLOR2BAR 8 1.000000 1.000000 1.000000 :white @@ -160,9 +160,9 @@ VENTOFFSET WINDOWOFFSET 45 WINDOWWIDTH - 640 + 1264 WINDOWHEIGHT - 480 + 1043 *** DATA LOADING *** @@ -226,7 +226,7 @@ FRAMERATEVALUE FREEZEVOLSMOKE 0 1 GEOMBOUNDARYPROPS - 1 0 0 5.000000 5.000000 2 + 1 0 0 5.000000 5.000000 1 SHOWSLICEVALS 0 0 0 GEOMCELLPROPS @@ -436,9 +436,9 @@ SHOWGRAVVECTOR *** 3D SMOKE INFO *** COLORBARTYPE - 1 % Rainbow + 0 % Rainbow CO2COLORMAP - 1 13 + 1 17 EXTREMECOLORS 0 0 0 0 0 0 FIRECOLOR @@ -447,6 +447,813 @@ FIRECOLORMAP 1 8 FIREDEPTH 3.000000 10.000000 10.000000 0 +GCOLORBAR + 7 + CET-R2_adjusted + 256 0 + 0 0 52 245 + 2 0 55 243 + 4 0 58 240 + 6 0 60 237 + 9 0 63 234 + 11 0 65 231 + 13 0 68 229 + 15 0 70 226 + 18 0 72 223 + 20 0 74 220 + 23 0 77 217 + 25 0 79 214 + 27 0 81 212 + 30 0 83 209 + 32 0 85 206 + 35 0 87 203 + 37 0 89 201 + 39 0 90 198 + 41 0 92 195 + 44 0 94 192 + 46 0 96 189 + 49 0 98 187 + 51 0 99 184 + 53 0 101 181 + 56 0 103 178 + 57 0 104 176 + 60 0 106 173 + 62 0 108 170 + 64 0 109 167 + 67 0 111 165 + 69 0 112 162 + 70 0 113 160 + 73 0 115 157 + 75 0 116 154 + 76 0 117 152 + 78 1 118 149 + 80 8 119 147 + 81 14 120 145 + 83 20 122 142 + 85 24 123 140 + 87 28 124 137 + 88 32 125 135 + 89 35 126 133 + 91 38 127 130 + 93 41 128 128 + 94 43 129 126 + 96 45 130 123 + 97 47 131 121 + 99 49 132 118 + 100 51 133 116 + 102 52 134 114 + 103 53 135 111 + 105 55 136 109 + 107 56 137 106 + 108 57 138 104 + 110 58 139 101 + 111 59 140 99 + 113 59 141 96 + 114 60 142 94 + 116 61 143 91 + 117 61 144 88 + 119 62 145 86 + 120 62 146 83 + 122 62 147 80 + 123 63 148 78 + 125 63 149 75 + 126 63 150 72 + 128 63 152 69 + 130 63 153 66 + 131 63 154 63 + 133 63 155 60 + 134 63 156 57 + 136 63 157 53 + 137 63 158 50 + 138 63 159 47 + 140 63 160 43 + 141 63 161 40 + 142 64 162 36 + 143 64 163 33 + 144 65 164 30 + 145 66 165 27 + 146 68 166 24 + 147 70 166 22 + 147 72 167 20 + 148 74 168 18 + 149 77 169 16 + 149 79 169 16 + 150 82 170 15 + 150 85 171 15 + 151 87 171 15 + 151 90 172 15 + 152 93 172 15 + 153 96 173 16 + 153 98 174 16 + 154 101 174 17 + 155 104 175 17 + 155 106 175 18 + 156 109 176 18 + 156 111 177 18 + 157 114 177 19 + 158 116 178 19 + 158 119 178 20 + 159 121 179 20 + 160 124 180 21 + 160 126 180 21 + 161 129 181 22 + 161 131 181 22 + 162 133 182 23 + 163 136 182 23 + 163 138 183 24 + 164 140 183 24 + 165 143 184 25 + 165 145 185 25 + 166 147 185 26 + 166 150 186 26 + 167 152 186 26 + 168 154 187 27 + 168 156 187 27 + 169 159 188 28 + 170 161 188 28 + 170 163 189 29 + 171 165 190 29 + 171 168 190 30 + 172 170 191 30 + 173 172 191 31 + 173 174 192 31 + 174 176 192 31 + 175 179 193 32 + 175 181 193 32 + 176 183 194 33 + 176 185 194 33 + 177 187 195 34 + 178 190 195 34 + 178 192 196 35 + 179 194 196 35 + 179 196 197 35 + 180 198 197 36 + 181 200 198 36 + 182 203 198 37 + 182 205 199 37 + 183 207 199 38 + 183 209 200 38 + 184 211 200 39 + 185 213 201 39 + 185 215 201 39 + 186 218 202 40 + 187 220 202 40 + 187 222 203 41 + 188 224 203 41 + 188 226 203 42 + 189 228 204 42 + 190 230 204 43 + 190 232 205 43 + 191 234 205 43 + 191 236 205 44 + 192 238 205 44 + 193 240 205 44 + 193 242 205 44 + 194 244 205 44 + 195 245 205 44 + 195 246 204 44 + 196 248 204 44 + 197 249 203 44 + 197 249 202 44 + 198 250 201 43 + 198 251 200 43 + 199 251 199 42 + 200 252 197 42 + 200 252 196 41 + 201 252 195 41 + 201 252 194 40 + 202 253 192 40 + 203 253 191 39 + 203 253 190 39 + 204 253 188 38 + 205 253 187 38 + 205 253 186 37 + 206 254 184 37 + 207 254 183 36 + 207 254 181 35 + 208 254 180 35 + 208 254 179 34 + 209 254 177 34 + 210 254 176 33 + 210 254 175 33 + 211 255 173 32 + 212 255 172 31 + 212 255 170 31 + 213 255 169 30 + 213 255 168 30 + 214 255 166 29 + 215 255 165 29 + 215 255 163 28 + 216 255 162 28 + 216 255 161 27 + 217 255 159 26 + 218 255 158 26 + 218 255 156 25 + 219 255 155 25 + 220 255 153 24 + 220 255 152 24 + 221 255 150 23 + 221 255 149 22 + 222 255 147 22 + 223 255 146 21 + 223 255 145 21 + 224 255 143 20 + 224 255 142 20 + 225 255 140 19 + 225 255 139 18 + 226 255 137 18 + 227 255 136 17 + 227 255 134 17 + 228 255 132 16 + 229 255 131 16 + 229 255 129 15 + 230 255 128 14 + 231 255 126 14 + 231 255 125 13 + 232 255 123 13 + 233 255 121 12 + 233 255 120 11 + 234 255 118 11 + 235 255 116 10 + 235 255 115 10 + 236 255 113 9 + 236 255 111 8 + 237 255 110 8 + 237 255 108 7 + 238 255 106 7 + 239 255 105 6 + 239 255 103 6 + 240 255 101 5 + 241 255 99 5 + 241 255 97 4 + 242 255 95 4 + 242 255 94 3 + 243 255 92 3 + 244 255 90 3 + 244 255 88 2 + 245 254 86 2 + 246 254 84 2 + 246 254 82 1 + 247 254 79 1 + 248 254 77 1 + 248 254 75 0 + 249 254 73 0 + 250 254 70 0 + 250 254 68 0 + 251 253 65 0 + 251 253 63 0 + 252 253 60 0 + 253 253 57 0 + 253 253 54 0 + 254 253 51 0 + 255 253 48 0 + Rainbow_adjusted + 5 0 + 0 0 0 255 + 94 0 255 255 + 153 0 255 0 + 190 255 255 0 + 255 255 0 0 + blue->maroon->yellow(Plasma)_adjusted + 256 0 + 0 13 8 135 + 0 16 7 136 + 1 19 7 137 + 1 22 7 138 + 3 25 6 140 + 3 27 6 141 + 4 29 6 142 + 4 32 6 143 + 5 34 6 144 + 5 36 6 145 + 6 38 5 145 + 6 40 5 146 + 7 42 5 147 + 7 44 5 148 + 8 46 5 149 + 9 47 5 150 + 9 49 5 151 + 10 51 5 151 + 10 53 4 152 + 11 55 4 153 + 11 56 4 154 + 12 58 4 154 + 12 60 4 155 + 13 62 4 156 + 13 63 4 156 + 14 65 4 157 + 15 67 3 158 + 15 68 3 158 + 15 70 3 159 + 16 72 3 159 + 16 73 3 160 + 17 75 3 161 + 17 76 2 161 + 18 78 2 162 + 19 80 2 162 + 19 81 2 163 + 20 83 2 163 + 20 85 2 164 + 21 86 1 164 + 21 88 1 164 + 22 89 1 165 + 22 91 1 165 + 23 92 1 166 + 24 94 1 166 + 24 96 1 166 + 25 97 0 167 + 26 99 0 167 + 26 100 0 167 + 27 102 0 167 + 27 103 0 168 + 28 105 0 168 + 28 106 0 168 + 29 108 0 168 + 30 110 0 168 + 30 111 0 168 + 31 113 0 168 + 31 114 1 168 + 32 116 1 168 + 32 117 1 168 + 33 119 1 168 + 33 120 1 168 + 34 122 2 168 + 35 123 2 168 + 35 125 3 168 + 36 126 3 168 + 37 128 4 168 + 37 129 4 167 + 38 131 5 167 + 39 132 5 167 + 40 134 6 166 + 40 135 7 166 + 41 136 8 166 + 42 138 9 165 + 43 139 10 165 + 43 141 11 165 + 44 142 12 164 + 45 143 13 164 + 46 145 14 163 + 47 146 15 163 + 48 148 16 162 + 49 149 17 161 + 50 150 19 161 + 51 152 20 160 + 52 153 21 159 + 53 154 22 159 + 54 156 23 158 + 55 157 24 157 + 55 158 25 157 + 57 160 26 156 + 58 161 27 155 + 59 162 29 154 + 60 163 30 154 + 61 165 31 153 + 62 166 32 152 + 63 167 33 151 + 64 168 34 150 + 66 170 35 149 + 67 171 36 148 + 68 172 38 148 + 69 173 39 147 + 70 174 40 146 + 72 176 41 145 + 73 177 42 144 + 74 178 43 143 + 75 179 44 142 + 76 180 46 141 + 78 181 47 140 + 79 182 48 139 + 80 183 49 138 + 81 184 50 137 + 82 186 51 136 + 83 187 52 136 + 84 188 53 135 + 86 189 55 134 + 87 190 56 133 + 88 191 57 132 + 89 192 58 131 + 91 193 59 130 + 92 194 60 129 + 93 195 61 128 + 94 196 62 127 + 96 197 64 126 + 97 198 65 125 + 98 199 66 124 + 99 200 67 123 + 100 201 68 122 + 101 202 69 122 + 102 203 70 121 + 104 204 71 120 + 105 204 73 119 + 106 205 74 118 + 107 206 75 117 + 109 207 76 116 + 110 208 77 115 + 111 209 78 114 + 112 210 79 113 + 113 211 81 113 + 115 212 82 112 + 116 213 83 111 + 117 213 84 110 + 118 214 85 109 + 119 215 86 108 + 120 216 87 107 + 122 217 88 106 + 123 218 90 106 + 124 218 91 105 + 125 219 92 104 + 126 220 93 103 + 127 221 94 102 + 129 222 95 101 + 130 222 97 100 + 131 223 98 99 + 132 224 99 99 + 133 225 100 98 + 134 226 101 97 + 136 226 102 96 + 137 227 104 95 + 138 228 105 94 + 140 229 106 93 + 140 229 107 93 + 141 230 108 92 + 143 231 110 91 + 144 231 111 90 + 145 232 112 89 + 146 233 113 88 + 147 233 114 87 + 149 234 116 87 + 150 235 117 86 + 151 235 118 85 + 152 236 119 84 + 153 237 121 83 + 155 237 122 82 + 156 238 123 81 + 156 239 124 81 + 158 239 126 80 + 159 240 127 79 + 160 240 128 78 + 161 241 129 77 + 163 241 131 76 + 164 242 132 75 + 164 243 133 75 + 166 243 135 74 + 167 244 136 73 + 168 244 137 72 + 170 245 139 71 + 171 245 140 70 + 172 246 141 69 + 173 246 143 68 + 174 247 144 68 + 175 247 145 67 + 176 247 147 66 + 177 248 148 65 + 178 248 149 64 + 180 249 151 63 + 181 249 152 62 + 182 249 154 62 + 183 250 155 61 + 184 250 156 60 + 186 250 158 59 + 187 251 159 58 + 188 251 161 57 + 189 251 162 56 + 190 252 163 56 + 191 252 165 55 + 192 252 166 54 + 194 252 168 53 + 194 252 169 52 + 196 253 171 51 + 197 253 172 51 + 198 253 174 50 + 199 253 175 49 + 200 253 177 48 + 201 253 178 47 + 203 253 180 47 + 203 253 181 46 + 205 254 183 45 + 206 254 184 44 + 207 254 186 44 + 208 254 187 43 + 209 254 189 42 + 210 254 190 42 + 211 254 192 41 + 213 253 194 41 + 214 253 195 40 + 215 253 197 39 + 216 253 198 39 + 217 253 200 39 + 219 253 202 38 + 219 253 203 38 + 221 252 205 37 + 222 252 206 37 + 223 252 208 37 + 224 252 210 37 + 226 251 211 36 + 227 251 213 36 + 228 251 215 36 + 229 250 216 36 + 231 250 218 36 + 232 249 220 36 + 233 249 221 37 + 234 248 223 37 + 236 248 225 37 + 237 247 226 37 + 238 247 228 37 + 240 246 230 38 + 241 246 232 38 + 242 245 233 38 + 243 245 235 39 + 245 244 237 39 + 246 243 238 39 + 247 243 240 39 + 249 242 242 39 + 250 241 244 38 + 251 241 245 37 + 253 240 247 36 + 255 240 249 33 + dark red->yellow_adjusted->white(L03) + 256 0 + 0 0 0 0 + 1 7 0 0 + 3 13 0 0 + 4 18 0 0 + 6 22 0 0 + 7 26 0 0 + 9 29 0 0 + 11 32 0 0 + 12 34 0 0 + 14 37 0 0 + 15 39 0 0 + 16 41 0 0 + 18 43 0 0 + 19 45 0 0 + 20 47 0 0 + 21 49 0 0 + 22 50 0 0 + 23 52 0 0 + 24 54 1 0 + 25 55 1 0 + 26 57 0 0 + 26 58 0 0 + 27 60 0 0 + 28 61 0 0 + 29 63 0 0 + 29 64 0 0 + 30 66 1 0 + 31 67 1 0 + 31 69 1 0 + 32 70 1 0 + 33 72 1 0 + 33 73 1 0 + 34 75 1 0 + 35 76 1 0 + 36 78 1 0 + 36 79 1 0 + 37 81 1 0 + 37 82 1 0 + 38 84 1 0 + 39 85 1 0 + 40 87 1 0 + 40 88 1 0 + 41 90 1 0 + 42 92 1 0 + 42 93 1 0 + 43 95 1 0 + 43 96 1 0 + 44 98 1 0 + 45 99 1 0 + 46 101 1 0 + 46 103 1 0 + 47 104 1 0 + 48 106 1 0 + 48 107 2 0 + 49 109 2 0 + 50 111 2 0 + 50 112 2 0 + 51 114 2 0 + 52 116 2 0 + 52 117 2 0 + 53 119 2 0 + 54 121 2 0 + 54 122 2 0 + 55 124 2 0 + 56 126 2 0 + 56 127 2 0 + 57 129 2 0 + 58 131 2 0 + 58 132 3 0 + 59 134 3 0 + 59 136 3 0 + 60 137 3 0 + 61 139 3 0 + 61 141 3 0 + 62 142 3 0 + 62 144 3 0 + 63 146 3 0 + 64 147 3 0 + 64 149 3 0 + 65 151 4 0 + 66 153 4 0 + 66 154 4 0 + 67 156 4 0 + 67 158 4 0 + 68 159 4 0 + 69 161 4 0 + 69 163 4 0 + 70 165 5 0 + 70 166 5 0 + 71 168 5 0 + 72 170 5 0 + 72 172 5 0 + 73 173 5 0 + 73 175 5 0 + 74 177 6 0 + 75 179 6 0 + 75 181 6 0 + 76 182 6 0 + 76 184 6 0 + 77 186 7 0 + 78 188 7 0 + 78 189 7 0 + 79 191 7 0 + 79 193 7 0 + 80 195 8 0 + 80 197 8 0 + 81 198 8 0 + 81 200 8 0 + 82 202 9 0 + 83 204 9 0 + 83 206 9 0 + 84 207 9 0 + 84 209 10 0 + 85 211 10 0 + 86 213 11 0 + 86 215 11 0 + 86 216 11 0 + 87 218 12 0 + 88 220 12 0 + 88 222 13 0 + 89 224 13 0 + 89 225 14 0 + 90 227 14 0 + 90 229 15 0 + 91 231 16 0 + 91 232 17 0 + 92 234 18 0 + 93 236 19 0 + 93 237 21 0 + 93 239 23 0 + 94 240 25 0 + 94 242 27 0 + 95 243 30 0 + 95 244 32 0 + 96 245 35 0 + 96 246 38 0 + 97 247 41 0 + 97 248 44 0 + 98 248 47 0 + 98 249 50 0 + 99 250 53 0 + 100 250 56 0 + 100 251 59 0 + 101 251 62 0 + 102 252 65 0 + 103 252 68 0 + 103 252 70 0 + 104 253 73 0 + 105 253 76 0 + 106 253 78 0 + 107 253 81 0 + 107 254 84 0 + 108 254 86 0 + 109 254 89 0 + 110 254 91 0 + 111 254 93 0 + 112 254 96 0 + 113 254 98 0 + 113 254 100 0 + 114 255 103 0 + 115 255 105 0 + 116 255 107 0 + 117 255 109 0 + 118 255 111 0 + 119 255 114 0 + 120 255 116 0 + 121 255 118 0 + 121 255 120 0 + 122 255 122 0 + 123 255 124 0 + 124 255 126 0 + 125 255 128 0 + 126 255 130 0 + 127 255 132 0 + 128 255 134 0 + 129 255 136 0 + 129 255 138 0 + 130 255 140 0 + 131 255 142 0 + 132 255 143 0 + 133 255 145 0 + 134 255 147 0 + 135 255 149 0 + 136 255 151 0 + 136 255 153 0 + 137 255 154 0 + 138 255 156 1 + 139 255 158 1 + 140 255 160 1 + 140 255 161 1 + 141 255 163 1 + 142 255 165 1 + 143 255 167 1 + 144 255 168 1 + 145 255 170 1 + 146 255 172 1 + 146 255 173 2 + 147 255 175 2 + 148 255 177 2 + 149 255 178 2 + 149 255 180 2 + 150 255 182 2 + 151 255 183 3 + 152 255 185 3 + 153 255 187 3 + 153 255 188 3 + 154 255 190 3 + 155 255 192 4 + 156 255 193 4 + 157 255 195 4 + 157 255 196 4 + 158 255 198 5 + 159 255 200 5 + 160 255 201 5 + 161 255 203 5 + 161 255 204 6 + 162 255 206 6 + 163 255 208 6 + 164 255 209 7 + 165 255 211 7 + 165 255 212 8 + 166 255 214 8 + 166 255 215 9 + 167 255 217 9 + 168 255 219 10 + 169 255 220 10 + 170 255 222 11 + 170 255 223 11 + 171 255 225 12 + 172 255 226 13 + 173 255 228 13 + 173 255 229 14 + 174 255 231 15 + 175 255 233 16 + 175 255 234 17 + 176 255 236 19 + 177 255 237 21 + 178 255 239 23 + 178 255 240 26 + 179 255 242 31 + 180 255 243 36 + 181 255 245 43 + 182 255 246 51 + 184 255 247 60 + 186 255 249 71 + 190 255 250 84 + 194 255 251 98 + 199 255 252 114 + 205 255 253 132 + 212 255 254 150 + 219 255 254 168 + 227 255 254 187 + 234 255 255 205 + 241 255 255 222 + 248 255 255 239 + 255 255 255 255 + fire 3_adjusted + 4 0 + 0 0 0 0 + 98 255 127 0 + 166 255 255 0 + 255 255 255 255 + yellow->red_adjusted + 2 0 + 0 255 255 0 + 255 255 0 0 + Rainbow 2_adjusted + 12 0 + 0 4 0 108 + 17 6 3 167 + 32 24 69 240 + 55 31 98 214 + 86 5 125 170 + 132 48 155 80 + 154 82 177 8 + 187 240 222 3 + 193 249 214 7 + 217 252 152 22 + 244 254 67 13 + 255 215 5 13 HRRPUVCUTOFF 200.000000 SHOWEXTREMEDATA @@ -522,12 +1329,6 @@ LOADFILESATSTARTUP 0 MSCALE 1.000000 1.000000 1.000000 -SLICEAUTO - 1 - 1 -MSLICEAUTO - 1 - 0 COMPRESSAUTO 0 PART5PROPDISP @@ -572,7 +1373,7 @@ SHOWGENPLOTS GENPLOTLABELS 0 SHOWDEVICEVALS - 0 0 0 0 0 0 1 1 0 + 0 0 -1 0 0 0 1 1 0 SHOWHRRPLOT 1 0 46006.992188 0.150000 0 SHOWMISSINGOBJECTS @@ -612,7 +1413,13 @@ C_PARTICLES C_PARTICLES 0 -0.224888 0 10.259110 w C_PLOT3D - 0 + 6 + 1 0 1.000000 0 -0.000000 + 2 0 1.000000 0 -0.000000 + 3 0 1.000000 0 -0.000000 + 4 0 1.000000 0 -0.000000 + 5 0 1.000000 0 -0.000000 + 6 0 969.060974 0 969.060974 C_SLICE 0 1.000000 0 0.000000 temp CACHE_DATA @@ -633,6 +1440,14 @@ V2_PARTICLES 1 1.000000 1 0.000000 v V2_PARTICLES 1 1.000000 1 0.000000 w +V2_PLOT3D + 6 + 1 1 20.000000 1 969.060974 temp + 2 1 -1.991660 1 1.892410 U-VEL + 3 1 -2.146600 1 2.155570 V-VEL + 4 1 -0.626453 1 6.764120 W-VEL + 5 1 0.000000 1 3152.189941 hrrpuv + 6 1 0.000007 1 6.878720 Speed V2_SLICE 1 20.000000 1 1124.189941 temp : 0.000000 1.000000 1 V_TARGET @@ -643,8 +1458,8 @@ V_TARGET # ------------------------- # Smokeview Version: Test -# Smokeview Build: SMV-6.8.0-253-gf11db13-devel -# Smokeview Build Date: Jun 15 2023 +# Smokeview Build: unknown +# Smokeview Build Date: Jun 20 2023 # FDS Version: FDS-6.8.0-213-g4ab035b-nightly # FDS Build: FDS-6.8.0-213-g4ab035b-nightly # Platform: WIN64 From 28ddfad9be25c0c175aa2697b530e16336e8faca Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 16:53:44 -0400 Subject: [PATCH 40/49] smokeview source: use cie interpolation for all but the original rainbow colorbar --- Source/smokeview/colortimebar.c | 23 +++++++++++++++++++++-- Source/smokeview/glui_colorbar.cpp | 1 - Source/smokeview/readsmv.c | 1 + Source/smokeview/smokeviewvars.h | 1 - Source/smokeview/structures.h | 3 +++ 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 882326237a..59a9e9dc24 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -969,7 +969,9 @@ void RemapColorbar(colorbardata *cbi){ #ifdef pp_COLOR_CIE float *cie_rgb; #endif + int interp_cielab; + interp_cielab = cbi->interp; CheckMemory; colorbar=cbi->colorbar; rgb_node=cbi->rgb_node; @@ -1003,7 +1005,7 @@ void RemapColorbar(colorbardata *cbi){ float cie1[3], cie2[3]; - if(interp_cielab==1){ + if(interp_cielab==INTERP_CIE){ Rgb2CIE(rgb_node, cie1); Rgb2CIE(rgb_node+3, cie2); } @@ -1019,7 +1021,7 @@ void RemapColorbar(colorbardata *cbi){ ciej[0]=MIX(factor,cie2[0],cie1[0]); ciej[1]=MIX(factor,cie2[1],cie1[1]); ciej[2]=MIX(factor,cie2[2],cie1[2]); - if(interp_cielab == 1){ + if(interp_cielab==INTERP_CIE){ unsigned char rgb_val[3]; float frgb[3]; @@ -1447,6 +1449,7 @@ int AddColorbar(int icolorbar){ strcat(cb_to->label, cb_from->label); strcpy(cb_label, cb_to->label); strcpy(cb_to->ctype, "user"); + cb_to->interp = INTERP_CIE; RemapColorbar(cb_to); SortColorBars(); UpdateColorbarListEdit(1, CB_DELETE); @@ -2135,6 +2138,12 @@ void InitDefaultColorbars(int nini){ for(i=0;ilabel) == 7 && strcmp(cbi->label, "Rainbow") == 0){ + cbi->interp = INTERP_RGB; + } + else{ + cbi->interp = INTERP_CIE; + } RemapColorbar(cbi); UpdateColorbarSplits(cbi); memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); @@ -2150,6 +2159,16 @@ void InitDefaultColorbars(int nini){ #endif UpdateColorbarEdit(); UpdateColorbarBound(); + + for(i = 0;i < ncolorbars;i++){ + cbi = colorbarinfo + i; + if(strlen(cbi->label)==7&&strcmp(cbi->label, "Rainbow") == 0){ + cbi->interp = INTERP_RGB; + } + else{ + cbi->interp = INTERP_CIE; + } + } } /* ------------------ UpdateColorbarSplits ------------------------ */ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 7ad7b5f4d3..916c523070 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -636,7 +636,6 @@ extern "C" void GluiColorbarSetup(int main_window){ RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup_to_panel(PANEL_cb_display,&colorbar_coord_type); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); - CHECKBOX_cb_interp = glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Interpolate using CIELab", &interp_cielab, COLORBAR_ADJUST, ColorbarCB); glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Show CIELab equal distance bars", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save CIElab distances", COLORBAR_CIE_OUTPUT, ColorbarCB); diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index f55e893641..17a880352b 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -14842,6 +14842,7 @@ int ReadIni2(char *inifile, int localfile){ strcpy(cbi->label, cb_buffptr); cbi->type = CB_USER; strcpy(cbi->ctype, "user"); + cbi->interp = INTERP_CIE; fgets(buffer, 255, stream); sscanf(buffer, "%i %i", &cbi->nnodes, &cbi->nodehilight); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index d71f7b06df..a496ca9607 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -545,7 +545,6 @@ SVEXTERN int SVDECL(*colorbar_list_sorted, NULL); SVEXTERN int SVDECL(*colorbar_list_inverse, NULL); #ifdef pp_COLOR_CIE SVEXTERN int SVDECL(show_Lab_dist_bars, 0); -SVEXTERN int SVDECL(interp_cielab, 1); SVEXTERN int SVDECL(update_colorbar_orig, 0); SVEXTERN float SVDECL(*cielab_check_xyz, NULL); SVEXTERN char SVDECL(*dEcsv_filename, NULL); diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index e73149f216..2bb228d5ab 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -272,6 +272,8 @@ typedef struct _treedata { #define CB_DEPRECATED 5 #define CB_USER 6 #define CB_OTHER 7 +#define INTERP_RGB 0 +#define INTERP_CIE 1 typedef struct _colorbardata { char label[1024]; // menu label char ctype[256]; @@ -284,6 +286,7 @@ typedef struct _colorbardata { int nnodes_orig, index_node_orig[1024]; float cie_node[3*1024], frgb[3*1024], dist_node[1024], cie_rgb[3*1024], dE[1024]; #endif + int interp; float colorbar[3*1024]; } colorbardata; From 2cb6ab01531d472e514f9d2d728219aa30695420 Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 21:26:09 -0400 Subject: [PATCH 41/49] smokeview source: rearrange colorbar menus --- Source/smokeview/colortimebar.c | 10 +++++----- Source/smokeview/glui_bounds.cpp | 14 +++++++------- Source/smokeview/glui_colorbar.cpp | 14 +++++++------- Source/smokeview/menus.c | 28 ++++++++++++++-------------- Source/smokeview/readsmv.c | 2 +- Source/smokeview/startup.c | 2 +- Source/smokeview/structures.h | 8 ++++---- 7 files changed, 39 insertions(+), 39 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 59a9e9dc24..c8a9b338a2 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -1374,11 +1374,11 @@ void SortColorBars(void){ cbi->type = CB_OTHER; if(strcmp(cbi->ctype, "rainbow")==0)cbi->type = CB_RAINBOW; if(strcmp(cbi->ctype, "linear")==0)cbi->type = CB_LINEAR; - if(strcmp(cbi->ctype, "divergent")==0)cbi->type = CB_DIVERGENT; + if(strcmp(cbi->ctype, "bent")==0)cbi->type = CB_DIVERGENT; if(strcmp(cbi->ctype, "circular")==0)cbi->type = CB_CIRCULAR; if(strcmp(cbi->ctype, "deprecated")==0)cbi->type = CB_DEPRECATED; if(strcmp(cbi->ctype, "original") == 0)cbi->type = CB_ORIGINAL; - if(strcmp(cbi->ctype, "user")==0)cbi->type = CB_USER; + if(strcmp(cbi->ctype, "user defined")==0)cbi->type = CB_USER; colorbar_list_sorted[i] = i; } qsort((colorbardata *)colorbar_list_sorted, (size_t)ncolorbars, sizeof(int), CompareColorbars); @@ -1448,7 +1448,7 @@ int AddColorbar(int icolorbar){ strcpy(cb_to->label, "Copy of "); strcat(cb_to->label, cb_from->label); strcpy(cb_label, cb_to->label); - strcpy(cb_to->ctype, "user"); + strcpy(cb_to->ctype, "user defined"); cb_to->interp = INTERP_CIE; RemapColorbar(cb_to); SortColorBars(); @@ -2124,11 +2124,11 @@ void InitDefaultColorbars(int nini){ cbi++; } for(i = 0;i < ndivergent_filelist;i++){ - ReadCSVColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent", CB_DIVERGENT); + ReadCSVColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "bent", CB_DIVERGENT); cbi++; } for(i = 0;i < nuser_filelist;i++){ - ReadCSVColorbar(cbi, colorbars_user_dir, user_filelist[i].file, "user", CB_USER); + ReadCSVColorbar(cbi, colorbars_user_dir, user_filelist[i].file, "user defined", CB_USER); cbi++; } #endif diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index d8c655e5fd..9868b22ca0 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4667,18 +4667,18 @@ extern "C" void UpdateColorbarListBound(int flag){ } strcpy(label, "rainbow"); AddColorbarListBound(LIST_cb, -1, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "linear"); + strcpy(label, "original"); AddColorbarListBound(LIST_cb, -2, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "divergent"); + strcpy(label, "linear"); AddColorbarListBound(LIST_cb, -3, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "circular"); + strcpy(label, "bent"); AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "original"); - AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "deprecated"); + strcpy(label, "circular"); AddColorbarListBound(LIST_cb, -5, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "user"); + strcpy(label, "deprecated"); AddColorbarListBound(LIST_cb, -6, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "user defined"); + AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); } /* ------------------ GluiBoundsSetup ------------------------ */ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 916c523070..74d5d3014e 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -546,18 +546,18 @@ extern "C" void UpdateColorbarListEdit(int flag, int del){ } strcpy(label, "rainbow"); AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "linear"); + strcpy(label, "original"); AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "divergent"); + strcpy(label, "linear"); AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "circular"); + strcpy(label, "bent"); AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "original"); - AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "deprecated"); + strcpy(label, "circular"); AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "user"); + strcpy(label, "deprecated"); AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "user defined"); + AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); } /* ------------------ GluiColorbarSetup ------------------------ */ diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index b4e37c7ca0..f8b740441d 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8294,24 +8294,24 @@ void MakeColorbarMenu(int *menuptr, int submenu4 = 0, submenu5 = 0, submenu6 = 0; int submenu7 = 0; - MakeSubColorbarMenu(&submenu3, &nmenus, "rainbow", CBMenu); - MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); - MakeSubColorbarMenu(&submenu4, &nmenus, "divergent", CBMenu); - MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); - MakeSubColorbarMenu(&submenu7, &nmenus, "original", CBMenu); - MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); - MakeSubColorbarMenu(&submenu5, &nmenus, "user", CBMenu); + MakeSubColorbarMenu(&submenu3, &nmenus, "rainbow", CBMenu); + MakeSubColorbarMenu(&submenu7, &nmenus, "original", CBMenu); + MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); + MakeSubColorbarMenu(&submenu4, &nmenus, "bent", CBMenu); + MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); + MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); + MakeSubColorbarMenu(&submenu5, &nmenus, "user defined", CBMenu); #endif CREATEMENU(menu, CBMenu); #ifdef pp_COLORBARS_CSV - if(submenu3 > 0)GLUTADDSUBMENU("rainbow", submenu3); - if(submenu1 > 0)GLUTADDSUBMENU("linear", submenu1); - if(submenu4 > 0)GLUTADDSUBMENU("divergent", submenu4); - if(submenu2 > 0)GLUTADDSUBMENU("circular", submenu2); - if(submenu7 > 0 )GLUTADDSUBMENU("original", submenu7); - if(submenu6 > 0)GLUTADDSUBMENU("deprecated", submenu6); - if(submenu5 > 0)GLUTADDSUBMENU("user", submenu5); + if(submenu3 > 0)GLUTADDSUBMENU("rainbow", submenu3); + if(submenu7 > 0)GLUTADDSUBMENU("original", submenu7); + if(submenu1 > 0)GLUTADDSUBMENU("linear", submenu1); + if(submenu4 > 0)GLUTADDSUBMENU("bent", submenu4); + if(submenu2 > 0)GLUTADDSUBMENU("circular", submenu2); + if(submenu6 > 0)GLUTADDSUBMENU("deprecated", submenu6); + if(submenu5 > 0)GLUTADDSUBMENU("user defined", submenu5); *submenu1ptr = submenu1; *submenu2ptr = submenu2; *submenu3ptr = submenu3; diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index 17a880352b..50c07b72b9 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -14841,7 +14841,7 @@ int ReadIni2(char *inifile, int localfile){ cb_buffptr = TrimFront(buffer); strcpy(cbi->label, cb_buffptr); cbi->type = CB_USER; - strcpy(cbi->ctype, "user"); + strcpy(cbi->ctype, "user defined"); cbi->interp = INTERP_CIE; fgets(buffer, 255, stream); diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index a9473429a8..97bd30cb73 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -1254,7 +1254,7 @@ void InitOpenGL(int option){ void InitColorbarsDir(void){ colorbars_dir = InitColorbarsSubDir(""); colorbars_linear_dir = InitColorbarsSubDir("linear"); - colorbars_divergent_dir = InitColorbarsSubDir("divergent"); + colorbars_divergent_dir = InitColorbarsSubDir("bent"); colorbars_rainbow_dir = InitColorbarsSubDir("rainbow"); colorbars_circular_dir = InitColorbarsSubDir("circular"); } diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index 2bb228d5ab..c8bb03c7de 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -265,10 +265,10 @@ typedef struct _treedata { /* -------------------------- colorbardata ------------------------------------ */ #define CB_RAINBOW 0 -#define CB_LINEAR 1 -#define CB_DIVERGENT 2 -#define CB_CIRCULAR 3 -#define CB_ORIGINAL 4 +#define CB_ORIGINAL 1 +#define CB_LINEAR 2 +#define CB_DIVERGENT 3 +#define CB_CIRCULAR 4 #define CB_DEPRECATED 5 #define CB_USER 6 #define CB_OTHER 7 From eb63937fd9be7e57ef2eb984ccfc8542323608bf Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 21:48:48 -0400 Subject: [PATCH 42/49] smokeview source: minor formatting edits to colorbar menus --- Source/smokeview/glui_bounds.cpp | 25 +++++++++---------------- Source/smokeview/glui_colorbar.cpp | 25 +++++++++---------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index 9868b22ca0..d28abc617f 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4620,9 +4620,9 @@ void AddColorbarListBound(GLUI_Listbox *LIST_cbar, int index, char *label_arg, i nitems++; } if(nitems == 0)return; - strcpy(cbar_type, "***"); + strcpy(cbar_type, "----------"); strcat(cbar_type, label_arg); - strcat(cbar_type, "***"); + strcat(cbar_type, "----------"); LIST_cbar->add_item(index, cbar_type); for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; @@ -4665,20 +4665,13 @@ extern "C" void UpdateColorbarListBound(int flag){ for(i=-7;idelete_item(i); } - strcpy(label, "rainbow"); - AddColorbarListBound(LIST_cb, -1, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "original"); - AddColorbarListBound(LIST_cb, -2, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "linear"); - AddColorbarListBound(LIST_cb, -3, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "bent"); - AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "circular"); - AddColorbarListBound(LIST_cb, -5, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "deprecated"); - AddColorbarListBound(LIST_cb, -6, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "user defined"); - AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "rainbow"); AddColorbarListBound(LIST_cb, -1, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "original"); AddColorbarListBound(LIST_cb, -2, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "linear"); AddColorbarListBound(LIST_cb, -3, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "bent"); AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "circular"); AddColorbarListBound(LIST_cb, -5, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "deprecated"); AddColorbarListBound(LIST_cb, -6, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "user defined"); AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); } /* ------------------ GluiBoundsSetup ------------------------ */ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 74d5d3014e..ab422b4077 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -500,9 +500,9 @@ void AddColorbarListEdit(GLUI_Listbox *LIST_cbar, int index, char *label_arg, in break; } if(nitems == 0)return; - strcpy(cbar_type, "***"); + strcpy(cbar_type, "----------"); strcat(cbar_type, label_arg); - strcat(cbar_type, "***"); + strcat(cbar_type, "----------"); LIST_cbar->add_item(index, cbar_type); for(i = 0; i < ncolorbars; i++){ colorbardata *cbi; @@ -544,20 +544,13 @@ extern "C" void UpdateColorbarListEdit(int flag, int del){ LISTBOX_cb->delete_item(i); } } - strcpy(label, "rainbow"); - AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "original"); - AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "linear"); - AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "bent"); - AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "circular"); - AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "deprecated"); - AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "user defined"); - AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "rainbow"); AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "original"); AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "linear"); AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "bent"); AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "circular"); AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "deprecated"); AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "user defined"); AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); } /* ------------------ GluiColorbarSetup ------------------------ */ From afc76deead28fd2881748c879e8d5e873693cefc Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 22:11:21 -0400 Subject: [PATCH 43/49] smokeview source: remove colorbar hint --- Source/smokeview/colortimebar.c | 10 ++-------- Source/smokeview/glui_colorbar.cpp | 2 -- Source/smokeview/smokeviewvars.h | 1 - 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index c8a9b338a2..3f453eaf9d 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -241,14 +241,6 @@ void DrawColorbarPathRGB(void){ glColor3ubv(rgbleft); glVertex3f(rgbleft[0]/255.0,rgbleft[1]/255.0,rgbleft[2]/255.0); glEnd(); - if(colorbar_hidescene==1&&show_colorbar_hint==1){ - float xyz[3]; - - xyz[0] = rgbleft[0] / 255.0 + 0.1; - xyz[1] = rgbleft[1] / 255.0 + 0.1; - xyz[2] = rgbleft[2] / 255.0 + 0.1; - Output3Text(foregroundcolor, xyz[0], xyz[1], xyz[2], "click and drag to change colorbar node"); - } } { @@ -972,6 +964,8 @@ void RemapColorbar(colorbardata *cbi){ int interp_cielab; interp_cielab = cbi->interp; + if(interp_cielab == INTERP_RGB)printf("colorbar interpolation: cie\n"); + if(interp_cielab == INTERP_CIE)printf("colorbar interpolation: rgb\n"); CheckMemory; colorbar=cbi->colorbar; rgb_node=cbi->rgb_node; diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index ab422b4077..d8ab84396a 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -343,7 +343,6 @@ extern "C" void ColorbarCB(int var){ #endif #endif case COLORBAR_RGB: - show_colorbar_hint = 0; if(colorbartype < 0 || colorbartype >= ncolorbars)return; cbi = colorbarinfo + colorbartype; if(colorbarpoint<0 || colorbarpoint>cbi->nnodes - 1)return; @@ -399,7 +398,6 @@ extern "C" void ColorbarCB(int var){ case COLORBAR_NODE_PREV: case COLORBAR_SET: if(colorbartype < 0 || colorbartype >= ncolorbars)return; - show_colorbar_hint = 0; cbi = colorbarinfo + colorbartype; if(var == COLORBAR_NODE_NEXT){ colorbarpoint++; diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index a496ca9607..376b9070d8 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -444,7 +444,6 @@ SVEXTERN char SVDECL(*script_error1_filename,NULL); SVEXTERN int SVDECL(render_firsttime, NO); SVEXTERN int SVDECL(solid_ht3d, 0); SVEXTERN int SVDECL(load_incremental, 0); -SVEXTERN int SVDECL(show_colorbar_hint, 1); SVEXTERN int SVDECL(show_tour_hint, 1); SVEXTERN int cb_rgb[3]; SVEXTERN float SVDECL(geom_linewidth, 2.0); From c320e0972dde4718d1c114d54e22a20308970bea Mon Sep 17 00:00:00 2001 From: gforney Date: Tue, 20 Jun 2023 23:01:41 -0400 Subject: [PATCH 44/49] smokeview source: fix to debug print --- Source/smokeview/colortimebar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 3f453eaf9d..b48452fbbb 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -964,8 +964,10 @@ void RemapColorbar(colorbardata *cbi){ int interp_cielab; interp_cielab = cbi->interp; - if(interp_cielab == INTERP_RGB)printf("colorbar interpolation: cie\n"); - if(interp_cielab == INTERP_CIE)printf("colorbar interpolation: rgb\n"); +#ifdef _DEBUG + if(interp_cielab == INTERP_RGB)printf("colorbar: %s, interpolation: rgb\n",cbi->label); + if(interp_cielab == INTERP_CIE)printf("colorbar: %s, interpolation: cie\n",cbi->label); +#endif CheckMemory; colorbar=cbi->colorbar; rgb_node=cbi->rgb_node; From 2ab7b5375473e9cd9d39c61f2ac7b6ef08563bff Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 21 Jun 2023 11:54:57 -0400 Subject: [PATCH 45/49] smokeview source: improve colorbar edit dialog layout --- Source/smokeview/colortimebar.c | 72 +------------------------- Source/smokeview/glui_colorbar.cpp | 82 ++++++++++++------------------ Source/smokeview/options.h | 1 + Source/smokeview/smokeheaders.h | 4 -- 4 files changed, 36 insertions(+), 123 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index b48452fbbb..276ab907c1 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -429,6 +429,7 @@ void DrawColorbarPathCIE(void){ #endif glEnd(); +#ifdef _DEBUG for(i = 7; i < 256; i += 8){ float dist, cie2[3], *rgb2val, *rgb1val, cie1[3], xyz1[3], xyz2[3]; float dx, dy, dz; @@ -459,6 +460,7 @@ void DrawColorbarPathCIE(void){ xyz1[2] = (xyz1[2] + xyz2[2]) / 2.0; Output3Text(foregroundcolor, xyz1[1], xyz1[2], xyz1[0], label); } +#endif glPointSize(10.0); glBegin(GL_POINTS); @@ -843,39 +845,6 @@ void CIE2Rgbs(unsigned char *rgbs255, float *frgbs, float *cies){ } } -/* ------------------ CIEdE2Csv ------------------------ */ -#ifdef pp_COLOR_ADJUST -void CIEdE2Csv(char *file){ - int i; - FILE *stream; - - stream = fopen(file, "w"); - fprintf(stream, "index,"); - for(i = 0; i < ncolorbars - 1; i++){ - - colorbardata *cbi; - - cbi = colorbarinfo + i; - fprintf(stream, "%s,", cbi->label); - } - fprintf(stream, "%s\n", colorbarinfo[ncolorbars-1].label); - - for(i = 0; i < 254; i++){ - int j; - - fprintf(stream, "%i,",i); - for(j = 0; j < ncolorbars-1; j++){ - colorbardata *cbj; - - cbj = colorbarinfo + j; - fprintf(stream, "%f,", cbj->dE[i]); - } - fprintf(stream, "%f\n", colorbarinfo[ncolorbars-1].dE[254]); - } - fclose(stream); -} -#endif - /* ------------------ CheckCIE ------------------------ */ #ifdef pp_COLOR_CIE_CHECK void CheckCIE(void){ @@ -1091,43 +1060,6 @@ void RemapColorbar(colorbardata *cbi){ CheckMemory; } -/* ------------------ UpdateColorbarNodes ------------------------ */ - -void UpdateColorbarNodes(colorbardata *cbi){ - float total_dist = 0.0; - int i; - - for(i = 0;innodes-1;i++){ - unsigned char *node1, *node2; - float dist,dx,dy,dz; - - node1 = cbi->rgb_node+3*i; - node2 = node1+3; - dx = node1[0]-node2[0]; - dy = node1[1]-node2[1]; - dz = node1[2]-node2[2]; - dist = sqrt(dx*dx+dy*dy+dz*dz); - total_dist += dist; - } - cbi->index_node[0] = 0; - for(i = 1;innodes-1;i++){ - int index; - unsigned char *node1, *node2; - float dist, dx, dy, dz; - - node1 = cbi->rgb_node+3*(i-1); - node2 = node1+3; - dx = node1[0]-node2[0]; - dy = node1[1]-node2[1]; - dz = node1[2]-node2[2]; - dist = sqrt(dx*dx+dy*dy+dz*dz); - index = 255*dist/total_dist; - cbi->index_node[i] = CLAMP(cbi->index_node[i-1]+index,0,255); - } - cbi->index_node[cbi->nnodes-1] = 255; - RemapColorbar(cbi); -} - /* ------------------ RemapColorbarType ------------------------ */ void RemapColorbarType(int cb_oldtype, char *cb_newname){ diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index d8ab84396a..0d5b0d4ec8 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -21,9 +21,7 @@ GLUI_Panel *PANEL_cb5=NULL; GLUI_Panel *PANEL_cb10=NULL; GLUI_Panel *PANEL_cb11r=NULL; GLUI_Panel *PANEL_cb12 = NULL; -#ifdef pp_COLOR_TOGGLE -GLUI_Panel *PANEL_toggle_cb = NULL; -#endif +GLUI_Panel *PANEL_cb13 = NULL; GLUI_Listbox *LISTBOX_colorbar_edit=NULL; #ifdef pp_COLOR_TOGGLE @@ -53,10 +51,8 @@ GLUI_Button *BUTTON_deletepoint=NULL; GLUI_Button *BUTTON_savesettings=NULL; GLUI_Button *BUTTON_update=NULL; GLUI_Button *BUTTON_colorbar_close=NULL; -GLUI_Button *BUTTON_autonodes = NULL; GLUI_RadioGroup *RADIO_colorbar_coord_type; -GLUI_Checkbox *CHECKBOX_hidesv=NULL; #ifdef pp_COLOR_CIE GLUI_Checkbox *CHECKBOX_cb_interp = NULL; #endif @@ -81,14 +77,12 @@ int cb_usecolorbar_extreme; #define COLORBAR_COLORINDEX 12 #define COLORBAR_DELETE 14 #define COLORBAR_EXTREME 16 -#define COLORBAR_UNIFORM 17 #define COLORBAR_PREV 21 #define COLORBAR_NEXT 22 #ifdef pp_COLOR_CIE #define COLORBAR_ADJUST 23 #ifdef pp_COLOR_ADJUST #define COLORBAR_REVERT 24 -#define COLORBAR_CIE_OUTPUT 25 #endif #define COLORBAR_LAB2 26 #define COLORBAR_RGB2 27 @@ -198,12 +192,6 @@ extern "C" void ColorbarCB(int var){ #endif switch(var){ - case COLORBAR_UNIFORM: - if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ - cbi = colorbarinfo + colorbartype; - UpdateColorbarNodes(cbi); - } - break; case COLORBAR_COLORINDEX: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ cbi = colorbarinfo + colorbartype; @@ -418,11 +406,6 @@ extern "C" void ColorbarCB(int var){ ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE -#ifdef pp_COLOR_ADJUST - case COLORBAR_CIE_OUTPUT: - CIEdE2Csv(dEcsv_filename); - break; -#endif case COLORBAR_ADJUST: #ifdef pp_COLOR_ADJUST AdjustColorBar(colorbarinfo + colorbartype); @@ -578,12 +561,15 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar = GLUI_Master.create_glui(_("Customize Colorbar"),0,0,0); if(showcolorbar_dialog==0)glui_colorbar->hide(); - PANEL_cb2R2 = glui_colorbar->add_panel("",GLUI_PANEL_NONE); - BUTTON_new=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("New colorbar"),COLORBAR_NEW,ColorbarCB); - BUTTON_delete=glui_colorbar->add_button_to_panel(PANEL_cb2R2,_("Delete colorbar"),COLORBAR_DELETE,ColorbarCB); - colorbar_hidescene=1; - CHECKBOX_hidesv = glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); PANEL_cb1 = glui_colorbar->add_panel(_("Colorbar")); + PANEL_cb2R2 = glui_colorbar->add_panel_to_panel(PANEL_cb1,"",GLUI_PANEL_NONE); + BUTTON_delete=glui_colorbar->add_button_to_panel(PANEL_cb2R2,"Delete",COLORBAR_DELETE,ColorbarCB); + glui_colorbar->add_column_to_panel(PANEL_cb2R2, false); + BUTTON_new=glui_colorbar->add_button_to_panel(PANEL_cb2R2,"Add",COLORBAR_NEW,ColorbarCB); + colorbar_hidescene=1; +#ifdef pp_COLOR_HIDE + glui_colorbar->add_checkbox_to_panel(PANEL_cb2R2,_("Hide scene"),&colorbar_hidescene); +#endif if(ncolorbars>0){ colorbartype=0; @@ -591,16 +577,31 @@ extern "C" void GluiColorbarSetup(int main_window){ UpdateColorbarListEdit(1,CB_KEEP); LISTBOX_colorbar_edit->set_int_val(colorbartype_default); } - EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb1,_("Label:"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); + PANEL_cb13 = glui_colorbar->add_panel_to_panel(PANEL_cb1, "", GLUI_PANEL_NONE); + EDITTEXT_colorbar_label = glui_colorbar->add_edittext_to_panel(PANEL_cb13,_("Label:"),GLUI_EDITTEXT_TEXT,colorbar_label,COLORBAR_LABEL,ColorbarCB); EDITTEXT_colorbar_label->set_w(200); - BUTTON_update=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Update label"),COLORBAR_UPDATE,ColorbarCB); - BUTTON_autonodes=glui_colorbar->add_button_to_panel(PANEL_cb1,_("Distribute nodes uniformly"),COLORBAR_UNIFORM,ColorbarCB); + glui_colorbar->add_column_to_panel(PANEL_cb13, false); + BUTTON_update=glui_colorbar->add_button_to_panel(PANEL_cb13,_("Update label"),COLORBAR_UPDATE,ColorbarCB); PANEL_cb11r = glui_colorbar->add_panel_to_panel(PANEL_cb1,"",GLUI_PANEL_NONE); BUTTON_prev = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Previous"), COLORBAR_PREV, ColorbarCB); glui_colorbar->add_column_to_panel(PANEL_cb11r,false); BUTTON_next = glui_colorbar->add_button_to_panel(PANEL_cb11r, _("Next"), COLORBAR_NEXT, ColorbarCB); - PANEL_point = glui_colorbar->add_panel(_("Node")); +#ifdef pp_COLOR_TOGGLE + glui_colorbar->add_separator_to_panel(PANEL_cb1); + LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_cb1, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); + UpdateColorbarListEdit(2, CB_KEEP); + LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); + + LISTBOX_colorbar_toggle_edit2 = glui_colorbar->add_listbox_to_panel(PANEL_cb1, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); + UpdateColorbarListEdit(3, CB_KEEP); + LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); + glui_colorbar->add_button_to_panel(PANEL_cb1, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); + ColorbarCB(COLORBAR_LISTA); + ColorbarCB(COLORBAR_LISTB); +#endif + + PANEL_point = glui_colorbar->add_panel(_("Node")); PANEL_cb5 = glui_colorbar->add_panel_to_panel(PANEL_point,"",GLUI_PANEL_NONE); BUTTON_node_prev=glui_colorbar->add_button_to_panel(PANEL_cb5,_("Previous"),COLORBAR_NODE_PREV,ColorbarCB); @@ -609,7 +610,7 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_column_to_panel(PANEL_cb5,false); BUTTON_node_next=glui_colorbar->add_button_to_panel(PANEL_cb5,_("Next"),COLORBAR_NODE_NEXT,ColorbarCB); - BUTTON_addpoint=glui_colorbar->add_button_to_panel(PANEL_cb5,_("Insert"),COLORBAR_ADDPOINT,ColorbarCB); + BUTTON_addpoint=glui_colorbar->add_button_to_panel(PANEL_cb5,_("Add"),COLORBAR_ADDPOINT,ColorbarCB); PANEL_cb4 = glui_colorbar->add_panel_to_panel(PANEL_point,"",GLUI_PANEL_NONE); SPINNER_colorindex= glui_colorbar->add_spinner_to_panel(PANEL_cb4,_("node index"), GLUI_SPINNER_INT,&cb_colorindex, COLORBAR_COLORINDEX,ColorbarCB); @@ -623,33 +624,18 @@ extern "C" void GluiColorbarSetup(int main_window){ SPINNER_rgb[2]->set_int_limits(0,255); #ifdef pp_COLOR_CIE - PANEL_cb_display = glui_colorbar->add_panel("Colorbar display"); + PANEL_cb_display = glui_colorbar->add_panel("Display"); RADIO_colorbar_coord_type = glui_colorbar->add_radiogroup_to_panel(PANEL_cb_display,&colorbar_coord_type); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Show CIELab equal distance bars", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save CIElab distances", COLORBAR_CIE_OUTPUT, ColorbarCB); - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust colorbar", COLORBAR_ADJUST, ColorbarCB); - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert colorbar", COLORBAR_REVERT, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust", COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert", COLORBAR_REVERT, ColorbarCB); #endif - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save colorbar", COLORBAR_SAVE, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save", COLORBAR_SAVE, ColorbarCB); EDITTEXT_colorbar_filename = glui_colorbar->add_edittext_to_panel(PANEL_cb_display, "colorbar filename:", GLUI_EDITTEXT_TEXT, colorbar_filename); EDITTEXT_colorbar_filename->set_w(200); -#ifdef pp_COLOR_TOGGLE - PANEL_toggle_cb = glui_colorbar->add_panel(_("toggle colorbars")); - LISTBOX_colorbar_toggle_edit1 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar1, COLORBAR_LISTA, ColorbarCB); - UpdateColorbarListEdit(2, CB_KEEP); - LISTBOX_colorbar_toggle_edit1->set_int_val(index_colorbar1); - - LISTBOX_colorbar_toggle_edit2 = glui_colorbar->add_listbox_to_panel(PANEL_toggle_cb, "", &index_colorbar2, COLORBAR_LISTB, ColorbarCB); - UpdateColorbarListEdit(3, CB_KEEP); - LISTBOX_colorbar_toggle_edit2->set_int_val(index_colorbar2); - - glui_colorbar->add_button_to_panel(PANEL_toggle_cb, _("toggle"), COLORBAR_TOGGLE, ColorbarCB); - ColorbarCB(COLORBAR_LISTA); - ColorbarCB(COLORBAR_LISTB); -#endif UpdateColorbarEdit(); PANEL_cb12 = glui_colorbar->add_panel("rgb<->CIELab"); @@ -709,7 +695,6 @@ extern "C" void ColorbarGlobal2Local(void){ BUTTON_delete->enable(); EDITTEXT_colorbar_label->enable(); BUTTON_update->enable(); - BUTTON_autonodes->enable(); SPINNER_rgb[0]->enable(); SPINNER_rgb[1]->enable(); SPINNER_rgb[2]->enable(); @@ -721,7 +706,6 @@ extern "C" void ColorbarGlobal2Local(void){ BUTTON_delete->disable(); EDITTEXT_colorbar_label->disable(); BUTTON_update->disable(); - BUTTON_autonodes->disable(); SPINNER_rgb[0]->disable(); SPINNER_rgb[1]->disable(); SPINNER_rgb[2]->disable(); diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index 02e3aceccc..bf8195900d 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -28,6 +28,7 @@ #define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) #define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars +//#define pp_COLOR_HIDE // add checkbox to hide/unhide scene when editing a colorbar //#define pp_SMOKE_LIGHT // turn on smoke lighting //#define pp_SMOKE_ADAPT // turn on volume render smoke adaptive integration diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 632809cdc0..1d049efdc6 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -705,9 +705,6 @@ EXTERNCPP void RevertColorBar(colorbardata *cbi); EXTERNCPP void Rgb2CIE(unsigned char *rgb, float *cie); EXTERNCPP void Rgb2CIEs(unsigned char *rgbs255, float *cies); EXTERNCPP void UpdateColorbarOrig(void); -#ifdef pp_COLOR_ADJUST -EXTERNCPP void CIEdE2Csv(char *file); -#endif EXTERNCPP void CIE2Rgb(unsigned char *rgb255, float *frgb, float *cie); EXTERNCPP void FRgb2CIE(float *rgb_arg, float *cie); #endif @@ -719,7 +716,6 @@ EXTERNCPP void ColorbarMenu(int val); EXTERNCPP void InitDefaultColorbars(int nini); EXTERNCPP void DrawColorbarPathRGB(void); EXTERNCPP void UpdateColorbarSplits(colorbardata *cbi); -EXTERNCPP void UpdateColorbarNodes(colorbardata *cbi); EXTERNCPP void RemapColorbar(colorbardata *cbi); EXTERNCPP void SortColorBars(void); EXTERNCPP colorbardata *GetColorbar(char *label); From 08eb8125b03d14e893be5fabf4787c6cb8290a24 Mon Sep 17 00:00:00 2001 From: gforney Date: Wed, 21 Jun 2023 12:14:21 -0400 Subject: [PATCH 46/49] smokeview source: minor formatting edit --- Source/smokeview/glui_colorbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 0d5b0d4ec8..2b6f19c420 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -634,7 +634,7 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert", COLORBAR_REVERT, ColorbarCB); #endif glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save", COLORBAR_SAVE, ColorbarCB); - EDITTEXT_colorbar_filename = glui_colorbar->add_edittext_to_panel(PANEL_cb_display, "colorbar filename:", GLUI_EDITTEXT_TEXT, colorbar_filename); + EDITTEXT_colorbar_filename = glui_colorbar->add_edittext_to_panel(PANEL_cb_display, "filename:", GLUI_EDITTEXT_TEXT, colorbar_filename); EDITTEXT_colorbar_filename->set_w(200); UpdateColorbarEdit(); From a95e769f76ab55c5b75f6eaa7f28b220610dab92 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 22 Jun 2023 12:11:26 -0400 Subject: [PATCH 47/49] smokeview source: change bent back to divergent, compute rainbow colorbar distance using Lab, other types using L --- Source/smokeview/colortimebar.c | 21 ++++++++++++++++----- Source/smokeview/glui_bounds.cpp | 2 +- Source/smokeview/glui_colorbar.cpp | 2 +- Source/smokeview/menus.c | 4 ++-- Source/smokeview/startup.c | 2 +- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index 276ab907c1..b5073496e2 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -406,7 +406,12 @@ void DrawColorbarPathCIE(void){ dx = cie[0] - cie_last[0]; dy = cie[1] - cie_last[1]; dz = cie[2] - cie_last[2]; - cie_dist[i] = cie_dist[i-1] + sqrt(dx * dx + dy * dy + dz * dz); + if(cbi->type == CB_RAINBOW){ + cie_dist[i] = cie_dist[i - 1] + sqrt(dx * dx + dy * dy + dz * dz); + } + else{ + cie_dist[i] = cie_dist[i - 1] + ABS(dx); + } } memcpy(cie_last, cie, 3 * sizeof(float)); glVertex3fv(xyz); @@ -643,13 +648,19 @@ void AdjustColorBar(colorbardata *cbi){ for(i = 1;i < cbi->nnodes;i++){ unsigned char *rgb2_local; float *cie1, *cie2, dist; - float dx, dy, dz; rgb2_local = cbi->rgb_node + 3*i; cie2 = cbi->cie_node + 3 * i; cie1 = cie2 - 3; Rgb2CIE(rgb2_local, cie2); - DDIST3(cie1, cie2, dist); + if(cbi->type == CB_RAINBOW){ + float dx, dy, dz; + + DDIST3(cie1, cie2, dist); + } + else{ + dist = ABS(cie1[0] - cie2[0]); + } cbi->dist_node[i] = cbi->dist_node[i - 1] + dist; } @@ -1302,7 +1313,7 @@ void SortColorBars(void){ cbi->type = CB_OTHER; if(strcmp(cbi->ctype, "rainbow")==0)cbi->type = CB_RAINBOW; if(strcmp(cbi->ctype, "linear")==0)cbi->type = CB_LINEAR; - if(strcmp(cbi->ctype, "bent")==0)cbi->type = CB_DIVERGENT; + if(strcmp(cbi->ctype, "divergent")==0)cbi->type = CB_DIVERGENT; if(strcmp(cbi->ctype, "circular")==0)cbi->type = CB_CIRCULAR; if(strcmp(cbi->ctype, "deprecated")==0)cbi->type = CB_DEPRECATED; if(strcmp(cbi->ctype, "original") == 0)cbi->type = CB_ORIGINAL; @@ -2052,7 +2063,7 @@ void InitDefaultColorbars(int nini){ cbi++; } for(i = 0;i < ndivergent_filelist;i++){ - ReadCSVColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "bent", CB_DIVERGENT); + ReadCSVColorbar(cbi, colorbars_divergent_dir, divergent_filelist[i].file, "divergent", CB_DIVERGENT); cbi++; } for(i = 0;i < nuser_filelist;i++){ diff --git a/Source/smokeview/glui_bounds.cpp b/Source/smokeview/glui_bounds.cpp index d28abc617f..a6cb053791 100644 --- a/Source/smokeview/glui_bounds.cpp +++ b/Source/smokeview/glui_bounds.cpp @@ -4668,7 +4668,7 @@ extern "C" void UpdateColorbarListBound(int flag){ strcpy(label, "rainbow"); AddColorbarListBound(LIST_cb, -1, label, &max_LISTBOX_colorbar_bound); strcpy(label, "original"); AddColorbarListBound(LIST_cb, -2, label, &max_LISTBOX_colorbar_bound); strcpy(label, "linear"); AddColorbarListBound(LIST_cb, -3, label, &max_LISTBOX_colorbar_bound); - strcpy(label, "bent"); AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); + strcpy(label, "divergent"); AddColorbarListBound(LIST_cb, -4, label, &max_LISTBOX_colorbar_bound); strcpy(label, "circular"); AddColorbarListBound(LIST_cb, -5, label, &max_LISTBOX_colorbar_bound); strcpy(label, "deprecated"); AddColorbarListBound(LIST_cb, -6, label, &max_LISTBOX_colorbar_bound); strcpy(label, "user defined"); AddColorbarListBound(LIST_cb, -7, label, &max_LISTBOX_colorbar_bound); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index 2b6f19c420..deb4019f77 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -528,7 +528,7 @@ extern "C" void UpdateColorbarListEdit(int flag, int del){ strcpy(label, "rainbow"); AddColorbarListEdit(LISTBOX_cb, -1, label, &max_LISTBOX_colorbar_edit); strcpy(label, "original"); AddColorbarListEdit(LISTBOX_cb, -2, label, &max_LISTBOX_colorbar_edit); strcpy(label, "linear"); AddColorbarListEdit(LISTBOX_cb, -3, label, &max_LISTBOX_colorbar_edit); - strcpy(label, "bent"); AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); + strcpy(label, "divergent"); AddColorbarListEdit(LISTBOX_cb, -4, label, &max_LISTBOX_colorbar_edit); strcpy(label, "circular"); AddColorbarListEdit(LISTBOX_cb, -5, label, &max_LISTBOX_colorbar_edit); strcpy(label, "deprecated"); AddColorbarListEdit(LISTBOX_cb, -6, label, &max_LISTBOX_colorbar_edit); strcpy(label, "user defined"); AddColorbarListEdit(LISTBOX_cb, -7, label, &max_LISTBOX_colorbar_edit); diff --git a/Source/smokeview/menus.c b/Source/smokeview/menus.c index f8b740441d..993e86d0e1 100644 --- a/Source/smokeview/menus.c +++ b/Source/smokeview/menus.c @@ -8297,7 +8297,7 @@ void MakeColorbarMenu(int *menuptr, MakeSubColorbarMenu(&submenu3, &nmenus, "rainbow", CBMenu); MakeSubColorbarMenu(&submenu7, &nmenus, "original", CBMenu); MakeSubColorbarMenu(&submenu1, &nmenus, "linear", CBMenu); - MakeSubColorbarMenu(&submenu4, &nmenus, "bent", CBMenu); + MakeSubColorbarMenu(&submenu4, &nmenus, "divergent", CBMenu); MakeSubColorbarMenu(&submenu2, &nmenus, "circular", CBMenu); MakeSubColorbarMenu(&submenu6, &nmenus, "deprecated", CBMenu); MakeSubColorbarMenu(&submenu5, &nmenus, "user defined", CBMenu); @@ -8308,7 +8308,7 @@ void MakeColorbarMenu(int *menuptr, if(submenu3 > 0)GLUTADDSUBMENU("rainbow", submenu3); if(submenu7 > 0)GLUTADDSUBMENU("original", submenu7); if(submenu1 > 0)GLUTADDSUBMENU("linear", submenu1); - if(submenu4 > 0)GLUTADDSUBMENU("bent", submenu4); + if(submenu4 > 0)GLUTADDSUBMENU("divergent", submenu4); if(submenu2 > 0)GLUTADDSUBMENU("circular", submenu2); if(submenu6 > 0)GLUTADDSUBMENU("deprecated", submenu6); if(submenu5 > 0)GLUTADDSUBMENU("user defined", submenu5); diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index 97bd30cb73..a9473429a8 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -1254,7 +1254,7 @@ void InitOpenGL(int option){ void InitColorbarsDir(void){ colorbars_dir = InitColorbarsSubDir(""); colorbars_linear_dir = InitColorbarsSubDir("linear"); - colorbars_divergent_dir = InitColorbarsSubDir("bent"); + colorbars_divergent_dir = InitColorbarsSubDir("divergent"); colorbars_rainbow_dir = InitColorbarsSubDir("rainbow"); colorbars_circular_dir = InitColorbarsSubDir("circular"); } From f4990b13501340bd8aa5a1ab3a638a72e8b5e822 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 22 Jun 2023 15:39:47 -0400 Subject: [PATCH 48/49] smokeview source: add option to adjust colorbars by equal L or Lab spacing --- Source/smokeview/colortimebar.c | 15 ++++++++------- Source/smokeview/glui_colorbar.cpp | 16 ++++++++++++---- Source/smokeview/smokeheaders.h | 2 +- Source/smokeview/smokeviewvars.h | 1 - Source/smokeview/structures.h | 4 +++- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Source/smokeview/colortimebar.c b/Source/smokeview/colortimebar.c index b5073496e2..c03472861a 100644 --- a/Source/smokeview/colortimebar.c +++ b/Source/smokeview/colortimebar.c @@ -406,7 +406,7 @@ void DrawColorbarPathCIE(void){ dx = cie[0] - cie_last[0]; dy = cie[1] - cie_last[1]; dz = cie[2] - cie_last[2]; - if(cbi->type == CB_RAINBOW){ + if(cbi->dist_type == COLOR_DIST_LAB){ cie_dist[i] = cie_dist[i - 1] + sqrt(dx * dx + dy * dy + dz * dz); } else{ @@ -640,10 +640,11 @@ void UpdateCurrentColorbar(colorbardata *cb){ /* ------------------ AdjustColorBar ------------------------ */ -void AdjustColorBar(colorbardata *cbi){ +void AdjustColorBar(colorbardata *cbi, int option){ int i; Rgb2CIE(cbi->rgb_node, cbi->cie_node); + cbi->dist_type = option; cbi->dist_node[0] = 0.0; for(i = 1;i < cbi->nnodes;i++){ unsigned char *rgb2_local; @@ -653,7 +654,7 @@ void AdjustColorBar(colorbardata *cbi){ cie2 = cbi->cie_node + 3 * i; cie1 = cie2 - 3; Rgb2CIE(rgb2_local, cie2); - if(cbi->type == CB_RAINBOW){ + if(option == COLOR_DIST_LAB){ float dx, dy, dz; DDIST3(cie1, cie2, dist); @@ -1340,7 +1341,6 @@ void SortColorBars(void){ cb = GetColorbar("split"); split_colorbar=cb; - split_colorbar_index = cb - colorbarinfo; cb = GetColorbar("CO2"); co2_colorbar_index = cb - colorbarinfo; @@ -1740,7 +1740,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[9]=255; cbi->rgb_node[10]=128; cbi->rgb_node[11]=0; - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; // fire 2 @@ -1958,7 +1958,7 @@ void InitDefaultColorbars(int nini){ for(i = 0; i < 12; i++){ cbi->rgb_node[i] = colorsplit[i]; } - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; @@ -2046,7 +2046,7 @@ void InitDefaultColorbars(int nini){ cbi->rgb_node[6] = 255; cbi->rgb_node[7] = 255; cbi->rgb_node[8] = 255; - strcpy(cbi->ctype, "deprecated"); + strcpy(cbi->ctype, "original"); cbi++; #ifdef pp_COLORBARS_CSV @@ -2083,6 +2083,7 @@ void InitDefaultColorbars(int nini){ else{ cbi->interp = INTERP_CIE; } + cbi->dist_type = COLOR_DIST_LAB; RemapColorbar(cbi); UpdateColorbarSplits(cbi); memcpy(cbi->rgb_node_orig, cbi->rgb_node, 3 * cbi->nnodes * sizeof(unsigned char)); diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index deb4019f77..cf3740c52a 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -80,7 +80,8 @@ int cb_usecolorbar_extreme; #define COLORBAR_PREV 21 #define COLORBAR_NEXT 22 #ifdef pp_COLOR_CIE -#define COLORBAR_ADJUST 23 +#define COLORBAR_ADJUST_LAB 23 +#define COLORBAR_ADJUST_L 33 #ifdef pp_COLOR_ADJUST #define COLORBAR_REVERT 24 #endif @@ -406,9 +407,15 @@ extern "C" void ColorbarCB(int var){ ColorbarCB(COLORBAR_LIST); break; #ifdef pp_COLOR_CIE - case COLORBAR_ADJUST: + case COLORBAR_ADJUST_LAB: #ifdef pp_COLOR_ADJUST - AdjustColorBar(colorbarinfo + colorbartype); + AdjustColorBar(colorbarinfo + colorbartype, COLOR_DIST_LAB); +#endif + ColorbarCB(COLORBAR_RGB); + break; + case COLORBAR_ADJUST_L: +#ifdef pp_COLOR_ADJUST + AdjustColorBar(colorbarinfo + colorbartype, COLOR_DIST_L); #endif ColorbarCB(COLORBAR_RGB); break; @@ -630,7 +637,8 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Show CIELab equal distance bars", &show_Lab_dist_bars); #ifdef pp_COLOR_ADJUST - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust", COLORBAR_ADJUST, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust Lab", COLORBAR_ADJUST_LAB, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust L", COLORBAR_ADJUST_L, ColorbarCB); glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert", COLORBAR_REVERT, ColorbarCB); #endif glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save", COLORBAR_SAVE, ColorbarCB); diff --git a/Source/smokeview/smokeheaders.h b/Source/smokeview/smokeheaders.h index 1d049efdc6..691dbcced4 100644 --- a/Source/smokeview/smokeheaders.h +++ b/Source/smokeview/smokeheaders.h @@ -700,7 +700,7 @@ EXTERNCPP void UpdateColorbarListBound(int flag); EXTERNCPP void UpdateColorbarListEdit(int flag,int del); #ifdef pp_COLOR_CIE -EXTERNCPP void AdjustColorBar(colorbardata *cbi); +EXTERNCPP void AdjustColorBar(colorbardata *cbi, int option); EXTERNCPP void RevertColorBar(colorbardata *cbi); EXTERNCPP void Rgb2CIE(unsigned char *rgb, float *cie); EXTERNCPP void Rgb2CIEs(unsigned char *rgbs255, float *cies); diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 376b9070d8..196373394f 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -596,7 +596,6 @@ SVEXTERN unsigned int SVDECL(*screenmap360, NULL); SVEXTERN float SVDECL(*screenmap360IX, NULL), SVDECL(*screenmap360IY, NULL); SVEXTERN colorbardata SVDECL(*split_colorbar, NULL); -SVEXTERN int split_colorbar_index; #ifdef INMAIN SVEXTERN float splitvals[3]={-1.0,0.0,1.0}; #else diff --git a/Source/smokeview/structures.h b/Source/smokeview/structures.h index c8bb03c7de..7ddca3f7f1 100644 --- a/Source/smokeview/structures.h +++ b/Source/smokeview/structures.h @@ -274,6 +274,8 @@ typedef struct _treedata { #define CB_OTHER 7 #define INTERP_RGB 0 #define INTERP_CIE 1 +#define COLOR_DIST_L 0 +#define COLOR_DIST_LAB 1 typedef struct _colorbardata { char label[1024]; // menu label char ctype[256]; @@ -286,7 +288,7 @@ typedef struct _colorbardata { int nnodes_orig, index_node_orig[1024]; float cie_node[3*1024], frgb[3*1024], dist_node[1024], cie_rgb[3*1024], dE[1024]; #endif - int interp; + int interp,dist_type; float colorbar[3*1024]; } colorbardata; From 0bf0ae88635d49285c40357da872186797f8cae6 Mon Sep 17 00:00:00 2001 From: gforney Date: Thu, 22 Jun 2023 16:01:00 -0400 Subject: [PATCH 49/49] smokeview source: remove pp_COLOR_ADJUST, formatting edits to color edit dialog box --- Source/smokeview/glui_colorbar.cpp | 21 +++++++-------------- Source/smokeview/options.h | 1 - 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/Source/smokeview/glui_colorbar.cpp b/Source/smokeview/glui_colorbar.cpp index cf3740c52a..beaba63b7a 100644 --- a/Source/smokeview/glui_colorbar.cpp +++ b/Source/smokeview/glui_colorbar.cpp @@ -22,6 +22,7 @@ GLUI_Panel *PANEL_cb10=NULL; GLUI_Panel *PANEL_cb11r=NULL; GLUI_Panel *PANEL_cb12 = NULL; GLUI_Panel *PANEL_cb13 = NULL; +GLUI_Panel *PANEL_cb14 = NULL; GLUI_Listbox *LISTBOX_colorbar_edit=NULL; #ifdef pp_COLOR_TOGGLE @@ -82,9 +83,7 @@ int cb_usecolorbar_extreme; #ifdef pp_COLOR_CIE #define COLORBAR_ADJUST_LAB 23 #define COLORBAR_ADJUST_L 33 -#ifdef pp_COLOR_ADJUST #define COLORBAR_REVERT 24 -#endif #define COLORBAR_LAB2 26 #define COLORBAR_RGB2 27 #define COLORBAR_SAVE 32 @@ -408,23 +407,17 @@ extern "C" void ColorbarCB(int var){ break; #ifdef pp_COLOR_CIE case COLORBAR_ADJUST_LAB: -#ifdef pp_COLOR_ADJUST AdjustColorBar(colorbarinfo + colorbartype, COLOR_DIST_LAB); -#endif ColorbarCB(COLORBAR_RGB); break; case COLORBAR_ADJUST_L: -#ifdef pp_COLOR_ADJUST AdjustColorBar(colorbarinfo + colorbartype, COLOR_DIST_L); -#endif ColorbarCB(COLORBAR_RGB); break; -#ifdef pp_COLOR_ADJUST case COLORBAR_REVERT: RevertColorBar(colorbarinfo + colorbartype); ColorbarCB(COLORBAR_RGB); break; -#endif case COLORBAR_SAVE: if(colorbartype >= ndefaultcolorbars&&colorbartype < ncolorbars){ cbi = colorbarinfo + colorbartype; @@ -636,12 +629,12 @@ extern "C" void GluiColorbarSetup(int main_window){ glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "rgb"); glui_colorbar->add_radiobutton_to_group(RADIO_colorbar_coord_type, "CIELab"); glui_colorbar->add_checkbox_to_panel(PANEL_cb_display,"Show CIELab equal distance bars", &show_Lab_dist_bars); -#ifdef pp_COLOR_ADJUST - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust Lab", COLORBAR_ADJUST_LAB, ColorbarCB); - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Adjust L", COLORBAR_ADJUST_L, ColorbarCB); - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Revert", COLORBAR_REVERT, ColorbarCB); -#endif - glui_colorbar->add_button_to_panel(PANEL_cb_display, "Save", COLORBAR_SAVE, ColorbarCB); + PANEL_cb14 = glui_colorbar->add_panel_to_panel(PANEL_cb_display,"", GLUI_PANEL_NONE); + glui_colorbar->add_button_to_panel(PANEL_cb14, "Adjust Lab", COLORBAR_ADJUST_LAB, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb14, "Revert", COLORBAR_REVERT, ColorbarCB); + glui_colorbar->add_column_to_panel(PANEL_cb14, false); + glui_colorbar->add_button_to_panel(PANEL_cb14, "Adjust L", COLORBAR_ADJUST_L, ColorbarCB); + glui_colorbar->add_button_to_panel(PANEL_cb14, "Save", COLORBAR_SAVE, ColorbarCB); EDITTEXT_colorbar_filename = glui_colorbar->add_edittext_to_panel(PANEL_cb_display, "filename:", GLUI_EDITTEXT_TEXT, colorbar_filename); EDITTEXT_colorbar_filename->set_w(200); UpdateColorbarEdit(); diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index bf8195900d..6f2232af38 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -27,7 +27,6 @@ #define pp_COLOR_CIE // output color diffs #define pp_COLOR_TOGGLE // add option to toggle colorbars //#define pp_COLOR_CIE_CHECK // check cie conversion for every possible rgb value (0<=r<=255,0<=g<=255,0<=b<=255) -#define pp_COLOR_ADJUST // add button for adjusting and reverting colorbars //#define pp_COLOR_HIDE // add checkbox to hide/unhide scene when editing a colorbar //#define pp_SMOKE_LIGHT // turn on smoke lighting