|
|
| |
| |
| |
|
|
| function InterleavedBufferAttribute( interleavedBuffer, itemSize, offset, normalized ) { |
|
|
| this.data = interleavedBuffer; |
| this.itemSize = itemSize; |
| this.offset = offset; |
|
|
| this.normalized = normalized === true; |
|
|
| } |
|
|
| Object.defineProperties( InterleavedBufferAttribute.prototype, { |
|
|
| count: { |
|
|
| get: function () { |
|
|
| return this.data.count; |
|
|
| } |
|
|
| }, |
|
|
| array: { |
|
|
| get: function () { |
|
|
| return this.data.array; |
|
|
| } |
|
|
| } |
|
|
| } ); |
|
|
| Object.assign( InterleavedBufferAttribute.prototype, { |
|
|
| isInterleavedBufferAttribute: true, |
|
|
| setX: function ( index, x ) { |
|
|
| this.data.array[ index * this.data.stride + this.offset ] = x; |
|
|
| return this; |
|
|
| }, |
|
|
| setY: function ( index, y ) { |
|
|
| this.data.array[ index * this.data.stride + this.offset + 1 ] = y; |
|
|
| return this; |
|
|
| }, |
|
|
| setZ: function ( index, z ) { |
|
|
| this.data.array[ index * this.data.stride + this.offset + 2 ] = z; |
|
|
| return this; |
|
|
| }, |
|
|
| setW: function ( index, w ) { |
|
|
| this.data.array[ index * this.data.stride + this.offset + 3 ] = w; |
|
|
| return this; |
|
|
| }, |
|
|
| getX: function ( index ) { |
|
|
| return this.data.array[ index * this.data.stride + this.offset ]; |
|
|
| }, |
|
|
| getY: function ( index ) { |
|
|
| return this.data.array[ index * this.data.stride + this.offset + 1 ]; |
|
|
| }, |
|
|
| getZ: function ( index ) { |
|
|
| return this.data.array[ index * this.data.stride + this.offset + 2 ]; |
|
|
| }, |
|
|
| getW: function ( index ) { |
|
|
| return this.data.array[ index * this.data.stride + this.offset + 3 ]; |
|
|
| }, |
|
|
| setXY: function ( index, x, y ) { |
|
|
| index = index * this.data.stride + this.offset; |
|
|
| this.data.array[ index + 0 ] = x; |
| this.data.array[ index + 1 ] = y; |
|
|
| return this; |
|
|
| }, |
|
|
| setXYZ: function ( index, x, y, z ) { |
|
|
| index = index * this.data.stride + this.offset; |
|
|
| this.data.array[ index + 0 ] = x; |
| this.data.array[ index + 1 ] = y; |
| this.data.array[ index + 2 ] = z; |
|
|
| return this; |
|
|
| }, |
|
|
| setXYZW: function ( index, x, y, z, w ) { |
|
|
| index = index * this.data.stride + this.offset; |
|
|
| this.data.array[ index + 0 ] = x; |
| this.data.array[ index + 1 ] = y; |
| this.data.array[ index + 2 ] = z; |
| this.data.array[ index + 3 ] = w; |
|
|
| return this; |
|
|
| } |
|
|
| } ); |
|
|
|
|
| export { InterleavedBufferAttribute }; |
|
|