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]

[src]

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

[src]

The maximum allowed group identifier.

[src]

Adds or removes this entity from the given group.

[src]

Adds or removes the given group from this entity whitelist.

[src]

Adds or removes this entity from the given group.

[src]

Make this object member of the given groups only.

[src]

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

[src]

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

[src]

Copies the membership of another collision groups.

[src]

Copies the whitelist of another collision groups.

[src]

Copies the blacklist of another collision groups.

[src]

Allows the object to interact with itself.

[src]

Prevents the object from interacting with itself.

[src]

Tests if this entity is part of the given group.

[src]

Tests if the given group is whitelisted.

[src]

Tests if the given group is blacklisted.

[src]

Tests whether interactinos with a given group is possible.

Collision is possible if group_id is whitelisted but not blacklisted.

[src]

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

[src]

Tests whether self-interaction is enabled.

Trait Implementations

impl Clone for CollisionGroups
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for CollisionGroups
[src]

[src]

Formats the value using the given formatter. Read more

impl Copy for CollisionGroups
[src]

Auto Trait Implementations