@openhps/core
Version:
Open Hybrid Positioning System - Core component
57 lines (53 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ChainMap = _interopRequireDefault(require("./ChainMap.js"));
var _RenderBundle = _interopRequireDefault(require("./RenderBundle.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const _chainKeys = [];
/**
* This renderer module manages render bundles.
*
* @private
*/
class RenderBundles {
/**
* Constructs a new render bundle management component.
*/
constructor() {
/**
* A chain map for maintaining the render bundles.
*
* @type {ChainMap}
*/
this.bundles = new _ChainMap.default();
}
/**
* Returns a render bundle for the given bundle group and camera.
*
* @param {BundleGroup} bundleGroup - The bundle group.
* @param {Camera} camera - The camera the bundle group is rendered with.
* @return {RenderBundle} The render bundle.
*/
get(bundleGroup, camera) {
const bundles = this.bundles;
_chainKeys[0] = bundleGroup;
_chainKeys[1] = camera;
let bundle = bundles.get(_chainKeys);
if (bundle === undefined) {
bundle = new _RenderBundle.default(bundleGroup, camera);
bundles.set(_chainKeys, bundle);
}
_chainKeys.length = 0;
return bundle;
}
/**
* Frees all internal resources.
*/
dispose() {
this.bundles = new _ChainMap.default();
}
}
var _default = exports.default = RenderBundles;