Changelog History
Page 3
-
v1.2.0.3 Changes
November 17, 2014 -
v1.2.0.2 Changes
August 22, 2014 -
v1.2.0.1 Changes
June 04, 2014๐ Merged pull requests:
-
v1.1 Changes
March 09, 2014๐ New features
- New
basis
function - New
determinant
function for computing the determinant of aTransformation
- Add
Typeable
constraint onPrim
s, making it possible to extract things back out of aPrim
wrapper usingcast
- Raw
Trace
s now return a sorted list of intersections, instead of only the smallest. This is used to implement a new family of functionsrayTraceV
,rayTraceP
,maxRayTraceV
,maxRayTraceP
, which work similarly to the parallel versions withoutRay
, but return the first intersection in the positive direction from the given point, rather than the smallest in absolute terms. - New
Annotation
type and correspondingapplyAnnotation
function, for attaching uninterpreted annotations at specific points in a diagram tree. Currently this is used for hyperlinks; more annotation types will be added in the future.
- New
Dependency/version changes
- Require
lens-4.0
- Allow
vector-space-points-0.2
- Require
๐ Bug fixes
- Looking up a subdiagram by name now results in a diagram which still has that name (#43)
Closed issues:
- Named subdiagrams lose their names after being looked up #43
๐ Merged pull requests:
โ Added
basis
, simplifiedonBasis
#54 (jeffreyrosenbluth)Determinants #53 (jeffreyrosenbluth)
๐ Introduce Typeable constraint on Prims (see #42) #52 (byorgey)
return list of traces #48 (jeffreyrosenbluth)
-
v1.0 Changes
November 25, 2013๐ New features
- Delayed subtrees: instead of a primitive, one can now also have
a delayed subtree at a leaf, containing a continuation which
generates a
QDiagram
when given the accumulated d-annotation at that point in the tree. Useful for things which need to know the final transformation applied to them before deciding what diagram to generate. The prototypical use case is arrows: see https://github.com/diagrams/diagrams-lib/issues/112 . However, this may be useful for other things as well: for example, diagrams which scale normally until hitting some maximum or minimum size, at which point they refuse to scale any further (or more generally diagrams which scale as some non-linear function of the transformation applied to them).
The only downside is that the u-annotation must be fixed ahead of time---doing otherwise requires a more general solution for constraint solving.
- New function
lookupName
for doing a simple lookup of a named subdiagram - New module
Diagrams.Core.Compile
, containing a framework for compilingQDiagrams
into a simpler tree typeRTree
, which may be used by backends for rendering.
- Delayed subtrees: instead of a primitive, one can now also have
a delayed subtree at a leaf, containing a continuation which
generates a
๐ New instances
Qualifiable
instances for(,)
,(,,)
,[]
,Set
,Map k
, and(->) e
.(->) e
instance forJuxtaposable
(thanks to Carlos Scheidegger)
API changes
- Export
pointDiagram
function, which creates an otherwise empty diagram with a point (not empty) envelope - A bunch of stuff now uses machinery from the
lens
library.envelope
,trace
, andsubMap
are nowLens'
esWrapped
instances forTrace
,TransInv
,QDiagram
,SubMap
,Envelope
,Style
,Query
, andName
(replacesNewtype
instances)Iso
s forQuery
,Envelope
,QDiagram
,SubMap
,TransInv
- Export
Implemented enhancements:
- Tree structure in Backends #19
๐ Merged pull requests:
-
v1.0.0.1 Changes
November 28, 2013 -
v0.7 Changes
August 09, 2013๐ New features
- new function
onBasis
, to extract the matrix equivalent of aTransformation
SubMap
s are nowDeletable
- new function
localize
for hiding/deleting names from scope - new
IsPrim
class, containingtransformWithFreeze
function. This is primarily intended to support scale-invariant primitives (e.g. arrowheads) but may be useful for other stuff as well. The default implementation ofrenderDia
now usestransformWithFreeze
. - optimized
Transformable
instance forTransInv
- new function
๐ New instances
Eq
,Ord
,Enveloped
,Traced
, andQualifiable
instances forTransInv
Transformable
instance for functions, which acts by conjugation
API changes
named
andnamePoint
have moved to thediagrams-lib
package.
Dependency/version changes
- allow
base-4.7
- upgrade to
monoid-extras-0.3
- allow
Implemented enhancements:
- Function to extract matrix coefficients from a Transformation #22
Closed issues:
- ๐ Support for monoid-extras-0.3.0.0 #38
๐ Merged pull requests:
-
v0.7.0.1 Changes
September 27, 2013 -
v0.6 Changes
December 12, 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.
Implemented enhancements:
Turn R2 into D2 (Generalize R2 to any numeric type) #20
Terminology: rename "bounding function" -> "envelope"; "boundary function" -> "boundary" #16
๐จ Refactor: rename AnnDiagram to QDiagram #15
Combine (point, bounds) pairs stored in NameMap into a single "located bounding function" data structure #14
๐ Remember more structure when building diagrams #12
๐ Diagram-building service library + executable #7
๐ Fixed bugs:
setBounds is incorrect -- throws away bounds of subsequent diagrams too #13
โ Start developing test suites #10
Freezing does not appear to work with the SVG backend #9
Silent failure on other image types than .png #6
๐ฆ Tutorial contains links to old version of package #5
space is not left for empty diagram when using e.g. hcat' with {sep = ... } #3
โ Ellipse rotated incorrectly in test file with ellipse next to a square #2
Closed issues:
๐ Rename core modules to remove Graphics.Rendering prefix. #28
๐ Improve haddock documentation #11
๐ Improve description of Envelope in Haddock documentation #1
๐ Merged pull requests:
โ Add envelopeS / envelopeSMay for querying scalar displacements from envelopes #31 (mgsloan)
โ Added needed constraints for MultiBackend. #29 (fryguybob)
๐ Rename
names
tosubMap
, and add new functionnames
#26 (byorgey)๐ Fix for juxtaposeDefault to correctly handle empty envelopes #24 (byorgey)
-
v0.6.0.2 Changes
March 06, 2013