This file summarizes the conceptual changes being made to VXL.  It
should document API changes and deprecations, and other "large"
changes that have an effect on users.  Bug fixes and minor changes
aren't documented here, unless the bug-fix has a major observable
effect.  If you change something in VXL, please document it here.

******************************
VXL 1.17.0    - June 2012
******************************
      - Moved the vxl photogrammetry library, vpgl, to core. vpgl supports a
        hierarchy of camera types including: projective, perspective and affine
	projections from 3-d to 2-d. Also included is a class for the 
	epipolar relationship between cameras, vpgl_fundamental_matrix. An
	algorithm library is also provided, which implements standard 
	operations such as bundle adjustment and backprojection.

      - Added transpose and conjugate_transpose methods to vnl_sparse_matrix

      - Added vnl_decnum: decimally represented arbitrary precision numbers;
        See vnl/examples/calculate.cxx for a useful application with vnl_decnum.

      - Removed broken vil_blob_finder, and replaced it with
        vil_blob, a collection of blob manipulation functions.
        The new API is more batch oriented rather than the old
        iterator-style.

      - Generalized vnl_sparse_lst_sqr_function and vnl_sparse_lm
        to allow for global parameters in the optimization.  Used
        this in vpgl_bundle_adjust to allow for shared intrinsic
        camera parameters in bundle adjustment.

      - Added a vbl_batch_multimap and vbl_compact_batch_multimap. These have
        vcl_multimap style interfaces, but with much lower memory allocation
        overheads when individual inserts and erases are not required.

      - Missing data support in vil. In particular image sampling can now return
        return NA when off edge of image. Compatible with vnl_na.
        
******************************
VXL 1.16.0    - December 2010
******************************

      - generalized sparse symmetric eigensystem solver (A*x = lambda*B*x)
        added to vnl/algo/vnl_sparse_symmetric_eigensystem
        
******************************
VXL 1.15.0    - September 2010
******************************

      - bzlib added to v3p (popular alternative for zlib)

      - "win32" interface added to vgui

      - contrib/brl/bseg/boxm (octree based modelling) was completely rewritten

******************************
VXL 1.14.0      - January 2010
******************************

      - Added some greyscale morphology functionality to vil3d

      - vil has been relaxed to allow use of user-defined types as pixels.

      - Added some simple support for NA value to represent missing data in vnl

      - Added a vnl_svd_fixed which avoids use of heap memory.

      - Added core/vgl/algo/vgl_orient_box_3d_operators: non-axis-aligned
        minimal-volume bounding box calculations. (Currently just a stub.)

******************************
VXL 1.13.0    - September 2009
******************************

      - Created a command-line tool image3d_math to manipulate 3D images a little like
        ImageMagick does with 2D.

      - Promoted brl/bbas/vidl2 to core/vidl.  This replaces the old vidl (now vidl1).

      - Renamed core/vidl to core/vidl1.  vidl1 is now deprecated.

      - Added a new library to core!
        vpdl is a probability distribution library unifying and merging the
        functionality of the contrib libs brl/bbas/bsta, mul/vpdfl, mul/pdf1d.

      - Doxygen based html or TeX output can now be generated through CMake

      - Consistent, HW-accelerated vnl_math_round for half-integers.

      - A long-standing bug in vnl_bignum has been fixed

      - more tolerant constructor from istream for several vgl classes
        (e.g. parentheses, commas).

      - Added class vgl_ellipsoid_3d to vgl/algo.

      - Added vnl_power.h : function to raise square matrix to integer power.

      - Add header-only loading capabilities to the v3i loader (VXL's native 3D image format).

      - Bug fixes in the TIFF, PNM and IRIS image file format writers which
        allows them now to correctly write cropped images.

******************************
VXL 1.12.0     - February 2009
******************************
      - no major changes.

******************************
VXL 1.11.0         - July 2008
******************************

      - Added initial CMake configuration to help bring C++ 0x standard code
        (including TR1) into vcl.  This will remain experimental until fully
        tested and should not be used outside of vcl for now.

      - vil_math_median implemented for vxl_byte images using fast histogram
        method.

      - Added a sparse least squares function with sparse Levenberg Marquardt
        optimizer to vnl

      - changed the interface of vnl_matrix_fixed get_row and get_column
        to return a vnl_vector_fixed

      - Added fast exact Euclidean distance transforms to vil/algo

******************************
VXL 1.10.0      - January 2008
******************************

      - no major changes.

******************************
VXL 1.9.0          - July 2007
******************************
      - support for qt4 added to vgui

      - intersection methods & functions in vgl have been separated from classes
        and renamed to vgl_intersection. The new functions can be found in
        <vgl/vgl_intersection.h> and <vgl/algo/vgl_intersection.h>. The old
        intersection methods and functions have been deprecated.

      - Begun to switch vil error reporting to exception-based.

      - Added support for additional full loader/savers plug-ins to be added
        manually to the vil loader scheme.

      - Added an plug-in vil loader to save and load vimt_image_2d natively.

******************************
VXL 1.8.0         - March 2007
******************************

      - vbl_shared_pointer updated to allow base class conversions

******************************
VXL 1.7.0      - November 2006
******************************

      - intersection methods scattered in vgl are combined into
        vgl/algo/vgl_intersection.h. intersect(...) under
        vgl/vgl_box_3d and intersection(...) under vgl/vgl_line_3d_2_points
        are deprecated and no longer available.

      - Added support for VC++ x64

******************************
VXL 1.6.0        - August 2006
******************************

      - vnl has been made thread safe, fixing a major weakness with vxl

      - VXL's GUI Library (vgui) now has preliminary support for wxWidgets
        as the rendering toolkit. It has been tested only in Windows
        platforms and has known problems with UNICODE builds of wxWidgets
        (to be solved in a later release). To turn-on compilation of the
        wxWidgets support set the VGUI_USE_WX option in CMake to ON (OFF
        by default).

      - Add VXL_IMPORT_BUILD_SETTINGS option (default to YES) to allow
        private libraries to have different compiler settings. (Setting
        to NO will permit differences.)

      - vsl can now read/write very large matrices and images in low-memory
        situations.

      - PNG reader now supports sBIT for recovering the original bitdepth.

******************************
VXL 1.5.0         - April 2006
******************************

      - Add support for ICC 8.1

      - VC6 compilers are no longer supported

      - VC7.0 compiler support is deprecated.
        VC7.0 will not be supported in vxl 1.6.

      - New (somewhat experimental) support for reading video files
        and receiving input from usb/1394 cameras through DirectShow in
        Windows systems has been included in contrib/brl/bbas/vidl2.
        vidl2 also includes support for video-for-linux cameras and
        1394 cameras under linux.

      - A new runtime logging facility with almost no overhead has
        been introduced in contrib/mul/mbl/mbl_log.
        It is patterned after Apache's log4j library.

      - vil now optionally supports reading JPEG 2000 compressed
        image files (.jpc and .j2k) as well as JPEG 2000 compressed NITF 2.1
        images.

      - vil now supports pyramid images in two forms - 1)
        multiple pyramid levels in a single directory and 2) the levels are
        stored in a single tiff file.
        This capability is useful for displaying large files.

      - vil now supports blocked images for large satellite images.

      - Clean up some of the compiler definitions (VCL_GCC_34, etc).
        Deprecate VCL_VC60, etc, in favour of the more consistent
        VCL_VC_60, etc.  VCL_VC60 will be removed in a future release.

