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 · Source: AppVolume.cs
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
| Member | Description |
|---|---|
| Id | |
| DisplayName | |
| Pose | The cuboid centre's pose in the publishing peer's room space. |
| Size | |
| LifetimeStatus | AppVolumeLifetimeStatus.Closed after AppVolumeControl.Close; AppVolumeControl.GetOrCreate with the same common name reopens it. |
| 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. |
| UsedByPeers | The peers using the volume (AppVolumeControl.UpdateUsedByPeers). AppVolumeGestureState.ActiveModeByPeer covers exactly these peers. |
| AppPose | Origin of the rendering application in app volume space, in volume metres; not scaled by AppVolume.AppScale. |
| AppScale | Room-metres per app-metre: the factor between app content space and app volume space. |
| AppWorldAnchor | The Earth-fixed frame (ECEF WGS84) the volume is pinned to, if one was set with AppVolumeControl.ChangeAppWorldAnchor. |
| GestureConfiguration | The rules of gesture mode AppVolumeGestureState.DefaultMode and the allowed peers. |
| GestureState | Gesture 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