        CHANGES IN spatstat.geom VERSION 3.7-0

OVERVIEW

    o We thank Alexey Sergushichev for contributions.
    
    o Level sets calculated using analytic geometry, for some functions.

    o More options for perspective plots.

    o Easier control over transparency of image plots.

    o Scramble the colours when plotting a point pattern or segment pattern.

    o Signed distance transform and signed distance function
    
    o Minor improvements and bug fixes.

NEW FUNCTIONS

    o default.colourmap
    Default colour map for a vector or factor.
    
    o levelset.im
    The function previously called 'levelset' is now a method for class 'im'.
    
    o levelset.distfun
    Method for level sets for distance functions.

    o levelset.tessfun
    Method for level sets for functions created by as.function.tess

SIGNIFICANT USER-VISIBLE CHANGES

    o default.symbolmap.ppp
    For a multitype point pattern, 'cols' can be a 'function(n)'
    
    o default.symbolmap.ppp
    New argument 'scramble.cols'

    o distfun.owin
    New argument 'signed'
    
    o distmap.owin
    New argument 'signed'
    
    o levelset
    This function is now generic, with methods for 'im' and 'distfun'.

    o multiplicity
    Methods for 'multiplicity' can now handle objects of larger size.
    
    o persp.im
    The pixel values of 'colin' can be colour values.
    New argument 'valuesAreColours'.
    
    o persp.ppp
    Now plots the 'zlab' label alongside the vertical scale bar.

    o persp.ppp
    Argument 'col.base' can be a pixel image, which will be
    rendered as a colour image in perspective view on the horizontal plane.
    
    o persp.ppp
    New argument 'show.window'.

    o plot.im
    New argument 'opacity' controls semi-transparency of colours.

    o plot.ppp
    New argument 'scramble.cols'.
    
    o plot.psp
    New argument 'scramble.cols'.
    
    o tileindex
    New arguments 'close.gaps' and 'all.inside'.

    o plot.colourmap
    New argument 'do.plot'

    o plot.symbolmap
    New argument 'do.plot'

BUG FIXES

    o connected.im
    Crashed if the image consisted of a single pixel.
    [Spotted by Alexey Sergushichev]
    Fixed.
    
    o contour.funxy
    Returned NULL rather than the result of 'contour.im' as intended.
    Fixed.

    o is.subset.owin
    Crashed if one of the arguments was an empty window.
    
    o persp.funxy
    Returned NULL rather than the result of 'persp.im' as intended.
    Fixed.

    o plot.funxy
    Returned NULL rather than the result of 'plot.im' as intended.
    Fixed.

    o plot.psp
    Crashed if x had logical-valued marks.
    Fixed.
    
    o plot.tess
    Crashed when do.col=TRUE, for a tessellation consisting of a single tile.
    Fixed.

    o plot.im
    Partially disobeyed 'do.plot=FALSE' because it started a graphics device
    if no graphics device was open.
    Fixed.

    o plot.layered
    Crashed in some cases with message "plot.new has not been called yet".
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.6-1

OVERVIEW

    o Find centroids of tiles of a tessellation.

    o More options for converting a tessellation to an image.
    
    o Minor internal improvements and bug fixes.

SIGNIFICANT USER-VISIBLE CHANGES

    o owin2mask
    Arguments '...' that are not recognised by 'as.mask'
    are now silently ignored, rather than causing an error.

    o as.im.tess
    New argument 'rule.tile' specifies how to determine,
    for each pixel, the tile of the tessellation that covers the pixel.
    
NEW FUNCTIONS

    o tile.centroids
    Find the centroids of the tiles of a tessellation
    and return them as a point pattern.

BUG FIXES

    o incircle
    Gave incorrect results for some irregular windows.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.6-0

OVERVIEW

    o More facilities for handling NA objects.

    o More facilities for drawing a background behind a plot.
    
    o 'clickpoly' allows vertices to be snapped (rounded) onto a grid

    o Improvements to perspective views of images.
    
    o More options for disc windows.

    o Internal improvements.

SIGNIFICANT USER-VISIBLE CHANGES

    o solapply, anylapply
    If an entry of the list is an 'NAobject', the result for that entry
    will be an 'NAobject'.

    o with.hyperframe
    If a column in the hyperframe contains 'NA object' entries,
    and if the name of that column is included in the expression
    being evaluated, then the result of evaluation is an 'NA' or 'NA object'
    in the relevant row.

    o plot.owin, plot.psp
    New argument 'background' specifies an object (or a colour)
    that will be plotted before x is plotted, and will
    therefore appear underneath it.

    o plot.ppp, plot.im
    Argument 'background' can be a single colour value.
    
    o clickpoly
    Allows user-selected locations of vertices to be snapped (rounded)
    to the nearest grid points. New arguments 'snap.step' and 'snap.origin'.

    o disc
    New argument 'type' allows the user to specify an inscribed polygon
    or a circumscribed polygon.

    o as.ppp, as.owin, as.im, domain, Frame, Window
    These generic functions now have methods for class 'NAobject'
    which return an 'NAobject'.

    o nobjects, npoints
    These generic functions now have methods for class 'NAobject'
    which return an NA integer value.

    o marks, "marks<-"
    These generic functions now have methods for class 'NAobject'
    which return an 'NAobject'.

    o persp.im
    Improved appearance when apron=TRUE and the image domain is not a rectangle.
    
    o hyperframe
    Removed slight inconsistencies in the internal format
    produced in different cases.


        CHANGES IN spatstat.geom VERSION 3.5-0

