Skip to content

Releases: ABRG-Models/morphologica

The Last C++17 Release

20 Feb 17:29
Compare
Choose a tag to compare

Summary

This is the very last release that will be C++17 compatible. Future releases (and the main development branch) will require your compiler to support C++20.

There are a few small differences since Beautifully Packaged 4 (which is now the first version of morphologica in microsoft/vcpkg!). Mostly this release is just for 'if you just have to have morphologica with a pre-C++20 compiler'.

What's Changed

Full Changelog: v3.4.3...v3.4.4

Beautifully Packaged 4

16 Feb 20:13
Compare
Choose a tag to compare

Summary

Adds a trait_test improvement that is a) simpler (shorter) b) better (identifies std::array<int, 0>) and c) won't trip Visual Studio up

Full Changelog: v3.4.2...v3.4.3

Beautifully Packaged 3

16 Feb 19:39
Compare
Choose a tag to compare

Summary

More packaging tweaks...

Full Changelog: v3.4.1...v3.4.2

Beautifully Packaged 2

16 Feb 14:40
f2b3841
Compare
Choose a tag to compare

Summary

Further work towards a well-packaged morphologica. These changes are all about housekeeping, dotting 'i's and crossing 't's.

What's Changed

Full Changelog: v3.4...v3.4.1

The Beautifully Packaged Release

14 Feb 13:12
Compare
Choose a tag to compare

Summary

This release is part of an effort to clean up the use of third-party code in morphologica so that it is more suitable to be incorporated in packaging systems. The immediate motivation is to have it included in vcpkg see the vcpkg issue here and the associated morphologica issue here.

As part of this release (and the previous release) I have:

  • Transferred nlohmann-json out of morphologica so that a proper external package is used
  • Defaulted to using rapidxml from a third party package (though a bundled version is provided where a package is not available)
  • Removed any use of OpenCV from morphologica (apart from some ifdeffed code in HdfData.h)
  • Removed bundled copies of GL headers from morphologica (they were only used with Linux builds, and I have changed to using system-provided versions of the GL headers)
  • Tidied up a couple of headers that don't need to be installed.

Removing OpenCV necessitated rewriting a test of Bezier curve drawing classes to use GraphVisual. Here is a screenshot demonstrating a rather nice Bezier curve-joining algorithm that I developed a while ago. The purple curve is the auto-join of the red and blue curves. Bezier control points are shown along with the computed curves.

Beziers

What's Changed

Full Changelog: v3.3.1...v3.4

The VoronoiVisual Release again

13 Feb 11:55
Compare
Choose a tag to compare

Summary

vv_release2

This is a very minor point release following v3.3. It simply turns off the compilation of a couple of buildtools by default (to help vcpkg efforts).

The rest of the release notes are (almost) a reproduction of those in The VoronoiVisual Release, v3.3.

This release adds a VisualModel class called VoronoiVisual for making 2.5D Voronoi surface plots of sets of points chosen at arbitrary locations. There are also two other new VisualModels: RingVisual for drawing a coloured circular ring and LengthscaleVisual to draw length-scale bars. It adds speed optimizations for GridVisual and some general improvements (and documentation) of GraphVisual. There are several improvements in core maths classes including morph::vvec, morph::range and the trait-testing code as well as a class for managing Boolean flags called morph::flags.

I finally figured out how to save screenshots (Ctrl-s in any morphologica example) with the background filled in!

What's Changed

Improvements to morph::vvec

Improvements to morph::Config

Optimizations for morph::GridVisual

Improvements to morph::GraphVisual, including better histograms

An awesome new morph::VoronoiVisual class for plotting surfaces over arbitrary points

A nice new morph::flags class

Build improvements

Improvements to morph::range

Trait test improvements

Improvements in morph::Visual

  • Adds a VisualModel-is-valid pointer test function by @sebjameswml in #331
  • Fix Visual::saveImage so that it saves a non-transparent background colour by default.

