#[derive(Clone, Debug, Default)]
pub struct Actuator {
pub name: Option<String>,
pub class: Option<String>,
pub kind: ActuatorKind,
pub joint: Option<String>,
pub tendon: Option<String>,
pub body: Option<String>,
pub site: Option<String>,
pub gear: [f64; 6],
pub ctrl_range: Option<[f64; 2]>,
pub force_range: Option<[f64; 2]>,
pub ctrl_limited: crate::types::Tristate,
pub force_limited: crate::types::Tristate,
pub gainprm: Vec<f64>,
pub biasprm: Vec<f64>,
pub dyn_type: Option<String>,
pub dynprm: Vec<f64>,
pub kp: Option<f64>,
pub kv: Option<f64>,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub enum ActuatorKind {
#[default]
Motor,
Position,
Velocity,
IntVelocity,
Damper,
General,
Other,
}
#[derive(Clone, Debug, Default)]
pub struct Sensor {
pub name: Option<String>,
pub class: Option<String>,
pub kind: String,
pub objtype: Option<String>,
pub objname: Option<String>,
pub reftype: Option<String>,
pub refname: Option<String>,
pub cutoff: Option<f64>,
pub noise: Option<f64>,
}
#[derive(Clone, Debug, Default)]
pub struct Keyframe {
pub name: Option<String>,
pub time: f64,
pub qpos: Vec<f64>,
pub qvel: Vec<f64>,
pub act: Vec<f64>,
pub ctrl: Vec<f64>,
pub mpos: Vec<f64>,
pub mquat: Vec<f64>,
}