Repository navigation
Update Box3D to 9e5a4cd - #11
Merged
Merged
Conversation
Box3D moves from 3fc20f5 to 9e5a4cd, the six upstream commits between them. The bindings are regenerated, abi/native-layout.json is re-recorded from the C compiler, and every changed struct mirror follows its header: b3MeshDef gains a size_t stride and clockWiseWinding, b3PlaneResult gains triangle, child and material indices, b3BodyTOIResult is new, the dynamic tree is rewritten around 32-byte paired nodes and a separate proxy array, and hulls, meshes and height fields carry 64-bit hashes. The idiomatic layer only gains members, and package validation against the last release reports no difference for it: - MeshOptions.ClockwiseWinding, and CollisionMesh.FromTriangles<TVertex> for positions read out of an interleaved vertex buffer. - CharacterContact.TriangleIndex, ChildIndex and MaterialIndex. - CharacterMover.TimeOfImpact, for a moving body striking a character. - Joint.IsAwake, and SafetyFactor on BodyDefinition and Body. Box3D.NET.Native breaks where the C declarations broke: b3GetByteCount returns int64, the allocator callbacks take size_t, and the tree, hash, counter and profile fields moved. These are recorded in CompatibilitySuppressions.xml. b3RecPlayer_Create and _Destroy were pure renames upstream, so the old names stay as obsolete forwarders. Shape casts now pass through the back of mesh and height field triangles, as ray casts always have. The tests that pin this fail against the previous Box3D. A NaN smuggled in through the native layer no longer reaches bodies it is not touching, so the fuzz test that justifies the validation now measures contamination through contact instead. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Updates the Box3D submodule from
3fc20f5to9e5a4cd(v0.1.0-24, upstream CI green), regenerating the bindings and re-recordingabi/native-layout.json(92 → 94 structs).Box3D.NET (idiomatic), additive only — package validation against the last release reports no difference:
MeshOptions.ClockwiseWinding;CollisionMesh.FromTriangles<TVertex>(vertices, positionOffset, indices, ...)for interleaved vertex buffersCharacterContact.TriangleIndex/ChildIndex/MaterialIndexCharacterMover.TimeOfImpact→CharacterImpactJoint.IsAwake;BodyDefinition.SafetyFactor/Body.SafetyFactorBox3D.NET.Native, breaking where the C API broke (recorded in
CompatibilitySuppressions.xmland the changelog):b3GetByteCount→long, allocator callbacks takesize_t, dynamic tree rewrite, 64-bit geometry hashes, counter/profile fields.b3RecPlayer_Create/Destroyremain as[Obsolete]forwarders to the renamed functions.Behaviour: shape casts now pass through the back of mesh and height field triangles (tests fail against the old Box3D, pass against the new). NaN contamination through the native layer no longer reaches untouched bodies; the fuzz test now measures contamination through contact.
Verified locally (win-x64): build 0 warnings, 365/365 tests, 16/16 samples,
dotnet pack+verify-package.ps1(framework-dependent, trimmed, NativeAOT),dump-abi -Check,api-coverage -Check, regenerated bindings identical; android-arm64/x64 native builds. Linux, macOS, iOS and win-arm64 are left to CI.Version not bumped: recommend 0.5.0 in the release commit, moving the validation baseline to 0.4.0.