1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| import Batched3DModel3DTileContent from "./Batched3DModel3DTileContent.js";
| import Composite3DTileContent from "./Composite3DTileContent.js";
| import Geometry3DTileContent from "./Geometry3DTileContent.js";
| import Gltf3DTileContent from "./Gltf3DTileContent.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 ExperimentalFeatures from "../Core/ExperimentalFeatures.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
| */
| var Cesium3DTileContentFactory = {
| b3dm: function (tileset, tile, resource, arrayBuffer, byteOffset) {
| if (ExperimentalFeatures.enableModelExperimental) {
| return ModelExperimental3DTileContent.fromB3dm(
| tileset,
| tile,
| resource,
| arrayBuffer,
| byteOffset
| );
| }
| return new Batched3DModel3DTileContent(
| tileset,
| tile,
| resource,
| arrayBuffer,
| byteOffset
| );
| },
| pnts: function (tileset, tile, resource, arrayBuffer, byteOffset) {
| return new PointCloud3DTileContent(
| tileset,
| tile,
| resource,
| arrayBuffer,
| byteOffset
| );
| },
| i3dm: function (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,
| arrayBuffer,
| byteOffset
| );
| },
| glb: function (tileset, tile, resource, arrayBuffer, byteOffset) {
| var arrayBufferByteLength = arrayBuffer.byteLength;
| if (arrayBufferByteLength < 12) {
| throw new RuntimeError("Invalid glb content");
| }
| var dataView = new DataView(arrayBuffer, byteOffset);
| var byteLength = dataView.getUint32(8, true);
| var glb = new Uint8Array(arrayBuffer, byteOffset, byteLength);
| if (ExperimentalFeatures.enableModelExperimental) {
| return ModelExperimental3DTileContent.fromGltf(
| tileset,
| tile,
| resource,
| glb
| );
| }
| return new Gltf3DTileContent(tileset, tile, resource, glb);
| },
| gltf: function (tileset, tile, resource, json) {
| if (ExperimentalFeatures.enableModelExperimental) {
| return ModelExperimental3DTileContent.fromGltf(
| tileset,
| tile,
| resource,
| json
| );
| }
| return new Gltf3DTileContent(tileset, tile, resource, json);
| },
| };
| export default Cesium3DTileContentFactory;
|
|