OVERVIEW

    o Missing or unavailable (NA) spatial objects.

    o Interactively identify tiles of a tessellation.

    o Remove small holes from a window.

    o New options for defining nearest neighbours.

    o im.apply handles vector-valued functions.

    o Backgrounds for plots of point patterns.

    o Concatenate layered objects.

    o Connected components of polygonal windows.
    
    o Bug fixes and minor improvements.

NEW FUNCTIONS

    o fillholes.owin
    Remove small holes from a window.
    
    o identify.tess
    Interactively identify tiles of a tessellation.

    o NAobject
    Create an NA object of a specified class.

    o is.NAobject
    Recognise whether an object is a missing or unavailable (NA) object.

    o is.na.hyperframe
    Returns a logical matrix indicating which entries of the hyperframe
    are NA values or NA objects.

    o c.layered
    Method for the generic 'c' for layered objects.
    Enables two or more layered objects to be concatenated,
    correctly retaining their plot arguments.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o compatible.im
    Accelerated in the common case where all rasters are identical.

    o connected.owin
    New argument 'polygonal' allows calculation of connected components
    using polygonal geometry instead of pixel-based algorithm.
    
    o harmonise.im
    Accelerated in the common case where all rasters are identical.

    o identify.psp
    New arguments 'paint' and 'paint.args'.

    o im.apply
    Now handles vector-valued functions.
    
    o nnmark
    New arguments 'ties' and 'proper'.

    o nndist
    New argument 'proper'.

    o nnwhich
    New argument 'proper'.

    o pixellate.psp
    New option: what='indicator'

    o plot.im
    The position of text next to the colour ribbon can now be
    controlled by 'riblab$side'.

    o plot.im
    Placement of main title improved, in some cases.

    o plot.ppp
    New arguments 'background' and 'clip.background' allow the user to specify
    an object that will be plotted before the point pattern x, and will
    therefore appear underneath it.
    
    o "[<-.hyperframe"
    In an assignment like x[i,j] <- NA, if column j contains
    spatial objects, the NA value will be coerced to an 'NAobject'
    of the appropriate class.

BUG FIXES

    o delaunay
    Crashed in some cases when X contained exactly 3 points.
    Fixed.

    o plot.im
    riblab$side was ignored.
    Fixed.

    o "[<-.hyperframe"
    Results of x[i,j] <- value were malformed if i and j were
    single numeric values equivalent to integers but not stored as integers,
    i.e. values with is.integer(i) = FALSE.
    Fixed.


        CHANGES IN spatstat.geom VERSION 3.4-1

OVERVIEW

    o Bug fix.

BUG FIXES

    o default.symbolmap.ppp
    Crashed in some cases, for marks of class 'Date'.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.4-0

OVERVIEW

    o Nonlinear colour maps and symbol maps.

    o Backgrounds for image plots.

    o `im.apply` handles larger datasets.

    o `quadratcount.ppp` supports left-closed, right-open rectangular tiles.

    o Minor improvements and bug fixes.

SIGNIFICANT USER-VISIBLE CHANGES

    o colourmap
    New arguments 'compress', 'decompress' for nonlinear colour maps.

    o default.symbolmap.ppp
    Argument 'marktransform' renamed 'transform' for consistency.
    
    o im.apply
    Improved algorithm avoids violating memory limits, handles larger datasets.

    o lut
    New arguments 'compress', 'decompress' for nonlinear lookup tables.

    o plot.colourmap
    New argument 'at' determines the position of tick marks on the axis.
    
    o plot.im
    New arguments 'background' and 'clip.background' allow the user to specify
    an object that will be plotted before the image x, and will therefore appear
    underneath it.

    o plot.im
    Return value has attribute 'at' giving the position of tick marks
    on the axis next to the colour ribbon.

    o plot.yardstick
    New arguments 'zebra.scale' and 'do.txt'.
    
    o quadratcount.ppp
    New argument 'left.open' controls the treatment of data points
    which lie on the boundary between two rectangular quadrats.
    
    o symbolmap
    New arguments 'transform', 'compress', 'decompress'
    for nonlinear symbol maps.

BUG FIXES

    o plot.solist, plot.imlist
    When 'equal.scales=TRUE' and 'equal.ribbon=TRUE',
    the argument 'log=TRUE' was ignored.
    Fixed.

    o plot.im
    If log=TRUE, the colour map returned by plot.im
    represented the colours applied to log10(x) rather than x.
    Fixed.

    o flipxy.psp
    The line segments were unchanged.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.3-6

OVERVIEW

    o We thank Warick Brown, Tilman Davies and Martin Hazelton
    for contributions.
    
    o Methods for functions which are constant on each tile of a tessellation.

    o Minor improvements.

NEW FUNCTIONS

    o integral.tessfun
    Integral of a function which is constant on each tile of a tessellation

    o print.tessfun, plot.tessfun, as.tess.tessfun
    Methods for the class 'tessfun' of functions which are constant
    on each tile of a tessellation.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o plot.yardstick
    New argument 'style' allows different styles of plotting a scale bar
    including a zebra pattern (style = "zebra").

    o plot.yardstick
    New arguments 'zebra.step', 'zebra.width', 'zebra.col'.
    
    o as.mask
    Corrected a warning message.
    
        CHANGES IN spatstat.geom VERSION 3.3-5