Full Changelog: v3.2...v3.3.1

The VoronoiVisual Release

12 Feb 21:58
7663a64
Compare
Choose a tag to compare

Summary

vv_release2

This release adds a VisualModel class called VoronoiVisual for making 2.5D Voronoi surface plots of sets of points chosen at arbitrary locations. There are also two other new VisualModels: RingVisual for drawing a coloured circular ring and LengthscaleVisual to draw length-scale bars. It adds speed optimizations for GridVisual and some general improvements (and documentation) of GraphVisual. There are several improvements in core maths classes including morph::vvec, morph::range and the trait-testing code as well as a class for managing Boolean flags called morph::flags.

I finally figured out how to save screenshots (Ctrl-s in any morphologica example) with the background filled in!

What's Changed

Improvements to morph::vvec

Improvements to morph::Config

Optimizations for morph::GridVisual

Improvements to morph::GraphVisual, including better histograms

An awesome new morph::VoronoiVisual class for plotting surfaces over arbitrary points

A nice new morph::flags class

Build improvements

Improvements to morph::range

Trait test improvements

Improvements in morph::Visual

  • Adds a VisualModel-is-valid pointer test function by @sebjameswml in #331
  • Fix Visual::saveImage so that it saves a non-transparent background colour by default.

Full Changelog: v3.2...v3.3

The Colourful Release

03 Dec 09:56
Compare
Choose a tag to compare

Summary

This release brings you:

  • Over 100 new, beautiful, perceptually uniform colourmaps from Crameri and CET (also incorporating code from William Lenthe). The screenshots come from the example programs colourmaps_crameri, hsvwheel, colourmaps_cet and colourmap_browser.

A montage of new morphologica colourmaps

  • The ability to read and visualize spherical HEALPix grids (images from healpixviewer)

Spherical HEALPix data viewed with morph::HealpixVisual

  • Some refactoring of core maths classes (including Scale->scale; Quaternion->quaternion; TransformMatrix->mat44)
  • Improvements in OpenGL context handling along with the ability to coordinate access to the context via a mutex (thanks @connagh-opteran)
  • It also introduces some changes and new features in morph::Grid and GridVisual (thanks @blenk13 and @fabien-colonnier). The screenshot is from the example program grid_border.

A screenshot of the grid_border example program show a GridVisual with borders around the pixels

  • The option to use a signed index in vvec (where v.at_signed(-1) accesses the last element in the vvec)
  • Graph axis labelling improvements (especially re-sizing the font for axis tick labels)
  • Complex number handling in morph::range and morph::scale

What's Changed

New Contributors

Full Changelog: v3.1.1...v3.2

The Correctly Rotated Release

01 Oct 09:57
907adab
Compare
Choose a tag to compare

This point release fixes some rotations that were coded wrong to compensate for the bugs in Quaternion and TransformMatrix. The most significant fix is to correctly rotate y axis labels in GraphVisual.

What's Changed

Full Changelog: v3.1...v3.1.1

The Rotated Release

30 Sep 09:18
800e1fe
Compare
Choose a tag to compare

This point release fixes important bugs in rotation calculations in morph::Quaternion and morph::TransformMatrix and also adds the ability to set angle by axis/angle in the Quaternion constructor and compute rotations by quaternion multiplication. For example:

morph::Quaternion<double> q (u_x, morph::mathconst<double>::pi);
morph::vec<double, 3> v_in = { 2, 6, 0 };
morph::vec<double, 3> v_out = q * v_in;

I changed the name of one internally used method: Quaternion::initFromAxisAngle(vec<float>, float) is now called set_rotation.

It also incorporates some improvements to GridVisual by @fabien-colonnier including the ability to place a border around selected pixels in the Grid. Thanks Fabien!

Other minor changes include github actions for Apple Mac computers and some tweaks to spherical coordinates relating to Geodesics (GeodesicVisual).

What's Changed

Full Changelog: v3.0...v3.1