GAMGI Changelogs: GAMGI 0.15

GAMGI new
New developments in code, documentation and website are reported here.
GAMGI 0.15.5
1st September 2011
Lists of arbitrary objects can now be exported, exactly as any other object currently selected. Added a Help->Tips entry in the Help menu, covering importants advices to increase GAMGI usability. Updated all the information for Plane->Create, Plane->Modify, Direction->Create, Direction->Modify. Rewrote Plane->Modify and Direction->Modify, which are now working with lists of Planes and Directions, still in a reduced, provisory mode. Added several important crystalline structures to /dat/cell/structures.

### What is new:

- Synced gamgi/ and gamgi_exp/ branches.
- Cleaned gamgi_gtk_plane_modify.*, gamgi_gtk_direction_modify.*, removed gamgi_phys_plane_reference.
- Fixed name changing in Plane->Modify and Direction->Modify.
- Direction->Modify is now working fine for all types of Directions, (cristalline and atomic, poles, traces, direct space lines), when arrays are not modified, including lists of Directions.
- Plane->Modify is now working fine for all types of Planes, (cristalline and atomic, poles, traces, reciprocal lattice vectors, direct space polygons), when arrays are not modified, including lists of Planes.
- Solved several issues regarding Plane->Modify and Direction->Modify: modifying Planes,Directions is now possible, when its Cell,Atoms parents are not there anymore. Seeing planes,directions properties is now much easier. Modifying reciprocal lattice plane vectors is now possible.
- Added more tips to Help->Tips.
- Wrote static_ok_local, static_ok_global and static_grab in gamgi_gtk_plane_modify.c and gamgi_gtk_direction_modify.c.
- Reviewd all the Direction->Modify interface. Futurely it will be simpler and more powerful. Currently is not working.
- Reviewd all the Plane->Modify interface. Futurely it will be simpler and more powerful. Currently is not working.
- Updated Help documentation for Direction->Create and Direction->Modify.
- Updated Help documentation for Plane->Create and Plane->Modify.
- Lists of objects can now be exported, for all classes of objects. Bonds between members of the list are ignored.
- Lists of bonds, and a single bond, are now exported with the parent atoms.
- Fixed a bug: Gamgi (meaning all) could not be selected.
- Added a new Help->Tips section, with advices about all sort of topics related with GAMGI usage, that should prove quite useful even for experienced users.
- Bonds can now be selected according to their bond length.
- Added a model of a ice_clathrate with 46 water molecules.
- Added C60 cfc structure, with atoms,bonds or polyhedra.
- Added Ice-Ic, solid CO2 (dry ice) and solid C6H6 cristalline structures to /dat/cell/structures.
- Added alpha-La, beta-Sn, In, As, gamma-Se, alpha-Hg cristalline structures to /dat/cell/structures.

### 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 tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.15.4
19th June 2011
Fixed space groups 119, 120, 121, 122. Solved a problem with interactive handling lists of recursive objects. Fixed new and old bugs in light scaling, Layer->Modify, Plane->Create. Fixed a bug in ClCs tutorial, fixed outdated interstice cell data files. Created xml and info txt data files for the most relevant cfc, bcc, hcp derived cristalline structures. Implemented a dialog to generate lists of families of crystallographic planes. Implemented a unique task identifier, to futurely handle operations such as drawing in a safer way.

### What is new:

- Added the most important cristalline structures derived from cfc, bcc, hcp to dat/cell/structures.
- Synced gamgi/ and gamgi_exp/ code trees.
- Found and removed a recent bug in scale code: individual lights were not scaling with the mouse.
- Fixed dat/cell/interstices/ files that still used type instead of label to designate atom types.
- Built Chalcopyrite with space group 122: the structure is correct.
- Space groups 119, 120, 121, 122 were given as P groups, should be I. Fixed. Group 119 had positions a,b,c,d with symmetry -42m, should be -4m2. Fixed. Checked lattice and symmetry labels for all other tetragonal groups: they are correct. Checked Wyckoff positions for groups 119, 120, 121, 122: they are correct.
- Found and removed a bug in Plane->Create: area tolerance to dismiss plane creation in a range is too small.
- Found and removed a bug in Layer->Modify: layer names were not copied.
- Started buiding a comprehensive data base of representative crystallographic structures, based on the book "Structure of Materials, by M. de Graef and M. E. McHenry".
- Designed a GTK dialog to handle lists of crystallographic planes in Plane->Create.
- Fixed a HTML glitch in the CsCl tutorial.
- Started building a dialog to create ranges of crystallographic planes.
- Replaced the id mechanism to handle translation, rotation of lists of recursive objects, by the much simpler, slightly faster, marking algorithm that also works for scaling. Rotation, translation, scaling of lists of recursive objects works fine now, and the new algorithm does not interfere with all the other translation, rotation mechanisms devised earlier. This essentially completes the conceptual work, planned 10 years ago, but only initiated in October 2009, to handle lists of objects exactly as a single object.
- Designed, implemented a simple, fast algorithm to scale lists of recursive objects. It works also for rotations, translations.
- Started working on gamgi_gtk_plane_set.c and gamgi_gtk_direction_set.c, to create flexible sets of crystallographic planes and directions.
- A unique id number is now generated for all rotation tasks, for example to avoid repetitions when rotating lists of recursive objects.
- A unique id number is now generated for all translation tasks, for example to avoid repetitions when translating lists of recursive objects, such as texts, groups, clusters or assemblies.

