AbsoluteOrientationSensor Test

by Csaba Hellinger

HTML

Hello

JavaScript

const log = (...args) => {
  console.log(...args);
  document.body.innerText += `\n` + args.map(String).join(" ");
};

const options = { frequency: 60, referenceFrame: "device" };
if (!window.AbsoluteOrientationSensor) {
  log("AbsoluteOrientationSensor is not defined");
}
const sensor = new AbsoluteOrientationSensor(options);

Promise.all([
  navigator.permissions.query({ name: "accelerometer" }),
  navigator.permissions.query({ name: "magnetometer" }),
  navigator.permissions.query({ name: "gyroscope" }),
])
  .then((results) => {
    if (results.every((result) => result.state === "granted")) {
      sensor.addEventListener("reading", () => {
        // model is a Three.js object instantiated elsewhere.
        //model.quaternion.fromArray(sensor.quaternion).inverse();
        log("sensor reading", sensor.quaternion);
      });
      sensor.addEventListener("error", (event) => {
        log("sensor error", event.error);
      });
      sensor.start();
      log("started");
    } else {
      log("No permissions to use AbsoluteOrientationSensor.");
    }
  })
  .catch((err) => {
    log("permissions", err);
  });