Changelog for waterfall-cad-0.4.0.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.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)