Skip to main content
Version: 0.9.0 (next)

AppVolume class

An immutable snapshot of one app volume: the box in the room a remote 3D application renders into, and how the application's content sits inside it.

Namespace: Quaternar.Qaros · Assembly: Quaternar.Qaros.dll

public sealed class AppVolume

Remarks​

Safe to keep; it never changes. Get a newer one from AppVolumeControl.SubscribeUpdates, or read the live transform with the AppVolumeControl.GetLatest* methods, which can be ahead of the last snapshot.

Three spaces: AppVolume.Pose places the box in room space. App volume space is the box's own frame: origin at the cuboid centre, +X along width, +Y up along height, +Z along length, in metres. App content space, the space the application renders in, is app volume space taken into AppVolume.AppPose with positions divided by AppVolume.AppScale. Nothing clips the content to the box.

Properties​

MemberDescription
Id
DisplayName
PoseThe cuboid centre's pose in the publishing peer's room space.
Size
LifetimeStatusAppVolumeLifetimeStatus.Closed after AppVolumeControl.Close; AppVolumeControl.GetOrCreate with the same common name reopens it.
EditingStatusWhich peer, if any, is moving or resizing the box itself (AppVolumeControl.StartEditing). A peer manipulating the app with a gesture is in AppVolumeGestureState.Holder instead.
UsedByPeersThe peers using the volume (AppVolumeControl.UpdateUsedByPeers). AppVolumeGestureState.ActiveModeByPeer covers exactly these peers.
AppPoseOrigin of the rendering application in app volume space, in volume metres; not scaled by AppVolume.AppScale.
AppScaleRoom-metres per app-metre: the factor between app content space and app volume space.
AppWorldAnchorThe Earth-fixed frame (ECEF WGS84) the volume is pinned to, if one was set with AppVolumeControl.ChangeAppWorldAnchor.
GestureConfigurationThe rules of gesture mode AppVolumeGestureState.DefaultMode and the allowed peers.
GestureStateGesture modes, the selected modes and the peer currently manipulating the app.

Id​

public AppVolumeId Id { get; }

Value: AppVolumeId

DisplayName​

public string DisplayName { get; }

Value: string

Pose​

The cuboid centre's pose in the publishing peer's room space.

public Pose Pose { get; }

Value: Pose

Size​

public AppVolumeSize Size { get; }

Value: AppVolumeSize

LifetimeStatus​

AppVolumeLifetimeStatus.Closed after AppVolumeControl.Close; AppVolumeControl.GetOrCreate with the same common name reopens it.

public AppVolumeLifetimeStatus LifetimeStatus { get; }

Value: AppVolumeLifetimeStatus

EditingStatus​

Which peer, if any, is moving or resizing the box itself (AppVolumeControl.StartEditing). A peer manipulating the app with a gesture is in AppVolumeGestureState.Holder instead.

public AppVolumeEditingStatus EditingStatus { get; }

Value: AppVolumeEditingStatus

UsedByPeers​

The peers using the volume (AppVolumeControl.UpdateUsedByPeers). AppVolumeGestureState.ActiveModeByPeer covers exactly these peers.

public PeerId[] UsedByPeers { get; }

Value: PeerId[]

AppPose​

Origin of the rendering application in app volume space, in volume metres; not scaled by AppVolume.AppScale.

public Pose AppPose { get; }

Value: Pose

AppScale​

Room-metres per app-metre: the factor between app content space and app volume space.

public float AppScale { get; }

Value: float

AppWorldAnchor​

The Earth-fixed frame (ECEF WGS84) the volume is pinned to, if one was set with AppVolumeControl.ChangeAppWorldAnchor.

public AppWorldAnchor AppWorldAnchor { get; }

Value: AppWorldAnchor

GestureConfiguration​

The rules of gesture mode AppVolumeGestureState.DefaultMode and the allowed peers.

public AppVolumeGestureConfiguration GestureConfiguration { get; }

Value: AppVolumeGestureConfiguration

GestureState​

Gesture modes, the selected modes and the peer currently manipulating the app.

public AppVolumeGestureState GestureState { get; }

Value: AppVolumeGestureState