| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | import Batched3DModel3DTileContent from "./Batched3DModel3DTileContent.js";import Composite3DTileContent from "./Composite3DTileContent.js";import Geometry3DTileContent from "./Geometry3DTileContent.js";import Implicit3DTileContent from "./Implicit3DTileContent.js";import Instanced3DModel3DTileContent from "./Instanced3DModel3DTileContent.js";import PointCloud3DTileContent from "./PointCloud3DTileContent.js";import Tileset3DTileContent from "./Tileset3DTileContent.js";import Vector3DTileContent from "./Vector3DTileContent.js";import RuntimeError from "../Core/RuntimeError.js";import ModelExperimental3DTileContent from "./ModelExperimental/ModelExperimental3DTileContent.js";/** * Maps a tile's magic field in its header to a new content object for the tile's payload. * * @private */const Cesium3DTileContentFactory = {  b3dm: function (tileset, tile, resource, arrayBuffer, byteOffset) {    if (tileset.enableModelExperimental) {      return ModelExperimental3DTileContent.fromB3dm(        tileset,        tile,        resource,        arrayBuffer,        byteOffset      );    }    return new Batched3DModel3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset    );  },  pnts: function (tileset, tile, resource, arrayBuffer, byteOffset) {    if (tileset.enableModelExperimental) {      return ModelExperimental3DTileContent.fromPnts(        tileset,        tile,        resource,        arrayBuffer,        byteOffset      );    }    return new PointCloud3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset    );  },  i3dm: function (tileset, tile, resource, arrayBuffer, byteOffset) {    if (tileset.enableModelExperimental) {      return ModelExperimental3DTileContent.fromI3dm(        tileset,        tile,        resource,        arrayBuffer,        byteOffset      );    }    return new Instanced3DModel3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset    );  },  cmpt: function (tileset, tile, resource, arrayBuffer, byteOffset) {    // Send in the factory in order to avoid a cyclical dependency    return new Composite3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset,      Cesium3DTileContentFactory    );  },  externalTileset: function (tileset, tile, resource, json) {    return new Tileset3DTileContent(tileset, tile, resource, json);  },  geom: function (tileset, tile, resource, arrayBuffer, byteOffset) {    return new Geometry3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset    );  },  vctr: function (tileset, tile, resource, arrayBuffer, byteOffset) {    return new Vector3DTileContent(      tileset,      tile,      resource,      arrayBuffer,      byteOffset    );  },  subt: function (tileset, tile, resource, arrayBuffer, byteOffset) {    return new Implicit3DTileContent(      tileset,      tile,      resource,      undefined,      arrayBuffer,      byteOffset    );  },  subtreeJson: function (tileset, tile, resource, json) {    return new Implicit3DTileContent(tileset, tile, resource, json);  },  glb: function (tileset, tile, resource, arrayBuffer, byteOffset) {    const arrayBufferByteLength = arrayBuffer.byteLength;    if (arrayBufferByteLength < 12) {      throw new RuntimeError("Invalid glb content");    }    const dataView = new DataView(arrayBuffer, byteOffset);    const byteLength = dataView.getUint32(8, true);    const glb = new Uint8Array(arrayBuffer, byteOffset, byteLength);    return ModelExperimental3DTileContent.fromGltf(      tileset,      tile,      resource,      glb    );  },  gltf: function (tileset, tile, resource, json) {    return ModelExperimental3DTileContent.fromGltf(      tileset,      tile,      resource,      json    );  },};export default Cesium3DTileContentFactory;
 |