### 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 tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.15.3
21st May 2011
Global lists of pre-selected objects can now be rotated, translated, scaled exactly as before for a local single object (to grab focus for a list of objects, just press the mouse middle button over the corresponding object class button, in the main menu, and then over the Gamgi button). Updated all the local and web documentation for Object->Copy and Object->Link dialogs, available for example through the Help tools.

### What is new:

- Synced gamgi/src and gamgi_exp/src code branches.
- Synced all the interfaces documentation: www.gamgi.org, ftp.gamgi.org, gamgi_doc and gamgi-exp_doc. Fixed a tag position inconsistency in CSS notebook code.
- Updated the documentation for all the Object->Link dialogs.
- When giving focus to a list of objects, now checks first if the list is empty.
- Updated the documentation for all the Object->Copy dialogs.
- Fixed a little GUI bug in Layer->Copy: (disable Local in object mode).
- Developed a flexible, simple, fast, mechanism to identify each instance of tasks such as rotating and drawing with a unique id, to properly handle multi reentrance in the same object.
- Removed gamgi_global_selection_draw, replaced by equal function gamgi_mesa_draw_gamgi.
- Added code to implement task ids: tasks such as drawing, scaling, rotating, translating will have a unique id attached, to prevent bugs in objects with multiple parents, such as bonds, and lists of recursive objects, such as texts, groups, clusters and assemblies.
- Lists of pre-selected objects can now be interactively scaled (dragging the mouse or clicking the ruler), exactly as before for a single object.
- Lists of pre-selected objects can now be interactively translated (dragging the mouse or clicking the ruler), exactly as before for a single object. It works quite fast for 1500 atoms, on two different windows!
- Lists of pre-selected objects can now be interactively rotated (dragging the mouse or clicking the ruler), exactly as before for a single object (needs more testing).
- Code disabling selection lists when listed objects are removed is now also disabling global focus for those lists.
- We are a step closer to rotate,move,scale lists of previously selected objects: code to select objects or lists of objects, including statusbar info and all the required internal data (just gamgi->focus), are now working fine.

### 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 tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.15.2
22nd April 2011
GAMGI code is now compiling fine with SINGLE_INCLUDES and SEAL_ENABLE enabled, so miggrating to GTK-3.0 should be relatively easy. Fixed minor GUI bugs in all Object->Copy and Object->Link dialogs. Polygon data imported from XML files is now properly checked. Updated Help files for Object->Copy, Object->Select, Object->Link dialogs, and updated Help->Current and Help->Topic accordingly. Changed XML formats for polygon Planes and line Directions and updated dat/ files accordingly. Objects can now be rotated,moved, scaled in all open windows simultaneously.

### What is new:

- Addded -I/usr/include/gdk-pixbuf-2.0/ to PATH_GTK_H in make_local, as this is required at least by Ubuntu 10.10.
- Synced gamgi/src/ and gamgi_exp/src/.
- Synced gamgi/doc/interfaces/, gamgi_exp/doc/interfaces/, www.gamgi.org/interfaces/ and ftp.gamgi.org/interfaces/.
- Updated Help->Topic, to support the files documenting the new Object->Copy, Object->Select and Object->Link dialogs.
- Updated Help->Current, to support the files documenting the new Object->Copy, Object->Select and Object->Link dialogs.
- Updated the Help file infrastructure, to document all the new Object->Copy, Object->Select and Object->Link dialogs.
- Interactive rotation, translation, scaling now works fine for all windows simultaneously (after selecting Gamgi as current object).
- Updated planes,directions in XML files in dat/plane and dat/cell, to conform with the new format for polygons and lines.
- Fixed group->type and added cluster->type, so both types of Group and Cluster objects can now be correctly exported/imported to XML files.
- Added x,y,z, center_x,center_y,center_z, e1,e2,e3 to Cluster objects.
- Changed cx,cy,z by center_x, center_y, center_z parameters in XML files, for Plane, Group and Cluster objects.
- Changed the way geometry is described in Line Directions in XML files.
- Fixed a GUI bug in all Copy and Link dialogs: the first object must be local, which means in the current layer (before, objects in different layers could be selected, as long as the window was the same).
- Reviewed and tested further all the code to import planes and directions from XML files. This is now robust and simpler than before.
- Cdata arrays for Cluster, Group, Plane, Direction polygons and lines are now properly tested when importing XML files.
- GAMGI is now compiling and running fine with -DG_DISABLE_SINGLE_INCLUDES, -DATK_DISABLE_SINGLE_INCLUDES, -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES, -DGTK_DISABLE_SINGLE_INCLUDES. As GTKGLExt does not support yet these directives, only the GAMGI version marked gamgi_exp (without GTKGLExt) can be currently built with *_SINGLE_INCLUDES enabled.
- GAMGI is now compiling and running fine with -DGSEAL_ENABLE enabled.

