Skip to content

Releases: DJBen/StarryNight

3.1.0 Release Notes

26 Oct 06:49
5ea6a6d

Choose a tag to compare

  • Added Constellation.BorderSegment plus StarManager.constellationBorders(for:), exposing precise border arcs (Dec/RA in radians) including Serpens’ split handling for richer constellation outlines.
  • Introduced H3Utils with viewport polyfill support, automatic polar-slice handling, and pole-detection helpers to drive adaptive H3-based rendering without external glue code.
  • StarManager.closeStars(around:maximumAngularDistance:maximumMagnitude:) now returns all stars within an angular radius, enabling multi-selection and highlighting flows.
  • StarManager.stars(inH3Cell:) now takes an H3Index, derives the resolution automatically, and works seamlessly with the new H3 utilities.

API Changes

  • StarManaging protocol updates: stars(inH3Cell:) signature switch to H3Index, new closeStars method, and a new constellationBorders(for:) requirement; the old closestStar and stars(inViewport:) APIs are removed.
  • Constellation.Line now carries star1Id/star2Id instead of full Star instances; consumers should fetch star details via StarManaging when needed.
  • Star.loadInfo/Star.withInfo accept any StarManaging, loosening coupling to the concrete manager.

Fixes & Improvements

  • Corrected Bayer/Flamsteed combined formatting so Bayer letters no longer repeat the Flamsteed number, and StarInfo.displayName now prioritizes Bayer designations ahead of catalog IDs.
  • Localized SpectralType’s SQLite metadata to avoid cross-module references and added @preconcurrency import annotations to silence concurrency warnings.
  • Refined coordinate helpers (cartesianToLatLon, RA/Dec normalization) to return LatLng, keeping spherical math consistent across the new border and H3 workflows.