One Logo Pool Ball
ImmersiveMediaSupport · IOS API REFERENCE

SetCameraCommand.Overrides

struct · iOS 27.0+ · SDK 27.1

struct Overrides

Override camera/venue params - Note: The renderer only honors these overrides on visionOS 27, macOS 27, or later. Earlier runtimes ignore them during playback.

Members (7)

get · iOS 27.0+

lensDefinitionData

TypeScript
get lensDefinitionData(): (ImmersiveCameraLensDefinition) | null
Swift declaration
var lensDefinitionData: ImmersiveCameraLensDefinition?

Inline lens definition (ILPD) data to override lens calibration

set · iOS 27.0+

lensDefinitionData

TypeScript
set lensDefinitionData(value: (ImmersiveCameraLensDefinition) | null)
Swift declaration
var lensDefinitionData: ImmersiveCameraLensDefinition?

Inline lens definition (ILPD) data to override lens calibration

get · iOS 27.0+

maskData

TypeScript
get maskData(): (ImmersiveDynamicMask) | null
Swift declaration
var maskData: ImmersiveDynamicMask?

Dynamic mask data to override camera mask

set · iOS 27.0+

maskData

TypeScript
set maskData(value: (ImmersiveDynamicMask) | null)
Swift declaration
var maskData: ImmersiveDynamicMask?

Dynamic mask data to override camera mask

init · iOS 27.0+

init

TypeScript
static init(rotation?: (_Spatial_Rotation3DFloat) | null, lensDefinitionData?: (ImmersiveCameraLensDefinition) | null, maskData?: (ImmersiveDynamicMask) | null): SetCameraCommand_Overrides
Swift declaration
init(rotation: Rotation3DFloat? = nil, lensDefinitionData: ImmersiveCameraLensDefinition? = nil, maskData: ImmersiveDynamicMask? = nil)
get · iOS 27.0+

rotation

TypeScript
get rotation(): (_Spatial_Rotation3DFloat) | null
Swift declaration
var rotation: Rotation3DFloat? { get set }

Camera rotation to override the rotation in ``ImmersiveCamera/pose``. The rotation decomposes into three axis rotations, applied intrinsically in this order: 1. **Roll** — rotation around the camera's local z-axis (the optical axis; the camera looks toward −Z). 2. **Yaw** — rotation around the camera's (post-roll) local y-axis. 3. **Pitch** — rotation around the camera's (post-roll, post-yaw) local x-axis (the right / baseline axis). This matches Spatial's `EulerAngleOrder.xyz`, which composes intrinsically as roll, then yaw, then pitch (equivalently, extrinsically as pitch, then yaw, then roll). The composition order matters — the same angle values under a different order produce a different orientation. In particular, this does **not** match `RealityKit.Transform(pitch:yaw:roll:)`, which composes intrinsically as yaw, then pitch, then roll. ### Stereo fusion constraints The rotation is applied uniformly to both eyes as an image reorientation; it does not remap eye assignment, reproject parallax, or account for the stereo baseline encoded in the source video. For stereo content, only rotations that keep the stereo baseline horizontal in viewer space produce comfortable fusion: - **Roll** — rotates the baseline out of horizontal, creating vertical disparity between eyes. Small roll angles cause eye strain; larger angles (≥ a few degrees) prevent fusion entirely. - **Yaw** — may be safe in some circumstances but increasingly likely to cause anomalous parallax perception at larger angles. - **Pitch** — the baseline is the rotation axis and the invariant of the rotation depends on the projection. - Any mixed rotation that decomposes to a non-zero roll component exhibits the same failure proportional to the roll magnitude. For mono content there are no stereo constraints and the full rotation space is valid.

set · iOS 27.0+

rotation

TypeScript
set rotation(value: (_Spatial_Rotation3DFloat) | null)
Swift declaration
var rotation: Rotation3DFloat? { get set }

Camera rotation to override the rotation in ``ImmersiveCamera/pose``. The rotation decomposes into three axis rotations, applied intrinsically in this order: 1. **Roll** — rotation around the camera's local z-axis (the optical axis; the camera looks toward −Z). 2. **Yaw** — rotation around the camera's (post-roll) local y-axis. 3. **Pitch** — rotation around the camera's (post-roll, post-yaw) local x-axis (the right / baseline axis). This matches Spatial's `EulerAngleOrder.xyz`, which composes intrinsically as roll, then yaw, then pitch (equivalently, extrinsically as pitch, then yaw, then roll). The composition order matters — the same angle values under a different order produce a different orientation. In particular, this does **not** match `RealityKit.Transform(pitch:yaw:roll:)`, which composes intrinsically as yaw, then pitch, then roll. ### Stereo fusion constraints The rotation is applied uniformly to both eyes as an image reorientation; it does not remap eye assignment, reproject parallax, or account for the stereo baseline encoded in the source video. For stereo content, only rotations that keep the stereo baseline horizontal in viewer space produce comfortable fusion: - **Roll** — rotates the baseline out of horizontal, creating vertical disparity between eyes. Small roll angles cause eye strain; larger angles (≥ a few degrees) prevent fusion entirely. - **Yaw** — may be safe in some circumstances but increasingly likely to cause anomalous parallax perception at larger angles. - **Pitch** — the baseline is the rotation axis and the invariant of the rotation depends on the projection. - Any mixed rotation that decomposes to a non-zero roll component exhibits the same failure proportional to the roll magnitude. For mono content there are no stereo constraints and the full rotation space is valid.

Skipped declarations

No declarations were skipped in this snapshot.

All ImmersiveMediaSupport types →