Changelog for waterfall-cad-0.5.1.0
Changelog for waterfall-cad
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to the Haskell Package Versioning Policy.
Unreleased
0.5.1.0
Added
- Added
unions
,intersections
, and specialized mconcat forSolid
to improve performance
0.5.0.1
Fixed
- direction of internal
edgeValue
function, used by waterfall-cad-svg package
0.5.0.0
Added
- Add
splice
/splice2D
/splice3D
functions - Add
splitPath
/splitPath3D
/splitPath2D
functions - Add Epsilon constraint to
closeLoop
fixing behaviour when endpoints are very close together - Add
matTransform
andmatTransform2D
methods to theTransformable
andTransformable2D
typeclasses, respectively - Add
shapePaths
toWaterfall.TwoD.Shape
Changed
- Most functions in
Waterfall.Path.Common
now have anEpsilon
constraint pathEndpoints
/pathEndpoints3D
/pathEndpoints2D
now returns aMaybe
(in case of an empty path)offset
now no longer takes a toleranceoffsetWithTolerance
is available if this is required
pointedLoft
andloft
now no longer takes a precision argumentpointedLoftWithPrecision
is available if this is required
- Rename
fromPath
tomakeShape
as I think this will result in more readable code
Fixed
- fixed behaviour when scaling with a unit vector (no scaling)
- fixed
Path
/Path2D
representation, so that theMonoid
instancemempty
value no longer generates crashes
0.4.0.0
- Add
Waterfall.Loft
containingloft
andpointedLoft
- Change the
Monoid
instance forPath
andPath2D
, so that in the expressiona <> b
a line is added between the end ofa
and the start ofb
, unless these points are coincident. - Reverse the order in which Path.pathFrom adds path segments; required by the new Monoid behaviour.
- Add
Waterfall.Path.Common.reversePath
, reversing the direction of aPath
orPath2D
, along with monomorphised versionsreversePath3D
andreversePath2D
- Fix order of rotation of
Waterfall.TwoD.Path2D.repeatLooping
0.3.0.1
Added
- Add
pathEndpoints
,pathEndpoints2D
andpathEndpoints3D
0.3.0.0
Changed
- The project now depends on (and supports) OpenCascade
7.8.0
or later
0.2.2.1
Fixed
- Importing files that contain multiple separate solids should no longer error
0.2.2.0
Added
- New functions in
Waterfall.IO
- Support for reading (as well as writing) all file formats
readSTL
,readSTEP
,readGLTF
,readGLB
,readOBJ
- (Wavefront) OBJ support (
writeOBJ
) - Convenience methods
readSolid
andwriteSolid
inferring the format from the file extension
- Support for reading (as well as writing) all file formats
Changed
- Make error handling for actions in
Waterfall.Text
throw aWaterfallIOException
on failure
0.2.1.0
Added
- GLTF (graphics library transmission format) support:
writeGLTF
andwriteGLB
inWaterfall.IO
- obj file format support
writeOBJ
inWaterfall.IO
0.2.0.0
Added
- the following
volume
,momentOfInertia
andcenterOfMass
queries inWaterfall.Solids
volume
momentOfInertia
centerOfMass
aabbToSolid
toWaterfall.Solids
(converts the output ofaxisAlignedBoundingBox
into a solid)Waterfall.BoundingBox.AxisAligned
, for calculating (and reifying) an (axis aligned) bounding box of a solidWaterfall.BoundingBox.Oriented
, for calculating (and reifying) an (oriented) bounding box of a solid
Changed
- Changed the representation of
Solid
(and other Waterfall values) from a newtype wrapper toData.Acquire
to a nakedPtr
, with destructors called using Finalizers.- This means it's possible to support "queries", like calculating the volume of a Solid
- It also means there's some risk of exceptions being thrown when working with plain values, which wasn't present before
Waterfall.Text.fontFromPath
andWaterfall.Text.fontFromSystem
now returnIO
actions rather than embedding the action into the underlyingShape
Fixed
- Typo in documentation for
Waterfall.Solids.unitCone
0.1.2.2 - 2024-01-09
Fixed
- Fixed dependency versions
0.1.2.1 - 2024-01-09
Added
- Added
mirror
toTransformable
typeclass, andmirror2D
toTransformable2D
- Added
fromPath2D
toWaterfall.Path
to make 2D paths into 3D ones. - Added
centeredCylinder
andunitCone
toWaterfall.Solids
Fixed
- Handle offsetting by zero (return the unmodified shape)
- Fix rotation of endcaps in a
sweep
0.1.1.1 - 2023-12-12
0.1.1.0 - 2023-12-12
Added
- Add Waterfall.Offset, offsetting an object by a certain amount
- Add
unitCircle
,unitSquare
andcenteredSquare
toWaterfall.TwoD.Shape
Fixed
- Correctly rotate and translate endcaps to the
Path
in asweep
0.1.0.0 - 2023-12-05
Added
- Reexported all modules under top level
Waterfall
module - Refactored common code in
Path
andPath2D
into theAnyPath
typeclass - Added Waterfall.Text, containing text rendering functions
Fixed
- Fix build on MacOS (tested with the homebrew install of OpenCASCADE)