Changelog History
Page 5

v1.1.0.3 Changes
March 19, 2014 ๐ Allow
lens4.1
 ๐ Allow

v1.1.0.2 Changes
March 19, 2014๐ Merged pull requests:
๐ move avgScale to core #167 (jeffreyrosenbluth)
3d color & lighting, more solids, Angle utilities #166 (bergey)
โ Added bothSize function, lineHead and lineTail #165 (jeffreyrosenbluth)

v1.1.0.1 Changes
March 09, 2014 ๐ฆ Depend on
hashable
package, and addHashable
instance forSizeSpec2D
.
Technically, the PVP specifies that adding a new instance requires a major version bump. However, I highly doubt anyone was making their own orphan
Hashable
instances before. Feel free to yell at Brent if this breaks your build.  ๐ฆ Depend on

v1.0.1 Changes
January 26, 2014Implemented enhancements:
 Module for generating nice colors/color schemes #77
Closed issues:
 "Maybe.fromJust: Nothing" error when connecting translated small diagram #147
๐ Merged pull requests:
return list of traces #145 (jeffreyrosenbluth)
โ added clipTo #144 (jeffreyrosenbluth)

v1.0 Changes
November 25, 2013๐ New features
๐ New modules
Diagrams.TwoD.Arrow
andDiagrams.TwoD.Arrowheads
for creating arrows.๐ New module
Diagrams.Backend.CmdLine
, providing a flexible framework for creating commandlinedriven diagram rendering executables.๐ New functions in
Diagrams.Offset
:offsetTrail
andoffsetPath
for onesided offsets of trails and paths;expandTrail
andexpandPath
for "stroking" trails and paths, computing a path whose fill corresponds to the stroke of the given trail or path.๐ New module
Diagrams.Tangent
for computing tangent and normal vectors of segments, trails, and paths.๐ New functions in
Diagrams.Align
to allow diagrams to be aligned byTrace
calledsnug
,snugBy
andsnugCenter
and the ability to define other boundary functions for alignment. FunctionssnugL
,snugR
, etc. are included inTwoD.Align
.Lenses from
Control.Lens
are now used consistently for record fields throughout the library.๐ New function
angleRatio
for calculating the ratio between two angles.Restricted identity functions
asTurn
,asRad
, andasDeg
for resolving type ambiguity๐ New miter limit attribute.
๐ New function
annularWedge
inTwoD.Arc
๐ New
avgScale
utility inTwoD.Transform
, for backends which cannot fully implement freezing of line width๐ New function
heptagon
, a vast improvement over the linguistic frankensteinseptagon
.๐ New function
lookupName
(reexported fromdiagramscore
) for simple lookups of named subdiagrams๐ New function
angleBetween
to calculate the angle between two vectors.๐ New function
arcBetween
to draw an arc between two given points.A bunch of new modules containing types, primitives and utilities for constructing 3D diagrams:
Diagrams.ThreeD.Align
,.Camera
,.Light
,.Shapes
,.Transform
,.Types
, and.Vector
. This is still a "feature preview" (in particular, appropriate 3D backends are still under construction).
๐ New instances
AdditiveGroup
andVectorSpace
instances forTurn
,Rad
,Deg
Alignable
instance for(>) e
0๏ธโฃ
Default
instances forFillRule
,FillRuleA
,LineJoin
,LineCap
,FillColor
Show
instances forFillRule
,FillRuleA
API changes
e
no longer exported fromDiagrams.Prelude
.Diagrams.BoundingBox
is no longer exported fromDiagrams.Prelude
.Reexport
Diagrams.Core.pointDiagram
fromDiagrams.Prelude
.โ Added
fromAlphaColour
method toColor
class.&
renamed to^&
Stop reexporting
tan
,over
, andboth
fromData.Colour
.New coordinate lenses
_x
,_y
, and_z
forR2
,P2
,R3
,P3
Export
fullTurn
fromDiagrams.Prelude
.Codomain (Located a)
is nowPoint (Codomain a)
instead ofLocated (Codomain a)
.Export
domainBounds
fromDiagrams.Parametric
.๐ Adjusting functionality moved from
Diagrams.Parametric
to its own module,Diagrams.Parametric.Adjust
.๐ Rename
strokeT
(and primed variant) tostrokeTrail
; renamestrokeLocT
tostrokeLocTrail
.ScaleInv
is now in its own module,Diagrams.TwoD.Transform.ScaleInv
.Reexport
Image
type (but not constructor) fromDiagrams.TwoD
โ Removed
Floating
andRealFloat
instances forTurn
andDeg
offsetSegment
now returns aLocated
instead of a tuple.โ Removed
Num
andFractional
instances forR2
.
Dependency/version changes
โ Remove
newtype
dependency๐ New dependencies on
lens
,tagged
,optparseapplicative
,filepath
,safe
,vectorspacepoints
,MemoTrie
Depend on
intervals >= 0.3 && < 0.5
.
๐ Bug fixes
๐ Depend on
intervals 0.3
, which allows diagrams to build on Windows, by evading a GHCi linker bug which affects the FFI use in previous versions of intervals (diagramscontrib#14)๐ Use point envelope at the origin for text objects instead of an empty envelope (#115, #116).
Adjusting the end of a trail now works correctly (#95).
Only look for miter join on corners in
Diagrams.TwoD.Offset
(#118).wedge
fromDiagrams.TwoD.Arc
is now a Loop (#99)Arrows do not behave correctly under scaling #112
๐ Performance improvements
R2
is now strict andUNPACK
edโ Add strictness to
Offset
,Segment
,OffsetEnvelope
, andSizeSpec2D
.๐ Make
getEnvelope
calculation forSegment
more efficient by floating divisions out of the inner calculation.๐ Use a specialized
HasTrie
instance forR2
.
Closed issues:
๐ Merged pull requests:
Lenses for setting arrow head, tail, and shaft colors #138 (byorgey)
โ Add helpers for common optparseapplicative backend command line. #135 (fryguybob)
โ add located lens for access into Located things #134 (byorgey)
Lens #131 (jeffreyrosenbluth)
correctly (?) compute shaftScale by solving a quadratic #127 (byorgey)
calculate arrow shaftScale using projection of ends onto shaft offset #125 (bergey)

v1.0.0.1 Changes
November 28, 2013 
v0.7.1 Changes
September 11, 2013๐ New features
๐ New standard miter limit attribute
๐ New functions
lineColorA
,lineWidthA
,lineMiterLimitA
,fontSizeA
for directly applying attribute values0๏ธโฃ
setDefault2DAttributes
now sets default line cap (butt), line join (miter), and miter limit (10) attributes
๐ New instances
0๏ธโฃ
Data.Default
instances forLineCap
LineJoin
LineMiterLimit
LineWidth
LineColor
FontSize
Implemented enhancements:
๐ Fixed bugs:
๐ Merged pull requests:
๐ change Codomain of Located to Point (Codomain a) #102 (byorgey)
0๏ธโฃ Default and Show instances for FillRule and FillRuleA #100 (jbracker)
๐ Changes required due to the introduction of Roles in GHC #98 (codan)
โ removed default implementation of reverseDomain #97 (jeffreyrosenbluth)
๐ fixed issue #95 #96 (jeffreyrosenbluth)

v0.7.1.1 Changes
September 27, 2013 
v0.7 Changes
August 09, 2013๐ New features
๐ New module
Diagrams.TwoD.Curvature
, for computing the curvature of 2D segments at any given point.๐ New module
Diagrams.Offset
, containing anoffsetSegment
function that builds a trail a fixed distance from the original segment. This is a precursor to planned functionsoffsetTrail
andoffsetPath
.๐ New function
Diagrams.TwoD.Transform.onBasis
, for extracting a matrix representation of a 2D transformation๐ New functions
extrudeEnvelope
andintrudeEnvelope
, for extending or shrinking an envelope only in a certain direction.Generalize the
Color
class to absolute colors. This addresses concerns raised in issue #66 by letting the backend choose which color space to renderColor
instances to. Functions are provided for backwards compatibility with the old semantics.๐ New function
scaleInvPrim
for creating a diagram from a single scaleinvariant primitive.๐ New module
Diagrams.Parametric
, containing a collection of classes abstracting over "parametric" things:Parametric
,DomainBounds
,EndValues
,Sectionable
, andHasArcLength
, with instances for segments, trails, and related things.๐จ A big refactoring of segments and trails:
 Segments can now be either "closed" or "open".
 There are now two types of trails: "lines" (which travel
from point A to point B) or "loops" (closed curves which end
where they started).
Trail
is now a wrapper type which can contain both loops and lines.  There is a new
Located
wrapper type for adding locations to translationinvariant things.Path
s now consist of a collection ofLocated Trail
s.  The
PathLike
class is now renamed toTrailLike
; thetrailLike
function takes aLocated Trail
as input.
๐ New convenience functions
boundaryFrom
andboundaryFromMay
, for computing boundaries of subdiagrams.Reexport from
diagramslib
a lot of things defined indiagramscore
, to make them easier for users to find. Several new modules have been created as a result:Diagrams.Query
,Diagrams.Envelope
,Diagrams.Trace
, andDiagrams.Names
.Export the
centroid
function fromDiagrams.Prelude
.triangle
is now a synonym foreqTriangle
.
๐ New instances
IsPrim
instances forPath
,Ellipsoid
,Image
,Text
, andScaleInv
Eq
,Ord
, andShow
instances forSizeSpec2D
API changes
CircleFrac
has been renamedTurn
(thoughCircleFrac
is retained as a deprecated synonym).Diagrams.Coordinates
is no longer exported fromDiagrams.Prelude
. This is for compatibility withlens
, as(&)
is a rather important lens operator and clashes withDiagrams.Coordinates
. Users who want theCoordinates
stuff can importDiagrams.Coordinates
explicitly.
Dependency/version changes
๐ allow
base4.7
โฌ๏ธ upgrade to
monoidextras0.3
0๏ธโฃ depend on
datadefaultclass
instead ofdatadefault
โ Tested with GHC 7.7.
๐ Bug fixes
โ Added a special case that was a not handled properly by the quadratic solver, resulting in bogus envelopes in certain cases (#88).
Import only
Data.NumInstances.Tuple
instead ofData.NumInstances
. Previously,Diagrams.Prelude
exportedEq
,Show
, andNum
instances for functions and tuples; now it only exports tuple instances. Users wishing to useDiagrams.CubicSpline
with a vector space built over functions (!?) can importData.NumInstances.Function
themselves. (#48)Do scaling on a
Path
before constructing aTrailLike
inrect
(#43)
Implemented enhancements:
Split PathLike, Trail, and Path into separate modules #25
โ Add support for pathoriented diagrams. #13
๐ Fixed bugs:
Wrong envelope for cubic segment #88
๐ Fix documentation of beside, (===), and () re: monoidal semantics #83
๐ reverseTrail should not generate extra segments for closed trails #24
Closed issues:
 โ Test issue #91
๐ Merged pull requests:

v0.6 Changes
December 12, 2012๐ New features
boundingRect
function for constructing a bounding rectanglebg
function for "setting the background color" (i.e. placing atop a colored bounding rectangle)๐ New functions
setDefault2DAttributes
andadjustDiaSize2D
.adjustDia2D
does both  so the behavior ofadjustDia2D
has not changed, but it is now possible to apply just one of the two adjustments using the new functions.Diagrams.TwoD.Transform
now exports aScaleInv
type for creating scaleinvariant objects, which are only affected by rotational and translational components of transformations.The new
Diagrams.Coordinates
module provides nicer syntax for constructing and patternmatching point and vector literals.๐ New
fromFixedSeg
function inDiagrams.Segment
, which decomposes aFixedSegment
into a starting point and aSegment
.๐ New
withTrace
function for setting theTrace
of a diagram.Three new sizerelated functions:
 New
sized
function for scaling an object to a particular size. One particularly nice use of this is to obviate the need to keep fiddling with the line width to get diagrams to "look right"; just set the line width relative to some arbitrary scale (e.g. assuming the final diagram will fit into a 1x1 box) and then applysized
to the final diagram to make it that given arbitrary size. It can also be used for easily making something (a diagram, path, trail, ...) the same size as something else, with the help of the newsizeSpec2D
function.  New
sizedAs
function, for setting the size of some object to be "the same as" some other object.  New
sizeSpec2D
function for conveniently calculating the size of an object as aSizeSpec2D
value (for use with the newsized
funtion).
 New
๐ New
extrudeEnvelope
andintrudeEnvelope
functions for modifying envelopes in a single direction only, as well as new functionsextrude{Left,Right,Bottom,Top}
specializingextrudeEnvelope
to 2D.arcCW
draws clockwise arcs;arc'
draws arcs counterclockwise or clockwise as the radius is positive or negative, respectively.๐ fill color attribute is generalized to support "recommended" and "committed" colors; text objects use a recommended fill color of black.
๐ New instances
The
Show
instance forR2
now produces something like2 & 6
instead ofR2 { unR2 = (2,6) }
. TheRead
instance has also been changed to match, soread . show = id
.๐
Enveloped
instance forFixedSegment
๐
Traced
instances forSegment
,FixedSegment
,Trail
, andPath
๐ New derived
Eq
instances forLineCapA
,LineJoinA
,Dashing
,DashingA
,FillRule
,Font
,FontSize
,FontSlant
,FontSlantA
,FontWeight
, andFontWeightA
Renderable Ellipsoid NullBackend
instance
API changes
Data.Colour
(minusatop
andAffineSpace
) is now reexported from Diagrams.Prelude for convenience.The
beneath
function is now infixl 6.The
BoundingBox
module has had a complete overhaul. There is now a special empty bounding box, and bounding boxes are an instance ofMonoid
.The type of
withEnvelope
has been slightly generalized.๐
Diagrams.TwoD.Adjust.adjustSize
is now deprecated; it has been renamed and moved toDiagrams.TwoD.Size.requiredScaleT
.expandPath
has been renamed toscalePath
.
Dependency/version changes
๐ Allow
datadefault
0.4 and 0.5๐ Allow
base
4.6๐ Allow
containers
0.5
๐ Bug fixes
arc
andarcT
functions now always produce counterclockwise arcs, as claimed.
Implemented enhancements:
โจ Enhancements for
arc
s. #54align and friends should be in terms of a new 'Alignable' class instead of 'Boundable' #31
Tools for more accurate boundary calculations in common cases #30
Reimplement Diagrams.TwoD.Ellipse in terms of Diagrams.TwoD.Arc #27
Function to convert angles into 2D unit vectors #23
2D specialization of 'beside' which takes an angle instead of a vector #22
Generalize showOrigin function #21
โ Add generic 'extent' and 'breadth' ? functions #20
โ Add shearing transformations to standard library #19
โ Add support for text #15
๐ Allow the user to choose the fill rule used for paths when stroking #14
Image primitives #10
๐ Merge polygon code from Dmitry Olshansky #4
๐ Fixed bugs:
โจ Enhancements for
arc
s. #54boundingBox computes incorrect bounding box for transformed diagrams #39
hcat is really *terrible* performancewise #28
0๏ธโฃ stroke sets the fill rule attribute to a default value, so it can't be changed later #26
Text alignment should be with respect to descent and ascent lines rather than text bounding box #17
incorrect bounds for Bezier segments #11
More combinators in D.Combinators #5
๐ Merged pull requests:
๐ Renamed
expandPath
toscalePath
to make room #61 (fryguybob)โ Added
Eq
instances for some data structures. #59 (fryguybob)๐ More involved diameter benchmark + better implementation #58 (mgsloan)
๐ Fixed
arc
andarcT
so they are always CCW. #56 (fryguybob)๐ new sized, sizedAs, and sizeSpec2D functions #52 (byorgey)
โก๏ธ Update to track with diagramscore renaming, and a better Show instance for R2 #47 (byorgey)
Minor tweaks due to monoidextra and dualtree changes #45 (byorgey)
0๏ธโฃ split out default attribute setting and size adjustment into separate functions #42 (byorgey)
๐ New module enabling nice syntax for constructing and patternmatching literal points and vectors #1 (byorgey)