Newer
Older
reroad-test / 2020-ryusei / aframe-master / examples / test / raycaster / components / raycaster-helper.js
@ryusei ryusei on 22 Oct 2020 800 bytes パノラマ表示
/* global AFRAME, THREE */
var originVector = new THREE.Vector3(0, 0, 0);

/**
 * Draw raycaster ray.
 */
AFRAME.registerComponent('raycaster-helper', {
  dependencies: ['material', 'raycaster'],

  init: function () {
    var el = this.el;
    var geometry = new THREE.Geometry();
    var material = new THREE.LineBasicMaterial({
      color: el.getAttribute('material').color
    });
    var raycaster = el.components.raycaster.raycaster;
    var length = raycaster.far === Infinity ? 1000 : raycaster.far;

    geometry.vertices.push(originVector,
                           raycaster.ray.direction.clone().multiplyScalar(length));
    material.opacity = el.getAttribute('material').opacity;
    material.transparent = true;
    el.setObject3D('line', new THREE.Line(geometry, material));
  }
});