UNPKG

networked-aframe

Version:

A web framework for building multi-user virtual reality experiences.

31 lines (26 loc) 939 B
/* global AFRAME, THREE */ AFRAME.registerComponent('spawn-in-circle', { schema: { radius: {type: 'number', default: 1} }, init: function() { var el = this.el; var center = el.getAttribute('position'); var angleRad = this.getRandomAngleInRadians(); var circlePoint = this.randomPointOnCircle(this.data.radius, angleRad); var worldPoint = {x: circlePoint.x + center.x, y: center.y, z: circlePoint.y + center.z}; el.setAttribute('position', worldPoint); var angleDeg = angleRad * 180 / Math.PI; var angleToCenter = -1 * angleDeg + 90; angleRad = THREE.MathUtils.degToRad(angleToCenter); el.object3D.rotation.set(0, angleRad, 0); }, getRandomAngleInRadians: function() { return Math.random() * Math.PI * 2; }, randomPointOnCircle: function (radius, angleRad) { var x = Math.cos(angleRad) * radius; var y = Math.sin(angleRad) * radius; return {x: x, y: y}; } });