Releases: Deep-MI/LaPy
LaPy v1.5.0
What's Changed
- add polygon.py to expose Polygon.resample method by @m-reuter in #96
- add testing for polygon
- allow passing header instead of full images for TK-RAS conversion in write_fssurf, also deal with other non-MGH files
- replace print statements with logger calls
- code hardening (adding checks for out-of-range or division by zero)
- improve docstrings everywhere
- add type hints
- replace exits with raise errors
Full Changelog: v1.4.1...v1.5.0
LaPy v1.4.1
Hotfix:
- Add underscore to in-place mesh operation function
TriaMesh.keep_largest_connected_component_ - Adjust tests
- Bump version to 1.4.1 (1.4.0 should not be used)
Full Changelog: v1.4.0...v1.4.1
LaPy 1.4.0
What's Changed
- Add better smoothing options for triangle mesh (Laplace and Taubin)
- Add functionality to map from voxel coordinates to surface RAS (tk) coordinates when writing FreeSurfer files
- Add code to compute connected components and to reduce the mesh to the largest connected component
- For curvature computation use eigh (for symmetric matrices) rather than eig
- Add more automated testing
- Improvements to documentation and minor fixes
Note, that TriaMesh.smooth_vfunc() is now deprecated and should be replaced with smooth_laplace(lambda_=1) for same functionality. Or use other laplace or smooth_taubin smoothing.
Also, the in-place mesh smoother TriaMesh.smooth_ now uses Taubin to avoid mesh shrinkage. It probably needs more iteration as the diffusion is slower than in the simple implementation before.
Full Changelog: v1.3.0...v1.4.0
LaPy v1.3.0
Release v1.3.0
When extracting level paths on a triangle mesh, it was important to know on what edges and where exactly the level set crosses the triangle edges. For example for inserting these points into the mesh later or for sampling another function on the mesh at those locations later. We added this functionality to tria_mesh level_path changing the function call and return interfaces slightly. See the documentation of this function for details.
https://deep-mi.org/LaPy/dev/api/generated/lapy.TriaMesh.html#lapy.TriaMesh.level_path
What's Changed
- return edge indices and ratios for levelpaths in #79
- set code coverage to informational (no failures) in #71
- Docstrings in #75
- Bump actions in several PRs
Full Changelog: v1.2.0...v1.3.0
LaPy v1.2.0
What's Changed
Full Changelog: v1.1.2...v1.2.0
LaPy v1.1.2
Summary
This mainly fixes a minor bug in tria_compute_rotated_f, avoiding a singular matrix by specifying an arbitrary Dirichlet boundary condition at one vertex.
Also fixes an issue with solver.poisson when passing both a function and boundary conditions (adding a new axis, to have a 2d matrix with one column).
What's Changed
- add more ruff lint rules by @m-reuter in #66
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #68
- Fix rotate and poisson by @m-reuter in #69
Full Changelog: v1.1.1...v1.1.2
LaPy v1.1.1
LaPy v1.1.0
What's Changed
- Fix documentation build by @mscheltienne in #41
- Bump actions (multiple) by @dependabot
- Add LaPy pytest and test cases by @engrosamaali91
- Improve error handling in tria_io private subpackage by @dkuegler in #50
- Fix build on MacOS with new M chips by @m-reuter in #58
- Avoid SciPy 1.13.0 (due to their bug) by @m-reuter
- Add fsinfo mesh information to some init calls by @dkuegler in #62
- Some minor code cleanup by @m-reuter
New Contributors
- @engrosamaali91 made their first contribution in #43
- @dkuegler made their first contribution in #50
Full Changelog: v1.0.1...v1.1.0
v1.0.1
v1.0.0
LaPy v1.0.0
Attention: this release contains API changes!
- Classes: TriaMesh, TetMesh, and Solver are still available directly at top level and imported directly from lapy.
- Mesh IO: mesh classes have been extended with IO class member functions and TriaIO and TetIO have been deprecated. Use read_* and write_* class members to load and write mehses, for example, TriaMesh.read_vtk() to import a VTK triangle mesh file. This simplifies IO greatly.
- Module names have been changed to comply with PEP8 conventions (lower case). For example, DiffGeo to diffgeo, FuncIO to io, and Plot to plot, etc.
What's Changed
- Documentation build by @mscheltienne in #22
- Fix numpy deprecation issues by @kdiers in #28
- Restructure by @m-reuter in #30
- Fix examples and update changelog by @kdiers in #31
- add modules initially by @m-reuter in #32
- docstrings update and rename local modules by @m-reuter in #33
Full Changelog: v0.5.0...v1.0.0