Skip to content

The 'we are modules' release

Latest

Choose a tag to compare

@sebsjames sebsjames released this 21 Sep 10:54
· 17 commits to main since this release
ca050f9

What's Changed

C++20 Modules

import mplot.visual;

The major change in this release is that matplot is now provided as C++20 modules! I'm finding this beneficial in my own work with the library; it enforces better code design, reduces recompile times in many cases and is convenient. However, it does have one, unfortunate drawback: The code will not compile with GCC (#148) or VisualStudio (#149). Instead, you must (at least at the moment) use LLVM/Clang version 20 or higher. Presumably this is a temporary issue and GCC and VisualStudio will catch up with clang soon.

New features

Hexagonal_FFT

New features in this release include a Runge-Kutta solver example and updates to HexGridVisual following changes to increase the flexibility of sm::hexgrid so that it could be used in a hexagonal fast Fourier transform. There is also a hex FFT example program (but see also https://github.com/sebsjames/hex_fft).

The TriaxesVisual has had its name changed to AxesVisual, and can be used to create 2D and 3D axes. New visuals include PlaneVisual, DoubleHexGridVisual and a BezCurvePathVisual.

It is now possible to append a pre-computed meshgroup to any VisualModel. This is useful for adding a static mesh from, for example, a glTF file to a VisualModel which is otherwise dynamic (say, an insect head model added to dynamically updated insect eyes, as in https://github.com/BrainBeatsBrawn/antpov).

The antpov project also motivated some work on making scripted scene camera movements and on collision detection between oriented bounding boxes.

PR list

Full Changelog: v1.0...v2.0