From b6d7ec4b9a164857d56554b8c4f219830a07aa5e Mon Sep 17 00:00:00 2001 From: Tzanio Date: Wed, 13 Apr 2022 14:17:56 -0700 Subject: [PATCH 01/14] Updated CHANGELOG for glvis-4.2 --- CHANGELOG | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 0b69ca05..71896758 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,8 +9,8 @@ http://glvis.org -Version 4.1.1 (development) -=========================== +Version 4.2 released on April 21, 2022 +====================================== - Added 3D scene export to glTF format (https://www.khronos.org/gltf) which is bound to the key 'G'. This can be used to import GLVis scenes for rendering in @@ -21,6 +21,10 @@ Version 4.1.1 (development) - In 2D, save and restore solution's value range when using keys 'e' and 'b'. +- Support for visualization of pyramid-shaped elements. + +- Various other bugfixes and improvements. + Version 4.1, released on Aug 31, 2021 ===================================== From d6a17af92a687a1888e15f06d889ccc0f68194c6 Mon Sep 17 00:00:00 2001 From: Tzanio Date: Wed, 13 Apr 2022 15:18:15 -0700 Subject: [PATCH 02/14] minor --- CHANGELOG | 2 +- CONTRIBUTING.md | 4 ---- INSTALL | 2 +- lib/gltf.hpp | 2 +- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 71896758..dd66c327 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,7 +6,7 @@ _/ _/ _/ _/ _/ _/ _/_/ _/_/_/ _/_/_/_/ _/ _/ _/_/_/ - http://glvis.org + https://glvis.org Version 4.2 released on April 21, 2022 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7eb1632d..de9948ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -288,10 +288,6 @@ Before a PR can be merged, it should satisfy the following: ### Release Checklist -- [ ] Update the GLVis version in the following files: - - [ ] `CHANGELOG` - - [ ] `makefile` - - [ ] `CMakeLists.txt` - [ ] Check that version requirements for each of GLVis's dependencies are documented in `INSTALL` and up-to-date - [ ] Update the `CHANGELOG` to organize all release contributions - [ ] Review the whole source code once over diff --git a/INSTALL b/INSTALL index f3087932..405fb71a 100644 --- a/INSTALL +++ b/INSTALL @@ -6,7 +6,7 @@ _/ _/ _/ _/ _/ _/ _/_/ _/_/_/ _/_/_/_/ _/ _/ _/_/_/ - http://glvis.org + https://glvis.org GLVis is a multiplatform OpenGL application and can be built on Linux/Unix systems, including Mac OS X, and under Windows. diff --git a/lib/gltf.hpp b/lib/gltf.hpp index c25e8157..46d927e3 100644 --- a/lib/gltf.hpp +++ b/lib/gltf.hpp @@ -253,7 +253,7 @@ class glTF_Builder // sampler option: magnification filter enum struct mag_filter { NEAREST = 9728, LINEAR = 9729 }; - // sampler optioin: minification filter + // sampler option: minification filter enum struct min_filter { NEAREST = 9728, LINEAR = 9729, NEAREST_MIPMAP_NEAREST = 9984, From 08441a25317dd083e64f09545ebba319046e583a Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Mon, 16 May 2022 11:00:17 -0700 Subject: [PATCH 03/14] Small updates --- CHANGELOG | 4 ++-- README | 5 ++++- share/CMakeLists.txt | 4 ++-- tests/README.md | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 881c9693..312a3a19 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,8 +9,8 @@ https://glvis.org -Version 4.2 released on May 21, 2022 -====================================== +Version 4.2 released on May 20, 2022 +==================================== - Added 3D scene export to glTF format (https://www.khronos.org/gltf) which is bound to the key 'G'. This can be used to import GLVis scenes for rendering in diff --git a/README b/README index 90209e21..23177867 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ _/ _/ _/ _/ _/ _/ _/_/ _/_/_/ _/_/_/_/ _/ _/ _/_/_/ - http://glvis.org + https://glvis.org GLVis is an OpenGL tool for visualization of finite element meshes and functions. It is a multiplatform OpenGL application that can be built on @@ -70,6 +70,8 @@ t - Cycle materials and lights (5 states) l - Turns on/off the light g - Toggle background color (white -> black) +G - 3D scene export to glTF format, see https://www.khronos.org/gltf + a - Toggle the bounding box axes The options are: -> none -> bounding box with coordinates of the corners @@ -174,6 +176,7 @@ k/K - Adjust the transparency level. F3/F4 - Shrink/Zoom each element towards its center, to better visualize the different element shapes +Ctrl+F3/F4 - Cut the interiors of 3D faces to expose more of the mesh F5 - Change the range and number of the level lines F6 - Palette menu (negative repeat number flips the palette) F7 - Change the minimum and maximum values diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 5cc39112..f24b9282 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -14,8 +14,8 @@ if(NOT WIN32) add_custom_command( OUTPUT logo.rgba.bin.cpp COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/logo.rgba - ${CMAKE_CURRENT_BINARY_DIR}/logo.rgba + ${CMAKE_CURRENT_SOURCE_DIR}/logo.rgba + ${CMAKE_CURRENT_BINARY_DIR}/logo.rgba COMMAND xxd -i logo.rgba > logo.rgba.bin.cpp DEPENDS logo.rgba COMMENT "Generating logo.rgba.bin.o") diff --git a/tests/README.md b/tests/README.md index 8f75f5db..5f99bb5f 100644 --- a/tests/README.md +++ b/tests/README.md @@ -6,7 +6,7 @@ _/ _/ _/ _/ _/ _/ _/_/ _/_/_/ _/_/_/_/ _/ _/ _/_/_/ - http://glvis.org + https://glvis.org Automated testing for GLVis From ce067ea09522cd2cac1c03df785fa7e09b84bd4c Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Mon, 16 May 2022 19:27:55 -0700 Subject: [PATCH 04/14] Renamed -mac to -save --- CHANGELOG | 2 ++ glvis.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 312a3a19..c3aacc5f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -28,6 +28,8 @@ Version 4.2 released on May 20, 2022 - An edge numbering option is now available in 2D. +- The command-line option -mac was renamed to -save. + - Various other bugfixes and improvements. diff --git a/glvis.cpp b/glvis.cpp index ba460130..fe1b1341 100644 --- a/glvis.cpp +++ b/glvis.cpp @@ -941,7 +941,7 @@ struct Session } }; -void GLVisServer(int portnum, bool mac, bool fix_elem_orient, +void GLVisServer(int portnum, bool save_stream, bool fix_elem_orient, bool save_coloring) { std::vector current_sessions; @@ -1014,7 +1014,7 @@ void GLVisServer(int portnum, bool mac, bool fix_elem_orient, *isock >> data_type >> ws; - if (mac) + if (save_stream) { viscount++; } @@ -1095,7 +1095,7 @@ void GLVisServer(int portnum, bool mac, bool fix_elem_orient, Session new_session(fix_elem_orient, save_coloring); char tmp_file[50]; - if (mac) + if (save_stream) { sprintf(tmp_file,"glvis-saved.%04d",viscount); ofstream ofs(tmp_file); @@ -1146,7 +1146,7 @@ int main (int argc, char *argv[]) #endif // variables for command line arguments int np = 0; - bool mac = false; + bool save_stream = false; const char *stream_file = string_none; const char *script_file = string_none; const char *font_name = string_default; @@ -1197,8 +1197,8 @@ int main (int argc, char *argv[]) args.AddOption(&secure, "-sec", "--secure-sockets", "-no-sec", "--standard-sockets", "Enable or disable GnuTLS secure sockets."); - args.AddOption(&mac, "-mac", "--save-stream", - "-no-mac", "--dont-save-stream", + args.AddOption(&save_stream, "-save", "--save-stream", + "-no-save", "--dont-save-stream", "In server mode, save incoming data to a file before" " visualization."); args.AddOption(&stream_file, "-saved", "--saved-stream", @@ -1356,7 +1356,7 @@ int main (int argc, char *argv[]) if (input == 1) { // Run server in new thread - std::thread serverThread{GLVisServer, portnum, mac, + std::thread serverThread{GLVisServer, portnum, save_stream, stream_state.fix_elem_orient, stream_state.save_coloring}; From 19a165fd629a00e56e205d0cb440a69109f003ad Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Wed, 18 May 2022 10:17:28 -0700 Subject: [PATCH 05/14] Markdown version of the README --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md From c69adef84bbaab0198f86178e7765411485c1b2f Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Wed, 18 May 2022 10:19:22 -0700 Subject: [PATCH 06/14] Markdown version of the README --- README.md | 524 ++++++++++++++++++++++++++---------------------------- 1 file changed, 248 insertions(+), 276 deletions(-) diff --git a/README.md b/README.md index 23177867..1f6e2f8a 100644 --- a/README.md +++ b/README.md @@ -8,296 +8,268 @@ https://glvis.org -GLVis is an OpenGL tool for visualization of finite element meshes and -functions. It is a multiplatform OpenGL application that can be built on -Linux/Unix systems, including Mac OS X, and under Windows. It can also be used -in a Jupyter notebook, or in a web browser, see https://glvis.org/live. +[GLVis](https://glvis.org) is an OpenGL tool for visualization of finite element +meshes and functions. It is a multiplatform application that can be built on +Linux/Unix systems, including macOS, and under Windows. It can also be used in a +Jupyter notebook, or in a web browser, see https://glvis.org/live. -For building instructions, see the file INSTALL. Copyright information and -licensing restrictions can be found in the file COPYRIGHT. +For building instructions, see [INSTALL](INSTALL). When started without any options, glvis starts a server which waits for a socket -connections (on port 19916 by default) and visualizes any received data. This +connections (on port `19916` by default) and visualizes any received data. This way the results of simulations on a remote (parallel) machine can be visualized on the local user desktop. GLVis can also be used to visualize a mesh with or without a finite element -function (solution), as in 'glvis -m cube.mesh3d'. For parallel computations, -GLVis supports input from several parallel socket connections as well as the -visualization of parallel meshes and grid functions saved in separate files from -the command line as in 'glvis -np 4 -m mesh -g solution'. In both cases, it will -stitch the results to show the global mesh and solution. GLVis can also run a -batch sequence of commands (GLVis scripts), or display previously saved socket -streams. For a complete list of command line options, type 'glvis -h'. +function (solution), as in + +``` +glvis -m cube.mesh3d +``` + +For parallel computations, GLVis supports input from several parallel socket +connections as well as the visualization of parallel meshes and grid functions +saved in separate files from the command line as in + +``` +glvis -np 4 -m mesh -g solution +``` + +When given parallel input, GLVis will stitch the results to show the global mesh +and solution. GLVis can also run a batch sequence of commands (GLVis scripts), +or display previously saved socket streams. + +For a complete list of command line options, type + +``` +glvis -h +``` Depending on the data type, variety of manipulations can be performed by using -the mouse and by typing (case sensitive) keystrokes in the GLVis window. Here is -a partial list of the available functionality. Some of these keys can also be -provided as input, using the '-k' command-line option and the 'keys' script +the mouse and by typing (case sensitive) keystrokes in the GLVis window. Below +is a partial list of the available functionality. Some of these keys can also be +provided as input, using the `-k` command-line option and the `keys` script command. -GLVis is distributed under the terms of the BSD-3 license. All new contributions -must be made under this license. See LICENSE and NOTICE for details. -SPDX-License-Identifier: BSD-3-Clause -LLNL Release Number: LLNL-CODE-443271 +SPDX-License-Identifier: BSD-3-Clause
+LLNL Release Number: LLNL-CODE-443271
DOI: 10.11578/dc.20171025.1249 Mouse functions =============== -Left - Rotate the viewpoint -Middle - Translate the viewpoint -Right - Zoom in (up) / Zoom out (down) -Left+Shift - Start spinning the viewpoint (according to dragging vector) - - -Basic key commands -================== -h - Prints a short help message in the terminal - -r - Reset the plot to 3D view -R - Cycle through the six 2D projections (camera looking in +/- x/y/z - direction) -j - Turn on/off perspective -s - Turn on/off unit cube scaling - -c - Toggle the colorbar and caption display state -C - Change the main plot caption -p/P Cycle forward/backwards through color palettes (lots of options, use F6 for - a menu) -t - Cycle materials and lights (5 states) -l - Turns on/off the light -g - Toggle background color (white -> black) - -G - 3D scene export to glTF format, see https://www.khronos.org/gltf - -a - Toggle the bounding box axes - The options are: -> none - -> bounding box with coordinates of the corners - -> bounding box without coordinates - -> red, green, blue colored main x, y, z axes; dashed box -m - Toggle the "mesh" state - The options are: -> no mesh or level lines - -> draw the element edges (i.e. the mesh) - -> draw the level lines (use F5 to modify the level lines) -e - Toggle the "elements" state (see below for vector functions) - The options are: -> show surface elements (corresponding to the function) - -> show no surface elements - -> show element attributes (2D) - -> show element det(J) (2D) - -> show element 1/det(J) (2D) - -> show element kappa (2D) - -> show element kappa + 1/kappa (2D) - -S - Take an image snapshot or record a movie (in spinning mode). - By default, the screenshots are taken in png format, using libpng. When - GLVis is compiled with libtiff support (see INSTALL) then the screenshots - are taken internally and saved in TIFF format (.tif extension). If both of - these options are disabled during the build process, GLVis will use SDL to - take screenshots in bmp format, which it will then convert to png if - ImageMagick's 'convert' tool is available. - -Ctrl+p - Print to a PDF file using gl2ps. Other vector formats (SVG, EPS) are - also possible, but keep in mind that the printing takes a while and the - generated files are big. - -q - Exit - - -Advanced key commands -===================== -f - Change the shading type (the way the elements and mesh are drawn) - The options are: -> one triangle / quad per element with a constant normal - -> one triangle / quad per element with normals averaged - at the vertices - -> multiple triangles / quads per element, also allowing - for the visualization of discontinuous functions and - curvilinear elements (use o/O to control subdivisions) - -o/O - Control element subdivisions (2D) - there are two subdivision factors: -> element subdivision factor s1 - -> boundary subdivision factor s2 -O - Cycle through the "subdivision functions", (prints a message in the - terminal when changed) - The options are: -> Increase subdivision factor: s1 += s2 - -> Decrease subdivision factor: s1 -= s2 - -> Increase bdr subdivision factor: s2++ - -> Decrease bdr subdivision factor: s2-- -o - perform the current "subdivision function" - -A - Turn on/off the use of anti-aliasing/multi-sampling -b - Toggle the boundary in 2D scalar mode. - The options are: -> no boundary - -> black boundary - -> boundary colored with the boundary attribute - Use Shift+F9/F10 to cycle through the boundary attributes. -L - Turn on/off logarithmic scale -\ - Set light source position (see Right+Shift) -* - Zoom in -/ - Zoom out -+ - Stretch in z-direction -- - Compress in z-direction -[ - Enlarge the bounding box (relative to the colorbar) -] - Shrink the bounding box (relative to the colorbar) -( - Shrink the visualization window -) - Enlarge the visualization window -. - Start/stop z-spinning (speed/direction can be controlled with '0'/'Enter') - -arrow keys - Manual rotation -1,2,3,4,5,6,7,8,9 - Manual rotation along coordinate axes -Ctrl+arrow keys - Translate the viewpoint - -Ctrl+o - Toggle an element ordering curve in 2D and 3D - -i - Toggle cutting (clipping) plane in 2D -y/Y - Rotate cutting plane (theta) in 2D -z/Z - Translate cutting plane in 2D - -n/N - Cycle through numberings. - The options are: -> none - -> show element numbering - -> show vertex numbering - -` - Toggle a ruler, with initial origin at the center of the bounding box. The - origin can be later moved with '~'. - The options are: -> none - -> coordinate axes lines - -> coordinate axes planes -~ - Enter new ruler origin - -k/K - Adjust the transparency level. - The balance of transparency can be further adjusted with ',' and '<'. - -! - Toggle the use of (1D) texture (smooth interpolation of colors) - The options are: -> use discrete texture, the number of colors used depends - on the current palette - -> use smooth texture (interpolated from current palette) - -F3/F4 - Shrink/Zoom each element towards its center, to better visualize the - different element shapes -Ctrl+F3/F4 - Cut the interiors of 3D faces to expose more of the mesh -F5 - Change the range and number of the level lines -F6 - Palette menu (negative repeat number flips the palette) -F7 - Change the minimum and maximum values -F8 - List of material subdomains to show -F9/F10 - Walk through material subdomains -F11/F12 - Shrink/Zoom material subdomains (to the centers of the attributes) -Shift+F7 - Set the bounding box from the terminal - - -Advanced mouse functions -======================== -Middle+Ctrl - Object translation (moves the camera left/right/up/down) -Middle+Ctrl+Shift - Object translation (turns the camera left/right/up/down) -Middle+Ctrl+Alt - Moves the camera forward/backward (vertical mouse motion) - and tilts the camera left/right (horizontal mouse motion) -Right+Ctrl - Object scaling (see also '[' and ']') -Left+Alt - Tilt -Right+Shift - Change light source position (see '\') - - -Vector data commands -==================== -v - Toggle the "vector" state (uses vector subdivision factor, accept u/U) - The options are: -> do not show vectors - -> show vectors as displacement - -> show vector field; vectors are uniformly scaled; - the color varies with the magnitude (or the current - "vector-to-scalar function", see keys u/U) - -> show vector field as above, but the vectors are scaled - proportionally to their magnitude -V - Change the scaling of the vectors relative to the default - -d - Toggle the "displaced mesh" state: (see also keys 'n'/'b') - The options are: -> do not show displaced mesh - -> show displaced mesh - -> assuming displacement field show deformation using - Cartesian lines - -> assuming displacement field show deformation using - polar lines -n - increase the displacement amount in 10% steps, wraps around from 100% to 0% -b - decrease the displacement amount in 10% steps, wraps around from 0% to 100% -B - Toggle the boundary in 2D vector mode - -e - Toggle the "elements" state (vector data version) - The options are: -> show surface elements corresponding to the current - "vector-to-scalar function" - -> do not show surface elements - -> assuming a displacement field show det(J)/det(J_d) - -> assuming a displacement field show det(J_d)/det(J) - -u/U - Change the "vector-to-scalar function" and the vector subdivision factor -U - Toggle the functionality of 'u' (prints a message in the terminal when - changed). - The options are: -> Increase the vector subdivision factor - -> Decrease the vector subdivision factor - -> Cycle through "vector-to-scalar functions" choices: - -> magnitude: sqrt(vx^2+vy^2) - -> direction from -pi to pi: atan2(vy,vx) - -> x-component: vx - -> y-component: vy - -> divergence: div(v) - -> curl: curl(v) [skipped for H(div) elements] - -> anisotropy in grad(v) [skipped for H(div) elements] - -3D data commands -================ -i - Toggle cutting (clipping) plane - The options are: -> none - -> cut through the elements - -> show only elements behind the cutting plane -I - Toggle the cutting plane algorithm used when the option "cut through the - elements" is selected. The two algorithms are: - -> slower, more accurate algorithm for curved meshes (default) - -> faster algorithm suitable for meshes with planar faces -x/X - Rotate cutting plane (phi) -y/Y - Rotate cutting plane (theta) -z/Z - Translate cutting plane -E - Display/Hide the elements in the cutting plane -M - Display/Hide the mesh in the cutting plane - -o/O - Refine/de-refine elements - -u/U - Move level surface value up/down -v/V - Add/Delete a level surface value - -w/W - Move boundary elements up/down in direction of the normal (i.e. "plot" - the boundary values in normal direction) - -F3/F4 - Shrink/Zoom boundary elements (to the centers of the attributes) -F8 - List of boundary subdomains to show -F9/F10 - Walk through boundary subdomains -F11/F12 - Shrink/Zoom material subdomains (to the centers of the attributes) - - -3D vector data commands -======================= -v - Toggle the "vector" state - The options are: -> do not show vectors - -> show vectors as displacement - -> show vector field; vectors are uniformly scaled; - the color varies with the magnitude (or the current - "vector-to-scalar function", see key F) - -> show vector field as above, but the vectors are scaled - proportionally to their magnitude - -> show the subset of the vector field with scalar function - around a given value (adjusted with keys u/U and w/W) - -> show the vector field restricted to the boundary of the - domain -V - Cycle the "vector" state in the opposite direction of 'v' - -u/U - Move the level field vectors (in the appropriate "vector" state) -w/W - Add/Delete level field vector (in the appropriate "vector" state) - -d - Toggle the "displaced mesh" state: (see also keys 'n'/'b') - The options are: -> do not show displaced mesh - -> show displaced mesh -n - increase the displacement amount in 10% steps, wraps around from 100% to 0% -b - decrease the displacement amount in 10% steps, wraps around from 0% to 100% - -F - Change the "vector-to-scalar function" - The options are: -> magnitude: sqrt(vx^2+vy^2+vz^2) - -> x-component: vx - -> y-component: vy - -> z-component: vz + +## Basic + +- Left – Rotate the viewpoint +- Right – Zoom in (up) / Zoom out (down) +- Middle – Translate the viewpoint +- Left + Shift – Start spinning the viewpoint (according to the dragging vector) + +## Advanced + +- Left + Alt – Tilt +- Left + Ctrl – Spherical rotation +- Left + Ctrl + Shift – `z`-spinning +- Right + Ctrl – Object scaling (see also [ and ]) +- Right + Shift – Change light source position (see \\) +- Middle + Ctrl – Object translation (moves the camera left/right/up/down) +- Middle + Ctrl + Alt – Moves the camera forward/backward (vertical mouse motion) and tilts the camera left/right (horizontal mouse motion) +- Middle + Ctrl + Shift – Object translation (turns the camera left/right/up/down) + + +Key commands +============ + +## Basic + +- h – Print a short help message in the terminal +- r – Reset the plot to 3D view +- R – Cycle through the six 2D projections (camera looking above/below in `x`/`y`/`z` directions) +- j – Turn on/off perspective +- s – Turn on/off unit cube scaling +- A – Turn on/off the use of anti-aliasing/multi-sampling +- L – Turn on/off logarithmic scale +- c – Toggle the colorbar and caption display state +- C – Change the main plot caption +- p / P – Cycle forward/backwards through color palettes (lots of options, use F6 for a menu) +- t – Cycle materials and lights (5 states) +- i – Toggle cutting plane (different options in 2D and 3D, see below) +- o / O – Control element subdivisions (different options in 2D and 3D, see below) +- l – Turn on/off the light +- g – Toggle background color (white/black) +- a – Toggle the bounding box *axes*. The options are: + - none + - bounding box with coordinates of the corners + - bounding box without coordinates + - red, green, blue colored main `x`, `y`, `z` axes + dashed axes +- m – Toggle the *mesh* state. The options are: + - no mesh or level lines + - draw the element edges (i.e. the mesh) + - draw the level lines (use F5 to modify the level lines) +- e – Toggle the *elements* state (see below for vector functions). The options are: + - show surface elements (corresponding to the function) + - show no surface elements + - (2D only) show element attributes + - (2D only) show element `det(J)` + - (2D only) show element `1/det(J)` + - (2D only) show element `kappa` + - (2D only) show element `kappa + 1/kappa` +- S – Take an image snapshot or record a movie (in spinning mode). By + default, the screenshots are taken in `png` format, using libpng. When GLVis + is compiled with `libtiff` support (see [INSTALL](INSTALL)) then the + screenshots are taken internally and saved in TIFF format (`.tif` + extension). If both of these options are disabled during the build process, + GLVis will use `SDL` to take screenshots in `bmp` format, which it will then + convert to `png` if ImageMagick's `convert` tool is available. +- G – 3D scene export to [glTF format](https://www.khronos.org/gltf) +- Ctrl + p – Print to a PDF file using `gl2ps`. Other + vector formats (SVG, EPS) are also possible, but keep in mind that the + printing takes a while and the generated files are big. +- q – Exit + +## Advanced + +- f – Change the shading type (the way the elements and mesh are drawn). The options are: + - one triangle / quad per element with a constant normal + - one triangle / quad per element with normals averaged at the vertices + - multiple triangles / quads per element, also allowing for the visualization of discontinuous + functions and curvilinear elements (use o / O to control subdivisions) +- \\ – Set light source position (see Right + Shift) +- * / / – Zoom in/out +- + / - – Stretch/compree in `z`-direction +- [ / ] – Shrink/enlarge the bounding box (relative to the colorbar) +- ( / ) – Shrink/enlarge the visualization window +- . – Start/stop `z`-spinning (speed/direction can be controlled with 0 / Enter) +- , , , – Manual rotation +- 1, 2, 3, 4, 5, 6, 7, 8, 9 – Manual rotation along coordinate axes +- Ctrl + , , , – Translate the viewpoint +- Ctrl + o – Toggle an element ordering curve +- n / N – Cycle through numberings. The options are: + - none + - show element numbering + - show edge numbering + - show vertex numbering +- ` – Toggle a ruler, with initial origin at the center of the bounding box. The origin can be later moved with ~. The options are: + - none + - coordinate axes lines + - coordinate axes planes +- ~ - Enter new ruler origin +- k / K - Adjust the transparency level. The balance of + transparency can be further adjusted with , and <. +- ! - Toggle the use of (1D) texture (smooth interpolation of colors). The options are: + - use discrete texture, the number of colors used depends on the current palette + - use smooth texture (interpolated from current palette) +- F5 – Change the range and number of the level lines +- F6 – Palette menu (negative repeat number flips the palette) +- F7 – Change the minimum and maximum values +- Shift + F7 – Set the bounding box from the terminal + +## 2D scalar data + +- i – Toggle cutting (clipping) plane in 2D +- y / Y – Rotate cutting plane (`theta`) in 2D +- z / Z – Translate cutting plane in 2D +- o / O – Control element subdivisions in 2D + - there are two subdivision factors in this case: element (`s1`) and boundary (`s2`). + - O cycles through the following "subdivision functions", (prints a message in the terminal when changed): + - Increase element subdivision factor: `s1 += s2` + - Decrease element subdivision factor: `s1 -= s2` + - Increase boundary subdivision factor: `s2++` + - Decrease boundary subdivision factor: `s2--` + - o – performs the curently selected function +- b – Toggle the boundary in 2D scalar mode. The options are: + - no boundary + - black boundary + - boundary colored with the boundary attribute + - Use Shift + F9 / F10 to cycle through the boundary attributes. +- F3 / F4 – Shrink/Zoom each element towards its center, in order to better visualize the different element shapes +- F8 – List of material subdomains to show +- F9 / F10 – Walk through material subdomains +- F11 / F12 – Shrink/Zoom material subdomains (to the centers of the attributes) + +## 3D scalar data + +- i – Toggle cutting (clipping) plane in 3D. The options are: + - none + - cut through the elements + - show only elements behind the cutting plane +- I – Toggle the cutting plane algorithm used when the option *cut through the elements* is selected. The two algorithms are: + - slower, more accurate algorithm for curved meshes (default) + - faster algorithm suitable for meshes with planar faces +- x / X – Rotate cutting plane (`phi`) in 3D +- y / Y – Rotate cutting plane (`theta`) in 3D +- z / Z – Translate cutting plane in 3D +- E – Display/Hide the elements in the cutting plane +- M – Display/Hide the mesh in the cutting plane +- o / O – Refine/de-refine elements in 3D +- u / U – Move level surface value up/down +- v / V – Add/Delete a level surface value +- w / W – Move boundary elements up/down in direction of + the normal (i.e. "plot" the boundary values in normal direction) +- F3 / F4 – Shrink/Zoom boundary elements (to the centers of the attributes) +- F8 – List of boundary subdomains to show +- F9 / F10 – Walk through boundary subdomains +- F11 / F12 – Shrink/Zoom material subdomains (to the centers of the attributes) + +## 2D vector data + +- v – Toggle the *vector* state (uses vector subdivision factor, accept u / U). The options are: + - do not show vectors + - show vectors as displacement + - show vector field; vectors are uniformly scaled; the color varies with the + magnitude (or the current *vector-to-scalar function*, see keys u / U) + - show vector field as above, but the vectors are scaled proportionally to their magnitude +- V – Change the scaling of the vectors relative to the default +- d – Toggle the *displaced mesh* state: (see also keys n / b). The options are: + - do not show displaced mesh + - show displaced mesh + - assuming displacement field show deformation using Cartesian lines + - assuming displacement field show deformation using polar lines +- n – Increase the displacement amount in 10% steps, wraps around from 100% to 0% +- b – Decrease the displacement amount in 10% steps, wraps around from 0% to 100% +- B – Toggle the boundary in 2D vector mode +- e – Toggle the *elements* state (vector data version). The options are: + - show surface elements corresponding to the current *vector-to-scalar function* + - do not show surface elements + - assuming a displacement field show `det(J)/det(J_d)` + - assuming a displacement field show `det(J_d)/det(J)` +- u / U – Change the *vector-to-scalar function* and the vector subdivision factor +- U – Toggle the functionality of u (prints a message in the terminal when changed). The options are: + - Increase the vector subdivision factor + - Decrease the vector subdivision factor + - Cycle through *vector-to-scalar functions* choices: + - magnitude: `sqrt(vx^2+vy^2)` + - direction from -pi to pi: `atan2(vy,vx)` + - `x`-component: `vx` + - `y`-component: `vy` + - divergence: `div(v)` + - curl: `curl(v)` [skipped for H(div) elements] + - anisotropy in `grad(v)` [skipped for H(div) elements] + +## 3D vector data + +- v – Toggle the *vector* state. The options are: + - do not show vectors + - show vectors as displacement + - show vector field; vectors are uniformly scaled; the color varies with the + magnitude (or the current *vector-to-scalar function*, see key F) + - show vector field as above, but the vectors are scaled proportionally to + their magnitude + - show the subset of the vector field with scalar function around a given + value (adjusted with keys u / U and w / W) + - show the vector field restricted to the boundary of the domain +- V – Cycle the *vector* state in the opposite direction of v +- u / U – Move the level field vectors (in the appropriate *vector* state) +- w / W – Add/Delete level field vector (in the appropriate *vector* state) +- d – Toggle the *displaced mesh* state (see also keys n / b). The options are: + - do not show displaced mesh + - show displaced mesh +- n – Increase the displacement amount in 10% steps, wraps around from 100% to 0% +- b – Decrease the displacement amount in 10% steps, wraps around from 0% to 100% +- F – Change the *vector-to-scalar function*. The options are: + - magnitude: `sqrt(vx^2+vy^2+vz^2)` + - `x`-component: `vx` + - `y`-component: `vy` + - `z`-component: `vz` From 77d828a1705f8cfa9bd41aeb1cc3ec9d76b0dbe7 Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Wed, 18 May 2022 17:05:32 -0700 Subject: [PATCH 07/14] Improved README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f6e2f8a..caa9cf5d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,13 @@ meshes and functions. It is a multiplatform application that can be built on Linux/Unix systems, including macOS, and under Windows. It can also be used in a Jupyter notebook, or in a web browser, see https://glvis.org/live. -For building instructions, see [INSTALL](INSTALL). +- For building instructions, see [INSTALL](INSTALL). + +- The GLVis [key commands](#key-commands) and [mouse functions](#mouse-functions) + are documented below. + +- GLVis is distributed under the terms of the BSD-3 license. All new contributions + must be made under this license. See [LICENSE](LICENSE) and [NOTICE](NOTIC) for details. When started without any options, glvis starts a server which waits for a socket connections (on port `19916` by default) and visualizes any received data. This From 5c9e9ea4c7c49eae621d3bd8d0be2e7569ca1797 Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Wed, 18 May 2022 17:06:28 -0700 Subject: [PATCH 08/14] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index caa9cf5d..297616c7 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Jupyter notebook, or in a web browser, see https://glvis.org/live. are documented below. - GLVis is distributed under the terms of the BSD-3 license. All new contributions - must be made under this license. See [LICENSE](LICENSE) and [NOTICE](NOTIC) for details. + must be made under this license. See [LICENSE](LICENSE) and [NOTICE](NOTICE) for details. When started without any options, glvis starts a server which waits for a socket connections (on port `19916` by default) and visualizes any received data. This From d324a5f0c2931542a986d0b941973f6c7e227353 Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Thu, 19 May 2022 11:50:05 -0700 Subject: [PATCH 09/14] Use LaTeX in README.md --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 297616c7..00dd4ba4 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Mouse functions - Left + Alt – Tilt - Left + Ctrl – Spherical rotation -- Left + Ctrl + Shift – `z`-spinning +- Left + Ctrl + Shift – $z$-spinning - Right + Ctrl – Object scaling (see also [ and ]) - Right + Shift – Change light source position (see \\) - Middle + Ctrl – Object translation (moves the camera left/right/up/down) @@ -92,7 +92,7 @@ Key commands - h – Print a short help message in the terminal - r – Reset the plot to 3D view -- R – Cycle through the six 2D projections (camera looking above/below in `x`/`y`/`z` directions) +- R – Cycle through the six 2D projections (camera looking above/below in $x$/$y$/$z$ directions) - j – Turn on/off perspective - s – Turn on/off unit cube scaling - A – Turn on/off the use of anti-aliasing/multi-sampling @@ -109,7 +109,7 @@ Key commands - none - bounding box with coordinates of the corners - bounding box without coordinates - - red, green, blue colored main `x`, `y`, `z` axes + dashed axes + - red, green, blue colored main $x$, $y$, $z$ axes + dashed axes - m – Toggle the *mesh* state. The options are: - no mesh or level lines - draw the element edges (i.e. the mesh) @@ -118,10 +118,10 @@ Key commands - show surface elements (corresponding to the function) - show no surface elements - (2D only) show element attributes - - (2D only) show element `det(J)` - - (2D only) show element `1/det(J)` - - (2D only) show element `kappa` - - (2D only) show element `kappa + 1/kappa` + - (2D only) show element $det(J)$ + - (2D only) show element $1/det(J)$ + - (2D only) show element $\kappa$ + - (2D only) show element $\kappa + 1/\kappa$ - S – Take an image snapshot or record a movie (in spinning mode). By default, the screenshots are taken in `png` format, using libpng. When GLVis is compiled with `libtiff` support (see [INSTALL](INSTALL)) then the @@ -144,10 +144,10 @@ Key commands functions and curvilinear elements (use o / O to control subdivisions) - \\ – Set light source position (see Right + Shift) - * / / – Zoom in/out -- + / - – Stretch/compree in `z`-direction +- + / - – Stretch/compree in $z$-direction - [ / ] – Shrink/enlarge the bounding box (relative to the colorbar) - ( / ) – Shrink/enlarge the visualization window -- . – Start/stop `z`-spinning (speed/direction can be controlled with 0 / Enter) +- . – Start/stop $z$-spinning (speed/direction can be controlled with 0 / Enter) - , , , – Manual rotation - 1, 2, 3, 4, 5, 6, 7, 8, 9 – Manual rotation along coordinate axes - Ctrl + , , , – Translate the viewpoint @@ -175,7 +175,7 @@ Key commands ## 2D scalar data - i – Toggle cutting (clipping) plane in 2D -- y / Y – Rotate cutting plane (`theta`) in 2D +- y / Y – Rotate cutting plane ($\theta$) in 2D - z / Z – Translate cutting plane in 2D - o / O – Control element subdivisions in 2D - there are two subdivision factors in this case: element (`s1`) and boundary (`s2`). @@ -204,8 +204,8 @@ Key commands - I – Toggle the cutting plane algorithm used when the option *cut through the elements* is selected. The two algorithms are: - slower, more accurate algorithm for curved meshes (default) - faster algorithm suitable for meshes with planar faces -- x / X – Rotate cutting plane (`phi`) in 3D -- y / Y – Rotate cutting plane (`theta`) in 3D +- x / X – Rotate cutting plane ($\phi$) in 3D +- y / Y – Rotate cutting plane ($\theta$) in 3D - z / Z – Translate cutting plane in 3D - E – Display/Hide the elements in the cutting plane - M – Display/Hide the mesh in the cutting plane @@ -239,20 +239,20 @@ Key commands - e – Toggle the *elements* state (vector data version). The options are: - show surface elements corresponding to the current *vector-to-scalar function* - do not show surface elements - - assuming a displacement field show `det(J)/det(J_d)` - - assuming a displacement field show `det(J_d)/det(J)` + - assuming a displacement field show $det(J)/det(J_d)$ + - assuming a displacement field show $det(J_d)/det(J)$ - u / U – Change the *vector-to-scalar function* and the vector subdivision factor - U – Toggle the functionality of u (prints a message in the terminal when changed). The options are: - Increase the vector subdivision factor - Decrease the vector subdivision factor - Cycle through *vector-to-scalar functions* choices: - - magnitude: `sqrt(vx^2+vy^2)` - - direction from -pi to pi: `atan2(vy,vx)` - - `x`-component: `vx` - - `y`-component: `vy` - - divergence: `div(v)` - - curl: `curl(v)` [skipped for H(div) elements] - - anisotropy in `grad(v)` [skipped for H(div) elements] + - magnitude: $\sqrt{v_x^2+v_y^2}$ + - direction from $-\pi$ to $\pi$: $atan2(v_y,v_x)$ + - $x$-component: $v_x$ + - $y$-component: $v_y$ + - divergence: $div(v)$ + - curl: $curl(v)$ [skipped for H(div) elements] + - anisotropy in $grad(v)$ [skipped for H(div) elements] ## 3D vector data @@ -275,7 +275,7 @@ Key commands - n – Increase the displacement amount in 10% steps, wraps around from 100% to 0% - b – Decrease the displacement amount in 10% steps, wraps around from 0% to 100% - F – Change the *vector-to-scalar function*. The options are: - - magnitude: `sqrt(vx^2+vy^2+vz^2)` - - `x`-component: `vx` - - `y`-component: `vy` - - `z`-component: `vz` + - magnitude: $\sqrt{v_x^2+v_y^2+v_z^2}$ + - $x$-component: `v_x` + - $y$-component: `v_y` + - $z$-component: `v_z` From d4e591a1b200b53ee268476fb23b1d24f5e69589 Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Thu, 19 May 2022 15:21:56 -0700 Subject: [PATCH 10/14] Removed TODO --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9bf8e6cc..359973cd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,6 @@ on: - v* branches: - master - - windows-ci-dev #TODO: remove before merge workflow_dispatch: env: From 6d2f981f7d727c71351233468205f2114bb1eb6a Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Thu, 19 May 2022 15:28:05 -0700 Subject: [PATCH 11/14] Reverted LaTeX in README.md, since it doesn't work in bullets yet --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 00dd4ba4..26692075 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Mouse functions - Left + Alt – Tilt - Left + Ctrl – Spherical rotation -- Left + Ctrl + Shift – $z$-spinning +- Left + Ctrl + Shift – `z`-spinning - Right + Ctrl – Object scaling (see also [ and ]) - Right + Shift – Change light source position (see \\) - Middle + Ctrl – Object translation (moves the camera left/right/up/down) @@ -92,7 +92,7 @@ Key commands - h – Print a short help message in the terminal - r – Reset the plot to 3D view -- R – Cycle through the six 2D projections (camera looking above/below in $x$/$y$/$z$ directions) +- R – Cycle through the six 2D projections (camera looking above/below in `x`/`y`/`z` directions) - j – Turn on/off perspective - s – Turn on/off unit cube scaling - A – Turn on/off the use of anti-aliasing/multi-sampling @@ -109,7 +109,7 @@ Key commands - none - bounding box with coordinates of the corners - bounding box without coordinates - - red, green, blue colored main $x$, $y$, $z$ axes + dashed axes + - red, green, blue colored main `x`, `y`, `z` axes + dashed axes - m – Toggle the *mesh* state. The options are: - no mesh or level lines - draw the element edges (i.e. the mesh) @@ -118,10 +118,10 @@ Key commands - show surface elements (corresponding to the function) - show no surface elements - (2D only) show element attributes - - (2D only) show element $det(J)$ - - (2D only) show element $1/det(J)$ - - (2D only) show element $\kappa$ - - (2D only) show element $\kappa + 1/\kappa$ + - (2D only) show element `det(J)` + - (2D only) show element `1/det(J)` + - (2D only) show element `\kappa` + - (2D only) show element `\kappa + 1/\kappa` - S – Take an image snapshot or record a movie (in spinning mode). By default, the screenshots are taken in `png` format, using libpng. When GLVis is compiled with `libtiff` support (see [INSTALL](INSTALL)) then the @@ -144,10 +144,10 @@ Key commands functions and curvilinear elements (use o / O to control subdivisions) - \\ – Set light source position (see Right + Shift) - * / / – Zoom in/out -- + / - – Stretch/compree in $z$-direction +- + / - – Stretch/compree in `z`-direction - [ / ] – Shrink/enlarge the bounding box (relative to the colorbar) - ( / ) – Shrink/enlarge the visualization window -- . – Start/stop $z$-spinning (speed/direction can be controlled with 0 / Enter) +- . – Start/stop `z`-spinning (speed/direction can be controlled with 0 / Enter) - , , , – Manual rotation - 1, 2, 3, 4, 5, 6, 7, 8, 9 – Manual rotation along coordinate axes - Ctrl + , , , – Translate the viewpoint @@ -175,7 +175,7 @@ Key commands ## 2D scalar data - i – Toggle cutting (clipping) plane in 2D -- y / Y – Rotate cutting plane ($\theta$) in 2D +- y / Y – Rotate cutting plane (`\theta`) in 2D - z / Z – Translate cutting plane in 2D - o / O – Control element subdivisions in 2D - there are two subdivision factors in this case: element (`s1`) and boundary (`s2`). @@ -204,8 +204,8 @@ Key commands - I – Toggle the cutting plane algorithm used when the option *cut through the elements* is selected. The two algorithms are: - slower, more accurate algorithm for curved meshes (default) - faster algorithm suitable for meshes with planar faces -- x / X – Rotate cutting plane ($\phi$) in 3D -- y / Y – Rotate cutting plane ($\theta$) in 3D +- x / X – Rotate cutting plane (`\phi`) in 3D +- y / Y – Rotate cutting plane (`\theta`) in 3D - z / Z – Translate cutting plane in 3D - E – Display/Hide the elements in the cutting plane - M – Display/Hide the mesh in the cutting plane @@ -239,20 +239,20 @@ Key commands - e – Toggle the *elements* state (vector data version). The options are: - show surface elements corresponding to the current *vector-to-scalar function* - do not show surface elements - - assuming a displacement field show $det(J)/det(J_d)$ - - assuming a displacement field show $det(J_d)/det(J)$ + - assuming a displacement field show `det(J)/det(J_d)` + - assuming a displacement field show `det(J_d)/det(J)` - u / U – Change the *vector-to-scalar function* and the vector subdivision factor - U – Toggle the functionality of u (prints a message in the terminal when changed). The options are: - Increase the vector subdivision factor - Decrease the vector subdivision factor - Cycle through *vector-to-scalar functions* choices: - - magnitude: $\sqrt{v_x^2+v_y^2}$ - - direction from $-\pi$ to $\pi$: $atan2(v_y,v_x)$ - - $x$-component: $v_x$ - - $y$-component: $v_y$ - - divergence: $div(v)$ - - curl: $curl(v)$ [skipped for H(div) elements] - - anisotropy in $grad(v)$ [skipped for H(div) elements] + - magnitude: `\sqrt{v_x^2+v_y^2}` + - direction from `-\pi` to `\pi`: `atan2(v_y,v_x)` + - `x`-component: `v_x` + - `y`-component: `v_y` + - divergence: `div(v)` + - curl: `curl(v)` [skipped for H(div) elements] + - anisotropy in `grad(v)` [skipped for H(div) elements] ## 3D vector data @@ -275,7 +275,7 @@ Key commands - n – Increase the displacement amount in 10% steps, wraps around from 100% to 0% - b – Decrease the displacement amount in 10% steps, wraps around from 0% to 100% - F – Change the *vector-to-scalar function*. The options are: - - magnitude: $\sqrt{v_x^2+v_y^2+v_z^2}$ - - $x$-component: `v_x` - - $y$-component: `v_y` - - $z$-component: `v_z` + - magnitude: `\sqrt{v_x^2+v_y^2+v_z^2}` + - `x`-component: `v_x` + - `y`-component: `v_y` + - `z`-component: `v_z` From f426334e355d3c5c8646b1085855a81516a2cc24 Mon Sep 17 00:00:00 2001 From: Max Yang Date: Thu, 19 May 2022 19:33:19 -0700 Subject: [PATCH 12/14] Bump versions in Info.plist files for Mac bundles --- share/Info.cmake.plist.in | 2 +- share/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/share/Info.cmake.plist.in b/share/Info.cmake.plist.in index 82a6827c..8606902f 100644 --- a/share/Info.cmake.plist.in +++ b/share/Info.cmake.plist.in @@ -11,7 +11,7 @@ CFBundleIconFile GLVis.icns CFBundleShortVersionString - 4.0.1 + 4.2 CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/share/Info.plist b/share/Info.plist index 1a4be377..069b6226 100644 --- a/share/Info.plist +++ b/share/Info.plist @@ -11,7 +11,7 @@ CFBundleIconFile GLVis.icns CFBundleShortVersionString - 4.0.1 + 4.2 CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType From 17e2a3cd6ea843ed9d7bd8213c63ce16d942345d Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Mon, 23 May 2022 15:33:21 -0700 Subject: [PATCH 13/14] Final updates in CHANGELOG and CONTRIBUTING.md before glvis-4.2 --- CHANGELOG | 6 +++--- CONTRIBUTING.md | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 449e3a80..3934b10f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,7 +9,7 @@ https://glvis.org -Version 4.2 released on May 20, 2022 +Version 4.2 released on May 23, 2022 ==================================== - Added 3D scene export to glTF format (https://www.khronos.org/gltf) which is @@ -24,11 +24,11 @@ Version 4.2 released on May 20, 2022 - Support for visualization of pyramid-shaped elements. -- Mac and Windows binaries are now automatically built with GitHub actions CI. +- An edge numbering option is now available in 2D. - In 2D, save and restore solution's value range when using keys 'e' and 'b'. -- An edge numbering option is now available in 2D. +- Mac and Windows binaries are now automatically built with GitHub actions CI. - The command-line option -mac was renamed to -save. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index de9948ba..1df33913 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -287,7 +287,11 @@ Before a PR can be merged, it should satisfy the following: - Local copies of `next` can then be updated with `git fetch origin next && git checkout -B next origin/next`. ### Release Checklist - +- [ ] Update the GLVis version in the following files: + - [ ] `CHANGELOG` + - [ ] `vcpkg.json` + - [ ] `share/Info.plist` + - [ ] `share/Info.cmake.plist.in` - [ ] Check that version requirements for each of GLVis's dependencies are documented in `INSTALL` and up-to-date - [ ] Update the `CHANGELOG` to organize all release contributions - [ ] Review the whole source code once over From b4487f35595c632519e2f6191f5a5cc20585c940 Mon Sep 17 00:00:00 2001 From: Tzanio Kolev Date: Mon, 23 May 2022 16:49:02 -0700 Subject: [PATCH 14/14] Badges --- CONTRIBUTING.md | 9 +++++++-- README.md | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1df33913..6af1a79f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,8 +3,12 @@

-License -Doxygen +Release +Build +License +Doxygen +License +License

@@ -289,6 +293,7 @@ Before a PR can be merged, it should satisfy the following: ### Release Checklist - [ ] Update the GLVis version in the following files: - [ ] `CHANGELOG` + - [ ] `README.md` - [ ] `vcpkg.json` - [ ] `share/Info.plist` - [ ] `share/Info.cmake.plist.in` diff --git a/README.md b/README.md index 26692075..a53c428b 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,13 @@ https://glvis.org +Release +Build +License +Doxygen +License +License + [GLVis](https://glvis.org) is an OpenGL tool for visualization of finite element meshes and functions. It is a multiplatform application that can be built on Linux/Unix systems, including macOS, and under Windows. It can also be used in a