OVERVIEW

    o We thank Stephanie Hogg and Tingting Zhan for contributions.

    o Improvements to plotting of images, and arrays of images.

    o More control over plotting of colour maps, symbol maps and texture maps.

    o hyperframes handle a 'Surv' object as a single column.
    
    o Bug fixes and minor improvements.

NEW FUNCTIONS

    o rev.colourmap
    Reverses the sequence of colour values in a colour map.
    A method for the generic 'rev'.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o hyperframe
    An object of class 'Surv' from the 'survival' package
    is now treated as a single column of data
    (mimicking the behaviour of 'data.frame')
    [Requested by Tingting Zhan]
    
    o plot.im
    New argument 'drop.ribbon' determines whether a ribbon will be displayed
    in the case where the pixel values are all equal.
    Default behaviour has changed.

    o plot.im
    New argument 'reverse.col' allows the sequence of colours to be reversed.
    [Suggested by Stephanie Hogg.]

    o plot.imlist, image.imlist, image.listof
    If equal.ribbon=TRUE and equal.scales=TRUE, the colour ribbon
    is now neatly aligned with the plotted images.

    o plot.solist, plot.anylist
    Arguments 'adorn.left', 'adorn.right', 'adorn.bottom', 'adorn.top'
    may now be objects of class 'colourmap' or 'symbolmap'.
    
    o plot.solist, plot.anylist
    New argument 'adorn.args'.
    
    o plot.imlist, image.imlist, image.listof
    New argument 'equal.scales'.

    o plot.colourmap
    New formal argument 'side'.

    o plot.symbolmap
    New formal argument 'side'.

    o plot.texturemap
    New formal argument 'side'.
    
    o persp.im
    Now recognises argument 'adj.main' controlling the position of main title.
    
    o persp.ppp
    Now recognises argument 'adj.main' controlling the position of main title.

BUG FIXES

    o rotate.im
    Did not preserve the name of the unit of length.
    [Spotted by Stephanie Hogg.]
    Fixed.

    o unstack.ppp
    If 'marks(x)' was a data frame with a single column,
    the data frame structure was retained, when it should have been dropped.
    [Spotted by Tingting Zhan.]
    Fixed.
    

        CHANGES IN spatstat.geom VERSION 3.3-4

OVERVIEW

    o Tessellations can have any kind of marks.

    o More control over default colours.

    o Minor improvements.

NEW FUNCTIONS

    o default.image.colours, reset.default.image.colours
    Control the default colours used for plotting images in spatstat.

SIGNIFICANT USER-VISIBLE CHANGES

    o tess, marks<-.tess
    A tessellation can now have any kind of marks
    (vector, list, data frame or hyperframe).

    o intersect.tess
    Now handles marks of any kind (vector, list, data frame or hyperframe).

    o pixelquad
    Now accepts arguments passed to 'as.mask' to control the pixel resolution.

    o persp.ppp
    Now draws a reference scale bar for the vertical scale, by default.
    New arguments 'legend', 'legendpos', 'leg.args', 'leg.col'.
    
    o persp.ppp
    Optionally draws a symbol at the top of each spike.
    New arguments 'type', 'point.args'.
    
        CHANGES IN spatstat.geom VERSION 3.3-3

OVERVIEW

    o Perspective plot of spatial point pattern with numerical marks.

    o Improvements to rjitter.ppp
    
    o Tweaks to documentation.

NEW FUNCTIONS

    o persp.ppp
    For a spatial point pattern with numeric marks,
    generate a perspective plot in which each data point is
    shown as a vertical spike, with height proportional to the mark value.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o rjitter.ppp
    New argument 'adjust' allows the default radius to be adjusted.

    o rjitter.ppp
    The resulting point pattern now has attribute 'radius'.
    
    o rjitter.ppp
    If 'retry=TRUE', the resulting point pattern now has attribute 'tries'
    which reports the number of trials that were required.
    
        CHANGES IN spatstat.geom VERSION 3.3-2

OVERVIEW

    o Tweaks to documentation to satisfy the package checker.

        CHANGES IN spatstat.geom VERSION 3.3-1

OVERVIEW

    o Tweaks to documentation to satisfy the package checker.

        CHANGES IN spatstat.geom VERSION 3.3-0

OVERVIEW

    o 'spatstat.geom' now depends on the new package 'spatstat.univar'.

    o Some functions have been moved into the package 'spatstat.univar'.
    
    o Tweaked plot functions.

    o More support for diagram objects.

    o Stability improvements and bug fixes.

PACKAGE DEPENDENCE

    o spatstat.geom
    'spatstat.geom' now depends on the new package 'spatstat.univar'.
    Several functions that were previously provided in 'spatstat.geom'
    have been moved to 'spatstat.univar'.
    
