Changelog for diagrams-core-0.6.0.2
0.6.0.2: 5 March 2013
- bug fix: the 'diameter' and 'radius' functions now work correctly.
0.6.0.1: 7 January 2013
- allow
semigroups-0.9
0.6: 11 December 2012
-
New features
-
Proper support for subdiagrams: previous versions of diagrams-core had a mechanism for associating names with a pair of a location and an envelope. Now, names are associated with actual subdiagrams (including their location and envelope, along with all the other information stored by a diagram).
See
Diagrams.Core.Types
. -
Traces: in addition to an envelope, each diagram now stores a "trace", which is like an embedded raytracer: given any ray (represented by a base point and a vector), the trace computes the closest point of intersection with the diagram along the ray. This is useful for determining points on the boundary of a diagram, e.g. when drawing arrows between diagrams.
See
Diagrams.Core.Trace
.
-
-
API changes
-
The modules have all been renamed to be more consistent with the module naming scheme in the rest of the diagrams universe. In particular:
Graphics.Rendering.Diagrams
-->Diagrams.Core
Grahpics.Rendering.Diagrams.Core
-->Diagrams.Core.Types
Graphics.Rendering.Diagrams.*
-->Diagrams.Core.*
-
Graphics.Rendering.Diagrams.UDTree
has been split out into a separatedual-tree
package (which has also been substantially rewritten). -
Graphics.Rendering.Diagrams.{Monoids,MList}
have been split out into a separatemonoid-extras
package. -
The
names
function now returns a list of names and their associated locations, instead of the associated subdiagrams. In particular the output is suitable to be rendered to aString
usingshow
. -
The new
subMap
function fills a similar role thatnames
used to play, returning the entire mapping from names to subdiagrams. -
New functions
envelope[VP]May
envelopeV
andenvelopeP
return the zero vector and origin, respectively, when called on an empty envelope. However, sometimes it's useful to actually know whether the envelope was empty or not (the zero vector and the origin are legitimate outputs from non-empty envelopes). The new functions have their return type wrapped inMaybe
for this purpose. -
New functions
envelopeS
andenvelopeSMay
Like
envelope[VP](May)
, but returning a scalar multiple of the input vector. -
The
Graphics.Rendering.Diagrams.Util
module has been removed, along with thewithLength
function. Calls towithLength
can be replaced usingwithLength s v = s *^ normalized v
-
Add needed constraints
(InnerSpace v, OrderedField (Scalar v), Monoid' m)
to the type of therenderDias
method in theMultiBackend
class. -
Generalized
Transformable
instances for pairs and tuplesPreviously, the components of the tuples were required to have the same type; but everything still works as long as they all share the same vector space. This is actually useful in practice: say, if we wanted to pair a diagram with a path and then apply the same transformation to both.
-
-
Improvements
- More efficient implementation of
diameter
- More efficient implementation of
-
Dependency/version changes
- Tested with GHC 7.6.1
- allow
base-4.6
- allow
containers-0.5.*
- allow
MemoTrie-0.6.1
-
Bug fixes
-
juxtaposeDefault now correctly handles empty envelopes (#37)
juxtaposeDefault
is now the identity on the second object if either one has an empty envelope. In particular this means thatmempty
is now an identity element forbeside
and friends.
-
0.5.0.1: 11 May 2012
- Update
MemoTrie
upper bound to allowMemoTrie-0.5
0.5: 9 March 2012
-
New features:
- New
Juxtaposable
class - New
NullBackend
andD
types, for conveniently giving a monomorphic type to diagrams when we don't care which one it is. - #27: Change type of
adjustDia
to return a new options record (with an explicitly filled-in size)
- New
-
New instances:
Enveloped
,HasOrigin
,Juxtaposable
,HasStyle
, andTransformable
instances forSet
s and tuplesV Double = Double
Juxtaposable
andBoundable
instances forMap
-
API changes
AnnDiagram
renamed toQDiagram
- #61: terminology change from "bounds" to "envelope"
boundary
->envelopeP
- "bounding region" -> "envelope"
Bounds
->Envelope
Boundable
->Enveloped
getBounds
->getEnvelope
- etc.
- Split out definition of
Point
into separate package (vector-space-points
) - The
Point
constructorP
is no longer exported fromGraphics.Rendering.Diagrams
. See theDiagrams.TwoD.Types
module fromdiagrams-lib
for new tools for working with abstract 2D points. If you really need theP
constructor, importGraphics.Rendering.Diagrams.Points
. - Name-related functions now return "located bounding functions" instead of pairs of points and bounds, to allow for future expansion.
-
Dependency/version changes:
vector-space
0.8 is now required.- Bump base upper bound to allow 4.5; now tested with GHC 7.4.1.
-
Bug fixes:
- Bug fix related to empty envelopes
0.4: 23 October 2011
- improved documentation
- a few new instances (Newtype Point, Boundable Point)
- new functions (value, clearValue, resetValue) for working with alternate query monoids
0.3: 18 June 2011
- big overhaul of name maps:
- allow arbitrary types as atomic names
- carry along bounding functions as well as names in NameMaps
- additional functions for querying information associated with names
- fix for issue #34 (fix behavior of setBounds)
- Transformable and HasOrigin instances for Transformations
0.2: 3 June 2011
- bounding regions can now be overridden
- new namePoint function for more flexibly assigning names to arbitrary points
- add HasStyle, Boundable, and HasOrigin instances for lists
- add a "trivial backend"
- transformable attributes
0.1.1: 18 May 2011
- link to new website
0.1: 17 May 2011
- initial preview release