Releases: adobe/lagrange
Releases · adobe/lagrange
Release list
Lagrange Release v6.20.1
Minor release to upload arm64 macOS wheels for Lagrange's Python bindings.
Lagrange Release v6.20.0
Infrastructure & Bugfixes
- 🚧 Fix nightly wheel version to include date
- 🚧 Fix timeout in GitHub actions CI
- 📖 Add related files in SurfaceMesh header
- 📖 Fix Doxygen grouping for core utilities functions
- 🐛 Fixed bug in
chain_edgesfor complex edge networks
Python Bindings
- 🐍 Add missing binding for
compute_uv_distortion - 🐍 Add missing binding for
AttributeShrinkPolicy - 🐍 Add pythonic API for functions that take an option struct
- ✨ Relax
Attribute.data assignmentto also take python list - ✨ Relax
Attribute.insert_elementsargument to allow python list - 📖 Add missing docstrings for various types
- 📖 Add docstring for all utility and clean up functions docstrings
Core Module
- New
filter_attributes()function andAttributeFilterobject - Possible filters:
included_attributes(name or id)excluded_attributes(name or id)included_usages(bitfield)included_element_types(bitfield)
lagrange::cast()now supports aAttributeFilterinput filter- New
lagrange::scene::cast()helper function
Scene and IO
- Added support for glTF-style scene extensions
- By default, extensions use a Json-like representation
- Optionally, use converters to load user types
Lagrange Release v6.19.0
Infrastructure
- Added CMake option to enable/disable threads with WASM
- Update StackWalker + sscache build
- Enable all modules in GitHub actions
- Fix Asan and Tsan issues in CI
- Enable core/io module without RTTI
- Updated Happly to compile without RTTI
Core module
- Bug fix in chain edges
- Bug fix in
combine_mesh()on meshes withdimension != 3 transform_mesh()now supports 2D mesheslagrange::invalid<T>()now returnsinfinstead of max for floating point types- Added
eigen_to_surface_mesh()conversion function - Added missing Python binding for
compute_dijkstra_distance()
Scene module
- Add scene-to-mesh and mesh-to-scene conversion
- Add python binding
IO module
- Support point cloud loading from
.plyfiles - Update TinyOBJ to support large polygon facets
- Update
load_mesh()with correct aggregation of meshes with transforms
Subdivision module
- Add
SurfaceMeshsupport - Add support for sharp edges, vertices and holes
- Add support for limit surface interpolation and limit normal computation
- Add support for interpolating vertex/indexed attributes such as UV/color etc.
- Add python binding
Lagrange Release v6.18.0
Continuous Integration
- Added StackWalker on Windows for crash debugging
- Fixed AddressSanitizer on Windows
Dependencies and Infrastructure
- Updated nlohmann_json recipe to avoid an issue when used from Lagrange as a dependency
- Updated tbb to v2021.11.0
- Updated Catch2 to 3.4.0
- Updated OpenVDB to v11.0.0
- Added ufbx dependency
- Add flag to enable/disable wasm threads
- Adds an error message when using Xcode 15.0 with the new linker
Core Module
- Fixed issue in topology computation with isolated vertices
- Fixed
weld_indexed_attribute - Fix bug when chaining complex edge loops
Scene Module
- Added
Scenedatastructure
IO Module
- Added
load_mesh_fbx,load_simple_scene_fbx - Added:
load_scene,load_scene_gltf,load_scene_assimp,load_scene_fbx,load_scene_obj - Added
save_sceneandsave_scene_gltf - Point cloud support in .ply load
Python Bindings
- Added support for Python 3.12
- Updated nanobind to v1.8.0
- Added simplified bindings to
imagemodule - Added python bindings to the new
Scenedatastructure - Added python bindings to all the new scene IO functions
Lagrange Release v6.17.0
Infrastructure and Dependencies
- CMake updates:
- More robust handling of BUILD_SHARED_LIBS (enabled CMP0077 and CMP0126)
- Fixed soname and install behavior for MKL and Arpack
- Min CMake version bumped to 3.25
- Fix floating-point issues in unit test for Xcode 14+
- Minor compile fixes for C++20
- Fix UBSan issues
- In core module with lagrange::safe_cast()
SurfaceMesh Updates
- Fix
combine_meshes()for hybrid meshes (e.g. quad dominant) - 5x speedup in
remove_duplicate_facets() - Fix corner merging in tangent/bitangent computation to match mikktspace
unify_index_buffer()now supports edge attributes- New tag
AttributeUsage::Position - New
transform_mesh()function to apply affine transform to a mesh- Transformations applied based on usage tag (Position/Normal/Tangent/Bitangent)
IO Module
- Fix loading of property lists in .ply
Lagrange Release v6.16.0
Infrastructure and dependencies
- Update boost to 1.82.0 and leverage upstream boost cmake setup
- Add support for .netrc in CMake setup
- Rename CMake variable
LAGRANGE_ARTIFACTORY_KEYFILEtoARTIFACTORY_KEYFILE - Add
LAGRANGE_FMT_EIGEN_FIX(off by default) to bypass MSVC C1001 compiler error
Core module
- Improve value attribute support in
unify_index_bufferandSurfaceMesh::create_attribute - Add
lagrange::castsupport for castingSurfaceMeshof different scalar and index types - Add
SurfaceMeshsupport toremove_topologically_degenerate_facets(triangle mesh only) andremove_duplicate_facets
Python module
- Add optional
sharedparameter toSurfaceMesh.attribute - Migrate build backend to
scikit-build-core - Fix reference count leak
- Update logger binding
Lagrange Release v6.15.0
Core Module
- Added support for blocker elements in
compute_components. Deprecatedcompute_bordered_components.h - Improved performance of
is_vertex_manifold. - Added new
DisjointSetsWithSizeclass for union-find
Python Bindings
- Added support for copy of SurfaceMesh:
.__copy__,.__deepcopy__, and.clonemethods.
Lagrange Release v6.14.0
Core Module
- SurfaceMesh updates
- Allow polygonal facets of size 1 or 2
create_attribute_from()supports meshes with different typescompute_dijkstra_distance()support for SurfaceMesh
IO Module
- Fix reading glTF with multiple texcoord attributes
- Fix loading .obj with mixed/missing UV attribute information
Lagrange Release v6.13.0
Core module
- Fixes to legacy TBB 2020.3
- Incorrect aligned memory allocation code
- Fix symbol export for macOS universal builds
- Surface mesh support (and python binding, benchmark, etc.) added to:
permute_facetsdetect_degenerate_facetsremove_null_facetsremove_duplicate_facets
Lagrange Release v6.12.0
Infrastructure
- Improve CMake target folder setting coverage.
- Improve C++20 MSVC compatibility.
Core
- Fixed sub-mesh extraction for 2D meshes.
- Replace
chain_edgesandchain_edges_into_simple_loopswithchain_directed_edgesandchain_undirected_edges. - Added
SurfaceMeshsupport for topology computation, includingcompute_euler,is_vertex_manifold,is_edge_manifold,is_manifold. - Added
SurfaceMeshsupport forextract_boundary_loops.
IO Module
- Added support for saving 2D meshes in .msh format.
Python
- Minor fix for
SurfaceMesh.get_edge_vertices.