NEW FUNCTIONS

    o default.symbolmap.ppp
    The algorithm for determining the graphical symbol map used by plot.ppp.

    o default.symbolmap
    New generic.

    o affine.diagramobj, reflect.diagramobj, rotate.diagramobj
    Methods for geometrical transformations of diagram objects.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o identify.ppp
    Automatically starts a new plot device and displays `x`
    if there is no plot device open.
    
    o identify.psp
    Identified segments are highlighted. 
    Automatically starts a new plot device and displays `x`
    if there is no plot device open.
    
    o plot.owin
    New argument 'adj.main' controls the justification of the text
    in the main title.

    o plot.colourmap
    New argument 'nticks' controls the number of axis tick marks
    when the colourmap is defined on a continuous range of numerical values.
    
    o plot.colourmap
    New argument 'box' controls whether a box will be drawn around the colours.
    
    o plot.tess
    Changed the default values for do.col and do.labels

    o layout.boxes
    Argument 'aspect' can be NA or Inf indicating that the aspect ratio
    of the boxes is unconstrained.

    o simplepanel
    Improved stability.

    o shift
    Improved stability

    o as.colourmap.symbolmap
    A warning message, occurring when the symbolmap contains more than one
    colour map, is suppressed if the colour maps are identical.

    o plot.symbolmap
    Suppressed warning message (occurring when colour.only=TRUE)
    about the symbolmap containing several colour maps,
    when the colour maps were identical.

DELETED FUNCTIONS

    o ewcdf
    This function has been moved to the new package 'spatstat.univar'
    along with most of the methods for class 'ewcdf'.
    
    o mean.ewcdf, quantile.ewcdf, quantilefun.ewcdf
    These methods have been moved to the new package 'spatstat.univar'.
    
    o hotrod
    This function has been moved to the new package 'spatstat.univar'.
    
    o integral
    The generic 'integral' and the method 'integral.density'
    have been moved to the new package 'spatstat.univar'.
    
    o quantilefun, quantilefun.ewcdf
    The generic 'quantilefun' and the method 'quantile.ewcdf'
    have been moved to the new package 'spatstat.univar'.

    o rounding, rounding.default
    The generic 'rounding' and the method 'rounding.default'
    have been moved to the new package 'spatstat.univar'.
        
    o transformquantiles
    This function has been moved to the new package 'spatstat.univar'.
    
    o weighted.median
    This function has been moved to the new package 'spatstat.univar'.
    
    o whist
    This function has been moved to the new package 'spatstat.univar'.

    o uniquemap, uniquemap.default, uniquemap.data.frame, uniquemap.matrix
    The generic 'uniquemap' and these methods have been
    moved to the new package 'spatstat.univar'.

    o unnormdensity
    This function has been moved to the new package 'spatstat.univar'.
    
BUG FIXES

    o plot.ppp, default.symbolmap.ppp
    Ignored 'zerosize' in some cases.
    Fixed.

    o plot.symbolmap
    Issued strange warnings in some cases.
    Fixed.
    
    o symbolmap
    Crashed in some instances when 'inputs' was given
    and the graphical parameters included both functions and vectors.
    Fixed.

        CHANGES IN spatstat.geom VERSION 3.2-9

OVERVIEW

    o Some geometry code accelerated.

NEW FUNCTIONS

    o summary.symbolmap, print.summary.symbolmap
    Method for 'summary' for symbol maps.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o as.rectangle
    Accelerated in many cases.

    o diameter.owin
    Accelerated when the window is a rectangle.

    o nncross.ppp
    Slightly accelerated.

    o owin
    Accelerated in many cases.

        CHANGES IN spatstat.geom VERSION 3.2-8

OVERVIEW

    o Improvements to window geometry code.

    o Improvements to symbol map displays.

SIGNIFICANT USER-VISIBLE CHANGES

    o is.subset.owin
    Algorithm slightly modified to give better results when
    the two polygons share some common edges.

    o plot.ppp
    New argument 'minsize' specifies the size of the smallest symbol
    used to represent the marks, when the marks are numeric.

    o plot.ppp
    New argument 'zerosize' specifies the size of the symbol
    used to represent the mark value 0, when marks are numeric.

    o plot.symbolmap
    New argument 'representatives' specifies which data values
    will be shown in the plot.

        CHANGES IN spatstat.geom VERSION 3.2-7

OVERVIEW

    o Minor corrections to the help files.

        CHANGES IN spatstat.geom VERSION 3.2-6

OVERVIEW

    o Minor improvements.

    o spatstat.geom no longer suggests 'maptools'.

SIGNIFICANT USER-VISIBLE CHANGES

    o as.im.tess
    New argument 'values'.

        CHANGES IN spatstat.geom VERSION 3.2-5

OVERVIEW

    o Extension of distance transform algorithm.

    o Improvement to progress reports.
    
    o Suppress annoying warnings.

    o Further bug fix in quadratcount
    
SIGNIFICANT USER-VISIBLE CHANGES

    o distmap.owin
    New argument 'connect'.

    o progressreport
    The estimated time of completion is also printed, if the remaining time
    is longer than 10 minutes.
    
    o unnormdensity
    Suppress annoying warning messages from density.default.
    This affects many functions in the spatstat family of packages.

BUG FIXES

    o quadratcount
    Crashed if argument 'tess' was a rectangular grid tessellation.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.2-4

OVERVIEW

    o Connected component transform can now use a 4-connected grid.
    
    o Bug fixes in quadrat counting code.

SIGNIFICANT USER-VISIBLE CHANGES

    o connected.owin, connected.im
    New argument 'connect' specifies the connectivity of the raster,
    either 4 or 8 neighbours for each pixel.

    o round.ppp, round.pp3, round.ppx
    Now has ellipsis argument '...' for conformity with generic 'round'

