From e4a4b3e752a1ca4570139a48aa2f672523d9f514 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Mon, 9 Aug 2004 10:29:07 +0000 Subject: [PATCH] - fixed a couple of gcc warnings + added missing o->end() in jf's StructuralSolver plugin - fixed the view option code: FLTK > 1.1.5rc1 breaks our use of widget->changed()... - added background mesh support in the aniso algorithm --- Fltk/Callbacks.cpp | 592 +++++++++++++++++++---------------- Fltk/Callbacks.h | 1 - Fltk/GUI.cpp | 73 +---- Fltk/GUI.h | 13 +- Mesh/2D_Mesh_Aniso.cpp | 13 +- Plugin/Plugin.h | 2 +- Plugin/StructuralSolver.cpp | 7 +- Plugin/StructuralSolver.h | 4 +- doc/texinfo/gmsh.texi | 6 +- doc/texinfo/opt_general.texi | 2 +- 10 files changed, 356 insertions(+), 357 deletions(-) diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 808850d320..77568f36ad 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.262 2004-08-06 14:48:32 remacle Exp $ +// $Id: Callbacks.cpp,v 1.263 2004-08-09 10:29:07 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -239,11 +239,6 @@ void color_cb(CALLBACK_ARGS) Draw(); } -void set_changed_cb(CALLBACK_ARGS) -{ - w->set_changed(); -} - void redraw_cb(CALLBACK_ARGS) { Draw(); @@ -3310,8 +3305,6 @@ void view_options_custom_cb(CALLBACK_ARGS) WID->view_value[31]->deactivate(); WID->view_value[32]->deactivate(); } - - if(w) w->set_changed(); } void view_options_timestep_cb(CALLBACK_ARGS) @@ -3364,324 +3357,393 @@ void view_options_ok_cb(CALLBACK_ARGS) links = (int)opt_post_link(0, GMSH_GET, 0); + // get the old values for the current view + int current = (long int)data; + + double scale_type = opt_view_scale_type(current, GMSH_GET, 0); + double intervals_type = opt_view_intervals_type(current, GMSH_GET, 0); + double point_type = opt_view_point_type(current, GMSH_GET, 0); + double line_type = opt_view_line_type(current, GMSH_GET, 0); + double vector_type = opt_view_vector_type(current, GMSH_GET, 0); + double arrow_location = opt_view_arrow_location(current, GMSH_GET, 0); + double tensor_type = opt_view_tensor_type(current, GMSH_GET, 0); + double range_type = opt_view_range_type(current, GMSH_GET, 0); + double grid = opt_view_grid(current, GMSH_GET, 0); + double boundary = opt_view_boundary(current, GMSH_GET, 0); + + double type = opt_view_type(current, GMSH_GET, 0); + double saturate_values = opt_view_saturate_values(current, GMSH_GET, 0); + double show_element = opt_view_show_element(current, GMSH_GET, 0); + double show_scale = opt_view_show_scale(current, GMSH_GET, 0); + double auto_position = opt_view_auto_position(current, GMSH_GET, 0); + double show_time = opt_view_show_time(current, GMSH_GET, 0); + double draw_strings = opt_view_draw_strings(current, GMSH_GET, 0); + double light = opt_view_light(current, GMSH_GET, 0); + double light_two_side = opt_view_light_two_side(current, GMSH_GET, 0); + double smooth_normals = opt_view_smooth_normals(current, GMSH_GET, 0); + double draw_points = opt_view_draw_points(current, GMSH_GET, 0); + double draw_lines = opt_view_draw_lines(current, GMSH_GET, 0); + double draw_triangles = opt_view_draw_triangles(current, GMSH_GET, 0); + double draw_quadrangles = opt_view_draw_quadrangles(current, GMSH_GET, 0); + double draw_tetrahedra = opt_view_draw_tetrahedra(current, GMSH_GET, 0); + double draw_hexahedra = opt_view_draw_hexahedra(current, GMSH_GET, 0); + double draw_prisms = opt_view_draw_prisms(current, GMSH_GET, 0); + double draw_pyramids = opt_view_draw_pyramids(current, GMSH_GET, 0); + double draw_scalars = opt_view_draw_scalars(current, GMSH_GET, 0); + double draw_vectors = opt_view_draw_vectors(current, GMSH_GET, 0); + double draw_tensors = opt_view_draw_tensors(current, GMSH_GET, 0); + + double custom_min = opt_view_custom_min(current, GMSH_GET, 0); + double custom_max = opt_view_custom_max(current, GMSH_GET, 0); + double nb_iso = opt_view_nb_iso(current, GMSH_GET, 0); + double offset0 = opt_view_offset0(current, GMSH_GET, 0); + double offset1 = opt_view_offset1(current, GMSH_GET, 0); + double offset2 = opt_view_offset2(current, GMSH_GET, 0); + double raise0 = opt_view_raise0(current, GMSH_GET, 0); + double raise1 = opt_view_raise1(current, GMSH_GET, 0); + double raise2 = opt_view_raise2(current, GMSH_GET, 0); + double timestep = opt_view_timestep(current, GMSH_GET, 0); + double arrow_size = opt_view_arrow_size(current, GMSH_GET, 0); + double displacement_factor = opt_view_displacement_factor(current, GMSH_GET, 0); + double point_size = opt_view_point_size(current, GMSH_GET, 0); + double line_width = opt_view_line_width(current, GMSH_GET, 0); + double explode = opt_view_explode(current, GMSH_GET, 0); + double angle_smooth_normals = opt_view_angle_smooth_normals(i, GMSH_GET, 0); + double position0 = opt_view_position0(current, GMSH_GET, 0); + double position1 = opt_view_position1(current, GMSH_GET, 0); + double size0 = opt_view_size0(current, GMSH_GET, 0); + double size1 = opt_view_size1(current, GMSH_GET, 0); + double nb_abscissa = opt_view_nb_abscissa(current, GMSH_GET, 0); + + char name[256]; + strcpy(name, opt_view_name(current, GMSH_GET, NULL)); + char format[256]; + strcpy(format, opt_view_format(current, GMSH_GET, NULL)); + char abscissa_name[256]; + strcpy(abscissa_name, opt_view_abscissa_name(current, GMSH_GET, NULL)); + char abscissa_format[256]; + strcpy(abscissa_format, opt_view_abscissa_format(current, GMSH_GET, NULL)); + + // modify only the views that need to be updated for(i = 0; i < List_Nbr(CTX.post.list); i++) { if((links == 2 || links == 4) || ((links == 1 || links == 3) && opt_view_visible(i, GMSH_GET, 0)) || - (links == 0 && i == (long int)data)) { + (links == 0 && i == current)) { if(links == 3 || links == 4) force = 1; - // view_choice + double val; - if(force || WID->view_choice[1]->changed()) { - int val; - switch (WID->view_choice[1]->value()) { - case 0: - val = DRAW_POST_LINEAR; - break; - case 1: - val = DRAW_POST_LOGARITHMIC; - break; - default: - val = DRAW_POST_DOUBLELOGARITHMIC; - break; - } - opt_view_scale_type(i, GMSH_SET, val); - } + // view_choice - if(force || WID->view_choice[0]->changed()) { - int val; - switch (WID->view_choice[0]->value()) { - case 0: - val = DRAW_POST_ISO; - break; - case 1: - val = DRAW_POST_DISCRETE; - break; - case 2: - val = DRAW_POST_CONTINUOUS; - break; - default: - val = DRAW_POST_NUMERIC; - break; - } - opt_view_intervals_type(i, GMSH_SET, val); + switch (WID->view_choice[1]->value()) { + case 0: + val = DRAW_POST_LINEAR; + break; + case 1: + val = DRAW_POST_LOGARITHMIC; + break; + default: + val = DRAW_POST_DOUBLELOGARITHMIC; + break; } + if(force || (val != scale_type)) + opt_view_scale_type(i, GMSH_SET, val); - if(force || WID->view_choice[5]->changed()) { - int val; - switch (WID->view_choice[5]->value()) { - case 0: - val = 0; - break; - default: - val = 1; - break; - } - opt_view_point_type(i, GMSH_SET, val); + switch (WID->view_choice[0]->value()) { + case 0: + val = DRAW_POST_ISO; + break; + case 1: + val = DRAW_POST_DISCRETE; + break; + case 2: + val = DRAW_POST_CONTINUOUS; + break; + default: + val = DRAW_POST_NUMERIC; + break; } - - if(force || WID->view_choice[6]->changed()) { - int val; - switch (WID->view_choice[6]->value()) { - case 0: - val = 0; - break; - default: - val = 1; - break; - } + if(force || (val != intervals_type)) + opt_view_intervals_type(i, GMSH_SET, val); + + val = WID->view_choice[5]->value(); + if(force || (val != point_type)) + opt_view_point_type(i, GMSH_SET, val); + + val = WID->view_choice[6]->value(); + if(force || (val != line_type)) opt_view_line_type(i, GMSH_SET, val); - } - if(force || WID->view_choice[2]->changed()) { - int val; - switch (WID->view_choice[2]->value()) { - case 0: - val = DRAW_POST_SEGMENT; - break; - case 1: - val = DRAW_POST_ARROW; - break; - case 2: - val = DRAW_POST_PYRAMID; - break; - case 4: - val = DRAW_POST_DISPLACEMENT; - break; - default: // 3 - val = DRAW_POST_ARROW3D; - break; - } - opt_view_vector_type(i, GMSH_SET, val); + switch (WID->view_choice[2]->value()) { + case 0: + val = DRAW_POST_SEGMENT; + break; + case 1: + val = DRAW_POST_ARROW; + break; + case 2: + val = DRAW_POST_PYRAMID; + break; + case 4: + val = DRAW_POST_DISPLACEMENT; + break; + default: // 3 + val = DRAW_POST_ARROW3D; + break; } + if(force || (val != vector_type)) + opt_view_vector_type(i, GMSH_SET, val); - if(force || WID->view_choice[3]->changed()) { - int val; - switch (WID->view_choice[3]->value()) { - case 0: - val = DRAW_POST_LOCATE_COG; - break; - default: - val = DRAW_POST_LOCATE_VERTEX; - break; - } - opt_view_arrow_location(i, GMSH_SET, val); + switch (WID->view_choice[3]->value()) { + case 0: + val = DRAW_POST_LOCATE_COG; + break; + default: + val = DRAW_POST_LOCATE_VERTEX; + break; } + if(force || (val != arrow_location)) + opt_view_arrow_location(i, GMSH_SET, val); - if(force || WID->view_choice[4]->changed()) { - int val; - switch (WID->view_choice[4]->value()) { - case 0: - val = DRAW_POST_VONMISES; - break; - default: - val = DRAW_POST_EIGENVECTORS; - break; - } - opt_view_tensor_type(i, GMSH_SET, val); + switch (WID->view_choice[4]->value()) { + case 0: + val = DRAW_POST_VONMISES; + break; + default: + val = DRAW_POST_EIGENVECTORS; + break; } + if(force || (val != tensor_type)) + opt_view_tensor_type(i, GMSH_SET, val); - if(force || WID->view_choice[7]->changed()) { - int val; - switch (WID->view_choice[7]->value()) { - case 0: - val = DRAW_POST_RANGE_DEFAULT; - break; - case 1: - val = DRAW_POST_RANGE_PER_STEP; - break; - default: - val = DRAW_POST_RANGE_CUSTOM; - break; - } - opt_view_range_type(i, GMSH_SET, val); + switch (WID->view_choice[7]->value()) { + case 0: + val = DRAW_POST_RANGE_DEFAULT; + break; + case 1: + val = DRAW_POST_RANGE_PER_STEP; + break; + default: + val = DRAW_POST_RANGE_CUSTOM; + break; } + if(force || (val != range_type)) + opt_view_range_type(i, GMSH_SET, val); - if(force || WID->view_choice[8]->changed()) { - opt_view_grid(i, GMSH_SET, WID->view_choice[8]->value()); - } + val = WID->view_choice[8]->value(); + if(force || (val != grid)) + opt_view_grid(i, GMSH_SET, val); - if(force || WID->view_choice[9]->changed()) { - opt_view_boundary(i, GMSH_SET, WID->view_choice[9]->value()); - } + val = WID->view_choice[9]->value(); + if(force || (val != boundary)) + opt_view_boundary(i, GMSH_SET, val); // view_butts - if(force || WID->view_butt[1]->changed() || - WID->view_butt[2]->changed() || WID->view_butt[3]->changed()) - opt_view_type(i, GMSH_SET, - WID->view_butt[1]->value()? DRAW_POST_3D : - WID->view_butt[2]->value()? DRAW_POST_2D_SPACE : - DRAW_POST_2D_TIME); + val = WID->view_butt[1]->value() ? DRAW_POST_3D : + WID->view_butt[2]->value() ? DRAW_POST_2D_SPACE : DRAW_POST_2D_TIME; + if(force || (val != type)) + opt_view_type(i, GMSH_SET, val); - if(force || WID->view_butt[38]->changed()) - opt_view_saturate_values(i, GMSH_SET, WID->view_butt[38]->value()); + val = WID->view_butt[38]->value(); + if(force || (val != saturate_values)) + opt_view_saturate_values(i, GMSH_SET, val); - if(force || WID->view_butt[10]->changed()) - opt_view_show_element(i, GMSH_SET, WID->view_butt[10]->value()); + val = WID->view_butt[10]->value(); + if(force || (val != show_element)) + opt_view_show_element(i, GMSH_SET, val); - if(force || WID->view_butt[4]->changed()) - opt_view_show_scale(i, GMSH_SET, WID->view_butt[4]->value()); + val = WID->view_butt[4]->value(); + if(force || (val != show_scale)) + opt_view_show_scale(i, GMSH_SET, val); - if(force || WID->view_butt[7]->changed()) - opt_view_auto_position(i, GMSH_SET, WID->view_butt[7]->value()); + val = WID->view_butt[7]->value(); + if(force || (val != auto_position)) + opt_view_auto_position(i, GMSH_SET, val); - if(force || WID->view_butt[8]->changed()) - opt_view_show_time(i, GMSH_SET, WID->view_butt[8]->value()); + val = WID->view_butt[8]->value(); + if(force || (val != show_time)) + opt_view_show_time(i, GMSH_SET, val); - if(force || WID->view_butt[5]->changed()) - opt_view_draw_strings(i, GMSH_SET, WID->view_butt[5]->value()); + val = WID->view_butt[5]->value(); + if(force || (val != draw_strings)) + opt_view_draw_strings(i, GMSH_SET, val); - if(force || WID->view_butt[11]->changed()) - opt_view_light(i, GMSH_SET, WID->view_butt[11]->value()); + val = WID->view_butt[11]->value(); + if(force || (val != light)) + opt_view_light(i, GMSH_SET, val); - if(force || WID->view_butt[9]->changed()) - opt_view_light_two_side(i, GMSH_SET, WID->view_butt[9]->value()); + val = WID->view_butt[9]->value(); + if(force || (val != light_two_side)) + opt_view_light_two_side(i, GMSH_SET, val); - if(force || WID->view_butt[12]->changed()) - opt_view_smooth_normals(i, GMSH_SET, WID->view_butt[12]->value()); + val = WID->view_butt[12]->value(); + if(force || (val != smooth_normals)) + opt_view_smooth_normals(i, GMSH_SET, val); - if(force || WID->view_butt[13]->changed()) - opt_view_draw_points(i, GMSH_SET, WID->view_butt[13]->value()); + val = WID->view_butt[13]->value(); + if(force || (val != draw_points)) + opt_view_draw_points(i, GMSH_SET, val); - if(force || WID->view_butt[14]->changed()) - opt_view_draw_lines(i, GMSH_SET, WID->view_butt[14]->value()); + val = WID->view_butt[14]->value(); + if(force || (val != draw_lines)) + opt_view_draw_lines(i, GMSH_SET, val); - if(force || WID->view_butt[15]->changed()) - opt_view_draw_triangles(i, GMSH_SET, WID->view_butt[15]->value()); + val = WID->view_butt[15]->value(); + if(force || (val != draw_triangles)) + opt_view_draw_triangles(i, GMSH_SET, val); - if(force || WID->view_butt[16]->changed()) - opt_view_draw_quadrangles(i, GMSH_SET, WID->view_butt[16]->value()); + val = WID->view_butt[16]->value(); + if(force || (val != draw_quadrangles)) + opt_view_draw_quadrangles(i, GMSH_SET, val); - if(force || WID->view_butt[17]->changed()) - opt_view_draw_tetrahedra(i, GMSH_SET, WID->view_butt[17]->value()); + val = WID->view_butt[17]->value(); + if(force || (val != draw_tetrahedra)) + opt_view_draw_tetrahedra(i, GMSH_SET, val); - if(force || WID->view_butt[18]->changed()) - opt_view_draw_hexahedra(i, GMSH_SET, WID->view_butt[18]->value()); + val = WID->view_butt[18]->value(); + if(force || (val != draw_hexahedra)) + opt_view_draw_hexahedra(i, GMSH_SET, val); - if(force || WID->view_butt[19]->changed()) - opt_view_draw_prisms(i, GMSH_SET, WID->view_butt[19]->value()); + val = WID->view_butt[19]->value(); + if(force || (val != draw_prisms)) + opt_view_draw_prisms(i, GMSH_SET, val); - if(force || WID->view_butt[20]->changed()) - opt_view_draw_pyramids(i, GMSH_SET, WID->view_butt[20]->value()); + val = WID->view_butt[20]->value(); + if(force || (val != draw_pyramids)) + opt_view_draw_pyramids(i, GMSH_SET, val); - if(force || WID->view_butt[21]->changed()) - opt_view_draw_scalars(i, GMSH_SET, WID->view_butt[21]->value()); + val = WID->view_butt[21]->value(); + if(force || (val != draw_scalars)) + opt_view_draw_scalars(i, GMSH_SET, val); - if(force || WID->view_butt[22]->changed()) - opt_view_draw_vectors(i, GMSH_SET, WID->view_butt[22]->value()); + val = WID->view_butt[22]->value(); + if(force || (val != draw_vectors)) + opt_view_draw_vectors(i, GMSH_SET, val); - if(force || WID->view_butt[23]->changed()) - opt_view_draw_tensors(i, GMSH_SET, WID->view_butt[23]->value()); + val = WID->view_butt[23]->value(); + if(force || (val != draw_tensors)) + opt_view_draw_tensors(i, GMSH_SET, val); // view_values - - if(force || WID->view_value[31]->changed()) - opt_view_custom_min(i, GMSH_SET, WID->view_value[31]->value()); - - if(force || WID->view_value[32]->changed()) - opt_view_custom_max(i, GMSH_SET, WID->view_value[32]->value()); - - if(force || WID->view_value[30]->changed()) - opt_view_nb_iso(i, GMSH_SET, WID->view_value[30]->value()); - - if(force || WID->view_value[40]->changed()) - opt_view_offset0(i, GMSH_SET, WID->view_value[40]->value()); - - if(force || WID->view_value[41]->changed()) - opt_view_offset1(i, GMSH_SET, WID->view_value[41]->value()); - - if(force || WID->view_value[42]->changed()) - opt_view_offset2(i, GMSH_SET, WID->view_value[42]->value()); - - if(force || WID->view_value[43]->changed()) - opt_view_raise0(i, GMSH_SET, WID->view_value[43]->value()); - - if(force || WID->view_value[44]->changed()) - opt_view_raise1(i, GMSH_SET, WID->view_value[44]->value()); - - if(force || WID->view_value[45]->changed()) - opt_view_raise2(i, GMSH_SET, WID->view_value[45]->value()); - - if(force || WID->view_value[50]->changed()) - opt_view_timestep(i, GMSH_SET, WID->view_value[50]->value()); - - if(force || WID->view_value[60]->changed()) - opt_view_arrow_size(i, GMSH_SET, WID->view_value[60]->value()); - - if(force || WID->view_value[63]->changed()) - opt_view_displacement_factor(i, GMSH_SET, WID->view_value[63]->value()); - - if(force || WID->view_value[61]->changed()) - opt_view_point_size(i, GMSH_SET, WID->view_value[61]->value()); - - if(force || WID->view_value[62]->changed()) - opt_view_line_width(i, GMSH_SET, WID->view_value[62]->value()); - - if(force || WID->view_value[12]->changed()) - opt_view_explode(i, GMSH_SET, WID->view_value[12]->value()); - - if(force || WID->view_value[10]->changed()) - opt_view_angle_smooth_normals(i, GMSH_SET, - WID->view_value[10]->value()); - - if(force || WID->view_value[20]->changed()) - opt_view_position0(i, GMSH_SET, WID->view_value[20]->value()); - - if(force || WID->view_value[21]->changed()) - opt_view_position1(i, GMSH_SET, WID->view_value[21]->value()); - - if(force || WID->view_value[22]->changed()) - opt_view_size0(i, GMSH_SET, WID->view_value[22]->value()); - - if(force || WID->view_value[23]->changed()) - opt_view_size1(i, GMSH_SET, WID->view_value[23]->value()); - - if(force || WID->view_value[25]->changed()) - opt_view_nb_abscissa(i, GMSH_SET, WID->view_value[25]->value()); + + val = WID->view_value[31]->value(); + if(force || (val != custom_min)) + opt_view_custom_min(i, GMSH_SET, val); + + val = WID->view_value[32]->value(); + if(force || (val != custom_max)) + opt_view_custom_max(i, GMSH_SET, val); + + val = WID->view_value[30]->value(); + if(force || (val != nb_iso)) + opt_view_nb_iso(i, GMSH_SET, val); + + val = WID->view_value[40]->value(); + if(force || (val != offset0)) + opt_view_offset0(i, GMSH_SET, val); + + val = WID->view_value[41]->value(); + if(force || (val != offset1)) + opt_view_offset1(i, GMSH_SET, val); + + val = WID->view_value[42]->value(); + if(force || (val != offset2)) + opt_view_offset2(i, GMSH_SET, val); + + val = WID->view_value[43]->value(); + if(force || (val != raise0)) + opt_view_raise0(i, GMSH_SET, val); + + val = WID->view_value[44]->value(); + if(force || (val != raise1)) + opt_view_raise1(i, GMSH_SET, val); + + val = WID->view_value[45]->value(); + if(force || (val != raise2)) + opt_view_raise2(i, GMSH_SET, val); + + val = WID->view_value[50]->value(); + if(force || (val != timestep)) + opt_view_timestep(i, GMSH_SET, val); + + val = WID->view_value[60]->value(); + if(force || (val != arrow_size)) + opt_view_arrow_size(i, GMSH_SET, val); + + val = WID->view_value[63]->value(); + if(force || (val != displacement_factor)) + opt_view_displacement_factor(i, GMSH_SET, val); + + val = WID->view_value[61]->value(); + if(force || (val != point_size)) + opt_view_point_size(i, GMSH_SET, val); + + val = WID->view_value[62]->value(); + if(force || (val != line_width)) + opt_view_line_width(i, GMSH_SET, val); + + val = WID->view_value[12]->value(); + if(force || (val != explode)) + opt_view_explode(i, GMSH_SET, val); + + val = WID->view_value[10]->value(); + if(force || (val != angle_smooth_normals)) + opt_view_angle_smooth_normals(i, GMSH_SET, val); + + val = WID->view_value[20]->value(); + if(force || (val != position0)) + opt_view_position0(i, GMSH_SET, val); + + val = WID->view_value[21]->value(); + if(force || (val != position1)) + opt_view_position1(i, GMSH_SET, val); + + val = WID->view_value[22]->value(); + if(force || (val != size0)) + opt_view_size0(i, GMSH_SET, val); + + val = WID->view_value[23]->value(); + if(force || (val != size1)) + opt_view_size1(i, GMSH_SET, val); + + val = WID->view_value[25]->value(); + if(force || (val != nb_abscissa)) + opt_view_nb_abscissa(i, GMSH_SET, val); // view_inputs - if(force || WID->view_input[0]->changed()) - opt_view_name(i, GMSH_SET, (char *)WID->view_input[0]->value()); + char *str; - if(force || WID->view_input[1]->changed()) - opt_view_format(i, GMSH_SET, (char *)WID->view_input[1]->value()); + str = (char *)WID->view_input[0]->value(); + if(force || strcmp(str, name)) + opt_view_name(i, GMSH_SET, str); - if(force || WID->view_input[2]->changed()) - opt_view_abscissa_name(i, GMSH_SET, - (char *)WID->view_input[2]->value()); + str = (char *)WID->view_input[1]->value(); + if(force || strcmp(str, format)) + opt_view_format(i, GMSH_SET, str); - if(force || WID->view_input[3]->changed()) - opt_view_abscissa_format(i, GMSH_SET, - (char *)WID->view_input[3]->value()); + str = (char *)WID->view_input[2]->value(); + if(force || strcmp(str, abscissa_name)) + opt_view_abscissa_name(i, GMSH_SET, str); + + str = (char *)WID->view_input[3]->value(); + if(force || strcmp(str, abscissa_format)) + opt_view_abscissa_format(i, GMSH_SET, str); // colorbar window - if(force - || (WID->view_colorbar_window->changed() && i != (long int)data)) { - ColorTable_Copy(& - ((Post_View *) - List_Pointer(CTX.post.list, (long int)data))->CT); - ColorTable_Paste(&((Post_View *) List_Pointer(CTX.post.list, i))->CT); + if(force || (WID->view_colorbar_window->changed() && i != current)) { + ColorTable_Copy(&((Post_View *)List_Pointer(CTX.post.list, current))->CT); + ColorTable_Paste(&((Post_View *)List_Pointer(CTX.post.list, i))->CT); } } } - // we clear all the flags - for(i = 0; i < VIEW_OPT_BUTT; i++) { - if(WID->view_butt[i]) - WID->view_butt[i]->clear_changed(); - if(WID->view_value[i]) - WID->view_value[i]->clear_changed(); - if(WID->view_input[i]) - WID->view_input[i]->clear_changed(); - if(WID->view_choice[i]) - WID->view_choice[i]->clear_changed(); - WID->view_colorbar_window->clear_changed(); - } + // clear the changed flag on the colorbar + WID->view_colorbar_window->clear_changed(); } void view_arrow_param_cb(CALLBACK_ARGS) diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h index 0ba13a3a06..90d4c7c83a 100644 --- a/Fltk/Callbacks.h +++ b/Fltk/Callbacks.h @@ -31,7 +31,6 @@ void ManualPlay(int time, int step); void cancel_cb(CALLBACK_ARGS) ; void color_cb(CALLBACK_ARGS) ; -void set_changed_cb(CALLBACK_ARGS); void redraw_cb(CALLBACK_ARGS); // Graphical window diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 5d70bba144..84d2c608fc 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.331 2004-08-07 06:59:15 geuzaine Exp $ +// $Id: GUI.cpp,v 1.332 2004-08-09 10:29:07 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -2205,14 +2205,6 @@ void GUI::create_option_window() // View options - // WARNING! Don't forget to add the set_changed_cb() callback to any new widget! - // initialise all buttons to NULL (see the clear_changed() in view_options_ok_cb) - for(int i = 0; i < VIEW_OPT_BUTT; i++) { - view_butt[i] = NULL; - view_value[i] = NULL; - view_input[i] = NULL; - view_choice[i] = NULL; - } view_number = -1; view_window = new Fl_Window(BROWSERW, 0, width, height, "View options"); @@ -2226,60 +2218,49 @@ void GUI::create_option_window() view_butt[1]->type(FL_RADIO_BUTTON); view_butt[1]->down_box(RADIO_BOX); view_butt[1]->selection_color(RADIO_COLOR); - view_butt[1]->callback(set_changed_cb, 0); view_butt[2] = new Fl_Check_Button(2 * WB, 2 * WB + 2 * BH, BW / 2 - WB, BH, "2D space table"); view_butt[2]->type(FL_RADIO_BUTTON); view_butt[2]->down_box(RADIO_BOX); view_butt[2]->selection_color(RADIO_COLOR); - view_butt[2]->callback(set_changed_cb, 0); view_butt[3] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW / 2 - WB, BH, "2D time table"); view_butt[3]->type(FL_RADIO_BUTTON); view_butt[3]->down_box(RADIO_BOX); view_butt[3]->selection_color(RADIO_COLOR); - view_butt[3]->callback(set_changed_cb, 0); int sw = (int)(1.5 * fontsize); view_butt_rep[0] = new Fl_Repeat_Button(2 * WB, 2 * WB + 4 * BH, sw, BH, "-"); - //no set_changed since has its own callback view_butt_rep[1] = new Fl_Repeat_Button(2 * WB + IW - sw, 2 * WB + 4 * BH, sw, BH, "+"); - //no set_changed since has its own callback view_value[50] = new Fl_Value_Input(2 * WB + sw, 2 * WB + 4 * BH, IW - 2 * sw, BH); view_value[50]->align(FL_ALIGN_RIGHT); view_value[50]->minimum(0); view_value[50]->maximum(0); view_value[50]->step(1); - //no set_changed since has its own callback Fl_Box *a = new Fl_Box(2 * WB + IW, 2 * WB + 4 * BH, IW / 2, BH, "Step"); a->box(FL_NO_BOX); a->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); view_input[0] = new Fl_Input(2 * WB, 2 * WB + 5 * BH, IW, BH, "Name"); view_input[0]->align(FL_ALIGN_RIGHT); - view_input[0]->callback(set_changed_cb, 0); view_input[1] = new Fl_Input(2 * WB, 2 * WB + 6 * BH, IW, BH, "Format"); view_input[1]->align(FL_ALIGN_RIGHT); - view_input[1]->callback(set_changed_cb, 0); { view_2d = new Fl_Group(2 * WB, 2 * WB + 7 * BH, width - 2 * WB, 4 * BH, 0); view_input[2] = new Fl_Input(2 * WB, 2 * WB + 7 * BH, IW, BH, "Abscissa name"); view_input[2]->align(FL_ALIGN_RIGHT); - view_input[2]->callback(set_changed_cb, 0); view_input[3] = new Fl_Input(2 * WB, 2 * WB + 8 * BH, IW, BH, "Abscissa format"); view_input[3]->align(FL_ALIGN_RIGHT); - view_input[3]->callback(set_changed_cb, 0); view_value[25] = new Fl_Value_Input(2 * WB, 2 * WB + 9 * BH, IW, BH, "Number of abscissa points"); view_value[25]->minimum(0.); view_value[25]->step(1); view_value[25]->maximum(256); view_value[25]->align(FL_ALIGN_RIGHT); - view_value[25]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_grid_mode[] = { {"None", 0, 0, 0}, @@ -2291,7 +2272,6 @@ void GUI::create_option_window() view_choice[8] = new Fl_Choice(2 * WB, 2 * WB + 10 * BH, IW, BH, "Grid mode"); view_choice[8]->menu(menu_grid_mode); view_choice[8]->align(FL_ALIGN_RIGHT); - view_choice[8]->callback(set_changed_cb, 0); view_2d->end(); } @@ -2300,30 +2280,25 @@ void GUI::create_option_window() view_butt[7]->type(FL_TOGGLE_BUTTON); view_butt[7]->down_box(TOGGLE_BOX); view_butt[7]->selection_color(TOGGLE_COLOR); - view_butt[7]->callback(set_changed_cb, 0); view_value[20] = new Fl_Value_Input(width /2, 2 * WB + 2 * BH, IW / 2, BH); view_value[20]->align(FL_ALIGN_RIGHT); - view_value[20]->callback(set_changed_cb, 0); view_value[20]->minimum(0); view_value[20]->maximum(1024); view_value[20]->step(1); view_value[21] = new Fl_Value_Input(width / 2 + IW / 2, 2 * WB + 2 * BH, IW / 2, BH, "Position"); view_value[21]->align(FL_ALIGN_RIGHT); - view_value[21]->callback(set_changed_cb, 0); view_value[21]->minimum(0); view_value[21]->maximum(1024); view_value[21]->step(1); view_value[22] = new Fl_Value_Input(width /2, 2 * WB + 3 * BH, IW / 2, BH); view_value[22]->align(FL_ALIGN_RIGHT); - view_value[22]->callback(set_changed_cb, 0); view_value[22]->minimum(0); view_value[22]->maximum(1024); view_value[22]->step(1); view_value[23] = new Fl_Value_Input(width / 2 + IW / 2, 2 * WB + 3 * BH, IW / 2, BH, "Size"); view_value[23]->align(FL_ALIGN_RIGHT); - view_value[23]->callback(set_changed_cb, 0); view_value[23]->minimum(0); view_value[23]->maximum(1024); view_value[23]->step(1); @@ -2338,75 +2313,63 @@ void GUI::create_option_window() view_butt[13]->type(FL_TOGGLE_BUTTON); view_butt[13]->down_box(TOGGLE_BOX); view_butt[13]->selection_color(TOGGLE_COLOR); - view_butt[13]->callback(set_changed_cb, 0); view_butt[14] = new Fl_Check_Button(2 * WB, 2 * WB + 2 * BH, BW / 2 - WB, BH, "Lines"); view_butt[14]->type(FL_TOGGLE_BUTTON); view_butt[14]->down_box(TOGGLE_BOX); view_butt[14]->selection_color(TOGGLE_COLOR); - view_butt[14]->callback(set_changed_cb, 0); view_butt[15] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW / 2 - WB, BH, "Triangles"); view_butt[15]->type(FL_TOGGLE_BUTTON); view_butt[15]->down_box(TOGGLE_BOX); view_butt[15]->selection_color(TOGGLE_COLOR); - view_butt[15]->callback(set_changed_cb, 0); view_butt[16] = new Fl_Check_Button(2 * WB, 2 * WB + 4 * BH, BW / 2 - WB, BH, "Quadrangles"); view_butt[16]->type(FL_TOGGLE_BUTTON); view_butt[16]->down_box(TOGGLE_BOX); view_butt[16]->selection_color(TOGGLE_COLOR); - view_butt[16]->callback(set_changed_cb, 0); view_butt[17] = new Fl_Check_Button(2 * WB, 2 * WB + 5 * BH, BW / 2 - WB, BH, "Tetrahedra"); view_butt[17]->type(FL_TOGGLE_BUTTON); view_butt[17]->down_box(TOGGLE_BOX); view_butt[17]->selection_color(TOGGLE_COLOR); - view_butt[17]->callback(set_changed_cb, 0); view_butt[18] = new Fl_Check_Button(2 * WB, 2 * WB + 6 * BH, BW / 2 - WB, BH, "Hexahedra"); view_butt[18]->type(FL_TOGGLE_BUTTON); view_butt[18]->down_box(TOGGLE_BOX); view_butt[18]->selection_color(TOGGLE_COLOR); - view_butt[18]->callback(set_changed_cb, 0); view_butt[19] = new Fl_Check_Button(2 * WB, 2 * WB + 7 * BH, BW / 2 - WB, BH, "Prisms"); view_butt[19]->type(FL_TOGGLE_BUTTON); view_butt[19]->down_box(TOGGLE_BOX); view_butt[19]->selection_color(TOGGLE_COLOR); - view_butt[19]->callback(set_changed_cb, 0); view_butt[20] = new Fl_Check_Button(2 * WB, 2 * WB + 8 * BH, BW / 2 - WB, BH, "Pyramids"); view_butt[20]->type(FL_TOGGLE_BUTTON); view_butt[20]->down_box(TOGGLE_BOX); view_butt[20]->selection_color(TOGGLE_COLOR); - view_butt[20]->callback(set_changed_cb, 0); view_butt[4] = new Fl_Check_Button(width / 2, 2 * WB + 1 * BH, BW / 2 - WB, BH, "Scale"); view_butt[4]->tooltip("(Alt+i)"); view_butt[4]->type(FL_TOGGLE_BUTTON); view_butt[4]->down_box(TOGGLE_BOX); view_butt[4]->selection_color(TOGGLE_COLOR); - view_butt[4]->callback(set_changed_cb, 0); view_butt[8] = new Fl_Check_Button(width / 2, 2 * WB + 2 * BH, BW / 2 - WB, BH, "Step value"); view_butt[8]->type(FL_TOGGLE_BUTTON); view_butt[8]->down_box(TOGGLE_BOX); view_butt[8]->selection_color(TOGGLE_COLOR); - view_butt[8]->callback(set_changed_cb, 0); view_butt[5] = new Fl_Check_Button(width / 2, 2 * WB + 3 * BH, BW / 2 - WB, BH, "Annotations"); view_butt[5]->tooltip("(Alt+n)"); view_butt[5]->type(FL_TOGGLE_BUTTON); view_butt[5]->down_box(TOGGLE_BOX); view_butt[5]->selection_color(TOGGLE_COLOR); - view_butt[5]->callback(set_changed_cb, 0); view_butt[10] = new Fl_Check_Button(width / 2, 2 * WB + 4 * BH, BW / 2 - WB, BH, "Element edges"); view_butt[10]->type(FL_TOGGLE_BUTTON); view_butt[10]->down_box(TOGGLE_BOX); view_butt[10]->selection_color(TOGGLE_COLOR); - view_butt[10]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_boundary[] = { {"None", 0, 0, 0}, @@ -2418,25 +2381,21 @@ void GUI::create_option_window() view_choice[9] = new Fl_Choice(width / 2, 2 * WB + 5 * BH, IW, BH, "Boundary"); view_choice[9]->menu(menu_boundary); view_choice[9]->align(FL_ALIGN_RIGHT); - view_choice[9]->callback(set_changed_cb, 0); view_butt[21] = new Fl_Check_Button(width / 2, 2 * WB + 6 * BH, BW / 2 - WB, BH, "Scalar values"); view_butt[21]->type(FL_TOGGLE_BUTTON); view_butt[21]->down_box(TOGGLE_BOX); view_butt[21]->selection_color(TOGGLE_COLOR); - view_butt[21]->callback(set_changed_cb, 0); view_butt[22] = new Fl_Check_Button(width / 2, 2 * WB + 7 * BH, BW / 2 - WB, BH, "Vector values"); view_butt[22]->type(FL_TOGGLE_BUTTON); view_butt[22]->down_box(TOGGLE_BOX); view_butt[22]->selection_color(TOGGLE_COLOR); - view_butt[22]->callback(set_changed_cb, 0); view_butt[23] = new Fl_Check_Button(width / 2, 2 * WB + 8 * BH, BW / 2 - WB, BH, "Tensor values"); view_butt[23]->type(FL_TOGGLE_BUTTON); view_butt[23]->down_box(TOGGLE_BOX); view_butt[23]->selection_color(TOGGLE_COLOR); - view_butt[23]->callback(set_changed_cb, 0); o->end(); } @@ -2449,7 +2408,6 @@ void GUI::create_option_window() view_value[30]->minimum(1); view_value[30]->maximum(256); view_value[30]->step(1); - view_value[30]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_iso[] = { {"Iso-values", 0, 0, 0}, @@ -2461,7 +2419,6 @@ void GUI::create_option_window() view_choice[0] = new Fl_Choice(2 * WB, 2 * WB + 2 * BH, IW, BH, "Intervals type"); view_choice[0]->menu(menu_iso); view_choice[0]->align(FL_ALIGN_RIGHT); - view_choice[0]->callback(set_changed_cb, 0); view_choice[0]->tooltip("(Alt+t)"); static Fl_Menu_Item menu_range[] = { @@ -2473,17 +2430,12 @@ void GUI::create_option_window() view_choice[7] = new Fl_Choice(2 * WB, 2 * WB + 3 * BH, IW, BH, "Range type"); view_choice[7]->menu(menu_range); view_choice[7]->align(FL_ALIGN_RIGHT); - // won't work, since the items have their own callbaks; the - // changed flag has to be set in view_options_custom_cb! - //view_choice[7]->callback(set_changed_cb, 0); view_value[31] = new Fl_Value_Input(2 * WB, 2 * WB + 4 * BH, IW, BH, "Custom minimum"); view_value[31]->align(FL_ALIGN_RIGHT); - view_value[31]->callback(set_changed_cb, 0); view_value[32] = new Fl_Value_Input(2 * WB, 2 * WB + 5 * BH, IW, BH, "Custom maximum"); view_value[32]->align(FL_ALIGN_RIGHT); - view_value[32]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_scale[] = { {"Linear", 0, 0, 0}, @@ -2494,13 +2446,11 @@ void GUI::create_option_window() view_choice[1] = new Fl_Choice(2 * WB, 2 * WB + 6 * BH, IW, BH, "Scale"); view_choice[1]->menu(menu_scale); view_choice[1]->align(FL_ALIGN_RIGHT); - view_choice[1]->callback(set_changed_cb, 0); view_butt[38] = new Fl_Check_Button(2 * WB, 2 * WB + 7 * BH, BW, BH, "Saturate values"); view_butt[38]->type(FL_TOGGLE_BUTTON); view_butt[38]->down_box(TOGGLE_BOX); view_butt[38]->selection_color(TOGGLE_COLOR); - view_butt[38]->callback(set_changed_cb, 0); view_range->end(); } @@ -2510,27 +2460,21 @@ void GUI::create_option_window() view_value[40] = new Fl_Value_Input(2 * WB, 2 * WB + 1 * BH, IW, BH, "X offset"); view_value[40]->align(FL_ALIGN_RIGHT); - view_value[40]->callback(set_changed_cb, 0); view_value[41] = new Fl_Value_Input(2 * WB, 2 * WB + 2 * BH, IW, BH, "Y offset"); view_value[41]->align(FL_ALIGN_RIGHT); - view_value[41]->callback(set_changed_cb, 0); view_value[42] = new Fl_Value_Input(2 * WB, 2 * WB + 3 * BH, IW, BH, "Z offset"); view_value[42]->align(FL_ALIGN_RIGHT); - view_value[42]->callback(set_changed_cb, 0); view_value[43] = new Fl_Value_Input(width / 2, 2 * WB + 1 * BH, IW, BH, "X raise"); view_value[43]->align(FL_ALIGN_RIGHT); - view_value[43]->callback(set_changed_cb, 0); view_value[44] = new Fl_Value_Input(width / 2, 2 * WB + 2 * BH, IW, BH, "Y raise"); view_value[44]->align(FL_ALIGN_RIGHT); - view_value[44]->callback(set_changed_cb, 0); view_value[45] = new Fl_Value_Input(width / 2, 2 * WB + 3 * BH, IW, BH, "Z raise"); view_value[45]->align(FL_ALIGN_RIGHT); - view_value[45]->callback(set_changed_cb, 0); o->end(); } @@ -2543,31 +2487,26 @@ void GUI::create_option_window() view_value[12]->step(0.01); view_value[12]->maximum(1.); view_value[12]->align(FL_ALIGN_RIGHT); - view_value[12]->callback(set_changed_cb, 0); view_choice[5] = new Fl_Choice(2 * WB, 2 * WB + 2 * BH, IW, BH, "Point display"); view_choice[5]->menu(menu_point_display); view_choice[5]->align(FL_ALIGN_RIGHT); - view_choice[5]->callback(set_changed_cb, 0); view_value[61] = new Fl_Value_Input(2 * WB, 2 * WB + 3 * BH, IW, BH, "Point size"); view_value[61]->minimum(0.1); view_value[61]->maximum(50); view_value[61]->step(0.1); view_value[61]->align(FL_ALIGN_RIGHT); - view_value[61]->callback(set_changed_cb, 0); view_choice[6] = new Fl_Choice(2 * WB, 2 * WB + 4 * BH, IW, BH, "Line display"); view_choice[6]->menu(menu_line_display); view_choice[6]->align(FL_ALIGN_RIGHT); - view_choice[6]->callback(set_changed_cb, 0); view_value[62] = new Fl_Value_Input(2 * WB, 2 * WB + 5 * BH, IW, BH, "Line width"); view_value[62]->minimum(0.1); view_value[62]->maximum(50); view_value[62]->step(0.1); view_value[62]->align(FL_ALIGN_RIGHT); - view_value[62]->callback(set_changed_cb, 0); { view_vector = new Fl_Group(2 * WB, 2 * WB + 6 * BH, width - 2 * WB, 5 * BH, 0); @@ -2583,7 +2522,6 @@ void GUI::create_option_window() view_choice[2] = new Fl_Choice(2 * WB, 2 * WB + 6 * BH, IW, BH, "Vector display"); view_choice[2]->menu(menu_vectype); view_choice[2]->align(FL_ALIGN_RIGHT); - view_choice[2]->callback(set_changed_cb, 0); view_push_butt[0] = new Fl_Button(2 * IW - 2 * WB, 2 * WB + 6 * BH, (int)(1.5*BB), BH, "Edit arrow shape"); @@ -2592,11 +2530,9 @@ void GUI::create_option_window() view_value[60]->maximum(500); view_value[60]->step(1); view_value[60]->align(FL_ALIGN_RIGHT); - view_value[60]->callback(set_changed_cb, 0); view_value[63] = new Fl_Value_Input(2 * WB, 2 * WB + 8 * BH, IW, BH, "Displacement factor"); view_value[63]->align(FL_ALIGN_RIGHT); - view_value[63]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_vecloc[] = { {"Cell centered", 0, 0, 0}, @@ -2606,7 +2542,6 @@ void GUI::create_option_window() view_choice[3] = new Fl_Choice(2 * WB, 2 * WB + 9 * BH, IW, BH, "Arrow location"); view_choice[3]->menu(menu_vecloc); view_choice[3]->align(FL_ALIGN_RIGHT); - view_choice[3]->callback(set_changed_cb, 0); static Fl_Menu_Item menu_tensor[] = { {"Von-Mises", 0, 0, 0}, @@ -2616,7 +2551,6 @@ void GUI::create_option_window() view_choice[4] = new Fl_Choice(2 * WB, 2 * WB + 10 * BH, IW, BH, "Tensor display"); view_choice[4]->menu(menu_tensor); view_choice[4]->align(FL_ALIGN_RIGHT); - view_choice[4]->callback(set_changed_cb, 0); view_vector->end(); } @@ -2632,26 +2566,22 @@ void GUI::create_option_window() view_butt[11]->type(FL_TOGGLE_BUTTON); view_butt[11]->down_box(TOGGLE_BOX); view_butt[11]->selection_color(TOGGLE_COLOR); - view_butt[11]->callback(set_changed_cb, 0); view_butt[9] = new Fl_Check_Button(2 * WB, 2 * WB + 2 * BH, BW, BH, "Use two-side lighting"); view_butt[9]->type(FL_TOGGLE_BUTTON); view_butt[9]->down_box(TOGGLE_BOX); view_butt[9]->selection_color(TOGGLE_COLOR); - view_butt[9]->callback(set_changed_cb, 0); view_butt[12] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW, BH, "Smooth normals"); view_butt[12]->type(FL_TOGGLE_BUTTON); view_butt[12]->down_box(TOGGLE_BOX); view_butt[12]->selection_color(TOGGLE_COLOR); - view_butt[12]->callback(set_changed_cb, 0); view_value[10] = new Fl_Value_Input(2 * WB, 2 * WB + 4 * BH, IW, BH, "Smoothing threshold angle"); view_value[10]->minimum(0.); view_value[10]->step(1.); view_value[10]->maximum(180.); view_value[10]->align(FL_ALIGN_RIGHT); - view_value[10]->callback(set_changed_cb, 0); o->end(); } @@ -2661,7 +2591,6 @@ void GUI::create_option_window() view_colorbar_window = new Colorbar_Window(2 * WB, 2 * WB + BH, width - 4 * WB, height - 4 * WB - BH); view_colorbar_window->end(); - // no 'set_changed' since Colorbar_Window has its own callbacks // this exposes the MacOSX clipping bug with a regular subwindow: //view_colorbar_window->hide(); diff --git a/Fltk/GUI.h b/Fltk/GUI.h index 692b524e65..81089f5d12 100644 --- a/Fltk/GUI.h +++ b/Fltk/GUI.h @@ -192,13 +192,12 @@ public: int view_number ; Fl_Window *view_window ; Fl_Group *view_2d, *view_range, *view_vector ; -#define VIEW_OPT_BUTT 100 - Fl_Check_Button *view_butt[VIEW_OPT_BUTT] ; - Fl_Value_Input *view_value[VIEW_OPT_BUTT] ; - Fl_Input *view_input[VIEW_OPT_BUTT] ; - Fl_Repeat_Button *view_butt_rep[VIEW_OPT_BUTT] ; - Fl_Button *view_push_butt[VIEW_OPT_BUTT] ; - Fl_Choice *view_choice[VIEW_OPT_BUTT] ; + Fl_Check_Button *view_butt[100] ; + Fl_Value_Input *view_value[100] ; + Fl_Input *view_input[100] ; + Fl_Repeat_Button *view_butt_rep[100] ; + Fl_Button *view_push_butt[100] ; + Fl_Choice *view_choice[100] ; Colorbar_Window *view_colorbar_window ; Fl_Return_Button *view_ok ; diff --git a/Mesh/2D_Mesh_Aniso.cpp b/Mesh/2D_Mesh_Aniso.cpp index ed66192b4b..06d61092ee 100644 --- a/Mesh/2D_Mesh_Aniso.cpp +++ b/Mesh/2D_Mesh_Aniso.cpp @@ -1,4 +1,4 @@ -// $Id: 2D_Mesh_Aniso.cpp,v 1.42 2004-06-20 23:25:32 geuzaine Exp $ +// $Id: 2D_Mesh_Aniso.cpp,v 1.43 2004-08-09 10:29:07 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -61,8 +61,15 @@ double Interpole_lcTriangle(Simplex * s, Vertex * vv) { double Xp, Yp, X[3], Y[3], det, u, v, q1, q2, q3; - if(THEM->BGM.Typ == ONFILE) - return Lc_XYZ(vv->Pos.X, vv->Pos.Y, 0., THEM); + if(THEM->BGM.Typ == ONFILE){ + Vertex *v2 = Create_Vertex(-1, vv->Pos.X, vv->Pos.Y, 0.0, 0.0, 0.0); + Vertex *dum; + Calcule_Z_Plan(&v2, &dum); + Projette_Inverse(&v2, &dum); + double val = Lc_XYZ(v2->Pos.X, v2->Pos.Y, v2->Pos.Z, THEM); + Free_Vertex(&v2, 0); + return val; + } Xp = vv->Pos.X; Yp = vv->Pos.Y; diff --git a/Plugin/Plugin.h b/Plugin/Plugin.h index b6de60036f..90b1649c92 100644 --- a/Plugin/Plugin.h +++ b/Plugin/Plugin.h @@ -115,7 +115,7 @@ public: virtual void receiveNewPhysicalGroup (int dim, int id) = 0;// add the given group to the solver data's virtual void readSolverFile ( const char * ) = 0; // load the solver input file related to the gmsh geo file virtual void writeSolverFile ( const char *) const = 0; // save the solver file - virtual bool GL_enhancePoint ( Vertex *v) {}; // enhance graphics for a giver geo point + virtual bool GL_enhancePoint ( Vertex *v) { return false; }; // enhance graphics for a giver geo point }; #endif diff --git a/Plugin/StructuralSolver.cpp b/Plugin/StructuralSolver.cpp index 8e410d047d..0f861fba52 100644 --- a/Plugin/StructuralSolver.cpp +++ b/Plugin/StructuralSolver.cpp @@ -33,7 +33,6 @@ Structural_BeamSection:: Structural_BeamSection( const char *direct, std::string Mesh *kk = THEM; Init_Mesh(&m); - size_t l = name.size(); char temp[256]; sprintf(temp, "%s/%s", direct,name.c_str()); // read the section (msh format) @@ -265,7 +264,8 @@ void StructuralSolver ::popupPropertiesForPhysicalEntity (int dim) _value[9]->align(FL_ALIGN_RIGHT); g[1]->end(); - } + } + o->end(); } #endif } @@ -412,5 +412,8 @@ bool StructuralSolver :: GL_enhancePoint ( Vertex *v) } } } + return true; +#else + return false; #endif } diff --git a/Plugin/StructuralSolver.h b/Plugin/StructuralSolver.h index be5dd38a78..ecd4e2f23d 100644 --- a/Plugin/StructuralSolver.h +++ b/Plugin/StructuralSolver.h @@ -84,7 +84,7 @@ struct PhysicalPointInfo struct PhysicalLineInfo { - PhysicalLineInfo() : fx1(0),fy1(0),fx2(0),fy2(0){} + PhysicalLineInfo() : fx1(0),fx2(0),fy1(0),fy2(0){} std::string material, section; double fx1,fx2,fy1,fy2; }; @@ -110,7 +110,7 @@ class StructuralSolver : public GMSH_Solve_Plugin public: StructuralSolver(); - ~StructuralSolver(); + virtual ~StructuralSolver(); virtual void getName(char *name) const; virtual void getInfos(char *author, char *copyright, char *helpText) const; diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index f7398f8519..61440a1356 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: gmsh.texi,v 1.128 2004-07-15 02:38:53 geuzaine Exp $ +@c $Id: gmsh.texi,v 1.129 2004-08-09 10:29:07 geuzaine Exp $ @c @c Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle @c @@ -1891,8 +1891,8 @@ mesh, use the @code{-bgm} command-line option (@pxref{Command-line options}) or select `Apply as background mesh' in the post-processing view option menu. -Background meshes are supported by all algorithms except the 2D anisotropic -algorithm and the algorithms based on Netgen. +Background meshes are supported by all algorithms except the algorithms +based on Netgen. @end enumerate Here are the mesh commands that are related to the specification of diff --git a/doc/texinfo/opt_general.texi b/doc/texinfo/opt_general.texi index d5cb01ddf3..92e5d77207 100644 --- a/doc/texinfo/opt_general.texi +++ b/doc/texinfo/opt_general.texi @@ -505,7 +505,7 @@ Default value: @code{0}@* Saved in: @code{-} @item General.RotationCenterGravity -Rotate around the center of gravity instead of (RotationCenterX, RotationCenterY, RotationCenterZ)@* +Rotate around the (pseudo) center of mass instead of (RotationCenterX, RotationCenterY, RotationCenterZ)@* Default value: @code{1}@* Saved in: @code{General.OptionsFileName} -- GitLab