123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- THREE.GeometryEditor = function ( geometry ) {
- this.geometry = geometry;
- };
- Object.defineProperties( THREE.GeometryEditor.prototype, {
- vertices: {
- enumerable: true,
- get: function() { return this.createVertexProxies(); }
- },
- normals: {
- enumerable: true,
- get: function() { return this.createNormalProxies(); }
- },
- uvs: {
- enumerable: true,
- get: function() { return this.createUVProxies(); }
- }
- } );
- THREE.GeometryEditor.prototype.createVertexProxies = function () {
- Object.defineProperty( this, 'vertices', { value: [], writable: true } );
- var attributes = this.geometry.attributes;
- var length = attributes.position.array.length / 3;
- for ( var i = 0; i < length; i ++ ) {
- this.vertices.push( new THREE.ProxyVector3( attributes.position.array, i * 3 ) );
- }
- return this.vertices;
- };
- THREE.GeometryEditor.prototype.createNormalProxies = function () {
- Object.defineProperty( this, 'normals', { value: [], writable: true } );
- var attributes = this.geometry.attributes;
- var length = attributes.position.array.length / 3;
- for ( var i = 0; i < length; i ++ ) {
- this.normals.push( new THREE.ProxyVector3( attributes.normal.array, i * 3 ) );
- }
- return this.normals;
- };
- THREE.GeometryEditor.prototype.createUVProxies = function () {
- Object.defineProperty( this, 'uvs', { value: [], writable: true } );
- var attributes = this.geometry.attributes;
- var length = attributes.position.array.length / 3;
- for ( var i = 0; i < length; i ++ ) {
- this.uvs.push( new THREE.ProxyVector2( attributes.uv.array, i * 2 ) );
- }
- return this.uvs;
- };
|