BUG FIXES

    o as.mask
    If 'w' was a rectangle and 'xy' was specified,
    the pixel entries were all TRUE, instead of
    only being TRUE within the window 'w'.
    Fixed.

    o intensity.quadratcount
    Results were incorrect if the quadrats were a mixture of
    irregular polygons and rectangles.

    o quadratcount.ppp
    If the window was irregular and some of the tiles did not intersect
    the window, the counts were given the wrong tile labels.
    Fixed.

    o plot.quadratcount
    If the window was irregular and some of the tiles did not intersect
    the window, the counts were displayed in the wrong tiles.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.2-2

OVERVIEW

    o Bug fixes and minor improvements.

SIGNIFICANT USER-VISIBLE CHANGES

    o as.mask
    Improved numerical performance (rounding error).

BUG FIXES

    o quantess.owin
    The window of the resulting tessellation was sometimes slightly different
    from the original window M.
    Fixed.
    
    o intensity.quadratcount
    Results were incorrect if the quadrats were the intersections of
    a rectangular grid with an irregular window and all quadrats were nonempty.
    Fixed.

        CHANGES IN spatstat.geom VERSION 3.2-1

OVERVIEW

    o Fixed errors and omissions in documentation.

    o Minor improvements in C code.

        CHANGES IN spatstat.geom VERSION 3.2-0

OVERVIEW

    o We thank Warick Brown and Tilman Davies for suggestions.

    o More options for converting polygons to a binary mask.

    o More options for controlling pixel size.

    o Improvement to progress reports.
    
    o Minor tweaks to package documentation.

NEW FUNCTIONS

    o psp2mask
    Function 'as.mask.psp' has been renamed 'psp2mask'.
    The old function 'as.mask.psp' still exists, but it will
    soon be deprecated, and ultimately removed.

SIGNIFICANT USER-VISIBLE CHANGES

    o owin2mask
    New options op="majority" and op="minority".
    If op="majority", a pixel belongs to the resulting mask if
    at least half of the pixel area is covered by the window.
    
    o as.mask
    New argument 'rule.eps' specifies what to do when the
    desired pixel size is not a divisor of the frame size.

    o as.im
    Many methods for 'as.im' now have argument 'rule.eps'.

    o discretise
    New argument 'rule.eps'

    o distfun
    New argument 'rule.eps'

    o nnfun
    New argument 'rule.eps'

    o progressreport
    New argument 'formula' controls the calculation of estimated time remaining.
    
    o progressreport
    New argument 'savehistory' specifies whether to save the elapsed times
    when the function was called.
    
        CHANGES IN spatstat.geom VERSION 3.1-0

OVERVIEW

    o Methods for "[[" and "[[<-" for hyperframes.

    o Colour map for pH values.

    o Restrict a colour map to a narrower range of values.

    o Integral of a one-dimensional density estimate.
    
    o Minor improvements and bug fixes.

NEW FUNCTIONS

    o "[[.hyperframe", "[[<-.hyperframe"
    Methods for "[[" and "[[<-" for hyperframes.

    o pHcolourmap, pHcolour
    Colour map for values of pH

    o restrict.colourmap
    Restrict a colourmap to a narrower range of values.

    o integral.density
    Compute the integral of a one-dimensional kernel density estimate.

    o as.colourmap
    Extract colour information from an object.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o plot.symbolmap
    New argument colour.only makes it possible to display only the
    colour map information in a symbolmap.
    
    o "[.hyperframe", "[<-.hyperframe"
    Improved error message when the format of index i or j is not supported.

    o unnormdensity
    Computation accelerated.

    o unnormdensity
    Handles datasets containing fewer than 2 values.

BUG FIXES

    o unnormdensity
    If 'weights' was a single numerical value 'w', the calculation incorrectly
    assigned the weight for each observation to be 'w/n' where 'n=length(x)'.
    Fixed.

    o unnormdensity
    A crash could occur if 'x' was a very long vector,
    with an error message originating from 'deparse1'.
    Fixed.

    
        CHANGES IN spatstat.geom VERSION 3.0-6

OVERVIEW

    o Bug fix.
    
BUG FIXES

    o harmoniseLevels
    Crashed sometimes, in older versions of R,
    with an obscure error message from 'mapply'.
    Fixed.

        CHANGES IN spatstat.geom VERSION 3.0-5

OVERVIEW

    o Convert several factors or factor-valued images to a common set of levels.
    
    o Extension to rjitter

    o Alternative to rjitter

    o Quantile function as a function

    o Improvements to plot code.

NEW FUNCTIONS

    o harmoniseLevels
    Given several factors or factor-valued pixel images,
    convert them all to have the same set of factor levels.

    o rexplode
    'Explode' a point pattern by randomly displacing each
    group of duplicated points to make a circular pattern
    around the original location. An alternative to 'rjitter'.

    o quantilefun
    Return a function that computes any quantiles of a given dataset.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o rjitter.ppp
    If 'trim=TRUE', the displacement radius will be constrained
    to be less than or equal to the distance from the data point
    to the window boundary. 
    
    o plot.ppp
    For multitype point patterns, a warning is issued if 
    the plot legend does not represent every possible type of point
    due to space restrictions.

    o plot.symbolmap
    New argument 'warn'.

    o plot.symbolmap
    Issues a warning if the plot of a discrete symbol map does not
    represent every possible input value, due to space restrictions.

    o plot.solist
    When equal.ribbon=TRUE, the images may now be factor-valued
    or character-valued. Character-valued images will be converted
    to factor-valued images. The common colour map will combine the
    levels of all the factor images. 
    
