aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/collider.rs
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2022-05-31 11:23:46 +0200
committerSébastien Crozet <sebcrozet@dimforge.com>2022-05-31 11:23:46 +0200
commit8b3c091ba785d5cba049015c213eb49bb6378762 (patch)
treef235c408372aaea9dd4007838e3c51044d310daf /src/geometry/collider.rs
parent31cfce4db30efeb15ccb8c51e6c20ff07406987c (diff)
downloadrapier-disabled-flag.tar.gz
rapier-disabled-flag.tar.bz2
rapier-disabled-flag.zip
Start experimenting with collider/rigid-body disabling.disabled-flag
Diffstat (limited to 'src/geometry/collider.rs')
-rw-r--r--src/geometry/collider.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/geometry/collider.rs b/src/geometry/collider.rs
index 8d9b005..d12f7b2 100644
--- a/src/geometry/collider.rs
+++ b/src/geometry/collider.rs
@@ -46,6 +46,17 @@ impl Collider {
self.coll_type.is_sensor()
}
+ /// Is this collider enabled?
+ pub fn is_enabled(&self) -> bool {
+ self.flags.enabled
+ }
+
+ /// Sets whether or not this collider is enabled.
+ pub fn set_enabled(&mut self, enabled: bool) {
+ self.changes.insert(ColliderChanges::ENABLED);
+ self.flags.enabled = enabled;
+ }
+
/// The physics hooks enabled for this collider.
pub fn active_hooks(&self) -> ActiveHooks {
self.flags.active_hooks
@@ -309,6 +320,8 @@ pub struct ColliderBuilder {
pub position: Isometry<Real>,
/// Is this collider a sensor?
pub is_sensor: bool,
+ /// Is this collider enabled after its creation?
+ pub enabled: bool,
/// Contact pairs enabled for this collider.
pub active_collision_types: ActiveCollisionTypes,
/// Physics hooks enabled for this collider.
@@ -334,6 +347,7 @@ impl ColliderBuilder {
restitution: 0.0,
position: Isometry::identity(),
is_sensor: false,
+ enabled: true,
user_data: 0,
collision_groups: InteractionGroups::all(),
solver_groups: InteractionGroups::all(),
@@ -594,6 +608,12 @@ impl ColliderBuilder {
self
}
+ /// Is this collider enabled after its creation?
+ pub fn enabled(mut self, is_enabled: bool) -> Self {
+ self.enabled = is_enabled;
+ self
+ }
+
/// Sets the collision groups used by this collider.
///
/// Two colliders will interact iff. their collision groups are compatible.
@@ -775,6 +795,7 @@ impl ColliderBuilder {
active_collision_types: self.active_collision_types,
active_hooks: self.active_hooks,
active_events: self.active_events,
+ enabled: self.enabled,
};
let changes = ColliderChanges::all();
let pos = ColliderPosition(self.position);