use mjcf_rs::extras::Actuator as MjcfActuator;
use rapier3d::dynamics::{ImpulseJointHandle, RigidBodyHandle};
use rapier3d::geometry::ColliderHandle;
#[derive(Clone, Debug)]
pub struct MjcfColliderHandle {
pub handle: ColliderHandle,
}
#[derive(Clone, Debug)]
pub struct MjcfBodyHandle {
pub body: RigidBodyHandle,
pub colliders: Vec<MjcfColliderHandle>,
}
#[derive(Clone, Debug)]
pub struct MjcfJointHandle<H> {
pub joint: H,
pub link1: RigidBodyHandle,
pub link2: RigidBodyHandle,
}
#[derive(Clone, Debug)]
pub struct MjcfActuatorHandle<H> {
pub actuator: MjcfActuator,
pub joint: Option<H>,
}
#[derive(Clone, Debug)]
pub struct MjcfRobotHandles<H> {
pub bodies: Vec<Option<MjcfBodyHandle>>,
pub joints: Vec<MjcfJointHandle<H>>,
pub equality_joints: Vec<MjcfJointHandle<ImpulseJointHandle>>,
pub actuators: Vec<MjcfActuatorHandle<H>>,
}