New developments in code, documentation and website are reported here.
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.