Spaces:
Running
Running
| /** | |
| * @author benaadams / https://twitter.com/ben_a_adams | |
| */ | |
| function InterleavedBuffer( array, stride ) { | |
| this.array = array; | |
| this.stride = stride; | |
| this.count = array !== undefined ? array.length / stride : 0; | |
| this.dynamic = false; | |
| this.updateRange = { offset: 0, count: - 1 }; | |
| this.version = 0; | |
| } | |
| Object.defineProperty( InterleavedBuffer.prototype, 'needsUpdate', { | |
| set: function ( value ) { | |
| if ( value === true ) this.version ++; | |
| } | |
| } ); | |
| Object.assign( InterleavedBuffer.prototype, { | |
| isInterleavedBuffer: true, | |
| onUploadCallback: function () {}, | |
| setArray: function ( array ) { | |
| if ( Array.isArray( array ) ) { | |
| throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); | |
| } | |
| this.count = array !== undefined ? array.length / this.stride : 0; | |
| this.array = array; | |
| return this; | |
| }, | |
| setDynamic: function ( value ) { | |
| this.dynamic = value; | |
| return this; | |
| }, | |
| copy: function ( source ) { | |
| this.array = new source.array.constructor( source.array ); | |
| this.count = source.count; | |
| this.stride = source.stride; | |
| this.dynamic = source.dynamic; | |
| return this; | |
| }, | |
| copyAt: function ( index1, attribute, index2 ) { | |
| index1 *= this.stride; | |
| index2 *= attribute.stride; | |
| for ( var i = 0, l = this.stride; i < l; i ++ ) { | |
| this.array[ index1 + i ] = attribute.array[ index2 + i ]; | |
| } | |
| return this; | |
| }, | |
| set: function ( value, offset ) { | |
| if ( offset === undefined ) offset = 0; | |
| this.array.set( value, offset ); | |
| return this; | |
| }, | |
| clone: function () { | |
| return new this.constructor().copy( this ); | |
| }, | |
| onUpload: function ( callback ) { | |
| this.onUploadCallback = callback; | |
| return this; | |
| } | |
| } ); | |
| export { InterleavedBuffer }; | |