GAMGI 0.13
2nd February 2008
Grabed data on the most important isotopes (masses, abundances, half-life times) and radius (natural element atom-atom distances, effective and calculated atomic radius, covalent, van der Walls). Grabed data on the widely used Shannon ionic radius (depending on valence, coordination and spin). Although already merged with GAMGI, all this data is not available yet for final users (except covalent radius). Prepared glib_gtk_gtkgl.tar.gz, containg all the old glib, gtk and gtkglarea .h and .so files needed to compile GAMGI on x86, x86_64 and ppc architectures, available from ftp://ftp.gamgi.org/gamgi/src/. Fixed a bug in Plane->Create.
What is new:
- Updated the INSTALL file included with the GAMGI tarball.
- Merged the new data and drivers on mass, ionic radius and atomic
radius with GAMGI.
- Wrote and tested the driver to handle the various atomic radius.
- Added data describing radius: natural atom-atom distances in elements,
atomic (effective and calculated) and van der Waals radius (currently
GAMGI comes only with covalent radius). Many thanks to Luis Veiros,
who helped collecting this data. Source: Web_of_Elements.
GAMGI comes only with covalent radius.
- Wrote and tested the driver to handle the shannon ionic radius.
- Wrote and tested the driver to handle the isotopic data.
- Added data describing the well known Shannon ionic radius,
published in Acta Crystallographica in 1976 for most elements, as a
function of valence, coordination and spin, and widely used today,
namely in ceramics books. Many thanks to Pedro Isidoro, who sent me
copies of the 1969 and 1976 Shannon papers.
- Added data describing the main isotopes for all elements,
including abundances and half-life times. Source: Wikipedia,
Web_of_Elements, and others.
- Prepared a file, glib_gtk_gtkgl.tar.gz, containg all the
glib, gtk and gtkglarea .h and .so files needed to compile
GAMGI on x86, x86_64 and ppc architectures, available from
ftp://ftp.gamgi.org/gamgi/src/.
- Found and removed a little bug in Plane->Create: when the
initial and final order was the same, the order was always 1.
What is next:
- Redesign Atom->Create and Atom->Modify, according with the new
notebook style, with more properties, including a wide range of atomic
radius.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Port GAMGI to GTK 2.* or (3.*).
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.12
3rd December 2007
Wrote tutorials about Point Symmetry and Voronoi Tesselation and added older
tutorials to the GAMGI Help mechanism. Redesigned Cell->Measure, which can be
used now to analyse Geometry, Voronoi Tesselation and Reciprocal Lattice. Improved
Plane->Create, Plane->Modify, Direction->Create, Direction->Modify, slashing several
important positioning bugs. Plane->Modify, Direction->Modify and XML files fully work
now with autonomy All. Removed two bugs gone unnoticed with some gcc versions, resulting
in a warning and an error, when compiling. If no major problems are found, next release
will be 0.13.
What is new:
- Changed the default colors for GAMGI text documentation.
- Soved a positioning bug in Plane->Modify and Direction->Modify,
when going to atomic planes, directions from objects with a different
position.
- Solved a positioning bug in Plane->Create and Direction->Create,
with atomic planes and positions, introduced with last release changes.
- Solved a positioning bug in Plane->Modify and Direction->Modify,
when changing from All to Partial or None Autonomy, introduced with the
Autonomy All new code.
- Fixed a bug when importing planes, directions with autonomy ALL
from XML files.
- Atomic and crystallographic planes and directions can now
be modified in all cases where old or new Autonomy is All.
- Updated the dialog dimensions for Help->Tutorial and Help->Topic.
- We are planning to port GAMGI to GTK 2* (or perhaps 3*), as this
seems to be the most reasonable long-term solution for GAMGI.
Even OLPC, a notoriously unbloated project, is using GTK2 these days.
(with Python).
- Added a two-page tutorial on Voronoi tesselation.
- Added a two-page tutorial on Point Symmetry analysis.
- Added <ctype.h> in gamgi_gtk_help_dialog.c, to avoid
a warning silently accepted by gcc 3.3.4.
- Removed a parsing error (void left) in gamgi_gtk_gamgi_exit,
silently accepted by gcc 3.3.4.
- Tested and cleaned gamgi_phys_reciprocal.c, with shifted
cell node origin: no bugs found.
- Fixed a XML glitch in formats/text/create_contents.html.
- Updated the documentation information on www.gamgi.org.
- Added the tutorials on occupancy rules, nanostructure and RCP,
available from the documentation, to the interface Help subsystem.
- Removed gamgi_math_cell_transform, replaced by
gamgi_math_position_rotation, gamgi_math_position_translation.
- Simplified the position code in gamgi_phys_plane,
gamgi_phys_direction, gamgi_phys_cell_link and gamgi_phys_rcp
(the cell center is no longer needed in these functions).
- Found a old bug in the bond code: when the selected object has
only one of the atoms, bond->first changes when rotating, moving.
We think we have a good solution for this structural problem, even
for the future, when most objects will be allowed to have multiple,
unlimited, parents: attribute ids to internal tasks.
- Cracked a problem regarding rotation and translation
of planes and directions imported from XML files.
- Moved Cell->Measure to the new style and added Geometry and Voronoi
methods, as in Group-, Molecule- and Cluster->Measure dialogs.
- Removed a simple bug just introduced in gamgi_gtk_direction_create.c,
that crashed GAMGI when attempting to create an atomic direction.
- Solved partially a positioning problem when importing atomic
planes, directions, with Partial Autonomy.
What is next:
- Redesign Atom->Create and Atom->Modify, according with the new
notebook style, with more properties, including a wide range of atomic
radius.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Port GAMGI to GTK 2.* or (3.*).
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.11
25th October 2007
Improved the usability of the dialogs Plane->Modify and Direction->Modify.
Crystallographic and atomic planes and directions with Partial Autonomy,
can now be arbitrarily positioned. Redesigned and reunited in a single file
the code to position objects, which is now much more consistent, simpler,
and easier to maintain. Replaced Layer, Plane, Direction enumerations by
a common one, easier to understand. Replaced XML possible values yes,partial,no
by all,partial,none, for visibility_in, visibility_out in layers and autonomy
in planes, directions, to be consistent with the dialogs.
What is new:
- Temporarily disabled Plane->Modify and Direction->Modify,
when the old or new Autonomy is All, until we find the best
approach to the problems involved.
- Harmonised the error messages when a feature is not supported yet.
- Changing arbitrary positions for atomic planes and directions is
now working fine, when done from Plane->Modify or Direction->Modify.
- Simplified and improved the functions in gamgi_math_position.c
- Removed gamgi_math_plane.c and gamgi_math_function.c and
reunited the code inside in a single file, gamgi_math_diophantine.c,
covering all the functions related with Diophantine equations.
- Redesigned all the mathematic rotation, translation code for
text, direction, plane, cell objects. This critical code is now
much simpler and reunited in a single file: gamgi_math_position.c.
- Crystallographic planes and directions with autonomy partial or none
are now working fine with arbitrary orientation and child objects.
- Simplified the code handling position and orientation for cells,
planes, directions, making it much easier to understand and maintain.
- The position of planes and directions is now reset before modifying
them, in Plane->Modify and Direction->Modify, so the positions of the
child objects are correct afterwards.
- Updated formats documentation for layer and plane, direction.
- In XML files, replaced parameters yes, partial, no, in layers
(visibility_in, visibility_out), planes (autonomy) and directions
(autonomy) by all, partial, none.
- Replaced enumerations TRANSPARENT, TRANSLUCID, OPAQUE (layers) and
INDEPENDENT, AUTONOMOUS, AUTOMATIC (planes,directions) by a single
enumeration ALL, PARTIAL, NONE.
- Added gamgi_math_direction.c, currently to handle direction
positioning code.
- The positioning code for crystallographic planes and directions
is now well tested and is working fine, after fixing a few rotation,
translation issues.
- Crystallographic planes with autonomy Partial or All can
now be exported,imported with arbitrary position and orientation.
- Plane,Direction position and orientation is now exported,
imported to XML files, when the autonomy is Partial or All.
- When the type of plane,direction changes in Plane->Modify,
Direction->Modify, the same defaults as in Plane->Modify,
Direction->Create are shown.
- Added GTK_WIDGET_VISIBLE macros to improve the interface
behaviour in Plane->Modify and Direction->Modify.
- Added rotation and translation to molecule and group containers.
- Controling position and orientation in Plane->Modify is
now working fine, for polygon crystallographic planes.
- Added a page Position to Plane->Modify and Direction->Modify.
- Fine tuned Plane->Modify and Direction->Modify behaviour. Fixed
default values for projection and autonomy parameters of
planes/directions.
- Corrected a bug in gamgi_engine_find_object() when Gamgi is the
selected object, and improved the code in gamgi_engine_find_object().
As a result simplified static_bond_parent() in gamgi_expat_export.
What is next:
- Write tutotials about Point symmetry analysis, Voronoi
analysis and Plane,Direction usage, including atoms.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.10
19th September 2007
Added a Geometry method in Group->Measure, Molecule->Measure
and Cluster->Measure, that reports all the bond lengths, angles
and torsions, including the number of occurrences, the minimum
and maximum values, the average and standard deviation. Updated
the Help code and documentation for Geometry, Symmetry and Voronoi
methods in Group->Measure, Molecule->Measure and Cluster->Measure
and RCP documentation in Cell->Link.
What is new:
- Added gamgi_io_x3d.c to receive the exporting x3d code.
- Removed a little bug in the xyz exporting code: when
the selected object was a single atom, it was not exported.
- Removed gamgi_engine_dlist_atom_scope, replaced by
gamgi_engine_dlist_atom_object, which is more general.
- Updated the Help code for the RCP method in Cell->Link.
Wrote the documentation for the RCP report produced.
- Updated the Help code related with Measure dialogs for Group,
Molecule and Cluster, related with, Geometry, Symmetry and Voronoi.
- Updated all the documentation for Geometry,Symmetry and
Voronoi measure methods for Group, Molecule and Cluster.
- The Geometry method is now fully working for Groups,
Molecules and Clusters.
- Bond length, angle and torsion sequences in the measure
method Geometry are now ordered.
- Bond lengths are now calculated in the measure method
Geometry. Bond angles and torsions need some redesign.
- Most of the Geometry method is now tested and working.
- Linked the method Geometry in Group->Measure, Molecule->Measure
and Cluster->Measure.
- Wrote most of the code to implement the geometry method, to report
bond lengths, angles and torsions in groups, molecules and clusters,
including minimum and maximum values, average and standard deviation.
What is next:
- Write tutotials about Point symmetry analysis, Voronoi
analysis and Plane,Direction usage, including atoms.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.9
31th August 2007
Fixed a bug in the Wigner-Seitz cell code that crashed GAMGI when
applying space group information, with more than one Wyckoff position
(thanks Pedro, for spotting this one!). Point Symmetry and Voronoi
tesselation analysis can now be done for Group, Molecule and Cluster
objects. The dialogs for these methods are new, according to the
notebook model. Solved a couple of glitches with ppm, png, tiff and
jpeg exporting formats. Started playing with X3D.
What is new:
- Solved a little problem in gamgi_gtk_measure_voronoi_init,
affecting the default View page in the Voronoi method.
- Added new scientific links to the Links page (Thanks Pedro!).
- Created the dialog Group->Measure, that is now measuring
the same methods as Molecule->Measure and Cluster->Measure.
- The dialogs Molecule->Measure and Cluster->Measure are now
measuring Symmetry, Voronoi methods, and is ready for any other
methods, such as geometry.
- Redesigned parts of the code in gamgi_gtk_molecule_measure.c,
gamgi_gtk_cluster_measure.c and gamgi_gtk_cell_measure.c, in order to
share this functionality among the various Object->Measure dialogs.
- Redesigned the Cluster->Measure dialog, according to the new style.
- Redesigned the Cell->Measure dialog, according to the new style.
- Redesigned the Molecule->Measure dialog, according to the new style.
- Updated the gamgi.org link pages. Reviewed all the links and
added new scientific links.
- Wrote information for GAMGI-supported ppm, png, tiff and jpg
file formats. Fixed a detail in the ppm format (comment in the
second instead of fourth line).
- Fixed a old bug in the Wigner-Seitz Cell Link code,
that crashed GAMGI when multiple positions were generated,
from space group information (thanks Pedro!).
- Fixed a glitch in the code exporting .png files: a typo added
to test code malfuctioning was left there (letter 'a' at line 723
at gamgi_io_file.c) actually preventing png from working.
- Fixed a glitch in the code exporting .ppm files:
the last end of line was missing (sent to stdout actually!).
- Started writing code to export X3D files. The header and the root
node are done. Xj3D hapilly loaded GAMGI first (empty!) X3d file.
What is next:
- Write tutotials about Point symmetry analysis, Voronoi
analysis and Plane,Direction usage, including atoms.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.8
2nd August 2007
GAMGI can now export .ppm files (natively) plus .png, jpeg and .tiff (thanks to pnmtopng, pnmtojpeg and pnmtotiff). Removed a trivial but crashing bug in Group->Modify (added last release). Wrote documentation for all the Object->Remove and Object->Modify dialogs. Wrote documentation for Plane and Direction interfaces and formats. Updated Help->Current, Help->Topic and Help->Start code to account for all the changes. Updated small changes in Bond and Cell labels, in interfaces, formats and documentation, including Tutorials. Updated gamgi.org to reflect all the documentation and label changes.
What is new:
- Wrote XML Format documentation to create crystallographic
and atomic planes and directions.
- Updated Help->Current and Help->Topic, to account for recent
changes in Cell, Plane, Direction and Bond interfaces and formats.
- Updated Help Formats documentation for Cell and Bond.
- Wrote the Help documentation for Direction->Modify.
- Wrote the Help documentation for Plane->Modify.
- Updated all the Installation documentation.
- Fixed a trivial but nasty bug in Group->Modify (introduced
last release): this old, soon to be replaced, dialog has no Global
button, so GAMGI crashed when pressing the mouse on screen.
- Deleted *0.11.* old files from ftp.gamgi.org.
- Rewrote the Help documentation for Cell->Modify.
- Rewrote the Help documentation for Bond->Modify. Improved the
labels in Bond->Create and Bond->Modify dialogs (Mode, Type
instead of Type, Strength).
- Rewrote the Help documentation for Light->Modify.
- Rewrote the Help documentation for Layer->Modify.
- Rewrote the Help documentation for Text->Modify.
- Updated the Help documentation for Assembly->Link, Cluster->Link,
Text->Link and Group->Link (recursive objects).
- Updated Plane->Create and Direction->Create Help documentation.
- Fixed a bug in the new Layer->Remove dialog: the All mode was
always assumed when deciding if a new current layer was needed.
- Wrote the Help documentation for the new Object->Remove dialogs.
- GAMGI can now export any top window graphic area in png, jpeg or
tiff formats, thanks to the standalone programs pnmtopng, pnmtojpeg and
pnmtotiff.
- GAMGI can now export any top window graphic area in ppm format.
What is next:
- Write tutotials about Point symmetry analysis, Voronoi
analysis and Plane,Direction usage, including atoms.
- Improve documentation all around.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.7
14th July 2007
The Object->Remove dialogs were all rewritten, according to the
notebook style, providing much more funcionality. Plane->Modify
and Direction->Modify can now be used in most situations,
but positioning is not done yet. Fixed a serious bug (added 4 releases
ago) crashing GAMGI when multiple top windows were used simultaneously.
Improved a few XML/GUI labels and rules for mouse handling in dialogs.
What is new:
- From now on, the id of objects selected with the mouse in
Object->Remove dialogs overwrite the previous id contents.
- Found and removed a nasty bug introduced: GAMGI was crashing
when pressing in a different window, in Create,Remove,etc. dialogs ;-).
Apparently introduced in release 0.12.3, when global selection was
"improved", in Link,Copy,Select dialogs.
- Rewrote the Window->Close dialog, using the new
notebook style, with several new removing options.
- Fixed a dangling pointer in the new code to handle remove dialogs.
- Rewrote the Direction->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Plane->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Layer->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Light->Remove dialog, using the new notebook style.
- Added an option to remove Bonds in all Object->Remove dialogs.
- Fixed a bug in Link and Remove dialogs: check properly if
the current object is affected when removing or moving an object.
Improved gamgi_engine_find_object.c to work also with bonds.
- Fixed the path for documentation in Help->Start.
- Rewrote the Assembly->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Cell->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Cluster->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Molecule->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Group->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Text->Remove dialog, using the new
notebook style, with several new removing options.
- Rewrote the Atom->Remove dialog, using the new
notebook style, with several new removing options.
- Crystallographic and atomic planes,directions can now be
easily modified using Plane->Modify and Direction->Modify.
Positioning is not done yet.
- Updated XML files in dat/ to new type,autonomy labels.
- Changed Model to Type in plane, direction objects.
- Changed Volume to Type in cell objects.
- Changed Dependence to Autonomy in plane, direction objects.
What is next:
- Improve documentation all around.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.6
27th June 2007
Atomic planes and directions can now be imported and exported to XML files.
Crystallographic planes and directions can now be modified using the improved
Plane->Modify and Direction->Modify dialogs. Updated the model to handle planes
and directions. Improved error checking and fixed bugs for planes and directions.
What is new:
- Fixed some glitches in Plane->Modify and Direction->Modify.
- Crystallographic planes and directions can now be modified
with Direction->Modify and Plane->Modify, as long as atoms are
not involved.
- Found and fixed a bug: when linking an atom elsewhere,
bonds were not correctly removed, because the list of bonds
was corrupted in the process.
- When the atoms defining atomic planes,directions are removed
or linked elsewhere, the planes,directions are removed, after
saving the child objects to the immediate parent above.
- Crystallographic planes and directions can not be linked to
different objects, even if they are Cells. Atomic planes and directions
can be freely linked to other objects, even in different layers
and windows.
- Recursive objects can now be linked above to objects of the same
class that initially were below.
- Improved the Plane->Modify interface.
- All parameters to modify are now imported in Direction->Modify.
- All parameters to modify are now imported in Plane->Modify.
- Error checking for XML planes and directions is now comprehensive
and simple to maintain. In particular this fixes the crashing bug for
cell planes and directions without cell, with direct parents.
- Improved code handling plane order in gamgi_gtk_plane_create.c
- Atomic planes and directions are now properly
checked for errors when imported from XML files.
- Another round of improvements on atomic planes,directions code.
- Atomic planes and directions can now be imported and exported,
for all dependence modes: Yes, Partial and No. The corresponding
safety tests are not implemented yet though.
- Fixed a problem when creating crystallographic direction ranges:
the node now obtained is the one along the direction that is closer
to the cell (translated) origin.
- Improved crystallographic Plane code: removed gamgi_phys_plane_node.
- Separated the atomic Plane, Direction code, so this
can be used to import atomic XML Plane, Directions.
- Added documentation for xyz, postscript files.
- Plane,Direction parameters Reference,Dependence,Thickness
are now imported,exported fine for crystallographic planes.
What is next:
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.5
19th April 2007
Created Plane->Modify and Direction->Modify dialogs, improved Plane->Create and Direction->Create dialogs, redesigned Plane, Direction functionality, and the way Plane, Direction are handled internally. Simplified code, removed bugs, fixed the standard xyz format.
What is new:
- Improved center determination for a set of objects, using
specific weights for each object class, so rotations with the
mouse are slightly more intuitive and faster.
- Added center, origin, quaternion to group, molecule and
assembly containers (these were already included in the other
containers: cluster and cell).
- Fixed the rules to modify AUTOMATIC, AUTONOMOUS and INDEPENDENT
plane,directions.
- Improved the gtk code, interface for Plane->Create, Direction->Create,
Plane->Modify and Direction->Modify.
- Added a reference parameter for plane,direction objects, to
properly identify the reference used to build these objects.
- Added checks for atom parents when creating atomic planes,
directions.
- New direction modes Automatic, Autonomous, Independent are
implemented and working fine.
- New plane modes Automatic, Autonomous, Independent are
working fine. Key atoms cannot have planes, directions as parents.
Key atoms are reordered in the beginning.
- Fixed a bug in gamgi_expat_import afecting Plane,Direction
projection: default mode must be added here, when cell is known.
- Changed again Plane and Direction dependency rules: futurely
these objects will have Automatic, Autonomous or Independent types
of connection with the defining objects, Cell or Atoms.
- Fixed a bug in gamgi_gtk_object_independent: returned FALSE
instead of TRUE, so objects could not link.
- Fixed a bug in gamgi_phys_plane_atoms, gamgi_phys_direction_atoms:
atom positions must be projected when added to polygon, line.
- Updated phys, gtk, mesa code to handle the new
link,thickness parameters for plane,direction.
- The 04 menu is now handled in a common way (and solved
a little bug) in Cell, Plane and Direction dialogs.
- Fixed the behaviour for dialogs Plane->Modify and Direction->Modify.
- Fixed the layout for dialogs Plane->Modify and Direction->Modify.
- Improved the way Link and Thickness parameters are handled
in dialogs Plane->Create and Direction->Create.
- Created the dialogs Plane->Modify and Direction->Modify.
- Fixed the xyz format, to conform with the usual specification
of this format: element names instead of numbers and a comment
second line.
- Corrected a bug in the Voronoi code: in some cases,
the borders limit could be zero, triggering nans. In principle
this affected speed only. Cleaned the Voronoi code.
- Updated the GAMGI XML files with planes,directions in stereographic
projections, to work with the new model parameter.
- Poles and Traces for a given plane,direction in a stereographic
projection are now created as independent objects.
- Changed the way used to control the representation of planes
and directions. The XML parameters plane, trace, polygon have been
replaced by a single parameter model, with values: pole, trace, polygon,
line, reciprocal.
What is next:
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.4
15th December 2006
Implemented the dialogs Window->Copy, Layer->Copy, Light->Copy,
Assembly->Copy, Cell->Copy, Cluster->Copy, Molecule->Copy, Group->Copy,
Text->Copy. Wrote two tutorials showing how to use the occupancy rules
implemented in GAMGI, to build non-crystalline structures with cells.
What is new:
- The window and layer containing the copied objects now raise
automatically to the top and are set as current layer and object.
- Implemented the dialog Window->Copy, in gamgi_gtk_window_copy.c.
Data not copied (in gamgi_engine_copy_out_window) must be initialized.
- Implemented the dialog Layer->Copy, in gamgi_gtk_layer_copy.c.
- Implemented the dialog Light->Copy, in gamgi_gtk_light_copy.c.
- Implemented the dialog Cell->Copy, in gamgi_gtk_cell_copy.c.
- Implemented the dialog Assembly->Copy, in gamgi_gtk_assembly_copy.c.
- Found a bug in the code to copy objects: when exporting bonds,
in some cases the bond parents identification was wrong. It seems
the problem is gone, as we cannot reproduce it anymore. The code
looks fine. Perhaps a recompilation fixed the problem.
- Implemented the dialog Cluster->Copy, in gamgi_gtk_cluster_copy.c.
- Implemented the dialog Molecule->Copy, in gamgi_gtk_molecule_copy.c.
- Implemented the dialog Text->Copy, in gamgi_gtk_text_copy.c.
- Added a tutorial showing how to create non crystalline
structures, using GAMGI pattern occupancy rules, in Cell->Link.
- Added a tutorial and a screenshot showing how to create a multilayer
nanostructure, using GAMGI pattern occupancy rules, in Cell->Link.
What is next:
- Add Plane->Modify and Direction->Modify functionality.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.3
26th November 2006
Global selection between layers is implemented, making object
linking operations much easier. Implemented the dialog Atom->Copy.
Implemented the Link All method in the Window->Link dialog.
Reorganized the Gtk window code. Wrote documentation for the
Object->Link dialogs and Atom->Copy. Updated the documentation
for Object->Measure dialogs, plus Plane->Create and
Direction->Create dialogs.
What is new:
- Updated the documentation for the dialogs Plane->Create and
Direction->Create.
- Updated Help->Current and Help->Tutorial dialogs, to include all
the help files about the new Link->Object dialogs, plus the Atom->Copy
dialog.
- Removed a memory leak added in the previous release in the code
to avoid half-bonds in linked objects (a list was not removed). Added
a simple but general procedure to avoid half-bonds, when copying objects.
So far only implemented in the Atom->Copy dialog.
- Reorganized the Gtk window code: created gamgi_gtk_window_remove.*
files, renamed gamgi_gtk_window.* to gamgi_gtk_window_create.*,
cleaned code in gamgi_gtk_reset.* and gamgi_gtk_exit.* files.
- The method link All, in the Window->Link dialog, is implemented.
- Updated the documentation for Plane->Measure and
Direction->Measure dialogs.
- Updated the documentation for the Atom->Measure dialog.
- Added documentation for the new Atom->Copy dialog.
- Added documentation for all the new Object->Link dialogs.
- The first Copy dialog, dialog Atom->Copy, is now fully operational.
- Created the dialog Atom->Copy, in gamgi_gtk_atom_copy.c.
- Cleaned code in gamgi_mesa_select.c.
- A friend pointed us to a GPL code to calculate diffraction
patterns. This promises to be very useful to GAMGI.
- Linking objects is now greatly simplified, as objects not in the
current layer (in the same or in a different window) can be easily
selected.
- In Object->Link dialogs, the second object address is now global
for all linking methods (In Cell->Link, this address was global only
for the Object linking method).
What is next:
- Add Plane->Modify and Direction->Modify functionality.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Improve selection dialogs, including list selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.2
6th November 2006
This is essentially a bug-fix release, correcting several
problems related mostly with the new Object->Link dialogs
implemented in the previous release and with the graphic engine.
What is new:
- Found and removed a bug in gamgi_mesa_select.c: when a window
was selected, the raised and updated window was the current one.
- Removed a GlFlush() and a glClear (GL_COLOR_BUFFER_BIT)
in gamgi_mesa_drawing and a gtk_widget_queue_draw (window->area)
in gamgi_mesa_scan. They seem to be all redundant.
- Wrote and tested code to pick objects in other
layers below the current layer, with the mouse.
This is needed for eficient object linking.
- Cleaned the local,global object selection code,
in gamgi_mesa_area.c and gamgi_mesa_select.c files.
- Found and removed a long standing bug: in Orthographic
Layers, when creating new objects as Texts, Cells, Atoms,
with the mouse, a very large z coordinate was given to them,
when no other object was already there. Now the new objects
receive the same depth as the Center of the current Layer
(Orthographic or in Perspective).
- Fixed the way atom scaling was done in gamgi_mesa_draw_atom
and gamgi_mesa_scan_atom: it worked fine for the atoms, but not
for the child objects, as texts.
- Fixed a bug in gamgi_gtk_select_ctree_bond: the nodes describing
texts linked to bonds were duplicated, because the corresponding
function call was called twice.
- Fixed a bug in gamgi_mesa_draw.c: when child objects were
linked to bonds, they would change the atom color.
- Fixed a bug in gamgi_mesa_rotate.c and gamgi_mesa_translate.c:
rotation, translation data only propagated to bond child elements
when the selected object was the bond.
- Added Bond to the list of objects that can be linked above
in Text->Link dialogs. This was missing before.
- Removed a bug in static_clean in gamgi_gtk_bond_link.c,
crashing GAMGI because the menu_above does not exist here.
- Fixed the link between layers and objects containing bonds to
atoms outside: these bonds are now automatically removed before
the link is applied.
- Fixed the link between windows and layers (before a crash would
take place when the layer was the last one or the current one).
- When the last layer is removed or linked to a different window,
a new layer is now automatically created (before, the action was
refused and an error message was shown).
- Improved static_reset, static_clean, in gamgi_gtk_*_link.c functions,
to handle better Object->Link dialogs.
What is next:
- Add Plane->Modify and Direction->Modify functionality.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Object->Copy dialogs with basic copy functionality.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Implement global selection, including global picking
algorithms and selection dialogs that include all the
selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
GAMGI 0.12.1
18th October 2006
Implemented the dialogs Window->Link, Layer->Link, Light->Link,
Plane->Link, Direction->Link, Atom->Link, Bond->Link, Text->Link.
Redesined and implemented the dialogs Assembly->Link, Cluster->Link,
Molecule->Link, Group->Link. Removed a couple of bugs. Added a
tutorial showing how to build a Random Close Packing (RCP) structure.
What is new:
- Found and removed a bug in gamgi_mesa_draw_assembly and
gamgi_mesa_scan_assembly: the final glPopMatrix was missing.
- Found and removed a bug in gamgi_engine_find_layer:
it did not work for bonds, as the parent addressing is different.
- Implemented the Bond->Link dialog: bonds can now be
linked to arbitrary objects, not necessarily in the same window.
- Implemented the Direction->Link dialog: directions can now be
linked to arbitrary objects, not necessarily in the same window.
- Implemented the Plane->Link dialog: planes can now be
linked to arbitrary objects, not necessarily in the same window.
- Implemented the Light->Link dialog: lights can now be
linked to arbitrary layers, not necessarily in the same window.
- Implemented the Window->Link dialog: windows can now be
linked to arbitrary layers, even in other windows, keeping
the Undo,Save history lists of those layers.
- Implemented the Layer->Link dialog: layer objects can now be linked
to all types of objects, below and above, in hierarchy.
- Implemented the Text->Link dialog: text objects can now be linked
to all types of objects, below and above, in hierarchy.
- Updated the Assembly->Link dialog: assemblies can now be linked
to all types of objects, below and above, in hierarchy.
- Updated the Group->Link dialog: groups can now be linked
to all types of objects, below and above, in hierarchy.
- Updated the Cluster->Link dialog: clusters can now be linked
to all types of objects, below and above, in hierarchy.
- Updated the Molecule->Link dialog: molecules can now be linked
to all types of objects, below and above, in hierarchy.
- Laue and multiple planes are now rejected when
creating planes passing through nodes incompatible with
their indices.
- Redesigned the way current object and layer are updated
in windows statusbar, fixing a bug occurring when the current
object was Gamgi and multiple top windows were in use.
- Fixed screenshot links in www.gamgi.org.
- Found and removed a bug in Cluster->Measure: when
trying to perform a Voronoi tesselation from a Voronoi output
cluster, GAMGI was not properly checking for the absence of
atoms, resulting in a segmentation fault.
- Added a tutorial on how to build RCP structures.
- Website improvements: dynamic images, new screenshots,
repaired broken links.
What is next:
- Add Plane->Modify and Direction->Modify functionality.
- Replace set/get_data functions by structures
defined in gtk/gamgi_object.h headers.
- Add Object->Copy dialogs with basic copy functionality.
- Add Contents and Container options in Object->Remove dialogs.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
- Implement global selection, including global picking
algorithms and selection dialogs that include all the
selection methods.
- Implement multiple object picking, including a
dynamic frame with moving ants and dragging anchors,
to select multiple objects and images from the screen.
Changelogs for older releases can be found here.