var registerComponent = require('../core/component').registerComponent;
// Avoids triggering a zero-determinant which makes object3D matrix non-invertible.
var zeroScale = 0.00001;
module.exports.Component = registerComponent('scale', {
schema: {
type: 'vec3',
default: {x: 1, y: 1, z: 1}
},
update: function () {
var data = this.data;
var object3D = this.el.object3D;
var x = data.x === 0 ? zeroScale : data.x;
var y = data.y === 0 ? zeroScale : data.y;
var z = data.z === 0 ? zeroScale : data.z;
object3D.scale.set(x, y, z);
},
remove: function () {
// Pretty much for mixins.
this.el.object3D.scale.set(1, 1, 1);
}
});