absoluteOrientation method

Stream<AbsoluteOrientationEvent> absoluteOrientation({
  1. Duration samplingPeriod = SensorInterval.normalInterval,
})

Implementation

Stream<AbsoluteOrientationEvent> absoluteOrientation({
  Duration samplingPeriod = SensorInterval.normalInterval,
}){
  if (_absoluteOrientationStreamController == null) {
    _absoluteOrientationStreamController = StreamController<AbsoluteOrientationEvent>();
    _featureDetected(
      () {
        final absoluteOrientation = AbsoluteOrientationSensor(
          SensorOptions(
            frequency: samplingPeriod.frequency,
          ),
        );

        absoluteOrientation.start();

        absoluteOrientation.onreading = (Event _) {
          final q = absoluteOrientation.quant.toDart;
          _absoluteOrientationStreamController!.add(

            AbsoluteOrientationEvent(
              q[0] as double,
              q[1] as double,
              q[2] as double,
            ),
          );
        }.toJS;

        absoluteOrientation.onerror = (SensorErrorEvent e) {
          developer.log(
            'The absoluteOrientation API is supported but something is wrong!',
            error: e.error.message,
          );
        }.toJS;
      },
      apiName: 'AbsoluteOrientationSensor()',
      permissionName: 'accelerometer',
      onError: () {
        _absoluteOrientationStreamController!.add(AbsoluteOrientationEvent(0, 0, 0));
      },
    );
    _absoluteOrientationResultStream =
        _absoluteOrientationStreamController!.stream.asBroadcastStream();

    _absoluteOrientationStreamController!.onCancel = () {
      _absoluteOrientationStreamController!.close();
    };
  }

  return _absoluteOrientationResultStream;
}