1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
pub use self::broad_phase_multi_sap::BroadPhase;
pub use self::collider::{Collider, ColliderBuilder};
pub use self::collider_set::{ColliderHandle, ColliderSet};
pub use self::contact_pair::{ContactData, ContactManifoldData};
pub use self::contact_pair::{ContactPair, SolverContact, SolverFlags};
pub use self::interaction_graph::{
ColliderGraphIndex, InteractionGraph, RigidBodyGraphIndex, TemporaryInteractionIndex,
};
pub use self::interaction_groups::InteractionGroups;
pub use self::narrow_phase::NarrowPhase;
pub use parry::query::TrackedContact;
pub type Contact = parry::query::TrackedContact<ContactData>;
pub type ContactManifold = parry::query::ContactManifold<ContactManifoldData, ContactData>;
pub type Segment = parry::shape::Segment;
pub type Cuboid = parry::shape::Cuboid;
pub type Triangle = parry::shape::Triangle;
pub type Ball = parry::shape::Ball;
pub type Capsule = parry::shape::Capsule;
pub type HeightField = parry::shape::HeightField;
#[cfg(feature = "dim3")]
pub type Cylinder = parry::shape::Cylinder;
#[cfg(feature = "dim3")]
pub type Cone = parry::shape::Cone;
pub type AABB = parry::bounding_volume::AABB;
pub type Ray = parry::query::Ray;
pub type RayIntersection = parry::query::RayIntersection;
pub type PointProjection = parry::query::PointProjection;
pub type TOI = parry::query::TOI;
pub use parry::shape::SharedShape;
#[derive(Copy, Clone, Hash, Debug)]
pub enum ContactEvent {
Started(ColliderHandle, ColliderHandle),
Stopped(ColliderHandle, ColliderHandle),
}
#[derive(Copy, Clone, Debug)]
pub struct IntersectionEvent {
pub collider1: ColliderHandle,
pub collider2: ColliderHandle,
pub intersecting: bool,
}
impl IntersectionEvent {
pub fn new(collider1: ColliderHandle, collider2: ColliderHandle, intersecting: bool) -> Self {
Self {
collider1,
collider2,
intersecting,
}
}
}
pub(crate) use self::broad_phase_multi_sap::{BroadPhasePairEvent, ColliderPair, SAPProxyIndex};
pub(crate) use self::collider_set::RemovedCollider;
pub(crate) use self::narrow_phase::ContactManifoldIndex;
pub(crate) use parry::partitioning::SimdQuadTree;
pub use parry::shape::*;
#[cfg(feature = "serde-serialize")]
pub(crate) fn default_persistent_query_dispatcher(
) -> std::sync::Arc<dyn parry::query::PersistentQueryDispatcher<ContactManifoldData, ContactData>> {
std::sync::Arc::new(parry::query::DefaultQueryDispatcher)
}
#[cfg(feature = "serde-serialize")]
pub(crate) fn default_query_dispatcher() -> std::sync::Arc<dyn parry::query::QueryDispatcher> {
std::sync::Arc::new(parry::query::DefaultQueryDispatcher)
}
mod broad_phase_multi_sap;
mod collider;
mod collider_set;
mod contact_pair;
mod interaction_graph;
mod interaction_groups;
mod narrow_phase;