@openhps/core
Version:
Open Hybrid Positioning System - Core component
82 lines (75 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _Binding = _interopRequireDefault(require("./Binding.js"));
var _BufferUtils = require("./BufferUtils.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Represents a buffer binding type.
*
* @private
* @abstract
* @augments Binding
*/
class Buffer extends _Binding.default {
/**
* Constructs a new buffer.
*
* @param {string} name - The buffer's name.
* @param {TypedArray} [buffer=null] - The buffer.
*/
constructor(name, buffer = null) {
super(name);
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isBuffer = true;
/**
* The bytes per element.
*
* @type {number}
*/
this.bytesPerElement = Float32Array.BYTES_PER_ELEMENT;
/**
* A reference to the internal buffer.
*
* @private
* @type {TypedArray}
*/
this._buffer = buffer;
}
/**
* The buffer's byte length.
*
* @type {number}
* @readonly
*/
get byteLength() {
return (0, _BufferUtils.getFloatLength)(this._buffer.byteLength);
}
/**
* A reference to the internal buffer.
*
* @type {Float32Array}
* @readonly
*/
get buffer() {
return this._buffer;
}
/**
* Updates the binding.
*
* @return {boolean} Whether the buffer has been updated and must be
* uploaded to the GPU.
*/
update() {
return true;
}
}
var _default = exports.default = Buffer;