How to get a bone location for the first frame of an AnimMontage?

I forgot to put the code I ended with, for those interested:



void ABBHoop::Foo()
{
    UAnimMontage
        * selected_montage = ...;
    const TArray<FAnimSegment>
        & segment_table = selected_montage->SlotAnimTracks 0 ].AnimTrack.AnimSegments;
    const FName
        & section_name = selected_montage->GetSectionName( selected_montage_segment_index );
    const UAnimSequence
        & anim_sequence = *Cast< UAnimSequence >( segment_table selected_montage_segment_index ].AnimReference );

    FVector
        position = GetBallBoneFirstFrameMontageLocation( anim_sequence, FName( "XXX" ) );
}

FVector ABBHoop::GetBallBoneFirstFrameMontageLocation( 
    const UAnimSequence & anim_sequence,
    const FName & target_bone_name
    ) const
{
    FName
        bone_name = target_bone_name;
    FTransform
        global_transform;

    global_transform.SetIdentity();

    do
    {
        const int
            bone_index = MeshComponent->GetBoneIndex( bone_name );
        FTransform
            bone_transform;
        int
            track_index;

        for ( track_index = 0; track_index < anim_sequence.TrackToSkeletonMapTable.Num(); ++track_index )
        {
            if ( anim_sequence.TrackToSkeletonMapTable track_index ].BoneTreeIndex == bone_index )
            {
                break;
            }
        }

        if ( track_index == anim_sequence.TrackToSkeletonMapTable.Num() )
        {
            break;
        }

        anim_sequence.GetBoneTransform( bone_transform, track_index, 0.0f, true );
        global_transform *= bone_transform;

        bone_name = MeshComponent->GetParentBone( bone_name );
    } while ( bone_name != NAME_None );

    global_transform.SetToRelativeTransform( MeshComponent->GetComponentTransform() );

    return global_transform.GetTranslation();
}