Skip to content

Releases: BlueQuartzSoftware/EbsdLib

v3.1.0

Choose a tag to compare

@imikejackson imikejackson released this 30 Jun 21:31
21adef1

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

Choose a tag to compare

@imikejackson imikejackson released this 05 Jun 19:02
74fa681

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

Choose a tag to compare

@imikejackson imikejackson released this 29 May 15:52

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

Choose a tag to compare

@imikejackson imikejackson released this 12 Apr 12:35
edde3bf

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

Choose a tag to compare

@imikejackson imikejackson released this 03 Apr 12:55
006a023
  • C++20 required
  • Added Watson and Von-Mises Fisher orientation sampling
  • VER: Update EbsdLib version to 2.3.0

v2.2.0

Choose a tag to compare

@imikejackson imikejackson released this 03 Apr 17:02
  • BUG: Fix Rodrigues 3 arg construtor to static with std::optional return
  • TEST: Create unit tests for all classes where possible (#38)
  • CI: Enable full CI for EbsdLib (#39)
  • BUG: Fix bugs in Matrix3X1, Stereographic, and OrientationConverterTest (#37)

DataArchive

Choose a tag to compare

@imikejackson imikejackson released this 02 Apr 14:50

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

Choose a tag to compare

@imikejackson imikejackson released this 16 Jan 20:44
  • 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

Choose a tag to compare

@imikejackson imikejackson released this 21 Nov 17:00

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

Choose a tag to compare

@imikejackson imikejackson released this 21 Oct 15:29
0211591
  • 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