pub fn collate_refs_in_basis(
meshes: &[InstanceMeshRef<'_>],
min_group: usize,
rtc: [f64; 3],
baked_basis: Option<&Matrix4<f64>>,
) -> CollatedExpand description
collate_refs against baked positions that are NOT in the native frame:
baked_basis is what the baker did to the vertices after InstanceMeta was
captured, so that p_baked = B · p_native.
B is applied to BOTH halves of this function’s output, not only to the
#3666 reconstruction check:
- the check compares
B · rel · B⁻¹against the baked vertices (as it always did — see [super::verify]’s module doc), and - every emitted
InstanceOccurrence::transformis that same conjugatedB · rel · B⁻¹, so a consumer that uses the emittedreldirectly places the occurrence in the frame its vertices are in.
This is the #4118 behaviour change, exposed under a new name because
collate_refs_verified_in promised that its basis touched only the check;
that compatibility entry point retains its original output. rtc is the same kind of
argument — to_post_rtc already applies it to output and check alike — and
the site rotation simply had no slot until now.
Pass None (via collate_refs) when the baked positions ARE native; the
multiplication is then not performed at all, so the bytes are unchanged.