Instance Method

raycast(from:to:query:mask:relativeTo:)

Performs a convex ray cast against all the geometry in the scene for a ray between two end points.

Declaration

func raycast(from startPosition: SIMD3<Float>, to endPosition: SIMD3<Float>, query: CollisionCastQueryType = .all, mask: CollisionGroup = .all, relativeTo referenceEntity: Entity? = nil) -> [CollisionCastHit]

Parameters

startPosition

The start position of the ray relative to referenceEntity.

endPosition

The end position of the ray relative to referenceEntity.

query

A query type.

mask

A collision mask that you can use to prevent collisions with certain objects.

referenceEntity

An entity that defines the frame of reference. The method returns results relative to this entity. Set to nil to use the world space origin (0, 0, 0).

Return Value

An array of collision cast hit results. Each hit indicates where the ray, starting at startPosition and ending at endPosition, hit a particular entity in the scene.

Discussion

The method ignores entities that lack a CollisionComponent.

See Also

Detecting Intersections

func raycast(origin: SIMD3<Float>, direction: SIMD3<Float>, length: Float, query: CollisionCastQueryType, mask: CollisionGroup, relativeTo: Entity?) -> [CollisionCastHit]

Performs a convex ray cast against all the geometry in the scene for a ray of a given origin, direction, and length.

struct CollisionCastHit

A hit result of a collision cast.

enum CollisionCastQueryType

The kinds of ray and convex shape cast queries that you can make.

struct CollisionGroup

A bitmask used to define the collision group to which an entity belongs, and with which it can collide.