Releases: BlueQuartzSoftware/EbsdLib
Release list
v3.1.0
REL: Version 3.1.0 (#51)
-
DOC: Update various URLs to bluequartz.net
-
BUG: Fix pole figure axis labeling. Now use A1, A2, A3 for axis labels and get away from the arbitrary RD, TD, ND
-
STY: Nudge Y-axis label vertical position in pole figure
-
REFACTOR: Extract shared pole figure chrome into PoleFigureChrome module
-
ENH: Add StereographicProjectUpperHemisphere projection helper with tests
-
ENH: Add DiscreteMarkerStyle to CompositePoleFigureConfiguration_t
-
ENH: Add MarkerOccupancyGrid for marker decimation with tests
-
ENH: Add RenderDiscreteMarkerSprite opaque marker sprite renderer with test
-
ENH: Implement DiscretePoleFigureCompositor with sprite stamping + decimation
-
ENH: Add GeneratePoleFigureComposite dispatch routing discrete vs raster
-
TEST: Add >1M-pole discrete render performance guard
-
TEST: Add hidden discrete pole figure PNG export probe
-
BUG: Default flipFinalImage to true so pole figures render +Y-up
-
TEST: Route All_Laue_Classes exemplar generation through GeneratePoleFigureComposite
-
TEST: Point pole figure exemplars to regenerated Pole_Figure_Images_v3
-
STY: Remove unused EbsdStringUtils include from PoleFigureCompositor.cpp
-
BUG: Honor flipFinalImage in discrete vector pole figure orientation
-
ENH: Default hex/trig IPF and pole figures to the X||a (TSL) convention
-
CI: Ensure Linux CI uses Release builds
-
TEST: Validate X||a (TSL) pole-figure positions against MTEX golden.
-
DOC: Finalize 3.1.0 API reference and convention-default consistency
Signed-off-by: Michael Jackson mike.jackson@bluequartz.net
v3.0.0
EbsdLib 3.0.0
Major release centered on a rewritten, MTEX-validated pole figure
pipeline and a unified IPF color-key system.
Highlights:
Pole figures: overhauled generation pipeline; positions validated
against MTEX 6.1.0 across all Laue classes (396/396 buckets, worst
point deviation 6.29e-8).
Hex/trigonal conventions: canonical X||a* with selectable X||a;
HexConvention threaded through symmetry ops, IPF color, sphere
coordinates, legend labels, and pole figure names.
IPF color keys: ColorKeyKind dispatch on LaueOps with three keys —
TSL (EDAX/AMETEK), PUCM (new perceptually-uniform), and
Nolze–Hielscher (MTEX-compatible HSV); standard and gridded legends.
Rendering: image output switched from TIFF to PNG (STB); IPF triangle
legends cropped to content; new render_ebsd CLI emitting IPF map,
pole figure, and legend.
Fixes: PUCMColorKey lazy-init thread race, GriddedColorKey SST
clamping, 622 legend vertical-column artifact, cubic misorientation
precision, Triclinic Nolze–Hielscher flat-gray, MSVC build errors,
and cross-compiler raster-test drift.
Docs: 3.0 release notes, v3 API reference, convention diagrams, and a
redesigned README with a visual showcase.
Breaking changes: several LaueOps IPF / pole-figure signatures now take
ColorKeyKind / HexConvention parameters, some enums were reordered, and
PNG replaces TIFF for image output. See the v3 API reference for
migration details.
v2.4.1
BUG: CubicOps - Recover precision for misorientations on cubic sym ops
In CubicOps::calculateMisorientationInternal, compute the explicit reduced
quaternion's vector components for each of the three sym-op candidates and
extract the angle as 2atan2(|v|, w) instead of 2acos(w).
The acos(w)-near-1 form was catastrophically ill-conditioned for cubic
misorientations that lie on a 4-fold (90° about c-axis), 3-fold (120° about
[111]), or 2-fold sym op. With float32-stored input quaternions promoted
to double, (qco.z()+qco.w())/sqrt(2) lands at ~1-1.7e-8 instead of 1.0;
acos then amplifies the ULP-level noise to ~2e-4 rad ≈ 0.02° residual.
The new form recovers the precision: explicit components like
(qco.z - qco.w) evaluate to exactly 0 in IEEE 754 when qco.z == qco.w,
regardless of upstream float32 truncation noise. The sqrt(1 - w*w) form
inherits the lost precision; the explicit-component form does not.
v2.4.0
What's Changed
- BUG: Ensure phases are ordered correctly in the PhaseVector container
- ENH: Add 3 Image pole figure generation with Legend
v2.3.0
- C++20 required
- Added Watson and Von-Mises Fisher orientation sampling
- VER: Update EbsdLib version to 2.3.0
v2.2.0
DataArchive
This holds data for EbsdLib testing
Instructions
Compress your file using tar.gz. If the file was created by SIMPL/DREAM3D then add a 6_6_ prefix to the file. If there is a .xdmf file also include that file in the tar.gz.
The command to tar up the archive would be: tar -zvcf Foo.tar.gz Foo.* which will archive all files that are named Foo.*, so Foo.dreamd and Foo.xdmf.
compute the SHA512 hash using shasum -a 512 [FILENAME].
Update the table below.
Upload your file.
Scroll down to the bottom and click the "Update Release" button.
Update the Top Level CMakeLists.txt file to call the download_test_data cmake function with the new data archive name and hash.
Deprecated
These files are unused and slated to be removed in upcoming update
| Test Name | SHA 512 Hash |
|---|---|
| Laue_Orientation_Clusters_v6.tar.gz | f327d3d2a86d539b3c1f3fc755d8f5741d8eb68aab45fc1ab54d9e5db48643903f9a37898366203e6eb2e7585ce57c6e186cca2107acb1a53318b813345cb10a |
| Pole_Figure_Images.tar.gz | fe395dbc05c5408e806b6271873a21a9cef343c940126fed682233b21a793d6e62b3d33a4ac2a77bf5789c514187a595798e823f1f1fd7f71360fdea6e6500e8 |
| Pole_Figure_Images_v2.tar.gz | f272af212fa634d702129721de4b5bbb62a89a0cf872f4230df3ad809cf5c7c6c075847d93efe9c1866c2a832893602b9486937679bb0a1d5987df26f9766799 |
| Pole_Figure_Images_v3.tar.gz | 0930baa54ceb7c1d468e6f9b1ee0ffffbdf63b881b7199484136377cc30e7049e94f4cb37b9f199fd53da32c4aac1dd448d5e0b7ef86314696561f07e4ba6ea9 |
v2.1.0
- BUG: Fix bugs inside of the _calcRodNearestOrigin function.
Earlier commit from Nov 2025 changed the RodSym values to 4 component values but
that function still assumed it was a 3 component Rodrigues Orientation.
-
Update some static constants to constexpr
-
COMP: Remove legacy float[3][3] for MatSymOp functions
-
ENH: Update more functions, static constants, formatting and other bits
v2.0.0
Rewrote the entire Orientation Transformation set of classes.
Updated the Matrix3x3 and Matrix3x1 classes to be more compatible with the new Orientation classes.
Updated unit testing to use Catch2
v1.0.40
- BUG: Fixes issues when computing the FZ Quaternion from an input quaternion. The code is taken directly from the EMsoftOO code base.
- API: Expand the GetFZQuat to each of the subclasses.
- API: Expand Quaternion API to include functions to create a positive Quaternion
- Fix issue in H5AngVolumeReader when not reading Euler Angles from a file
- Added API to all LaueOps classes to return an orientation in the fundamental zone
- GIT: Update .gitignore with CMakeUserPresets.json
- Update Copyright Years