BUG FIXES

    o "[<-.im"
    Errors occurred in x[] <- v when x and v were both factor-valued
    but with different sets of levels.

    o rjitter.ppp
    If retry=FALSE, marks were ignored.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 3.0-4

OVERVIEW

    o Improvements to perspective plots.

SIGNIFICANT USER-VISIBLE CHANGES

    o perspPoints, perspLines, perspSegments, perspContour
    New argument 'occluded' specifies whether the surface
    should be treated as opaque or transparent.


        CHANGES IN spatstat.geom VERSION 3.0-3

OVERVIEW

    o Minor internal changes to satisfy package checker.

        CHANGES IN spatstat.geom VERSION 3.0-2

OVERVIEW

    o Minor internal changes to satisfy package checker.

        CHANGES IN spatstat.geom VERSION 3.0-1

OVERVIEW

    o Minor internal changes.

        CHANGES IN spatstat.geom VERSION 3.0-0

OVERVIEW

    o Minor improvements and bug fixes.

    o Changes to package dependence.
    
NEW FUNCTIONS

    o is.linnet
    Test whether an object is a linear network.

    o as.data.frame.ppplist
    Method for 'as.data.frame' for lists of point patterns.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o Package dependence
    spatstat.geom now suggests the new packages spatstat.explore and
    spatstat.model, which have replaced spatstat.core.
    
    o crosspairs.ppp
    New argument 'periodic' specifies whether to use
    periodic (toroidal) distances.

    o crosspairs.ppp
    New arguments 'iX', 'iY' make it possible to eliminate pairs
    in which the two points are identical.
    
    o bufftess 
    The result now has attribute 'breaks' which is the vector of
    distance breakpoints.

    o contour.im
    New argument 'log' specifies whether the contour lines
    should be equally spaced on a logarithmic scale.
    
    o plot.im, image.im
    New argument 'addcontour' specifies that contour lines should be drawn
    over the image plot.

    o invoke.symbolmap
    New argument 'angleref'.

    o funxy
    The result now has a unitname, inherited from the argument W.

    o integral.im
    New argument 'weight' specifies a weight function for the integration.
    
    o markstat, applynbd
    These functions now work for point patterns in three dimensions
    (class 'pp3') and point patterns on a network (class 'lpp').

    o plot.psp
    New argument 'use.marks', for consistency with other methods.
    
BUG FIXES

    o framedist.pixels
    Result was always a matrix, regardless of the value of 'style'.
    Fixed.

    o plot.im
    Ignored ribargs$labels.
    Fixed.

    o plot.ppp
    Crashed with an obscure message when argument 'shape' was given,
    unless argument 'size' was also given.
    Fixed.

    o closepairs
    Crashed if npoints(X)^2 exceeded the largest possible integer.
    Fixed.

    o crosspairs
    Crashed if npoints(X) * npoints(Y) exceeded the largest possible integer.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 2.4-0

OVERVIEW

    o We thank Fernando Milesi, Suman Rakshit and Mark Walsh for contributions.

    o Bug fixes in 'distmap' and 'distfun'.
    
    o Bug fixes in 'closepairs'.

    o Bug fixes in 'nncross.ppp'.

    o Minor improvements and bug fixes.

NEW FUNCTIONS

    o framedist.pixels
    Computes distance from each pixel to the enclosing rectangle.

SIGNIFICANT USER-VISIBLE CHANGES

    o nncross.ppp
    When X is a point pattern and Y is a line segment pattern,
    higher order neighbours (k > 1) are now supported.

    o intersect.tess
    New argument 'keepempty'.

    o unnormdensity
    Argument 'weights' may have length 1.
    New argument 'defaults'.

    o distmap.owin
    Behaviour has been altered so that, when X is a binary mask, the results of
    distmap(X, invert=TRUE) and distmap(complement.owin(X)) are identical.
    This affects a few pixels close to the edge of the frame.
    [Suggested by Fernando Milesi.]

    o distmap.ppp
    New argument 'clip'.
    
BUG FIXES

    o distmap.owin
    If the window was a binary mask, the distance values were
    slightly too large (by a factor 1 + 1/n where n is the pixel grid dimension),
    due to a coding error.
    [Spotted by Fernando Milesi.]
    Fixed.
    
    o distfun.owin
    If the window was a binary mask, the distance values were
    slightly too small (typically reduced by 1/20 of a pixel width).
    [Spotted by Fernando Milesi.]
    Fixed.

    o distmap.owin
    Values were incorrect if X was an empty window (is.empty(X) = TRUE).
    Fixed.
    
    o distmap.ppp, distmap.psp
    Values were incorrect if X was an empty pattern (npoints(X) = 0).
    Fixed.
    
    o distmap.psp
    Values were incorrect if X was an empty pattern (nsegments(X) = 0).
    Fixed.
    
    o closepairs.ppp
    If distinct=FALSE and what="all", the resulting vectors
    'yi' and 'yj' contained incorrect values, and had the wrong length.
    Fixed.

    o nncross.ppp
    When k > 1, distance values were incorrectly replaced by 'Inf' in some cases.
    Fixed.
    
    o closepairs.ppp
    Crashed with a message 'unable to allocate memory'
    if the window of X had zero area.
    Fixed.

    o crosspairs.ppp
    Crashed with a message 'unable to allocate memory'
    if the window of Y had zero area.
    Fixed.

    o closepairs.pp3
    Crashed with a message 'unable to allocate memory'
    if the domain of X had zero volume.
    Fixed.

    o crosspairs.pp3
    Crashed with a message 'unable to allocate memory'
    if the domain of Y had zero volume.
    Fixed.

    o as.im.owin
    If 'value' was a categorical (factor) value, the result was not a factor-valued image.
    Fixed.

    o tile.areas
    For a tessellation defined by a pixel image,
    the result of tile.areas() was not a numeric vector.
    [Spotted by Suman Rakshit.]
    Fixed.

    o dirichlet
    Rarely, the number of tiles in the tessellation
    was less than the number of unique data points.
    This occurred only when the window was a binary mask.
    [Spotted by Suman Rakshit.]
    Fixed.


        CHANGES IN spatstat.geom VERSION 2.3-2

