Newer
Older
reroad-test / 2020-ryusei / aframe-master / examples / performance / cubes / components.js
@ryusei ryusei on 22 Oct 2020 1 KB パノラマ表示
/* global AFRAME, THREE */
function randomIncRad (multiplier) {
  return multiplier * Math.random();
}

function randomIncDeg (multiplier) {
  return randomIncRad(multiplier) * THREE.Math.RAD2DEG;
}

// COMPONENTS
// ------------------
AFRAME.registerComponent('rotate-obj3d', {
  tick: function () {
    var el = this.el;
    el.object3D.rotation.x += randomIncRad(0.1);
    el.object3D.rotation.y += randomIncRad(0.2);
    el.object3D.rotation.z += randomIncRad(0.3);
  }
});

AFRAME.registerComponent('rotate-get-obj3d', {
  tick: function () {
    var el = this.el;
    var rotation = el.getAttribute('rotation');

    rotation.x += randomIncRad(0.1);
    rotation.y += randomIncRad(0.2);
    rotation.z += randomIncRad(0.3);

    el.object3D.rotation.x = rotation.x;
    el.object3D.rotation.y = rotation.y;
    el.object3D.rotation.z = rotation.z;
  }
});

AFRAME.registerComponent('rotate-obj3d-set', {
  tick: function () {
    var el = this.el;
    var rotation = el.getAttribute('rotation');

    rotation.x += randomIncDeg(0.1);
    rotation.y += randomIncDeg(0.2);
    rotation.z += randomIncDeg(0.3);

    el.setAttribute('rotation', rotation);
  }
});

AFRAME.registerComponent('rotate-get-set', {
  tick: function () {
    var el = this.el;
    var rotationAux = this.rotationAux = this.rotationAux || {x: 0, y: 0, z: 0};
    var rotation = el.getAttribute('rotation');
    rotationAux.x = rotation.x + randomIncDeg(0.1);
    rotationAux.y = rotation.y + randomIncDeg(0.2);
    rotationAux.z = rotation.z + randomIncDeg(0.3);
    el.setAttribute('rotation', rotationAux);
  }
});

AFRAME.registerComponent('rotate-get-settext', {
  tick: function () {
    var el = this.el;
    var rotation = el.getAttribute('rotation');

    rotation.x += randomIncDeg(0.1);
    rotation.y += randomIncDeg(0.2);
    rotation.z += randomIncDeg(0.3);

    el.setAttribute('rotation', rotation.x + ' ' + rotation.y + ' ' + rotation.z);
  }
});