diff --git a/Box/Main.cpp b/Box/Main.cpp index 3db67abcdb3e72ab0fd6116ce20719dff49422be..895f25ae7f6f4d38d5eac2a8703528e4885dc84b 100644 --- a/Box/Main.cpp +++ b/Box/Main.cpp @@ -1,6 +1,6 @@ -// $Id: Main.cpp,v 1.51 2005-10-24 15:38:13 geuzaine Exp $ +// $Id: Main.cpp,v 1.52 2006-01-06 00:34:20 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Box/Makefile b/Box/Makefile index 7ffdf3625bef82ee46fb1b307140d391b1d007f3..7d45dc5b1d6458862af1290b1eb9959d4e4d2305 100644 --- a/Box/Makefile +++ b/Box/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.28 2005-06-07 21:12:44 geuzaine Exp $ +# $Id: Makefile,v 1.29 2006-01-06 00:34:20 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Common/AdaptiveViews.cpp b/Common/AdaptiveViews.cpp index afb1cd8aefc739d868858adff4ee5385478b572a..1ffca99b8a2ffc848d3b0d5d17ed3142072d0ddb 100644 --- a/Common/AdaptiveViews.cpp +++ b/Common/AdaptiveViews.cpp @@ -1,5 +1,5 @@ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/AdaptiveViews.h b/Common/AdaptiveViews.h index 8c76f88959cd9063adbbdf9f49ab206cf5392dff..29dee4923dde50f3291894a03050ef4df1c27e6d 100644 --- a/Common/AdaptiveViews.h +++ b/Common/AdaptiveViews.h @@ -1,7 +1,7 @@ #ifndef _ADAPTIVE_VIEWS_H_ #define _ADAPTIVE_VIEWS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/ColorTable.cpp b/Common/ColorTable.cpp index 8bc3d9831f26cc6af6848911b2a0a53b0467a300..42dffae9487b5d2266972433d14f0cb5aac2875b 100644 --- a/Common/ColorTable.cpp +++ b/Common/ColorTable.cpp @@ -1,6 +1,6 @@ -// $Id: ColorTable.cpp,v 1.30 2005-12-22 20:42:41 geuzaine Exp $ +// $Id: ColorTable.cpp,v 1.31 2006-01-06 00:34:20 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/ColorTable.h b/Common/ColorTable.h index 94dabc9f31af69573baf8980525f09ae050da7df..096057512a4e9c61a29de3df08bd1947fbc739f5 100644 --- a/Common/ColorTable.h +++ b/Common/ColorTable.h @@ -1,7 +1,7 @@ #ifndef _COLORTABLE_H_ #define _COLORTABLE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Colors.h b/Common/Colors.h index ffee871b65b38dad3e1da1baf4babfbd1fbc9c03..701c565f3b08ad6eba3b35ed91c4b6b3a911b4ae 100644 --- a/Common/Colors.h +++ b/Common/Colors.h @@ -1,7 +1,7 @@ #ifndef _COLORS_H_ #define _COLORS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index cf23789aa74f36459ba657638a12fb98356e672a..2e542c188a87a9b2606a1a0de2d7de04e283eebe 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,6 +1,6 @@ -// $Id: CommandLine.cpp,v 1.66 2005-10-24 15:38:13 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.67 2006-01-06 00:34:20 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -45,7 +45,7 @@ extern Context_T CTX; extern Mesh *THEM; char gmsh_progname[] = "Gmsh, a 3D mesh generator with pre- and post-processing facilities" ; -char gmsh_copyright[] = "Copyright (C) 1997-2005 Christophe Geuzaine and Jean-Francois Remacle"; +char gmsh_copyright[] = "Copyright (C) 1997-2006 Christophe Geuzaine and Jean-Francois Remacle"; char gmsh_version[] = "Version : " ; char gmsh_license[] = "License : " GMSH_SHORT_LICENSE; char gmsh_gui[] = "GUI toolkit : " ; diff --git a/Common/CommandLine.h b/Common/CommandLine.h index cf255086994888490ca6d098b6913d8ac11055ec..129f59cc690cc014c2b8a85853e9725067196e24 100644 --- a/Common/CommandLine.h +++ b/Common/CommandLine.h @@ -1,7 +1,7 @@ #ifndef _COMMAND_LINE_H_ #define _COMMAND_LINE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Context.cpp b/Common/Context.cpp index 0b2e1f69880c267d558ca8297f036b996791ef94..38bf1ac53bdbb2bfb7f4370af52e8f7b4982838c 100644 --- a/Common/Context.cpp +++ b/Common/Context.cpp @@ -1,6 +1,6 @@ -// $Id: Context.cpp,v 1.56 2005-12-08 20:35:34 geuzaine Exp $ +// $Id: Context.cpp,v 1.57 2006-01-06 00:34:20 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Context.h b/Common/Context.h index a040095a6e652f4704e4e2e36cee6e742dd5d099..f9eaca9e0dc9bc83193426b4bbcb4fad59f57e03 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -1,7 +1,7 @@ #ifndef _CONTEXT_H_ #define _CONTEXT_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ class Context_T { public : - int big_endian; // is the machine big-endian? + // general options char filename[256]; // the name of the currently opened file @@ -135,6 +135,8 @@ public : int forced_bbox; // dynamic variable tracking if the bbox is currently imposed + int enable_mouse_selection; // enable selection using the mouse + // geometry options struct{ int vis_type; @@ -148,6 +150,7 @@ public : double normals, tangents; double scaling_factor; int auto_coherence; + double snap[3]; } geom; // mesh options @@ -243,6 +246,8 @@ public : void setQuaternionFromEulerAngles(void); void setEulerAnglesFromRotationMatrix(void); + int big_endian; // is the machine big-endian? + // how RGBA values are packed and unpacked into/from an unsigned // integer to be fed to glColor4ubv (depends on machine byte // ordering!): diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 761146b26a91e5450d57097fe913f083f8e03626..0011a293c147b4a49b3379a3ca1495c25f8ca161 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1,7 +1,7 @@ #ifndef _DEFAULT_OPTIONS_H_ #define _DEFAULT_OPTIONS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -118,7 +118,7 @@ StringXString SolverOptions_String[] = { "Name of solver 0" }, { F|O, "Help0" , opt_solver_help0 , "A General environment for the treatment of\nDiscrete Problems\n\n" - "Copyright (C) 1997-2005\nPatrick Dular and Christophe Geuzaine\n\n" + "Copyright (C) 1997-2006\nPatrick Dular and Christophe Geuzaine\n\n" "Visit http://www.geuz.org/getdp/ for more info", "Help string for solver 0" }, { F|O, "Executable0" , opt_solver_executable0 , @@ -808,6 +808,12 @@ StringXNumber GeometryOptions_Number[] = { { F|O, "ScalingFactor" , opt_geometry_scaling_factor , 1.0 , "Global geometry scaling factor" }, + { F|O, "SnapX" , opt_geometry_snap0 , 0.1 , + "Snapping grid spacing along the X-axis" }, + { F|O, "SnapY" , opt_geometry_snap1 , 0.1 , + "Snapping grid spacing along the Y-axis" }, + { F|O, "SnapZ" , opt_geometry_snap2 , 0.1 , + "Snapping grid spacing along the Z-axis" }, { F|O, "Surfaces" , opt_geometry_surfaces , 0. , "Display geometry surfaces?" }, { F|O, "SurfaceNumbers" , opt_geometry_surfaces_num , 0. , @@ -879,7 +885,7 @@ StringXNumber MeshOptions_Number[] = { "Show the construction of 2D anisotropic mesh in real time" }, { F|O, "LabelType" , opt_mesh_label_type , 0. , - "Type of element label (0=element number, 1=elementary entity number, 2=physical entity number, 3=partition number)" }, + "Type of element label (0=element number, 1=elementary entity number, 2=physical entity number, 3=partition number, 4=coordinates)" }, { F|O, "Light" , opt_mesh_light , 0. , "Enable lighting for the mesh" }, { F|O, "LightLines" , opt_mesh_light_lines , 1. , @@ -1398,16 +1404,16 @@ StringXColor GeometryOptions_Color[] = { {128, 128, 128, 255}, {128, 128, 128, 255}, {0, 0, 0, 255}, "Normal geometry volume color" }, { F|O, "PointsSelect" , opt_geometry_color_points_select , - {255, 0, 0, 255}, {255, 0, 0, 255}, {0, 0, 0, 255}, + {255, 0, 0, 255}, {255, 0, 0, 255}, {255, 0, 0, 255}, "Selected geometry point color" }, { F|O, "LinesSelect" , opt_geometry_color_lines_select , - {255, 0, 0, 255}, {255, 0, 0, 255}, {0, 0, 0, 255}, + {255, 0, 0, 255}, {255, 0, 0, 255}, {255, 0, 0, 255}, "Selected geometry curve color" }, { F|O, "SurfacesSelect" , opt_geometry_color_surfaces_select , - {255, 0, 0, 255}, {255, 0, 0, 255}, {0, 0, 0, 255}, + {255, 0, 0, 255}, {255, 0, 0, 255}, {255, 0, 0, 255}, "Selected geometry surface color" }, { F|O, "VolumesSelect" , opt_geometry_color_volumes_select , - {255, 0, 0, 255}, {255, 0, 0, 255}, {0, 0, 0, 255}, + {255, 0, 0, 255}, {255, 0, 0, 255}, {255, 0, 0, 255}, "Selected geometry volume color" }, { F|O, "Tangents" , opt_geometry_color_tangents , {255, 255, 0, 255}, {255, 255, 0, 255}, {0, 0, 0, 255}, diff --git a/Common/Gmsh.h b/Common/Gmsh.h index dd14dfb2b2702bc0459cf099fbce85870044e36d..799c2ca46b4157653444181e5a2435656e63aa69 100644 --- a/Common/Gmsh.h +++ b/Common/Gmsh.h @@ -1,7 +1,7 @@ #ifndef _GMSH_H_ #define _GMSH_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/GmshUI.h b/Common/GmshUI.h index b20d4c46a6175329e32e8c58fe82663ad84605e2..a7d371bfff06816c9f7012a696f1e060e6e7f1d2 100644 --- a/Common/GmshUI.h +++ b/Common/GmshUI.h @@ -1,7 +1,7 @@ #ifndef _GMSH_UI_H_ #define _GMSH_UI_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/License.cpp b/Common/License.cpp index fd8535c4d83f8dfb1c9dffe067cb2220f197ca94..6778ef76e9cd3f0cde70fdb64b53d165a9f7849e 100644 --- a/Common/License.cpp +++ b/Common/License.cpp @@ -1,6 +1,6 @@ -// $Id: License.cpp,v 1.5 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: License.cpp,v 1.6 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Makefile b/Common/Makefile index 37817b14bb046a16089b75175b5fa8f114febe82..764793ac99fa2733dc7a2f7712e21d43f82fb6ac 100644 --- a/Common/Makefile +++ b/Common/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.78 2005-12-19 02:35:03 geuzaine Exp $ +# $Id: Makefile,v 1.79 2006-01-06 00:34:21 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Common/Message.h b/Common/Message.h index 1055815a16f44fd4c59b310391bfdb053804c546..3b440a4c4da8ab6799df3a3e765da4b9374e3813 100644 --- a/Common/Message.h +++ b/Common/Message.h @@ -1,7 +1,7 @@ #ifndef _MESSAGE_H_ #define _MESSAGE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Options.cpp b/Common/Options.cpp index 8bf4d3b4e643881aee5adbee7f1a2155659c6c24..ccbdf0998307608ea96fed96f607ceb5bb63d928 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,6 +1,6 @@ -// $Id: Options.cpp,v 1.269 2005-12-22 20:42:41 geuzaine Exp $ +// $Id: Options.cpp,v 1.270 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -158,6 +158,7 @@ void Init_Options(int num) #endif CTX.solver.listen = 0; CTX.forced_bbox = 0; + CTX.enable_mouse_selection = 1; } void ReInit_Options(int num) @@ -214,7 +215,7 @@ void Print_OptionCategory(int level, int diff, char *cat, FILE * file) } } -void Print_Options(int num, int level, int diff, char *filename) +void Print_Options(int num, int level, int diff, int help, char *filename) { FILE *file; char tmp[256]; @@ -256,72 +257,72 @@ void Print_Options(int num, int level, int diff, char *filename) } Print_OptionCategory(level, diff, "General options (strings)", file); - Print_StringOptions(num, level, diff, GeneralOptions_String, "General.", file); + Print_StringOptions(num, level, diff, help, GeneralOptions_String, "General.", file); Print_OptionCategory(level, diff, "General options (numbers)", file); - Print_NumberOptions(num, level, diff, GeneralOptions_Number, "General.", file); + Print_NumberOptions(num, level, diff, help, GeneralOptions_Number, "General.", file); Print_OptionCategory(level, diff, "General options (colors)", file); - Print_ColorOptions(num, level, diff, GeneralOptions_Color, "General.", file); + Print_ColorOptions(num, level, diff, help, GeneralOptions_Color, "General.", file); Print_OptionCategory(level, diff, "Geometry options (strings)", file); - Print_StringOptions(num, level, diff, GeometryOptions_String, "Geometry.", file); + Print_StringOptions(num, level, diff, help, GeometryOptions_String, "Geometry.", file); Print_OptionCategory(level, diff, "Geometry options (numbers)", file); - Print_NumberOptions(num, level, diff, GeometryOptions_Number, "Geometry.", file); + Print_NumberOptions(num, level, diff, help, GeometryOptions_Number, "Geometry.", file); Print_OptionCategory(level, diff, "Geometry options (colors)", file); - Print_ColorOptions(num, level, diff, GeometryOptions_Color, "Geometry.", file); + Print_ColorOptions(num, level, diff, help, GeometryOptions_Color, "Geometry.", file); Print_OptionCategory(level, diff, "Mesh options (strings)", file); - Print_StringOptions(num, level, diff, MeshOptions_String, "Mesh.", file); + Print_StringOptions(num, level, diff, help, MeshOptions_String, "Mesh.", file); Print_OptionCategory(level, diff, "Mesh options (numbers)", file); - Print_NumberOptions(num, level, diff, MeshOptions_Number, "Mesh.", file); + Print_NumberOptions(num, level, diff, help, MeshOptions_Number, "Mesh.", file); Print_OptionCategory(level, diff, "Mesh options (colors)", file); - Print_ColorOptions(num, level, diff, MeshOptions_Color, "Mesh.", file); + Print_ColorOptions(num, level, diff, help, MeshOptions_Color, "Mesh.", file); Print_OptionCategory(level, diff, "Solver options (strings)", file); - Print_StringOptions(num, level, diff, SolverOptions_String, "Solver.", file); + Print_StringOptions(num, level, diff, help, SolverOptions_String, "Solver.", file); Print_OptionCategory(level, diff, "Solver options (numbers)", file); - Print_NumberOptions(num, level, diff, SolverOptions_Number, "Solver.", file); + Print_NumberOptions(num, level, diff, help, SolverOptions_Number, "Solver.", file); Print_OptionCategory(level, diff, "Solver options (colors)", file); - Print_ColorOptions(num, level, diff, SolverOptions_Color, "Solver.", file); + Print_ColorOptions(num, level, diff, help, SolverOptions_Color, "Solver.", file); Print_OptionCategory(level, diff, "Post-processing options (strings)", file); - Print_StringOptions(num, level, diff, PostProcessingOptions_String, + Print_StringOptions(num, level, diff, help, PostProcessingOptions_String, "PostProcessing.", file); Print_OptionCategory(level, diff, "Post-processing options (numbers)", file); - Print_NumberOptions(num, level, diff, PostProcessingOptions_Number, + Print_NumberOptions(num, level, diff, help, PostProcessingOptions_Number, "PostProcessing.", file); Print_OptionCategory(level, diff, "Post-processing options (colors)", file); - Print_ColorOptions(num, level, diff, PostProcessingOptions_Color, + Print_ColorOptions(num, level, diff, help, PostProcessingOptions_Color, "PostProcessing.", file); if(level & GMSH_FULLRC) { for(i = 0; i < List_Nbr(CTX.post.list); i++) { sprintf(tmp, "View[%d].", i); Print_OptionCategory(level, diff, "View options (strings)", file); - Print_StringOptions(i, level, diff, ViewOptions_String, tmp, file); + Print_StringOptions(i, level, diff, help, ViewOptions_String, tmp, file); Print_OptionCategory(level, diff, "View options (numbers)", file); - Print_NumberOptions(i, level, diff, ViewOptions_Number, tmp, file); + Print_NumberOptions(i, level, diff, help, ViewOptions_Number, tmp, file); Print_OptionCategory(level, diff, "View options (colors)", file); - Print_ColorOptions(i, level, diff, ViewOptions_Color, tmp, file); + Print_ColorOptions(i, level, diff, help, ViewOptions_Color, tmp, file); strcat(tmp, "ColorTable"); Print_ColorTable(i, diff, tmp, file); } } else if(level & GMSH_OPTIONSRC) { Print_OptionCategory(level, diff, "View options (strings)", file); - Print_StringOptions(num, level, diff, ViewOptions_String, "View.", file); + Print_StringOptions(num, level, diff, help, ViewOptions_String, "View.", file); Print_OptionCategory(level, diff, "View options (numbers)", file); - Print_NumberOptions(num, level, diff, ViewOptions_Number, "View.", file); + Print_NumberOptions(num, level, diff, help, ViewOptions_Number, "View.", file); Print_OptionCategory(level, diff, "View options (colors)", file); - Print_ColorOptions(num, level, diff, ViewOptions_Color, "View.", file); + Print_ColorOptions(num, level, diff, help, ViewOptions_Color, "View.", file); Print_ColorTable(num, diff, "View.ColorTable", file); } Print_OptionCategory(level, diff, "Print options (strings)", file); - Print_StringOptions(num, level, diff, PrintOptions_String, "Print.", file); + Print_StringOptions(num, level, diff, help, PrintOptions_String, "Print.", file); Print_OptionCategory(level, diff, "Print options (numbers)", file); - Print_NumberOptions(num, level, diff, PrintOptions_Number, "Print.", file); + Print_NumberOptions(num, level, diff, help, PrintOptions_Number, "Print.", file); Print_OptionCategory(level, diff, "Print options (colors)", file); - Print_ColorOptions(num, level, diff, PrintOptions_Color, "Print.", file); + Print_ColorOptions(num, level, diff, help, PrintOptions_Color, "Print.", file); if(filename) { Msg(INFO, "Wrote option file '%s'", filename); @@ -537,16 +538,17 @@ void *Get_StringOption(char *str, StringXString s[]) return (void *)s[i].function; } -void Print_StringOptions(int num, int level, int diff, StringXString s[], - char *prefix, FILE * file) +void Print_StringOptions(int num, int level, int diff, int help, + StringXString s[], char *prefix, FILE * file) { int i = 0; char tmp[1024]; while(s[i].str) { if(s[i].level & level) { if(!diff || strcmp(s[i].function(num, GMSH_GET, NULL), s[i].def)){ - sprintf(tmp, "%s%s = \"%s\"; // %s", prefix, - s[i].str, s[i].function(num, GMSH_GET, NULL), s[i].help); + sprintf(tmp, "%s%s = \"%s\";%s%s", prefix, + s[i].str, s[i].function(num, GMSH_GET, NULL), + help ? " // " : "", help ? s[i].help : ""); if(file) fprintf(file, "%s\n", tmp); else @@ -638,16 +640,17 @@ void *Get_NumberOption(char *str, StringXNumber s[]) } } -void Print_NumberOptions(int num, int level, int diff, StringXNumber s[], - char *prefix, FILE * file) +void Print_NumberOptions(int num, int level, int diff, int help, + StringXNumber s[], char *prefix, FILE * file) { int i = 0; char tmp[1024]; while(s[i].str) { if(s[i].level & level) { if(!diff || (s[i].function(num, GMSH_GET, 0) != s[i].def)){ - sprintf(tmp, "%s%s = %.16g; // %s", prefix, - s[i].str, s[i].function(num, GMSH_GET, 0), s[i].help); + sprintf(tmp, "%s%s = %.16g;%s%s", prefix, + s[i].str, s[i].function(num, GMSH_GET, 0), + help ? " // " : "", help ? s[i].help : ""); if(file) fprintf(file, "%s\n", tmp); else @@ -741,8 +744,8 @@ void *Get_ColorOption(char *str, StringXColor s[]) return (void *)s[i].function; } -void Print_ColorOptions(int num, int level, int diff, StringXColor s[], - char *prefix, FILE * file) +void Print_ColorOptions(int num, int level, int diff, int help, + StringXColor s[], char *prefix, FILE * file) { int i = 0; char tmp[1024]; @@ -764,11 +767,12 @@ void Print_ColorOptions(int num, int level, int diff, StringXColor s[], break; } if(!diff || (s[i].function(num, GMSH_GET, 0) != def)){ - sprintf(tmp, "%sColor.%s = {%d,%d,%d}; // %s", + sprintf(tmp, "%sColor.%s = {%d,%d,%d};%s%s", prefix, s[i].str, CTX.UNPACK_RED(s[i].function(num, GMSH_GET, 0)), CTX.UNPACK_GREEN(s[i].function(num, GMSH_GET, 0)), - CTX.UNPACK_BLUE(s[i].function(num, GMSH_GET, 0)), s[i].help); + CTX.UNPACK_BLUE(s[i].function(num, GMSH_GET, 0)), + help ? " // " : "", help ? s[i].help : ""); if(file) fprintf(file, "%s\n", tmp); else @@ -3964,6 +3968,39 @@ double opt_geometry_scaling_factor(OPT_ARGS_NUM) return CTX.geom.scaling_factor; } +double opt_geometry_snap0(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.geom.snap[0] = val; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) + WID->context_geometry_value[0]->value(CTX.geom.snap[0]); +#endif + return CTX.geom.snap[0]; +} + +double opt_geometry_snap1(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.geom.snap[1] = val; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) + WID->context_geometry_value[1]->value(CTX.geom.snap[1]); +#endif + return CTX.geom.snap[1]; +} + +double opt_geometry_snap2(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.geom.snap[2] = val; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) + WID->context_geometry_value[2]->value(CTX.geom.snap[2]); +#endif + return CTX.geom.snap[2]; +} + double opt_mesh_optimize(OPT_ARGS_NUM) { if(action & GMSH_SET) @@ -4124,7 +4161,7 @@ double opt_mesh_label_type(OPT_ARGS_NUM) { if(action & GMSH_SET) { CTX.mesh.label_type = (int)val; - if(CTX.mesh.label_type < 0 || CTX.mesh.label_type > 3) + if(CTX.mesh.label_type < 0 || CTX.mesh.label_type > 4) CTX.mesh.label_type = 0; } #if defined(HAVE_FLTK) diff --git a/Common/Options.h b/Common/Options.h index 9c482a1287903d46c0f9f16cbd227259cc34cd58..4b46d1bb3f56129dcc2920af513327e219d77062 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -1,7 +1,7 @@ #ifndef _OPTIONS_H_ #define _OPTIONS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -402,6 +402,9 @@ double opt_geometry_circle_points(OPT_ARGS_NUM); double opt_geometry_circle_warning(OPT_ARGS_NUM); double opt_geometry_extrude_spline_points(OPT_ARGS_NUM); double opt_geometry_scaling_factor(OPT_ARGS_NUM); +double opt_geometry_snap0(OPT_ARGS_NUM); +double opt_geometry_snap1(OPT_ARGS_NUM); +double opt_geometry_snap2(OPT_ARGS_NUM); double opt_mesh_optimize(OPT_ARGS_NUM); double opt_mesh_quality(OPT_ARGS_NUM); double opt_mesh_normals(OPT_ARGS_NUM); @@ -725,10 +728,10 @@ typedef struct { char *help ; } StringXColor ; -void Init_Options (int num); -void Init_Options_GUI (int num); -void ReInit_Options (int num); -void Print_Options(int num, int level, int diff, char *filename); +void Init_Options(int num); +void Init_Options_GUI(int num); +void ReInit_Options(int num); +void Print_Options(int num, int level, int diff, int help, char *filename); void Print_OptionsDoc(); StringXString * Get_StringOptionCategory(char * cat); @@ -747,12 +750,12 @@ void * Get_StringOption(char *str, StringXString s[]); void * Get_NumberOption(char *str, StringXNumber s[]); void * Get_ColorOption(char *str, StringXColor s[]); -void Print_StringOptions(int num, int level, int diff, StringXString s[], - char *prefix, FILE *file); -void Print_NumberOptions(int num, int level, int diff, StringXNumber s[], - char *prefix, FILE *file); -void Print_ColorOptions(int num, int level, int diff, StringXColor s[], - char *prefix, FILE *file); +void Print_StringOptions(int num, int level, int diff, int help, + StringXString s[], char *prefix, FILE *file); +void Print_NumberOptions(int num, int level, int diff, int help, + StringXNumber s[], char *prefix, FILE *file); +void Print_ColorOptions(int num, int level, int diff, int help, + StringXColor s[], char *prefix, FILE *file); void Print_StringOptionsDoc(StringXString s[], char *prefix, FILE * file); void Print_NumberOptionsDoc(StringXNumber s[], char *prefix, FILE * file); diff --git a/Common/SmoothNormals.cpp b/Common/SmoothNormals.cpp index 043e7a5fd6a5cdfba1c3a19bc7cd5c3d97acd678..c6fbb1a49e75bcedd556cc2f03263ed5d5eff9b3 100644 --- a/Common/SmoothNormals.cpp +++ b/Common/SmoothNormals.cpp @@ -1,6 +1,6 @@ -// $Id: SmoothNormals.cpp,v 1.3 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: SmoothNormals.cpp,v 1.4 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/SmoothNormals.h b/Common/SmoothNormals.h index bad67f0bfca7c0b791a217bc2c18843b9b7234f7..4418e52236f438b0300943adaad0884c3510dc0d 100644 --- a/Common/SmoothNormals.h +++ b/Common/SmoothNormals.h @@ -1,7 +1,7 @@ #ifndef _SMOOTH_NORMALS_H_ #define _SMOOTH_NORMALS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Timer.cpp b/Common/Timer.cpp index 1bef406c9c69355d9e5cef04a4398882ee0b9d44..9affa3423a54e3699fac787eee88751275bf802f 100644 --- a/Common/Timer.cpp +++ b/Common/Timer.cpp @@ -1,6 +1,6 @@ -// $Id: Timer.cpp,v 1.15 2005-08-31 21:44:44 geuzaine Exp $ +// $Id: Timer.cpp,v 1.16 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Timer.h b/Common/Timer.h index 91fa66410f68528d253f03f6ad3866dfd0b01de6..4970006ebb57b9622cccb8934d4594e54920b0a0 100644 --- a/Common/Timer.h +++ b/Common/Timer.h @@ -1,7 +1,7 @@ #ifndef _TIMER_H_ #define _TIMER_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/VertexArray.cpp b/Common/VertexArray.cpp index 7fd207970739644768eb6ba1170b6ac1349db751..7acb2399806bb39ff55750ac4b371fec17021a4b 100644 --- a/Common/VertexArray.cpp +++ b/Common/VertexArray.cpp @@ -1,6 +1,6 @@ -// $Id: VertexArray.cpp,v 1.9 2005-12-22 20:42:41 geuzaine Exp $ +// $Id: VertexArray.cpp,v 1.10 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/VertexArray.h b/Common/VertexArray.h index 2d31f67ed3b4643caecbd96382c9bffd70f8e310..7ee16f1748081a9379ec2ea4158ced9f9a26abd2 100644 --- a/Common/VertexArray.h +++ b/Common/VertexArray.h @@ -1,7 +1,7 @@ #ifndef _VERTEX_ARRAY_H_ #define _VERTEX_ARRAY_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Views.cpp b/Common/Views.cpp index db37e25dcde40cf48325ba7b5e2fac24941b0a23..6aae3f70b901a74a84d4750887cd183db45ab965 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,6 +1,6 @@ -// $Id: Views.cpp,v 1.179 2005-11-24 19:59:00 geuzaine Exp $ +// $Id: Views.cpp,v 1.180 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Views.h b/Common/Views.h index 8428f4946c93051be261116ef04d1caeb796ed0c..857fd2ff590de7d5a46a08c16124b80538ed89cf 100644 --- a/Common/Views.h +++ b/Common/Views.h @@ -1,7 +1,7 @@ #ifndef _VIEWS_H_ #define _VIEWS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Visibility.cpp b/Common/Visibility.cpp index 46a93d88ee6c334f0f5c64ea63f625e22d0715b9..1fd3ad5d5a86a2b26f72fec5014ff8aa7a008697 100644 --- a/Common/Visibility.cpp +++ b/Common/Visibility.cpp @@ -1,6 +1,6 @@ -// $Id: Visibility.cpp,v 1.11 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: Visibility.cpp,v 1.12 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Common/Visibility.h b/Common/Visibility.h index 00182b4109d447ad7d3674d221640c5006b8e84c..91504bd174b0a1733050e3bce4dc1c53f3ab5b1b 100644 --- a/Common/Visibility.h +++ b/Common/Visibility.h @@ -1,7 +1,7 @@ #ifndef _VISIBILITY_H_ #define _VISIBILITY_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/List.cpp b/DataStr/List.cpp index d15f081d331e833e71c4c8eb82d21da96ce76c25..ad5c4e4e8ab7d87da6794620abb602447997e0a1 100644 --- a/DataStr/List.cpp +++ b/DataStr/List.cpp @@ -1,6 +1,6 @@ -// $Id: List.cpp,v 1.36 2005-04-06 19:09:10 geuzaine Exp $ +// $Id: List.cpp,v 1.37 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/List.h b/DataStr/List.h index cf44adb2d2182aacde7770393cf741aba612554f..03a2703e401add8b1d216e7bf889e0ce56510426 100644 --- a/DataStr/List.h +++ b/DataStr/List.h @@ -1,7 +1,7 @@ #ifndef _LIST_H_ #define _LIST_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Makefile b/DataStr/Makefile index 34c465bde24eab5b9c85c3da52a79a34fa4ec7ef..cc068dacd2d9686d4ba5dbbe2fce2b37546268ec 100644 --- a/DataStr/Makefile +++ b/DataStr/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.28 2005-12-19 02:35:03 geuzaine Exp $ +# $Id: Makefile,v 1.29 2006-01-06 00:34:21 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/DataStr/Malloc.cpp b/DataStr/Malloc.cpp index c075658c13531a4cd60ebf39b37eaf1841d99437..5262b3048fa8e4107ae54c260660ca62a52d7e47 100644 --- a/DataStr/Malloc.cpp +++ b/DataStr/Malloc.cpp @@ -1,6 +1,6 @@ -// $Id: Malloc.cpp,v 1.18 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: Malloc.cpp,v 1.19 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Malloc.h b/DataStr/Malloc.h index 06b7bca560a46effdeda0eea73e5da15db655cfb..2c0ca21eb5f315519f07a21c96264a86a16f22b1 100644 --- a/DataStr/Malloc.h +++ b/DataStr/Malloc.h @@ -1,7 +1,7 @@ #ifndef _MALLOC_H_ #define _MALLOC_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/SafeIO.cpp b/DataStr/SafeIO.cpp index ffe92cd866aa7ec9fb39fefc714e276e1653cb10..e5f2efadc25c94a1bf541f034277687e17f70cf1 100644 --- a/DataStr/SafeIO.cpp +++ b/DataStr/SafeIO.cpp @@ -1,6 +1,6 @@ -// $Id: SafeIO.cpp,v 1.5 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: SafeIO.cpp,v 1.6 2006-01-06 00:34:21 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/SafeIO.h b/DataStr/SafeIO.h index 5c2df11a5fe7c34df4270435063f6f1c46aa3e7c..75739abacf43874e39142cd534addd687ffd7ee0 100644 --- a/DataStr/SafeIO.h +++ b/DataStr/SafeIO.h @@ -1,6 +1,6 @@ #ifndef _SAFE_IO_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Tools.cpp b/DataStr/Tools.cpp index 00c06ccb9c4a0de73d783c68bc13f9214b314ece..20181e57f6ed6d00caa9199aee5b06a686fcdf77 100644 --- a/DataStr/Tools.cpp +++ b/DataStr/Tools.cpp @@ -1,6 +1,6 @@ -// $Id: Tools.cpp,v 1.14 2005-05-27 19:35:06 geuzaine Exp $ +// $Id: Tools.cpp,v 1.15 2006-01-06 00:34:22 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Tools.h b/DataStr/Tools.h index 155721114e22d19e51a6c6f618f4e6629321e45b..24f1a416b8491370fd0200044b1b69f22dd39330 100644 --- a/DataStr/Tools.h +++ b/DataStr/Tools.h @@ -1,7 +1,7 @@ #ifndef _TOOLS_H_ #define _TOOLS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Tree.cpp b/DataStr/Tree.cpp index 3fee24ac591049693bc8e060c456532c2dac91d2..84babdfaf7cd5fad90b958f7e83c3665cd5b5607 100644 --- a/DataStr/Tree.cpp +++ b/DataStr/Tree.cpp @@ -1,6 +1,6 @@ -// $Id: Tree.cpp,v 1.19 2005-01-01 19:35:27 geuzaine Exp $ +// $Id: Tree.cpp,v 1.20 2006-01-06 00:34:22 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/DataStr/Tree.h b/DataStr/Tree.h index 99d3751bdec4656bd2eb82437f22a79731b98c9a..407d02b9e4f32889790776b67e438a07bb7d34c4 100644 --- a/DataStr/Tree.h +++ b/DataStr/Tree.h @@ -1,7 +1,7 @@ #ifndef _TREE_H_ #define _TREE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Bitmaps.h b/Fltk/Bitmaps.h index ec615af45b768eb21774d45d8272ad00f2e169a8..5d73aabd597fca91ee2ffcd7e344776b59bc5edb 100644 --- a/Fltk/Bitmaps.h +++ b/Fltk/Bitmaps.h @@ -1,7 +1,7 @@ #ifndef _BITMAPS_H_ #define _BITMAPS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index e67b477e0e9089dd8d8959df4bfd46a61b05442d..8168a3d7e4889266cb017181c267e4d26d65c4ec 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,6 +1,6 @@ -// $Id: Callbacks.cpp,v 1.389 2005-12-22 20:42:41 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.390 2006-01-06 00:34:22 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -23,6 +23,7 @@ #include <sys/stat.h> #include <unistd.h> #include <signal.h> +#include <time.h> #include <map> #include "BDS.h" @@ -460,9 +461,23 @@ void status_xyz1p_cb(CALLBACK_ARGS) Draw(); } else if(!strcmp(str, "?")){ // display options - Print_Options(0, GMSH_FULLRC, false, NULL); + Print_Options(0, GMSH_FULLRC, 0, 1, NULL); WID->create_message_window(); } + else if(!strcmp(str, "S")){ // mouse selection + if(CTX.enable_mouse_selection){ + CTX.enable_mouse_selection = 0; + Msg(STATUS1N, "Mouse selection OFF"); + WID->g_status_butt[9]->color(FL_RED); + WID->g_opengl_window->cursor(FL_CURSOR_DEFAULT, FL_BLACK, FL_WHITE); + } + else{ + CTX.enable_mouse_selection = 1; + Msg(STATUS1N, "Mouse selection ON"); + WID->g_status_butt[9]->color(FL_BACKGROUND_COLOR); + } + WID->g_status_butt[9]->redraw(); + } WID->update_manip_window(); } @@ -552,14 +567,14 @@ void file_new_cb(CALLBACK_ARGS) else goto test; } - // create a zero length file so that it actually exists (and stupid - // Mac/Windows editors accept to deal with it) FILE *fp = fopen(name, "w"); if(!fp){ Msg(GERROR, "Unable to open file '%s'", name); return; } - fprintf(fp, ""); + time_t now; + time(&now); + fprintf(fp, "// Gmsh project created on %s", ctime(&now)); fclose(fp); OpenProblem(name); Draw(); @@ -872,7 +887,7 @@ void options_browser_cb(CALLBACK_ARGS) void options_save_cb(CALLBACK_ARGS) { - Print_Options(0, GMSH_OPTIONSRC, true, CTX.options_filename_fullpath); + Print_Options(0, GMSH_OPTIONSRC, 1, 1, CTX.options_filename_fullpath); } void options_restore_defaults_cb(CALLBACK_ARGS) @@ -913,16 +928,17 @@ void general_options_color_scheme_cb(CALLBACK_ARGS) void general_options_rotation_center_select_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); Draw(); Msg(STATUS3N, "Setting rotation center"); Msg(ONSCREEN, "Select point\n[Press 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { // This would bypass the "Apply" button... Not necessarily bad, // but it's not consistent with the rest of the GUI. @@ -931,9 +947,9 @@ void general_options_rotation_center_select_cb(CALLBACK_ARGS) //opt_general_rotation_center2(0, GMSH_SET|GMSH_GUI, v->Pos.Z); // This is more conform to the way we do things elsewhere: - WID->gen_value[8]->value(v->Pos.X); - WID->gen_value[9]->value(v->Pos.Y); - WID->gen_value[10]->value(v->Pos.Z); + WID->gen_value[8]->value(v[0]->Pos.X); + WID->gen_value[9]->value(v[0]->Pos.Y); + WID->gen_value[10]->value(v[0]->Pos.Z); } ZeroHighlight(THEM); Draw(); @@ -953,7 +969,7 @@ void general_options_ok_cb(CALLBACK_ARGS) double sessionrc = opt_general_session_save(0, GMSH_GET, 0); opt_general_session_save(0, GMSH_SET, WID->gen_butt[8]->value()); if(sessionrc && !opt_general_session_save(0, GMSH_GET, 0)) - Print_Options(0, GMSH_SESSIONRC, true, CTX.session_filename_fullpath); + Print_Options(0, GMSH_SESSIONRC, 1, 1, CTX.session_filename_fullpath); opt_general_options_save(0, GMSH_SET, WID->gen_butt[9]->value()); opt_general_tooltips(0, GMSH_SET, WID->gen_butt[13]->value()); opt_general_confirm_overwrite(0, GMSH_SET, WID->gen_butt[14]->value()); @@ -1300,14 +1316,12 @@ void message_save_cb(CALLBACK_ARGS) } } -// Option Visibility Menu +// Visibility Menu void select_vis_browser(int mode) { - int i; - Entity *e; - for(i = 1; i <= WID->vis_browser->size(); i++) { - e = (Entity *) WID->vis_browser->data(i); + for(int i = 1; i <= WID->vis_browser->size(); i++) { + Entity *e = (Entity *) WID->vis_browser->data(i); if((mode & VIS_GEOM) && (mode & VIS_MESH)){ if((e->Visible() & VIS_GEOM) && (e->Visible() & VIS_MESH)) WID->vis_browser->select(i); @@ -1325,13 +1339,10 @@ void select_vis_browser(int mode) void visibility_cb(CALLBACK_ARGS) { - int i, type, mode; - List_T *list; - Entity *e; - WID->create_visibility_window(); WID->vis_browser->clear(); + int type; switch (WID->vis_type->value()) { case 0: type = ELEMENTARY; @@ -1343,6 +1354,8 @@ void visibility_cb(CALLBACK_ARGS) type = PARTITION; break; } + + int mode; switch (WID->vis_browser_mode->value()) { case 0: mode = VIS_GEOM | VIS_MESH; @@ -1355,10 +1368,10 @@ void visibility_cb(CALLBACK_ARGS) break; } - list = GetVisibilityList(type); + List_T *list = GetVisibilityList(type); - for(i = 0; i < List_Nbr(list); i++) { - e = (Entity *) List_Pointer(list, i); + for(int i = 0; i < List_Nbr(list); i++) { + Entity *e = (Entity *) List_Pointer(list, i); WID->vis_browser->add(e->BrowserLine(), e); } select_vis_browser(mode); @@ -1366,9 +1379,6 @@ void visibility_cb(CALLBACK_ARGS) void visibility_ok_cb(CALLBACK_ARGS) { - int i, mode; - Entity *e; - InitVisibilityThroughPhysical(); switch (WID->vis_type->value()) { @@ -1382,6 +1392,8 @@ void visibility_ok_cb(CALLBACK_ARGS) // partitions: do nothing break; } + + int mode; switch (WID->vis_browser_mode->value()) { case 0: mode = VIS_GEOM | VIS_MESH; @@ -1396,8 +1408,8 @@ void visibility_ok_cb(CALLBACK_ARGS) break; } - for(i = 1; i <= WID->vis_browser->size(); i++) { - e = (Entity *) WID->vis_browser->data(i); + for(int i = 1; i <= WID->vis_browser->size(); i++) { + Entity *e = (Entity *) WID->vis_browser->data(i); if(WID->vis_browser->selected(i)) { e->Visible(e->Visible() | mode); } @@ -1423,8 +1435,8 @@ void visibility_ok_cb(CALLBACK_ARGS) } if(WID->vis_butt[0]->value()) { - for(i = 1; i <= WID->vis_browser->size(); i++) { - e = (Entity *) WID->vis_browser->data(i); + for(int i = 1; i <= WID->vis_browser->size(); i++) { + Entity *e = (Entity *) WID->vis_browser->data(i); e->RecurVisible(); } select_vis_browser(mode); @@ -1435,7 +1447,7 @@ void visibility_ok_cb(CALLBACK_ARGS) void visibility_sort_cb(CALLBACK_ARGS) { - int selectall, val; + int val; char *str = (char*)data; if(!strcmp(str, "type")) @@ -1444,11 +1456,13 @@ void visibility_sort_cb(CALLBACK_ARGS) val = 2; else if(!strcmp(str, "name")) val = 3; + else if(!strcmp(str, "-")) + val = -1; else val = 0; - if(!val) { - selectall = 0; + if(val == 0) { // (de)select everything + int selectall = 0; for(int i = 1; i <= WID->vis_browser->size(); i++) if(!WID->vis_browser->selected(i)) { selectall = 1; @@ -1460,7 +1474,16 @@ void visibility_sort_cb(CALLBACK_ARGS) else WID->vis_browser->deselect(); } - else { + else if(val == -1){ // invert the selection + int *state = new int[WID->vis_browser->size()]; + for(int i = 1; i <= WID->vis_browser->size(); i++) + state[i-1] = WID->vis_browser->selected(i); + WID->vis_browser->deselect(); + for(int i = 1; i <= WID->vis_browser->size(); i++) + if(!state[i-1]) WID->vis_browser->select(i); + delete [] state; + } + else { // sort SetVisibilitySort(val); visibility_cb(NULL, NULL); } @@ -1468,7 +1491,7 @@ void visibility_sort_cb(CALLBACK_ARGS) void visibility_number_cb(CALLBACK_ARGS) { - int pos, mode, type = (int)(long)data; + int mode, type = (int)(long)data; if(type >= 100){ // show mode = VIS_GEOM | VIS_MESH; @@ -1482,7 +1505,7 @@ void visibility_number_cb(CALLBACK_ARGS) char *str = (char *)WID->vis_input[type]->value(); SetVisibilityByNumber(str, type, mode); - pos = WID->vis_browser->position(); + int pos = WID->vis_browser->position(); visibility_cb(NULL, NULL); WID->vis_browser->position(pos); @@ -1586,10 +1609,11 @@ void help_short_cb(CALLBACK_ARGS) Msg(DIRECT, " "); Msg(DIRECT, " < Go back to previous context"); Msg(DIRECT, " > Go forward to next context"); - Msg(DIRECT, " 0 or Esc Reload project file"); + Msg(DIRECT, " 0 Reload project file"); Msg(DIRECT, " 1 or F1 Mesh lines"); Msg(DIRECT, " 2 or F2 Mesh surfaces"); Msg(DIRECT, " 3 or F3 Mesh volumes"); + Msg(DIRECT, " Escape Cancel lasso zoom/selection, toggle mouse selection ON/OFF"); Msg(DIRECT, " "); Msg(DIRECT, " g Go to geometry module"); Msg(DIRECT, " m Go to mesh module"); @@ -1661,19 +1685,21 @@ void help_mouse_cb(CALLBACK_ARGS) Msg(DIRECT, " "); Msg(DIRECT, "Mouse actions:"); Msg(DIRECT, " "); - Msg(DIRECT, " move - Highlight the elementary geometrical entity"); + Msg(DIRECT, " Move - Highlight the elementary geometrical entity"); Msg(DIRECT, " currently under the mouse pointer and display"); Msg(DIRECT, " its properties in the status bar"); - Msg(DIRECT, " - Size a rubber zoom started with Ctrl+Left button"); + Msg(DIRECT, " - Resize a lasso zoom/selection"); Msg(DIRECT, " Left button - Rotate"); - Msg(DIRECT, " - Accept a rubber zoom started with Ctrl+Left button"); - Msg(DIRECT, " Ctrl+Left button Start (anisotropic) rubber zoom"); - Msg(DIRECT, " Middle button - Zoom (isotropic)"); - Msg(DIRECT, " - Cancel a rubber zoom"); + Msg(DIRECT, " - Select an entity"); + Msg(DIRECT, " - Accept a lasso zoom/selection"); + Msg(DIRECT, " Ctrl+Left button Start a lasso zoom/selection"); + Msg(DIRECT, " Middle button - Zoom"); + Msg(DIRECT, " - Unselect an entity"); + Msg(DIRECT, " - Cancel a lasso zoom/selection"); Msg(DIRECT, " Ctrl+Middle button Orthogonalize display"); Msg(DIRECT, " Right button - Pan"); - Msg(DIRECT, " - Cancel a rubber zoom"); - Msg(DIRECT, " - Pop up menu on post-processing view button"); + Msg(DIRECT, " - Cancel a lasso zoom/selection"); + Msg(DIRECT, " - Pop-up menu on post-processing view button"); Msg(DIRECT, " Ctrl+Right button Reset to default viewpoint"); Msg(DIRECT, " "); Msg(DIRECT, " For a 2 button mouse, Middle button = Shift+Left button"); @@ -1830,10 +1856,11 @@ void geometry_elementary_add_new_point_cb(CALLBACK_ARGS) WID->g_opengl_window->AddPointMode = true; Msg(ONSCREEN, "Move mouse and/or enter coordinates\n" "[Press 'Shift' to hold position, 'e' to add point or 'q' to abort]"); - Vertex *v; - Curve *c; - Surface *s; - char ib = SelectEntity(ENT_NONE, &v, &c, &s); + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int ne; + char ib = SelectEntity(ENT_NONE, &ne, v, c, s); if(ib == 'e'){ add_point(CTX.filename, (char*)WID->context_geometry_input[2]->value(), @@ -1844,7 +1871,6 @@ void geometry_elementary_add_new_point_cb(CALLBACK_ARGS) } if(ib == 'q'){ WID->g_opengl_window->AddPointMode = false; - WID->g_opengl_window->cursor(FL_CURSOR_DEFAULT, FL_BLACK, FL_WHITE); break; } } @@ -1854,10 +1880,10 @@ void geometry_elementary_add_new_point_cb(CALLBACK_ARGS) static void _new_multiline(int type) { - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); opt_geometry_lines(0, GMSH_SET | GMSH_GUI, 1); @@ -1872,9 +1898,13 @@ static void _new_multiline(int type) else Msg(ONSCREEN, "Select control points\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + for(int i = 0; i < ne; i++) + p[n++] = v[i]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during multi-line creation"); } if(ib == 'e') { if(n >= 2) { @@ -1922,10 +1952,10 @@ void geometry_elementary_add_new_line_cb(CALLBACK_ARGS) // //_new_multiline(0); // - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); opt_geometry_lines(0, GMSH_SET | GMSH_GUI, 1); @@ -1940,9 +1970,12 @@ void geometry_elementary_add_new_line_cb(CALLBACK_ARGS) if(n == 1) Msg(ONSCREEN, "Select end point\n" "[Press 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + p[n++] = v[0]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during line creation"); } if(ib == 'u') { if(n > 0){ @@ -1980,10 +2013,10 @@ void geometry_elementary_add_new_bspline_cb(CALLBACK_ARGS) void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); opt_geometry_lines(0, GMSH_SET | GMSH_GUI, 1); @@ -2001,9 +2034,12 @@ void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS) if(n == 2) Msg(ONSCREEN, "Select end point\n" "[Press 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + p[n++] = v[0]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during circle creation"); } if(ib == 'u') { if(n > 0){ @@ -2031,10 +2067,10 @@ void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS) void geometry_elementary_add_new_ellipse_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); opt_geometry_lines(0, GMSH_SET | GMSH_GUI, 1); @@ -2055,9 +2091,12 @@ void geometry_elementary_add_new_ellipse_cb(CALLBACK_ARGS) if(n == 3) Msg(ONSCREEN, "Select end point\n" "[Press 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + p[n++] = v[0]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during ellipse creation"); } if(ib == 'u') { if(n > 0){ @@ -2085,10 +2124,10 @@ void geometry_elementary_add_new_ellipse_cb(CALLBACK_ARGS) static void _new_surface_volume(int mode) { - Vertex *v; - Curve *c; - Surface *s; - int type, num; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int type, num, ne; List_T *List1 = List_Create(10, 10, sizeof(int)); List_T *List2 = List_Create(10, 10, sizeof(int)); @@ -2129,7 +2168,7 @@ static void _new_surface_volume(int mode) "[Press 'u' to undo last selection or 'q' to abort]"); } - char ib = SelectEntity(type, &v, &c, &s); + char ib = SelectEntity(type, &ne, v, c, s); if(ib == 'q') { ZeroHighlight(THEM); Draw(); @@ -2137,7 +2176,7 @@ static void _new_surface_volume(int mode) } if(ib == 'u') { if(List_Nbr(List1) > 0){ - List_Read(List1, List_Nbr(List1)-1, &num); + List_Read(List1, List_Nbr(List1)-1, &num); ZeroHighlightEntityNum(0, (type == ENT_LINE) ? abs(num) : 0, (type != ENT_LINE) ? abs(num) : 0); @@ -2145,8 +2184,11 @@ static void _new_surface_volume(int mode) Draw(); } } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during surface/volume creation"); + } if(ib == 'l') { - int num = (type == ENT_LINE) ? c->Num : s->Num; + int num = (type == ENT_LINE) ? c[0]->Num : s[0]->Num; if(SelectContour(type, num, List1)) { if(type == ENT_LINE) add_loop(List1, CTX.filename, &num); @@ -2161,7 +2203,7 @@ static void _new_surface_volume(int mode) else Msg(ONSCREEN, "Select hole boundaries\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - ib = SelectEntity(type, &v, &c, &s); + ib = SelectEntity(type, &ne, v, c, s); if(ib == 'q') { ZeroHighlight(THEM); Draw(); @@ -2184,7 +2226,7 @@ static void _new_surface_volume(int mode) } } if(ib == 'l') { - num = (type == ENT_LINE) ? c->Num : s->Num; + num = (type == ENT_LINE) ? c[0]->Num : s[0]->Num; if(SelectContour(type, num, List1)) { if(type == ENT_LINE) add_loop(List1, CTX.filename, &num); @@ -2194,6 +2236,9 @@ static void _new_surface_volume(int mode) List_Add(List2, &num); } } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during surface/volume creation"); + } } if(List_Nbr(List2)) { switch (mode) { @@ -2234,10 +2279,10 @@ void geometry_elementary_add_new_volume_cb(CALLBACK_ARGS) static void _transform_point_line_surface(int transfo, int mode, char *what) { - Vertex *v; - Curve *c; - Surface *s; - int type, num = 0; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int type, num = 0, ne; char *str; if(!strcmp(what, "Point")) { @@ -2261,7 +2306,7 @@ static void _transform_point_line_surface(int transfo, int mode, char *what) while(1) { Msg(STATUS3N, "Transforming %s", str); - char ib = SelectEntity(type, &v, &c, &s); + char ib = SelectEntity(type, &ne, v, c, s); if(ib == 'q') { ZeroHighlight(THEM); Draw(); @@ -2270,13 +2315,13 @@ static void _transform_point_line_surface(int transfo, int mode, char *what) if(ib == 'l') { switch (type) { case ENT_POINT: - num = v->Num; + num = v[0]->Num; break; case ENT_LINE: - num = c->Num; + num = c[0]->Num; break; case ENT_SURFACE: - num = s->Num; + num = s[0]->Num; break; } switch (transfo) { @@ -2602,10 +2647,10 @@ void geometry_elementary_delete_surface_cb(CALLBACK_ARGS) static void _add_physical(char *what) { - Vertex *v; - Curve *c; - Surface *s; - int type, num; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int type, num, ne; char *str; List_T *List1; @@ -2643,19 +2688,40 @@ static void _add_physical(char *what) else Msg(ONSCREEN, "Select %s\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]", str); - char ib = SelectEntity(type, &v, &c, &s); + char ib = SelectEntity(type, &ne, v, c, s); if(ib == 'l') { - switch (type) { - case ENT_POINT: - List_Add(List1, &v->Num); - break; - case ENT_LINE: - List_Add(List1, &c->Num); - break; - case ENT_SURFACE: - List_Add(List1, &s->Num); - break; + for(int i = 0; i < ne; i++){ + switch (type) { + case ENT_POINT: + List_Add(List1, &v[i]->Num); + break; + case ENT_LINE: + List_Add(List1, &c[i]->Num); + break; + case ENT_SURFACE: + List_Add(List1, &s[i]->Num); + break; + } + } + } + if(ib == 'r') { + for(int i = 0; i < ne; i++){ + switch (type) { + case ENT_POINT: + List_Suppress(List1, &v[i]->Num, fcmp_int); + ZeroHighlightEntity(v[i], NULL, NULL); + break; + case ENT_LINE: + List_Suppress(List1, &c[i]->Num, fcmp_int); + ZeroHighlightEntity(NULL, c[i], NULL); + break; + case ENT_SURFACE: + List_Suppress(List1, &s[i]->Num, fcmp_int); + ZeroHighlightEntity(NULL, NULL, s[i]); + break; + } } + Draw(); } if(ib == 'u') { if(List_Nbr(List1)) { @@ -2817,10 +2883,10 @@ void mesh_update_edges_cb(CALLBACK_ARGS) void mesh_update_more_edges_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; extern void BDS_To_Mesh(Mesh *m); if (THEM && THEM->bds && WID) { @@ -2834,15 +2900,17 @@ void mesh_update_more_edges_cb(CALLBACK_ARGS) Msg(STATUS3N, "Adding new Model Edges"); if(n == 0) Msg(ONSCREEN, "Select Model Edges\n" - "[Press 'q' to abort or 'e' end]"); + "[Press 'e' to end selection or 'q' to abort]"); if(n == 1) Msg(ONSCREEN, "Select Model Edge\n" - "[Press 'u' to undo last selection, 'q' to abort, 'e' end]"); - char ib = SelectEntity(ENT_LINE, &v, &c, &s); - printf("ib = %c\n",ib); + "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); + char ib = SelectEntity(ENT_LINE, &ne, v, c, s); if(ib == 'l') { - p[n++] = c->Num; - printf("line %d has been selected\n",c->Num); + for(int i = 0; i < ne; i++) + p[n++] = c[i]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during edge selection"); } if(ib == 'u') { if(n > 0){ @@ -2872,7 +2940,6 @@ void mesh_update_more_edges_cb(CALLBACK_ARGS) ++it; } } - ZeroHighlight(THEM); Draw(); n = 0; @@ -2883,10 +2950,10 @@ void mesh_update_more_edges_cb(CALLBACK_ARGS) void mesh_define_length_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; - int n = 0, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n = 0, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); Draw(); @@ -2901,9 +2968,13 @@ void mesh_define_length_cb(CALLBACK_ARGS) else Msg(ONSCREEN, "Select points\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_POINT, &v, &c, &s); + char ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + for(int i = 0; i < ne; i++) + p[n++] = v[i]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during char. length definition"); } if(ib == 'e') { if(n > 0) @@ -2931,10 +3002,10 @@ void mesh_define_length_cb(CALLBACK_ARGS) void mesh_define_recombine_cb(CALLBACK_ARGS) { - Vertex *v; - Curve *c; - Surface *s; - int n, p[100]; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; + int n, p[100], ne; opt_geometry_surfaces(0, GMSH_SET | GMSH_GUI, 1); Draw(); @@ -2948,9 +3019,13 @@ void mesh_define_recombine_cb(CALLBACK_ARGS) else Msg(ONSCREEN, "Select surfaces\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - char ib = SelectEntity(ENT_SURFACE, &v, &c, &s); + char ib = SelectEntity(ENT_SURFACE, &ne, v, c, s); if(ib == 'l') { - p[n++] = s->Num; + for(int i = 0; i < ne; i++) + p[n++] = s[i]->Num; + } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during recombine definition"); } if(ib == 'e') { if(n > 0) @@ -2983,11 +3058,11 @@ void mesh_define_transfinite_cb(CALLBACK_ARGS) static void _add_transfinite_elliptic(int type, int dim) { - Vertex *v; - Curve *c; - Surface *s; + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; char ib; - int n, p[100]; + int n, p[100], ne; opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); switch (dim) { @@ -3008,11 +3083,11 @@ static void _add_transfinite_elliptic(int type, int dim) else Msg(ONSCREEN, "Select lines\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - ib = SelectEntity(ENT_LINE, &v, &c, &s); + ib = SelectEntity(ENT_LINE, &ne, v, c, s); break; case 2: Msg(ONSCREEN, "Select surface\n[Press 'q' to abort]"); - ib = SelectEntity(ENT_SURFACE, &v, &c, &s); + ib = SelectEntity(ENT_SURFACE, &ne, v, c, s); break; default: ib = 'l'; @@ -3045,13 +3120,16 @@ static void _add_transfinite_elliptic(int type, int dim) Draw(); break; } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during transfinite definition"); + } if(ib == 'l') { switch (dim) { case 1: - p[n++] = c->Num; + p[n++] = c[0]->Num; break; case 2: - p[n++] = s->Num; // fall-through + p[n++] = s[0]->Num; // fall-through case 3: while(1) { if(n == ((dim == 2) ? 1 : 0)) @@ -3060,9 +3138,9 @@ static void _add_transfinite_elliptic(int type, int dim) else Msg(ONSCREEN, "Select (ordered) boundary points\n" "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]"); - ib = SelectEntity(ENT_POINT, &v, &c, &s); + ib = SelectEntity(ENT_POINT, &ne, v, c, s); if(ib == 'l') { - p[n++] = v->Num; + p[n++] = v[0]->Num; } if(ib == 'u') { if(n > ((dim == 2) ? 1 : 0)){ @@ -3071,6 +3149,9 @@ static void _add_transfinite_elliptic(int type, int dim) n--; } } + if(ib == 'r') { + Msg(WARNING, "Entity de-selection not supported yet during transfinite definition"); + } if(ib == 'e') { switch (dim) { case 2: @@ -4324,3 +4405,10 @@ void con_geometry_define_point_cb(CALLBACK_ARGS) CalculateMinMax(THEM->Points, NULL); Draw(); } + +void con_geometry_snap_cb(CALLBACK_ARGS) +{ + CTX.geom.snap[0] = WID->context_geometry_value[0]->value(); + CTX.geom.snap[1] = WID->context_geometry_value[1]->value(); + CTX.geom.snap[2] = WID->context_geometry_value[2]->value(); +} diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h index ca39962dcfe7eace241211e2a5ce65cfa1f53e7b..695cae000f2738cfc1856f67cc75a63be6ad1d06 100644 --- a/Fltk/Callbacks.h +++ b/Fltk/Callbacks.h @@ -1,7 +1,7 @@ #ifndef _CALLBACKS_H_ #define _CALLBACKS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -262,6 +262,7 @@ void geometry_reload_cb(CALLBACK_ARGS); void con_geometry_define_parameter_cb(CALLBACK_ARGS); void con_geometry_define_point_cb(CALLBACK_ARGS); +void con_geometry_snap_cb(CALLBACK_ARGS); // Dynamic Mesh Menus diff --git a/Fltk/Colorbar_Window.cpp b/Fltk/Colorbar_Window.cpp index d377dac8c558a5609842f1fa632207433a16705a..e4a506ca852a5dcb488ce10d0742faca825b7da7 100644 --- a/Fltk/Colorbar_Window.cpp +++ b/Fltk/Colorbar_Window.cpp @@ -1,6 +1,6 @@ -// $Id: Colorbar_Window.cpp,v 1.49 2005-12-22 20:42:41 geuzaine Exp $ +// $Id: Colorbar_Window.cpp,v 1.50 2006-01-06 00:34:22 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Colorbar_Window.h b/Fltk/Colorbar_Window.h index 9843e9e92e00fb7070c71b185c738755847da94b..69e92502e2d9b9d809b7e0ca94b5f2c5c7dc579c 100644 --- a/Fltk/Colorbar_Window.h +++ b/Fltk/Colorbar_Window.h @@ -1,7 +1,7 @@ #ifndef _COLORBAR_WINDOW_H #define _COLORBAR_WINDOW_H -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/File_Picker.h b/Fltk/File_Picker.h index 4ba8059e39087baab76d948d9d747c9273708e13..3da6ef5ce873ebd1760e972bd849389f11770ed3 100644 --- a/Fltk/File_Picker.h +++ b/Fltk/File_Picker.h @@ -1,7 +1,7 @@ #ifndef _FILE_PICKER_H_ #define _FILE_PICKER_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 7ced953cf89dc162169fca1b4a81793e92d44581..d0f72cab98fb4652cd94d028d260d7f62172a1b8 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,6 +1,6 @@ -// $Id: GUI.cpp,v 1.476 2005-12-28 13:55:58 geuzaine Exp $ +// $Id: GUI.cpp,v 1.477 2006-01-06 00:34:22 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -514,7 +514,7 @@ int GUI::global_shortcuts(int event) return 1; } - if(Fl::test_shortcut('0') || Fl::test_shortcut(FL_Escape)) { + if(Fl::test_shortcut('0')) { geometry_reload_cb(0, 0); mod_geometry_cb(0, 0); return 1; @@ -576,6 +576,16 @@ int GUI::global_shortcuts(int event) quit_selection = 1; return 0; // trick: do as if we didn't use it } + else if(Fl::test_shortcut(FL_Escape)) { + if(g_opengl_window->LassoMode){ + g_opengl_window->LassoMode = false; + redraw_opengl(); + } + else{ + status_xyz1p_cb(0, (void *)"S"); + } + return 1; + } else if(Fl::test_shortcut(FL_SHIFT + 'a')) { window_cb(0, (void*)"front"); return 1; @@ -821,8 +831,6 @@ int GUI::arrow_shortcuts() GUI::GUI(int argc, char **argv) { - int i; - // initialize static windows m_window = NULL; g_window = NULL; @@ -843,6 +851,7 @@ GUI::GUI(int argc, char **argv) // initialize selection bits selection = ENT_NONE; try_selection = quit_selection = end_selection = undo_selection = 0; + for(int i = 0; i < 4; i++) try_selection_xywh[i] = 0; // set X display if(strlen(CTX.display)) @@ -911,7 +920,7 @@ GUI::GUI(int argc, char **argv) create_about_window(); create_geometry_context_window(0); create_mesh_context_window(0); - for(i = 0; i < MAXSOLVERS; i++) { + for(int i = 0; i < MAXSOLVERS; i++) { solver[i].window = NULL; create_solver_window(i); } @@ -1366,6 +1375,11 @@ void GUI::create_graphic_window() ortho_bmp = new Fl_Bitmap(ortho_bits, ortho_width, ortho_height); ortho_bmp->label(g_status_butt[8]); + g_status_butt[9] = new Fl_Button(x, glheight + 2, sw, sh - 4, "S"); + x += sw; + g_status_butt[9]->callback(status_xyz1p_cb, (void *)"S"); + g_status_butt[9]->tooltip("Toggle mouse selection ON/OFF (Escape)"); + g_status_butt[5] = new Fl_Button(x, glheight + 2, sw, sh - 4, "?"); x += sw; g_status_butt[5]->callback(status_xyz1p_cb, (void *)"?"); @@ -1388,7 +1402,7 @@ void GUI::create_graphic_window() stop_bmp = new Fl_Bitmap(stop_bits, stop_width, stop_height); g_status_butt[7]->deactivate(); - for(i = 0; i < 9; i++) { + for(i = 0; i < 10; i++) { g_status_butt[i]->box(FL_FLAT_BOX); g_status_butt[i]->selection_color(FL_WHITE); g_status_butt[i]->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); @@ -2339,7 +2353,7 @@ void GUI::create_option_window() mesh_butt[11]->down_box(GMSH_TOGGLE_BOX); mesh_butt[11]->selection_color(GMSH_TOGGLE_COLOR); - mesh_butt[12] = new Fl_Check_Button(L + width / 2, 2 * WB + 1 * BH, BW / 2 - WB, BH, "Node numbers"); + mesh_butt[12] = new Fl_Check_Button(L + width / 2, 2 * WB + 1 * BH, BW / 2 - WB, BH, "Node labels"); mesh_butt[12]->type(FL_TOGGLE_BUTTON); mesh_butt[12]->down_box(GMSH_TOGGLE_BOX); mesh_butt[12]->selection_color(GMSH_TOGGLE_COLOR); @@ -2360,17 +2374,18 @@ void GUI::create_option_window() mesh_butt[15]->selection_color(GMSH_TOGGLE_COLOR); static Fl_Menu_Item menu_label_type[] = { - {"Element numbers", 0, 0, 0}, - {"Elementary entity numbers", 0, 0, 0}, - {"Physical entity numbers", 0, 0, 0}, - {"Partition numbers", 0, 0, 0}, + {"Number", 0, 0, 0}, + {"Elementary entity", 0, 0, 0}, + {"Physical entity", 0, 0, 0}, + {"Partition", 0, 0, 0}, + {"Coordinates", 0, 0, 0}, {0} }; - mesh_choice[7] = new Fl_Choice(L + width / 2, 2 * WB + 5 * BH, IW, BH, "Labels"); + mesh_choice[7] = new Fl_Choice(L + width / 2, 2 * WB + 5 * BH, width/4 - 2*WB, BH, "Label type"); mesh_choice[7]->menu(menu_label_type); mesh_choice[7]->align(FL_ALIGN_RIGHT); - mesh_value[12] = new Fl_Value_Input(L + width / 2, 2 * WB + 6 * BH, IW / 2, BH, "Labels frequency"); + mesh_value[12] = new Fl_Value_Input(L + width / 2, 2 * WB + 6 * BH, width/4 - 2*WB, BH, "Label frequency"); mesh_value[12]->minimum(0.0); mesh_value[12]->maximum(100.0); mesh_value[12]->step(0.1); @@ -2394,7 +2409,7 @@ void GUI::create_option_window() {"Rho", 0, 0, 0}, {0} }; - mesh_choice[6] = new Fl_Choice(L + width - BB - 5 * WB, 2 * WB + 7 * BH, BB, BH); + mesh_choice[6] = new Fl_Choice(L + (3 * width)/4 - WB, 2 * WB + 7 * BH, width/4 - 2*WB, BH); mesh_choice[6]->menu(menu_quality_type); mesh_choice[6]->align(FL_ALIGN_LEFT); @@ -3810,20 +3825,29 @@ void GUI::create_visibility_window() vis_butt[0]->selection_color(GMSH_TOGGLE_COLOR); vis_butt[0]->value(1); - Fl_Button *o0 = new Fl_Button(2 * WB, 3 * WB + 2 * BH, cols[0], BH, "*"); + Fl_Button *o0 = new Fl_Button(2 * WB, 3 * WB + 2 * BH, cols[0], BH/2, "*"); + o0->align(FL_ALIGN_TOP | FL_ALIGN_INSIDE); + o0->tooltip("Select/unselect all"); o0->callback(visibility_sort_cb, (void *)"*"); - - Fl_Button *o1 = new Fl_Button(2 * WB + cols[0], 3 * WB + 2 * BH, cols[1], BH, "Type"); - o1->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); - o1->callback(visibility_sort_cb, (void *)"type"); - Fl_Button *o2 = new Fl_Button(2 * WB + cols[0] + cols[1], 3 * WB + 2 * BH, cols[2], BH, "Number"); + Fl_Button *o1 = new Fl_Button(2 * WB, 3 * WB + 2 * BH + BH/2, cols[0], BH - BH/2, "-"); + o1->tooltip("Invert selection"); + o1->callback(visibility_sort_cb, (void *)"-"); + + Fl_Button *o2 = new Fl_Button(2 * WB + cols[0], 3 * WB + 2 * BH, cols[1], BH, "Type"); o2->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); - o2->callback(visibility_sort_cb, (void *)"number"); + o2->tooltip("Sort by type"); + o2->callback(visibility_sort_cb, (void *)"type"); - Fl_Button *o3 = new Fl_Button(2 * WB + cols[0] + cols[1] + cols[2], 3 * WB + 2 * BH, cols[3], BH, "Name"); + Fl_Button *o3 = new Fl_Button(2 * WB + cols[0] + cols[1], 3 * WB + 2 * BH, cols[2], BH, "Number"); o3->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); - o3->callback(visibility_sort_cb, (void *)"name"); + o3->tooltip("Sort by number"); + o3->callback(visibility_sort_cb, (void *)"number"); + + Fl_Button *o4 = new Fl_Button(2 * WB + cols[0] + cols[1] + cols[2], 3 * WB + 2 * BH, cols[3], BH, "Name"); + o4->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); + o4->tooltip("Sort by name"); + o4->callback(visibility_sort_cb, (void *)"name"); { Fl_Group *o = new Fl_Group(2 * WB, 3 * WB + 3 * BH, brw, height - 7 * WB - 5 * BH); @@ -4104,7 +4128,7 @@ void GUI::create_about_window() o->add("@c@.A three-dimensional finite element mesh generator"); o->add("@c@.with built-in pre- and post-processing facilities"); o->add(" "); - o->add("@c@.Copyright (C) 1997-2005"); + o->add("@c@.Copyright (C) 1997-2006"); #if defined(__APPLE__) o->add("@c@.Christophe Geuzaine and Jean-Francois Remacle"); #else @@ -4229,6 +4253,13 @@ void GUI::create_geometry_context_window(int num) for(i = 2; i < 6; i++) { context_geometry_input[i]->align(FL_ALIGN_RIGHT); } + context_geometry_value[0] = new Fl_Value_Input(2 * WB, 2 * WB + 5 * BH, IW/3, BH); + context_geometry_value[1] = new Fl_Value_Input(2 * WB + IW/3, 2 * WB + 5 * BH, IW/3, BH); + context_geometry_value[2] = new Fl_Value_Input(2 * WB + 2*IW/3, 2 * WB + 5 * BH, IW/3, BH, "Snapping grid spacing"); + for(i = 0; i < 3; i++) { + context_geometry_value[i]->align(FL_ALIGN_RIGHT); + context_geometry_value[i]->callback(con_geometry_snap_cb); + } { Fl_Return_Button *o = new Fl_Return_Button(width - BB - 2 * WB, 2 * WB + 7 * BH, BB, BH, "Add"); o->callback(con_geometry_define_point_cb); diff --git a/Fltk/GUI.h b/Fltk/GUI.h index df3a05ccce6e1f677accfc0372c792bf185d7f6b..77fb46db644c7ff0236f5b1ee839ef206b2b9eae 100644 --- a/Fltk/GUI.h +++ b/Fltk/GUI.h @@ -1,7 +1,7 @@ #ifndef _GUI_H_ #define _GUI_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -151,7 +151,7 @@ public: // graphic window Fl_Window *g_window ; Opengl_Window *g_opengl_window ; - Fl_Button *g_status_butt[9] ; + Fl_Button *g_status_butt[10] ; Fl_Box *g_status_label[3] ; // Option window @@ -241,6 +241,7 @@ public: // geometry context window Fl_Window *context_geometry_window ; Fl_Input *context_geometry_input[30] ; + Fl_Value_Input *context_geometry_value[10] ; // mesh context window Fl_Window *context_mesh_window ; @@ -307,7 +308,7 @@ public: void update_manip_window(int force=0); void reset_external_view_list(); int selection, try_selection, quit_selection, end_selection, undo_selection; - + int try_selection_xywh[4]; }; // some utility font functions diff --git a/Fltk/GUI_Extras.cpp b/Fltk/GUI_Extras.cpp index d7f052f37bfe481a491362378f2d703035577fe7..5c96ec5fb51b87518cd8da1165908d00112c9c24 100644 --- a/Fltk/GUI_Extras.cpp +++ b/Fltk/GUI_Extras.cpp @@ -1,6 +1,6 @@ -// $Id: GUI_Extras.cpp,v 1.13 2005-12-18 22:13:26 geuzaine Exp $ +// $Id: GUI_Extras.cpp,v 1.14 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -453,22 +453,27 @@ int options_dialog(char *name) { struct _options_dialog{ Fl_Window *window; - Fl_Check_Button *b; + Fl_Check_Button *b[2]; Fl_Button *ok, *cancel; }; static _options_dialog *dialog = NULL; if(!dialog){ dialog = new _options_dialog; - int h = 3*10 + 25 + 1*25, y = 0; + int h = 3*10 + 25 + 2*25, y = 0; // not a "Dialog_Window" since it is modal dialog->window = new Fl_Double_Window(200, h, "Options"); y = 10; dialog->window->box(GMSH_WINDOW_BOX); - dialog->b = new Fl_Check_Button(10, y, 180, 25, "Save only modified options"); y += 25; - dialog->b->value(1); - dialog->b->type(FL_TOGGLE_BUTTON); - dialog->b->down_box(GMSH_TOGGLE_BOX); - dialog->b->selection_color(GMSH_TOGGLE_COLOR); + dialog->b[0] = new Fl_Check_Button(10, y, 180, 25, "Save only modified options"); y += 25; + dialog->b[0]->value(1); + dialog->b[0]->type(FL_TOGGLE_BUTTON); + dialog->b[0]->down_box(GMSH_TOGGLE_BOX); + dialog->b[0]->selection_color(GMSH_TOGGLE_COLOR); + dialog->b[1] = new Fl_Check_Button(10, y, 180, 25, "Print help strings"); y += 25; + dialog->b[1]->value(1); + dialog->b[1]->type(FL_TOGGLE_BUTTON); + dialog->b[1]->down_box(GMSH_TOGGLE_BOX); + dialog->b[1]->selection_color(GMSH_TOGGLE_COLOR); dialog->ok = new Fl_Return_Button(10, y+10, 85, 25, "OK"); dialog->cancel = new Fl_Button(105, y+10, 85, 25, "Cancel"); dialog->window->set_modal(); @@ -484,7 +489,7 @@ int options_dialog(char *name) Fl_Widget* o = Fl::readqueue(); if (!o) break; if (o == dialog->ok) { - Print_Options(0, GMSH_FULLRC, dialog->b->value(), name); + Print_Options(0, GMSH_FULLRC, dialog->b[0]->value(), dialog->b[1]->value(), name); dialog->window->hide(); return 1; } diff --git a/Fltk/GUI_Extras.h b/Fltk/GUI_Extras.h index 0cb151459cc3590c15d7f34a98fd84271f86be80..798ba31cfb735c38c84d34be416d9eb779cc5092 100644 --- a/Fltk/GUI_Extras.h +++ b/Fltk/GUI_Extras.h @@ -1,7 +1,7 @@ #ifndef _GUI_EXTRAS_H_ #define _GUI_EXTRAS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/GmshServer.h b/Fltk/GmshServer.h index 8fd292ff8830d3df676928e3de0a5d9584509466..788d08cb918e1c3268bec2d20e4f9b74c68327f0 100644 --- a/Fltk/GmshServer.h +++ b/Fltk/GmshServer.h @@ -1,7 +1,7 @@ #ifndef _GMSH_SERVER_H_ #define _GMSH_SERVER_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/Fltk/MacIcons.icns b/Fltk/MacIcons.icns index 739de1245d358aff43ea96eaf749806cdc48e096..803849e61210bc4838f8533dbd490d0907ac6510 100644 Binary files a/Fltk/MacIcons.icns and b/Fltk/MacIcons.icns differ diff --git a/Fltk/MacIconsGeo.icns b/Fltk/MacIconsGeo.icns index 439c6e737b3f3a2fdf328825e59cf971a9f6d576..6ac95423b260251013e6437500f32ad1cdd1697f 100644 Binary files a/Fltk/MacIconsGeo.icns and b/Fltk/MacIconsGeo.icns differ diff --git a/Fltk/MacIconsMsh.icns b/Fltk/MacIconsMsh.icns index 8ab3d78407bb61777da159e05ea2837ea87b274a..59c81f49474649280cc49268d963d739f9507b46 100644 Binary files a/Fltk/MacIconsMsh.icns and b/Fltk/MacIconsMsh.icns differ diff --git a/Fltk/MacIconsPos.icns b/Fltk/MacIconsPos.icns index df67b94f47c6a78d1d847eaa701dc93380c724d7..353bccbd7ec47ecd8efd4d96a792767455234f3c 100644 Binary files a/Fltk/MacIconsPos.icns and b/Fltk/MacIconsPos.icns differ diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp index e2720f41b155f1daeb42b9786d4f460b618df9fd..0cb20f06d8308cd4989f16ee03bceda7b9e32829 100644 --- a/Fltk/Main.cpp +++ b/Fltk/Main.cpp @@ -1,6 +1,6 @@ -// $Id: Main.cpp,v 1.84 2005-10-24 15:38:13 geuzaine Exp $ +// $Id: Main.cpp,v 1.85 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Makefile b/Fltk/Makefile index f7f898a42ab60ca5a577317203d5f521fda09ebc..3445d5c76f6a2555275d9c910bc7440e83e3064d 100644 --- a/Fltk/Makefile +++ b/Fltk/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.76 2005-12-19 02:35:03 geuzaine Exp $ +# $Id: Makefile,v 1.77 2006-01-06 00:34:23 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp index 2dfe0c580f318d9d63924bd9f0c8d883a2bcaab2..5d6c9980411c0560865f390f94800cf06fbc4757 100644 --- a/Fltk/Message.cpp +++ b/Fltk/Message.cpp @@ -1,6 +1,6 @@ -// $Id: Message.cpp,v 1.66 2005-12-21 02:32:05 geuzaine Exp $ +// $Id: Message.cpp,v 1.67 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -259,10 +259,10 @@ void Exit(int level) CTX.solver_position[1] = WID->solver[0].window->y(); file_chooser_get_position(&CTX.file_chooser_position[0], &CTX.file_chooser_position[1]); - Print_Options(0, GMSH_SESSIONRC, false, CTX.session_filename_fullpath); + Print_Options(0, GMSH_SESSIONRC, 0, 1, CTX.session_filename_fullpath); } if(CTX.options_save) - Print_Options(0, GMSH_OPTIONSRC, true, CTX.options_filename_fullpath); + Print_Options(0, GMSH_OPTIONSRC, 1, 1, CTX.options_filename_fullpath); } exit(0); diff --git a/Fltk/Opengl.cpp b/Fltk/Opengl.cpp index 4a716479444f386e30d19135f99a65274371a11b..2033bb6017d096c0c29e5a5b002caa4f2b6b7ec9 100644 --- a/Fltk/Opengl.cpp +++ b/Fltk/Opengl.cpp @@ -1,6 +1,6 @@ -// $Id: Opengl.cpp,v 1.56 2005-12-16 17:35:33 geuzaine Exp $ +// $Id: Opengl.cpp,v 1.57 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -179,14 +179,15 @@ void Draw_OnScreenMessages() } } -// Select entity routines +// Select entity routine -char SelectEntity(int type, Vertex ** v, Curve ** c, Surface ** s) +char SelectEntity(int type, int *n, + Vertex *v[SELECTION_MAX_HITS], + Curve *c[SELECTION_MAX_HITS], + Surface *s[SELECTION_MAX_HITS]) { - int numhits; - hit hits[SELECTION_BUFFER_SIZE]; - WID->g_opengl_window->take_focus(); // force keyboard focus in GL window + WID->g_opengl_window->SelectionMode = true; // enable lasso selection WID->selection = type; WID->try_selection = 0; @@ -195,14 +196,20 @@ char SelectEntity(int type, Vertex ** v, Curve ** c, Surface ** s) WID->undo_selection = 0; while(1) { - *v = NULL; - *c = NULL; - *s = NULL; + *n = 0; + for(int i = 0; i < SELECTION_MAX_HITS; i++){ + v[i] = NULL; + c[i] = NULL; + s[i] = NULL; + } WID->wait(); if(WID->quit_selection) { - WID->quit_selection = 0; WID->selection = ENT_NONE; + WID->g_opengl_window->SelectionMode = false; + WID->g_opengl_window->LassoMode = false; + WID->g_opengl_window->AddPointMode = false; + WID->g_opengl_window->cursor(FL_CURSOR_DEFAULT, FL_BLACK, FL_WHITE); return 'q'; } if(WID->end_selection) { @@ -215,20 +222,37 @@ char SelectEntity(int type, Vertex ** v, Curve ** c, Surface ** s) return 'u'; } if(WID->try_selection) { + bool add = (WID->try_selection > 0) ? true : false; + bool multi = (WID->try_selection > 1) ? true : false; WID->try_selection = 0; if(WID->selection == ENT_NONE){ // just report the mouse click + WID->g_opengl_window->SelectionMode = false; return 'c'; } else{ - Process_SelectionBuffer(Fl::event_x(), Fl::event_y(), &numhits, hits); - if(Filter_SelectionBuffer(WID->selection, numhits, hits, v, c, s, &M)){ - HighlightEntity(*v, *c, *s, 1); - Draw(); + *n = Process_SelectionBuffer(WID->selection, multi, + WID->try_selection_xywh[0], + WID->try_selection_xywh[1], + WID->try_selection_xywh[2], + WID->try_selection_xywh[3], + v, c, s, &M); + if(*n){ + if(add){ + for(int i = 0; i < *n; i++) + HighlightEntity(v[i], c[i], s[i], 1); + Draw(); + } + // don't call ZeroHighlight here if we (try to) deselect: + // deselection is not supported in all cases, so it's better + // to de-highlight the entities in the callback WID->selection = ENT_NONE; - return 'l'; + WID->g_opengl_window->SelectionMode = false; + if(add) + return 'l'; + else + return 'r'; } } } } - } diff --git a/Fltk/Opengl_Window.cpp b/Fltk/Opengl_Window.cpp index 84d8c9789e4e641693ad0e2d9df6299b66e0ba60..6a1ddf231d78257b7f835cc5a955eeb003ebb8f2 100644 --- a/Fltk/Opengl_Window.cpp +++ b/Fltk/Opengl_Window.cpp @@ -1,6 +1,6 @@ -// $Id: Opengl_Window.cpp,v 1.57 2005-12-28 13:55:58 geuzaine Exp $ +// $Id: Opengl_Window.cpp,v 1.58 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -110,12 +110,9 @@ void Opengl_Window::draw() } } - if(!ZoomMode) { - ClearOpengl(); - Draw3d(); - Draw2d(); - } - else { + if(LassoMode) { + // draw the zoom or selection lasso on top of the current scene + // (without using overlays!) glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho((double)CTX.viewport[0], (double)CTX.viewport[2], @@ -124,6 +121,10 @@ void Opengl_Window::draw() glLoadIdentity(); glColor3d(1., 1., 1.); glDisable(GL_DEPTH_TEST); + if(SelectionMode){ + glEnable(GL_LINE_STIPPLE); + glLineStipple(1, 0x0F0F); + } // glBlendEquation(GL_FUNC_ADD); glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO); glEnable(GL_BLEND); @@ -131,16 +132,42 @@ void Opengl_Window::draw() for(int i = 0; i < 2; i++){ glBegin(GL_LINE_STRIP); glVertex2d(click.win[0], CTX.viewport[3] - click.win[1]); - glVertex2d(zoom.win[0], CTX.viewport[3] - click.win[1]); - glVertex2d(zoom.win[0], CTX.viewport[3] - zoom.win[1]); - glVertex2d(click.win[0], CTX.viewport[3] - zoom.win[1]); + glVertex2d(lasso.win[0], CTX.viewport[3] - click.win[1]); + glVertex2d(lasso.win[0], CTX.viewport[3] - lasso.win[1]); + glVertex2d(click.win[0], CTX.viewport[3] - lasso.win[1]); glVertex2d(click.win[0], CTX.viewport[3] - click.win[1]); glEnd(); - if(!i) zoom.set(); + if(!i) lasso.set(); } glDisable(GL_BLEND); + if(SelectionMode) + glDisable(GL_LINE_STIPPLE); glEnable(GL_DEPTH_TEST); } + else if(AddPointMode) { + // draw the whole scene and the point to add + if(CTX.fast_redraw) { + CTX.mesh.draw = 0; + CTX.post.draw = 0; + } + ClearOpengl(); + Draw3d(); + glColor4ubv((GLubyte *) & CTX.color.fg); + glPointSize(CTX.geom.point_size); + glBegin(GL_POINTS); + glVertex3d(point[0], point[1], point[2]); + glEnd(); + Draw2d(); + CTX.mesh.draw = 1; + CTX.post.draw = 1; + } + else{ + // draw the whole scene + ClearOpengl(); + Draw3d(); + Draw2d(); + } + locked = 0; } @@ -152,9 +179,10 @@ void Opengl_Window::draw() int Opengl_Window::handle(int event) { + Vertex *v[SELECTION_MAX_HITS]; + Curve *c[SELECTION_MAX_HITS]; + Surface *s[SELECTION_MAX_HITS]; double dx, dy; - int numhits; - hit hits[SELECTION_BUFFER_SIZE]; switch (event) { @@ -172,34 +200,54 @@ int Opengl_Window::handle(int event) case FL_PUSH: take_focus(); // force keyboard focus when we click in the window curr.set(); - if(Fl::event_button() == 1 && !Fl::event_state(FL_SHIFT) && !Fl::event_state(FL_ALT)) { - if(!ZoomMode && Fl::event_state(FL_CTRL)) { - ZoomMode = true; - zoom.set(); + if(!LassoMode && Fl::event_state(FL_CTRL)) { + LassoMode = true; + lasso.set(); } - else if(ZoomMode) { - ZoomMode = false; - lasso_zoom(click, curr); + else if(LassoMode) { + LassoMode = false; + if(SelectionMode){ + WID->try_selection = 2; // will try to select multiple entities + WID->try_selection_xywh[0] = (int)(click.win[0] + curr.win[0])/2; + WID->try_selection_xywh[1] = (int)(click.win[1] + curr.win[1])/2; + WID->try_selection_xywh[2] = (int)fabs(click.win[0] - curr.win[0]); + WID->try_selection_xywh[3] = (int)fabs(click.win[1] - curr.win[1]); + } + else{ + lasso_zoom(click, curr); + } } - else { - WID->try_selection = 1; + else if(CTX.enable_mouse_selection){ + WID->try_selection = 1; // will try to select clicked entity + WID->try_selection_xywh[0] = (int)curr.win[0]; + WID->try_selection_xywh[1] = (int)curr.win[1]; + WID->try_selection_xywh[2] = 5; + WID->try_selection_xywh[3] = 5; } } else if(Fl::event_button() == 2 || (Fl::event_button() == 1 && Fl::event_state(FL_SHIFT))) { - if(Fl::event_state(FL_CTRL) && !ZoomMode) { + if(Fl::event_state(FL_CTRL) && !LassoMode) { + // make zoom isotropic CTX.s[1] = CTX.s[0]; CTX.s[2] = CTX.s[0]; redraw(); } - else { - ZoomMode = false; + else if(LassoMode) { + LassoMode = false; + } + else if(CTX.enable_mouse_selection){ + WID->try_selection = -1; // will try to unselect clicked entity + WID->try_selection_xywh[0] = (int)curr.win[0]; + WID->try_selection_xywh[1] = (int)curr.win[1]; + WID->try_selection_xywh[2] = 5; + WID->try_selection_xywh[3] = 5; } } else { - if(Fl::event_state(FL_CTRL) && !ZoomMode) { + if(Fl::event_state(FL_CTRL) && !LassoMode) { if(CTX.useTrackball) CTX.setQuaternion(0., 0., 0., 1.); else @@ -209,10 +257,9 @@ int Opengl_Window::handle(int event) redraw(); } else { - ZoomMode = false; + LassoMode = false; } } - click.set(); prev.set(); WID->update_manip_window(); @@ -220,7 +267,7 @@ int Opengl_Window::handle(int event) case FL_RELEASE: curr.set(); - if(!ZoomMode) { + if(!LassoMode) { CTX.mesh.draw = 1; CTX.post.draw = 1; redraw(); @@ -232,8 +279,7 @@ int Opengl_Window::handle(int event) curr.set(); dx = curr.win[0] - prev.win[0]; dy = curr.win[1] - prev.win[1]; - - if(ZoomMode) { + if(LassoMode) { redraw(); } else { @@ -272,46 +318,53 @@ int Opengl_Window::handle(int event) } redraw(); } - prev.set(); WID->update_manip_window(); return 1; case FL_MOVE: curr.set(); - - if(AddPointMode && !Fl::event_state(FL_SHIFT)){ + if(LassoMode) { + redraw(); + } + else if(AddPointMode && !Fl::event_state(FL_SHIFT)){ WID->g_opengl_window->cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE); // find line in real space corresponding to current cursor position double p[3],d[3]; unproject(curr.win[0], curr.win[1], p, d); // fin closest point to the center of gravity double r[3] = {CTX.cg[0] - p[0], CTX.cg[1] - p[1], CTX.cg[2] - p[2]}, t; - prosca(r,d,&t); - double sol[3] = {p[0] + t * d[0], p[1] + t * d[1], p[2] + t * d[2]}; + prosca(r, d, &t); + for(int i = 0; i < 3; i++){ + point[i] = p[i] + t * d[i]; + if(CTX.geom.snap[i]){ + double d = point[i]/CTX.geom.snap[i]; + double f = floor(d); + double c = ceil(d); + double n = (d - f < c - d) ? f : c; + point[i] = n * CTX.geom.snap[i]; + } + } char str[32]; - sprintf(str, "%g", sol[0]); WID->context_geometry_input[2]->value(str); - sprintf(str, "%g", sol[1]); WID->context_geometry_input[3]->value(str); - sprintf(str, "%g", sol[2]); WID->context_geometry_input[4]->value(str); - } - else if(ZoomMode) { + sprintf(str, "%g", point[0]); WID->context_geometry_input[2]->value(str); + sprintf(str, "%g", point[1]); WID->context_geometry_input[3]->value(str); + sprintf(str, "%g", point[2]); WID->context_geometry_input[4]->value(str); redraw(); } - else { - WID->make_opengl_current(); - Process_SelectionBuffer((int)curr.win[0], (int)curr.win[1], &numhits, hits); - ov = v; v = NULL; - oc = c; c = NULL; - os = s; s = NULL; - Filter_SelectionBuffer(WID->selection, numhits, hits, &v, &c, &s, &M); - if(ov != v || oc != c || os != s) { - if((WID->selection == ENT_POINT && v) || - (WID->selection == ENT_LINE && c) || - (WID->selection == ENT_SURFACE && s)) - WID->g_window->cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE); - else - WID->g_window->cursor(FL_CURSOR_DEFAULT, FL_BLACK, FL_WHITE); - HighlightEntity(v, c, s, 0); + else if(CTX.enable_mouse_selection){ + if(curr.win[0] != prev.win[0] || curr.win[1] != prev.win[1]){ + WID->make_opengl_current(); + v[0] = NULL; c[0] = NULL; s[0] = NULL; + Process_SelectionBuffer(WID->selection, 0, + (int)curr.win[0], (int)curr.win[1], 5, 5, + v, c, s, &M); + if((WID->selection == ENT_POINT && v[0]) || + (WID->selection == ENT_LINE && c[0]) || + (WID->selection == ENT_SURFACE && s[0])) + WID->g_window->cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE); + else + WID->g_window->cursor(FL_CURSOR_DEFAULT, FL_BLACK, FL_WHITE); + HighlightEntity(v[0], c[0], s[0], 0); } } prev.set(); diff --git a/Fltk/Opengl_Window.h b/Fltk/Opengl_Window.h index 0525470918f629f9f3e98b999dbdb641a27ce63b..bb85fa1a4db1eb69035fcebd1a8c635b132c29b2 100644 --- a/Fltk/Opengl_Window.h +++ b/Fltk/Opengl_Window.h @@ -1,7 +1,7 @@ #ifndef _OPENGL_WINDOW_H_ #define _OPENGL_WINDOW_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -48,23 +48,19 @@ class MousePosition { class Opengl_Window : public Fl_Gl_Window { public: - bool AddPointMode, ZoomMode; + bool AddPointMode, LassoMode, SelectionMode; private: int hits; - Vertex *v, *ov; - Curve *c, *oc; - Surface *s, *os; - MousePosition click, curr, prev, zoom; + MousePosition click, curr, prev, lasso; + double point[3]; void draw(); int handle(int); public: Opengl_Window(int x,int y,int w,int h,const char *l=0) : Fl_Gl_Window(x, y, w, h, l) { - AddPointMode = ZoomMode = false; + AddPointMode = LassoMode = SelectionMode = false; hits = 0; - v = ov = NULL; - c = oc = NULL; - s = os = NULL; + point[0] = point[1] = point[2] = 0.; } }; diff --git a/Fltk/Shortcut_Window.h b/Fltk/Shortcut_Window.h index ec3ec52a42dde47333480f006c7b14e12319157d..f4f7c5ea9c7d3bdea76dfde0e551e4c3e334c0d0 100644 --- a/Fltk/Shortcut_Window.h +++ b/Fltk/Shortcut_Window.h @@ -1,7 +1,7 @@ #ifndef _SHORTCUT_WINDOW_H #define _SHORTCUT_WINDOW_H -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Solvers.cpp b/Fltk/Solvers.cpp index 92e715fe7f265fdd32b7e8608c0ce29da5aaff57..f620a5bb29b519c00cfdaff1cfca3204c68844cd 100644 --- a/Fltk/Solvers.cpp +++ b/Fltk/Solvers.cpp @@ -1,6 +1,6 @@ -// $Id: Solvers.cpp,v 1.41 2005-09-26 19:37:16 geuzaine Exp $ +// $Id: Solvers.cpp,v 1.42 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Solvers.h b/Fltk/Solvers.h index 8d68e207cb1c3013393758052da45fd38af94d4a..bfc4bf8bbc3dc342173136859d43ceb40974f4d0 100644 --- a/Fltk/Solvers.h +++ b/Fltk/Solvers.h @@ -1,7 +1,7 @@ #ifndef _SOLVERS_H_ #define _SOLVERS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Fltk/Win32Icon.ico b/Fltk/Win32Icon.ico index d0761decbc9dbe7e407c0b37adbbead28a395e89..aa72778021b63df4de54e8439d8b805067b50eac 100644 Binary files a/Fltk/Win32Icon.ico and b/Fltk/Win32Icon.ico differ diff --git a/Fltk/Win32Icon.res b/Fltk/Win32Icon.res index 696570cb91f14508277e69aafc31db200536c7e9..04daed22718ff4dc1b30de50f172380f5ca6228c 100644 Binary files a/Fltk/Win32Icon.res and b/Fltk/Win32Icon.res differ diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index 89f71b40cecc4e1f58a8258c17ce7fcf2cd53773..e051adb9cbd7063797eeef5ee4fb629c11278a2b 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,6 +1,6 @@ -// $Id: CAD.cpp,v 1.85 2005-03-01 00:01:12 geuzaine Exp $ +// $Id: CAD.cpp,v 1.86 2006-01-06 00:34:23 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/CAD.h b/Geo/CAD.h index 87d85cb520228b6dfcafb1f158988d0d50bd0428..87f8c13074bb358fa75e5b536f5148db1ef1b0ab 100644 --- a/Geo/CAD.h +++ b/Geo/CAD.h @@ -1,7 +1,7 @@ #ifndef _CAD_H_ #define _CAD_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/ExtractContour.cpp b/Geo/ExtractContour.cpp index 746ec4890e8bede8088acc08948087be5f793250..ac83f166ba88f72e378d38d31b4950a0837e5678 100644 --- a/Geo/ExtractContour.cpp +++ b/Geo/ExtractContour.cpp @@ -1,6 +1,6 @@ -// $Id: ExtractContour.cpp,v 1.7 2005-03-15 20:13:27 geuzaine Exp $ +// $Id: ExtractContour.cpp,v 1.8 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/ExtractContour.h b/Geo/ExtractContour.h index d5a9a3fb1833cd965d3f872f35a91ad48db4a78b..76cc354d79b3d021607d201bde9588315488452e 100644 --- a/Geo/ExtractContour.h +++ b/Geo/ExtractContour.h @@ -1,7 +1,7 @@ #ifndef _EXTRACT_CONTOUR_H_ #define _EXTRACT_CONTOUR_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp index d444636b45ab6f462c2925092e62e301f620b345..6afdedcda48a7398673ba7023798c8a75a250def 100644 --- a/Geo/ExtrudeParams.cpp +++ b/Geo/ExtrudeParams.cpp @@ -1,6 +1,6 @@ -// $Id: ExtrudeParams.cpp,v 1.17 2005-01-01 19:35:28 geuzaine Exp $ +// $Id: ExtrudeParams.cpp,v 1.18 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h index 3fc66aff410df872143bb620a9bb8bbcb9b3cdac..857ba394d4080cc79d86ac73aa058e3ec107ec73 100644 --- a/Geo/ExtrudeParams.h +++ b/Geo/ExtrudeParams.h @@ -1,7 +1,7 @@ #ifndef _EXTRUDE_PARAMS_H_ #define _EXTRUDE_PARAMS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index e31f16466a8b431e1c48b38e4204f145ef27637a..fb395206355fd6c7735e1befbc4b3a3f2c78402e 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,6 +1,6 @@ -// $Id: Geo.cpp,v 1.44 2005-07-14 14:28:15 remacle Exp $ +// $Id: Geo.cpp,v 1.45 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/Geo.h b/Geo/Geo.h index aee22da8fe70abfbb33124505c208bbade3ff8f6..a6140caab909311129368e7985459dbe02ae287e 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -1,7 +1,7 @@ #ifndef _GEO_H_ #define _GEO_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/GeoUtils.cpp b/Geo/GeoUtils.cpp index df802f3e59932c4a85b5988b08ac109211bde05b..8a0042c4f74319ba83578c161e20fc0370e6d385 100644 --- a/Geo/GeoUtils.cpp +++ b/Geo/GeoUtils.cpp @@ -1,6 +1,6 @@ -// $Id: GeoUtils.cpp,v 1.7 2005-01-20 19:05:09 geuzaine Exp $ +// $Id: GeoUtils.cpp,v 1.8 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/GeoUtils.h b/Geo/GeoUtils.h index b189bdee5b9c1430c2ba83a3dda2b849b50a8388..f60eed5d0923f8b7e51a7093e18a497a48657523 100644 --- a/Geo/GeoUtils.h +++ b/Geo/GeoUtils.h @@ -1,7 +1,7 @@ #ifndef _GEO_UTILS_H_ #define _GEO_UTILS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/Makefile b/Geo/Makefile index 0b212e8de6cab422e1014cd0fd15aa1dd6d589ac..722c7f2dfe732aaa61f17f69775e2f6e9a9134a1 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.67 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.68 2006-01-06 00:34:24 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Geo/MinMax.cpp b/Geo/MinMax.cpp index d313f5ad467f370eeb62ccfd371b1aa843004b6f..5207250a8fd0d62b59e684bc1f420d51c80232b4 100644 --- a/Geo/MinMax.cpp +++ b/Geo/MinMax.cpp @@ -1,6 +1,6 @@ -// $Id: MinMax.cpp,v 1.20 2005-11-19 04:01:13 geuzaine Exp $ +// $Id: MinMax.cpp,v 1.21 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/MinMax.h b/Geo/MinMax.h index a36b7b79e14b8c89756d43de41c0c08beec74bf4..b0bfd63b00fbbcc89c1d51cf6e89675d0542ecde 100644 --- a/Geo/MinMax.h +++ b/Geo/MinMax.h @@ -1,7 +1,7 @@ #ifndef _MINMAX_H_ #define _MINMAX_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp index 4739a0a864884b51c3c7304605939c838fcfa986..bb11a2472cc2dfcd74f285bf63cf874a5cd4c34b 100644 --- a/Geo/Print_Geo.cpp +++ b/Geo/Print_Geo.cpp @@ -1,6 +1,6 @@ -// $Id: Print_Geo.cpp,v 1.41 2005-06-10 20:59:15 geuzaine Exp $ +// $Id: Print_Geo.cpp,v 1.42 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/StepGeomDatabase.cpp b/Geo/StepGeomDatabase.cpp index 38eaee6769bb386e636f742d4d5b1608b9b5796d..5f735c8a30e34923e4af20f78cd9141c523ed0f5 100644 --- a/Geo/StepGeomDatabase.cpp +++ b/Geo/StepGeomDatabase.cpp @@ -1,6 +1,6 @@ -// $Id: StepGeomDatabase.cpp,v 1.18 2005-06-20 17:02:45 geuzaine Exp $ +// $Id: StepGeomDatabase.cpp,v 1.19 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Geo/StepGeomDatabase.h b/Geo/StepGeomDatabase.h index 23b8b1a6f2ec753318b20051f54d3e2a368e5eda..47c6ddea521204d5039d7f8f2bcf5031b1883793 100644 --- a/Geo/StepGeomDatabase.h +++ b/Geo/StepGeomDatabase.h @@ -1,7 +1,7 @@ #ifndef _STEP_GEOM_DATABASE_H_ #define _STEP_GEOM_DATABASE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/CreateFile.cpp b/Graphics/CreateFile.cpp index 0acba96fb6b4d6f5e12038d04c66047429b79221..585f3af0c2e368f52f6aea25ab28bac3b7b73d62 100644 --- a/Graphics/CreateFile.cpp +++ b/Graphics/CreateFile.cpp @@ -1,6 +1,6 @@ -// $Id: CreateFile.cpp,v 1.75 2005-12-22 20:42:42 geuzaine Exp $ +// $Id: CreateFile.cpp,v 1.76 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -113,7 +113,7 @@ void CreateOutputFile(char *name, int format) break; case FORMAT_OPT: - Print_Options(0, GMSH_FULLRC, true, name); + Print_Options(0, GMSH_FULLRC, 1, 1, name); break; case FORMAT_MSH: diff --git a/Graphics/CreateFile.h b/Graphics/CreateFile.h index c7117d5e53bd407da39022d070b24b114e3d675a..0c6917b79212ae6ab7c2228d95152fbf03706d72 100644 --- a/Graphics/CreateFile.h +++ b/Graphics/CreateFile.h @@ -1,7 +1,7 @@ #ifndef _CREATE_FILE_H_ #define _CREATE_FILE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/Draw.cpp b/Graphics/Draw.cpp index d2ddec8235f4fe0851bad7e6ebf466bf7e8c38b7..04c14ece98194397a3815f8d5a9c21cca2528c35 100644 --- a/Graphics/Draw.cpp +++ b/Graphics/Draw.cpp @@ -1,6 +1,6 @@ -// $Id: Draw.cpp,v 1.92 2005-12-22 20:42:42 geuzaine Exp $ +// $Id: Draw.cpp,v 1.93 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -349,8 +349,23 @@ void InitPosition(void) // Entity selection -void Process_SelectionBuffer(int x, int y, int *n, hit *hits) +typedef struct{ + unsigned int type, ient, depth; +} hit; + +int fcmp_hit_depth(const void *a, const void *b) +{ + return ((hit*)a)->depth - ((hit*)b)->depth; +} + +int Process_SelectionBuffer(int type, bool multi, + int x, int y, int w, int h, + Vertex *v[SELECTION_MAX_HITS], + Curve *c[SELECTION_MAX_HITS], + Surface *s[SELECTION_MAX_HITS], + Mesh *m) { + hit hits[SELECTION_BUFFER_SIZE]; GLuint selectBuf[SELECTION_BUFFER_SIZE]; glSelectBuffer(SELECTION_BUFFER_SIZE, selectBuf); @@ -364,7 +379,7 @@ void Process_SelectionBuffer(int x, int y, int *n, hit *hits) // an entity is drawn glPushMatrix(); - InitProjection(x, y, 5, 5); + InitProjection(x, y, w, h); InitPosition(); Draw_Mesh(&M); glPopMatrix(); @@ -372,10 +387,12 @@ void Process_SelectionBuffer(int x, int y, int *n, hit *hits) GLint numhits = glRenderMode(GL_RENDER); CTX.render_mode = GMSH_RENDER; - if(numhits < 0){ - // selection buffer overflow - *n = 0; - return; + if(!numhits){ // no hits + return 0; + } + else if(numhits < 0){ // overflow + Msg(WARNING, "Selection buffer size exceeded"); + return 0; } GLint *ptr = (GLint *) selectBuf; @@ -400,51 +417,43 @@ void Process_SelectionBuffer(int x, int y, int *n, hit *hits) ptr++; } } - *n = numhits; -} -int fcmp_hit_depth(const void *a, const void *b) -{ - return ((hit*)a)->depth - ((hit*)b)->depth; -} - -int Filter_SelectionBuffer(int type, int n, hit *hits, - Vertex **thev, Curve **thec, Surface **thes, Mesh *m) -{ - // If type == ENT_NONE, return the closest entity of "lowest - // dimension" (point < line < surface < volume). Otherwise, return - // the closest entity of type "type" + // filter result: if type == ENT_NONE, return the closest entity of + // "lowest dimension" (point < line < surface < volume). Otherwise, + // return the closest entity of type "type" unsigned int typmin = 4; - - for(int i = 0; i < n; i++) { + for(int i = 0; i < numhits; i++) { if(hits[i].type < typmin) typmin = hits[i].type; } // sort hits to get closest entities first - qsort(hits, n, sizeof(hit), fcmp_hit_depth); - - for(int i = 0; i < n; i++) { + qsort(hits, numhits, sizeof(hit), fcmp_hit_depth); + + int j = 0; + for(int i = 0; i < numhits; i++) { if((type == ENT_NONE && hits[i].type == typmin) || (type == ENT_POINT && hits[i].type == 0) || (type == ENT_LINE && hits[i].type == 1) || (type == ENT_SURFACE && hits[i].type == 2)){ switch (hits[i].type) { case 0: - *thev = FindPoint(hits[i].ient, m); - return 1; + v[j++] = FindPoint(hits[i].ient, m); + if(!multi) return 1; + break; case 1: - *thec = FindCurve(hits[i].ient, m); - return 1; + c[j++] = FindCurve(hits[i].ient, m); + if(!multi) return 1; + break; case 2: - *thes = FindSurface(hits[i].ient, m); - return 1; + s[j++] = FindSurface(hits[i].ient, m); + if(!multi) return 1; + break; } } } - - return 0; + return j; } // Takes a cursor position in window coordinates and returns the line diff --git a/Graphics/Draw.h b/Graphics/Draw.h index 66b0be577d4261679c93024df2ca8bead5056e26..271e77426bd949c810a6b4103a8ff3a1695ffd51 100644 --- a/Graphics/Draw.h +++ b/Graphics/Draw.h @@ -1,7 +1,7 @@ #ifndef _DRAW_H_ #define _DRAW_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -28,7 +28,9 @@ #define GMSH_SELECT 2 #define GMSH_FEEDBACK 3 -#define SELECTION_BUFFER_SIZE 1024 +// selection buffer size = 5 * number of hits (in our case) +#define SELECTION_BUFFER_SIZE 50000 +#define SELECTION_MAX_HITS 10000 void SetOpenglContext(void); void ClearOpengl(void); @@ -37,13 +39,16 @@ void InitProjection(int xpick=0, int ypick=0, int wpick=0, int hpick=0); void InitPosition(void); void InitRenderModel(void); -typedef struct{ - unsigned int type, ient, depth; -} hit; - -void Process_SelectionBuffer(int x, int y, int *n, hit *hits); -int Filter_SelectionBuffer(int type, int n, hit *hits, - Vertex **thev, Curve **thec, Surface **thes, Mesh *m); +int Process_SelectionBuffer(int type, bool multi, + int x, int y, int w, int h, + Vertex *v[SELECTION_MAX_HITS], + Curve *c[SELECTION_MAX_HITS], + Surface *s[SELECTION_MAX_HITS], + Mesh *m); +char SelectEntity(int type, int *n, + Vertex *v[SELECTION_MAX_HITS], + Curve *c[SELECTION_MAX_HITS], + Surface *s[SELECTION_MAX_HITS]); void unproject(double x, double y, double p[3], double d[3]); void Viewport2World(double win[3], double xyz[3]); @@ -53,11 +58,11 @@ unsigned int PaletteContinuous(Post_View * View, double min, double max, double unsigned int PaletteContinuousLinear(Post_View * v, double min, double max, double val); unsigned int PaletteDiscrete(Post_View * View, int nbi, int i); -char SelectEntity(int type, Vertex **v, Curve **c, Surface **s); void HighlightEntity(Vertex *v,Curve *c, Surface *s, int permanent); void HighlightEntityNum(int v, int c, int s, int permanant); -void ZeroHighlight(Mesh *m); +void ZeroHighlightEntity(Vertex *v,Curve *c, Surface *s); void ZeroHighlightEntityNum(int v, int c, int s); +void ZeroHighlight(Mesh *m); void Draw3d(void); void Draw2d(void); diff --git a/Graphics/Entity.cpp b/Graphics/Entity.cpp index f752bf16f41e566d4d2bb0bb087ed89650c37fbb..dbce136bd7208a14fe93da9227bb13e00f5abd85 100644 --- a/Graphics/Entity.cpp +++ b/Graphics/Entity.cpp @@ -1,6 +1,6 @@ -// $Id: Entity.cpp,v 1.61 2005-03-13 09:10:35 geuzaine Exp $ +// $Id: Entity.cpp,v 1.62 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp index 2444d3e817109eeabcb0a0d47fbab7434a1e1379..7f9105285896882eed952fc84b8bd5056c0d392b 100644 --- a/Graphics/Geom.cpp +++ b/Graphics/Geom.cpp @@ -1,6 +1,6 @@ -// $Id: Geom.cpp,v 1.95 2005-12-13 23:18:20 geuzaine Exp $ +// $Id: Geom.cpp,v 1.96 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -797,6 +797,13 @@ void ZeroHighlight(Mesh * m) Tree_Action(m->Surfaces, ZeroHighlightSurface); } +void ZeroHighlightEntity(Vertex * v, Curve * c, Surface * s) +{ + if(v) ZeroHighlightPoint(&v, NULL); + if(c) ZeroHighlightCurve(&c, NULL); + if(s) ZeroHighlightSurface(&s, NULL); +} + void ZeroHighlightEntityNum(int v, int c, int s) { if(v) { diff --git a/Graphics/Graph2D.cpp b/Graphics/Graph2D.cpp index 13b525dcb9c331419e6a1a9829ecaaaa9f81511d..c5822774bacb492f333365421b3eb1877dd531b8 100644 --- a/Graphics/Graph2D.cpp +++ b/Graphics/Graph2D.cpp @@ -1,6 +1,6 @@ -// $Id: Graph2D.cpp,v 1.55 2005-08-09 23:39:25 geuzaine Exp $ +// $Id: Graph2D.cpp,v 1.56 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/Iso.cpp b/Graphics/Iso.cpp index 61d03af6fbef05bf991da6f0afc2fc565890ee39..a6875a062b783f043e81e06593bb7a2ffcd367c1 100644 --- a/Graphics/Iso.cpp +++ b/Graphics/Iso.cpp @@ -1,6 +1,6 @@ -// $Id: Iso.cpp,v 1.34 2005-05-21 17:27:03 geuzaine Exp $ +// $Id: Iso.cpp,v 1.35 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/Iso.h b/Graphics/Iso.h index 2a04457df3b29159d6f1d4ad01274b0c4a9b37f2..cb1a351389aaf23f16a7e76833e5748ee6f09724 100644 --- a/Graphics/Iso.h +++ b/Graphics/Iso.h @@ -1,7 +1,7 @@ #ifndef _ISO_H_ #define _ISO_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/Makefile b/Graphics/Makefile index a641d1a6a0a90d43efaf8fdac4f6a7cccb2617de..e029815e3ed35cde9bfab6ef48f66c42f8be9e4f 100644 --- a/Graphics/Makefile +++ b/Graphics/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.74 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.75 2006-01-06 00:34:24 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp index c8ad137e580c30f33920a1fb0c3bacaf5ceafe12..bbf00d5bdcb8bd685f8f320491ad4739f4c8385d 100644 --- a/Graphics/Mesh.cpp +++ b/Graphics/Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: Mesh.cpp,v 1.147 2005-12-21 23:09:52 geuzaine Exp $ +// $Id: Mesh.cpp,v 1.148 2006-01-06 00:34:24 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -551,7 +551,8 @@ void Draw_Mesh_Curve(void *a, void *b) theCurve = NULL; } -void Draw_Mesh_Point(int num, double x, double y, double z, int degree, int visible) +void Draw_Mesh_Point(int num, double x, double y, double z, int degree, int visible, + int elementary=-1, int physical=-1, int partition=-1) { if(!(visible & VIS_MESH)) return; @@ -577,7 +578,28 @@ void Draw_Mesh_Point(int num, double x, double y, double z, int degree, int visi if(CTX.mesh.points_num) { char Num[100]; - sprintf(Num, "%d", num); + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", x, y, z); + else if(CTX.mesh.label_type == 3){ + if(partition > 0) + sprintf(Num, "%d", partition); + else + strcpy(Num, "NA"); + } + else if(CTX.mesh.label_type == 2){ + if(physical > 0) + sprintf(Num, "%d", physical); + else + strcpy(Num, "NA"); + } + else if(CTX.mesh.label_type == 1){ + if(elementary > 0) + sprintf(Num, "%d", elementary); + else + strcpy(Num, "NA"); + } + else + sprintf(Num, "%d", num); double offset = 0.3 * (CTX.mesh.point_size + CTX.gl_fontsize) * CTX.pixel_equiv_x; glRasterPos3d(x + offset / CTX.s[0], y + offset / CTX.s[1], @@ -632,7 +654,8 @@ void Draw_Mesh_Line(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (s->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->V[i]->Num, X[i], Y[i], Z[i], - s->V[i]->Degree, s->V[i]->Visible); + s->V[i]->Degree, s->V[i]->Visible, + s->iEnt, thePhysical, iPart); } if(N == 3){ @@ -644,7 +667,8 @@ void Draw_Mesh_Line(void *a, void *b) Z[1] = Zc + CTX.mesh.explode * (s->VSUP[0]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->VSUP[0]->Num, X[1], Y[1], Z[1], - s->VSUP[0]->Degree, s->VSUP[0]->Visible); + s->VSUP[0]->Degree, s->VSUP[0]->Visible, + s->iEnt, thePhysical, iPart); } unsigned int col; @@ -686,7 +710,9 @@ void Draw_Mesh_Line(void *a, void *b) if(CTX.mesh.lines_num && (numLabelsDisplayed % stepLabelsDisplayed == 0)) { glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -953,7 +979,8 @@ void Draw_Mesh_Triangle(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (s->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->V[i]->Num, X[i], Y[i], Z[i], - s->V[i]->Degree, s->V[i]->Visible); + s->V[i]->Degree, s->V[i]->Visible, + s->iEnt, thePhysical, iPart); } if(s->VSUP){ @@ -968,7 +995,8 @@ void Draw_Mesh_Triangle(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (s->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - s->VSUP[i]->Degree, s->VSUP[i]->Visible); + s->VSUP[i]->Degree, s->VSUP[i]->Visible, + s->iEnt, thePhysical, iPart); } } @@ -1056,7 +1084,9 @@ void Draw_Mesh_Triangle(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -1143,7 +1173,8 @@ void Draw_Mesh_Quadrangle(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (q->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(q->V[i]->Num, X[i], Y[i], Z[i], - q->V[i]->Degree, q->V[i]->Visible); + q->V[i]->Degree, q->V[i]->Visible, + q->iEnt, thePhysical, iPart); } if(q->VSUP){ @@ -1158,7 +1189,8 @@ void Draw_Mesh_Quadrangle(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (q->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(q->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - q->VSUP[i]->Degree, q->VSUP[i]->Visible); + q->VSUP[i]->Degree, q->VSUP[i]->Visible, + q->iEnt, thePhysical, iPart); } } @@ -1246,7 +1278,9 @@ void Draw_Mesh_Quadrangle(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -1335,7 +1369,8 @@ void Draw_Mesh_Tetrahedron(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (s->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->V[i]->Num, X[i], Y[i], Z[i], - s->V[i]->Degree, s->V[i]->Visible); + s->V[i]->Degree, s->V[i]->Visible, + s->iEnt, thePhysical, iPart); } if(s->VSUP){ @@ -1350,7 +1385,8 @@ void Draw_Mesh_Tetrahedron(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (s->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(s->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - s->VSUP[i]->Degree, s->VSUP[i]->Visible); + s->VSUP[i]->Degree, s->VSUP[i]->Visible, + s->iEnt, thePhysical, iPart); } } @@ -1446,7 +1482,9 @@ void Draw_Mesh_Tetrahedron(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -1523,7 +1561,8 @@ void Draw_Mesh_Hexahedron(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (h->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(h->V[i]->Num, X[i], Y[i], Z[i], - h->V[i]->Degree, h->V[i]->Visible); + h->V[i]->Degree, h->V[i]->Visible, + h->iEnt, thePhysical, iPart); } if(h->VSUP){ @@ -1538,7 +1577,8 @@ void Draw_Mesh_Hexahedron(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (h->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(h->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - h->VSUP[i]->Degree, h->VSUP[i]->Visible); + h->VSUP[i]->Degree, h->VSUP[i]->Visible, + h->iEnt, thePhysical, iPart); } } @@ -1646,7 +1686,9 @@ void Draw_Mesh_Hexahedron(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -1723,7 +1765,8 @@ void Draw_Mesh_Prism(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (p->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(p->V[i]->Num, X[i], Y[i], Z[i], - p->V[i]->Degree, p->V[i]->Visible); + p->V[i]->Degree, p->V[i]->Visible, + p->iEnt, thePhysical, iPart); } if(p->VSUP){ @@ -1743,7 +1786,8 @@ void Draw_Mesh_Prism(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (p->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(p->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - p->VSUP[i]->Degree, p->VSUP[i]->Visible); + p->VSUP[i]->Degree, p->VSUP[i]->Visible, + p->iEnt, thePhysical, iPart); } } @@ -1861,7 +1905,9 @@ void Draw_Mesh_Prism(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); @@ -1938,7 +1984,8 @@ void Draw_Mesh_Pyramid(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (p->V[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(p->V[i]->Num, X[i], Y[i], Z[i], - p->V[i]->Degree, p->V[i]->Visible); + p->V[i]->Degree, p->V[i]->Visible, + p->iEnt, thePhysical, iPart); } if(p->VSUP){ @@ -1958,7 +2005,8 @@ void Draw_Mesh_Pyramid(void *a, void *b) Z2[i] = Zc + CTX.mesh.explode * (p->VSUP[i]->Pos.Z - Zc); if(CTX.mesh.points_per_element) Draw_Mesh_Point(p->VSUP[i]->Num, X2[i], Y2[i], Z2[i], - p->VSUP[i]->Degree, p->VSUP[i]->Visible); + p->VSUP[i]->Degree, p->VSUP[i]->Visible, + p->iEnt, thePhysical, iPart); } } @@ -2048,7 +2096,9 @@ void Draw_Mesh_Pyramid(void *a, void *b) glColor4ubv((GLubyte *) & CTX.color.mesh.line); else glColor4ubv((GLubyte *) & col); - if(CTX.mesh.label_type == 3) + if(CTX.mesh.label_type == 4) + sprintf(Num, "(%g,%g,%g)", Xc, Yc, Zc); + else if(CTX.mesh.label_type == 3) sprintf(Num, "%d", iPart); else if(CTX.mesh.label_type == 2) sprintf(Num, "%d", thePhysical); diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp index fcef5511eba9652542f6b30cdc976b5cc582d02c..eb941c110168fafac24330b86009df9a7c703844 100644 --- a/Graphics/Post.cpp +++ b/Graphics/Post.cpp @@ -1,6 +1,6 @@ -// $Id: Post.cpp,v 1.102 2005-09-02 18:04:02 geuzaine Exp $ +// $Id: Post.cpp,v 1.103 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp index 369d8e1708c8bb99beef93bc530625e4094af75a..41c947c35c8b10b2c1e7d6bfeaf253a3872dc196 100644 --- a/Graphics/PostElement.cpp +++ b/Graphics/PostElement.cpp @@ -1,6 +1,6 @@ -// $Id: PostElement.cpp,v 1.69 2005-11-20 03:58:29 geuzaine Exp $ +// $Id: PostElement.cpp,v 1.70 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp index 72aff6de2a46bda4d659d922695809b3d801b10f..7866b9ae31e6e8d04adaba5d7a3d32d93d01e278 100644 --- a/Graphics/ReadImg.cpp +++ b/Graphics/ReadImg.cpp @@ -1,6 +1,6 @@ -// $Id: ReadImg.cpp,v 1.9 2005-01-01 19:35:29 geuzaine Exp $ +// $Id: ReadImg.cpp,v 1.10 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Graphics/ReadImg.h b/Graphics/ReadImg.h index 66a7d4c72b4bc8a36e033801fd726a92c3947ada..bd92bc4b2e30d80a77836a044295fb3dcc380c74 100644 --- a/Graphics/ReadImg.h +++ b/Graphics/ReadImg.h @@ -1,25 +1,25 @@ -#ifndef _READ_IMG_ -#define _READ_IMG_ - -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems to <gmsh@geuz.org>. - -void read_pnm (char *name); - -#endif +#ifndef _READ_IMG_ +#define _READ_IMG_ + +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +// USA. +// +// Please report all bugs and problems to <gmsh@geuz.org>. + +void read_pnm (char *name); + +#endif diff --git a/Graphics/Scale.cpp b/Graphics/Scale.cpp index b9ec804ed3a850d10e8b928c7fb7b620e8ca63d9..3b49eff6d595d3fc3a7f8d4e5000226334a2d64f 100644 --- a/Graphics/Scale.cpp +++ b/Graphics/Scale.cpp @@ -1,6 +1,6 @@ -// $Id: Scale.cpp,v 1.61 2005-07-08 22:07:39 geuzaine Exp $ +// $Id: Scale.cpp,v 1.62 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Makefile b/Makefile index 2bfb4c2e2c110461910465f785f00c071b9fe3d6..28be10ac0b54df5e38113edab67fc5c87e1193f5 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.407 2005-11-28 16:56:27 geuzaine Exp $ +# $Id: Makefile,v 1.408 2006-01-06 00:34:20 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -22,8 +22,8 @@ include variables GMSH_MAJOR_VERSION = 1 -GMSH_MINOR_VERSION = 61 -GMSH_PATCH_VERSION = 3 +GMSH_MINOR_VERSION = 62 +GMSH_PATCH_VERSION = 0 GMSH_EXTRA_VERSION = "-cvs" GMSH_VERSION = ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION}.${GMSH_PATCH_VERSION}${GMSH_EXTRA_VERSION} @@ -223,7 +223,7 @@ package-mac: " <key>CFBundleIconFile</key><string>Gmsh.icns</string>\n"\ " <key>CFBundleSignature</key><string>GMSH</string>\n"\ " <key>CFBundleGetInfoString</key><string>Gmsh ${GMSH_VERSION},"\ - "Copyright (C) 1997-2005 C. Geuzaine and J.-F. Remacle</string>\n"\ + "Copyright (C) 1997-2006 C. Geuzaine and J.-F. Remacle</string>\n"\ " <key>CFBundleIdentifier</key><string>org.geuz.Gmsh</string>\n"\ " <key>CFBundleDocumentTypes</key>\n"\ " <array>\n"\ diff --git a/Mesh/1D_Mesh.cpp b/Mesh/1D_Mesh.cpp index d5167d461fc7fdc98d60e650f8f010286a2146fe..f111c62d010ae9b3c68a0b43010e392c0c4131b8 100644 --- a/Mesh/1D_Mesh.cpp +++ b/Mesh/1D_Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: 1D_Mesh.cpp,v 1.45 2005-05-15 01:44:26 geuzaine Exp $ +// $Id: 1D_Mesh.cpp,v 1.46 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_BGMesh.cpp b/Mesh/2D_BGMesh.cpp index 58e0c3926753c3851de7dbcb5a71cb227890aa97..345acd67887e31a97217e5f7bd12685ce4b2cc56 100644 --- a/Mesh/2D_BGMesh.cpp +++ b/Mesh/2D_BGMesh.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_BGMesh.cpp,v 1.16 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_BGMesh.cpp,v 1.17 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Bowyer.cpp b/Mesh/2D_Bowyer.cpp index 870a1cbbbfc2ec9b2c526ae5f18df474902d6d71..12eaeff90a776cc3a31f859cdec851d6ce12a4b0 100644 --- a/Mesh/2D_Bowyer.cpp +++ b/Mesh/2D_Bowyer.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Bowyer.cpp,v 1.16 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Bowyer.cpp,v 1.17 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Bricks.cpp b/Mesh/2D_Bricks.cpp index 1407e2a0e404a774c1f0dab8cbe72341e8c65641..d39540129c7096eda4b763e60bd66f5eec78c66a 100644 --- a/Mesh/2D_Bricks.cpp +++ b/Mesh/2D_Bricks.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Bricks.cpp,v 1.14 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Bricks.cpp,v 1.15 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Cylindrical.cpp b/Mesh/2D_Cylindrical.cpp index b26432d53c53df9c5b6e0b36ca96d2df9d6a35b3..7c53788e880f7865858d7f2d96f8cffd0da608ad 100644 --- a/Mesh/2D_Cylindrical.cpp +++ b/Mesh/2D_Cylindrical.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Cylindrical.cpp,v 1.19 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Cylindrical.cpp,v 1.20 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_DivAndConq.cpp b/Mesh/2D_DivAndConq.cpp index 63580b3858a72be178ae985741298bdad784e138..bdb0131b99b0b87e1b0f381f178bc34dd708c8be 100644 --- a/Mesh/2D_DivAndConq.cpp +++ b/Mesh/2D_DivAndConq.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_DivAndConq.cpp,v 1.20 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_DivAndConq.cpp,v 1.21 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Elliptic.cpp b/Mesh/2D_Elliptic.cpp index 2db66d13d2388a50e2e99d5f615188fcfadba372..31f4b9e09ebeaba26fcb5dd37140c3b0fd67c1d2 100644 --- a/Mesh/2D_Elliptic.cpp +++ b/Mesh/2D_Elliptic.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Elliptic.cpp,v 1.22 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Elliptic.cpp,v 1.23 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_InitMesh.cpp b/Mesh/2D_InitMesh.cpp index 72a99285d9845855cfc2b9adc77982f2748f1721..4fdcc883f48e80b37752391a0713a4b5ce4bdee2 100644 --- a/Mesh/2D_InitMesh.cpp +++ b/Mesh/2D_InitMesh.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_InitMesh.cpp,v 1.21 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_InitMesh.cpp,v 1.22 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Links.cpp b/Mesh/2D_Links.cpp index dcee70da5d37c3b2ff71f67fafa4295c56f5f642..af549451145a0c8854339963354b4c4de2d93c37 100644 --- a/Mesh/2D_Links.cpp +++ b/Mesh/2D_Links.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Links.cpp,v 1.20 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Links.cpp,v 1.21 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Mesh.cpp b/Mesh/2D_Mesh.cpp index 2fcc67e0e7c79ae048f3ca6175bab769b06d2af7..e67b0c4e3a06860a9e51f8117be7af88f5f22265 100644 --- a/Mesh/2D_Mesh.cpp +++ b/Mesh/2D_Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Mesh.cpp,v 1.79 2005-08-19 14:07:32 remacle Exp $ +// $Id: 2D_Mesh.cpp,v 1.80 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Mesh.h b/Mesh/2D_Mesh.h index 0cbef4b0ebc99e3ab648db9be71dbf3a8504c36e..191eb222c9c0f08d5499d143e0ef35f53d3f1de4 100644 --- a/Mesh/2D_Mesh.h +++ b/Mesh/2D_Mesh.h @@ -1,7 +1,7 @@ #ifndef _2D_MESH_H_ #define _2D_MESH_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Mesh_Aniso.cpp b/Mesh/2D_Mesh_Aniso.cpp index eb2b2ecbf9d7ce742be2133333cfbae8b125525b..5d05bc1dd166c965087b08b8c5729540c5bfc349 100644 --- a/Mesh/2D_Mesh_Aniso.cpp +++ b/Mesh/2D_Mesh_Aniso.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Mesh_Aniso.cpp,v 1.45 2005-06-20 17:02:45 geuzaine Exp $ +// $Id: 2D_Mesh_Aniso.cpp,v 1.46 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Mesh_Triangle.cpp b/Mesh/2D_Mesh_Triangle.cpp index ba900f0701705d7a20e087a28bcb036629fc9f44..66a7bb346f6980be13b14552dd0087abbbe8aaeb 100644 --- a/Mesh/2D_Mesh_Triangle.cpp +++ b/Mesh/2D_Mesh_Triangle.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Mesh_Triangle.cpp,v 1.13 2005-11-25 23:49:04 geuzaine Exp $ +// $Id: 2D_Mesh_Triangle.cpp,v 1.14 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Parametric.cpp b/Mesh/2D_Parametric.cpp index 2599d58b55c91b5ccb5d6ba4987b596ccc2781de..a1b3d63a6b7497bbdfdf0e7f66207706559890b1 100644 --- a/Mesh/2D_Parametric.cpp +++ b/Mesh/2D_Parametric.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Parametric.cpp,v 1.15 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Parametric.cpp,v 1.16 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Recombine.cpp b/Mesh/2D_Recombine.cpp index 05450a548b251758a9f3c90bf6e20ad93348f558..0738a6062686439c44e863a999d0e2fbe93f3235 100644 --- a/Mesh/2D_Recombine.cpp +++ b/Mesh/2D_Recombine.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Recombine.cpp,v 1.25 2005-06-10 00:31:28 geuzaine Exp $ +// $Id: 2D_Recombine.cpp,v 1.26 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Transfinite.cpp b/Mesh/2D_Transfinite.cpp index ea0915918de647aae930964c49eda82c0a75d93d..df5581e06612047b65f823cbd03debcb89149858 100644 --- a/Mesh/2D_Transfinite.cpp +++ b/Mesh/2D_Transfinite.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Transfinite.cpp,v 1.4 2005-07-15 10:31:06 geuzaine Exp $ +// $Id: 2D_Transfinite.cpp,v 1.5 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Tree.cpp b/Mesh/2D_Tree.cpp index c49b518c83aa1b6f5e3285a7aa30dc109130aa77..86a3580f13ee8ec315e0a50c63d82b17fc2fd385 100644 --- a/Mesh/2D_Tree.cpp +++ b/Mesh/2D_Tree.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Tree.cpp,v 1.14 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Tree.cpp,v 1.15 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/2D_Util.cpp b/Mesh/2D_Util.cpp index f3f0ce4480e8b012cef1f84bf18cb0d266aba65c..5c9086b5af9de236ab58d17758c79307a6e2e213 100644 --- a/Mesh/2D_Util.cpp +++ b/Mesh/2D_Util.cpp @@ -1,6 +1,6 @@ -// $Id: 2D_Util.cpp,v 1.23 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 2D_Util.cpp,v 1.24 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_BGMesh.cpp b/Mesh/3D_BGMesh.cpp index 6e6d8fb435e9c371c64a403ef93e0dbfa2d48509..a641fe9a397da5d01be610f4a3135307b303740b 100644 --- a/Mesh/3D_BGMesh.cpp +++ b/Mesh/3D_BGMesh.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_BGMesh.cpp,v 1.37 2005-06-08 19:12:05 geuzaine Exp $ +// $Id: 3D_BGMesh.cpp,v 1.38 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Bricks.cpp b/Mesh/3D_Bricks.cpp index 57e9d28f1560a3c68aedaf95d88e0f5e3285915f..40a16fe5e17c05ecedcbb7aa3405b2687affb21a 100644 --- a/Mesh/3D_Bricks.cpp +++ b/Mesh/3D_Bricks.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Bricks.cpp,v 1.16 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 3D_Bricks.cpp,v 1.17 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Coherence.cpp b/Mesh/3D_Coherence.cpp index fdfeeced999be2e0319414373afb049eed2c6895..83da4aaa4bce483aed0466e68e5653d368eab2d1 100644 --- a/Mesh/3D_Coherence.cpp +++ b/Mesh/3D_Coherence.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Coherence.cpp,v 1.35 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 3D_Coherence.cpp,v 1.36 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Divide.cpp b/Mesh/3D_Divide.cpp index 8032271bb86dfc18ec1d00d459e8927fcc4c7ccd..24caf4ca7208bcb4c12d45855c87a9887378327b 100644 --- a/Mesh/3D_Divide.cpp +++ b/Mesh/3D_Divide.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Divide.cpp,v 1.23 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 3D_Divide.cpp,v 1.24 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp index 45393e02317db767fdf2f91adb37a5a357ccdb32..a0a96e01806426b981213e983171149e829a5918 100644 --- a/Mesh/3D_Extrude.cpp +++ b/Mesh/3D_Extrude.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Extrude.cpp,v 1.90 2005-06-10 22:50:49 geuzaine Exp $ +// $Id: 3D_Extrude.cpp,v 1.91 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp index 7aef18d3b91cd7bbdcd40ba6bcaa51815ec93bad..b62d7f20c81e1c7480f144c62f541faa6155b8a7 100644 --- a/Mesh/3D_Extrude_Old.cpp +++ b/Mesh/3D_Extrude_Old.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Extrude_Old.cpp,v 1.38 2005-07-03 08:00:58 geuzaine Exp $ +// $Id: 3D_Extrude_Old.cpp,v 1.39 2006-01-06 00:34:25 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Mesh.cpp b/Mesh/3D_Mesh.cpp index 2c99463e1080fb4de045770be1ccf649be20276a..e6e777b7558c07f0fa232cbcaa56a1732c1a8e26 100644 --- a/Mesh/3D_Mesh.cpp +++ b/Mesh/3D_Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Mesh.cpp,v 1.68 2005-12-08 15:35:20 remacle Exp $ +// $Id: 3D_Mesh.cpp,v 1.69 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Mesh.h b/Mesh/3D_Mesh.h index f0faf7e6564cee8b104d4abc6dfa9a097ff10301..f4c082be2f233b22c615fde516ca8d7c47802047 100644 --- a/Mesh/3D_Mesh.h +++ b/Mesh/3D_Mesh.h @@ -1,7 +1,7 @@ #ifndef _3D_MESH_H_ #define _3D_MESH_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Mesh_Netgen.cpp b/Mesh/3D_Mesh_Netgen.cpp index 416ec523588a824f12ccabcc221af4602b64874e..d200e8eaa88dd40f5ed585c172e886d2fb0a65d7 100644 --- a/Mesh/3D_Mesh_Netgen.cpp +++ b/Mesh/3D_Mesh_Netgen.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Mesh_Netgen.cpp,v 1.17 2005-11-28 19:19:45 geuzaine Exp $ +// $Id: 3D_Mesh_Netgen.cpp,v 1.18 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Mesh_Old.cpp b/Mesh/3D_Mesh_Old.cpp index 4d5e22bceb735a57a68a5941ab07c76b721db783..e17eaf6b05f8f476d499ab5bb9cecb0fa2d47071 100644 --- a/Mesh/3D_Mesh_Old.cpp +++ b/Mesh/3D_Mesh_Old.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Mesh_Old.cpp,v 1.14 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: 3D_Mesh_Old.cpp,v 1.15 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Mesh_Tetgen.cpp b/Mesh/3D_Mesh_Tetgen.cpp index 3e1ba5b3454908069842a366e85ffa6ee49d236d..2ff9102a36f64468925f5624afca87b17e758407 100644 --- a/Mesh/3D_Mesh_Tetgen.cpp +++ b/Mesh/3D_Mesh_Tetgen.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Mesh_Tetgen.cpp,v 1.3 2005-08-22 00:29:11 geuzaine Exp $ +// $Id: 3D_Mesh_Tetgen.cpp,v 1.4 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/3D_Transfinite.cpp b/Mesh/3D_Transfinite.cpp index 40c717f4a8b9b2329006863819596bbf88f8c53a..3ea0e019a691450cd27ecb4e38d5058891375675 100644 --- a/Mesh/3D_Transfinite.cpp +++ b/Mesh/3D_Transfinite.cpp @@ -1,6 +1,6 @@ -// $Id: 3D_Transfinite.cpp,v 1.4 2005-11-28 19:19:45 geuzaine Exp $ +// $Id: 3D_Transfinite.cpp,v 1.5 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp index bfa28416a0c6caaf6aba1a6431effe123a6d8eab..388634ceb3c8e4debc694c586743988444150bf2 100644 --- a/Mesh/BDS.cpp +++ b/Mesh/BDS.cpp @@ -1,6 +1,6 @@ -// $Id: BDS.cpp,v 1.46 2005-12-11 14:27:46 remacle Exp $ +// $Id: BDS.cpp,v 1.47 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/BDS.h b/Mesh/BDS.h index a09014ebdc18d1a25a2c76d274301c9a0523cd20..c3b957cc32f907f6a1131f861ce242855246dd43 100644 --- a/Mesh/BDS.h +++ b/Mesh/BDS.h @@ -1,4 +1,4 @@ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp index 1df8e6ed8ab12acf88bf3652fcb241f057ae7a3d..d02ae8ec864dc765f80f9d26f0ff2e272c590ebe 100644 --- a/Mesh/Create.cpp +++ b/Mesh/Create.cpp @@ -1,6 +1,6 @@ -// $Id: Create.cpp,v 1.79 2005-11-28 19:13:49 geuzaine Exp $ +// $Id: Create.cpp,v 1.80 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Create.h b/Mesh/Create.h index e3a23c14bcc09377f62a5b9c4b4f07da4b584e95..25e2e755b85e741fab4b9daafd23fc7557946f5d 100644 --- a/Mesh/Create.h +++ b/Mesh/Create.h @@ -1,7 +1,7 @@ #ifndef _CREATE_H_ #define _CREATE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/CrossData.cpp b/Mesh/CrossData.cpp index 417b0a3aaeb763f28d8373c80776b3490442e14e..1dc581bd5b6a94bf7847a92b1b450d912101fb37 100644 --- a/Mesh/CrossData.cpp +++ b/Mesh/CrossData.cpp @@ -1,6 +1,6 @@ -// $Id: CrossData.cpp,v 1.13 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: CrossData.cpp,v 1.14 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp index cb1b6ea8b89a8d0c9ef5ae9d4fff5204e31490a4..aa153a996b486342d3995be08ae97e905e6e0880 100644 --- a/Mesh/DiscreteSurface.cpp +++ b/Mesh/DiscreteSurface.cpp @@ -1,6 +1,6 @@ -// $Id: DiscreteSurface.cpp,v 1.34 2005-12-08 15:35:20 remacle Exp $ +// $Id: DiscreteSurface.cpp,v 1.35 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Edge.cpp b/Mesh/Edge.cpp index 1c77f113328abf6762d26d7645454f57c58f791a..756768e63e869848847f1670de4b5cc7aa73750f 100644 --- a/Mesh/Edge.cpp +++ b/Mesh/Edge.cpp @@ -1,6 +1,6 @@ -// $Id: Edge.cpp,v 1.19 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: Edge.cpp,v 1.20 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Edge.h b/Mesh/Edge.h index 99e0e4d691418a0a86a76c37d6832b7e9b10b92e..94175f7a9646efe41554d18c0db6e237a431cf5b 100644 --- a/Mesh/Edge.h +++ b/Mesh/Edge.h @@ -1,7 +1,7 @@ #ifndef _EDGE_H_ #define _EDGE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Element.cpp b/Mesh/Element.cpp index 3cabd1be036950f42a078a92257145e35e3fbddf..91299174585ec37aee2816ab6189e6f50c84a425 100644 --- a/Mesh/Element.cpp +++ b/Mesh/Element.cpp @@ -1,6 +1,6 @@ -// $Id: Element.cpp,v 1.9 2005-11-28 15:59:52 geuzaine Exp $ +// $Id: Element.cpp,v 1.10 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Element.h b/Mesh/Element.h index 387da33950b9b3062fc6ffd8dae004017e61f080..078a355bd5cc664fa848edce0372fb3f79ea52dd 100644 --- a/Mesh/Element.h +++ b/Mesh/Element.h @@ -1,7 +1,7 @@ #ifndef _ELEMENT_H_ #define _ELEMENT_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Face.cpp b/Mesh/Face.cpp index a4c47109087eb7369755ae1e1988d1c8ca760696..c2db9dc190bf5d1e9d39434fab626d4c889ba4ad 100644 --- a/Mesh/Face.cpp +++ b/Mesh/Face.cpp @@ -1,6 +1,6 @@ -// $Id: Face.cpp,v 1.3 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: Face.cpp,v 1.4 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Face.h b/Mesh/Face.h index 85c34bed7876cee526ed169bd3c481c8e6b7e609..0557a6105df715cc5ba062ef4499694bbba0d240 100644 --- a/Mesh/Face.h +++ b/Mesh/Face.h @@ -1,7 +1,7 @@ #ifndef _FACE_H_ #define _FACE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index 83f108f9c4f7172f3177c18da54ea959b21d4371..50e0f073ac4ff17bddb2872c4564c82eb85ae6df 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -1,6 +1,6 @@ -// $Id: Generator.cpp,v 1.73 2005-10-26 15:19:24 geuzaine Exp $ +// $Id: Generator.cpp,v 1.74 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Interpolation.cpp b/Mesh/Interpolation.cpp index d75c81b9256b9a9f11d69bc33c121f1c6adcd4fc..16b51a20ddf4412728bfdf72b28320cb775fd080 100644 --- a/Mesh/Interpolation.cpp +++ b/Mesh/Interpolation.cpp @@ -1,6 +1,6 @@ -// $Id: Interpolation.cpp,v 1.26 2005-01-01 19:35:30 geuzaine Exp $ +// $Id: Interpolation.cpp,v 1.27 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Interpolation.h b/Mesh/Interpolation.h index 8adeb24bbca11658d0aea2f3a2bb65228579fc90..f58638c91bb690d41b8168d29ed37d52768679ea 100644 --- a/Mesh/Interpolation.h +++ b/Mesh/Interpolation.h @@ -1,7 +1,7 @@ #ifndef _INTERPOLATION_H_ #define _INTERPOLATION_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Makefile b/Mesh/Makefile index a1d4947797a770569a695195d2e89d1210b98443..e9c5693cfcbb10b1a7f62462c8a236c582625029 100644 --- a/Mesh/Makefile +++ b/Mesh/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.99 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.100 2006-01-06 00:34:26 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Mesh/Matrix.h b/Mesh/Matrix.h index 07461d84e28669cdb61d3a96c470015326770404..cd2f278862b34ea40573a79ab24c4bee9c8c47de 100644 --- a/Mesh/Matrix.h +++ b/Mesh/Matrix.h @@ -1,7 +1,7 @@ #ifndef _GMSH_MATRIX_ #define _GMSH_MATRIX_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 1f2a763246a6c34a7c86e19b04cc3db942629533..daf026dc0353bfd5cbefa92efaf435e8f2aca6b5 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -1,7 +1,7 @@ #ifndef _MESH_H_ #define _MESH_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/MeshQuality.cpp b/Mesh/MeshQuality.cpp index 265ae70e210238d5bf30d3600fa6b623bbc6b08a..ea27491bc00c35b51c36797965eaddd7abc8ae0b 100644 --- a/Mesh/MeshQuality.cpp +++ b/Mesh/MeshQuality.cpp @@ -1,6 +1,6 @@ -// $Id: MeshQuality.cpp,v 1.16 2005-01-01 19:35:31 geuzaine Exp $ +// $Id: MeshQuality.cpp,v 1.17 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Metric.cpp b/Mesh/Metric.cpp index ba3811fa57f6b71f64a7c4dcc3137b73fb31acd1..2fc659ea82919095308dc37e988e58fef9c817b0 100644 --- a/Mesh/Metric.cpp +++ b/Mesh/Metric.cpp @@ -1,6 +1,6 @@ -// $Id: Metric.cpp,v 1.20 2005-01-01 19:35:31 geuzaine Exp $ +// $Id: Metric.cpp,v 1.21 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Metric.h b/Mesh/Metric.h index bbf27f1d7a0dbad87f416bda0da2713be550f403..896e1427a301195d381ba5660ad7d76012b0941f 100644 --- a/Mesh/Metric.h +++ b/Mesh/Metric.h @@ -1,7 +1,7 @@ #ifndef _METRIC_H_ #define _METRIC_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Nurbs.cpp b/Mesh/Nurbs.cpp index 06b7bbbf0d03ad3b05a201cddfc5ccbfc3b9e5c9..2aec85d72ca9ff154ece3abca23994a69f606d8b 100644 --- a/Mesh/Nurbs.cpp +++ b/Mesh/Nurbs.cpp @@ -1,6 +1,6 @@ -// $Id: Nurbs.cpp,v 1.16 2005-01-01 19:35:31 geuzaine Exp $ +// $Id: Nurbs.cpp,v 1.17 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Nurbs.h b/Mesh/Nurbs.h index b0fddb6e1cd9a448271261e7bbb8efea57644264..c7057f7f57dda1baba64934ae1d79d9f45027f70 100644 --- a/Mesh/Nurbs.h +++ b/Mesh/Nurbs.h @@ -1,7 +1,7 @@ #ifndef _NURBS_H_ #define _NURBS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/PartitionMesh.cpp b/Mesh/PartitionMesh.cpp index b07224452380c1692ac82c1c011dc695a55f48de..8f72583d6dda700de0fcd6832d6cf3a50c6adfc2 100644 --- a/Mesh/PartitionMesh.cpp +++ b/Mesh/PartitionMesh.cpp @@ -1,6 +1,6 @@ -// $Id: PartitionMesh.cpp,v 1.6 2005-12-08 15:35:20 remacle Exp $ +// $Id: PartitionMesh.cpp,v 1.7 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp index 811c2ada87d37d474a47c2c11f2012abf99694ad..6c54a7aece6733488ff322d7d876af67dbf95613 100644 --- a/Mesh/Print_Mesh.cpp +++ b/Mesh/Print_Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: Print_Mesh.cpp,v 1.67 2005-11-03 06:46:54 geuzaine Exp $ +// $Id: Print_Mesh.cpp,v 1.68 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index c2041c63eb9e6857799221f0c8dee453e124f575..68d6089158e63e1ea707049f10f36bfde2d7877e 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,6 +1,6 @@ -// $Id: Read_Mesh.cpp,v 1.95 2005-10-16 03:15:31 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.96 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index a7a17cdd2e4ac4371afe34742521fede8b98790e..128135a8a915942fccc9dcd6d5b4f8b1328a26d4 100644 --- a/Mesh/SecondOrder.cpp +++ b/Mesh/SecondOrder.cpp @@ -1,6 +1,6 @@ -// $Id: SecondOrder.cpp,v 1.34 2005-10-26 15:19:24 geuzaine Exp $ +// $Id: SecondOrder.cpp,v 1.35 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Simplex.cpp b/Mesh/Simplex.cpp index 0fb506c7fcfc9ac8becdd5922ed5da3e9d7e5c3b..276727ee6c18b94431f936120974df21e03a6e48 100644 --- a/Mesh/Simplex.cpp +++ b/Mesh/Simplex.cpp @@ -1,6 +1,6 @@ -// $Id: Simplex.cpp,v 1.44 2005-07-03 08:02:24 geuzaine Exp $ +// $Id: Simplex.cpp,v 1.45 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Simplex.h b/Mesh/Simplex.h index 39f6070c653fee47793d257e88e9202c2a76b472..041f8ec7a0566ab7ac498bd454c8ec2a14a6c2ae 100644 --- a/Mesh/Simplex.h +++ b/Mesh/Simplex.h @@ -1,7 +1,7 @@ #ifndef _SIMPLEX_H_ #define _SIMPLEX_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Smoothing.cpp b/Mesh/Smoothing.cpp index 8634831d804c99053672a1a48b41df5adbab2664..df0a826bed75e0e53001475c797acfa87b1ccfeb 100644 --- a/Mesh/Smoothing.cpp +++ b/Mesh/Smoothing.cpp @@ -1,6 +1,6 @@ -// $Id: Smoothing.cpp,v 1.15 2005-01-01 19:35:31 geuzaine Exp $ +// $Id: Smoothing.cpp,v 1.16 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/SwapEdge.cpp b/Mesh/SwapEdge.cpp index 5e896a7872f89f436fb54a966a2c23a86661c13e..283badcc43f24875de8f01589a829f23bfe96747 100644 --- a/Mesh/SwapEdge.cpp +++ b/Mesh/SwapEdge.cpp @@ -1,6 +1,6 @@ -// $Id: SwapEdge.cpp,v 1.17 2005-01-01 19:35:31 geuzaine Exp $ +// $Id: SwapEdge.cpp,v 1.18 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/SwapPatterns.h b/Mesh/SwapPatterns.h index 89a79669b2faa612766212a28fc70556f7e2eaa8..879e68c298bc8cd63bf6a3f554bbfac0ba873a66 100644 --- a/Mesh/SwapPatterns.h +++ b/Mesh/SwapPatterns.h @@ -1,7 +1,7 @@ #ifndef _SWAP_PATTERNS_H_ #define _SWAP_PATTERNS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Utils.cpp b/Mesh/Utils.cpp index 6027816e8b743e1f958643ba0f5bae32d1bab410..58366d45c1af7aa4625a8b8d4e8676961e6408a4 100644 --- a/Mesh/Utils.cpp +++ b/Mesh/Utils.cpp @@ -1,6 +1,6 @@ -// $Id: Utils.cpp,v 1.29 2005-12-13 23:29:15 geuzaine Exp $ +// $Id: Utils.cpp,v 1.30 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Utils.h b/Mesh/Utils.h index 89595939e0543614a3da8781e5c9c84add43a536..c3eeff146809268251f7609dfc29f976e4eef45f 100644 --- a/Mesh/Utils.h +++ b/Mesh/Utils.h @@ -1,7 +1,7 @@ #ifndef _UTILS_H_ #define _UTILS_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Vertex.cpp b/Mesh/Vertex.cpp index ed810296fa30dc498c5fad72fad9d33fd88acd4b..887638c54f6a72a3db1a36ce875f90301982212f 100644 --- a/Mesh/Vertex.cpp +++ b/Mesh/Vertex.cpp @@ -1,6 +1,6 @@ -// $Id: Vertex.cpp,v 1.28 2005-11-28 19:13:49 geuzaine Exp $ +// $Id: Vertex.cpp,v 1.29 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Mesh/Vertex.h b/Mesh/Vertex.h index b59dfd33c2d893f914a20ae74bfc4f7338009a84..da09302928ab7dbefa6b09e6008f0b3e6a64a0a1 100644 --- a/Mesh/Vertex.h +++ b/Mesh/Vertex.h @@ -1,7 +1,7 @@ #ifndef _VERTEX_H_ #define _VERTEX_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/EigSolve.cpp b/Numeric/EigSolve.cpp index fe353e104a5bb6803e81b58f2b57dd7176259ec3..f04c0bffb9ecc34729686a44e7194bbf6c9f24cc 100644 --- a/Numeric/EigSolve.cpp +++ b/Numeric/EigSolve.cpp @@ -1,6 +1,6 @@ -// $Id: EigSolve.cpp,v 1.5 2005-01-01 19:35:32 geuzaine Exp $ +// $Id: EigSolve.cpp,v 1.6 2006-01-06 00:34:26 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/EigSolve.h b/Numeric/EigSolve.h index b7984a06774c7734a593a24f01b9fe26f38c1a49..a392aab6f727feb39dfb608d39cb4efa575a555d 100644 --- a/Numeric/EigSolve.h +++ b/Numeric/EigSolve.h @@ -1,7 +1,7 @@ #ifndef _EIGSOLVE_H_ #define _EIGSOLVE_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/Makefile b/Numeric/Makefile index 2e6752736dbf68be28322810b587676b10de18ff..81669352cb61c9a01985ed544e1452ad9d98e3c3 100644 --- a/Numeric/Makefile +++ b/Numeric/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.22 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.23 2006-01-06 00:34:27 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp index 75700c0c224b95671ca8f928246cd296ebeef300..c052ea5dfa3e257fa01f70556481f9dea33e3aa6 100644 --- a/Numeric/Numeric.cpp +++ b/Numeric/Numeric.cpp @@ -1,6 +1,6 @@ -// $Id: Numeric.cpp,v 1.23 2005-03-11 05:47:56 geuzaine Exp $ +// $Id: Numeric.cpp,v 1.24 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h index 19afc092b19126df04ff7963c6db59bf84dfcde3..3265f240296105df13bf43b8655422db211db51f 100644 --- a/Numeric/Numeric.h +++ b/Numeric/Numeric.h @@ -1,7 +1,7 @@ #ifndef _NUMERIC_H_ #define _NUMERIC_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/gsl_brent.cpp b/Numeric/gsl_brent.cpp index dd4ccea2c02101f660a2fe32c3f2ea4b618ebb11..e1aa2959119114e0f7f9722294e5698935346d2e 100644 --- a/Numeric/gsl_brent.cpp +++ b/Numeric/gsl_brent.cpp @@ -1,6 +1,6 @@ -// $Id: gsl_brent.cpp,v 1.12 2005-01-01 19:35:32 geuzaine Exp $ +// $Id: gsl_brent.cpp,v 1.13 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Numeric/gsl_newt.cpp b/Numeric/gsl_newt.cpp index ca25655649e42c0d0217ed5243cbb0072a3019d9..64798a5555d30017bb6bff4016c906f1554cc386 100644 --- a/Numeric/gsl_newt.cpp +++ b/Numeric/gsl_newt.cpp @@ -1,6 +1,6 @@ -// $Id: gsl_newt.cpp,v 1.13 2005-01-01 19:35:32 geuzaine Exp $ +// $Id: gsl_newt.cpp,v 1.14 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parallel/Makefile b/Parallel/Makefile index cca003a7ca7d9c84d1ab00f234e4cafbde9673ce..0a7e32bb65d036f03082a10a9621cf87c9c605dd 100644 --- a/Parallel/Makefile +++ b/Parallel/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.23 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.24 2006-01-06 00:34:27 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Parallel/ParUtil.cpp b/Parallel/ParUtil.cpp index 56108a86dcd0e9b90e398b0ad6b8bab6b940e89d..91e7ee884c59e05bba2576abcb5fff4aad9bc79f 100644 --- a/Parallel/ParUtil.cpp +++ b/Parallel/ParUtil.cpp @@ -1,6 +1,6 @@ -// $Id: ParUtil.cpp,v 1.13 2005-08-31 21:44:44 geuzaine Exp $ +// $Id: ParUtil.cpp,v 1.14 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parallel/ParUtil.h b/Parallel/ParUtil.h index b26a91a9e73905854a368b89bcc6dbc6d0bf6577..c1b11fa56ebc51c6828f1f72ee595e0714ba72b1 100644 --- a/Parallel/ParUtil.h +++ b/Parallel/ParUtil.h @@ -1,7 +1,7 @@ #ifndef _H_ParUtil #define _H_ParUtil -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/FunctionManager.cpp b/Parser/FunctionManager.cpp index b759e0cb8ae6765640cbe2abd1c2bd297215e48c..7d07cfec5bae7c900d0be0e5f3f673c570497e2a 100644 --- a/Parser/FunctionManager.cpp +++ b/Parser/FunctionManager.cpp @@ -1,6 +1,6 @@ -// $Id: FunctionManager.cpp,v 1.21 2005-01-01 19:35:32 geuzaine Exp $ +// $Id: FunctionManager.cpp,v 1.22 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/FunctionManager.h b/Parser/FunctionManager.h index f19eae69da39e554cd34bccfb98ae5d276bb32ad..496df7a5faf91907dbf7fc2078239dae4dedc221 100644 --- a/Parser/FunctionManager.h +++ b/Parser/FunctionManager.h @@ -1,7 +1,7 @@ #ifndef _FUNCTION_MANAGER_H_ #define _FUNCTION_MANAGER_H_ -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 374841286eae23ce6f5e9d5519c7552163454154..cc6f7e144e454e9fbbb1522c148c5b22c006ba0c 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,7 +1,7 @@ %{ -// $Id: Gmsh.l,v 1.73 2005-08-09 23:41:13 geuzaine Exp $ +// $Id: Gmsh.l,v 1.74 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 314e7d0857906cd76f5f6ffd208b53e505817a73..15c6884ff3027aee7183a47e7b9132207b83207c 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -168,9 +168,9 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.246 2005-12-22 20:42:42 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.247 2006-01-06 00:34:27 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index dc02828c8fc05afc7dfb42ea1c2c65f063a57d45..5a904dc95562837557b9e011c97d85470090ad85 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,7 +1,7 @@ %{ -// $Id: Gmsh.y,v 1.214 2005-12-22 20:42:45 geuzaine Exp $ +// $Id: Gmsh.y,v 1.215 2006-01-06 00:34:29 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 78640ed96aec03fa7ab50a1b5e18bd7912f177e2..e9033f1aef2b29851c5744800d4dc308cf19f9a1 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.245 2005-12-22 20:42:45 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.246 2006-01-06 00:34:29 geuzaine Exp $ */ #define FLEX_SCANNER @@ -1026,9 +1026,9 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.245 2005-12-22 20:42:45 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.246 2006-01-06 00:34:29 geuzaine Exp $ // -// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/Parser/Makefile b/Parser/Makefile index 739f3a29fdae22ced83ac75a0465b4e01845eba8..afdd9a0b888b04981eee02a57120044d22a83c77 100644 --- a/Parser/Makefile +++ b/Parser/Makefile @@ -1,6 +1,6 @@ -# $Id: Makefile,v 1.76 2005-12-19 02:35:04 geuzaine Exp $ +# $Id: Makefile,v 1.77 2006-01-06 00:34:32 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/TODO b/TODO index 1212001611a44cd8e94f6acdf2bfe34ebb55c401..9e4e8daa0d1129b870a61e634ce10a80556b10de 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.110 2005-12-18 18:19:22 geuzaine Exp $ +$Id: TODO,v 1.111 2006-01-06 00:34:20 geuzaine Exp $ ******************************************************************** @@ -13,12 +13,7 @@ mesh file (in MSH format) ******************************************************************** -Add a way to select multiple entities using a lasso + add a way to -remove entities from a selection by clicking on them - -******************************************************************** - -On Windows without Cygwin: +On Windows WITHOUT Cygwin: - rewrite solver interface (GmshServer and GmshClient) - Functions in parser don't seem to work - fix compilation issues in triangle (timezone) and gl2ps (zlib??) @@ -64,11 +59,6 @@ normals...) ******************************************************************** -color selected surface/line/point on the fly (instead of just showing -the entity number) - -******************************************************************** - Would be nice to have Plugin(CutBox) and Plugin(CutCylinder) (Box: using Xc, Yc, Zc, Xl, Yl, Zl, Xr, Yr, Zr, or 4 points. 4 points is more general: can be wedge. Cylinder should be able to degenerate @@ -85,6 +75,10 @@ add a mode to pick a mesh element with the mouse (a la medit) ******************************************************************** +add a way to display the coordinates of a node in the mesh + +******************************************************************** + add option to cutmesh to cap the mesh instead of displaying "whole" elements @@ -121,7 +115,9 @@ disable all replacements) ******************************************************************** -Add a "bitmap" object in the views, e.g. to add a logo +Add a "bitmap" object in the views, e.g. to add a logo. Maybe would +be good enough to add another mode in the "background gradient" stuff +to display an image in the background ******************************************************************** @@ -146,11 +142,6 @@ Test and reintroduce the cylindrical surfaces (cylinder, cone, torus) ******************************************************************** -fix the orientation of hexas, prisms and pyramids (reorder nodes -according to Orientation()) - -******************************************************************** - add parameter to transformation operations to copy the meshes ******************************************************************** @@ -174,7 +165,7 @@ precision...). Rescale? ******************************************************************** find a better way to display the time/timestep in the scale... (would -be solved if we had dynamic labels). +be solved if we had dynamic labels?) ******************************************************************** diff --git a/configure.in b/configure.in index ce89980e64d15a3a1c183cbae3da3b76083e1990..b7d1c9ae3f748beec060329023548adbb7c03f0c 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ -dnl $Id: configure.in,v 1.84 2005-12-22 20:42:41 geuzaine Exp $ +dnl $Id: configure.in,v 1.85 2006-01-06 00:34:20 geuzaine Exp $ dnl -dnl Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +dnl Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by diff --git a/variables.in b/variables.in index 87ec7d53087c2b2ac6603b34b7d3b92eeb2b0f89..f8fcd1273e36e4cd7fb9f03a095237bac98500a7 100644 --- a/variables.in +++ b/variables.in @@ -1,6 +1,6 @@ -# $Id: variables.in,v 1.11 2005-01-01 19:35:27 geuzaine Exp $ +# $Id: variables.in,v 1.12 2006-01-06 00:34:20 geuzaine Exp $ # -# Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle +# Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by