### 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.
- Add plane area and direction length to Plane->Measure and Direction->Measure.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.15.1
16th February 2011
Coordination polyhedra groups and Voronoi polyhedra clusters can now be exported/imported from GAMGI XML files. Polygon planes and Line directions can also be exported/imported from GAMGI XML files, as totally independent objects, so they don't depend anymore from Cell or Atom objects. Planes and Directions represented in stereographic projections can now be scaled as any other object. Improved the functionality offered in Plane->Create, Direction->Create and Group->Create (Structure and Filter menus). Removed all the code involving the ugly concept of dependency, envolving Plane, Direction and Group objects. Direction->Measure and Plane->Measure now can calculate also the geometrical area and length, respectively. Fixed bugs in Bond->Create and Direction->Measure and cleaned code.

### What is new:

- For the first time, polytope Groups can now be imported,exported to XML files, with the new data model.
- Directions can be imported/exported again to XML files, with the new data model. All types of directions seem to be working fine.
- Planes can be imported/exported again to XML files, with the new data model. All types of planes seem to be working fine, except planes on the reciprocal lattice.
- Cracked down the way to properly position Planes, Directions and Groups imported from polygonal data in XML files.
- Fixed a new bug in Reciprocal lattice: when selecting a plane, it would wrongly move, rotate the cross.
- Planes, Directions cannot be linked to another object when they are not polygons, lines (Stereographic projection, reciprocal lattice.
- Measuring area, length, with Plane->Measure, Direction->Measure just produces an error when Plane, Direction is not a polygon, line.
- Plane->Measure, Direction->Measure for crystalographic Planes, Directions works fine when parent is no longer a Cell, producing just an error.
- Crystalographic Planes, Directions now can still exist when parent is no longer a Cell, when they are polygons or lines.
- Voronoi clusters and Coordination groups can now be exported, imported, still with limitations: position and orientation data is still missing.
- All polygon data can now be exported and imported from GAMGI XML files.
- Most of the code to import polygon data, to describe Clusters, Groups, Planes, Directions, in a easy and solid way, is now in place.
- Plane->Measure and Direction->Measure now support plane geometrical area and direction geometric length.
- Added functions to calculate Plane geometrical area and Direction geometrical length.
- Fixed a bug in Direction->Measure: the distance between nodes in some cases was a multiple of the correct value, for centered lattices.
- Wrote code to build polygon arrays from XML files.
- glPolygonOffset is now (1,1) for Planes and (2,2) for Cells, so Planes have visual priority over Cells.
- Planes rendered as polygons now have a border, with the background color, which is good to distinguish them.
- Completed a full review of the functionality for Plane->Create, Direction->Create and Group->Create.
- The Structure options are now fully working on Plane->Create and Direction->Create (similar to Autonomy options before).
- Improved Plane->Create, Direction->Create: now there are 4 different policies to filter atoms in Planes, Directions.
- Improved Group->Create: now there are 4 different policies to filter atoms around central atom.
- Improved gamgi_chem_polytope code: the number of Planes, Directions created, and ignored Groups, due to improper atom coordinates are now fully reported.
- Fixed a new bug in Bond->Remove: graphic area not immediately refreshed, in Local mode.
- Introduced a new parameter Structure, meaning how atoms are transported to new object: Copy, Link or None.
- Got rid of gamgi_phys_plane_compatible, gamgi_phys_direction_compatible: another ugly concept that does not solve the issue: atom superposition.
- Planes and Directions in stereographic projections and reciprocal lattice now can be scaled as any other object (increasing/decreasing the width).
- Planes and Directions in Trace mode (in Projection Cells) can now be scaled (changing line width) exactly as any other object.
- GAMGI can now export array data everytime that is necessary, for example in Clusters, Groups, Planes and Directions.
- Removed gamgi_chem_atom_unlink: removing atoms should never remove automatically container objects. If it makes sense or not that is a user prorrogative. This represents a change in policy, in how to handle planes, directions and groups. These objects can be handled, exported, imported even if they cannot be fully reconstructed. gamgi_chem_atom_unlink, gamgi_gtk_object_independence and autonomy code were among the ugliest code in GAMGI.
- Removed test function gamgi_gtk_object_independence: all objects must be fully independent and can be save to files. If it makes sense or not that is a user prorrogative.
- Removed parameter Autonomy from Plane, Direction and Group objects. Futurely these objects will always have Autonomy All.

### 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.
- Add plane area and direction length to Plane->Measure and Direction->Measure.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI old
Changelogs for older releases can be found here.

- GAMGI 0.14.1 - GAMGI 0.15
- GAMGI 0.13.1 - GAMGI 0.14
- GAMGI 0.12.1 - GAMGI 0.13
- GAMGI 0.11.1 - GAMGI 0.12
- GAMGI 0.10.1 - GAMGI 0.11
- GAMGI 0.09.1 - GAMGI 0.10
- GAMGI 0.08.1 - GAMGI 0.09
- GAMGI 0.07.18 - GAMGI 0.08

Home