New developments in code, documentation and website are reported here.
What is new:
- Updated the make_local file, for Linux + BSD, x86_64 + i386 architectures.
- Synced dat/ and doc/ from the latest release gamgi 0.17.5, with www.gamgi.org,
ftp.gamgi.org and gamgi.tecnico.ulisboa.pt
This is mostly a cleaning release. Fixed all the strncpy, sprintf, calloc issues
raised by gcc 10.2.1 (included with Debian 11) warnings. Cleaned parts of the
x3d exporting code, involving texts and orbitals. Reviewed, updated the entire
Help->Current and Help->Topic subsystems.
What is new:
- Replaced standard lib function strncpy by gamgi_io_token_cut in
gamgi_gtk_file_chooser to avoid improperly terminated truncated strings.
- Replaced calloc by malloc (plus initialization) in gamgi_chem_symmetry.c,
in all calls involving multiple objects, to avoid (false positive) gcc 10.2.1
warnings.
- Eliminated a gcc 10.2.1 sprintf -Wformat-overflow= warning in gamgi_io_error.c.
Although the code was safe, gcc was right that it could be improved.
- Eliminated a false positive gcc 10.2.1 sprintf -Wformat-overflow= warning in
gamgi_expat_export_config.c.
- Eliminated a gcc 10.2.1 warning in gamgi_io_x3d_render due to a potential
sprintf overflow. All gcc 10.2.1 warnings related with strncpy, sprintf and calloc
calls are now fixed.
- In io/gamgi_io_x3d code, fixed a sintax issue in the NavigationInfo node,
to avoid a warning with X3D viewer view3dscene.
- Started yet another round of cleaning X3D code in io/gamgi_io_x3d.c and
io/gamgi_io_x3d_render.c. Exported text and orbital objects (solid and wired),
are rendering well in X3D viewer view3dscene.
- Fixed the set of incompatibility tests in expat/gamgi_expat_import_object.c
for cell objects, which stopped GAMGI from reading stereographic projection files.
- Fixed HTML files and Help->Current code for Text->Link, Orbital->Select, Atom->Config,
Molecule->Create, Light->Config and Cell->Config help pages.
- Added a test in gamgi_gtk_help_dialog_import to control mistakes in the help page
provided for example in gamgi_gtk_help_current, that could even crash GAMGI when using
a external browser to serve help pages.
- Updated, synced information in Help pages for Group, Molecule, Cluster, Cell
objects about Geometry measurements.
- Merged, updated Help->Current documentation for Cell->Measure.
- Fixed Help->Topic->Interfaces for Orbital->Select, Atom->Config, Molecule->Create,
Cell->Measure, Light->Config, Cell->Config. Fixed Help->Topic->Formats for Light->Config.
- Added documentation for File, Gamgi keywords, available from Help->Topic->Interfaces
and Help->Topic->Formats.
- Added Help->Current support for second level dialog reports for Cell->Measure Geometry
and Voronoi methods (similar to Cluster->Measure, Molecule->Measure, Group->Measure).
- Improved the Atom->Config GTK dialog (Color and View page).
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write documentation about lists of objects.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
This is a maintenance release. Gamgi is compiling and working fine with
the latest Debian testing release: bullseye 11 release candidate 2.
What is new:
- Gamgi is compiling and working fine with Debian 11 bullseye rc2,
with gcc 10.2.1.
- Added extern to arrays in phys/gamgi_io_font_sun.c,
to fix a multiple definition error with gcc 10.
- Added extern to arrays in io/gamgi_io_font_hershey.c,
to fix a multiple definition error with gcc 10.
- Added extern to arrays in phys/gamgi_phys_symmetry.c,
to fix a multiple definition error with gcc 10.
- Added extern to arrays in chem/gamgi_chem_property.c,
to fix a multiple definition error with gcc 10.
- Added extern to gamgi_gamgi *gamgi in gamgi_global.h (declaration)
and gamgi_gamgi *gamgi in gamgi_global_main (definition), to fix
a multiple definition error with gcc 10.
- Fixed a initialization bug in chem/gamgi_chem_symmetry.c:
initialized sum=0 in static_optimize.
- Rearranged the number tests in chem/gamgi_chem_graphene_cone.c
to avoid a gcc indentation warning.
- Fixed a bug in engine/gamgi_engine_array.h:
gamgi_engine_iarray_push was returning double * instead of int *.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
Implemented the GTL Cell->Config dialog and the corresponding XML code,
allowing users to set personnal default parameters for Cell objects,
and more importantly, to set different thicknnesses for Cell axes,
borders and nodes, which is very usefull particularly when using
large screen resolutions.
What is new:
- Updated Help->Config files for Light and Atom objects.
- Synced gamgi-g and gamgi-x trees.
- Updated gamgi_expat_import_object: importing Cell object data
to XML files with the new config rules should be working fine.
- Updated gamgi_expat_export_object: exporting Cell object data
to XML files with the new config rules is now working fine.
- In Cell->Create and Cell->Modify, Origin vectors and Axes vectors
are now updated automatically for default (Conventional or Primitive)
options when Model changes.
- Replaced cell->borders = FALSE by cell->borders = GAMGI_PHYS_NONE,
in engine, gtk, expat and mesa code.
- Updated gamgi_expat_export_config: exporting Cell
config data to XML files is now working fine
- Updated gamgi_expat_import_config: importing Cell
config data from XML files is now working fine
- Improved the Cell->Config dialog, to handle also
default values for Model, Borders, Faces and Nodes.
- Redesigned Object->Config dialogs: Config data is now separated in
default data (in the pages with the same names as in Object->Create dialogs)
and global data (applying to all objects, old and new), in the Global (last)
notebook page. Dialogs affected: Atom->Config, Cell->Config, Light->Config.
- Implemented Cell->Config dialog and infra-structure. The size of Cell
border lines, node points, and vector axes can now be set globally for all
cells in GAMGI, a feature badly needed. Default values for
cell color and axes usage have been set also.
- Fixed a issue in gamgi_gtk_bond_create: the color set in static_init
ignored previous config data.
- Fixed an issue in gamgi_mesa_draw_pick and gamgi_mesa_draw_grab: Cell rendering
point width was set to line width instead of point width.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
Merged the new graphene code to build nanotubes, nanocones, nanocages.
Removed a serious bug resulting in top windows being closed too son in
some window managers. Cleaned code to prevent compilation warnings about
non-initialized variables, added a new test to catch nans in GTK dialog
input data.
What is new:
- Cleaned code in gamgi_gtk_*link.c and a few other files, to avoid warnings,
mostly innocuous, about non-used and non-initialized variables.
- Updated make_local to compile out-of-the-box in Debian 8.7, the last stable
version.
- Changed the delete_event callback in gamgi_gtk_window_create.c to prevent
a bug resulting in top windows being closed too son in some window managers.
Changed all other delete_event callbacks to return FALSE, when windows should
be destroyed.
- Merged the new GTK code to build nanotubes, nanocones, nanocages,
from Molecule->Create.
- Merged the graphene code to build nanotubes, nanocones,
nanocages, created dor the Master thesis of Joao Coelho.
- Cleaned code in gamgi_io_x3d.c and gamgi_io_x3d_render.c.
- Added a new test case to gamgi_io_token_float_get_check and
gamgi_io_token_double_get_check to find NANs.
- Updated gamgi_math_quaternion_from_axis and
gamgi_math_quaternion_to_axis, to handle the special case
where the rotation angle is zero, to avoid a division by zero.
- Removed gamgi/dat/util/: old files, no longer needed.
- Synced documentation on http://gamgi.org and http://gamgi.ist.utl.pt
with local doc/.
- Synced data files on http://gamgi.org and http://gamgi.ist.utl.pt
with local dat/.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
Reviewed all Formats documentation, particularly for Cluster, Group,
Plane, Direction objects. Replaced attribute type by reference in XML
group elements. Reviewed the code bridging GTK and OpenGL. Changed
license for GAMGI source code and GAMGI documentation for GPL v3.
Renewed gamgi.org domain name until 2020 and GAMGI EU trademark until
2024. Started using sha256sum to checksum distribution tarball files.
What is new:
- Fixed a bug just introduced: we cannot unref the GDK visual
after removing a GL context. Just removed this code. Apparently
GTK does this when the widget is destroyed.
- Improved gamgi_gtk_area.c, used in the X version of GAMGI,
that replaces the GTKGLExt library by our own GLX-based code.
Javier Cabezas ported this code to GTK 3 and is working fine!
Back ported changes so the differences between the code for
GTK 2 and GTK 3 are absolutely minimal.
- We cannot use r,g,b colors because of a,b,c cell axes.
- Improved Axes layout in Orbital->Create and Orbital->Modify dialogs.
- Changed label Model to Scope in Orbital->Create and
Orbital->Modify and changed Help interface accordingly.
- Checked all Help Formats documentation pages.
- Updated Help documentation for Cluster Formats.
- cluster->paints arrays are no longer zero-terminated.
- Synced gamgi and gamgi_exp branches.
- In XML files, in group elements, replaced attribute type by reference.
- Updated Help documentation for Plane and Direction Formats.
- Updated Help documentation for Group Interfaces and Formats.
- Renewed the EU
trademark GAMGI until 2024.
- Updated the source code and documentation license to
GPL v3.
- Started using sha256sum
to checksum all distribution files.
- Renewed the gamgi.org domain name registration until 2020.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.