GPlates 2.3
===========

Changes since 2.2:

 * Deformation:
   * Tectonic subsidence:
     * Calculate tectonic subsidence due to crustal stretching (with thermal cooling).
     * Calculate lithosphere temperature-depth profile at each surface point.
     * Numerically solve temperature advection-diffusion equation:
       * Using the Crank-Nicolson method followed by,
       * solving that tridiagonal system of equations using the Thomas algorithm.
       * Choose depth resolution and clamp absolute strain rate to ensure numerical stability.
     * Changes in integrated temperature over depth contribute to thermal subsidence.
     * This now gives us tectonic subsidence including the effects of thermal cooling of the lithosphere.
   * Improve stability of crustal thinning calculations by clamping strain rate dilatation:
     * Avoids extremely large spurious strain rates generating implausible negative crustal thicknesses.
 * Rendering:
   * Added two new age palettes ('traditional' and 'modern') to built-in palette dialog (along with existing 'legacy').
     * Can now also be used in non-raster layers (3D scalar field layers and reconstructed scalar coverage layers).
   * Improve look of tool palette on macOS (using stylesheet):
     * Native look is worse on Qt5 than Qt4 (which itself wasn't that good).
     * Now looks much more similar to Windows and Linux (which still use the native look).
   * Support high-DPI displays (eg, Apple Retina):
     * In globe/map views, colouring previews and canvas tool icons.
     * Scale point sizes and line widths by the device pixel ratio.
       * High-DPI displays have more pixels in same physical screen area, so without increasing sizes they would look too small/thin.
     * Currently only integer factors are supported.
       * On Windows, a system DPI scale factor of 175% will round up to 200% (150% round downs to 100%, otherwise GPlates is bigger than 1920x1080 display).
     * Image export dimensions now specified using device-independent pixel coordinates (but exported image can be high-DPI, ie, device pixels).
       * This also means exported image has some number of raw pixels as displayed in viewport.
   * Velocity legend:
     * Fix scaling (eg, for rendering to images smaller than the viewport).
     * And now displays in (smaller) Manage Colouring previews.
   * VGP:
     * Create a single reconstructed feature geometry for each VGP (instead of an extra one for site point).
     * And move visibility decisions from application logic to visual logic.
 * Export:
   * In 'general' resolved topology export, provide option to export each boundary segment as:
     * sub-segments (of a resolved topological line) or as a single segment geometry.
   * Support export of GeoJSON files.
   * OGRGMT exports now have dateline wrapping disabled by default (previously enabled by default).
     * Also exposing option to user to enable it. Note that "native" GMT does not respect dateline wrapping parameter (never does any dateline wrapping).
     * Only Shapefile format for feature collections (as opposed to exporting) wraps to the dateline when saving.
       * However this can be changed in the file configuration in ManageFeatureCollections dialog.
     * Fixed OGR format feature collections (eg, OGRGMT, GEOPACKAGE, etc) incorrectly having the default configuration (eg, dateline wrapping) of Shapefile.
     * Export resolved topological sections to a single file in same order as features in the files (also maintaining order across files).
 * Rotations:
   * Much faster creation of reconstruction trees.
     * No longer repeat creation of reconstruction graph for each reconstruction tree (at each reconstruction time).
     * Instead create more general graph once (suitable for all reconstruction times) and create trees from that (at specific reconstruction times).
   * No longer need to clone reconstruction feature collections:
     * Since reconstruction graph is a snapshot of rotation features (replaces clone).
     * Means subsequently updated rotation features no longer inadvertently affect reconstruction trees of snapshot.
   * New option to extend moving plate rotation sequences back to the distant past:
     * Such that reconstructed geometries are not snapped back to their present day positions
     * when the reconstruction time gets too old for the rotation file.
     * Option saved in projects/sessions.
   * Avoid modifying PLATES rotation file to no effect when adjusting stage pole to take short instead long path.
     * This was marking the file as needing to be saved every time it's loaded.
     * Happened when modified finite pole is identity rotation.
 * Memory usage:
   * Reduced memory usage of geometries:
     * Multipoints reduced 40%.
     * Polylines and polygons reduced 33%.
   * Reduced reconstruction tree memory usage by 25%.
 * Build:
   * Overhauled CMake build system:
     * Using modern CMake (version 3) API.
       * Targets are created (add_executable/add_library), and
       * their properties are defined using 'target_' commands (eg, target_compile_definitions, target_include_directories), and
       * properties are passed transitively to other targets via 'target_link_libraries' command.
     * Only using our own 'find package' modules to find dependency library when:
       * library does not support CMake and CMake itself does not provide a find module for it.
   * Can now create standalone binary packages on macOS, Windows and Linux.
     * Windows supports NSIS and ZIP (both standalone).
     * macOS supports DragNDrop package (standalone).
       * Signs GPlates bundle, its internal contents and final DMG package with a Developer ID certificate.
       * Notarization by Apple still manually done outside CMake/CPack (requires uploading and periodically checking notarization status).
     * Linux supports:
       * Standalone: tarball (pre-packaged dependencies).
       * Non-standalone: Debian package (system package manager installs dependencies).
     * For standalone installation, dependency libraries are recursively found and copied to install location, including:
       * Python standard library (for embedded Python interpreter),
       * Qt plugins,
       * Windows Universal CRT libraries and Visual Studio runtime libraries,
       * Python Hellinger scripts,
       * GDAL/PROJ library data (eg, 'proj.db').
   * Use CMake 'components' to handle separate installation of GPlates and pyGPlates:
     * Will be used later to install/build pygplates into Anaconda.
   * Updated GPlates icon (to new blue icon) used in file system (eg, associated with gplates.exe or gplates.app).
   * Replaced old-style (pre-CMake3) pre-compiled headers with native support starting in CMake 3.16.
   * Changed version numbering to support pre-releases for packaging including regular development releases and alpha, beta, release candidate releases.
     * Works with Semantic and Debian versioning.
   * Can enable CPU profiling without using 'ProfileGplates' custom build type:
     * Avoids issues with CGAL not working well with custom build types.
 * Library dependencies:
   * C++11 is now a minimum requirement.
     * GDAL 2.3 and above require it.
     * CGAL 5 and above require C++14 (requirement transitively passed to GPlates via CGAL::CGAL CMake target).
   * Significant upgrade to Qt version 5 (from version 4).
   * GPlates and pyGPlates now link to zlib (and no longer require the gzip program).
     * This also means pyGPlates no longer needs to include the gzip executable in the PATH on Windows.
   * Enable compilation of Boost and CGAL with a different version of Visual Studio than GPlates (eg, VS2015 and VS2019):
     * Disable boost auto-linking.
     * Use header-less CGAL (CGAL >= 4.12).
   * Ported Hellinger Python code to Python 3, and NumPy >= 1.12.
 * Bug fixes:
   * Fixed macOS scrollbar in layers window obscuring underlying layer controls:
     * For example, inability to click '-' icon to remove a layer connection.
   * Save GPlates log to writable location when current working directory does not have write permission:
     * For example save to "C:/Users/<USER>/AppData/Local/GPlates/" when GPlates is installed to "C:\Program Files".
   * Enable writing of '.json' files (not just '.geojson).
   * Kinematics tool:
     * Angular velocity (rads/Myr) is now always positive since stage rotation 'pole' is arbitrary (can negate pole/angle pair and get same rotation),
     * and so we just take the absolute value.
   * Raster fixes:
     * Fixed bug where part of a raster touching dateline is stretched right across map (in 2D map views).
     * Fixed incorrect clipping of high resolution floating-point rasters in map view.
       * First noticed when exporting a 0.0005 degree numerical raster in export region: lat [-49.417, -28.917], lon [140.629, 150.23].
     * Fixed bug in (non-reconstructed) raster when using non-zero central meridians in map view.
       * This showed up as missing square sections in the displayed raster.
       * This also affected raster export (which uses rectangular map projection) where square sections would be missing from exported raster.
     * Fixed regional raster not getting exported with same extents as imported raster.
       * No longer change left and right longitude extents of imported raster when they are already in range [-360, 360].
   * Fixed exporting CitcomS topological segments using a header format that CitcomS is unable to pre-process:
     * This resulted in missing subduction polarities, for example.
   * Fixed dateline wrapping parameter not getting used for export to OGRGMT format.
   * Fixed one GROT file getting saved with the contents of another GROT file.
     * And also crashing when trying to save the first GROT file after unloading the second one.
   * Fixed crash on Linux when opening a save file dialog to get project or feature collection file name.
   * Fixed default settings not getting initialised from ":/DefaultPreferences.conf" (on some systems):
     * Such as "view/animation/default_time_increment" being 0 instead of 1.
   * Fixed point not detected as inside a network's rigid block, and crashing under assumption it must be in a delaunay face.
   * Fixed exception/crash in the following topological scenario:
     * a topological polygon sub-segment is a rubber-banded resolved topological line, and
     * shared by two topological polygons, and
     * we're retrieving its sub-sub-segments (eg, in 'general' resolved topology export).
   * Fixed more complex topology rubber banding scenario involving:
     * point (not line) sections where there's more than two adjacent sections,
     * such as a triple junction (3 or more rubber bands converging on a single point).
   * Fixed polyline around the equator not getting intersected with small polygon crossing it.
   * Fixed some zero area dateline sliver polygons giving incorrect areas (multiples of PI instead of zero).
     * And fixed polygon around the equator ending up with zero area instead of 2*PI (ie, half the globe).

GPlates 2.2
===========

Changes since 2.1:

 * Deformation:
   * Option to generate 'exponential' stretching profiles across rifts (instead of default constant stretching).
     * More points are added to interior of deforming network and velocities distributed so strain rate varies exponentially.
       * Variation is along stretching direction from un-stretched side of rift towards rift centre.
     * Activated by adding 'rift' left/right plate IDs to any deforming network.
     * Optionally specify three control parameters:
       * Specify in deforming network feature or layer (with feature parameters taking precedence over layer parameters):
       * One parameter controls the exponential constant.
       * The other two parameters control how closely to approximate exponential curve (with better approximations running slower).
   * Calculate, visualize and export strain rate "style":
     * A unit-less quantity defined in Kreemer et al. 2014, categorizing extension, contraction and strike-slip.
   * Support deforming networks in Net Rotation export (in addition to rigid plates).
     * Although deforming networks with zero (or no) plate ID will all get grouped together as a single entry/plate,
     * but only in the files for individual times (that list the plate contributions to total net rotation).
   * Added option to generate deforming mesh points inside interior rigid blocks of networks (by default they're not generated there).
 * Topologies:
   * Updated CitcomS topology export:
     * Added option to export all (plate/network/slab) polygons and all (plate/network/slab) boundary segments.
     * Added extra boundary segments export for each of plate/network/slab type.
     * Exported 'plate' boundary segment filenames now use 'plate_' prefix, so that 'all' boundary segments can use their previous filenames.
     * Fixed missing 'plate's (that were not of type TopologicalClosedPlateBoundary; eg, OceanicCrust).
   * Updated General topology export:
     * Added option to export boundary segments.
       * Including separate subduction, subduction left/right, ridge/transform files (similar to CitcomS topology export).
     * Boundary segments are unique.
       * Not duplicated like in CitcomS export where GMT header outputs plate/slab/network name and reversal flag (and hence tied to specific topology).
     * When a boundary segment comes from a resolved topological *line*, export the sub-segments contributing to the resolved *line* segment:
       * Ensures the correct plate IDs get exported,
       * ie, plate IDs of actual reconstructed features that contribute to resolved topological line (rather than resolved topological line itself).
   * Much more robust determination of which points contribute to a topological sub-segment of a topological boundary:
     * Including sub-segments made from topological *lines* (that, in turn, contribute to a topological boundary).
     * Robust determination of velocities along topological boundary.
       * Results in robust strain rates inside topological networks.
     * Use average of velocities of two adjacent intersecting topological sections (eg, at corners of topological network boundaries).
       * Avoids randomly switching the velocity from one section to the other between reconstruction times (and subsequent effects on strain rate).
     * Interpolate velocities when clipping a resolved topological line (used as a section of a topological boundary) in the middle of a segment/arc.
       * There can be differing plate IDs on either end of the segment/arc (eg, if topological line is made from points and is deforming).
   * When individual points are used as topological sections in a topology their sub-segments become small polylines:
     * Each polyline essentially expands the point to two new points halfway to its adjacent neighbours (topological sections).
     * The same applies to *lines* that rubber-band instead of intersect.
     * This fills in gaps a topological boundary (eg, when exporting topological boundary segments).
 * Projects and recent sessions:
   * Save time slider range to project/session.
     * Also extend default time range to 410Ma (from 200Ma) since rotation model goes back to 410Ma.
 * File formats:
   * Added support for reading/writing GeoPackage geometry files.
   * Support null attributes for OGR vector formats (Shapefile, etc).
     * Eg, not all features in file will have a conjugate plate ID or left/right plate IDs.
     * Avoids assigning a property to a feature that it shouldn't have.
   * Support UTF8 when reading (and writing) PLATES4 line and rotation formats.
     * Useful when rotation comments contain some non-ASCII characters.
 * Rendering:
   * User can show/hide topological lines, polygons and networks.
     * Can also show/hide topological "sections" (those geometries referenced in topological boundaries/interiors).
     * GPlates now hides these dangling bits on topologies by default (so novice users don’t get confused when loading public data).
   * User can show/hide rasters, 3D scalar fields and scalar coverages.
   * Velocity layers can calculate velocities on *domains* that are topology layers (as opposed to *surfaces*).
     * This calculates velocities at the *vertices* of topological lines, polygons and networks.
   * Render clicked (white) geometries on top of non-clicked (grey) geometries (belonging to the same feature).
     * Useful when the feature's geometries overlap.
 * GPlates Geological Information Model (GPGIM):
   * Added new GPGIM feature type "DeformingRegionEdge" that is edge of a deforming region that is also not a plate boundary.
   * Allow a gpml:MeshNode feature to contain a point geometry (previously only allowed a multi-point).
     * Enables single point to automatically create a velocity layer (because only MeshNode features do this).
   * Added properties for rift exponential stretching:
     * 'gpml:riftLeftPlate' and 'gpml:riftRightPlate' - conjugate rigid plates bounding a rift topological network.
     * 'gpml:riftExponentialStretchingConstant' - controls exponential variation across rift stretching profile.
     * 'gpml:riftEdgeLengthThresholdDegrees' and 'gpml:riftStrainRateResolutionLog10' - control approximation to true exponential curve.
   * Removed no-longer-used network properties 'gpml:networkMaxEdge' and 'gpml:networkShapeFactor'.
 * Polyline intersections:
   * More robust polyline intersections code, and significantly faster.
   * Assigning plate IDs is much faster (especially dense geometry like coastlines).
     * And resolving topologies is a little faster.
   * Distances to polygons (from another geometry) now take into account any interior rings of the polygon.
     * Includes polygon-to-polygon distances (where both polygons have interior rings).
 * Bug fixes:
   * Fixed hang on start up on Mac systems where network interface appears active but network is unavailable.
   * Fixed crash triggered when exporting total strains.
   * Fixed crash on exiting on some Ubuntu versions (due to freeing same memory twice).
   * Fixed time-dependent raster import (and 3D scalar field import) not accepting filenames with uppercase extensions.
   * Fixed crash when saving a rotation feature with a 'gml:name' or 'gml:description' property to a PLATES4 rotation file.
     * Most rotation features don't have these properties (but they're usually created this way via pyGPlates).
   * Fix crash loading a GPML file containing a feature property that cannot be interpreted using any property defined in the GPGIM.
   * Workaround CGAL bug causing natural neighbor interpolation to get stuck in an infinite loop for some Delaunay triangulations:
     * Such as South Atlantic deforming networks at 120Ma.
     * The bug is fixed in CGAL 4.12.2, 4.13.1 and 4.14.
   * Fixed parallel build compile errors "Cannot open include file: '<...>Ui.h': No such file or directory".
 * Build:
   * Support Visual Studio 2015/2017 (GDAL 2.3 uses C++11 which requires VS2015), and update Windows build docs accordingly.
   * Document how to build a 64-bit version of GPlates on Windows (including dependency libraries).
   * Fixed issue introduced by GDAL 3.0:
     * Data-axis-to-CRS-axis mapping breaks backward compatibility.
     * Restore to GIS-friendly order (longitude first, latitude second) like previous GDAL versions.
     * Fixes incorrect 90 degree rotation in lat-lon space in rasters with inbuilt projections (eg, Lambert Conformal Conic).
   * Upgraded support to new Proj6 API (but also support deprecated Proj4 API).
   * Added SQLite3 dependency library (due to adding support for GeoPackage vector format).
   * Support Boost 1.66 - adds an architecture tag (eg, x32 or x64) in the library filename.
   * Support Boost 1.67 - adds a Python version suffix (e.g. ``python27``) to the boost python components.
   * Fixed CMake error finding GMP library on Windows (recent CGAL versions already link to GMP, so GPlates doesn't need to).
   * Work around internal compiler error (gcc 5.4) on Ubuntu Xenial (16.04).
   * No longer combine '-ansi' (equivalent to '-std=c++98') and '-std=c++11' flags (first noticed on gcc 9.1).
   * No longer turn warnings into errors:
     * There are lots of warnings generated by dependency libraries (that we can't easily fix) and new compilers.

GPlates 2.1
===========

Changes since 2.0:

 * Velocity legend:
   * Visual indicator of velocity arrow lengths in a target velocity layer.
   * Displays a single arrow and its velocity (in cm/yr).
   * Legend velocity can be constant (eg, 2 cm/yr), or variable (to keep arrow length within reasonable limits).
     * Legend arrow length changes in response to velocity scaling in the target layer.
 * Projects and recent sessions:
   * Fixed problems loading projects saved on computers with different locales:
     * The following backward/forward compatibility rules now apply:
       * Can load the following on 2.1:
         * Projects saved with 2.1 on any locale:
           * For example, (English or Chinese)->(English or Chinese).
         * Only projects saved with 2.0 on English locale or same locale (if not English):
           * For example, English->(English or Chinese), or Chinese->Chinese.
       * Can load the following on 2.0:
         * Projects saved with 2.1 on any locale, but must be loaded on English locale.
             * For example, (English or Chinese)->English.
         * Only projects saved with 2.0 on matching locale.
             * For example, English->English or Chinese->Chinese.
     * Problems stemmed from incorrectly saving/loading QDateTime using 'system' locale (instead of "C" locale).
   * Save anchored plate ID, background colour and graticule settings to project/session.
   * When asked to locate a missing data file, show directory where missing file should have been.
   * Fixed filenames (with sharename in path) not loading when session/project loaded (on Windows).
 * Deformation:
   * Topological networks:
     * Can now use mid-ocean ridges as boundary/interior sections.
       * Or any feature reconstructed by half-stage rotation (in addition to by-plate-ID).
     * Added triangulation *draw* mode in topology network (brown) layers.
       * Can draw boundary, mesh or fill (independently of colour mode).
         * Display mesh by default (instead of boundaries).
         * Better visual indicator of deforming regions.
     * Fixed deforming meshes disappearing in 2D map views when strain rate smoothing enabled.
     * Fixed incorrect state of check boxes to export resolved topological networks/polygons.
       * When editing the export GUI options (in 'general' resolved topologies export).
   * Strain rate and accumulated strain:
     * Added total strain rate.
       * Visualize and export.
       * Uses geodesy definition of second invariant in Kreemer et al. 2014.
     * Added exports for the following accumulated strain quantities:
       * Strain dilatation.
       * Principal strain and stretch.
         * Exports triplet (angle/azimuth, major axis and minor axis).
         * Major/minor axes are strain (extension positive; compression negative) or stretch (1.0 + strain; always positive).
         * Plot stretch ellipses in GMT (with psxy).
     * Added optional strain rate clamping:
       * Useful for excessively high strain rates in some triangles of deforming mesh.
         * Depends on how deforming network was built/modelled.
       * Clamps *total* strain rate, since includes both normal and shear components.
       * Triangles outside deforming region (with zero strain rate) no longer contribute to smoothed strain rate.
         * Clamping strain rate is a better option to limit spurious strain rates.
     * All strain rate and accumulated strain quantities now calculated in spherical coordinates (instead of 2D cartesian).
     * Finite strain is now correctly accumulated.
       * By integrating deformation gradient tensor over time, using spatial gradients of velocity.
   * Crustal thinning:
     * Fixed crustal thinning (gamma) factor.
       * Should be '1 - T/T_initial' instead of 'T/T_initial'.
       * Automatically convert crustal thinning factors created by GPlates 2.0 (when loading GPML file).
     * Added crustal stretching (beta) factor 'T_initial/T'.
     * All three crustal thickness types now created when generating crustal thickness points.
       * Thickness (kms), stretching (beta) factor and thinning (gamma) factor.
       * Independently visualize and export.
     * Can optionally generate points within a lat-lon box.
     * Calculate statistics using entire history of crustal thicknesses/factors.
       * Provides a better mapping of palette colours.
       * Previously statistics were only calculated at initial time (but initial thicknesses are constant).
     * Fixed missing IMPORT_AGE attribute in OGR vector formats (eg, Shapefile).
       * Required for version 3 half-stage rotations (created in GPlates 2.0 and above) to work properly.
       * Also required for crustal thickness points to work.
   * Scalar coverages:
     * Added option to also export dilatation strain and total strain rate (in addition to dilatation strain rate).
       * In addition to exporting scalar coverage.
     * Interpolate vertex colours along each line segment of polylines/polygons.
       * Previously just rendered as point geometries with no line segments.
     * Disabled insert/delete/split tools for scalar coverage features.
       * Temporary solution to avoid losing mapping between domain points and scalar values.
     * Avoid potential negative in sqrt when calculating standard deviation due to numerical precision.
   * Symbols:
     * Fixed symbols not working for points when they are reconstructed using topologies.
     * Fixed strain accumulation symbol size truncating to integer values.
   * Reconstructing regular features using topologies:
     * Added option to remove points from within a deforming network as soon as they fall outside.
     * The "Set Topology Reconstruction Parameters" dialog now pops up when generating crustal thickness points.
       * Since points must be topologically reconstructed in order for crustal thicknesses to evolve.
     * Fixed cancelling of "Set Topology Reconstruction Parameters" dialog always turning on "reconstruct using topologies".
 * Rasters:
   * Enable import and export of NetCDF version 4 rasters (via GDAL library version 2).
     * Interoperable with GMT version 5.
     * Optionally compress exported NetCDF.
   * Support export of *gridline* registered rasters.
     * Eg, global raster where left and right pixel columns overlap on dateline.
     * Also support *gridline* import (for rasters with no inbuilt georeferencing).
   * Support greater than 8-bit per channel RGBA rasters (including floating-point).
     * Import down-converts to 8-bit per channel RGBA for display.
   * Import generates transparency for RGBA rasters supporting no-data values (in each R,G,B,A band).
     * Alpha channel set to zero (transparent) for matching pixels.
   * Time-dependent raster (and 3D scalar field) import now supports times (depths) anywhere in filenames.
     * For ambiguous cases (eg, multiple decimal points) place times (depths) at end of filename (after '_' or '-').
   * Export both ".nc" and ".grd" rasters using same NetCDF driver (difference is only the file extension).
   * Fixed incorrect half-pixel shift downwards (North to South) for *gridline* registered global GMT grids.
     * Has been incorrectly shifting since GPlates 1.4.
     * Also fixed a separate pixel-shift issue within 5 degrees of North or South pole (in regular lat-lon projection).
   * Fixed semi-transparent vertical seam near North and South poles at longitude 0 or -180.
     * Happened in 2D map views (and in 3D globe view when reconstructing raster).
   * Fixed slow rendering of very coarse rasters in 2D map views.
   * Made it easier to import/export rasters outside longitude range [-180,180].
   * Fixed incorrect raster statistics when all pixels in raster match no-data value.
 * Velocities:
   * Make GMT velocity export compatible with GMT psxy "-Sv" and "-SV" command-line options.
     * Angle/azimuth now in column 3 and magnitude in column 4.
     * Optional plate ID now in column 5.
 * Colouring:
   * CPT files:
     * Support GMT5 "C/M/Y/K" colours.
     * Support GMT5 CMYK "COLOR_MODEL".
     * Support different non-space-separated colour types on a single line.
       * Eg, "R/G/B" and "gray80".
   * Added button to reload colour palette file in colouring/draw styles.
   * Assign *all* known feature types a random colour in Feature Type draw style.
     * From GPlates 1.3 to 2.0 inclusive, all but 11 feature types were incorrectly assigned the default navy colour.
   * Fixed alpha component of RGBA colours not getting interpolated.
   * Fixed locale issues converting min/max remapped palette range to/from line edit text.
 * Digitization:
   * Fixed vertex edits not modifying topologies.
     * Eg, moving vertices of a feature used as a topological section in a topological network.
   * Digitize New Geometries:
     * No longer offer Reconstruction/Conjugate Plate IDs for topological networks and topological lines.
       * Only meaningful for topological polygons (eg, to calculate non-deforming plate velocities).
       * Now use zero Plate ID for these topological networks in CitcomS export.
     * Only offer ReconstructionMethod combo box for feature types supporting it.
       * Also exclude for topological geometries.
   * Fixed sorting (alphabetically) in Create Feature dialog, Choose Feature Type widget and Add Properties dialog.
   * Fixed Add Property dialog not starting with 'gml:name'.
   * Fixed missing first vertex when exporting digitised polygon to GMT('.xy') format in digitisation tool.
 * Geometry tests:
   * Point-in-polygon test now considers points *on* a polygon edge (within extremely small tolerance) to be inside polygon.
     * Helps ensure points lying exactly on dateline are inside a polygon that has an edge exactly aligned with dateline.
   * Fixed Assign Plate IDs retaining only first geometry in each feature when using 'copy by overlap'.
   * Fixed point proximity to a polyline/polygon in rare situations.
     * Resulted in incorrect selection with Choose Feature tool.
   * Avoid exception attempting to normalise zero vector during point proximity to a great circle arc.
 * Topology tools:
   * Build topology tools are now always enabled (makes it easier to build topologies at any time).
     * When entering a build tool any focused feature is un-focused, and then re-focused on exiting build tool.
   * Improved topology tools performance when any green layers are reconstructed using topologies.
     * Features reconstructed "using topologies" cannot in turn be used to build topologies (cyclic dependency).
 * GPlates Geological Information Model (GPGIM):
   * Allow multiple 'gpml:boundary' polygons per feature.
   * Loosen constraints on properties that can be loaded from a GPML file.
     * Any feature type can now contain any property defined in the GPGIM.
     * Can have feature types not defined in GPGIM.
     * More aligned with current ability to add any property to any feature type (albeit with a warning message).
     * Also more aligned with Shapefiles (which can load any property, in Shapefile mapping, into any feature type).
 * Graphics (OpenGL):
   * Only disable surface mask functionality in 3D scalar fields for problematic graphics driver/hardware.
     * Happens on systems that don't respect compatibility texture functions in geometry shader programs.
     * Only affects surface masking of scalar fields (not all scalar field functionality).
   * Avoid aborting due to unexpected framebuffer status.
   * Fixed 3D scalar field run-time shader compilation failures on MacOS 10.13.
     * Due to "#extension"s after non-preprocessor shader code.
   * No longer abort on OpenGL errors in non-debug builds (in line with typical OpenGL application development).
     * In rare cases some systems generate OpenGL errors but continue to function normally.
 * Dateline wrapping:
   * Expose properties for each point in wrapped output geometry.
     * Eg, if original point; if tessellated; if on dateline; if on original segment.
   * Fixed incrementing vertex index of polygon ring past its end when tessellating.
     * Now wraps around to ring start vertex.
   * Fixed interpolate info of tessellated polygon rings.
     * Can get traversed in backward direction (not just forward).
   * Don't output interpolate info for vertices of dateline wrapped polygon at North or South pole (but not on original polygon).
 * Enable C++11 for compilers with full support since GDAL 2.3 now requires it.
   * Clang 3.3 and GNU 4.8.1.
   * MSVC 2015 automatically uses C++11 when needed.
 * Support up to 10-digit plate IDs (essentially 32-bit signed integers) in all Plate ID spin boxes.
 * Extend begin/end times in Kinematics tool to 9999 Ma each (previously was 1000 Ma).
 * Fixed inability to save PLATES rotation files using non-ASCII (unicode) filenames (in some cases).
 * Fixed inability to save/load OGR formats (eg, Shapefile) to/from non-ASCII (unicode) filenames.
 * Restore size of globe/map view (back to that of GPlates 1.5).
   * GPlates 2.0 was using some extra horizontal space which made globe/map view look smaller.
 * Fix crash when both lat/lon deltas in graticule are set to zero.

GPlates 2.0
===========

Changes since 1.5:

 * Projects and recent sessions:
   * Now saves and restores all layer information:
     * Including layer order, visibility and all settings within each layer (such as colour styles and colour palette filenames).
   * Open projects using File menu, drag'n'drop, double-clicking or command-line.
   * Project name displayed in window title.
   * Copy a project to another computer. For example:
     * Zip up a folder containing project file and associated data files (including colour palette files).
     * Unzip to another computer and open project file in GPlates.
   * Option to locate missing data files (when loading project or recent session):
     * Useful when data files moved after project or session was saved.
   * Option to resolve ambiguous data files (when loading relocated project):
     *Useful when data files exist in both original and relocated locations.
   * GPlates 2.0 can open projects and recent sessions saved by all prior versions of GPlates:
     * However information saved by earlier versions is limited.
   * GPlates 1.5 can open projects and recent sessions saved by GPlates 2.0:
     * However restored information is limited (to what GPlates 1.5 can understand).
   * Handle broken forwards compatibility (broken in GPlates 1.5):
     * By saving a special isolated session state to tag "session_state_version4".
     * Also load/save regular session state to "session_state" tag.
   * Scribe system uses multi-section tag strings:
     * No longer require a C++ class just to transcribe a group of values under the same tag.
   * Support Infinity and NaN (for float/double) in the scribe archive writers and readers:
     * In text and XML formats. Binary already has support due to QDataStream.
   * Internal sessions stored in compressed binary archive instead of uncompressed text archive:
     * Reduce chances of exceeding Windows Registry key limit of 1Mb.
 * New Hellinger tool:
   * A new workflow to determine best-fitting poles by the method of Hellinger:
     * Import and export data files compatible with the FORTRAN programs of Chang and co-workers.
     * Edit and create magnetic pick data points, via the canvas or tabularly via the Hellinger dialog.
     * Adjust segmentation of magnetic picks.
     * Enable/disable magnetic picks from inclusion in the fitting algorithms.
     * Specify pole and angle estimates via the canvas or via the Hellinger dialog.
     * Perform fitting using a python implementation the FORTRAN programs.
     * Visualise resulting fit and uncertainty on the canvas.
     * Export fit and uncertainty data to text file.
 * Deformation:
   * Topological networks:
     * Boundary is similar to a topological closed plate boundary, but also has:
       * A deforming interior region (due to individual deforming points).
       * Optional interior rigid blocks.
     * Build New Network Topology tool now publicly available (without requiring command-line switch to enable).
     * Export topological network boundaries in general Resolved Topologies export.
     * Query and visualise velocities and strain rates at arbitrary points in networks.
       * Strain rates use logarithmic colour scale.
     * Optionally display total (accumulated) strain at arbitrary points:
       * Displays principal components and orientation.
       * Outward-facing red arrows for extension.
       * Inward-facing blue arrows for compression.
   * Reconstructing regular features using topologies:
     * Use both topological rigid plates and deforming networks to reconstructed regular features.
     * Incrementally reconstructs by plate ID in topological rigid plates.
     * Incrementally deforms in topological deforming networks.
     * Begin incremental reconstruction at a feature's time of appearance, digitisation time or present day.
     * Use specific topological layers or default to all loaded topologies.
     * Option to detect lifetime of each point in a geometry:
       * Oceanic points appear (mid-ocean ridges) and disappear (subduct).
       * Based on convergence velocity and distance to plate boundary during a plate/network transition.
   * Scalar coverages:
     * A new geometry type in a new layer type.
     * Each point in a multipoint/polyline/polygon has a scalar value associated with it.
     * For example, visualise mid-ocean ridge spreading rates and asymmetry calculated externally using pyGPlates.
   * Crustal thinning:
     * A specific type of scalar coverage containing crustal thickness values.
     * GPlates recognises this coverage type internally:
       * Uses deformation strain rates to evolve crustal thickness over time.
     * An input dialog generates initial crustal thickness points:
       * Uniform distribution of points within a topological rigid plate or deforming network boundary (with optional random offset).
       * Specify initial constant/flat crustal thickness at a past geological time.
     * Choose from a selection of built-in colour palettes to visualise crustal thickness variations over time.
     * Export crustal thickness values to GMT(xy) or GPML format.
     * Also added a separate export for deformation (strain rates).
 * Official public release of volume visualisation:
   * No longer require command-line switch to enable importing of 3D scalar fields.
 * Net rotation export:
   * Calculates and exports net rotation of the lithosphere (based on the method of Torsvik et al., 2010) using global coverages of dynamic plate polygons.
   * Net rotations are exported via the standard "Export…" tool, and by selecting the "Net rotation" export type.
   * Any dynamic plate-polygon data sets currently active in GPlates will be used as the basis for net rotation calculations. 
 * Improved OGR spatial reference system (SRS) support:
     * More complete support for OGR-supported files (e.g. ESRI shape file, OGR-GMT and others) which provide spatial reference system / projection information.
     * Any SRSs supported by the PROJ4 library should now be accepted by GPlates.
     * When saving to a file which had a non-WGS84 SRS associated with it, GPlates will prompt the user to export in either the original SRS, or in WGS84.
     * All other forms of file export in GPlates continue to use WGS84.
 * Improved handling of import / export directories
   * Now stores the last used directory for Project files.
   * More fine-grained support for both Feature Collection and Project folder preferences (can adjust through the Preferences (Ctrl+,) dialog).
 * Visibility of all layers can be toggled as a group using the new visibility icons in the Layers dialog.
 * Support non-zero central meridian in dateline wrapper.
 * In Pole Manipulation tool, only render highlights on geometries in visible layers.
 * Half-stage reconstruct method now defaults to a new version (3) of half-stage rotation calculation:
   * First reconstructs using only left plate to digitisation time of mid-ocean ridge (if digitised in GPlates 2.0 or above).
   * Then half-stage rotates from digitisation time to reconstruction time.
   * Changes to spreading asymmetry no longer move ridge to incorrect position (at digitisation time).
 * Can adjust line width in Graticule settings.
 * Assign Plate IDs dialog:
   * Time of appearance and disappearance are now separate options.
   * Added conjugate plate ID option.
   * Added option to only copy/assign requested feature properties that are allowed (by GPGIM) for the partitioned feature type.
 * No longer overwrite comment in rotation pole when using Pole Manipulation tool.
 * Intersection and distance queries:
   * Calculate minimum distance between two geometries:
     * Each geometry can be a point, multipoint, polyline or polygon.
     * Can use optional distance threshold and optionally returns closest positions and indices (into points or segments).
     * Polygons can be treated as non-solid (outline) or solid (geometries inside polygon are zero distance).
     * Uses a binary bounding small circle tree for polylines/polygons for efficient early rejection.
       * Traverses tree and uses minimum distance between two small circles.
   * Calculate optimal bounding small circle around two other small circles.
   * Added centroid calculation function for polygons/polylines based on weighting the segment lengths.
   * Have separate boundary and interior centroids for polygons:
     * The latter being closer to the centre-of-mass of polygon interior.
   * Fixed spherical version of centroid calculation for polygons:
     * For clockwise polygons the centroid was on the opposite side of the globe.
   * Point-in-polygon test defaults to adaptive:
     * Starts off low-speed then moves to medium and high speed as more point-in-polygon calls are made.
   * Can interpolate two polylines along small circles about a (stage pole) rotation axis.
   * Can tessellate polylines and polygons.
   * Added tessellation to dateline wrapper:
     * Useful for polygons crossing dateline in non-rectangular 2D map views (polygon section along dateline is curved).
 * Added support for donut polygons (containing interior holes):
   * GPML, OGR (shapefile), PLATES (line) and GMT(xy) readers/writers supported.
   * Feature query/edit dialogs display interior holes.
   * Supported by raster reconstruction, raster co-registration and filled polygons display.
   * Also supported by 3D scalar fields (cross-sections, surface masks and polygon walls).
   * Also supported by for point-in-polygon test, spherical area, centroid, orientation and dateline wrapper.
 * Colour palette improvements:
   * Available in raster, 3D scalar field and scalar coverage layers.
   * Remap the range using mean and standard deviation of the layer data (raster, 3D scalar field or scalar coverage).
   * Added a variety of built-in colour palettes based on ColorBrewer sequential and diverging colour scales.
 * Raster reconstruction improvements:
   * Connecting raster layer to polygons much more stable and noticeably faster (using our own polygon mesh refinement).
   * No more seams/cracks in raster between adjacent polygons (matching tessellation of shared polygon boundaries).
 * Added image compression to raster export (colour and numerical) for TIFF and Erdas formats.
 * Resolving topologies can also generate non-overlapping sub-segments shared by adjacent topology boundaries/networks:
   * No duplication/overlap in this set of segments (as opposed to boundary segments of each resolved boundary/network).
 * Only those layers and features that can actually contribute to resolved topologies are reconstructed:
   * Improves performance noticeably when topologies are used to reconstruct regular features.
 * Support partitioning of point/multi-point/polyline/polygon scalar coverages when assigning plate IDs.
 * Removed option to assign plate IDs to each sub-geometry of a feature. Now the only two options are:
   * Assigning based on the polygon that most overlap the *entire* geometry of a feature (all its sub-geometries combined), and
   * Partitioning into polygons.
 * Added Earth class for parameters such as Earth radius.
 * Topology geometry and network layers also support fill opacity/intensity.
 * Can merge selected (or all) rotation layers into one layer:
   * Avoids user having to manually connect multiple rotation files into a single rotation layer.
 * Added velocity delta-time options to velocity layer:
   * Can change delta-time interval, and choose 't+dt->t', 't->t-dt' or 't+dt/2->t-dt/2'.
   * Attempt to calculate non-zero velocities, when one of the times in delta interval is negative, by shifting time interval.
 * Can now import and register 'internal' Python scripts (stored in Qt resource files embedded inside application):
   * This will mean that important scripts such as colouring scripts will always get registered.
   * No longer need to ensure they are installed in the correct place on the user's file system for example.
 * Allow Python colouring classes to declare their own set of 'built in' config variants.
 * Added new colour styles with arbitrary colours (HSV configurable) and properties.
 * Colour vector geometries on the rear of the globe the same as the background colour:
   * Results in less visual interference/clutter for geometries on the front of the globe (when globe is semi-transparent).
 * Can create conjugate isochron linked to original (cannot yet follow links in GUI though).
 * Store +/- Infinity in GeoTimeInstant (for distant past/future).
 * GPlates Geological Information Model (GPGIM) updates:
   * Added stratigraphic timescale.
   * Added support for named ages (in contrast to absolute ages) with timescale information and uncertainty tracking:
     * GUI supports find-as-you-type named ages with timescale colouring.
   * Updated Mag Pick and Lineations.
   * Added XSLT stylesheet to make GPGIM XML viewable in web browser (with formatted clickable links and inheritance unrolling).
   * Added GPGIM XSD.
 * Write lat/lon/angle to PLATES rotation files with 4 digits of precision instead of 2.
 * Use the North pole (90,0) as the axis for zero-angle (identity) rotations when writing out PLATES rotation file.
 * When exporting reconstructed/resolved geometries to a single output file, retain shapefile attributes if the associated features all came from a single file.
 * OGR geometry exporter can write multiple geometries as a single feature (if geometries came from same feature).
 * Added progress bar when adding depth layers during 3D scalar field import (and when adding time sequence during time-dependent raster import).
 * Remove depth layer raster cache files after importing 3D scalar field if the cache files didn't exist prior to the import:
   * Frees the user's disk space of the cache files generated during import process.
 * When importing 3D scalar field, read georeferencing and SRS from first depth layer raster (if has that info):
   * Otherwise ask user for georeferencing (and assume WGS84 SRS).
 * Compiling software:
   * Remove dependency on ImageMagick.
   * Add "/LARGEADDRESSAWARE" for Win32 builds to enable 4Gb (versus 2Gb) for 32-bit builds on a 64-bit Windows OS.
 * Fixed horizontal lines in 2D map view for grid marks sample data.
 * Fix mixing of single and multi polylines/polygons in OGR-GMT files.
 * Fix error adding delaunay points from a topological line that is, in turn, made from a series of points.
 * Fix unhandled math exception in 2D map projection renderer when dateline wrapper creates a polygon arc with antipodal end points (at North and South poles).
 * Fixed infinite loop bug in polyline intersections code (caused hang when assigning plate IDs with specific dataset).
 * Fixed bug in polyline intersections code (incorrect reversal of inside-outside test).
 * Avoid potentially incorrect result in polyline/polygon partitioning when encounter two zero-length great circle arcs.
 * Fixed so that points equal (within epsilon) to a great circle arc's start point should be considered to lie on the arc.
 * Fixed another infinite loop bug in polyline intersections code (two overlapping arcs assumed pointing in wrong direction relative to each other).
 * Fix two polylines intersecting at a common vertex (prevent tunnelling through each other without being noticed).
 * Fixed rendering of filled polylines in 2D map views.
 * Fixed bug in polyline/polygon (outline) centroid caused by point-in-polygon test incorrectly passing polygon consisted of coincident points.
 * Fix dateline wrapping bug where a small polygon incorrectly covers the entire globe/map if intersects North or South pole (on a polygon segment that lies on the dateline plane).
 * No longer update stage pole location when Enable Pole checkbox is not checked (also update when checkbox is checked again).
 * Fixed velocity layer options not updating when changing the solve-velocities-method.
 * Fixed azimuthal equal area projection exception when unprojecting a point that is coincident with the centre of projection.
 * Fixed flickering cross-sections in 3D scalar fields (bug in mapping OpenGL buffers for streaming).
 * Fixed crash when reloading an age grid or 3D scalar field.
 * Unmap age grid colour palette when 'age' button clicked to avoid incorrect colours.
 * Fixed terminating due to uncaught scribe exception when encountering a corrupt session archive.
 * Fixed open file read error not showing in Read Errors dialog (when a feature collection file is missing).
 * Fixed CPT file read errors not showing in Read Errors dialog.
 * Fixed main globe/map view (and associated draw style's preview icon) not getting updated when the draw style's configuration changed (eg, changing colour or palette).
 * Fixed crash when changing draw style configuration parameters in GUI or when removing a draw style in GUI.
 * Fixed infinite recursion bug in model notification. This was noticed when importing a raster.
 * Fixed SVG export of 3D scalar field isosurfaces (on Mac OS X) which appeared to be incorrectly rotated and offset from centre of globe.
 * Fixed 3D scalar field cross-sections generating 'invalid operation' in OpenGL on Mac OS X (during draw call due to shader program being invalid).
 * No longer require first and last point of GML polygon to be identical (when reading GPML file):
   * Some GPML files have only three points (instead of the required 4 points - since first and last should be identical) since really only need 3 points for a polygon.
 * No longer show the GPGIM version warning dialog when overwriting a GPML file with an older version.
 * Fixed Move Vertex tool (and other geometry tools) not working with flowlines.

GPlates 1.5
===========

Changes since 1.4:

 * Added project files:
   * Implemented new scribe/serialisation system for backward/forward compatible transcribing of sessions/projects.
   * Currently saves same session state as GPlates 1.4 (but also to project files) - future releases will save more.
 * Added new kinematics tool:
   * displays table of latitude, longitude, velocity, and velocity-related quantities for a given lat-lon point, plate ID, and range of times
   * displays graph of above quantities against time	
   * exports table to text file
   * kinematic tool settings dialog to change details of the velocity calculations
   * kinematic tool settings are saved in user preferences
   * auto-fills point data from focussed feature
   * auto-fills time ranges from animation settings
 * Added support for import and export of GeoJSON format feature collections.
 * Flag read error when OGR can't find geometries in a multi-geometry.
 * Fixed issue with overwriting OGR-format files to multiple folders:
   * i.e. when exporting collections with multiple geom types.
 * Fixed crash on GPlates shutdown (in debug build) on Windows due to Windows using a separate memory heap per DLL.
 * Fixed crash in raster colour scale when colour palette has no colour entries.
 * Increased upper limit on Generated CitcomS Velocity Domain Points diamond size to essentially unlimited (2^30 + 1).
 * Create Feature Dialog improvements:
   * Allow user to create a conjugate feature for any feature that has a conjugate plate id.
   * Remember all properties of previously digitised feature so can re-use for next feature (if same type).
   * Select same feature type each time Create Feature dialog is invoked.
   * Remember previous selection when choosing feature collection or choosing properties.
 * PLATES format reads conjugate plate ids for feature types that support it (according to GPGIM) instead of just for Isochrons.
 * Fixed features not getting highlighted in Modify Reconstruction Pole tool.
 * Fixed incorrect position of stage pole in MovePoleWidget.
 * Updated CPT parser for support GMT 5.
 * Export GUI options for forcing polygon orientation during resolved topology (general) export.
 * Partial support for Mac Retina displays (fixes blurry fonts/dialogs but not the globe/map view).
 * Pop up warning message when 'surface polygons mask' is not supported for 3D scalar fields.
 * Added dialog for configuring rendered geometry parameters for canvas tools.
 * Fix crash on some graphics hardware when selecting 'surface polygons mask' on isosurfaces.
 * Export a raster's spatial reference system (eg, for ArcGIS).

GPlates 1.4
===========

Changes since 1.3:

 * Export (numerical) rasters:
   * Export raster layers to one raster file per visible layer.
     * User specified lat/lon export region and resolution.
   * Added GDAL and RGBA raster writers.
     * GDAL writes colour (as RGBA bands) or floating-point (with NaN no-data value).
    * RGBA writes only colour.
   * Supported numerical raster formats: NetCDF, GMT NetCDF, GeoTIFF and Erdas Imagine.
   * New supported colour raster formats: GeoTIFF and Erdas Imagine.
   * Surface relief lighting included in colour raster export.
   * Colour palette used to export numerical rasters as colours (in colour export).
   * Statically link PROJ4 library to GDAL.
     * Avoids runtime DLL/SO load error when loading raster with non-default spatial reference system.
   * Completed emulation of bilinear filtering of *floating-point* textures in all fragment shaders requiring it.
     * Incorporate pixel coverage in bilinear filtering to avoid wrong values at boundary between covered and non-covered areas.
   * Export raster statistics (notably Erdas Imagine) to avoid black raster in ArcGIS.
 * Import raster improvements:
   * New raster formats: ERMapper, Erdas Imagine and GeoTIFF.
   * Import georeferencing from source raster file.
     * Skip georeferencing dialog wizard page if raster specifies georeferencing.
   * Support inbuilt raster spatial reference systems (projection included).
     * Enables conversion from raster georeference coordinates to WGS84 coordinates (GPlates default).
   * Support RGB(A) rasters with GDAL raster reader.
     * Now use GDAL to read TIFF rasters (instead of Qt) since GeoTIFF files have georeferencing and spatial reference systems.
   * Improved performance when importing very large rasters (mostly GDAL-based rasters but also RGBA rasters).
     * Calculate statistics ourselves to avoid GDAL scanning entire file.
     * Allow reading raster decompressed images that are greater than 32-bits (4Gb) in size.
   * Fix GmlPoint so it can accept a position outside valid lat/lon range.
     * Needed for georeferenced origin of raster in *projected* coordinate system.
 * Fixed inability to export images (screenshots) on systems supporting GL_ARB_vertex_buffer_object but not GL_ARB_pixel_buffer_object.
 * Fixed missing thin sliver triangles at top and bottom of map view (four triangles in total).
 * Fixed rare missing georeferenced raster tiles in reconstructed raster (map view).
   * Possibly solves corrupt export of 3D scalar fields to SVG format.
 * Fixed raster map view not correctly updating world transform.
 * Improved performance of rasters in map view - now require fewer source raster tiles.
 * Using HTML in export description labels.
 * Added reconstruction files to flowline, motion-path, reconstructed geometry and topology exports.
 * Fixed wrong order of arguments in motion-path/flowline OGR export.
 * Replaced shp-export-related occurrences of PLATE_ID with PLATEID1.
 * Added spreading asymmetry to exported shapefiles.
   * Also added to import mapping.
 * Using default geometry type when creating features from OGR sources.
 * Prevent negative times when editing time sequence.
 * Fix flowline creation issues by demanding present-day time in array-of-times and preventing its deletion.
 * Allow user to specify lat/lon region when generating velocity domain nodes in lat/lon space.
 * Render direction arrows (eg, velocities) as proper 3D (cylindrical body and head) with lighting.
 * Fixed map view mouse drag location lagging by one frame/update.
 * Fixed 'Reset Rotation' button not enabled in Manipulate Pole tool.
 * Fixed populated geometries in Manipulate Pole tool from disappearing when changing the reconstruction time.
 * Add circularly-symmetric symbols for rendered radial arrows.
 * New Move Pole canvas tool:
   * Used to specify pole about which Manipulate Pole tool adjusts rotation.
   * User can drag pole location (arrow) with mouse.
   * User can change pole location via text entry (or spinboxes).
   * User can set pole location to north pole ('constrain latitude') for Virtual Geomagnetic poles.
   * User can constrain pole location to moving/fixed stage pole of focused feature.
     * Shows current moving and fixed plate ids.
     * Checkbox to track and update stage pole location over time.
 * New lighting canvas tool (currently disabled until official release of volume viz. in 1.5):
   * Enables/disables lighting per primitive type.
   * Optionally detach light direction from camera.
   * User drags light direction (arrow) with mouse.
   * Support directional and non-directional (radial) lighting on rasters both with and without surface relief.
 * Removed dependency on ImageMagick.
   * Also solves OpenCL problem with Snow Leopard builds running on Lion and above.
 * No longer show warning dialog when loading files (due to different GPGIM version) - was too irritating.
   * We still show a warning dialog when saving (when GPGIM version differs).
 * Canvas tool tab icons are now static again (to avoid confusion).
 * New SubductionZone properties 'gpml:subductionZoneSystem' and 'gpml:subductionZoneSystemOrder'.
 * A new colour palette for deformation networks.
 * Changes to loaded data (during reading) are now marked as unsaved changes.
 * Fix half-stage rotation to have multiple stages instead of just one stage.
   * GPGIM now has version 1 and 2 half-stage rotations - new files use version 2.
 * Add spreading asymmetry to mid-ocean ridges.
 * Avoid out-of-memory error when compiling on windows with pre-compiled headers.
   * Happens on 12-core Windows 8.1 machine in Visual Studio 2005.
 * Allow no variation in export (template) filename when exporting a single frame.
   * In case user does not want the reconstruction time in the single exported filename.
 * Fix stage rotations when loading PLATES rotation file so that each stage rotation takes the short way around the globe (instead of long way).
 * Fixed "New Feature Collection" being displayed after importing a raster or 3D scalar field.
 * Enable forcing use of python embedded in application (bundle).
   * Set program name properly and set Py_IgnoreEnvironmentFlag before initializing python interpreter.
 * Fixed OpenGL invalid enum error (GL_INVALID_ENUM) when creating render buffer object for depth/stencil buffer.
 * Fixed crash bug due to dangling parent pointer in FeatureHandle when parent FeatureCollectionHandle is destroyed but its children are not.
 * Co-registration:
   * Improved retrieval of feature's birth attributes.
   * Improved retrieval of seed features.
   * Improved data mining Orange widgets layout.
 * Create Feature dialog:
   * Add the 'relative plate id' to the common properties page for those feature types supporting it (currently only MotionPath).
   * The default topological polygon or network feature type is 'gpml:TopologicalClosedPlateBoundary' and 'gpml:TopologicalNetwork'.
   * Added GPGIM support for 'gpgim:defaultGeometryProperty' for feature types with more than one geometry property.
     * Defaults to the appropriate property name for the digitised geometry property.
   * Remember the previous feature type selection when switching pages.
     * But when invoking dialog set to a default feature type (based on geometry property type).
 * Dateline wrapper now outputs the original input polyline or polygon if it got swallowed up by the dateline (because lay entirely *on* the dateline).
 * Set dateline wrapping on by default for saving and exporting to Shapefile format.
 * Report error to console for duplicate reconstruction tree edges.
 * Fixed MotionPath colour differing from seed colour when changing the colour scheme.
 * Force user to specify a 'gpml:relativePlateId' when creating a MotionPath feature (even if it's zero).
 * Velocities:
   * Added velocity smoothing for domain points near plate boundary when calculating velocities on surfaces.
   * No velocity boundary smoothing for domain points within a deforming region.
   * Add export velocity smoothing options to all velocity exports (not just TERRA).
 * GeometryOnSphere proximity tests also return the closest point on the geometry (from the test point).
 * Volume visualisation:
   * Improved iso-surface performance when using surface fill mask with no visible walls.
     * Uses min/max depth range of volume fill regions to limit the range over which rays are sampled (instead of sampling through entire globe).
   * Merged isosurface ray-tracing shader program optimisations from Tobias Pfaffelmoser and Michael Kern.
   * Added support for regional (non-global) scalar fields in shader programs and scalar field import.
   * Support transparent colours when rendering isosurface and cross sections of 3D scalar fields.
   * Separate input channels for cross sections and surface polygons mask (no longer share same input channel).
     * Surface polygons mask can now apply to cross-sections.
    * Added option to disable surface polygons mask without having to disconnect input layers.
   * Colour palette improvements;
     * Optionally remap scalar/gradient palette range.
     * Adjust range using mean and standard deviation of scalar field.
    * Separate controls for scalar value and gradient magnitude value.
     * Separate colour palettes for scalar and gradient colour modes.
     * Added default colour palette for gradient magnitudes.
   * Increase iso-surface performance, when rotating globe with mouse, by reducing iso-surface sampling rate by a user-defined factor.
   * Only show 3D scalar field GUI controls that apply to the current settings of the controls.
 * Fixed framebuffer completeness error when using stencil buffer without depth buffer.
 * Allow more than one feature with same feature id when searching topological sections.
   * Allows comparing two topological datasets (from two different files) with same feature ids.
   * User must limit each topological dataset/layer to search only its own topological sections (not all global sections).
 * Avoid aborting GPlates when encounter unsupported field in CPT file.
 * Disable a total reconstruction sequence (or pole within a sequence).
 * Fixed "Show Point/Line/etc Geometries" hiding geometries in the canvas tools (workflows).

GPlates 1.3
===========

Changes since 1.2:

 * New GROT (GPlates Rotation) file format:
   * Extended PLATES4 rotation format to include a much richer set of metadata attributes.
   * Metadata is specified using @Attribute"Value".
     * Can have multi-valued attributes @Attribute"Value1|Value2|Value3" such as @MPRS"101|NAM|North America".
     * Nested attributes can be specified as @Attribute:subattribute"Value" such as @MPRS:pid"101".
	 * Can nest even further with @Attribute:subattribute:subsubattribute"Value" such as @DC:contributor:id"RDM".
   * Dublin Core Document Metadata describing file content (attribute @DC).
   * Supports standard attribute aliases such as AU --> DC:contributor:id (Author).
   * Inclusion of Hellinger rotation statistics for the individual rotation poles.
   * Simple commenting/uncommenting of rotation poles using '#' (previously: 999).
   * Inclusion of bibliographic and reference data for the whole rotation file and individual rotations.
   * Information on Geological Time Scales.
   * New "Moving plate rotation sequences" and associated metadata.
   * Display and edit metadata.
   * Load and save ".grot" file retaining non-metadata comments in original line sequence in file.
 * Surface relief lighting:
   * A single channel height field raster is converted into a (multi-resolution) surface normal map.
     * Conversion performed on GPU for improved performance on systems with sufficient OpenGL support.
   * The diffuse lighting of this normal map modulates the colour of a second raster.
   * Default heightfield scale based on raster statistics.
   * User can adjust default heightfield scale to increase/decrease relief lighting effect.
   * Currently lighting is non-directional.
 * Integrated Orange and GPlates using socket-based command server built into GPlates. Orange widgets include:
   * Getting the birth time of seed features.
   * Getting the co-registration result, at a specified time and specified association, for all seed features.
   * Getting a time sequence of co-registration results for a specified association for all seed features.
   * Getting the co-registration result of a specified association for all seed features each at their respective birth time.
 * Added socket-based command server:
   * Clients can connect to a running GPlates executable and issue commands.
   * Currently commands are co-registration based including retrieving seed and associations, begin time, etc.
   * Is used by Orange data mining widgets to query co-registrations results from GPlates.
   * Defaults to localhost and port 9777.
 * Completed raster co-registration data mining front-end.
 * Volume visualisation:
   * Extended OpenGL support for ray-tracing shader (multiple render targets, texture arrays, geometry shaders).
   * Import sequence of 2D floating-point rasters (one per depth layer) representing scalar field.
     * GPML file linked to GPSF file containing cube map format 3D scalar field data and statistics.
   * Load colour palette used to convert scalar value or gradient magnitude to colour.
   * Colour by depth (iso-surface only) or scalar value or gradient magnitude.
   * Colour-by-depth:
     * Front side of iso-surface blends from blue at core to cyan at surface.
     * Back side of iso-surface blends from red at core to yellow at surface.
     * Front side faces regions with higher scalar value than the iso-surface.
   * Render vertical cross-sections (depth-extruded surface polylines).
   * Interactively manipulate surface polylines to change cross-sections.
   * Render surfaces of constant scalar value (iso-surfaces).
   * Render single deviation window:
     * One opaque iso-surface and two surrounding (+/- delta) semi-transparent iso-surfaces.
   * Render double deviation window:
     * Two single deviation windows at different isovalues.
   * 'Surface' deviation window renders intersection of deviation window with surface of globe:
     * Rendered as solid fill or isolines.
   * Supports limiting iso-surface rendering to a specific depth range.
   * Supports limiting iso-surface rendering to regions under surface polygons:
     * Supports vertically-extruded walls at surface polygon boundaries.
     * Render iso-surface single/double deviation window on vertical walls as isolines.
   * Globe is semi-transparent when rendering 3D scalar field:
     * Opaque surface geometries (polylines, rasters, filled polygons) can occlude scalar field.
     * Scalar field is not ray-traced for those pixels occluded by surface geometries.
 * Deformation:
   * Calculates instantaneous strain rates for each triangle in topological network triangulation.
   * Displays dilitation (and second invariant of) strain rate as palette coloured triangles.
   * Points of feature geometry falling inside a topological network are incrementally deformed over time span:
     * Time span and increment determined by user.
	 * Rigidly reconstructed outside time span and outside network's deformation time period(s).
	   * Or inside a rigid interior block of an active topological network.
	 * Incremental deformation due to interpolation of rotations of nodes of network's triangulation.
	 * Geometry deformation stored in a look up table containing deformation time spans.
     * Can calculate/display velocities at deformed geometry points.
	 * Deformed geometry points accumulate strain over time.
	   * Accumulated principle strain can be displayed as cross symbol.
   * Avoid topological network dateline/pole issues by using azimuthal equal area projection.
   * Fixed occasional missing network node velocities:
     * Velocities at topological network nodes no longer need a velocity layer to calculate.
   * Velocity now calculated using rotation tree(s) of plate/network-nodes (that velocity point is inside).
     * Previously used default rotation layer.
   * Velocities work with network interiors that are resolved topological *lines* (ie, two levels of velocity indirection).
   * "Reconstructed Geometries" layers connected to (deformed by) topological network layers cannot provide topological sections for any topology layers.
   * Added optional topological sections layer connections to topology layers.
     * Enables duplicating topology layers but with different topological sections.
     * No connections defaults to global lookup of topological sections.
	 * One or more connections limits search to connected layers.
   * Performance optimisations including:
     * Filled topological network rendering performance improved significantly.
     * Avoid expensive generation of 'constrained' delaunay triangulation where possible.
       * Such as PolygonOnSphere network boundary for point inclusion test instead.
     * Use spatial sort when generating delaunay triangulation.
	 * Avoid velocity/deformation calculations unless needed.
   * Handle points falling in sliver between polygon-on-sphere network boundary and convex hull of delaunay triangulation.
     * Due to convex hull in 2D non-gnomic projection.
 * Added support for reading OGR GMT format files:
   * Currently supports Shapefile and OGRGMT formats.
   * Re-factored Shapefile I/O to support generalised OGR library formats:
   * Fixed Shapefile loading prematurely finishing when encountering null geometry.
   * Avoid exporting flowline/motion-path seed points during reconstructed feature geometry export.
   * Only require either a begin or end time Shapefile/OGR attribute in read file to generate a GML time period property.
   * Support half-stage rotation feature types in Shapefile/OGR (save/load reconstruction method and left/right plate ids).
 * Added 'GPGIM_TYPE' field to Shapefile/OGR containing full GPGIM feature type (in addition to regular 2-letter code).
   * Preference given to 'GPGIM_TYPE' if present with fall back to 'TYPE'.
   * Both saved on writing with 'TYPE' to eventually be phased out in a future release.
 * New resolved topological 'lines':
   * Used to create dynamic polylines (instead of dynamic polygons).
   * Can only reference static reconstructed features.
   * Dynamic plate polygons and networks can reference dynamic lines in their boundaries (and interiors).
 * Separated Build Topology tool into three tools (for lines, polygons and networks).
 * Improved performance when building/editing a topology with lots of sections.
 * Canvas tool workflows:
   * Canvas tool bar has a tab for each workflow.
     * Avoids running out of space for canvas tool buttons.
	 * Groups workflow related tools together.
   * Canvas tool bar is dockable.
 * SVG export:
   * Includes rasters, 3D scalar fields and filled polygons:
   * Each raster and scalar field and filled polygon layer is embedded as a single image.
   * Image dimensions are user-specified and can be arbitrarily large.
 * Centralised GPlates Geological Information Model (GPGIM):
   * GPGIM stored in a single XML file.
   * GPGIM XML file stored in GPlates executable as resource and read in at startup.
   * All dialogs, etc, in GPlates query the centralised GPGIM.
   * Create Feature dialog provides list of non-common properties to add to created feature.
     * Also forces user to create non-optional properties.
   * Add Property dialog highlights those properties allowed by the feature's type.
   * Change Feature Type dialog allows user to change property names of non-geometry properties.
     * If property type is same in previous and new feature type.
   * Topological lines/polygons no longer feature-type-specific.
     * Can be used in place of regular static geometries.
   * Support for upgrading a feature (such as merging topological network boundary and interior properties into single network property).
   * Attempts to fix time-dependent property errors on reading by converting between time-dependent types where possible.
   * 'gpml:UnclassifiedFeature' is now special case and can accept 'any' number of 'any' GPGIM properties.
 * Added finite rotation calculator dialog:
   * Add and subtract finite rotations, calculate a finite rotation between two points and rotate a point using a finite rotation.
 * Added velocity domain generators for Terra and Lat/Lon meshes.
 * Export velocities to Terra (text) format.
 * Export velocities to CitcomS global format.
 * Added GMT velocity export. Exports domain point (lon/lat), velocity as X/Y/Z or colat/lon or magnitude/angle, and plate id.
 * Added file output options to velocity export.
 * New About Data Sources menu item opens web page.
 * Sort by filename in Manage Feature Collections dialog.
 * Added save, reload and unload 'selected' groups of files in Manage Feature Collections dialog.
 * Save only modified files when Save All button clicked in Manage Feature Collections dialog.
 * Filled polygons in 2D map views.
 * Map background restricted to map lat/lon region - outside the map region is now black.
 * Improved filled polygon performance.
   * Now use stencil buffer to generate polygon interior fill mask.
 * Fixed filled polygons not always sorting by plate ID.
   * Ensure rendered geometries draw order not affected by using spatial partition.
   * Reconstructed feature geometries now sorted by plate ID.
 * Calculate velocities in "Calculated Velocity Fields" layer:
   * 'of domain points' - calculate velocities of reconstructed points.
   * 'of surfaces' - calculate velocities of surfaces that intersect domain points.
 * Velocity layer inputs connections are now green "Reconstructed Geometries" layers instead of feature collections.
 * Velocity layer no longer has rotation tree input connection (rotations provided by velocity domain input layers.
 * Can calculate velocities at half-stage rotation features (eg, mid-ocean ridge) and at seed points of flowlines.
 * Fixed incorrect velocities when anchor plate id is non-zero.
 * Allow velocity domain points with non-zero plate id to rotate when calculating velocity 'by surfaces'.
 * Added velocity arrow screen space density controls.
 * Added velocity arrow body/head size controls.
 * Improved performance of velocity arrow rendering at high zoom levels (view frustum culling).
 * Fixed out-of-memory crash when zooming to high levels with velocity arrows loaded.
 * Merged command-line version of GPlates into main GUI version of GPlates.
 * Added command-line command 'equivalent-total-rotation'.
 * Added stage rotation command-line command with asymmetric spreading rate option.
 * More GUI options for rotation export (stage and total).
 * Added "%R" for default reconstruction tree layer in export dialog template filename.
 * Add export file option to save each exported file to its own directory.
 * Separated resolved topology export into a 'Citcoms' specific export (the current export) and a new generic export:
   * Generic export similar to reconstructed feature geometries export.
 * Support filled polylines (in addition to filled polygons).
 * Can choose focused feature by clicking interior of filled polyline/polygon (including filled topological networks).
 * Added fill polygon opacity and intensity.
 * Raster reconstruction now works with 'self-intersecting' polygons.
 * Added age CPT button in raster layer (for when loaded raster is an age grid).
 * Age grid test done in hardware shader program for runtime systems that support OpenGL shaders.
 * Age grid masking now also works for un-reconstructed rasters.
 * Exposed unexpected highest detail level in reconstructed raster (due to cube map non-uniformity).
 * Using pre-multiplied alpha for rasters to solve the alpha-blending artifacts (due to intermediate render textures).
 * A layer can now connect to itself.
 * Allow multiple exports of the same export format and type.
 * Ability to edit an export configuration.
 * Increased zoom level by a factor of 10.
 * Added tiled rendering to enable rendering to arbitrary dimension images.
 * Export arbitrary resolution rasters.
 * Fixed issues with low-resolution rasters:
   * Fixed holes in rasters in the map views.
   * Fixed assertion failure for rasters of dimension < 128 pixels.
   * Fixed too low raster mesh tessellation.
 * Improved performance of geometry reconstruction on Windows platform.
 * Enable 4Gb of virtual address space for GPlates on Windows instead of 2Gb (default for Windows).
 * Symbols for point geometries:
   * Symbols are mapped to feature types.
   * Symbol types include squares, circles, triangles and crosses.
   * Symbols are scaled and can be filled or outline.
   * Mapping of feature types to symbol type, scale and fill are controlled by loading a symbol file that applies globally.
 * Fixed GPlates continually restarting itself if malfunctioning python installation set to GPlates->Preference->Python->Python Home.
 * Copy python framework into MacOS bundle and fixup internal references.
 * Fixed crash if quit GPlates just after splitting a feature.
 * Workaround for pixmap corruption in Manage Colouring dialog when using VirtualGL.
 * Fixed Click Geometry tool not sorting closest to furthest from mouse click position.
 * Fixed topological features being included in green "Reconstruct Geometries" layer.
 * Fixed raster seam along bottom and right edges when reconstructed.
 * Fixed incorrect view-frustum culling of lowest resolution raster level-of-detail.
 * Fixed bug storing GDAL raster statistics in raster cache file.
 * Fixes for trying to access rotation axis of a great circle arc in polyline intersection code.
 * Fixed reconstructed raster with age grid showing regions outside age grid coverage once their plate ID rotation ran out and became identity.
 * Fixed visual artifacts in age-masked reconstructed rasters due to combining source raster and age mask into a render texture before rendering to the screen.
 * In co-registration, if seed is inactive at a reconstruction then seed row is NaN.
 * Fixed issues with command-line assign-plate-ids command crashing and not assigning plate ids outside valid time period.
 * Fixed export of resolved topologies to individual files (separated by plate id) only writing one resolved geometry per plate id file.
 * Fixed colour-by-age should be relative to feature's begin time instead of present day.
 * Fixed CPT parsing error at space in quoted strings.
 * Fixed PLATES line format having multiple "<identity>" tags.
 * Fixed lat/lon exception when importing rasters.
 * Store all OpenGL shader source files as resources in GPlates executable.
 * Fixed reading wrong header lines after PLATES features with no geometry.
 * Fixed long shutdown time for GPlates when lots of features are loaded (due to O(N^2) sort of reconstructed geometries).
 * Greatly improved load time when adding tens of files (or layers) - temporarily disconnect from Qt layout management.
 * Fixed slow file unloading for many files (avoid reconstructing after each file is unloaded).
 * Added projection shortcuts Ctrl+1, Ctrl+2, etc for switching between projection views.
 * Fixed incorrect zoom and camera location when switching from a map view back to the 3D globe view.
 * Prevent saving 4-digits plate ids to PLATES format files (pops up messages and deletes file).
 * Fixed visual layers dialog not positioned correctly relative to the main window on MacOS.
 * DrawStyleDialog no longer relies on updating a canvas - instead gets canvas to render directly to an image.
 * Fixed incorrect velocities and incorrect positions of mid-ocean ridges (and flowlines):
   * Occurred when wrapping the rotation angle of a total reconstruction pole (in rotation file) at -180 or 180 degrees.
 * Fixed bug in half-stage rotation where left plate rotation was not getting composed into result:
   * Occurred when the relative rotation between left and right plates wais the identity rotation.
 * Display and export motion paths even if the current reconstruction time is not between the end samples of the times array.
   * This is useful when creating multiple motion paths to represent a single hotspot trail (the various plates that the hot spot intersects).
 * Fixed isochons colouring by first found plate id instead of 'reconstruction' plate id.
 * Fixed pole manipulation tool not re-populating geometries when new focused feature (with a different plate id) is selected from the Click Feature table.

GPlates 1.2
===========

Changes since 1.1.1:

 * Total Reconstruction Sequence Editing / Creation:
   * Total Reconstruction Sequence dialog extended to allow creation, editing and deletion of Total Reconstuction Sequences (TRSs).
   * Newly created TRSs can be saved to existing rotation files, or to a new rotation file.
     (Note: disabled poles / TRSes are not editable or creatable at the moment).
 * Small Circle Tool:
   * Replaced Small Circle Manager with a canvas tool.
   * Can create small circles directly on the globe (or map) using the mouse.
     * Click once for centre, click again to define point on radius of the circle. To define multiple radii with the same centre point, click once for centre, shift-click to define radii, and click again to define point on radius of last circle.
     * Create small circles (as before) by specifying the centre and radii, and generating the centre from a stage pole if desired.
     * Create small circle features which can be: exported to gpml, imported from gpml, and visualised as a layer.
     * Query and edit small cirles through the Click Feature canvas tool.
 * Calculate Rotation Pole tool field automatically filled from an already-selected pmag VGP.
 * Added synchronisation with an external program to allow viewpoints, reconstruction time, etc to remain in sync:
   * Message communication using strings with parameters via standard input/output.
 * Colouring dialog per visual layer (instead of per feature collection):
   * Can activate colouring dialog via layer.
 * Python colour scripting:
   * Existing hardwired colour schemes implemented as python scripts.
   * Users can create/register their own colouring via python scripts.
   * Python script can request GUI configuration options like strings, floats and colour palettes.
   * Load/save python script configuration.
   * Python API to query feature properties (when implementing python colouring scripts).
 * Dateline wrapping option when saving Shapefiles:
   * Wraps polylines and polygons to the dateline.
   * Also available as option when exporting to Shapefile format.
 * New Log dialog:
   * Displays low-level debug, warning and error messages in a dialog window.
   * Messages can be filtered with a text string entered by the user.
   * Messages can be copy'n'pasted in order to, for example, email bug reports to the GPlates developers.
   * Removes duplicate messages - shows message once along with a count of the number of identical messages.
 * New Preferences dialog:
   * A user interface to view and modify settings and parameters used in GPlates.
   * Currently available settings include animation range, export directory, maximum number of save/restore sessions, network proxy settings and python paths.
   * The "Advanced" pane lists all settings in table format but is *only* for advanced users.
   * Network proxy settings used for WFS queries.
 * Significant overhaul of OpenGL rendering engine to both facilitate shader programs and allow feedback from GPU to CPU:
   * Added floating-point support (OpenGL texture and shader program) throughout raster reconstruction pipeline.
   * Removed render graph since the extra complexity is not needed and interferes with CPU->GPU->CPU feedback.
   * Individual GLStateSet's replaced by single GLRenderer interface (from rendering client's point-of-view).
 * Raster co-registration data mining front-end:
   * Required overhaul of OpenGL rendering engine.
   * Can co-register point, polyline and (filled or unfilled) polygon geometries with a (reconstructed) raster containing numerical data.
   * Supports mean, standard-deviation, minimum and maximum - percentiles/median to come later.
   * Entirely hardware accelerated by the graphics card for performance (requires OpenGL 2 compliant graphics).
   * Core is implemented but not yet available.
 * Reconstructed rasters in the map views:
   * Supports all raster variations (reconstructed, time-dependent, age-grid and combinations of these).
   * Supports level-of-detail and view-frustum culling for optimal efficiency.
   * Uses dateline wrapper (in central meridian reference frame) to clip polyline/polygon geometries.
 * Added raster opacity/intensity (user-specified per layer).
 * Improved interactivity with rasters for very high resolution rasters.
   * New GPlates raster streaming tiled file format for raster file cache to minimise disk file seeks ("*.gplates.cache").
 * Added bilinear filtering for reconstructed rasters and filled polygons for visual improvement.
 * Fixed holes appearing in large filled polygons.
 * Connected digitisation tool to WFS query - digitised geometry can be used for WFS region query.
 * Render directly to colour preview icon to avoid off-screen render issues on some systems (due to OpenGL pixel ownership test).
 * Assign Plate ID dialog uses layers instead of files to select the partitioning polygons (one or more layers).
 * Assign Plate ID dialog has option to ignore the time period of the feature(s) being partitioned.
 * Can assign Plate IDs using topological networks.
 * Fixed extremely long running time for Assign Plate ID assignment.
 * Fixed Assign Plate IDs bug crash (caused by not checking for zero-length arc before accessing its rotation axis).
 * Significantly reduced delay when clicking on a feature when a very large number of features are under mouse cursor (eg, 2,000 features).
 * Fixed exponential loading times when restoring many files during a session restore.
 * PropertyValueFinder works with time-dependent properties.
 * Temporary hack to merge adjacent point features, along topological polygon or network boundary, into a single polyline during export.
 * Replaced FWtools with GDAL and PROJ4 - the former uses old python (2.3) and VC runtime (7.1) preventing pygplates from loading into ArcGIS.
 * Fixed topological sections sometimes not getting found when no rotation file loaded.
 * Fixed export of duplicate reconstructed geometry, flowline, motion path, or resolved topology when highlighted (in-focus).
 * Reverse reconstruction included in reconstruct method framework.
 * Clone Geometry tool can clone topological plate polygons.
 * gpml:OldPlatesHeader is read-only as far as user edits are concerned.
 * Fixed slow saving to Shapefiles.
 * Fixed memory leak exporting velocities.
 * Fixed extra topological geometry listed in focused features table when clicking on a topological network boundary.
 * Velocities calculated in microblocks without needing to connect (or auto-connect) their static polygons layer to the velocity layers.
   * Now calculated as part of the topological network (since microblocks belong to the network)
 * Fixed certain Qt library files not getting copied into GPlates Mac bundle (such '.nib' files) - by updating cmake scripts to cmake version 2.8.4.
 * Fixed error reading conjugate plate id from gpml file when it was saved from a Shapefile.
 * Fixed incorrect generation of empty feature IDs on Shapefile import - empty fields now result in a new feature ID.
 * Reconstructed raster polygons sorted by plate id to ensure consistent, reproducible visual results.
 * Allow PLATES4 line/rotation format readers to read non-ascii (unicode) filenames.
 * Fixed draw style settings not adjusting to a layer order change.
 * Fixed bug in VGP pole calculator.
 * Fixed bug in quaternion slerp that, on rare occasions, caused rotation to take the longer path around a pole (instead of shorter path).
 * Fixed corrupt colour previews problem on some systems.
 * Fixed inability to enable a layer if layer is disabled, then GPlates closed, then GPlates opened, and then re-opening the session.
 * Fixed rare crash assigning plate IDs due to numerical precision polyline intersection issue.
 * Fixed erratic motion of globe when dragging with mouse.

GPlates 1.1.1
=============

Changes since 1.1:

 * Fixed empty layers loaded into session.
 * Fixed save/restore of sessions containing feature collections not associated with a file (not yet saved).
 * Fixed file-loading error (in old session versions) causing failure to create layers for new session versions).
 * Fixed 'fill polygons' affecting wrong layer after visual layer reordering.
 * Fixed filled polygons drawn as square tiles when zoom deep enough.
 * Fixed filled polygon checkbox not working on 'Reconstructed Geometries' layers in some situations.
 * Small speed improvement to filled polygons.
 * Fixed reconstructed raster not using age grid smoothing when connected to an age grid raster.
 * Fixed user specifying new anchor plate id and globe not updating.
 * Fixed some topological sections not getting added in topology tools (or not being allowed to be added).
 * Fixed inability to add points to a topological network boundary.
 * Fixed inability to add same topological section feature to a topological boundary more than once.
 * Fixed topological plate polygon not updating when modifying one of its boundary features (such as with the Insert Vertex tool).
 * All triangulations of topological networks now clipped to the final mesh triangulation.
 * Fixed missing topological plate polygons export when only the "Export each Plate Polygon to a separate file" checkbox is ticked.
 * Fixed missing export of topological network boundaries.
 * Fixed incorrect auto-segment-reversal when adding points to a topological network boundary.
 * Fixed focused feature losing highlight when no reconstruction tree loaded and reconstruction time changed.
 * Fixed feature focus hightlight disappearing when changing reconstruction time.
 * Fixed feature focus highlight not showing other geometries belonging to focused feature (in grey).
 * Removed OGRGMT export format option from topological plate polygons export since it's not currently supported.
 * Fixed OGRGMT format not exporting to single file for reconstructed geometries when requested.
 * Fixed full motion path not getting exported.
 * Default export location is now platform-specific documents directory.
 * Exporting a single snapshot now does not modify current animation range.
 * Fixed export type not getting removed (when user removed it) after previous export failed.
 * Fixed crash when unloading a file connected to a user-created polygon layer (that's connected to a reconstructing raster layer).
 * Fixed continuously increasing number of layers when switching back and forth between sessions.
 * Fixed crash when inserting no points into CGAL triangulations.
 * Old '.xy' format now writes out file even if no header lines generated (eg, because no Plate ID).
 * Fixed incorrectly creating a conjugate isochron feature when creating a mid-ocean ridge feature.
 * Fixed incorrectly adding a reconstruction plate ID and conjugate plate ID to a newly created mid-ocean ridge feature.
 * Assign Plate IDs dialog allow times before 100Ma.
 * Fixed Mac bundle filename not updating correctly.
 * Fixed Mac bundle creation failure when 'svnversion' returns a string with a colon in it.

GPlates 1.1
===========

Changes since 1.0.1:

 * Can save/restore layer connections (in addition to previous loaded files save/restore).
 * Added new feature collection file format OGRGMT ('.gmt'):
   * Compatible with the 'ogr2ogr' vector format conversion tool.
   * Effectively a Shapefile-like format embedded in GMT format.
 * Filled polygons now supported:
   * Uses same colour scheme as non-filled polygons (eg, Colour-by-feature-age, etc).
   * Supports dynamic topological plate polygons and static polygons:
     * Using stencil-based raster technique (since dynamic polygon re-triangulation is non-interactive).
     * Still slow on some systems though.
   * Can toggle in 'Resolved Topological Closed Plate Boundary' and 'Reconstructed Geometries' layers.
 * 'Calculated Velocity Fields' layers can now calculate velocities of arbitrary static polygon geometries:
   * By connecting to a 'Reconstructed Geometries' layer containing static polygons.
   * In addition to existing topological polygons/networks.
 * 'Calculated Velocity Fields' layers can now calculate velocities at the *vertices* of arbitrary geometries:
   * Such as polyline, polygon or multipoint geometries:
     * However currently only present day positions are used (ie, geometries are not rotated).
   * And can export these velocities to GPML (in the same way the mesh cap files are currently exported).
 * Experimental Web Feature Service connectivity:
   * Currently can load geometry from a WFS server.
 * More improvements in reading/parsing GeoSciML.
 * Implemented spatial partition for reconstructed geometries:
   * A novel cube 'loose' quad tree scheme.
   * Supports region-of-interest (ROI) queries and fast insertion of reconstructed geometries.
   * Parallels existing novel cube quad tree scheme used for level-of-detail raster reconstructions:
     * Used to associate reconstructed geometries with raster tiles.
   * Used for visibility culling of vector geometries.
 * Added new 'export' file format OGRGMT ('.gmt') for reconstructed geometries, flowlines and motion paths.
 * Can export topological plate polygons to Shapefile format.
 * Added export of topological network boundaries and topological slab boundaries.
 * Added options to control export of topological plate polygons to various polygon and subsegment files.
 * Added options to control export of reconstructed geometries to single file, multiple files or both:
   * Same with flowlines and motionpath export.
 * Can now load larger rasters on 32-bit systems with 2Gb physical memory without memory failure:
   * Such as 1 minute resolution global rasters.
   * For JPEG format can go even higher such as 0.3 minute resolution global rasters (~60,000 x 30,000 pixels).
 * Raster memory allocation failure now reported.
 * Added button in Layer dialog (top-right) to open colouring preview dialog.
 * Layers now grouped together based on layer type.
 * Can now delete and rename layers.
 * Use 'tick' icon in 'Reconstruction Tree' layer to toggle default layer.
 * Can now prevent the default 'Reconstruction Tree' layer from changing when opening a new rotation file.
 * Toggling a layer's visibility off now improves rendering speed.
 * Now draws colour scales for gridded rasters in the layer dialog:
   * And can right-click colour scale to save as a PNG image.
 * Can expand/contract individual sections in each layer (in Layers dialog).
 * Virtual Geomagnetic Pole visibility is now a per-layer setting.
 * Added topological network layer options to visualise associated triangulations.
   * And visualise source segment velocities (when velocity mesh cap files also loaded).
 * Separated interior from boundary segments in topology tool.
 * Added interpolation from topological network constrained mesh.
 * Colour left/right sections of flowlines independently according to default plate id colour scheme.
   * And motion path coloured by its plate id.
 * Noticeably improved flowlines reconstruction/rendering performance.
 * Noticeably faster loading/unloading of files when many files are already loaded:
   * Most noticeable when loading velocity mesh cap files.
 * Increased GPML (file format) float precision from 6 to 17 significant digits:
   * Enough to cover double-precision floating point numbers used inside GPlates.
 * Removed check for duplicate points on loading files:
   * Previously failed to load very small size polylines/polygons (and containing a handful of vertices).
 * Improved export dialog general user interface.
 * Increased export time precision from 2 to 4 decimal places.
 * Reconstructed rasters now update if the reconstructing polygons are modified:
   * For example, using one of the editing tools (such as Move Vertex tool).
 * Uses highest-resolution raster when reconstructing source raster with age grid.
   * Previously resolution was limited to the lowest resolution of the source or age grid rasters.
 * Removed special purpose "age grid" layer:
   * Age grid rasters now treated like any other raster (and can be visualised).
   * No longer need to specify 'age' as the band name when importing age grid raster.
   * Can still connect to another raster layer (to help smooth its reconstruction).
 * Only first connection of any raster layer to a particular polygon layer suffers a delay (of a few seconds):
   * Connections of a second, third, etc, raster layer to that polygon layer are now immediate.
 * Can drag files onto import time-dependent raster dialog page.
 * Raster mipmap error messages printed on globe.
 * Significantly improved performance of topology tool auto-reversal (when building topological networks from points).
 * Fatter lines in digitisation tool.
 * Magnifying glass icons in zoom slider are now clickable.
 * "Edit -> Clear" (CTRL+K) now a common menu location for clear actions on the canvas tools (task panel).
 * Insert Vertex no longer restricts polyline end-point extension.
 * Fixed incorrectly rendered grid lines on Natty Ubuntu systems.
 * Fixed features with no plate Id receiving a random plate Id.
 * Fixed MeshNode (velocity) points rotating when anchor plate id is *not* zero.
 * Fixed flowline GMT export bug (missing '>').
 * Fixed inability to insert multiple times after inserting single time when creating a motion path.
 * Fixed NULL character being written to PLATES rotation file after the comment on each line.
   * Caused problems with gawk and some text editors.
 * Fixed crash bug fix due to interaction of Split Feature Tool with Build Topology tool.
 * Fixed crash loading categorical colour palettes (CPT files) into raster layers (containing 'integer' raster).
 * Fixed some menu items not enabled at start-up (such as Show Stars).
 * Fixed actual export time occasionally out-of-sync with expected export time.

GPlates 1.0.1
=============

Changes since 1.0:

 * Fixed MotionPath loops (the last vertex of the the motion track joining up in a straight line to the first vertex).
 * Fixed Assign Plate Ids dialog not working with topological plate polygons.
 * Fixed incorrect plate ID assignment for features that initially had no plate IDs.
 * Fixed previous frame exported when exporting rasters.
 * Fixed upside down non-GMT netCDF rasters when using newer versions of GDAL.
 * Fixed incorrect alpha blending of semi-transparent rasters when reconstructing with static polygons.
 * Fixed raster colour tinge on certain older hardware (most likely hardware that falls back to software rendering).
 * Fixed crash in layers dialog when the user drags a layer and drops it on the very bottom pixel of the last layer.
 * Fixed only half the globe's circumference being drawn when exporting to SVG.
 * Inverted the colours used by the default raster colour palette.
 * Fixed refresh problem in visual layers when a file is unloaded.
 * Fixed visual layers widget sizing glitch.
 * Fixed crash due incorrect synchronisation of multiple threads.
 * Allow Bathymetry features to have unclassifiedGeometry.

GPlates 1.0
===========

Changes since 0.9.10:

 * New Flowline/MotionPath features:
   o Create flowlines and motion paths as new gpml:Flowline and gpml:MotionPath features using
     the multi-point digitisation tool.
   o Provide a sequence of times between which the half-stage poles are calculated.
   o Reconstructed Flowlines and motion paths displayed in globe and map views.
   o Reconstructed Flowline and MotionPath geometries can be exported to GMT and Shapefile formats.
 * New small circle tool to create concentric small circles as a visualisation aid:
   o Generates small circle centre using euler pole of stage rotation between
     two plates (using default Reconstruction Tree layer), or
	 by entering small circle centre coordinates as text.
   o One or more (concentric) equally spaced small circles entered textually as min/max radii.
 * New area measurement of polygons in Measure tool.
 * Total Rotation Poles:
   o New Total Reconstruction Sequences dialog accessible from "View Total Reconstruction Sequences" in "File" menu:
     * Views total reconstruction sequences of all rotation files (including comments in file).
     * Disabled poles highlighted in grey.
     * Can filter display of sequences matching a specified plate ID.
     * Soon will form basis for editing, inserting, removing and searching poles.
   o Added boolean field to Total Reconstruction Poles dialog to indicate whether finite rotation was interpolated.
   o Modify Reconstruction Pole tool now works in the map views (in addition to the globe view).
 * Feature collection file management:
   o New restore feature collections to a previously loaded session:
     * Loads feature collections that were loaded in a previous session of GPlates.
	 * Multiple sessions to choose from.
	 * Identify each session based on number of files, common directory name of files and date/time of last use of session.
   o Feature collection activation/deactivation removed (from "Manage Feature Collections" dialog) since
     layer activation/deactivation is now supported.
   o Fixed various save file dialog issues relating to filenames and file format types.
   o Fixed CTRL+O shortcut (to open feature collections) not working when "Manage Feature Collections" dialog is open.
 * Layers:
   o Can create a new layer.
   o Enable or disable layers on a per-layer basis.
   o Can set default Reconstruction Tree layer in Layers dialog:
     * Default layer displayed with "[Default]" prefixed to layer type.
     * Default layer implicitly connected if no Reconstruction Tree layer explicitly connected to another layer's input.
   o Layer types with no visual output no longer have the visibility (eye) icon -
     currently this is the "Age Grid" and "Reconstruction Tree" layers.
   o Now possible to drag a visual layer from anywhere on the widget, not just the coloured strip to the left.
   o Fixed map view not respecting visual layers draw order.
   o Added layers combo box to "View Total Reconstruction Poles" dialog to show Reconstruction Tree layer being viewed.
   o Can pop up "View Total Reconstruction Poles" dialog directly from a Reconstruction Tree layer.
   o "Show Layers" menu item now also hides the Layers dialog.
   o Fixed creation of Virtual Geomagnetic Pole feature not creating "Reconstruct Geometries" layer (if needed).
 * Topology:
   o Added gpml:TopologicalSlabBoundary feature type and associated properties.
   o Build Topology and Edit Topology tools now work in the map views (in addition to the globe view).
   o Fixed each topological closed plate polygon feature showing up twice (appearing as two visible geometries instead of one).
 * Plate velocities:
   o Significantly improved peformance of velocity calculations (via optimised point-in-polygon tests).
   o Automatic connection of velocity layers to topological closed plate polygon layers when
     former loaded after later or vice versa.
 * Visualisation:
   o Configure optional text overlay of reconstruction time including font, colour, position.
   o Choose global graticule latitude and longitude resolution (and colour/transparency).
   o Choose background colour of globe (default is grey).
   o Stars in background of globe view.
   o Added two-finger pinch gesture on Mac OS X trackpad to zoom in globe and map views.
   o Added two-finger rotation gesture on Mac OS X trackpad to rotate in globe and map views.
   o Can show/hide bottom panel in GPlates main window.
   o Pressing the arrow keys in globe view now rotates the globe by an amount dependent on zoom.
 * Export:
   o Optional reconstruction time text overlay visible in exported globe (or map) view raster(s).
   o Fixed far side of globe (not visible) being incorrectly exported to SVG.
   o Fixed circumference of globe not getting exported to SVG.
 * Added ability to create a new instance of GPlates, with its own main window
   and dialogs, from the file menu - useful mainly for Mac OS X.
 * Warns when adding a feature property if it is not valid for the current feature type.
 * Shortcut CTRL+D added for "Specify Anchored Plate ID" dialog.
 * Shortcut CTRL+P added for "View Total Reconstruction Poles" dialog.
 * Can specify plate ID of currently focused feature in "Specify Anchored Plate ID" dialog.
 * Can specify the which plate ID of currently focused feature in case
   there are multiple plate ID properties (eg, reconstruction, left, right plate ID).
 * "Clone Feature" tool now pops up dialog asking which feature collection to store cloned feature in.
 * Renamed "Clone Geometry" to "Copy Geometry to Digitise Tool".
 * Relaxed longitude georeferencing constraints on rasters - 0 to 360 no longer gives zero width error.
 * Fixed text not rendering (eg, in Measure tool).
 * Fixed "New Feature Collection" incorrectly being displayed for multiple files in the colouring preview ("Manage Colouring") dialog.
 * Fixed missing triangle when using some static polygon datasets for reconstructing rasters.
 * Fixed incorrect rendering of reconstructed rasters on systems that use PBuffers for OpenGL render-targets.
 * Fixed crash when using Split Feature tool on a feature containing more than one geometry property.

GPlates 0.9.10.1
================

Changes since 0.9.10:

 * fixed bug that caused various random crashes throughout GPlates, 
 * fixed crash when unloading a feature collection, 
 * fixed error exporting reconstruction geometries, 
 * fixed points/lines not drawn when editing geometry, 
 * fixed focused feature not being displayed, 
 * fixed unknown error when reloading a feature collection, 
 * fixed small globe window on Windows systems, 
 * fixed tooltips in Layers dialog causing GPlates to hang on Mac OS X systems, 
 * fixed display not updating during raster export (on Linux systems), 
 * fixed velocity mesh points not displaying (for CitcomS meshes generated inside GPlates), 
 * fixed conjugate-plate-id widget being displayed in "Create Feature" dialog for half-stage rotation, 
 * fixed feature collection showing unsaved changes when it is reloaded, 
 * after cloning geometry, and creating a new feature, GPlates now returns to the "Choose Feature" tool. 

GPlates 0.9.10
==============

Changes since 0.9.9:

TODO: Change this to list actual changes implemented (this is currently a copy of the release email).

This release is a preview of raster reconstructions and layers. 
We have implemented raster reconstructions to take advantage of
the majority of graphics systems so please let us know if you are
having difficulty on your system. 

If you want to reconstruct a raster, and try out the new layers system, the sample data
in this release contains the following files to demonstrate this: 
 * present-day plate polygons (in "SampleData/FeatureCollections/StaticPolygons/") 
   - "Global_Earthbyte_GPlates_PresentDay_PlatePolygons_20100826.gpml", 
 * a rotation file (in "SampleData/FeatureCollections/Rotations/") 
   - "Global_Earthbyte_GPlates_Rotation_20091015.rot", 
 * a global marine gravity raster (in "SampleData/Rasters/") 
   - "DNSC08GRA_6m.gpml", 
 * an ocean-floor age grid (in "SampleData/Rasters/") 
   - "agegrid_6m.gpml".
To reconstruct the above gravity raster load all the above files into GPlates 
using "Open Feature Collection" from the "File" menu. And then connect the 
present-day plate polygons to the "Polygon features" input channel of the
gravity raster. The gravity raster should now reconstruct.
For a high-detail reconstruction you can also connect the age grid raster
to the "Age grid feature" input channel of the gravity raster.
You can see an example screenshot of the layers window used for
this purpose at http://www.gplates.org/screenshots.html
(see http://www.gplates.org/screenshots/0.9.10/LayersWindow.png).
Note that you may also need to import a raster if it does not have
an associated ".gpml" file.
Also note that the age grid raster does not display since it has been
imported as an age grid rather than a regular raster - this is so it
can be used to assist the reconstruction of other rasters.


GPlates 0.9.9.1
===============

Changes since 0.9.9:

 * Fixed incorrect reversal of subduction polarity when exporting topologies, 
 * Fixed error in calculated velocities, 
 * Fixed number of exported velocity samples not matching number of grid points, 
 * Fixed incorrect order of CitcomS mesh points generated in GPlates, 
 * Fixed inability to split a two-vertex polyline feature, 
 * Fixed inability to select a feature after splitting it at its 
   first vertex, 
 * Fixed crash when attempting to clone geometry of a topological feature, 
 * Fixed crash due to invalid export template filename, 
 * Fixed duplicate string in filename of exported topologies. 


GPlates 0.9.9
=============

Changes since 0.9.8:

 * Added new Paleomagnetic functionality:
   * Ability to create a Virtual Geomeomagnetic Pole (VGP) feature by
     manually entering its parameters/attributes (such as pole position),
   * Ability to generate a total rotation pole that can be manually
     inserted into a rotation file to make adjustments between
     the VGP and the geographic pole,
   * Ability to specify when Virtual Geomeomagnetic Pole features are
     displayed (using a user-specified age range or time window).
 * Colouring improvements:
   * Ability to preview the effects of each colouring option,
   * Ability to load colour tables from GMT CPT files for user-defined colouring,
   * Ability to change colouring globally or per feature collection.
 * Added ability to split a feature into two features.
 * Added ability to delete a feature.
 * Added ability to clone a feature.
 * Added ability to clone geometry for input to a digitisation tool.
 * Added support for "unsaved changes" to feature collections:
   * Feature collections with unsaved changes are highlighted red in the
     "Manage Feature Collections" dialog,
   * New feature collections not yet saved are highlighted orange,
   * "unsaved changes" and "file error" icons appear at the bottom-right
     of GPlates when necessary,
   * Exiting GPlates brings up a dialog with options to save unsaved changes.
 * Export functionality improvements:
   * Combined time-sequence export and single-snapshot export into one,
   * Added export of the globe view as image(s),
   * Added two rotation exports ("Equivalent" and "Relative" that export
     total rotation poles for each plate id relative to the anchor plate,
     for "Equivalent", and relative to the next plate in the circuit,
     for "Relative"),
   * Added ability to control export filenames by editing the filename template.
 * Improvements to cookie-cutting and assigning plate ids:
   * Can cookie-cut using regular features containing static polygon geometry
     in addition to using topological closed plate boundary features,
   * Can assign time of appearance/disappearance in addition to plate ids.
 * Added option to rotate daughter/children plates in the
   "Modify Reconstruction Pole" tool.
 * Can generate CitcomS 3.1 meshes inside GPlates.
 * Added conjugate plate id to the "Create Feature" dialog for those features
   requiring one.
 * Topological closed plate boundary improvements including:
   * Automated reversal of topological line sections,
   * Can add same topological line section multiple times to a boundary.
 * Added support for feature ids in Shapefiles (allows features referenced by
   topological closed plate boundaries to be exported/imported as shapefiles).
 * Can read/write 4-digit plate id from/to PLATES line format files.
 * Added assign plate ids command to command-line version of GPlates and
   improved flexibility of file conversion and reconstruct command-line options.
 * Root of time-dependent raster filenames can vary, for example,
   "imageA" and "imageB" in "imageA-0.jpg" and "imageB-1.jpg".
 * Added multipoint support to PLATES line format (eg, hotspots).
 * Added unit test framework.


GPlates 0.9.8
=============

Changes since 0.9.7.1:

 * The new 0.9.8 release of GPlates can use a loaded topological plate polygon
   data set to "cookie-cut" a feature collection and assign Plate IDs to the
   data based on which plate polygon intersects them. This enables users to load
   data files that do not have Plate ID or reconstruction time information, and
   then manipulate that data with the loaded reconstruction model.
   
 * Support for virtual geomagnetic pole data is ongoing. As a special preview of
   GPlates paleo-mag functionality, GPlates is now able to import data from the
   IAGA Global Paleomagnetic Database created by Mike McElhinny and Jo Lock,
   later maintained by Sergei Pisarevsky. GPlates can then assign Plate IDs from
   a topological plate polygon data set and then display the reconstructed
   virtual geomagnetic pole locations on the globe. The database is available
   online here: http://www.ngu.no/geodynamics/gpmdb/ . In future releases, full
   editing capabilities and support for a wide range of data (such as the MagIC
   database) will be forthcoming.
   
 * Small circle arcs can be rendered by GPlates to indicate the error bounds of
   virtual geomagnetic poles.
   
 * Development on new colouring options has started. GPlates' default Plate ID
   colouring scheme has been tweaked, and a new colour by Plate ID region
   colouring scheme has been created.
   
 * The Modify Reconstruction Pole tool can now constrain the latitude of the
   pole manipulation while interactively making adjustments.
   
 * The topological capabilities of GPlates are undergoing constant improvement
   and expansion. As a consequence of these ongoing developments, GPlates now
   links with CGAL, the Computational Geometry Algorithms Library. This will
   enable many impressive extensions to the topology tools in the future.


GPlates 0.9.7.1
===============

Changes since 0.9.5:

 * GPlates can now utilise a full screen mode, which is available by pressing
   F11. This mode is ideal for presenting data and animations using GPlates. It
   makes the user interface more minimalistic, granting a greater amount of
   screen space to the main view. This is especially useful on low-resolution
   devices such as projectors.
   
 * A new Measure Distance Tool has been implemented, allowing precise
   measurement of the distance between any two chosen points. It also interacts
   with the digitisation and feature-selecting tools, to enable easy inspection
   of the distances along polyline geometries and polyline segments.
   
 * Exporting the Total Reconstruction Poles table to CSV can now be done with a
   choice of delimiters, and more closely adheres to the CSV specifications.
   
 * The previous 0.9.6 release involved the integration of the plate polygon
   closure workflow into the main stable branch of GPlates. With 0.9.7.1,
   additional work has gone into improving the user experience and making the
   topology algorithms more intelligent, and enables the export of geometry
   sub-segments involved in topologies.
