Add ActiveEvents::CONTACT_FORCE_EVENTS for consistency with ActiveEvents::COLLISION_EVENTS
This commit is contained in:
@@ -7,9 +7,12 @@ bitflags::bitflags! {
|
||||
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
|
||||
/// Flags affecting the events generated for this collider.
|
||||
pub struct ActiveEvents: u32 {
|
||||
/// If set, Rapier will call `EventHandler::handle_contact_event`
|
||||
/// If set, Rapier will call `EventHandler::handle_collision_event`
|
||||
/// whenever relevant for this collider.
|
||||
const COLLISION_EVENTS = 0b0001;
|
||||
/// If set, Rapier will call `EventHandler::handle_contact_force_event`
|
||||
/// whenever relevant for this collider.
|
||||
const CONTACT_FORCE_EVENTS = 0b0010;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +51,7 @@ pub trait EventHandler: Send + Sync {
|
||||
///
|
||||
/// A force event is generated whenever the total force magnitude applied between two
|
||||
/// colliders is `> Collider::contact_force_event_threshold` value of any of these
|
||||
/// colliders.
|
||||
/// colliders with the `ActiveEvents::CONTACT_FORCE_EVENTS` flag set.
|
||||
///
|
||||
/// The "total force magnitude" here means "the sum of the magnitudes of the forces applied at
|
||||
/// all the contact points in a contact pair". Therefore, if the contact pair involves two
|
||||
|
||||
@@ -291,8 +291,8 @@ impl PhysicsPipeline {
|
||||
let co1 = &colliders[pair.collider1];
|
||||
let co2 = &colliders[pair.collider2];
|
||||
let threshold = co1
|
||||
.contact_force_event_threshold
|
||||
.min(co2.contact_force_event_threshold);
|
||||
.effective_contact_force_event_threshold()
|
||||
.min(co2.effective_contact_force_event_threshold());
|
||||
|
||||
if threshold < Real::MAX {
|
||||
let total_magnitude = pair.total_impulse_magnitude() * inv_dt;
|
||||
|
||||
Reference in New Issue
Block a user