Instance Method

raycast(origin:direction:length:query:mask:relativeTo:)

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

Declaration

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

Parameters

origin

The origin of the ray relative to referenceEntity.

direction

The direction of the ray relative to referenceEntity.

length

The length 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 a given point and traveling in a given direction, hit a particular entity in the scene.

Discussion

The method ignores entities that lack a CollisionComponent.

See Also

Detecting Intersections

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

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

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.