CHANGES to the RTD Sources
--------------------------

This file contains a list of changes to the RTD software and user
interface. The latest changes are at the top.

--------------- 20.10.08 released rtd-3.2.1 -----------------

* Revised RtdImageHduChooser.tcl

--------------- 20.10.08 released rtd-3.2.0 -----------------

* Added support for data types double and long long int.

--------------- 10.09.07 released rtd-3.1 -------------------

* Increased maximum number of views of an image from 8 to 64

--------------- 03.02.06 released rtd-3.0 -------------------

* Major update: see top level CHANGES file.

--------------- 04.04.05 released rtd-2.29 -----------------

* Merged in RTD changes from Peter Biereichel:

* Fixed: too many open files when building colormaps.C
* rtdRemote.c: Fixed: variable argument list
* workaround bug in tcl 8.4.3 (SourceForge Request ID 835020)
* using TCL_CC_SEARCH_FLAGS from tclConfig.sh as of tcl8.4
* added LD_SEARCH_FLAGS to build librtd.so
* VLTSW20030157: View->Cuts pop-up window information missing
* tested with APR2004 (tcl8.4, itcl3.3)

* Test with gcc 3.3: variable argument list has changed

* Documented in rtdSem.c and rtdImageEvent.c: semId must be set to -1
  if semaphore locking is not used (semId=0 is a valid number). Users
  usually just clear the image event info structure before filling in the
  data needed. This has given interference problems with other processes
  on Solaris after booting the machine.

* The image data byte order in RTD is clarified here:
  - FITS uses network byte ordering (big Endian) and binary FITS images
    on disks are also in big Endian.
  - In most cases RTD mmap's image files to avoid copying of images
    into memory which may lead to heavy disk swaps for very large
    images. So RTD needs to change the byte order on-the-fly when
    running on little Endian (i386) machines. The speed hit is
    pretty small since RTD only works on the visable image part.
  - A camera process can store the data into shm either in
    native byte order or tell RTD to do the byte-swap since the
    data were generated by a machine with a different byte order.
  - RTD used to have the "native" byte order flag which only
    did the byte swap for networked byte ordered data on little
    Endian machines. With the new "shmEndian" flag it is also
    possible to tell RTD (via an image event) that the data
    need to be byte-swapped. In the rtdimg/test directory there
    is a test program tRtdEndian.tcl which tests many Endian/datatype
    combinations, also including bias subtraction.

* Revised the BiasImage and ImageTemplate class (didn't work with
  all combinations of data-types/endians).

* include.mk files contains a flag SRCS_OPTL which only installes
  some include files (eg. from cfitsio) when VLTROOT is not set.
  This change was on request (SPR) since these includes gave problems
  with the RTD VLTSW distribution, which also contains cfitsio (but
  latest version).

* By request: RtdImage.tcl automatically launches rtdServer when needed.

* Updated printout for rtd --help (SPR).

* Generally 'using namespace std' instead of specifying ::std

* "autocut" uses autoSetCutLevels(99.5) instead of medianFilter().
   This gives much better results and is also faster.
   In fact, users complaint about the bad cut-level setting via
   medianFilter().

* For Allan: --no-print-directory -s in makefile.mk.in was
  re-enabled again since the output was too verbose. One can easily
  overlook compiler errors (which happens several times to me).

* Added define for SOCKLEN_T in define.h

--------------- 20.01.03 released rtd-2.24 -----------------

* Ported to gcc-3.2.1 and Tcl-8.4.1

--------------- 27.02.02 released rtd-2.23 -----------------

* Fixed minor bug in HDU Chooser dialog.

--------------- 13.12.01 released rtd-2.22 -----------------

* Enabled WCS coordinate conversion outside of the image area (by request).
  Now the RA and Dec values are also displayed when the mouse leaves
  the image area.

* fixed problem with equinox syntax reported by David Terrett.

--------------- 27.08.01 released rtd-2.21 -----------------

* Merged in changes from Peter Biereichel (see rtd-2.20.10).

* Fixed the -float_panel and -panel_orient options as well as the
  show/hide control panel menu item.

--------------- 21.08.01 released rtd-2.20.10 -----------------

* RtdImageCtrl.tcl: loading an image detaches the camera.
  Re-open pops-up again the HDU chooser (in case that it
  was closed before).

* New widget for viewing the FITS header (RtdImageFitsHeader.tcl)
  which also shows the headers of the HDU's (becoming more important
  for VLT/VLTI projects).

* RtdImageHduChooser.tcl shows HDU images only on request for
  speed reasons. Double clicking on a binary FITS table will
  show/hide the binary table (needed for FLAMES and other VLT
  projects). Displays only images with NAXIS >=2 (needed for
  VLT CCD software).

