# Change Log ## 0.4.1 (2026-05-29) ## 0.4.0 (2026-04-30) ### Feat - **delaunay.ConvexHull**: revamp GiftWrapping and add QuickHull for 2D convex hulls - **delaunay**: Add support for 2D constrained Delaunay triangulation - **mesh.dmesh**: add NodeLabels, additional methods - **improvement.Improve**: update TetImprove to Improve, add tests - **mesh.plot**: add optional input for title - **contour**: add voxel_mode option to SurfaceMesh and TetMesh - **tree**: Add KDTree query_knn - **tree**: add KDtree and KNN search for octree - **rays**: add PintsInBox, PointsInBox2D - **QuadtreeNode**: set up preliminary nearest neighbor search ### Fix - **mesh**: fix labels in mesh2dmesh conversion - **improvement.SmartLaplacianSmoothing**: fix bug for TangentialSurface=False - **delaunay.Triangle**: fix inputs to handle constraints more reliably - **converter.im2voxel**: fix bug in im2voxel - **improvement.SmartLaplacianSmoothing**: update and speed up smart laplacian smoothing - update dependencies - **primitives.Revolve**: fix occasional overlapping elements - **contour.MarchingCubesImage**: fix bug in cleanup - **__init__**: Update optional numba logic, export dmesh - **improvement**: update Contract, Split, Flip to new dmesh class, other bug fixes - **delaunay.BowyerWatson2d**: major efficiency improvements - **mymesh.dmesh**: convert from jitclass to StructRef - **__init__**: fix urllib import - **utils.BaryTri**: Improve barycentric coordinate efficiency - **utils.identify_elem**: add pyr13 and wdg15 to identify_elem - **utils.Face2NodeNormal**: fix nan handling - **contour**: bug fix in MarchingElements - **image**: reduce number of unnecessary voxels going to marching cubes/tets - **contour**: additional efficiency improvements for contouring - **SurfaceMesh**: fix some options for MarchingCubes - **MarchingCubes**: improve efficiency ## 0.3.0 (2025-12-15) ### Feat - **improvement.Flip**: implement preliminary flipping procedures - **mymesh.mesh.dmesh**: add removeElems function - **improvement.Split**: add support for triangular mesh edge splitting - **curvature.ImageCurvature**: support non-isotropic voxel sizes - **demo_image**: add scalefactor option - **register**: add AxisAlignMesh - **mesh**: add Transform method ### Fix - **quality.Skewness**: fix type handling - **delaunay.FanTriangulation**: fix handling of unordered hull edges - **mesh.plot**: fix clim option - **visualize.View**: improve plotting of points - **primitives.Box**: switch n to optional - **utils.identify_elem**: handle empty mesh edge case - support quadratic elements in surf2tris ## 0.2.0 (2025-11-03) ### Feat - add TaubinSmoothing ### Fix - bugfixes in Image2Image - improve ICP performance and robustness - improve MVBB by handling 2D rotations - convert quadratic triangles to linear for stl write - improve efficiency in RaysSurfIntersection ## 0.1.1 (2025-10-10) ### Feat - add additional surfaces to tpms ### Fix - handle sets in mymesh2meshio - improve handling of meshes for .ply - improve handling of binary option in write - support for quadratic surface elements in identify_elem - make bounds and h optional when providing background ## 0.1.0-alpha (2025-09-22) ## 0.0.1 (2024-11-24)