From 1930bbe27ee5c32a1b821e059f6e582b1efc10f9 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Fri, 6 Jan 2006 00:34:32 +0000 Subject: [PATCH] airport work: - new button under the graphic window to temporarily disable mouse selection (speeds-up redrawing of very large models + permits to rotate/zoom-in a model in selection mode even when the whole screen is full of selectable entities--e.g. a surface mesh) - new "lasso" selection mode (to select entities using the same kind of lasso as the lasso zoom: just Ctrl+click, then drag the mouse in selection mode; the shortcuts are the same as for the lasso zoom) - it is now possible to unselect entities using the middle mouse button (only for the creation of physicals at the moment; not sure if it's useful in the other cases) - new button in visibility browser to invert the current selection (very useful e.g. when multiple physical entities are associated with a given elementary entity, in order to "peel" away the model when adding new physicals; cf. philou) - changed meaning of Escape shortcut (cancel lasso or toggle mouse selection) + restore standard fltk Escape handling for all dialog windows - updated copyright string - new mesh label mode (coordinates); all label types are now also available for mesh vertices - added option in 'Print Option' dialog to disable printing of help strings - added a comment string with the date when creating a new file - new snapping grid for adding points in the GUI --- Box/Main.cpp | 4 +- Box/Makefile | 4 +- Common/AdaptiveViews.cpp | 2 +- Common/AdaptiveViews.h | 2 +- Common/ColorTable.cpp | 4 +- Common/ColorTable.h | 2 +- Common/Colors.h | 2 +- Common/CommandLine.cpp | 6 +- Common/CommandLine.h | 2 +- Common/Context.cpp | 4 +- Common/Context.h | 9 +- Common/DefaultOptions.h | 20 +- Common/Gmsh.h | 2 +- Common/GmshUI.h | 2 +- Common/License.cpp | 4 +- Common/Makefile | 4 +- Common/Message.h | 2 +- Common/Options.cpp | 117 ++++++++---- Common/Options.h | 25 +-- Common/SmoothNormals.cpp | 4 +- Common/SmoothNormals.h | 2 +- Common/Timer.cpp | 4 +- Common/Timer.h | 2 +- Common/VertexArray.cpp | 4 +- Common/VertexArray.h | 2 +- Common/Views.cpp | 4 +- Common/Views.h | 2 +- Common/Visibility.cpp | 4 +- Common/Visibility.h | 2 +- DataStr/List.cpp | 4 +- DataStr/List.h | 2 +- DataStr/Makefile | 4 +- DataStr/Malloc.cpp | 4 +- DataStr/Malloc.h | 2 +- DataStr/SafeIO.cpp | 4 +- DataStr/SafeIO.h | 2 +- DataStr/Tools.cpp | 4 +- DataStr/Tools.h | 2 +- DataStr/Tree.cpp | 4 +- DataStr/Tree.h | 2 +- Fltk/Bitmaps.h | 2 +- Fltk/Callbacks.cpp | 374 +++++++++++++++++++++++-------------- Fltk/Callbacks.h | 3 +- Fltk/Colorbar_Window.cpp | 4 +- Fltk/Colorbar_Window.h | 2 +- Fltk/File_Picker.h | 2 +- Fltk/GUI.cpp | 81 +++++--- Fltk/GUI.h | 7 +- Fltk/GUI_Extras.cpp | 25 ++- Fltk/GUI_Extras.h | 2 +- Fltk/GmshServer.h | 2 +- Fltk/MacIcons.icns | Bin 33897 -> 33898 bytes Fltk/MacIconsGeo.icns | Bin 46699 -> 46700 bytes Fltk/MacIconsMsh.icns | Bin 47013 -> 47014 bytes Fltk/MacIconsPos.icns | Bin 46672 -> 46673 bytes Fltk/Main.cpp | 4 +- Fltk/Makefile | 4 +- Fltk/Message.cpp | 8 +- Fltk/Opengl.cpp | 58 ++++-- Fltk/Opengl_Window.cpp | 167 +++++++++++------ Fltk/Opengl_Window.h | 16 +- Fltk/Shortcut_Window.h | 2 +- Fltk/Solvers.cpp | 4 +- Fltk/Solvers.h | 2 +- Fltk/Win32Icon.ico | Bin 2734 -> 2735 bytes Fltk/Win32Icon.res | Bin 3106 -> 3107 bytes Geo/CAD.cpp | 4 +- Geo/CAD.h | 2 +- Geo/ExtractContour.cpp | 4 +- Geo/ExtractContour.h | 2 +- Geo/ExtrudeParams.cpp | 4 +- Geo/ExtrudeParams.h | 2 +- Geo/Geo.cpp | 4 +- Geo/Geo.h | 2 +- Geo/GeoUtils.cpp | 4 +- Geo/GeoUtils.h | 2 +- Geo/Makefile | 4 +- Geo/MinMax.cpp | 4 +- Geo/MinMax.h | 2 +- Geo/Print_Geo.cpp | 4 +- Geo/StepGeomDatabase.cpp | 4 +- Geo/StepGeomDatabase.h | 2 +- Graphics/CreateFile.cpp | 6 +- Graphics/CreateFile.h | 2 +- Graphics/Draw.cpp | 77 ++++---- Graphics/Draw.h | 27 +-- Graphics/Entity.cpp | 4 +- Graphics/Geom.cpp | 11 +- Graphics/Graph2D.cpp | 4 +- Graphics/Iso.cpp | 4 +- Graphics/Iso.h | 2 +- Graphics/Makefile | 4 +- Graphics/Mesh.cpp | 100 +++++++--- Graphics/Post.cpp | 4 +- Graphics/PostElement.cpp | 4 +- Graphics/ReadImg.cpp | 4 +- Graphics/ReadImg.h | 50 ++--- Graphics/Scale.cpp | 4 +- Makefile | 10 +- Mesh/1D_Mesh.cpp | 4 +- Mesh/2D_BGMesh.cpp | 4 +- Mesh/2D_Bowyer.cpp | 4 +- Mesh/2D_Bricks.cpp | 4 +- Mesh/2D_Cylindrical.cpp | 4 +- Mesh/2D_DivAndConq.cpp | 4 +- Mesh/2D_Elliptic.cpp | 4 +- Mesh/2D_InitMesh.cpp | 4 +- Mesh/2D_Links.cpp | 4 +- Mesh/2D_Mesh.cpp | 4 +- Mesh/2D_Mesh.h | 2 +- Mesh/2D_Mesh_Aniso.cpp | 4 +- Mesh/2D_Mesh_Triangle.cpp | 4 +- Mesh/2D_Parametric.cpp | 4 +- Mesh/2D_Recombine.cpp | 4 +- Mesh/2D_Transfinite.cpp | 4 +- Mesh/2D_Tree.cpp | 4 +- Mesh/2D_Util.cpp | 4 +- Mesh/3D_BGMesh.cpp | 4 +- Mesh/3D_Bricks.cpp | 4 +- Mesh/3D_Coherence.cpp | 4 +- Mesh/3D_Divide.cpp | 4 +- Mesh/3D_Extrude.cpp | 4 +- Mesh/3D_Extrude_Old.cpp | 4 +- Mesh/3D_Mesh.cpp | 4 +- Mesh/3D_Mesh.h | 2 +- Mesh/3D_Mesh_Netgen.cpp | 4 +- Mesh/3D_Mesh_Old.cpp | 4 +- Mesh/3D_Mesh_Tetgen.cpp | 4 +- Mesh/3D_Transfinite.cpp | 4 +- Mesh/BDS.cpp | 4 +- Mesh/BDS.h | 2 +- Mesh/Create.cpp | 4 +- Mesh/Create.h | 2 +- Mesh/CrossData.cpp | 4 +- Mesh/DiscreteSurface.cpp | 4 +- Mesh/Edge.cpp | 4 +- Mesh/Edge.h | 2 +- Mesh/Element.cpp | 4 +- Mesh/Element.h | 2 +- Mesh/Face.cpp | 4 +- Mesh/Face.h | 2 +- Mesh/Generator.cpp | 4 +- Mesh/Interpolation.cpp | 4 +- Mesh/Interpolation.h | 2 +- Mesh/Makefile | 4 +- Mesh/Matrix.h | 2 +- Mesh/Mesh.h | 2 +- Mesh/MeshQuality.cpp | 4 +- Mesh/Metric.cpp | 4 +- Mesh/Metric.h | 2 +- Mesh/Nurbs.cpp | 4 +- Mesh/Nurbs.h | 2 +- Mesh/PartitionMesh.cpp | 4 +- Mesh/Print_Mesh.cpp | 4 +- Mesh/Read_Mesh.cpp | 4 +- Mesh/SecondOrder.cpp | 4 +- Mesh/Simplex.cpp | 4 +- Mesh/Simplex.h | 2 +- Mesh/Smoothing.cpp | 4 +- Mesh/SwapEdge.cpp | 4 +- Mesh/SwapPatterns.h | 2 +- Mesh/Utils.cpp | 4 +- Mesh/Utils.h | 2 +- Mesh/Vertex.cpp | 4 +- Mesh/Vertex.h | 2 +- Numeric/EigSolve.cpp | 4 +- Numeric/EigSolve.h | 2 +- Numeric/Makefile | 4 +- Numeric/Numeric.cpp | 4 +- Numeric/Numeric.h | 2 +- Numeric/gsl_brent.cpp | 4 +- Numeric/gsl_newt.cpp | 4 +- Parallel/Makefile | 4 +- Parallel/ParUtil.cpp | 4 +- Parallel/ParUtil.h | 2 +- Parser/FunctionManager.cpp | 4 +- Parser/FunctionManager.h | 2 +- Parser/Gmsh.l | 4 +- Parser/Gmsh.tab.cpp | 4 +- Parser/Gmsh.y | 4 +- Parser/Gmsh.yy.cpp | 6 +- Parser/Makefile | 4 +- TODO | 29 +-- configure.in | 4 +- variables.in | 4 +- 185 files changed, 1030 insertions(+), 718 deletions(-) diff --git a/Box/Main.cpp b/Box/Main.cpp index 3db67abcdb..895f25ae7f 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 7ffdf3625b..7d45dc5b1d 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 afb1cd8aef..1ffca99b8a 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 8c76f88959..29dee4923d 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 8bc3d9831f..42dffae948 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 94dabc9f31..096057512a 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 ffee871b65..701c565f3b 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 cf23789aa7..2e542c188a 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 cf25508699..129f59cc69 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 0b2e1f6988..38bf1ac53b 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 a040095a6e..f9eaca9e0d 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 761146b26a..0011a293c1 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 dd14dfb2b2..799c2ca46b 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 b20d4c46a6..a7d371bfff 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 fd8535c4d8..6778ef76e9 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 37817b14bb..764793ac99 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 1055815a16..3b440a4c4d 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 8bf4d3b4e6..ccbdf09983 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 9c482a1287..4b46d1bb3f 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 043e7a5fd6..c6fbb1a49e 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 bad67f0bfc..4418e52236 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 1bef406c9c..9affa3423a 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 91fa66410f..4970006ebb 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 7fd2079707..7acb239980 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 2d31f67ed3..7ee16f1748 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 db37e25dcd..6aae3f70b9 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 8428f4946c..857fd2ff59 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 46a93d88ee..1fd3ad5d5a 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 00182b4109..91504bd174 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 d15f081d33..ad5c4e4e8a 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 cf44adb2d2..03a2703e40 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 34c465bde2..cc068dacd2 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 c075658c13..5262b3048f 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 06b7bca560..2c0ca21eb5 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 ffe92cd866..e5f2efadc2 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 5c2df11a5f..75739abacf 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 00c06ccb9c..20181e57f6 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 155721114e..24f1a416b8 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 3fee24ac59..84babdfaf7 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 99d3751bde..407d02b9e4 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 ec615af45b..5d73aabd59 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 e67b477e0e..8168a3d7e4 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 ca39962dcf..695cae000f 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 d377dac8c5..e4a506ca85 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 9843e9e92e..69e92502e2 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 4ba8059e39..3da6ef5ce8 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 7ced953cf8..d0f72cab98 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 df3a05ccce..77fb46db64 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 d7f052f37b..5c96ec5fb5 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 0cb151459c..798ba31cfb 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 8fd292ff88..788d08cb91 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 GIT binary patch delta 11 ScmaFa!St$wX+vfUBNqT6Fa(eQ delta 9 QcmaFW!Su3&X+vfU02mzvg#Z8m diff --git a/Fltk/MacIconsGeo.icns b/Fltk/MacIconsGeo.icns index 439c6e737b3f3a2fdf328825e59cf971a9f6d576..6ac95423b260251013e6437500f32ad1cdd1697f 100644 GIT binary patch delta 11 ScmaF;hUv{4rVZKK7`Xr_m<5mk delta 9 QcmaF!hUxVirVZKK03C$|g#Z8m diff --git a/Fltk/MacIconsMsh.icns b/Fltk/MacIconsMsh.icns index 8ab3d78407bb61777da159e05ea2837ea87b274a..59c81f49474649280cc49268d963d739f9507b46 100644 GIT binary patch delta 11 TcmZ4bo@v>8rVUHCGjag{B!mS; delta 9 RcmZ4Xo@wcOrVUHC0{|Ka1v&r# diff --git a/Fltk/MacIconsPos.icns b/Fltk/MacIconsPos.icns index df67b94f47c6a78d1d847eaa701dc93380c724d7..353bccbd7ec47ecd8efd4d96a792767455234f3c 100644 GIT binary patch delta 11 ScmccchUwxPrVRnx7`Xr@D+NCQ delta 9 QcmcckhUvl^rVRnx02{gmGynhq diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp index e2720f41b1..0cb20f06d8 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 f7f898a42a..3445d5c76f 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 2dfe0c580f..5d6c998041 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 4a71647944..2033bb6017 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 84d8c9789e..6a1ddf231d 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 0525470918..bb85fa1a4d 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 ec3ec52a42..f4f7c5ea9c 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 92e715fe7f..f620a5bb29 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 8d68e207cb..bfc4bf8bbc 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 GIT binary patch delta 9 QcmZ1{x?Xg{Ixa>o01{{d`v3p{ delta 7 OcmZ24x=wV%IxYYVegg0S diff --git a/Fltk/Win32Icon.res b/Fltk/Win32Icon.res index 696570cb91f14508277e69aafc31db200536c7e9..04daed22718ff4dc1b30de50f172380f5ca6228c 100644 GIT binary patch delta 9 QcmZ1^u~=e*5)UI601v1FUjP6A delta 7 OcmZ21u}ETr5)S|h_5xG@ diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index 89f71b40ce..e051adb9cb 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 87d85cb520..87f8c13074 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 746ec4890e..ac83f166ba 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 d5a9a3fb18..76cc354d79 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 d444636b45..6afdedcda4 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 3fc66aff41..857ba394d4 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 e31f16466a..fb39520635 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 aee22da8fe..a6140caab9 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 df802f3e59..8a0042c4f7 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 b189bdee5b..f60eed5d09 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 0b212e8de6..722c7f2dfe 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 d313f5ad46..5207250a8f 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 a36b7b79e1..b0bfd63b00 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 4739a0a864..bb11a2472c 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 38eaee6769..5f735c8a30 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 23b8b1a6f2..47c6ddea52 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 0acba96fb6..585f3af0c2 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 c7117d5e53..0c6917b792 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 d2ddec8235..04c14ece98 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 66b0be577d..271e77426b 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 f752bf16f4..dbce136bd7 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 2444d3e817..7f91052858 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 13b525dcb9..c5822774ba 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 61d03af6fb..a6875a062b 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 2a04457df3..cb1a351389 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 a641d1a6a0..e029815e3e 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 c8ad137e58..bbf00d5bdc 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 fcef5511eb..eb941c1101 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 369d8e1708..41c947c35c 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 72aff6de2a..7866b9ae31 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 66a7d4c72b..bd92bc4b2e 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 b9ec804ed3..3b49eff6d5 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 2bfb4c2e2c..28be10ac0b 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 d5167d461f..f111c62d01 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 58e0c39267..345acd6788 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 870a1cbbbf..12eaeff90a 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 1407e2a0e4..d39540129c 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 b26432d53c..7c53788e88 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 63580b3858..bdb0131b99 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 2db66d13d2..31f4b9e09e 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 72a99285d9..4fdcc883f4 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 dcee70da5d..af54945114 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 2fcc67e0e7..e67b0c4e3a 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 0cbef4b0eb..191eb222c9 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 eb2b2ecbf9..5d05bc1dd1 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 ba900f0701..66a7bb346f 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 2599d58b55..a1b3d63a6b 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 05450a548b..0738a60626 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 ea0915918d..df5581e066 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 c49b518c83..86a3580f13 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 f3f0ce4480..5c9086b5af 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 6e6d8fb435..a641fe9a39 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 57e9d28f15..40a16fe5e1 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 fdfeeced99..83da4aaa4b 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 8032271bb8..24caf4ca72 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 45393e0231..a0a96e0180 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 7aef18d3b9..b62d7f20c8 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 2c99463e10..e6e777b755 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 f0faf7e656..f4c082be2f 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 416ec52358..d200e8eaa8 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 4d5e22bceb..e17eaf6b05 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 3e1ba5b345..2ff9102a36 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 40c717f4a8..3ea0e019a6 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 bfa28416a0..388634ceb3 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 a09014ebdc..c3b957cc32 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 1df8e6ed8a..d02ae8ec86 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 e3a23c14bc..25e2e755b8 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 417b0a3aae..1dc581bd5b 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 cb1b6ea8b8..aa153a996b 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 1c77f11332..756768e63e 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 99e0e4d691..94175f7a96 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 3cabd1be03..9129917458 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 387da33950..078a355bd5 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 a4c4710908..c2db9dc190 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 85c34bed78..0557a6105d 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 83f108f9c4..50e0f073ac 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 d75c81b925..16b51a20dd 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 8adeb24bbc..f58638c91b 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 a1d4947797..e9c5693cfc 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 07461d84e2..cd2f278862 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 1f2a763246..daf026dc03 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 265ae70e21..ea27491bc0 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 ba3811fa57..2fc659ea82 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 bbf27f1d7a..896e1427a3 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 06b7bbbf0d..2aec85d72c 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 b0fddb6e1c..c7057f7f57 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 b072244523..8f72583d6d 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 811c2ada87..6c54a7aece 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 c2041c63eb..68d6089158 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 a7a17cdd2e..128135a8a9 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 0fb506c7fc..276727ee6c 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 39f6070c65..041f8ec7a0 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 8634831d80..df0a826bed 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 5e896a7872..283badcc43 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 89a79669b2..879e68c298 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 6027816e8b..58366d45c1 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 89595939e0..c3eeff1468 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 ed810296fa..887638c54f 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 b59dfd33c2..da09302928 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 fe353e104a..f04c0bffb9 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 b7984a0677..a392aab6f7 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 2e6752736d..81669352cb 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 75700c0c22..c052ea5dfa 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 19afc092b1..3265f24029 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 dd4ccea2c0..e1aa295911 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 ca25655649..64798a5555 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 cca003a7ca..0a7e32bb65 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 56108a86dc..91e7ee884c 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 b26a91a9e7..c1b11fa56e 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 b759e0cb8a..7d07cfec5b 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 f19eae69da..496df7a5fa 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 374841286e..cc6f7e144e 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 314e7d0857..15c6884ff3 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 dc02828c8f..5a904dc955 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 78640ed96a..e9033f1aef 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 739f3a29fd..afdd9a0b88 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 1212001611..9e4e8daa0d 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 ce89980e64..b7d1c9ae3f 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 87ec7d5308..f8fcd1273e 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 -- GitLab