One Logo Pool Ball
RealityFoundation · IOS API REFERENCE

CollisionFilter

struct · iOS 13.0+ · SDK 27.1

struct CollisionFilter

A set of masks that determine whether entities can collide during simulations. Use Collision filters in combination with collision groups to define which entities collide with which other entities in a scene. For more information on using collision filters, see ``CollisionGroup``

Members (7)

get · iOS 13.0+

mask

TypeScript
get mask(): CollisionGroup
Swift declaration
var mask: CollisionGroup

The collision group or groups, stored as a bitmask, with which the entity can collide.

set · iOS 13.0+

mask

TypeScript
set mask(value: CollisionGroup)
Swift declaration
var mask: CollisionGroup

The collision group or groups, stored as a bitmask, with which the entity can collide.

init · iOS 13.0+

init

TypeScript
static init(group: CollisionGroup, mask: CollisionGroup): CollisionFilter
Swift declaration
init(group: CollisionGroup, mask: CollisionGroup)

Creates a collision filter. Collision filters are created for the collision group specified in the `group` parameter. The `mask` parameter defines which objects will collide with the objects that use this filter. Because ``CollisionGroup`` conforms to <doc://com.apple.documentation/documentation/swift/optionset>, you can specify any combination of collision groups in the `mask` parameter by using the various <doc://com.apple.documentation/documentation/swift/optionset> methods like ``CollisionGroup/union(_:)``, ``CollisionGroup/subtracting(_:)``, and ``CollisionGroup/intersection(_:)``. Entities from any group contained in `mask` will collide with entities using this filter, while those not contained by `mask` will not. To combine multiple groups into a filter, use the ``CollisionGroup/union(_:)`` method, like this: ```swift let groupA = CollisionGroup(rawValue: 1 << 0) let groupB = CollisionGroup(rawValue: 1 << 1) let groupC = CollisionGroup(rawValue: 1 << 2) // Create a filter that collides with A and C, but not B let theFilter = CollisionFilter(group: groupA, mask: groupA.union(groupB)) ``` A common use case is to want entities to collide with everything except one group, or a few groups. In a game, for example, you might not want a player’s pieces to collide with their own pieces, or you might not want players on the same team to collide with each other. You can accomplish that by starting with the ``CollisionGroup/all`` property, subtracting the group or groups that you don’t want the entities using this filter to collide with, like this: ```swift // Create a filter that collides with everything except B let notGroupB = CollisionGroup.all.subtracting(groupB) ``` - Parameters: - group: The collision group identifier. - mask: The collision mask defines what objects will collide with objects using this filter.

get · iOS 13.0+

group

TypeScript
get group(): CollisionGroup
Swift declaration
var group: CollisionGroup

The collision group or groups, stored as a bit mask, to which the entity belongs.

set · iOS 13.0+

group

TypeScript
set group(value: CollisionGroup)
Swift declaration
var group: CollisionGroup

The collision group or groups, stored as a bit mask, to which the entity belongs.

get · iOS 13.0+

sensor

TypeScript
static get sensor(): CollisionFilter
Swift declaration
static let sensor: CollisionFilter

A collision filter for an entity that collides with everything. The sensor collision filter is typically used by rays in ray casts, shapes in convex shape casts, and trigger volumes. It corresponds to a ``CollisionFilter/group`` and ``CollisionFilter/mask`` both set to ``CollisionGroup/all``.

get · iOS 13.0+

default

TypeScript
static get default(): CollisionFilter
Swift declaration
static let `default`: CollisionFilter

The default collision filter. Entities with a ``CollisionFilter/default`` collision filter have a ``CollisionFilter/group`` of ``CollisionGroup/default`` and a ``CollisionFilter/mask`` of ``CollisionGroup/all``.

Skipped declarations

No declarations were skipped in this snapshot.

All RealityFoundation types →