---
title: Ray3D
framework: spatial
role: symbol
role_heading: Structure
path: spatial/ray3d
---

# Ray3D

A ray in a 3D coordinate system.

## Declaration

```swift
struct Ray3D
```

## Topics

### Creating a 3D ray structure

- [init()](spatial/ray3d/init().md)
- [init(origin:direction:)](spatial/ray3d/init(origin:direction:)-5sxkl.md)
- [init(origin:direction:)](spatial/ray3d/init(origin:direction:)-3gfcj.md)
- [init(origin:direction:)](spatial/ray3d/init(origin:direction:)-47w1c.md)

### Inspecting a 3D ray’s properties

- [origin](spatial/ray3d/origin.md)
- [direction](spatial/ray3d/direction.md)

### Transforming a 3D ray structure

- [apply(_:)](spatial/ray3d/apply(_:).md)
- [applying(_:)](spatial/ray3d/applying(_:)-337n0.md)
- [applying(_:)](spatial/ray3d/applying(_:)-2aom9.md)
- [applying(_:)](spatial/ray3d/applying(_:)-34rqi.md)
- [unapplying(_:)](spatial/ray3d/unapplying(_:)-7bc37.md)
- [unapplying(_:)](spatial/ray3d/unapplying(_:)-6tj2w.md)
- [unapplying(_:)](spatial/ray3d/unapplying(_:)-928o9.md)
- [rotated(by:)](spatial/ray3d/rotated(by:)-qxp0.md)
- [rotated(by:)](spatial/ray3d/rotated(by:)-81glv.md)
- [rotated(by:around:)](spatial/ray3d/rotated(by:around:)-uzon.md)
- [rotated(by:around:)](spatial/ray3d/rotated(by:around:)-7h43.md)
- [applying(_:)](spatial/ray3d/applying(_:)-6hfqw.md)
- [unapplying(_:)](spatial/ray3d/unapplying(_:)-9x164.md)

### Checking characteristics

- [isFinite](spatial/ray3d/isfinite.md)
- [isNaN](spatial/ray3d/isnan.md)
- [isZero](spatial/ray3d/iszero.md)
- [intersects(_:)](spatial/ray3d/intersects(_:).md)
- [intersects(sphereOrigin:sphereRadius:)](spatial/ray3d/intersects(sphereorigin:sphereradius:).md)

### Comparing values

- [==(_:_:)](spatial/ray3d/==(_:_:).md)

### Applying arithmetic operations

- [*(_:_:)](spatial/ray3d/*(_:_:).md)

### Initializers

- [init(_:)](spatial/ray3d/init(_:).md)
- [init(origin:direction:)](spatial/ray3d/init(origin:direction:)-63yk4.md)

### Default Implementations

- [CustomReflectable Implementations](spatial/ray3d/customreflectable-implementations.md)
- [Decodable Implementations](spatial/ray3d/decodable-implementations.md)
- [Encodable Implementations](spatial/ray3d/encodable-implementations.md)
- [Equatable Implementations](spatial/ray3d/equatable-implementations.md)
- [Hashable Implementations](spatial/ray3d/hashable-implementations.md)
- [Primitive3DProtocol Implementations](spatial/ray3d/primitive3dprotocol-implementations.md)
- [ProjectiveTransformable3D Implementations](spatial/ray3d/projectivetransformable3d-implementations.md)
- [Rotatable3DProtocol Implementations](spatial/ray3d/rotatable3dprotocol-implementations.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomReflectable](swift/customreflectable.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Primitive3D](spatial/primitive3d.md)
- [Primitive3DProtocol](spatial/primitive3dprotocol.md)
- [ProjectiveTransformable3D](spatial/projectivetransformable3d.md)
- [Rotatable3D](spatial/rotatable3d.md)
- [Rotatable3DProtocol](spatial/rotatable3dprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SpatialTypeProtocol](spatial/spatialtypeprotocol.md)
- [Translatable3D](spatial/translatable3d.md)
- [Translatable3DProtocol](spatial/translatable3dprotocol.md)

## See Also

### 3D primitives

- [Point3D](spatial/point3d.md)
- [Point3DFloat](spatial/point3dfloat.md)
- [Size3D](spatial/size3d.md)
- [Size3DFloat](spatial/size3dfloat.md)
- [Rect3D](spatial/rect3d.md)
- [Rect3DFloat](spatial/rect3dfloat.md)
- [Rotation3D](spatial/rotation3d.md)
- [Rotation3DFloat](spatial/rotation3dfloat.md)
- [RotationAxis3D](spatial/rotationaxis3d.md)
- [RotationAxis3DFloat](spatial/rotationaxis3dfloat.md)
- [Pose3D](spatial/pose3d.md)
- [Pose3DFloat](spatial/pose3dfloat.md)
- [ScaledPose3D](spatial/scaledpose3d.md)
- [ScaledPose3DFloat](spatial/scaledpose3dfloat.md)
- [SphericalCoordinates3D](spatial/sphericalcoordinates3d.md)