OVERVIEW

    o 'spatstat.geom' now suggests the package 'spatstat.random'.
    
    o Updated help files to refer to 'spatstat.random'.


        CHANGES IN spatstat.geom VERSION 2.3-1

OVERVIEW

    o New options for weighted.quantile

    o Minor improvements.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o weighted.quantile
    New argument 'type' allows the user to choose between several rules
    for the weighted quantile.

    o weighted.median
    New argument 'type' allows the user to choose between several rules
    for the weighted median. The default rule has changed.

    o perspSegments
    Improved quality of result when pixels are not square.

    o nndist.ppp, nnwhich.ppp
    Argument 'by' can be a factor, a logical vector,
    a pixel image with factor values, a tessellation, a window,
    the string 'marks' (if marks(x) is a factor),
    or the name of one of the columns of marks (if marks(x) is a data frame).

    o nndist.pp3, nnwhich.pp3
    Argument 'by' can be a factor, a logical vector,
    the string 'marks' (if marks(x) is a factor), or
    the name of one of the columns of marks (if marks(x) is a data frame).

    o split.ppp, split.ppx
    The argument 'f' may now be the character string "marks",
    signifying 'f=marks(X)', provided 'marks(X)' is a factor.

    o owin
    If argument 'mask' is a logical matrix,
    NA entries will be accepted, and converted to FALSE.
    
        CHANGES IN spatstat.geom VERSION 2.3-0

OVERVIEW

    o Quantile transformation.

    o Distance metric based on a convex set.

    o Basic support for calculations using non-Euclidean distance metrics.

    o Improvements to 'rjitter'.
    
NEW CLASSES

    o metric
    An object of class 'metric' represents a distance metric.
    See help(metric.object).
    
NEW FUNCTIONS

    o transformquantiles
    Transform the quantiles of a vector, matrix, array or pixel image.

    o convexmetric
    Distance metric based on a convex set.

    o mean.ecdf, mean.ewcdf
    Calculate the mean of an empirical cumulative distribution function.
    
    o invoke.metric
    Low level function to perform a desired operation using a given metric.

    o rjitter.ppp
    This function was previously called 'rjitter'. It is now a method
    for the new generic function 'rjitter'.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o pairdist.ppp, crossdist.ppp, nndist.ppp, nnwhich.ppp, nncross.ppp
    New argument 'metric' specifies a non-Euclidean distance metric
    to measure the distances.
    
    o distmap.ppp, distmap.owin, distmap.psp
    New argument 'metric' specifies a non-Euclidean distance metric
    to measure the distances.
    
    o disc
    New argument 'metric' specifies a non-Euclidean distance metric
    defining the disc.

    o rjitter
    The function previously called 'rjitter' is now called 'rjitter.ppp'
    and is now a method for the new generic 'rjitter'.

    o rjitter.ppp
    The argument 'radius' may be a numeric vector, specifying a different
    displacement radius for each data point.

BUG FIXES

    o as.mask
    Crashed if 'Frame(w)' had zero height or zero width.
    Fixed.

        CHANGES IN spatstat.geom VERSION 2.2-2

OVERVIEW

    o Bug fix in package information.
    

        CHANGES IN spatstat.geom VERSION 2.2-1

OVERVIEW

    o More options for converting a window to a mask.

    o Minor improvements and internal upgrades.

NEW FUNCTIONS

    o owin2mask
    Convert a window to a mask, with various options,
    affecting the treatment of the boundary.
    
SIGNIFICANT USER-VISIBLE CHANGES

    o where.max, where.min
    Argument 'x' may be either a pixel image (class 'im')
    or data that can be converted to a pixel image by 'as.im'.


        CHANGES IN spatstat.geom VERSION 2.2-0

OVERVIEW

    o We thank Warick Brown for contributions.

    o Buffer tessellation
    
    o New options for distmap.psp

NEW FUNCTIONS

    o bufftess
    Distance buffer tessellation
    
SIGNIFICANT USER-VISIBLE CHANGES

    o distmap.psp
    New arguments 'extras' and 'clip' 

         CHANGES IN spatstat.geom VERSION 2.1-0

OVERVIEW

    o We thank Hank Stevens for contributions.
    
    o Extension to 'discretise'.

    o Bug fix in nncross

    o Minor improvements and bug fixes
    
