collate_refs_in_basis

Function collate_refs_in_basis 

Source
pub fn collate_refs_in_basis(
    meshes: &[InstanceMeshRef<'_>],
    min_group: usize,
    rtc: [f64; 3],
    baked_basis: Option<&Matrix4<f64>>,
) -> Collated
Expand 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::transform is that same conjugated B · rel · B⁻¹, so a consumer that uses the emitted rel directly 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.