use super::*;
pub struct D6Joint {
id: Entity,
}
impl std::fmt::Debug for D6Joint {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("D6Joint")
.field("entity", &self.id.name())
.finish_non_exhaustive()
}
}
#[derive(Copy, Clone, Debug)]
pub struct D6DriveParams {
pub stiffness: f32,
pub damping: f32,
pub force_limit: f32,
}
#[derive(Copy, Clone, Debug)]
pub struct D6SpringParams {
pub stiffness: f32,
pub damping: f32,
}
impl D6Joint {
impl_world_accessor!(
D6Joint,
Entity1,
Entity,
entity_1,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
Entity2,
Entity,
entity_2,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
RelativePosition1,
Vec3,
relative_offset_1,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
RelativeOrientation1,
Quat,
relative_orientation_1,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
RelativePosition2,
Vec3,
relative_offset_2,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
RelativeOrientation2,
Quat,
relative_orientation_2,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
BreakForce,
f32,
break_force,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
BreakTorque,
f32,
break_torque,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
IsBroken,
bool,
is_broken,
ValueAccessorRead
);
impl_world_accessor!(
D6Joint,
ProjectionLinearTolerance,
f32,
projection_linear_tolerance,
ValueAccessorReadWriteAnimate
);
impl_world_accessor!(
D6Joint,
ProjectionAngularTolerance,
f32,
projection_angular_tolerance,
ValueAccessorReadWriteAnimate
);
impl_world_accessor!(
D6Joint,
DriveEnabled,
bool,
drive_enable,
ValueAccessorReadWriteAnimate
);
impl_world_accessor!(
D6Joint,
RelativePosition,
Vec3,
relative_position,
ValueAccessorRead
);
impl_world_accessor!(
D6Joint,
RelativeRotation,
Quat,
relative_rotation,
ValueAccessorRead
);
impl_world_accessor!(
D6Joint,
RelativeAngles,
Vec3,
relative_angles,
ValueAccessorRead
);
impl_world_accessor!(
D6Joint,
LinearLimit,
f32,
linear_limit,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
LinearLimitType,
JointLimitType,
linear_limit_type,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
LinearLimitSpring,
D6SpringParams,
linear_limit_spring,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
TwistLimit,
Vec2,
twist_limit,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
TwistLimitType,
JointLimitType,
twist_limit_type,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
TwistLimitSpring,
D6SpringParams,
twist_limit_spring,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
SwingLimit,
Vec2,
swing_limit,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
SwingLimitType,
JointLimitType,
swing_limit_type,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
SwingLimitSpring,
D6SpringParams,
swing_limit_spring,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
DrivePosition,
Vec3,
drive_position,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
DriveRotation,
Quat,
drive_rotation,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
DriveLinearVelocity,
Vec3,
drive_linear_velocity,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
DriveAngularVelocity,
Vec3,
drive_angular_velocity,
ValueAccessorReadWrite
);
impl_world_accessor_indexed!(
D6Joint,
MotionX,
D6MotionType,
motion,
D6Axis,
ValueAccessorReadWrite
);
impl_world_accessor_indexed!(
D6Joint,
DriveParamsX,
D6DriveParams,
drive_params,
D6Drive,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
DriveIsAcceleration,
bool,
drive_is_acceleration,
ValueAccessorReadWrite
);
impl_world_accessor!(
D6Joint,
LinearForce,
Vec3,
linear_force,
ValueAccessorRead
);
impl_world_accessor!(
D6Joint,
AngularForce,
Vec3,
angular_force,
ValueAccessorRead
);
}
impl_world_component!(D6Joint);