Changes history
2022-11-12
- Fixed error messages during installation when installing on systems different from Mac OS X.
- Renamed panel for 4-regular plane graphs with given faces to correctly reflect that the current generator only produces 3-connected graphs.
2022-11-11
- New version of nanocones generator
- Nanojoin generator by Dieter Mourisse
- Code clean-up
- Small technical improvements for the integration with Jmol
- Technical improvements to PostScript exports
- Colours in TwoView are now editable through CaGe.ini
- Removed deprecated methods that broke CaGe when used with recent builds of Java 8
2016-02-23
- New version of ngons.
- New version of fullgen which fixes a bug in the identification of the symmetry group of the fullerenes.
2015-07-15
2015-04-30
2015-04-08
2015-04-01
2015-03-05
2014-10-08
2014-08-20
2014-08-01
2014-07-17
- Added new filter for plantri that speeds up generation of 5-regular graphs
- Improved selection of generator when generating general plane graphs that turn out to be regular.
- Added new version of fullgen. This version fixes a bug that did not appear in any of the ways fullgen was used in CaGe.
2014-03-14
2013-12-16
- Fixed bug which showed two save windows when saving a graph while browsing the output
- Fixed bug which made CaGe crash when stepping back- and forwards through the wizard while using an external generator
2013-10-18
- Bumped Java up to version 1.7
- Refactored a lot of the Java code
- Fixed bug in export to TikZ and SVG when the current locale uses commas as decimal separators
- Reduced the number of logging messages that CaGe writes by default
- Removed several compiler warnings and one compilation error with the newest version of gcc on Mac OS X
2013-05-28
- Fixed a bug in nanotube generator that rarely occured for specific parameters under some Linux systems (such as Ubuntu)
2012-08-09
- Fullerenes can now be generated in atlas order.
- Added buckygen as the main generator for fullerenes.
- Upgraded plantri to version 4.5.
- Fixed bug in TwoView that incorrectly scaled rotated images.
- Added batch export of images as output option for 2D representations.
- Added smoother scaling of vertices in TwoView.
- Removed several (possible) compiler warnings.
- Major refactoring of several parts of the GUI code.
2011-09-02
- Fixed bug that caused the tubetype generator to crash on some computers when the tube body had length 0.
2011-08-30
- Fixed bug in GUI: some users where experiencing a freezing GUI when opening the JmolViewer on a multicore machine. This should now be fixed. More details can be found in this ticket.
2011-08-02
- When in the nanotubes generator the option to glue a tube to the cap was chosen, one row too many was added.This bug has been fixed.
- The graphs in TwoView can now be rotated. This rotation is also preserved when saving the image.
2011-06-14
- Fixed bug in fullgen. This bug only caused problems in some cases with at least 136 vertices.
2011-05-20
- Performed some general refactoring of the code.
- Added option to highlight faces of a certain size to PS export.
- Major refactoring of TwoView.
- Added export to SVG and TikZ in TwoView.
2011-03-08
- Fixed a small bug in the fullerenes generator. This bug only caused problems in case of more than 296 vertices.
- Added export to PNG in TwoView.
- Added option to highlight faces of a certain size in TwoView.
- Bumped required version of Java up to 1.5.
2011-02-24
- Fixed a small bug in the fullerenes generator and added a file to the source distribution.
2011-01-17
- Fixed bug in handling of threads for background tasks: the termination of the thread was handled incorrectly which made it seem in the GUI that the thread never
stopped.
2010-12-07
- Fixed bug in embedders for nanocones and nanotubes: output of graphs with more than 1000 vertices contained errors.
- Fixed bug in cones generator: memory usage was calculated incorrectly when hexagon layers were added to the cone patches.
- Fixed bug in cones generator: incorrect outerspirals for cones with two pentagons when hexagon layers were added to the cone patches.
2010-09-20
- Included a new version of the generator for nanocones.
- Improved heuristic that decides to use CGF or plantri.
- Limit memory usage of CGF to 1.5Gb. This should be small enough for most
modern computers.
2010-03-15
- The tube generator was found to contain an error that was probably present all the time but
revealed by a change of compiler. From a certain time on the numbers of structures were different than those
published -- and generate by the same program. The generator is now replaced by one not showing
this behaviour.
- Some generators weren't compiled with -O4.
2010-03-10
- We discovered a bug in the tubetype generator when compiled
with a recent compiler. Until this issue can be resolved we've disabled this
generator.
2010-01-22
- Removed some warnings during installation.
2009-10-06
- Flush the buffer of the outputstream each time a result is saved from the ResultPanel.
2009-09-03
- Fixed a bug in the supplied implementation of tee.
- Added a dock icon on Mac OS X and window icons on Linux.
- Added two new embedders written by Simon Buelens: these embedders are specific embedders for nanocones and nanotubes.
2009-06-19
- The categories of CaGe have been reorganized and several generator panels have been reworked.
- Generators were added for quadrangulations, 4-regular plane graphs, nanocones, hydrocarbons for
a given boundary structure and hydrocarbons for a given number of hexagons.
- CaGe now uses version 11.4.4 of Jmol instead of version 0.6.4.
- File and pipe are separated options in the output panel.
- Added separate field for input from file in the external generator panel.
- The "embed as" section of the external generator panel has been completely reworked.
2008-07-16
- A bug in
embed.c was fixed: for graphs with adjacent pairs of vertices of degree two,
an incorrect outer face could appear in planar embeddings.
In rare circumstances, this would prevent the user from choosing
an outer face by mouse click.
2008-01-10
- Updated
three generator source files (fullgen.c,
tubetypes.c, HCgen.c)
to obtain a constant for timekeeping (CLK_TCK) in a more compatible way.
This should resolve compilation problems on recent Ubuntu systems. We have
also observed problems with opening CaGe Windows on current Ubuntu systems
using the Compiz window manager (Compiz 0.6.1), but this seems to be
a known problem between Compiz and Java. We can therefore only recommend
switching to a different window manager.
2007-10-08
- As foreseen
in the last history item (just below this one), here is a "stable" update
to CGF.c
from the generator's original author, Thomas Harmuth.
2007-07-22
- CGF.c
has been found to include diagnostic information in its data stream
in some cases, confusing our graph reading routine. A preliminary
fix has been made and is included in the download package now. The
author of the generator has been contacted to make sure we've done
everything right -- there may be an update later.
2007-04-04
- We
now hope to have eliminated all compilation warnings from
the install process. If you still see warnings, please let us know.
2007-03-30
- Fixed
some GUI problems for Mac OS X.
(We are also working on warnings that might appear on some Linux
systems as the generators or native libraries are compiled.)
2007-03-22
- New
version: Mac OS X now supported, various other changes
to eliminate warnings and make CGF 64-bit compatible.
2005-01-12
- Replaced
fullgen with a slightly updated version.
2002-11-11
- Fixed
a Java exception reported for certain JVMs.
- Made the
source code available for download.
2002-02-15
- For each
generator built into CaGe (through its own option window and a corresponding
section in the configuration file, CaGe.ini)
you are now asked to include configuration options to say whether the
"external generator" option window
should include this generator as a template for embedding. Currently
we include all the generators in our standard distribution, but the
option is now there to change that.
- TwoView's
2D re-embedding feature can now be disabled by a generator's option
window. Disabling is not effective if a generator is used as a template
for external data, where 2D re-embedding is always enabled. The two
generator windows that currently use this are "hydrocarbons"
and "triangulations" (if triangulations of the disks are chosen).
Both these generator windows will read a configuration parameter in
CaGe.ini,
making it possible to switch the re-embedding feature back on.
- Whereever
CaGe shows the standard "Previous" and/or "Next"
buttons in one of its windows, you can now use the Alt+Left and Alt+Right
key combinations to operate these buttons.
- The status
line shown in the results window shows different
kinds of messages, and it was sometimes hard to decide which message
should take precedence. This has been organized through a system of
priority levels, leading to more deterministic behaviour and cleaner
code.
2002-02-06
- If you
stop an interactive task by releasing the "flow" button, CaGe
used to continue reading the generator's input until the next graph
had come in completely. The user had to wait for this indefinite amount
of time before it was possible to choose where to advance next (although
reviewing was always possible while waiting for a new graph). Now, when
stopping, CaGe has access to the latest graph that has finished being
read, so the stop is immediate and CaGe completes reading the next graph
in the background. If the graph stopped at in this way is new to CaGe,
it will be displayed in the usual way; if not, no further action is
taken. Another consequence of this change: if you start flowing or advancing
and no new graph is coming in soon, you can stop and use the buttons
to advance to a different graph than the one you targeted before. Say
you pressed "+10" and the graph number doesn't increase for
a while. You can then release "flow" and press "+1"
to advance to that earlier graph instead. It works the other way round
as well (advance by 1 first, then change your mind and advance by 10
before the first graph has arrived), and you can change between flowing
and advancing as well.
- With the
Rasmol viewer it was previously impossible to use any menu entries that
ask for user input, such as saving the current graph or using Rasmol's
Export functions. This has now changed. Whenever you use a menu item
that causes Rasmol to ask a question, that question is passed on to
the user: a dialog appears, featuring the question and asking for a
response. CaGe does this by checking Rasmol's output for a question
(a line ending in ":", plus possibly some white space) at
a regular interval. The length of the interval is set in CaGe.ini.
2001-12-15
- As a shortcut
for viewer selection, you can now shift-click a viewer to select it
"exclusively", deselecting all other viewers in the same dimension.
Focusing the checkbox and typing Shift-Space works as well.
- Added
a feature and configurability to the way graph numbers are displayed
when a task is running. The graph number is updated every n graphs,
but also if no such update has taken place after delta milliseconds.
Both n and delta can be set in CaGe.ini, separately for
foreground and background tasks. See CaGe.ini.
2001-11-30
- When clicking
in TwoView causes a graph to be re-embedded, all other viewers as well
as the result window are now notified. The "2D" save button
is re-enabled (in case it had been pressed before), and other viewers
that use 2D coordinates (such as the text viewer) update their display.
- The file
extension suggested for the writegraph format is now changed to ".w?d",
not ".s?d" as it was previously. ("?" is the dimension,
as the digit "3", "2" or "0" [zero if
writegraph format is used for plain adjacency information].)
- Fixed
a bug that could prevent exiting when background tasks are still active
but "Exit" is clicked when CaGe shows the background tasks
window with the appropriate warning.
- The following
suggestion by an interested user has been implemented:
>
> I have a suggestion concerning the PS files written by TwoView.
> Sometimes it is necessary to adjust the picture manually for
> publication, especially for larger graphs. To make this easier,
> the coordinates of each vertex can be written just once.
>
> For example, instead of
>
> 1.1111 2.2222 3.3333 4.4444 edge
>
> 1.1111 2.2222 vertex
> 3.3333 4.4444 vertex
>
> use
>
> /v1 { 1.1111 2.2222 } bind def
> /v2 { 3.3333 4.4444 } bind def
>
> v1 v2 edge
>
> v1 vertex
> v2 vertex
>
> Now each vertex is easy to move. Of course, when vertex numbers
> are drawn the name of the vertex (eg "v2") should correspond
to the
> number (eg "2").
>
> ALSO, it would be nice if there was a way to configure the colour
> of the vertex number and the colour used to fill the vertex.
>
There are TwoView parameters in CaGe.ini
to set the three colours used (one for the numbers, two for the blend
fill inside the vertex symbols). These are explained in CaGe.ini.
TwoView copies them to the front of every single graph it writes to
a PS file, so colours can be changed for a single graph by editing the
respective setting in the PS file. To change the default colours, edit
CaGe.ini.
Note that these options apply only to the PS files written by TwoView,
not the screen display. The default settings produce PostScript colors
matching those in the TwoView window.
2001-11-07
- The new
website has gone "official"!
(after a shady existence in the "preview" subdirectory)
2001-10-12
- Improved
the way TwoView reads its parameters out of CaGe.ini, and added some
more. All of TwoView's settings are now fully configurable. Details
in CaGe.ini.
2001-09-24
- CaGe can
now be started from any directory, there is no need to change into the
installation directory. CaGe still needs to know where it is installed,
but finds out if either the path to the cage.sh
script is explicitly used in the call, or if it is part of the standard
search path.
A related, but independent issue is what directory is used to run generators,
embedders and do everything else that can cause files to be created.
This is controlled by the CaGe.Generators.RunDir
configuration setting, and that again can be set to any directory whatsoever,
including "." for the directory that the user is in when starting the
cage.sh
command.
See CaGe.ini
for details.
- CaGe.ini
contains a more sophisticated substitution mechanism than before. In
every setting, it is now possible to use other configuration settings,
Java system properties or environment variables. The syntax is explained
at the top of the file.
(This actually is the key to CaGe's new capability of being started
from any place in the file system.)
- The recent
problems with the embedder have been resolved. (Mentioned on 2001-08-09.)
Also, tubes are now intially displayed "sideways", not "facing" the
user.
Some minor bugs with the background tasks window have been noticed and
removed.
2001-09-14
- CaGe's
exit functions are now prevented from working while background tasks
are still active, unless the user chooses to exit anyway.
(Background tasks are defined to be generation processes that write
into files as well as the production of folding nets. The mechanism
described here replaces the old "foldnet making" dialog described on
19 June.)
If the user tries to exit CaGe (via an "Exit" button or the window control
buttons) while background tasks are still active, the "background tasks"
window is changed to function as a dialog. It draws the user's attention
to the still active tasks and offers two buttons to exit anyway or cancel
the exit action. The user may then use those buttons, just wait for
all background tasks to finish, or click the "stop" and "abort" buttons
next to the active tasks to abort them manually. After all background
tasks have finished, the background dialog informs the user of the new
situation. CaGe will then exit automatically if the user has only waited.
If any stop or abort button was clicked, CaGe waits for the user to
decide whether to exit or cancel (i.e. return to CaGe).
- The search
path option in CaGe.ini
("Generators.Path")
can now use environment variables such as PATH.
To use an environment variable, include a string of the form ${name}
in the value of Generators.Path.
It will be substituted by the environment value of "name". To have a
string of this form included "as is", double the leading '$'
-- the extra character will be stripped off and everything else left
unchanged.
As a consequence of this format, variable names cannot include the '}'
character -- if that is a problem, sorry. :-) If no value for "name"
exists in the environment, an empty string will be substituted.
If a path entry (a space-separated component) becomes the empty string
as a result of a substitution(*), the word is completely deleted from
the path -- there will be no empty-string path members. member of the
path.
(*) This happens if (and only if) the entry consists just of a sequence
of "${name}"s
and each name is either missing from the environment or present but
mapped to the empty string.
2001-08-09
- Graph
generation tasks that write into files are no longer handled by a reduced
variant of the result window used for interactive (viewer) tasks. Instead,
a separate "background tasks" window has been introduced that shows
the progress of each such task. It features two buttons for each task,
one to show some information about the task (labelled by a number) and
another to stop the task.
There is currently no safeguard to prevent users from exiting CaGe while
there still are unfinished background tasks. This will appear soon.
- CaGe's
"stopping behaviour" has changed slightly. Previously, after the Stop
button was pressed, the generator pipe producing graphs would be "read
out" and the number of graphs thus read displayed in the result window,
but the user couldn't do anything with those additional graphs. This
feature has been dropped: no more reading takes place after Stop is
pressed, making stopping faster and more reliable. (Problems had been
observed when no viewer was chosen and the result window was put into
"auto-advance" mode, i.e. before the introduction of the background
tasks window.)
- The text
viewer now shows a header in a separate area above the actual graph
information, and this line does not move out of sight when the user
scrolls down. And a bug has been fixed that prevented scrolling to the
right and bottom ends of large texts, both in the text viewer and in
the dialogs showing other textual information (such as generator diagnostics).
A nice small margin of 5 pixels to all four sides also been introduced
for all these text displays.
- One bug
is "work in progress": 2D-embedding of hydrocarbons has somehow become
worse than before.
2001-07-26
- More than
one viewer can now be chosen.
The output window prevents users from deselecting all viewers for a
dimension (2D or 3D). Therefore, if you want to replace the first selected
viewer by another one, start by selecting the other viewer, then deselect
the first one.
The text viewer plays a special role: it is one and the same viewer
for both dimensions, and turning it off for one dimension also turns
it off for the other. This can lead to the following strange situation:
Imagine you have both 2D and 3D viewing selected, with just the text
viewer for 2D, but more viewers for 3D. Now you turn the text viewer
off in 3D. This deselects the text viewer in 2D as well, leaving no
2D viewer selected. Now the output window does not block this deselection,
but instead turns 2D viewing off altogether -- another way of ensuring
that at least one 2D viewer should be selected if 2D viewing is on.
- The text
viewer only shows those coordinates that have been chosen for view (2D,
3D, or both). Previously the viewer always showed 2D and 3D coordinates,
using zeros for coordinates that had not been generated.
- In the
output options window, file/pipe output can now be chosen. If this is
done, the result window reduces itself to a simple graph counter.
- Rasmol
has been introduced as a 3D viewer. The "rasmol" command must be in
the PATH of the CaGe process, otherwise Rasmol will not appear as a
choice in the output window.
Unless expert mode is set in the CaGe.ini
file, a warning is generated about two problems we have with Rasmol.
The warning only appears once per CaGe session.
- If any
embedding process fails and generates an exception, the resulting dialog
now includes the embedder's diagnostic output (any output written to
the stderr stream). In case the embedder produces a valid graph and
some diagnostic output as well, the graph is displayed, but an exception
is also generated to enable inspection of that output.
2001-07-13
- Two changes
have been made for CaGe's expert mode, which can be set in the CaGe.ini
file.
Generator windows are now able to record whether the embedder command
lines returned to CaGe have changed since the last use of that particular
generator window. All current generator windows set this information.
In expert mode, this is used to avoid resetting the embedder command
lines in the output window if possible, making it easier for experts
to edit those embedder command lines, start a trial run, and return
to output options to edit the command lines again.
If you do want to reset an embedder command line to its default value,
do one of the following (while looking at the embedder command lines
in the output window): 1. go back to the generator window (click "Previous"),
change some option that affects the embedder command line and return
to output options ("Next"); or 2. (as it will generally be unclear in
1. how a change to the embedder command lines can be caused:) clear
the embedder command line that is to be reset, go back to the generator
window and then forward to the output window again (clicking "Previous"
and then "Next" immediately).
Setting expert mode also adds a "Previous" button to the results window,
so output options of the current generator process are now just one
mouse click away from the results window. By clicking "Previous" in
the results window, the generation process is stopped (as in "Cancel"
which returns to the very first window of CaGe) and the output window
redisplayed in the state is was left. No embedder or generator command
lines are reset to the state that would be suggested by the generator
window. (The "Previous" button is not provided in "non-expert" mode
for aesthetic reasons.
2001-07-10
- Graphs
selected in the result window can now be saved in all varieties (adjacency
information, 2D or 3D embedding as well as folding net). There is a
section in CaGe.ini
listing the different formats available, each of which must be implemented
by a Java class. All filenames entered for saving (be they in the result
window or the PostScript filename in the TwoView window) are relative
to the "Generators.RunDir" directory (specified in CaGe.ini),
and can stand for a pipe to write to rather than a file if they start
with "|".
- All known
ways in which a hanging or slow generation process was able to freeze
the result window should have been eliminated.
- The TwoView
window no longer freezes while graphs are realigned or reset. It is
also possible to see, from the state of the "reset embedding" button,
if the embedding is in its initial state or not. (The button is enabled
only if the embedding has previously been changed.)
- The Jmol
Applet viewer now remembers its display settings (bond and and atom
draw mode [S], bonds display on/off [B], label mode [L]) within one
generation process (i.e. while results window is not cancelled). Between
different incarnations of the result window, no settings are remembered.
The Jmol Applet is now somewhat faster in displaying a (large) graph.
2001-07-06
- New, improved
sliders: look better, work better, less filling!
- The result
window now gives hints about the fact that the "view:" can be used for
navigation as well (by entering a graph number).
(The hints are the label - "view/goto" - and a tool tip that is displayed
when the mouse comes to rest over the field.)
- Improved
install script -- it is now possible to start a full search for a Java
installation (using "find").
- The hydrocarbons
window has lost its sometimes "jumpy" behaviour.
2001-06-28
- Embedding
is now done in a separate thread, so windows don't freeze if embedding
hangs or takes very long. It is actually possible to inspect old graphs
until a newly created graph has finished being embedded.
(For large graphs, just displaying can mean some waiting, too, and windows
still freeze during that process -- but at least we can be quite sure
that displaying won't cause CaGe to hang.)
- The "CaGe.EmbedExpertMode"
option in CaGe.ini
has been renamed to "ExpertMode" and now allows seeing and editing
the generator command as well as the embedder commands.
- CaGe.ini
is now mentioned both by the install script and the web page. The install
script now uses chmod to make 'cage.sh'
executable.
2001-06-21
- New generator
windows for triangulations and polytopes, both making use of plantri
(version 4.0).
- The way
bonds (edges) are drawn in the Jmol 3D viewer applet has been significantly
improved (but it's by no means perfect yet).
- It is
now possible to restart the generation process after it has finished.
The "Stop" button in the result selection window changes to "Restart"
at that time (or after the process has been stopped using that very
button).
- CGF now
seems fine, so it's reinstated as the only 3-regular generator. CPF
is still installed in case we find further problems.
- Writing
results into a file remains unimplemented at this time, but at least
the ouput options window now tells you so.
2001-06-19
- Folding
nets can now be produced (if 3D viewing is chosen). Production of folding
nets takes place asynchronously, there is no need to wait for results.
If the users selects to exit CaGe before foldnet making has finished,
a dialog appears which informs about the progress of folding net making.
To test "slow" folding nets, try generating tubes with parameters (l, m)
for l = m = 6 or more.
- The TwoView
window has less controls and is now automatically placed in the upper
right corner of the screen (by special request). The CaGe.ini file can
contain options to set the default width and brightness of graph edges.
- CGF can
now be used instead of CPF. Because of a problem with CGF when setting
limits for some face types, a CPF window is still provided.
|