mirror of
https://github.com/storytold/storyteller-bevy.git
synced 2026-10-18 07:35:19 +00:00
Refactor from Mat4 to Affine3A
This commit is contained in:
@@ -73,7 +73,7 @@ fn compute_inverse_bindposes(
|
||||
q_bvh_joints: Query<(Entity, &GlobalTransform), (With<BvhJoint>, Without<InvBindPose>)>,
|
||||
) {
|
||||
for (ent, world_xform) in q_bvh_joints.iter() {
|
||||
let inv_bind_pose = world_xform.compute_matrix().inverse();
|
||||
let inv_bind_pose = world_xform.affine().inverse();
|
||||
cmd.entity(ent).insert(InvBindPose(inv_bind_pose));
|
||||
}
|
||||
}
|
||||
@@ -192,7 +192,6 @@ fn retarget_bvh(
|
||||
>,
|
||||
q_world_xforms: Query<&GlobalTransform>,
|
||||
) {
|
||||
// let retarget_map = RetargetMap::mocap_to_rigify();
|
||||
for (source_name, source_inv_bind_pose, source_world_xform) in q_source_bones.iter() {
|
||||
// Lookup the target name in the retarget map
|
||||
let Some(target_name) = r_retarget_map.source_to_target.get(source_name.as_str()) else {
|
||||
@@ -239,14 +238,14 @@ fn retarget_bvh(
|
||||
// orthonormalize the matrices inbetween operations.
|
||||
|
||||
// [psuedo] local_mat = source_inv_bind_mat * source_world_mat;
|
||||
let mut local_mat = source_world_xform.compute_matrix() * (**source_inv_bind_pose);
|
||||
let mut local_mat = source_world_xform.affine() * (**source_inv_bind_pose);
|
||||
|
||||
// [psuedo] local_mat = target_world_mat * local_mat * target_inv_parent_mat;
|
||||
let parent_world_xform = match q_world_xforms.get(**target_parent_ent) {
|
||||
Ok(world_xform) => world_xform,
|
||||
Err(_) => &GlobalTransform::IDENTITY,
|
||||
};
|
||||
let target_inv_parent_mat = parent_world_xform.compute_matrix().inverse();
|
||||
let target_inv_parent_mat = parent_world_xform.affine().inverse();
|
||||
local_mat = target_inv_parent_mat * local_mat * (**target_bind_pose_global);
|
||||
|
||||
// [psuedo] target_xform.rotation = local_mat.rotation;
|
||||
|
||||
Reference in New Issue
Block a user