Release v0.31.0 - #448
Merged
Merged
Release v0.31.0#448
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0.31.0
Modified
SubShapeIdtype alias:RayIntersectionandPointProjectiongained asubshapefield, andContactandShapeCastHitgained
subshape1/subshape2. A shape with no sub-shapes reports0(#443).
QueryDispatcher::distanceandQueryDispatcher::intersection_test, and thedistanceandintersection_testfree functions, now returnShapeDistanceandShapeIntersectioninsteadof a bare
Realandbool, so they can report the sub-shapes too. Read.distanceor.intersectingto recover the previous value (#443).sub-shape's index: a
TriMeshray-cast reports the triangle's own face, and the triangle itselfis the result's
subshape.TriMesh::triangle_normalandHeightField::convert_triangle_feature_idtake that sub-shape index directly, and
TriMesh::is_backfacetests the triangle's own face(#443).
Shape::as_composite_shapenow returnsOption<&(dyn CompositeShape + Sync)>, so composite-vs-shapecontact manifolds can be computed across threads under the
parallelfeature(#447).
Capsulenow use an analytic intersection test instead of GJK: faster, andaccurate for rays starting far from the capsule (#446).
num-deriveto 0.5, andptreeto 0.5 andkiss3d(visual examples) to 0.46 for thedev-dependencies.
Added
CompoundFlags::FIX_INTERNAL_EDGESmakes aCompoundtreat the edges (2D) or faces (3D) its parts share asinterior to the union, so a body sliding across the cut between two parts of a convex
decomposition no longer catches on it.
Compound::PartNormalConstraintsis nowCompoundPseudoNormals, matching whatTriMeshandPolylinealready provide(#442).
TriMeshFlags::DEFORMABLEandPolylineFlags::DEFORMABLEmark a shape whosevertices move while its pose stays fixed. Move them with the new
TriMesh::set_vertices/Polyline::set_vertices(orupdate_verticesfor in-place edits), which refit the BVH andrecompute the pseudo-normals; the contact-manifold queries then recompute contacts instead of
reusing the cached ones. Also adds
CompositeShape::is_deformableandContactManifold::mark_shapes_deformed(#447).transformation::volume_meshfills a closed boundary with a simplex mesh for FEM simulation:a refined constrained Delaunay triangulation in 2D, a lattice cover (optionally smoothed and
subdivided, or restricted to the surface's crust) in 3D. See
VolumeMesh,VolumeMeshParametersandMeshEnclosure(#447).TriMeshFlags::FIX_INTERNAL_EDGES_TWO_SIDEDfixes internal edges on a mesh used as a two-sidedsurface, keeping back-facing contact normals in the mirrored pseudo-normal cone instead of
discarding them (#447).
Polyline::pseudo_normalsexposes the per-vertex outward pseudo-normals (2D)(#447).