@openhps/core
Version:
Open Hybrid Positioning System - Core component
60 lines (54 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _StorageBuffer = _interopRequireDefault(require("../StorageBuffer.js"));
var _constants = require("../../../nodes/core/constants.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let _id = 0;
/**
* A special form of storage buffer binding type.
* It's buffer value is managed by a node object.
*
* @private
* @augments StorageBuffer
*/
class NodeStorageBuffer extends _StorageBuffer.default {
/**
* Constructs a new node-based storage buffer.
*
* @param {StorageBufferNode} nodeUniform - The storage buffer node.
* @param {UniformGroupNode} groupNode - The uniform group node.
*/
constructor(nodeUniform, groupNode) {
super('StorageBuffer_' + _id++, nodeUniform ? nodeUniform.value : null);
/**
* The node uniform.
*
* @type {StorageBufferNode}
*/
this.nodeUniform = nodeUniform;
/**
* The access type.
*
* @type {string}
*/
this.access = nodeUniform ? nodeUniform.access : _constants.NodeAccess.READ_WRITE;
/**
* The uniform group node.
*
* @type {UniformGroupNode}
*/
this.groupNode = groupNode;
}
/**
* The storage buffer.
*
* @type {BufferAttribute}
*/
get buffer() {
return this.nodeUniform.value;
}
}
var _default = exports.default = NodeStorageBuffer;