Release v2.3.9.192
March 18, 2024
![](https://meshlib.meshinspector.com/wp-content/uploads/2024/01/news_4.png)
Updates
Meshes:
- Optionally return left mesh from trimWithPlane(…)
- Support fully degenerate triangles in Delaunay check
- Fix raytracing on GPU, output intersection point
- SubdivideSettings::projectOnOriginalMesh and RemeshSettings::projectOnOriginalMesh
- Compute connected components of undirected edges
- MeshTopology::flipOrientation( const UndirectedEdgeBitSet * fullComponents )
Polylines:
- Add Polyline::edgePoint(EdgePoint) and toEdgePoint
- Section polylines
Point Clouds:
- Triangulation: use the given number of nearest neighbors instead of a fixed radius
- Local Triangulations: quality improvements and performance optimizations, better triangulation of regular grids
- Auto-orient local triangulations without point normal
- autoOrientLocalTriangulations(…) returns repeated triangles
- Implement makeOrientedNormals(…) via autoOrientLocalTriangulations(…)
- findBoundaryPoints(…) moved in TriangulationHelpers and implemented via local triangulation
- Add functions to find (e.g. large) point cloud components
- Add trimWithPlane(…) for point clouds
- findAvgPointsRadius(…) now computes actually average radius
- Improve points sampling, more output options
- pointsToDistanceVolume(…) for signed distance field computation near points with normal, CUDA version of the function
- pointsFusion(…) to convert point cloud with normals into mesh via signed distance volume
Python interface:
- Exposed BuildSettings for building a mesh from numpy
- Expose all edgePoints
- Expose mesh normals to python and to numpy
- Expose movement body
- Expose straighten boundary
- Expose make bridge function
- Add duplicate non-manifold vertices param in numpy
UI & Visualization:
- Add points and lines in dense box
- Support picker in point cloud mode / Add ObjectPoints and ObjectLines support in SurfacePointWidget and SurfaceContoursWidget
- Clip plane affects labels (fully show/hide by pivot point)
- detectFlatShading(…) decides by area near sharp edges
- Add clickable object names
- renderUi() objects now block onMouseDown events
- Find available custom themes
- Decrease default splash screen time
- Better angle visualization
- Add toolbar upgrade mechanism
- Highlight selected primitives count in menu by red color
- Display mesh volume on information tab
- Settings window enhancements
- Enable deleting groups in side menu
- Add transparent checkbox in screenshot tool
OS support:
- Opens given file in associated application – OpenDocument( path )
- Use native file dialogs on MacOS
- Fix main window focus after file dialog on MacOS
- Fix typeid comparisons on MacOs
- Remove obsolete dependencies on MacOS.
- Force X11 usage on Linux
- Improve custom OpenCASCADE build support, fix missing OpenCASCADE library dependencies
- Rework Ubuntu build process
- Display shortcuts with ‘Super’ modifier, fix Mac shortcut
Data Model/Infrastructure/Serialization:
- Introduce SceneRootObject
- Add pointsSelectionChangedSignal
- Add setRenderDiscretizationSignal
- Serialize point size and line width
- A saner VisualizeMaskType
Basic algorithms, functions, macros:
- BitSetParallelForAllRanged(…)
- Add unreachable macro variant w/o return statement
Load/Save Formats:
- Export color map in .OBJ format
- Load point colors from .ASC format
- Speed up reading .ASC files
- Unify reading from plain text point formats
- Load quadrangles from .OFF files
- Load .MISON format
- Refactor reading .STEP model files
Autotests:
- Decimate including degenerate faces check
- Subdivide including degenerate faces check
- Offset
- Fill hole
- Stitch holes
- makeBridge
- Registration
Features – work in progress
Many other usability and stability improvements, better documentation, fast build times.