Struct ncollide2d::world::CollisionGroups[][src]

pub struct CollisionGroups { /* fields omitted */ }

Groups of collision used to filter which object interact with which other one.

There are at most 30 groups indexed from 0 to 29 (included). This identifies collidable entities by combining three attributes:

  • A set of group this structure is member of.
  • A collision group whitelist.
  • A collision group blacklist.

For two entities to interact, they must be member of at least one group part of each-other's whitelists, and must not be part of any blacklisted group. The blacklist always has priority on the whitelist.

Example

For example if the object A is such that:

  • It is part of the groups 1, 3, and 6.
  • It whitelists the groups 6 and 7.
  • It blacklists the group 1. Let the object B be such that:
  • It is part of the groups 1, 3, and 7.
  • It whitelists the groups 3 and 7.
  • It does not blacklist anything. For example if the object C is such that:
  • It is part of the groups 6 and 9.
  • It whitelists the groups 3 and 7.
  • It does not blacklist anything.

Then we have:

  • A and C can interact because A whitelists the group 6 (which C is part of), and, reciprocally, C whitelists the group 3 (which A is part of).
  • A and B will not interact because B is part of the group 1 which is blacklisted by A.
  • Finally, B and C will not interact either because, even if C whitelists the group 3 (which B is part of), B does not whitelists the groups 6 nor 9 (which B is part of).

Methods

impl CollisionGroups
[src]

Creates a new CollisionGroups that enables interactions with everything except self-interaction.

The maximum allowed group identifier.

Adds or removes this entity from the given group.

Adds or removes the given group from this entity whitelist.

Adds or removes this entity from the given group.

Make this object member of the given groups only.

Whitelists the given groups only (others will be un-whitelisted).

Blacklists the given groups only (others will be un-blacklisted).

Copies the membership of another collision groups.

Copies the whitelist of another collision groups.

Copies the blacklist of another collision groups.

Allows the object to interact with itself.

Prevents the object from interacting with itself.

Tests if this entity is part of the given group.

Tests if the given group is whitelisted.

Tests if the given group is blacklisted.

Tests whether interactinos with a given group is possible.

Collision is possible if group_id is whitelisted but not blacklisted.

Tests whether two collision groups have at least one group in common.

Tests whether self-interaction is enabled.

Trait Implementations

impl Clone for CollisionGroups
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for CollisionGroups
[src]

Formats the value using the given formatter. Read more

impl Copy for CollisionGroups
[src]

Auto Trait Implementations