12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Allows updating of multiple THREE.Vector3 objects with the same value
- // Used for face.normal -> face.vertexNormal[] compatibility layer for FlatShading
- THREE.MultiVector3 = function(links) {
- this.links = links;
- }
- THREE.MultiVector3.prototype = Object.create( THREE.Vector3.prototype );
- THREE.MultiVector3.prototype.constructor = THREE.MultiVector3;
- THREE.MultiVector3.prototype.setAll = function(axis, value) {
- for (var i = 0, l = this.links.length; i < l; i++) {
- this.links[i][axis] = value;
- }
- }
- // Getters return value from the first linked vector
- // Setters set the same value for all linked vectors
- Object.defineProperties( THREE.MultiVector3.prototype, {
- 'x': {
- get: function () { return (this.links[0] ? this.links[0].x : 0); },
- set: function ( v ) { this.setAll('x', v); }
- },
- 'y': {
- get: function () { return (this.links[0] ? this.links[0].y : 0); },
- set: function ( v ) { this.setAll('y', v); }
- },
- 'z': {
- get: function () { return (this.links[0] ? this.links[0].z : 0); },
- set: function ( v ) { this.setAll('z', v); }
- }
- } );
|