SIGNIFICANT USER-VISIBLE CHANGES

    o discretise
    New argument 'move.points' determines whether the point coordinates
    are also discretised.

    o summary.im
    Output improved when the image is empty (i.e. when all pixel values
    are undefined).
    
BUG FIXES

    o nncross.ppp
    If the argument 'by' was given, some of the results were incorrect.
    [Spotted by Hank Stevens.]
    Fixed.

    o nncross.ppp, nncross.pp3
    If 'iX' and 'iY' were given, some of the results were incorrect.
    Fixed.

        CHANGES IN spatstat.geom VERSION 2.0-1

OVERVIEW

    o Minor bug fix

BUG FIXES

    o pixellate.ppp
    crashed if 'weights' contained any NA values.
    Fixed.
    
        CHANGES IN spatstat.geom VERSION 2.0-0

OVERVIEW

    o Reduced package dependence.

    o Improvement to venn.tess.

    o Changed default value of 'stringsAsFactors'.

SIGNIFICANT USER-VISIBLE CHANGES

    o spatstat.geom
    No longer depends on 'spatstat.sparse'.
    
    o venn.tess
    New argument 'labels'.

    o hyperframe, as.im.function
    The formal default value of 'stringsAsFactors' has been changed
    to 'NULL' to conform to changes in R. (The actual default value
    is TRUE for R < 4.1.0 and FALSE for R >= 4.1.0)

    o plot.psp
    The code for 'style="width"' has been completely rewritten,
    so that it no longer depends on plot.linim, and is more efficient.
    The formal argument list has been extended.

    o integral.im
    Accelerated in the case where 'domain' is a tessellation.

    o cbind.hyperframe
    Row names are not altered (previously they were altered
    using 'make.names')

    o [.ppx
    New argument 'clip'

BUG FIXES

    o colourmap
    If a colour map was applied to numbers lying outside the range of the
    colour map, the wrong number of NA's was sometimes produced.
    Fixed.

    o MinkowskiSum
    Crashed sometimes with an error message about 'sumconnected'.
    Fixed.

    o hyperframe
    Crashed if the argument 'row.names' was given
    and the hyperframe had exactly one row.
    Fixed.
    

        CHANGES IN spatstat.geom VERSION 1.65-8

OVERVIEW

    o Reduced package dependence.

SIGNIFICANT USER-VISIBLE CHANGES

    o spatstat.geom
    No longer depends on 'spatstat.sparse'.
    

        CHANGES IN spatstat.geom VERSION 1.65-7

OVERVIEW

    o Tweak.
    
        CHANGES IN spatstat.geom VERSION 1.65-6

OVERVIEW

    o We thank Jean-Francois Coeurjolly for contributions.
    
    o Bug fix in 'inradius'

BUG FIXES

    o inradius
    Coded incorrectly for rectangular windows.
    [Spotted by Jean-Francois Coeurjolly]
    Fixed.


        CHANGES IN spatstat.geom VERSION 1.65-5

OVERVIEW

    o Minor changes to satisfy CRAN.


        CHANGES IN spatstat.geom VERSION 1.65-4

OVERVIEW

    o Minor changes to satisfy CRAN.


        CHANGES IN spatstat.geom VERSION 1.65-3

OVERVIEW

    o NEWS file initialised.


        CHANGES IN spatstat.geom VERSION 1.65-2

OVERVIEW

    o Minor changes to satisfy CRAN.


        CHANGES IN spatstat.geom VERSION 1.65-1

OVERVIEW

    o Minor changes to satisfy CRAN.


        CHANGES IN spatstat.geom VERSION 1.65-0

OVERVIEW

    o Package initialised at version 1.65-0 from a subset of spatstat.

    o Increased speed for large datasets.

    o Bug fix in crossdist.pp3 with periodic distances.
    
    o Bug fixes and minor improvements.

SIGNIFICANT USER-VISIBLE CHANGES

    o spatstat.geom
    The package 'spatstat.geom' has been created from a subset
    of the code in the original 'spatstat' package version 1.65-0.
    It contains definitions of geometrical objects (windows, point patterns,
    pixel images, etc) and operations on them (geometry, superposition,
    image arithmetic, etc).

    o Execution
    The 'spatstat.geom' package is slightly faster than the corresponding
    code in the 'spatstat' package, because the procedure for calling
    internal C functions has been streamlined.

    o dirichletEdges
    New argument 'clip'.

    o harmonise.im
    The result belongs to class 'solist' and 'imlist'
    so that it can be plotted.

BUG FIXES

    o crossdist.pp3
    Results with periodic=TRUE were partially incorrect.
    Fixed.
    
    o affine.owin
    For mask windows, the pixel resolution of the result
    was too fine, leading to very large datasets.
    Fixed.

    o affine.im
    If the transformation matrix was not diagonal, the pixel resolution
    of the result was too fine, leading to very large datasets.
    Fixed.

    o plot.ppp
    For a point pattern in a binary mask window,
    if both arguments 'col' and 'cols' were given,
    the points were coloured according to 'col', which was incorrect.
    Fixed.
    
    o dirichletEdges
    Crashed if any edges crossed the boundary of the window.
    Fixed.

    o unitname
    Spatial datasets with incorrect internal format
    (or using an out-of-date version of the spatstat format)
    caused an error if the 'units' package was loaded.
    Fixed.