* New widgets for 'Pick Object' (RtdImagePick2.tcl and
  RtdImagePickView.tcl) which allow to pick an object with a
  given sample size. They will be used by VLT applications like
  'tcscam' and are made more general/public than RtdImagePick.tcl
  (RtdImagePick.tcl wasn't made for inheritance). 

* added 'statistics noise' subcommand for computing RMS, mean,
  average, min, max values on a user defined area.

* added bltgraph subcommand for plotting VLTI scans (currently
  used by the VINCI application 'rtdvi').

* added info subcommand (info bbox, etc.).

* All image event related tasks revised:
 o removed XSyncSetPriority() in RtdImage.C since this blocked X-clients
   after rapid image events (had to reboot Linux).
 o rtdServer was re-written (C++) for simplification and since
   Paranal reported that sometimes it exited without any message
   (nor core dump).
 o tRtd was generalized for testing image events. Currently it supports
   short image data only.
 o New widget for tRtd options which comes up when Rtd is started
   with the -debug option.
 o Performance measurements (and widget) revised.
 o Added method flushX() to ImageDisplay.C

* Restructured the code of RtdImage.C since it became too large.
  Image commands are now in RtdCmds.C, coordinate routines in
  RtdCoords.C and HDU routines in RtdHDU.C.

* Adapted all Makefile.in files for makefile.mk which now contains
  RTD standard rules. The standard rules were adapted from the previous
  Makefiles. Note, the standard rules still need to be done for all
  other sub-packages (tclutil, astotcl, etc.) -- need to talk with
  Allan...

* Fixed "array out of bounds" in getMinMax()  (ImageTemplates.C)

* added RtdImage options -fillWidth, -fillHeight for auto scaling the image
  (needed by VLT autoguider which switches full image display to
  window and vice versa).

* iqefunc.c: The old Midas routine crashed RTD. Bug fixed by pbiereic
  and kbanse (SPR VLTSW20000143).

* RtdImage::loadFile() opens the file with reading only to avoid that
  the file is changed on disk (SPR VLTSW20000144).

* for gcc version 2.95.2 on HP-UX 11: had to re-order <string.h> in a number
  of files - maybe obsolete with new gcc version...

--------------- 30.07.01 released rtd-2.20.9 -----------------
* Fixed problem with X shared memory, ssh and X11 forwarding:
  (X shm areas are not freed, so don't use them in this case)
  Added check in RtdImage.C for screen number "0", since when 
  using X11 forwarding with ssh, the display is set to something 
  like "host:10:0" - a proxy server, and the X shared memory is 
  never freed.

--------------- 18.05.01 released rtd-2.20.8 -----------------

* Ported to tcl8.3.3 (still compatible with earlier versions).
  The main change was to update the image related code to use
  the changed C Tk image interface.

--------------- 11.05.01 released rtd-2.20.7  -----------------

* Changed the way multiple FITS image extensions are combined when
  you press the "Display as One Image" button in the HDU Chooser dialog.
  Previously, it was assumed that the CRPIX values were negative. Now
  they may be positive or negative and the resulting image is shifted
  to begin at 0,0 (See CompoundImage.C).

--------------- 17.02.01 released rtd-2.20.6  -----------------

* Fixed a bug converting coordinates between deg and wcs using the rtd
  tcl subcommand "convert".

--------------- 20.09.00 released rtd-2.20.5  -----------------

* Minor layout changes in RtdImageTrans.tcl (slightly different pack padding).

* Minor bug fixes in the RtdImageHDUChooser.tcl, for case where CRPIX1 or 2 is
  not defined.

* Fixed a bug in the display of galactic coordinates: RA was being displayed
  in hours and the equinox was displayed as 2000. Now RA is displayed in
  degrees and the equinox is displayed as "GALACTIC".
  
--------------- 21.03.00 released rtd-2.20.4  -----------------

* Tested compiling with Sun-CC 4.2 and fixed a number of incompatibilities.

* Fixed a panel layout problem introduced in the previous version
  (when -panel_orient = "horizontal").

* Fixed a statement in ImageData.C that caused compiler error message with
  some compilers.

* Display only the tail end of the file name in the Object field (when
  the FITS OBJECT keyword is not defined) to save space.

--------------- 02.03.00 released rtd-2.20.3  -----------------

* Added support for displaying WFI type images, which contain
  multiple image extensions, as a single image, based on the
  CRPIX values in the extensions. The default bahavoir is as
  before, except that there is a new button in the HDU window
  "Display as one Image".

* Added a new button in the HDU window: "Use Settings from Main Image"
  that sets the colormap, color scaling options and cut levels for the
  preview images from the main image. This is needed, since the preview
  images often appear black when they have not been not prescaled.

* Added a new RTD option: -panel_orient horizontal|vertical
  and added code to support having the main info panel on the
  left with a vertical orientation. The default for RTD is horizontal,
  as before.

* Added code to check for valid command line options. (Previously the
  command line options were passed to the Rtd Itcl class directly,
  but there seems to be a bug in the current Tcl or Itcl version that
  caused the application to crash when passed an invalid option.)

---------------  27.12.99 released rtd-2.20.2 -----------------------------

* Minor bug fixes for pick object window (RtdImagePick, RtdImageZoomView)

---------------  13.11.99 released rtd-2.20.1 -----------------------------

* RtdImagePick.tcl: Fixed minor bug in pick object window (rectangle
  was not being displayed in the center of the image).

* Merged in changes from Peter Biereichel (see below):

* RtdImage.C / RtdImagePick.tcl: Better accuracy for 'pick object' which
  is required for telescope and instrument operations

* RtdImage.C: subtract startX and startY from reference pixels for WCS
  display in the info panel (this is a quick fix not taking binning
  into account).

* Comment changed in rtdImageEvent.h: Rotation angle is anticlockwise positive
  (not clockwise)

* Added wcsFlags in rtdImageEvent.h and wcsdeltset command

---------------  25.10.99 released rtd-2.20 -------------------------------

* Merged in changes from Peter Biereichel (see below)

* colors are initialized only when needed: moved call to initColors() from 
  Rtd_Init() to the RtdImage constructor.

* The installed version can be tar'ed to other "identical"
  target machines without the need to set environment variables before
  starting RTD. This is needed in the VLT environment where RTD
  is build on one machine and copied to all the other target machines.
  For this the following changes were made:
  - RtdImage::Rtd_Init() searches for RtdInit.tcl in the way itclx does
    (see also rtdimg/include/RtdInit.icc)
  - all links were removed in the installation directory
  - rtd.sh has become a general startup script. For tcl applications
    rtd.sh is merged with the tcl script by the Makefile (see directories
    rtdimg/demos and rtdimg/test)
  - all Makefiles include makefile.mk which allows to redefine the
    default (i.e. the generated-) installation root directory.
  - rtd/src/Makefile takes as default generated installation directory
    INTROOT or VLTROOT if PREFIX is not defined, otherwise /usr/local.
    The installation root directory can be redefined with
    'make install PREFIX=' or setting INSTALL_TARGET before running
    'make install'.

* Configure option --with-vltgnu added. This option is specific
  to the gnu installation of the VLT software.

* Added image extensions to RTD (copied from Skycat)

* Added program options: -attach, -rtd_geometry and -rtd_title

* RtdImage.C: Pass the rapid frame event on to the first rapid frame when
  the frameId in the rtdIMAGE_INFO structure doesn't exists.

* Moved "Bias Image" from the Real-Time menu to the File menu

* Added: Help menu

* Added options -xscale and -yscale (the old options which now
  work properly)

* Changed tRemote.tcl and RtdRemote.tcl. tRemote.tcl is used for
  an automatic test of Rtd.

* man.mk allows to generated man pages from sources (see e.g.
  rtdevt/man/Makefile)

* tkCanvasPsImage.c: uncommented fprintf()

---------------  11.08.99 released rtd-2.19.28 ----------------------------

* Fixed minor bug in RtdImage.C: flipCmd: return correct value for "flip xy".

* Updated for egcs/gcc-2.95 (This compiler version is stricter
  for C++ code and even fails the solaris X11 header files, unless
  told to ignore the errors...).
  (see also rtd/src/Makefile)

---------------  16.05.99 released rtd-2.19.27 ----------------------------

* Fixed the -shm_data and -shm_header options again. There were
  problems since we started using cfitsio (It still had a reference to
  the old mmapped image data). Now the SysV shared memory is is passed
  to cfitsio as it should be. However, this required some incompatible
  changes: now the header and data are kept in a single shared memory
  area (previously in separate areas. To make up for this, "rtdimage
  shm get header/data" subcommands now returns a list of 4 values
  {shmId offset length size}, instead of only the shmId. The list
  values are the shared memory id, the offset in the shared memory
  area where the header or data begin, the length of the header or
  data, and the size of the shared memory area.

  *** NOTE: possible incompatibility ***

* Fixed the isclear() method in RtdImage.C (called by the rtdimage
  isclear tcl subcommand). The method was assuming that a cleared
  image had a zero length header, which was not correct.
  
---------------  30.03.99 released rtd-2.19.26 ----------------------------

* Merged in changes from Peter Biereichel (below):

  Added new rtdimage subcommand 'biasimage' and widget 'RtdImageBias'
  for on-the-fly bias image subtraction. The widget can be called from
  the real-time menu. The features are:

  o Fast, since only the visible part of the image is updated (as usual, thank's to Allan)
  o Up to 5 bias images can be loaded (this value could be changed in BiasData.h)
  o Commands for loading a bias image from a file, copying the current image to
    a selected bias frame, clearing, displaying ...
  o Works globally for all Rtd clones.

  Note, when saving an image, the raw image and not the subtracted image is saved
  (this could be discussed).

* rtdImageEvent.c, rtdServer.c: Added socket option TCP_NODELAY for faster
  image updates on HP-UX.

* hput.c: changed 'long tsec' to 'time_t tsec' (astrotcl/wcslib).

* RtdImage::isclear(): bug fixed

* RtdRemote.C: argument 3 of 'getsockname' and 'accept' must be 'int'
  on HP-UX (was 'unsigned int' before)

* RtdImage::call(): change strncmp() to strcmp() for commands like
  remote, remotetcl
----------------------------------------------------------------------------

* RtdRemote.C: Added #ifdef for linux unsigned (although the man page
  says it should be int, the compiler complains it should be
  unsigned).

---------------  22.03.99 released rtd-2.19.25 ----------------------------

* Fixed the Exit menu item to really exit and not just close
  the window, in the case where there is more than one main
  window.

* Fixed socket error check in rtdrmt/src/rtdRemote.c.

* Replaced itclsh2.2 with itclsh@ITCL_VERSION@ in Makefile.in.

* Changed "quit" method in Rtd.tcl to use "delete object $this"
  instead of "destroy $w_" and "exit", so that class destructors are
  called as expected.

* RtdImageSpectrum.tcl, RtdImageCut.tcl: removed "global" declaration
  for BLT vectors, since it caused a crash in tcl8.0.5/blt2.4g
  (something to do with variable traces).

* ImageData.C: flip(): fixed an "off by one" bug that caused the wrong
  coordinates to be displayed for pixels when the image was rotated
  and/or flipped at zoom 1.

* RtdImageZoomView.tcl: corrected the location of the square in the
  center of the zoom window (was off by one at zoom 1).

* Merged in changes from Peter W. Draper (Starlink) to support 16 and
  24 bit color.

* Added minor fix to pan window to center the target image if needed.

* Change min/max colors to 0/256 in RtdImageColors.tcl when using a 
  read-only colormap.

* Fixed the colormap shift method so that it takes the current ITT
  into account.

* Added replacements for calls to memset in class LookupTable and
  ImageData when dealing with ulong instead of byte.

* class ImageDisplay: made putpixel() inline and removed unnecessary
  check, to improve performance. Also fixed the "clear()" method to
  work with ulongs instead of bytes (for truecolor support).

* Added code to RtdImageColors.tcl to update the color ramp when
  changing colormap files or itts in truecolor mode.

* Added call to new routine Tk_CanvasWindowCoordsNoClip() in
  tclutil/src/tkCanvasImagePs.c to work around Tk's limit on canvas
  coordinates to short range. Now the canvas coordinates do not have
  to be clipped to short range.

---------------  28.12.98 released rtd-2.19.24 ----------------------------

* Rebuild tclIndex file whenever configure is run, since Tcl8 version
  is not compatible with tcl7 version (see makelinks script).

* rtdimg/src/RtdImage.h: added include rtdImageEvt.h to avoid Sunpro
  cc compiler warning.

* rtilib/src/saoutil.c: commented out calloc declaration to avoid
  conflict reported by sunpro cc.

---------------  03.12.98 released rtd-2.19.23 ----------------------------

* Fixed a minor bug in the destructors for the itcl classes RtdImage
  and RtdImagePopup. In the first case, the rtdimage object was not
  being deleted as it should; in the second it was, but should not
  have been.

* Changed the ImageData::write() method (used to save a FITS file or a
  section of one to disk) to be compatible with the new FitsIO class.

---------------  16.11.98 released rtd-2.19.22 ----------------------------

* Ported to tcl8.0.3 (still compatible with tcl7.6/tk4.2)

  - Updated namespace syntax

  - Changed "class" to "itcl::class" for Itcl class declarations

  - Use full namespace pathnames for itcl member procs

  - Changed color initialization to be compatible with tcl8.0
    (colormap is now initialized in Rtd_Init() and set for all windows)

  - Added code to handle vectors in the old and new BLT versions
    (The BLT vector interface changed)

  - Updated Makefiles and configure scripts to work in both versions

  - For backward compatibility, Rtd_Init automatically imports all of
    the required namespaces (rtd::*, util::*, blt::*, itcl::*, itk::*).
    (Use "namespace import -force" to avoid errors importing the same
    namespace twice.)

   - set tk_strictMotif to 1 (changes colors in menu selection)

* the RTD is now using the CFITSIO library for FITS access (see the
  astrotcl package). No incompatible changes were introduced. Only the
  internal implementation of the FitsIO class was changed and some new
  methods were added for handling FITS tables and HDUs. The FITS files
  are still memory mapped (the cfitsio "memory" interface is
  used). Note that the cfitsio library routines are only used to
  access the FITS headers and extensions.  Since there are no FITS
  headers involved in "real-time" mode, there is no performace penalty
  from using the library (the cfitsio routines are not called at all
  in that case).

* RtdImage.C, ImageData.C: Minor changes to handle FITS files with
  multiple HDU.  The RTD only displays the first HDU in a FITS
  file. If the first HDU is empty, a blank image is displayed. The
  Skycat application (based on the RTD) contains full support for
  displaying multiple HDUs and FITS tables, which are treated like
  local catalogs. 

---------------  30.9.98 released rtd-2.19.21 ----------------------------

* Minor change to rtdimage cmap and itt commands so that "$im cmap
  file" returns the current colormap file and "$im itt file" returns
  the current itt file.

* Changed the release structure of the rtd package to include the
  necessary utility packages. Now the rtd tarfile also contains the
  astrotcl and tclutil packages. The top level Makefile and configure
  script automatically determine which packages to make.

---------------  23.9.98 released rtd-2.19.20 ----------------------------

* Made some minor changes in the rtd colormap and display code to help
  support 16 and 24 bit color. It is still not directly supported
  though, since some changes would still need to be made in the
  ImageData and derived classes to deal with short and int pixel
  values and byte swapping, etc. For now, you can use 24 bit color
  only if your display also supports 8-bit pseudocolor while in 24-bit
  mode (see the Tk command "winfo visuals ."). This works, for example
  on a Sun Ultra, but not on my Linux machine.

* Changed error message given when X visual is not supported.
  (For now, we still need 8 bit pseudocolor).

* Removed menu accelerator Control-w, since it conflicted with 
  the text bindings in entries.

---------------  7.9.98 released rtd-2.19.19 ------------------------------

* Removed trailing "\" in rtdevt/src/Makefile.in

* For ESO detector chip coordinates: Changed "HIERARCH ESO DET WIN  ..." 
  to "HIERARCH ESO DET WIN1 ...", since the former keyword is not
  used. A number is always appended to WIN.  For now, we only consider 
  the first WIN.

---------------  5.8.98 released rtd-2.19.18 ------------------------------

* Color scaling: Added new command line option "-color_scale" to set
  the color scaling on startup. The option takes a value: one of
  linear, log, sqrt, histeq.  Also made changes so that the color
  scaling setting is remembered between images and reapplied.  (Source
  files changed: Rtdimage.tcl, Rtd.tcl, RtdImage.C, ImageData.[Ch])

* Coordinates: Added new coordinate type: "chip", for detector chip or
  CCD coordinates, that takes into account the origin of the chip and
  binning. X,Y coordinates in the user interface are now displayed in
  chip coordinates, which are the same as image coordinates, unless
  the FITS keywords "HIERARCH ESO DET WIN STRX" and "...STRY" are
  defined or special fields in the real-time image event struct are
  set (see below).

* Added two new fields to the RTD real-time image event struct in
  rtdImageEvent.h: startX and startY, with the same meaning as the
  FITS keywords "HIERARCH ESO DET WIN STRX" and "...STRY" above.
  These fields are used, along with the existing binningX and binningY
  fields, to calculate and display the detector chip coordinates.  The
  change is backward compatible, since it uses previously reserved
  space in the structure. If the values are set to 0, they have no
  effect.

* RTD now reads cut level values from the real-time image events and
  sets the image cut levels, unless the user set them already by hand.
  User values override real-time event cut level values.

* Changed the arguments to the RtdImage::displayImageEvent() method.
  This is an internal method, so this should not be an incompatible
  change.

* Implemented "histogram equalization" color scaling and added it to
  the list of choices in the Rtd "Colors" popup window. The code to
  implement this was taken from saoimage-1.23.2 and modified only
  slightly.  In order to be able to use histogram equalization code on
  "byte" images (BITPIX=8), also, the lookup table size had to be
  changed to 64k, from 256 bytes, which it was previously.

* Added the X11 library directory to shared lib path in startup script.

* Added code to handle NAN values for image pixels. They are now
  treated as blank pixels.

---------------  26.6.98 released rtd-2.19.17 ------------------------------

* RtdImage.tcl, RtdImagePrint.tcl: Changed footers in postscript output
  to include object name, file name and center position.

* Compiling: rtdevt/*.c: fixed calls to semctl to avoid errors
  reported by egcs-1.0.3 (gcc-2.8.x). Removed "void" from "main()".

---------------  19.6.98 released rtd-2.19.16 ------------------------------

* RtdImageCtrl.tcl: fixed minor bug in pack command that showed up
  only when the options -float_panel and -with_grid were used
  together.

* RtdImage.tcl, RtdImagePrint.tcl: went back to using the tk
  postscript command for printing images and graphics. This improves
  the quality of the postscript output over the screendump version,
  which used the "xgrabsc" utility to do a screendump. The default Tk
  canvas postscript command does not support printing images and the
  available patch could not handle large, zoomed in images. This
  version is now based on a Tk canvas extention I added to the tclutil
  package and does not require a patch to Tk. The extension is based
  on the patch, with fixes provided by Peter Draper of Starlink, who
  also modified the rtd print dialog box. The new dialog box has
  optional footers in place of headers and has a new option to print
  the whole canvas window, including any graphics that extend outside
  the image boundaries.

* RtdImage.tcl: changed focus policy to fix problems with mouse
  pointer warping (moving mouse with arrow keys). The previous version
  included some code to avoid obscure problems with the CDE window
  manager, with the "click to focus" setting.  If anyone has problems
  with the new version, please let me know.

---------------  28.5.98 released rtd-2.19.15 ------------------------------

* Added C++ method: RtdImage::makeImage(), replacing calls to
  ImageData::makeImage() to help simplify the code for derived classes
  and avoid duplicating code. No change in funtionality or interface.

* RtdImage.C: added method isclear(), returns true if image is cleared.

* Fixed bug in RtdImageColors.tcl that caused the colormap listing
  to be empty in certain cases. The colormap files are compiled in
  and no longer searched for in $RTD_LIBRARY/colormaps.

---------------  4.5.98 released rtd-2.19.14 ------------------------------

* Changed the RtdImage convertCoords() and convertCoordsStr() methods
  to fix bug in handling images with equinox != 2000.

* Changed default zoom limits to -10..20 (was -5..9), (-min_scale, -max_scale)

---------------  28.4.98 released rtd-2.19.13 ------------------------------

* Increased label width for Rtd panel (RtdImagePanel), since labels
  were being cut off on some screens.

* RtdImagePick.tcl (Pick Object): Merged in Peter Biereichel's
  changes, which include using the RtdImageZoomView class for the
  image (same as zoom window).  This lets you zoom in and out to get
  the correct resolution.  Also Fixed a bug in the "scale_changed"
  method that showed up on images that were not square.

* RtdImage.C: rtdimage "statistics" subcommand (used by Pick Object window):
  If the user clicks on the image background, so that no FWHM can be calculated,
  the x,y and ra,dec coordinates of the point selected are returned and 
  fwhmX and fwhmY are set to 0 (Previously, the results were undefined in
  this case).

---------------  15.4.98 released rtd-2.19.12 ------------------------------

* (doc, *.tcl): For documenting the "public interface": Updated
  comments on all Itk component declarations and added "public",
  "private" and "protected" keywords in the source to help identify
  the public interface, which is documented in man pages generated
  from the source by the itcldoc utility (tclutil package).

* Minor changes in configure script and top level makefile for shared
  libraries

* RtdImagePick.tcl (PickObject window), added "-orient" option, to change
  layout to "horizontal" or "vertical". Default is same as before
  (by request, to save window space).
  
* RtdImagePick.tcl: moved initialization from constructor to "init"
  method, for easier subclassing.

* Added command line option for "Pick Object" window layout: 
  usage: "rtd -pickobjectorient vertical" (default: horizontal).
  (Option also added option to RtdImage.tcl and Rtd.tcl).

* ImageData::write(): fixed a bug in image pixel coordinate conversion
  that caused the world coordinates to be slightly shifted in images
  created with the "Save region as..." Rtd menu.  

* Increased some buffer sizes in class RtdRPTool, since specifying a long
  file name caused the buffers to overflow (defaults were set too low).

---------------  31.03.98 released rtd-2.19.11 ------------------------------

* Updated man pages and documentation

* RtdImage.C: Fixed the -shm_data and -shm_header options, which were
  no longer working after earlier changes.

* Added -usexshm option to RtdImageColormap so that it follows the convention
  of the other rtd images.

---------------  25.03.98 released rtd-2.19.10 ------------------------------

* Made minor changes in the C++ class RtdImage, to make it easier to
  derive a subclass with its own configuration options (Added 2
  optional arguments to RtdImage constructor).
 
* Changed "blank image" size from 10x10 to 2x2 image, since people
  really seem to use 10x10 pixel images. (The size is sometimes used
  to determine if the image is "blank").

* ImageData.C: modified setScale so that dispWidth and dispHeight
  cannot be zero when using very large negative scales (this happens
  for extremely thin images, i.e. 5000x37),

* Removed ImageData::read, use ImageData::makeImage() instead, since
  it allows different image types through subclassing.

* Moved the WCS object (for managing world coordinates) from the
  ImageData to the ImageIO class (in astrotcl/wcslib). No change to
  the public interface. This makes it possible for a derived class (of
  ImageIORep) to replace the WCS implementation with a new one.

* RtdImage.h now defines the RTD_OPTIONS macro, which can be used by
  derived classes to add new options to the rtdimage command.

* Rtd.tcl: changed clone method (Menu: "New Window") to not reload 
  the original image again.

* RtdImage.tcl: Fixed bindings for -with_warp option to use "+" to
  not overwrite previous bindings.

* Rtd.tcl: Change keyboard accelerators for menu items to use
  <Control> instead of <Alt>, since <Alt> is used in Tk for popping up
  a menu with the keyboard (see -underline option in menubutton(n)).

* RtdImage.tcl: Fixed focus code to allow warping the mouse cursor and
  menu traversal without conflict.

* Rtd.tcl, RtdImageCtrl.tcl:
  - Added -float_panel option to allow info panel to be in a popup
    window (default is off, no change),
    usage: rtd ... -float_panel 1, to enable.

  - Added -panel_layout option to allow changing the order of the zoom
    and pan windows in the layout (default is the same as before, no
    change). Usage: rtd ... -panel_layout $value, where value is one
    of {saoimage reverse default}, for an saoimage type layout, reverse
    or default.

* Added "clone" number to window headers, to help identify related windows
  when there is more than one main window.

---------------   05.03.98 released rtd-2.19.9 ------------------------------

* Made minor change in the color ramp Tcl code, so that you can now
  scale and shift the colormap, without it always reverting to the
  original state. Previously, the colormap shift and scale operations
  caused the colormap to revert to the original state at the start.

* For backward compatibility with applications using the rtd
  library: The dependency on the astrotcl and tclutil packages is now
  hidden from applications. librtd.a (.so, .sl, etc.), now contains
  the astrotcl and tclutil object files, the $prefix/include/rtd dir
  contains copies of the astrotcl and tclutil header files, and 
  the Rtd_Init() routine also initializes these packages.

* Minor changes/bug fixes: 
  - added check in pan window widget (RtdImagePan.tcl) in case there are
    problems converting world coords ("catch draw_compass").

  - propagate -min_scale and -max_scale options to the rapid frame popup
    (determines the min and max magnification).

---------------  13.2.98 released rtd-2.19.8 ------------------------------

* Fixed a bug in the "pick object" window that showed up when the main
  image was rotated (minor change made in RtdImagePick.tcl::update_rect.

* Fixed the "Hide/Show Popup Windows" feature (moved the
  implementation to the tclutil package: class TopLevelWidget). The
  new implementation is more general and less error prone.

---------------  9.2.98 released rtd-2.19.7 ------------------------------

* Fixed problems with floating point precision when converting world
  coordinates (raised from default of 6 digits to max 17 digits.)

* Fixed bug in introduced in the last version that could cause a core
  dump when setting the cut levels (in ImageTemplates::getMinMax).

* Fixed minor syntax error in RtdImage.C that was not found by g++.

* Fixed problem with "gethostname" prototype on solaris-2.6 in RtdRemote.C.

--------------- 3.2.98 released rtd-2.19.6 ------------------------------

* Added selection mechanism to select a region of the image or canvas.
  The graphics toolbox now contains a "region" item that can be used
  to select a region of the image. The new RtdImage -regioncommand
  option can be used to have a tcl command evaluated whenever a region
  is selected. Also added binding <Control-Button-1> as a shortcut
  to select a region

* Added a menu item to the "Real-Time ==> Rapid Frame menu": 
  "Delete Rapid Frame", to delete the current rapid frame.

* Added a new rtdimage subcommand: "mmap", which has a similar syntax to
  the "shm" subcommand. The rtd "shm" subcommand is used to manipulate
  sysV shared memory areas containing the image and header data. The
  rtd "mmap" subcommand does the same, but with "mmap" memory, which is
  the default, since rtd uses mmap to read image files.

* Fixed bugs in the rtd shm "create" and "delete" subcommand 
  (check for number of arguments was wrong, transformation settings were
   not being saved).

* Added options to rtd (class and command line) to change the magnification
  range allowed in the user interface: -min_scale and -max_scale, and 
  changed the default range from (-5, 9) to (-10, 20).

* Rtd now checks the value of the FITS "BLANK" or "BADPIXEL" keywords
  and ignores these pixels when setting cutlevels or doing any 
  calculations. The blank pixels are displayed black by default.

--------------- 26.01.98 released rtd-2.19.5 ----------------------------

* Updated comments in Itcl sources for automatic generation of man pages.
  (There are now man pages for all Itcl classes).

* Added menu accelerators, keyboard shortcuts for menus

--------------- released rtd-2.19.4 -------------------------------------

* Fixed image printing problems (rtd now no longer creates a copy of the
  image and graphics, but just makes sure the window is not covered 
  by other windows before doing a screendump of the image window).

* Compilied sources with the SunPRO C++ compiler and fixed problems 
  that showed up there and not with gcc.

* Changes in source configuration: Rtd previously contained a lot of
  generic code that was not Rtd specific. In order to make simplify
  the Rtd package and make the generic code available for other
  applications, 2 new packages were added (see below). Each package
  can be dynamically loaded and handled in the same was as the Rtd
  package.

  The Tclutil package was created by gathering "generic" Tcl and C++
  code from various applications into a single generic Tcl package.

  The Astrotcl package was created by gathering general astronomy
  related Tcl and C++ code from other packages into a single, reusable
  package.
	
  If you were previously loading the Rtd package dynamically, you will
  need to add "package require" statements for the Tclutil and
  Astrotcl packages.

  If you were linking the package statically, you will need to add
  calls to Tclutil_Init and Astrotcl_Init in tkAppInit.C.

  If you were using the rtd C++ classes directly, you will need to add
  some -I compiler options to your Makefiles:
  (-I$(INSTALLDIR)/astrotcl -I$(INSTALLDIR)/tclutil).

* renamed CanvasPrint to RtdImagePrint, since it is now rtd specific, 
  and made minor changes to the options (pass rtd image obj as option).
  Restored earlier version of CanvasPrint that does not use xgrabc, for
  use for generic canvas printing. Added code to print the line graphics
  when printing an RTD image (was missing after previous changes by
  P. Biereichel).

* Colormap files are now compiled in. This is slightly more efficient
  and makes it easier to create a single binary application to deliver.
  You can still load colormap files, but any found in the rtdimg/colormaps
  directory are compiled in statically.

* Added plug-in capability for top level widgets.
  The basic idea is this: for each top level widget, you have the
  possibility to specify a plugin file to be sourced after the widget has
  been created. This is done automatically by the common base class.

  For any class XYZ, the default initialisation file is ~/.xyzrc and may
  be overridden by the environment variable $XYZRC. The file should
  define a Tcl proc named "xyz_plugin".

  If the plugin file is found, it is sourced and the plugin proc is
  called with one argument: the name of the widget ($this).

  If there are multiple instances of a widget, the plugin proc is called
  once for each. The plugin proc can use Itcl methods and Tcl commands
  to add menu buttons and other widgets, make changes or additions to
  the user interface or even replace the contents of key methods.

* Tcl scripts: made a number of minor changes in the general purpose
  Itk widgets that were need for skycat.

* RtdImage.C, FitsIO.C: the rtd "clear" command now optionally creates
  a blank image without world coordinates (previously it always created
  one with world coords). This change was needed to allow catalogs in
  skycat that are based on image coords.

* FitsIO.C: Files are written in compressed format if they have the
  extension .hfits, .gfits or .cfits

* fixed some bugs for image event synchronization via semaphores

* Merged changes from D.Hopkinson (RMP nulticasting, statistics,
  etc.), P. Biereichel and A. Brighton into a single version.

* Mem.C, RtdImage.C, configure.in: added code to handle the different
  prototypes for the semctl(2) system call on Linux, Solaris and HP.

* RtdImage.C: replaced "sigignore(SIGFPE)" with "signal(SIGFPE,
  SIG_IGN)" for linux support.

* rtdwcs: fixed a number of bugs in class FitsIO and related wcslib C
  functions, mostly dealing with inserting Fits keywords (not used by
  RTD, but used elsewhere...).

* class Mem: added various changes and bug fixes; added a length field
  (used to indicate the length of the FITS header when the header and
  image are both mmapped from the same file).

--------------- 04 Aug 97 released rtd-2.19 --------------------------------------
* fixed a minor bug in Mem_Map.C (added check in destructor for failed mmap)

* Default option itk_option(-disp_image_icon) set to 0

* New option itk_option(-with_warp). Default is 1 for main image only.
  The option is used to make arrow keys move mouse pointer by one pixel.

* The remote interface was extended: the new rtdimage command "remotetcl"
  eval's Tcl commands in Rtd's Tcl interpreter. For an example see files
  rtdimg/demos/tRemoteTcl* and rtdimg/library/RtdRemoteTcl.tcl.
  The proc's connect_to_rtd {} and send_to_rtd {rtd_fd args} are
  contained in rtdimg/library/tclutil.tcl

* Bug fixed in postscript print itk classes (xgrabsc)

* The updated RTD PostScript document is in rtd/doc/rtd.ps

* New RTD Performance measurement tool in menu "Real-time". To run it use
  rtd -debug 1; "Attach to camera"; Start Performance Tool from menu "Real-time"

* New Recorder/Playback tool in menu "Real-time". This tool works on FITS cubes.

* BITPIX=-16 converts to standard FITS format

* Support for image event synchronization via semaphores

* X synchronisation option implemented for X11R6

* The Rtd image event structure had to be changed because of the new options
  X synchronisation and image event synchronization via semaphores.

* fixed bugs in rtdServer.c and rtdImageEvent.c

* Value display in Cuts...; Pixel table with statistics

* various bug fixes in the handling of Fits keywords (class FitsIO)
  and mmap files (class Mem) as well as in the wcslib (hget.c, hput.c)

--------------- 17 Jun 97 released rtd-2.18.2 -----------------------------------

* fixed bug in rtdutl/src/Mem.C, method shared(int) (use length() rather than size()).

* LabelEntry.tcl, RtdImageCut.tcl:
  replaced references to the Iwidgets class "entryfield" with equivalent local code
  in LabelEntry.tcl. This is needed so that we don't have to load the entire iwidgets
  sources in the single binary version of skycat. The added features include a
  -validate option of the LabelEntry and derived classes.

* CanvasPrint.tcl: allow for the XGRABSCBIN variable to not be set. This is needed
  for the binary skycat release. By default, look for xgrabsc in the shell $PATH if
  $XGRABSCBIN is not set

--------------- 30 April 97 released rtd-2.18.1 ----------------------------------

* class HTTP: added new feature to HTTP::get(url) (can be used in catalog
  config file URLs): 

  Now the get method accepts 3 types of URL:

  - http://host/path - URL: do an HTTP get

  - file:/path - get the file

  - /path - command: exec the command and read the standard output.

  This was a request from Andreas (awicenec@eso.org).

* Minor configure script additions, for creating binary release of skycat

--------------- 22 April 97 released rtd-2.18 ------------------------------------

* More minor changes in the configure scripts and makefiles for
  dealing with shared libraries on HP.

* Tested on Linux 2.x (watch out for old /usr/lib/libBLT.a, which can
  be linked in by mistake instead of the new BLT2.1 library).

* Updated the Mem class (rtd/rtdutl) with a newer version that handles
  the case on HP where the same file is mmapped twice, which returns an
  error under HP-UX. The new version keeps a list of Mem objects and
  reuses an existing object if needed.

--------------- 16 April 97 released rtd-2.17 ------------------------------------

* fixed bug that showed up when you "attach" a camera after viewing
  an image of the same size. The problem was in the way the image data
  size was checked: the size (data.size()) was used rather than the
  length (data.length()), which can be different if the FITS header
  is also stored in the same shared memory object (class Mem).

* minor configure/Makefile changes. Tested with Sun-CC.

--------------- 11 April 97 released rtd-2.16 ------------------------------------

* changed the name of the Tcl init routine for Rtd from RtdImage_Init
  to Rtd_init, to comply with the standards for loadable modules in
  the new Tcl version (The old version is still supported for backward
  compat.)

* changed the configure script and Makefiles to get information from
  the from the installed Tcl configuration files:
     tclConfig.sh, tkconfig.sh, itclConfig.sh, tclxConfig.sh, ...
  rather than try to guess the correct values. Rtd also produces its
  own rtdConfig.sh script, which can be used by other applications to
  find out library and path names for Rtd as well as X and Tcl/Tk.
  The tclConfig.sh script also contains information on how to generate
  and use shared libraries on each OS, which is non-trivial and very
  system dependent.

* To set the version number for a new Rtd release, you only have to
  edit the VERSION file now. The configure script picks this up and
  generates the necessary #defines and make variables, etc.

* replaced GNU make, gcc, Solaris and HP-UX specific features from the
  Makefiles and configure scripts that were added in rtd-2.15. These
  are OK for use at ESO, but would cause problems for anyone else who
  didn't use GNU make or gcc, etc.

--------------- 08 April 97 released rtd-2.15 ------------------------------------

* Peter Biereichel ported Rtd to Itcl2.2 and added initial support for
  shared libraries and modules (based on work done by Kim Gillies).
  use: configure --enable-shared to create the shared library
  (librtd.so or librtd.sl).

--------------- 01 April 97 released rtd-2.14 ------------------------------------

* adapted for new Tcl/Tk release (tcl 7.6, tk 4.2, [incr Tcl] 2.2, [incr Tk] 2.2...)
  (see file genTclTk on this directory for a sample installation script for Tcl/Tk)

* support for shared libraries: configure tcl/tk, BLT and rtd-2.14 with --enable-shared
  The Makefiles will create shared libraries as well as archive library files.

* master shared library (librtd.so or librtd.sl) can be dynamically loaded
  with the tcl "load" command (RtdImage_Init was renamed to Rtd_Init)

* uses xgrabsc.2_41 (screen dump) for canvas image print

--------------- 10 Feb 97 released rtd-2.13 (intern) -----------------------------

* fixed another bug related to shared memory. It seems that the destroy_notify
  routine in RtdImage.C, which was supposed to cleanup any shared memory it 
  created before exiting, was actually being called at other times, such as when
  the mouse enters the image window. Seems to be some kind of Tk4.0 bug?
  Commented out for now. This bug did not affect most users. It only turned up
  if you were using the RTD remote interface and/or the "shm" subcommand to access
  image shared memory using SysV shared memory.

--------------- 05 Feb 97 released rtd-2.12 (intern) -----------------------------

* fixed bug in [rtdimage shm get] (rtdimage tcl subcommand to return shared memory
  id, and/or force image to be in shared memory)

--------------- 30 Jan 97 released rtd-2.11 --------------------------------------

* Added World Coordinates support to the real-time image events by
  extending the rtdIMAGE_INFO struct in rtd/rtdevt/rtdImageEvent.h and
  using the new info in RtdImage.C to set the world coordinates
  information for the image.

  The following fields were added to the image event:
    double            ra;	     /* Center right ascension in degrees */
    double            dec;	     /* Center declination in degrees */
    double            secpix;	     /* Number of arcseconds per pixel */
    double            xrefpix;	     /* Reference pixel X coordinate */
    double            yrefpix;	     /* Reference pixel Y coordinate */
    double            rotate;	     /* Rotation angle (clockwise positive) in degrees */
    int               equinox;	     /* Equinox of coordinates, 1950 and 2000 supported */
    double            epoch;	     /* Epoch of coordinates, used for FK4/FK5 conversion, no effect if 0 */
    char              proj[8];	     /* Projection: one of: "-SIN", "-TAN", "-ARC", "-NCP", "-GLS", 
                                        "-MER", "-AIT", "-STG", "PLATE", "LINEAR", "PIXEL" */

  (I think the projection (proj) is only used for display and does not
  have any effect. I included it because it is part of the function
  interface (in Doug Mink's wcslib).

  *** (NOTE: incompatible change: clients must at least be recompiled!)


--------------- 21 Nov 96 released rtd-2.9 --------------------------------------

* Made configure scripts and sources Linux compatible. Fixed byte-swap
  problems on machines that have a byte order different from the network. 
  Thanks to Sidik Isani <isani@cfht.hawaii.edu> for supplying the patches
  for this.

* The "Pick Object" feature (View Menu) now also works for images that
  do not support world coordinates (RtdImage.C, RtdImagePick.tcl).
  
* rtdutl: class HTTP: Local file URLs are now supported, i.e.,
  file:/path/name... 

--------------- 8 Nov 96 released as rtd-2.8, part of skycat 1.0.1 ---------------

* (Rtd) Fixed compass to display East correctly (was reversed...)

--------------- 7 Nov 96 released as rtd-2.7, part of skycat 1.0 ------------------

* (WCS lib) Major improvements in the World Coordinates handling.  The
  WCS information for HST images should be handled correctly now, so
  you can plot guide stars, etc. This previously worked correctly only
  for some images (such as those from DSS). Many thanks to Doug Mink
  (dmink@cfa.harvard.edu) for supplying the WCS library and bug fixes.

* (Rtd) added a new "Grid" feature (see View menu) that displays a
  world coordinates based grid over the image. You can also control
  the grid size (distance in arcsecs between grid lines) in a new
  entry in the main panel.

* (Rtd) The compass widget (N-E display in panel) was removed and
  replaced with a more correct display in the Pan window. The Pan
  window now displays 2 arrows indicating the real north and east for
  the image, based on the world coordinate information.

* fixed bug in "measure band" display that caused incorrect distances
  to be displayed for the width and height lines (the diagonal was ok).
  (Needed to convert all 3 points from canvas to world coordinates rather
  than using only 2 points and assuming a linear coordinate system...) 
  (in RtdImage.C).

* Added bindings to measure band so that arrow keys can be used to
  position it.

* fixed bug in conversion between world coordinate and pixel distances 
  (in WCS.C).

--------------- 18 Oct 96 released as rtd-2.6, part of skycat 1.0b15 ------------------

* rapid frame was being deleting by the "Graphics:clear" menu item: fixed.

* graphics: added code to disable line graphics (menu and popup) when image
  is cleared.

* fixed syntax problems in HMS.h and WorldCoords.h reported by mcomin@eso.org 
  that show up when using g++/libg++ and the file <function.h> is included, 
  which defines templates for operator functions...

--------------- 15 Oct 96 released as rtd-2.5, part of skycat 1.0b14 ------------------

* got new version of SAO WCS lib from Doug Mink with some fixes for images
  where the equinox and epoch were not set.

* (Rtd) Changed the way image cut levels are set by default. In the
  previous version, cut levels were not changed at all when a new
  image was loaded, which meant that you usually had to press the
  "Auto Set Cut Levels" button to make the image visible. Now this has
  been changed as follows: If you set the cut levels explicitly by
  typing in a number or moving a slider bar, etc., they will not be
  changed, even if a new image is loaded.  However, if you have the
  cut levels calculated automatically by pressing the "Auto Set Cut
  Levels" button or the "Median Filter" button, etc., then it is
  assumed that new cut levels can be set automatically when a new
  image is loaded.  (We would be interested to hear any comments on
  this. Maybe we should make this behavior optional ny adding a
  checkbutton somewhere...)

* changed bindings on the "measure band" (RtdImageMBand.tcl) so that it
  acts more like a menu or the line graphics: it will stay up if you
  click <3>, release and then drag. Clicking <3> again makes it go away.
  <Shift-Button3> now makes it "freeze" so you can keep it where it is.
  <Ctrl-Button3> (or <Ctrl-Motion>) displays just the single line mband.

* Made a number of changes designed to improve performance on very large
  images (got test image from Kim Gillies: 170 MB, 8192 x 5464 floats):
  
  * the zoom window is no longer updated from the pan window, since that can
    cause a lot of disk activity on large images (the mouse easily crosses the 
    entire pan image, which would have to be displayed in the zoom window).

  * auto set cut levels, median filter, finding min/max pixel, etc. now are 
    only calculated for the visible part of the image and (for speed) don't 
    examine all image pixels. (modified getDist() and medianFilter() methods).

  * added a check and a warning dialog for the case where a very large image
    is zoomed so that the canvas scroll area exceeds the range of a "short"
    (32k pixels in X or Y), since there is an internal Tk limit there.
    I could get around this with a hack, but it would require access to Tk
    internals that would cause compilation problems in the VLT environment.

* fixed problems propagating cut level changes to zoom window (RtdImage.C)

* added rcs keywords as static constants to source files (for Giorgio).

* added a "Reset" button to the EntryForm class - used to enter WCS data (rtd)
  and local catalog data (skycat).
  

--------------- 1 Oct 96 released as rtd-2.4, part of skycat 1.0b12 ------------------

* Class ImageData/WCS/RtdImage: removed wcs* routines and replaced
  them with a new class called "WCS" (module rtdwcs) that is the
  interface to Doug Mink's SAO WCS lib.  Class ImageData now has a
  method "wcs()" that returns a reference to the WCS object rather than
  implementing methods like "wcs2pix()" itself. The WCS class uses
  reference counting so that it is easier to share the information in
  different rtdimage views.

* added a Tcl/Tk interface for setting and displaying the basic WCS info
  (using the rtdimage wcsset subcommand) and added a new View menu item
   "WCS Information".

* added 2 new rtd subcommands for setting WCS information from outside:
  "wcsset" (to set WCS parameters) and "wcsshift" to shift the WCS center
  of the image. See the rtdimage(n) man page for details.

* fixed bugs in Mem/Mem_Map classes: 
    do read-only mmap (was read/write: bad for read-only image files), 
    report errors correctly (inserted missing error messages), 
    initialize status_ member variable (was missing).

* added error checking in FitsIO.C to catch incomplete FITS files or
  files that have the wrong type.

* added global Tcl variable "rtd_version", set to the version number: "2.4", ...

* ImageColor: made changes in colormap handling in an attempt to avoid flashing
  when using a private colormap. Added new tcl command: "rtd_set_cmap" to set
  colormap for popup windows to be the same as rtdimage.

* FitsIO: Display of FITS header (item in View menu) changed so that displayed
  copy of header is formatted for ASCII display (with newlines, no NULL chars).

* FitsIO: loading large FITS files should be faster now, due to use of mmap(2)
  in place of reading the file.

* wcslib, rtilib: started using new SAO wcslib (wcssubs-1.0) version. 
  Changes in the wcslib pix2wcst routine (converts image pixel
  coords to a WCS string) caused problems (coords are sometimes output
  in degrees, sometimes HMS).  Replaced calls to pix2wcst with pix2wcs.

--------------- 20 Sep 96 released as rtd-2.4b1, part of skycat 1.0b11 ------------------

* Added range checks in LookupTable.C to fix problems caused by keeping
  previous cut levels for different image data types

* rtdutl: non-ANSI-C "press" sources: removed -traditional option from
  Makefile.in (not available with "cc") and fixed declarations in C
  sources (taken from "press" module) so that gcc doesn't complain.
  (was reported by K. Gillies).

* min/max pixel values: (ImageTemplates.C): changed algorithm to not examine
  every pixel on large images. On smaller images, the time is not so important,
  but on very large images it can take a long time. Now only every nth pixel
  is examined, which should give an estimate of the min/max pixel values.

* All transformations (flipX,Y, rotate, scale) and cut level settings are now
  kept between image loads and after a "clear" operation (requested by P.Biereichel).

* fixed bugs that sometimes caused the values displayed in the upper panel
  (X, Y, pixel value) to be off by 1 with respect to the zoom window.
  The problem showed up when the image was at zoom factor 1 and with certain
  transformations applied and also in rapid frames. It should work correctly now.
  (Changes in RtdImage.C, ImageData.C, ImageTemplates.C)

* RtdImage.C: RtdImageCamera::display(): added "frameId" arg to calls to the pre and
  post camera commands to differentiate between rapid frames and the main frame.
  (requested by pbiereic). This affects calls to the pre and post commands specified 
  in the rtdimage "camera attach" command.

* RtdImage.C: configureNotify(): fixed bug that sometimes caused the
  image to not be redrawn correctly after a window manager maximize/minimize 
  resize operation.

* RtdImageCtrl.tcl: new_image_cmd: added code to destroy "spectrum" window when
  a new image is loaded (problem was reported in SPR Nr: 960518 when new image was
  smaller in real-time mode: could not reproduce)

* Real-time interface: in RtdImage.tcl: detach_camera: inserted a call to 
  "$image_ update" to make sure all image windows are up to date with the shared  
  memory image.
  (This might be needed due to timing problems between the shared memory image and
   the socket being read from the rtdServer.) 

* RtdImage.C: added new rtdimage subcommand: "$image update" forces the image to 
  be updated from memory, where it may have been changed by a separate process
  accessing shared memory...

* spectrum (View::Cuts..." menu item): ignore errors when line is too small
  (was reported as SPR Nr: 960536, forwarded by P. Biereichel)

* added code (from P. Biereichel) to make sure zoom window gets cleared when
  the mouse leaves the image window (see RtdImageZoomView.tcl)

---------------- 14 Aug 96 released rtd as part of skycat-1.0b10 ------------------

* added check for "SIMPLE = ..." keyword/line at beginning of FITS files

* rtdimage: "Open File" now recognizes suffixes for compression: 
	hfits (H_COMPRESS), gfits, gzfits (GZIP), cfits (UNIX_COMPRESS)

* fixed bug when FITS keyword "CTYPE1" was not "RA --", as described in mail from 
  Alberto Micol (just removed restriction in CTYPE1 being "RA--")

* rtilib: class ImageData: added a new class "LookupTable" to make it easier to
  share and manage color lookup tables. Also changed the way the "Blank" pixel
  is implemented (more efficient now).

* Cut levels and transformations (flipXY, rotate, scale) are now kept even when
  a new image is loaded.

* rapid frame: embedded rapid frames (in main image) get the cut levels
  and transformations (but no image data) from the main image.
  Popup rapid frames (in separate window) can have their own transformations
  and cut levels (but transformations from the main image still propagate).

* It is now allowed to set the cut levels outside of the min/max pixel
  range.

* added new "View" menu item "Hide Control Panel" to toggle the visibility of
  the top control panel.

* added new "View" menu item "Magnification" to set the image scale when the
  control panel is not visible.

* changed default bindings in canvas so that you can scroll with button <2> when 
  the control panel is not visible.

* added support for "mmap" in Mem class (rtdutl), using code from the ACE class
  library (modified by Kim Gillies). mmap is now used to read files more efficiently
  for local catalogs and decompression. Later it will also be used to load image
  files (need to first start using new sao-wcslib).

---------------- 6 Aug 96 released rtd as part of skycat-1.0b9  ------------------

* added decompression algorithms (H-compress, gzip, unix) the PREVIEW
  field in catalog query results is now interpreted as an image OR a tab
  table to plot, based on the "Content-type" field of the preview data
  returned.
  The current implementation is based on the document:
      http://arch-http.hq.eso.org/~amicol/asu_94.html
  If the "Content-type" of the preview is recognized, it is plotted as
  a graph or loaded as an image...


---------------- 1 Aug 96 released rtd as part of skycat-1.0b8  ------------------

* Added an interface for selecting an object/star in the image
  and calculating the center, FWHM and angle
  (see View menu, "Pick object")

* Fixed problems with world coordinates where (hour == -0.0).
  (0:0:1 -0:0:1) should work correctly now.

* removed the "wcs2pix" and "pix2wcs" tcl subcommands
  (use the "convert coords" subcommand instead...)

* Graphic items are now clipped to (about) the size of the image
  (incuding rapid frame rect and panning rect)

* Cut levels for rapid frames are no longer set from the master
  image. Rapid frames can have thier own cut levels and transformations.

---------------- 24 Jul 96 released as part of skycat-1.0b6  ------------------

* rapid frames are now assumed to start at 0,0

* you can set the cut levels separately for rapid frames

* you can rotate/flip/scale rapid frames separately

* you can no longer move a rapid frame outside of the image

* I added a test utility for rapid frames that you can
  access as follows:
    rtd -debug 1 
  This uses a test program (tRtd) that is installed with rtd.
  You can change the update interval by specifying the -interval
  option:
    rtd -debug 1 -interval 200
  The default is 100 ms.

---------------- 28 May 96 released as part of skycat-1.0a10  ------------------
 
* The main visible changes are some new menu items and support
  for a private colormap...  

---------------- 23 May 96 released as part of skycat-1.0a9  ------------------

* private colormaps are used when there are not enough
  colors. The default minimum amount of colors is 30 and
  the default max is 60. You can set these via the -min_color
  and -max_color options.  If min_colors colors are not found,
  a private colormap is installed. I tried to save the GUI
  colors to avoid flashing...

* There is a new menu item under File for "cloning" the main
  window. The main windows share the same colors, but otherwise
  are like 2 different applications.

* I added a menu item to the View menu to hide/show the popup
   windows.

---------------- 12 Apr 96 released as part of skycat-1.0a8  ------------------

* added pop up rapid frame window with zoom controls

* added a new zoom window (the old one is still available with an option)
   which works over any rtd image (pan window, rapid frame,...)
 
* added a remote control interface (see man page rtdRemote(3))

* added some new Rtd commands to allow remote access to the image and header
   in shared memory (see RtdImage(n), commands: shm, remote)

* new Rtd subcommands for converting between any 2 coordinate
   systems (see RtdImage(n): convert command). 

* RtdImage now understands the following coordinate systems:
	canvas coordinates
	screen coordinates
	image coordinates
	world coordinates (H:M:S and degrees, any equinox)
  For example, coordinates may now be specified as: 
	$x $y canvas 
  or:
	$ra $dec "wcs 1950"
          

---------------- 21 Feb 96 released as part of skycat-1.0a4  ------------------

* negative world coordinates are now handled correctly

* bzero and bscale Fits keywords are now used

* support for the BLANK fits keyword for blank pixels

* the Pixel table has been implemented in C++

* We are now using the new saoimage-1.18 wcslib
   (mixed with the DSS plate code from 1-15, due to problems
    in the new version)

---------------- 6 Feb 96 released rtd as part of skycat-1.0a2  ------------------

* lots of bug fixes

* added a menu item for viewing the FITS header

---------------- 25 Feb 96 released rtd as part of skycat-1.0a1  ------------------

* Added versions for Solaris (with shared libs) and HP

----------- Sep 18, 1995: begin change log for RTD  ----------

