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 @@
-
-
+
+
+
+
+
+
@@ -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
+
+
+
+
+
+
+
[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