******************************
VXL 1.4.0       - January 2006
******************************

      - Added support for NITF image format v.2

******************************
VXL 1.3.0       - October 2005
******************************

      - New vgl_sphere_3d primitive, and some extra intersection calculations.

      - Added support for the Analyse 3D image file format

      - VIL can now read NITF 2.1, NITF 2.0 and NSIF 1.0 image files.
        All uncompressed data formats are supported and plugin support is
        provided for handling JPEG 2000 compressed NITF files.

******************************
VXL 1.2.0          - July 2005
******************************

      - Added an implementation of the Mukres or Hungarian algorithm for
        finding a minimum cost assignment.

******************************
VXL 1.1.0           - May 2004
******************************

      - Automated codec registration in vidl based on the approach of vil
        file formats.  vidl_io::register_codec() is no longer needed.

      - Added AVI file support in Linux to vidl using the avifile library.

      - Brought mbl_mz_random into core/vnl/vnl_random.  This random
        number generator provides the same sequence on many platforms.

      - Added better DICOM support to vil by wrapping DCMTK.  Added
        DCMTK to v3p.  Clean up DICOM header struct.

      - vil file format configuration is now stored in a generated
        file (generated from vil_config.h.in)

      - Added several options (e.g. BUILD_CORE_NUMERICS) to the CMakeBuild
        tree to make it easy to build just small parts of VXL.

      - vgel_kl (KLT feature point tracker) now accepts vil1 or vil2 images.

      - Added vil_warp and vil_nearest_neighbour_interp functions

      - Remove vcl_complex hackery on MSVC 6.  vcl_complex is now the
        standard <complex>, since it seems to work with VC6sp5.

      - vnl_numeric_limits is deprecated in favour of vcl_numeric_limits.
        (vnl_numeric_limits was written before vcl.  vcl_numeric_limits is now
        more robust, and can use platform defaults.)

      - vbl_basic_tuple, vbl_basic_relation, etc. are deprecated since we have
        no decent explanation of how to use them.

      - VXL can now be compiled with Borland's bcc 5.5

      - All the configure scripts have been rewritten in CMake.  This should
        mean less platform-specifc hacks, and easier porting to any new
        platforms supported by CMake.

      - VXL can now be compiled with MinGW (www.mingw.org).  This can
        be done using the -mno-cygwin option to gcc in Cygwin and
        probably also with the basic MinGW tools as well.

******************************
VXL 1.0.0       - October 2003
******************************

      - Support for MSVC 7
      - Replaced "vil".  The old "vil" is now called "vil1".  "vil2" has been
        renamed to "vil".   See the vil chapter in the VXL book for details.
      - vnl_matrix_fixed and vnl_vector_fixed upgraded to be fully space
        efficient.
      - Many hundreds of small bug fixes and improved functionality in the
        core and contributed libraries.

******************************
VXL 1.0 beta2 - September 2002
******************************

      - CMake is now the default build system.

******************************
VXL 1.0 beta1  - November 2000
******************************

      - The first official VXL beta release.

******************************
VXL 0.1        - February 2000
******************************

      - The very first version of VXL, written from scratch (using pieces of
        TargetJr) during an intensive coding week in Oxford.
