# ieegio 0.1.0

* Added `burn_curve` to burn electrode trajectories (e.g. depth/`sEEG` leads or `DBS` shafts) into a volume given start and end positions in image native `RAS` coordinates, with configurable radius and per-segment colors
* Added a `merge` mode to `burn_curve` so newly burned trajectories can be composted onto an existing volume instead of overwriting it
* Added a base `R` graphics `plot` method for `ieegio_surface` objects as an alternative to the default `r3js` rendering, useful for static figures and environments without `WebGL`
* Fixed `get_channel` so channels can be looked up by label (in addition to index) for `BCI2000` and `BrainVision` formats
* Fixed `mat_to_quaternion` to correctly handle handedness changes, aligning the `quaternion` sign convention with `FreeSurfer`
* Code style and lint cleanup across the package; rebuilt documentation

# ieegio 0.0.9

* Fixed `CRAN` check issues
* Added volume and surface related functions as `MCP` tools (can be loaded via package `ravepipeline` and `ellmer`)

# ieegio 0.0.8

* Added `new_space` and `as_ieegio_transform` to define coordinate spaces and chain transforms
* Added `io_read_ants_transform` to read `ANTs` affine and displacement field transforms
* Added `io_read_flirt_transform` to read `FSL FLIRT` affine transforms
* Added `volume_to_surface` and `surface_to_surface` for mapping data between volumes and surfaces
* Fixed point transform ambiguity when chaining transforms with different interpretations
* Improved `plot.ieegio_volume` intensity windowing using percentile-based display range (2-98 percentiles), following conventions from `FSLeyes`, `AFNI`, `MRIcroGL`, and `SPM`
* Auto-detection for `CT` vs `MRI` data: excludes zeros by default but includes them when lower percentile is below -500 (indicating `CT` with -1024 background)
* Statistical overlay detection: applies symmetric range for z-score-like data
* Values outside display range are now clamped to boundary colors instead of rendering as transparent

# ieegio 0.0.7

* Added `as_nifti_header` as a workaround when `RNifti` is missing (not installed or running in `WebAssembly`)
* Added automatic checks when pushing commits the repository to `Github`

# ieegio 0.0.6

* Added `write_edf` to save signals as continuous `EDF` format
* Added `YBA` atlas (690 segments) to example data
* Improved `HDF5` checking error messages

# ieegio 0.0.5

* Added `LazyFST` class
* Fixed a bug where `gzipped` is ignored in `io_write_nii.array`
* `LazyH5` fall back to alternatives when `HDF5` is not supported in `wasm`
* Plotting surfaces use `r3js` by default
* Fixed `BrainVision` annotation bugs
* Supported writing to `STL` format (to support importing to `BrainLab`)
* Added supports to read streamlines data (`trk`, `tck`, `tt`, `vtk`)
* Writing to `freesurfer` surfaces also appends orientation information at the end.

# ieegio 0.0.4

* Added merge support for both volume and surface objects; for surface objects, users can choose whether to merge the objects in model or world space
* Added dependency `ravetools` to help speed up sample volumes using `C++`
* Fixed missing transform issue in writing to `GIfTI` format
* Fixed `write_surface` not working when writing to `FreeSurfer` measurement (curvature) format
* Fixed a typo that caused setting volume data resulting in errors
* `as_ieegio_surface` does not require vertices

# ieegio 0.0.3

* Cleaned `h5py` loader
* `mat_to_quaternion` always returns non-negative `w` now
* Added generics `dim` and `length` to volume object
* Fixed annotation issues in `EDF` format
* Time selection is double-sided using greater equal and less equal signs
* Added more sample data
* Supports colored (`RGB[A]`) formats
* Fixed color intensity when `cal_min` and `cal_max` is set
* Using `r3js` for visualizing surfaces
* Added `resample_volume` to sample images (currently only nearest neighbor)
* Added `burn_volume` to burn contacts (positions given in the image native `RAS` coordinate) with any given colors
* Fixed `io_h5_names` returning wrong names when using with `h5py`
* Exported internal class `LazyH5` for down-stream packages
* Added `as_ieegio_volume` and `as_ieegio_surface` to enclose volume or surface data
* Added a flag to disable using `Python`


# ieegio 0.0.2

* Added `h5py` as an alternative back-end support
* Fixed a bug where images are not loaded correctly due to image format being ignored
* Fixed `Torig` (index to `tkr` coordinate transform) issue
* Fixed a global variable issue
* Fixed a bug where file name is not respected


# ieegio 0.0.1

* Initial CRAN submission.
