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
//! Persistent collision detection algorithms to compute contact points.

use na::{Point2, Point3, Isometry2, Isometry3};
pub use self::narrow_phase::{NarrowPhase, ContactPairs, Contacts, ProximityPairs};
pub use self::default_narrow_phase::DefaultNarrowPhase;

#[doc(inline)]
pub use self::contact_generator::{
    ContactGenerator,
    ContactDispatcher,
    ContactAlgorithm,
    DefaultContactDispatcher,
    BallBallContactGenerator,
    PlaneSupportMapContactGenerator, SupportMapPlaneContactGenerator,
    SupportMapSupportMapContactGenerator,
    CompositeShapeShapeContactGenerator, ShapeCompositeShapeContactGenerator,
    IncrementalContactManifoldGenerator,
    OneShotContactManifoldGenerator
};

#[doc(inline)]
pub use self::proximity_detector::{
    ProximityDetector,
    ProximityDispatcher,
    ProximityAlgorithm,
    DefaultProximityDispatcher,
    BallBallProximityDetector,
    PlaneSupportMapProximityDetector, SupportMapPlaneProximityDetector,
    SupportMapSupportMapProximityDetector,
    CompositeShapeShapeProximityDetector,
    ShapeCompositeShapeProximityDetector
};

#[doc(inline)]
pub use self::contact_signal::{ContactSignal, ContactHandler};
#[doc(inline)]
pub use self::proximity_signal::{ProximitySignal, ProximityHandler};

#[doc(hidden)]
pub mod contact_generator;
#[doc(hidden)]
pub mod proximity_detector;
#[doc(hidden)]
pub mod narrow_phase;
mod default_narrow_phase;
#[doc(hidden)]
pub mod contact_signal;
#[doc(hidden)]
pub mod proximity_signal;

/// Trait-object for 2-dimensional contact generation.
pub type ContactAlgorithm2<N> = ContactAlgorithm<Point2<N>, Isometry2<N>>;
/// Trait-object for 3-dimensional contact generation.
pub type ContactAlgorithm3<N> = ContactAlgorithm<Point3<N>, Isometry3<N>>;