aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geometry/broad_phase_multi_sap/broad_phase_pair_event.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/geometry/broad_phase_multi_sap/broad_phase_pair_event.rs b/src/geometry/broad_phase_multi_sap/broad_phase_pair_event.rs
index fdc9bfd..f72d1df 100644
--- a/src/geometry/broad_phase_multi_sap/broad_phase_pair_event.rs
+++ b/src/geometry/broad_phase_multi_sap/broad_phase_pair_event.rs
@@ -2,12 +2,16 @@ use crate::geometry::ColliderHandle;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
+/// A pair of collider handles.
pub struct ColliderPair {
+ /// The handle of the first collider involved in this pair.
pub collider1: ColliderHandle,
+ /// The handle of the second ocllider involved in this pair.
pub collider2: ColliderHandle,
}
impl ColliderPair {
+ /// Creates a new pair of collider handles.
pub fn new(collider1: ColliderHandle, collider2: ColliderHandle) -> Self {
ColliderPair {
collider1,
@@ -15,10 +19,12 @@ impl ColliderPair {
}
}
+ /// Swaps the two collider handles in `self`.
pub fn swap(self) -> Self {
Self::new(self.collider2, self.collider1)
}
+ /// Constructs a pair of artificial handles that are not guaranteed to be valid..
pub fn zero() -> Self {
Self {
collider1: ColliderHandle::from_raw_parts(0, 0),
@@ -27,7 +33,10 @@ impl ColliderPair {
}
}
+/// An event emitted by the broad-phase.
pub enum BroadPhasePairEvent {
+ /// A potential new collision pair has been detected by the broad-phase.
AddPair(ColliderPair),
+ /// The two colliders are guaranteed not to touch any more.
DeletePair(ColliderPair),
}