// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Orientation Sensor (https://w3c.github.io/orientation-sensor/)

typedef (Float32Array or Float64Array or DOMMatrix) RotationMatrixType;

[SecureContext, Exposed=Window]
interface OrientationSensor : Sensor {
  readonly attribute FrozenArray<double>? quaternion;
  void populateMatrix(RotationMatrixType targetMatrix);
};

enum OrientationSensorLocalCoordinateSystem { "device", "screen" };

dictionary OrientationSensorOptions : SensorOptions {
  OrientationSensorLocalCoordinateSystem referenceFrame = "device";
};

[Constructor(optional OrientationSensorOptions sensorOptions = {}), SecureContext, Exposed=Window]
interface AbsoluteOrientationSensor : OrientationSensor {
};

[Constructor(optional OrientationSensorOptions sensorOptions = {}), SecureContext, Exposed=Window]
interface RelativeOrientationSensor : OrientationSensor {
};

dictionary AbsoluteOrientationReadingValues {
  required FrozenArray<double>? quaternion;
};

dictionary RelativeOrientationReadingValues : AbsoluteOrientationReadingValues {
};
