Skip to content

REL: Version 3.1.0 Release#50

Open
imikejackson wants to merge 18 commits into
BlueQuartzSoftware:developfrom
imikejackson:topic/v3_0_1_prep
Open

REL: Version 3.1.0 Release#50
imikejackson wants to merge 18 commits into
BlueQuartzSoftware:developfrom
imikejackson:topic/v3_0_1_prep

Conversation

@imikejackson

Copy link
Copy Markdown
Collaborator

No description provided.

imikejackson and others added 17 commits June 23, 2026 18:30
Now use A1, A2, A3 for axis labels and get away from the arbitrary RD, TD, ND
…cimation

Wires together LaueOps crystallography, StereographicProjectUpperHemisphere,
RenderDiscreteMarkerSprite, MarkerOccupancyGrid, and shared chrome free
functions into DiscretePoleFigureCompositor::generateCompositeImage. Adds
smoke (ProducesImage) and determinism (IsDeterministic) tests; all 3
DiscretePoleFigureCompositorTest cases pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…FigureComposite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The v3 archive reflects the new discrete vector rendering plus current axis
label positions. NOTE: Pole_Figure_Images_v3.tar.gz must be uploaded to the
EbsdLib test-data archive before CI / fresh clones can download it; the data
is already present locally for verification.
* The marker Y mapping in DiscretePoleFigureCompositor hardcoded +Y-up
  regardless of config.flipFinalImage, while DrawPoleFigureFrame places
  the A2 label based on that flag — causing label/marker mismatch when
  flipFinalImage=false.
* Gate the cy formula on flipFinalImage: true keeps the existing +Y-up
  (subtracted dy), false uses +Y-down (added dy), matching the raster
  path's conditional vertical flip.
* Add HonorsFlipFinalImage test that compares the figure-1 pixel box
  between flip=true and flip=false, requiring boxDiffs > 0 to confirm
  markers are vertically mirrored by the flag.

Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
  * getDefaultPoleFigureNames now returns plane-family brace notation
    ({001}, {10-10}, {11-20}, ...) for every Laue class. Hexagonal high/low
    no longer switch the a-family label by convention: the family identity
    is convention-independent, so both X||a and X||a* report {11-20}.
  * Default HexConvention is now XParallelA (TSL/EDAX) across the library:
    the generateIPFTriangleLegend API, PoleFigureConfiguration_t, and
    CompositePoleFigureConfiguration_t. IPF colors are convention-invariant;
    only the corner/pole labels and hex/trig pole positions follow the basis.
  * Annotate hex/trig IPF legends with a small "Convention: X||a (TSL)"
    sub-line under the title (centralized in annotateIPFImage); cubic and the
    other non-hex classes are unaffected.
  * PoleFigureChrome renders {hkil} family labels as parenthesized titles.
  * generate_ipf_legends and render_ebsd default to X||a and print their
    output directory; regenerate the shipped IPF legends as PNG (replacing
    the legacy TIFF assets).
  * Route PoleFigureLaueComparisonTest through GeneratePoleFigureComposite so
    discrete figures use the vector-marker renderer; it pins X||a* locally to
    stay aligned with the MTEX comparison script.
  * Add LaueOpsTest::IPFColor_SSTCorners asserting SST-corner primaries
    (red apex, green eta-min edge, blue eta-max edge) for all Laue classes,
    and update the family-label assertions.
  * Sync the MTEX pole-figure golden CSV and generator script family labels
    to brace notation.

  Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant