import destroyObject from "../Core/destroyObject.js"; /** * Represents content for a tile in a * {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification|3D Tiles} tileset whose * content points to another 3D Tiles tileset. *

* Implements the {@link Cesium3DTileContent} interface. *

* * @implements Cesium3DTileContent * @private */ class Tileset3DTileContent { constructor(tileset, tile, resource) { this._tileset = tileset; this._tile = tile; this._resource = resource; this.featurePropertiesDirty = false; this._metadata = undefined; this._group = undefined; this._ready = false; } get featuresLength() { return 0; } get pointsLength() { return 0; } get trianglesLength() { return 0; } get geometryByteLength() { return 0; } get texturesByteLength() { return 0; } get batchTableByteLength() { return 0; } get innerContents() { return undefined; } /** * Returns true when the tile's content is ready to render; otherwise false * * * @type {boolean} * @readonly * @private */ get ready() { return this._ready; } get tileset() { return this._tileset; } get tile() { return this._tile; } get url() { return this._resource.getUrlComponent(true); } get batchTable() { return undefined; } get metadata() { return this._metadata; } set metadata(value) { this._metadata = value; } get group() { return this._group; } set group(value) { this._group = value; } /** * Creates an instance of Tileset3DTileContent from a parsed JSON object * @param {Cesium3DTileset} tileset * @param {Cesium3DTile} tile * @param {Resource} resource * @param {object} json * @returns {Tileset3DTileContent} */ static fromJson(tileset, tile, resource, json) { const content = new Tileset3DTileContent(tileset, tile, resource); content._tileset.loadTileset(content._resource, json, content._tile); content._ready = true; return content; } /** * Part of the {@link Cesium3DTileContent} interface. Tileset3DTileContent * always returns false since a tile of this type does not have any features. */ hasProperty(batchId, name) { return false; } /** * Part of the {@link Cesium3DTileContent} interface. Tileset3DTileContent * always returns undefined since a tile of this type does not have any features. */ getFeature(batchId) { return undefined; } applyDebugSettings(enabled, color) {} applyStyle(style) {} update(tileset, frameState) {} pick(ray, frameState, result) { return undefined; } isDestroyed() { return false; } destroy() { return destroyObject(this); } } export default Tileset3DTileContent;