Spaces:
Running
Running
/** | |
* @author benaadams / https://twitter.com/ben_a_adams | |
*/ | |
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 }; | |