UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

57 lines (53 loc) 1.48 kB
"use strict"; 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;