
Changes from grid_0.1 to grid_0.2:

1. Fixed bug in rotating viewports;  this should be more reliable now.

2. Added grid.line.to() and grid.move.to().  These allow drawing BETWEEN
   different coordinate systems.  See example in inst/doc/demo3.ps.

3. Added some more demonstrations to the doc directory.

4. Added more test code to the tests directory.

5. Added "grobwidth" and "grobheight" units.  See the document
   grid/inst/doc/advanced/parentchild.ps

6. Added more detailed documentation to grid/inst/doc/advanced.  This
   stuff is not as friendly for the reader, but may be useful if you're
   tearing your hair out wondering why some strange effect is occurring.

7. Changed frames and packing to use the new "grobwidth" and "grobheight"
   units.  This fixes some problems with frames and packing.

8. Fixed a bug where the gpar settings for "fontsize" and "lineheight"
   _within a grob_ would not affect the location or size of the grob
   if they were specified in "lines" or "char" units.

   This required adding new "mylines" and "mychar" units (alternative
   suggestions for names welcome !) so that you can specify whether
   a grob's a location/size is in terms of the current viewport's
   fontsize and lineheight ("lines" and "char") or in terms of its own
   fontsize and lineheight ("mylines" and "mychar").

9. Added grid.polygon() and grid.circle() primitives

10. Added newpage=TRUE argument to grid.start() so that you can restart
    grid graphics mode without having to move to a new page.

    For example, try ...

	postscript()
	grid.start()
	grid.polygon()
	grid.stop()
	grid.start() # moves to new page
	grid.circle()
	grid.stop()
	grid.start(newpage=FALSE) # does NOT move to new page
	grid.rect()
	grid.stop()
	dev.off()

11. Changed interface for pop.viewport().  This now just takes a
    number of viewports to pop, which defaults to 1.  
    For example ...

        push.viewport(viewport())
	pop.viewport(current.viewport())

    ... becomes ...
    
        push.viewport(viewport())
	pop.viewport()

    ... and ...

        vp1 <- viewport()
	vp2 <- viewport()
	push.viewport(vp1, vp2)
	pop.viewport(vp2, vp1)

    ... becomes ...

        vp1 <- viewport()
	vp2 <- viewport()
	push.viewport(vp1, vp2)
	pop.viewport(2)
	
12. Speed-up of pushing and popping viewports.  This will probably not
    be noticeable in normal usage, but makes a big difference for 
    frames and packing.

13. Added a convertNative() function for converting a unit object
    to "user" or "data" coordinates.  This is useful for performing
    calculations (e.g., smoothing) on a location or dimension which
    is easiest to specify in units.

    You must specify whether you wish to convert relative to the 
    current x- or y-scale AND whether you are converting a location
    or a dimension.  The following example shows the difference:

       > push.viewport(viewport(w=unit(4,"inches"), xscale=c(-10,10)))
       > convertNative(unit(1:4, "inches"))
       [1] -5  0  5 10
       > convertNative(unit(1:4, "inches"), "y")
       [1] 0.1430986 0.2861972 0.4292958 0.5723944  # on my default window size
       > convertNative(unit(1:4, "inches"), "y", "dimension")
       [1] 0.1430986 0.2861972 0.4292958 0.5723944
       > convertNative(unit(1:4, "inches"), "x", "dimension")
       [1]  5 10 15 20

    WARNING:  if you draw objects based on output from these conversion
    functions, then resize your device, the objects will be drawn 
    incorrectly -- the base R display list will not recalculate these
    conversions.  This means that you can only rely on the results of 
    these calculations if the size of your device is fixed.

    This change motivated by discussions with Frank Harrell.

