New features
* `set_vertex_values()` allows setting values on a surface from code
* `create_convex_hull_from_surface` (Menu: `Tools > Surfaces > Convex hull (vedo, nppas)`)
* `remove_duplicate_vertices` (Menu: `Tools > Surfaces > Remove duplicate vertices (vedo, nppas)`) (thanks to jo-mueller )
* `smooth_surface` (Menu: `Tools > Surfaces > Smooth (vedo, nppas)`)
* `subdivide_adaptive` (Menu: `Tools > Surfaces > Subdivide adaptive (vedo, nppas)`) (thanks to jo-mueller )
* `subdivide_centroid` (Menu: `Tools > Surfaces > Subdivide centroid (vedo, nppas)`)
* `decimate_quadric` (Menu: `Tools > Surfaces > Decimate surface (quadric, vedo, nppas)`)
* `decimate_pro` (Menu: `Tools > Surfaces > Decimate surface (pro, vedo, nppas)`)
* `sample_points_from_surface` (Menu: `Tools > Points > Create points from surface (vedo, nppas)`)
* `subsample_points` (Menu: `Tools > Points > Subsample points (vedo, nppas)`)
* `create_convex_hull_from_points` (Menu: `Tools > Surfaces > Convex hull of points (vedo, nppas)`)
* `fill_holes_in_surface` (Menu: `Tools > Surfaces > Fill holes (vedo, nppas)`) (thanks to jo-mueller )
* `gastruloid` (Menu: `File > Open Samples > nppas > Gastruloid`) is derived from AV Luque and JV Veenvliet (2023) which is licensed [CC-BY](https://creativecommons.org/licenses/by/4.0/legalcode) and can be downloaded from here: https://zenodo.org/record/7603081 (thanks for the support to Cryaaa)
* `marching_cubes()` is an alias for `all_labels_to_surface()`
* `surface_quality_table()`, `add_quality()` and `Quality` now support measuring curvature
* `SurfaceTuple` objects can now be rendered in Jupyter notebooks
* For `surface_to_binary_volume()` the `as_large_as_image` parameter is now optional
Bug fixes
* fix error when mesh not clicked by kevinyamauchi in https://github.com/haesleinhuepf/napari-process-points-and-surfaces/pull/26
Backwards compatiblity breaking changes
nppas does not have open3d as dependency anymore. However, functions using open3d still exist (and are deprecated). To make use of them, you need to install open3d manually as described [here](http://www.open3d.org/docs/release/getting_started.html).
Deprecated functions
* `add_spherefitted_curvature()` is deprecated, use `add_quality(..., Quality.SPHERE_FITTED_CURVATURE_..._VOXEL)`.
* `add_curvature()` is deprecated. Use `add_curvature_scalars()` instead,
* `spherefitted_curvature` is deprecated. Use `add_quality(..., Quality.SPHERE_FITTED_CURVATURE_..._VOXEL)` instead,
* `_knot_mesh()` and `example_data_knot()` are deprecated,
* `_standford_bunny()` is deprecated. Use `_vedo_stanford_bunny()` instead,
* `to_vector_d()` is deprecated,
* `to_vector_i()` is deprecated,
* `to_vector_double()` is deprecated,
* `to_numpy()` is deprecated. Use `numpy.asarray()` instead.
* `to_mesh()` is deprecated. Use `to_vedo_mesh()` instead,
* `to_point_cloud()` is deprecated. Use `to_napari_points_data()` instead.
* `to_surface()` is deprecated. Use `to_napari_surface_data()` instead,
* `convex_hull()` is deprecated. Use `convex_hull_from_surface()` instead,
* `filter_smooth_simple()` is deprecated. Use `smooth_surface()` instead.
* `filter_smooth_laplacian()` is deprecated. Use `smooth_surface()` instead.
* `filter_smooth_taubin()` is deprecated. Use `smooth_surface()` instead.
* `simplify_vertex_clustering()` is deprecated. Use `decimate_quadric()` or `decimate_pro()` instead.
* `simplify_quadric_decimation()` is deprecated. Use `decimate_quadric()` instead.
* `subdivide_loop()` is deprecated. Use `subdivide_adaptive()` or `subdivide_centroid()` instead.
* `sample_points_uniformly()` is deprecated. Use `sample_points_from_surface()` instead,
* `sample_points_poisson_disk()` is deprecated. Use `sample_points_from_surface()` instead,
* `voxel_down_sample()` is deprecated. Use `subsample_points()` instead,
* `points_to_convex_hull_surface()` is deprecated. Use `create_convex_hull_from_points()` instead
* `surface_from_point_cloud_alpha_shape()` is deprecated. Use `create_convex_hull_from_points()` instead.
* `surface_from_point_cloud_ball_pivoting()` is deprecated. Use `create_convex_hull_from_points()` instead.
* `fill_holes()` is deprecated. Use `fill_holes_in_surface()` instead.
Miscellaneous
* The menus `Tools > Measurement > Surface quality`, `Surface quality table` and `Surface curvature` were moved to `Tools > Measurement maps`
* Measuring sphere-fitted curvature leading to `NaN` results do no longer lead to an error but to a warning instead.
* Menus in `Tools > Surfaces > Example data` have been moved to `File > Open Samples`
* Menu `Tools > Measurement > Surface quality/annotation to table (nppas)` has been moved to `Tools > Measurement tables`
New Contributors
* kevinyamauchi made their first contribution in https://github.com/haesleinhuepf/napari-process-points-and-surfaces/pull/26
**Full Changelog**: https://github.com/haesleinhuepf/napari-process-points-and-surfaces/compare/0.3.3...0.4.0