Skip to content

Commit 91033c5

Browse files
committed
Cleanup and fix spec for Batch Table Hierarchy extension
1 parent c845b88 commit 91033c5

File tree

7 files changed

+18
-40
lines changed

7 files changed

+18
-40
lines changed

Source/Scene/Cesium3DTileBatchTable.js

+2-29
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,13 @@ define([
8282
*/
8383
this.featuresLength = featuresLength;
8484

85-
/**
86-
* @private
87-
*/
88-
this.batchTableBinary = batchTableBinary;
89-
9085
this._translucentFeaturesLength = 0; // Number of features in the tile that are translucent
9186

9287
var extensions;
9388
if (defined(batchTableJson)) {
9489
extensions = batchTableJson.extensions;
9590
}
9691
this._extensions = defaultValue(extensions, {});
97-
this._extras = defined(batchTableJson) ? batchTableJson.extras : undefined;
9892

9993
var properties = initializeProperties(batchTableJson);
10094
this._properties = properties;
@@ -182,11 +176,11 @@ define([
182176
return;
183177
}
184178

185-
var hierarchy = batchTable.getExtension('3DTILES_batch_table_hierarchy');
179+
var hierarchy = batchTable._extensions['3DTILES_batch_table_hierarchy'];
186180

187181
var legacyHierarchy = jsonHeader.HIERARCHY;
188182
if (defined(legacyHierarchy)) {
189-
Cesium3DTileBatchTable._deprecationWarning('batchTableHierarchyExtension', 'The batch table HIERARCHY property has been moved to an extension. Use extension.3DTILES_batch_table_hierarchy instead.');
183+
Cesium3DTileBatchTable._deprecationWarning('batchTableHierarchyExtension', 'The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead.');
190184
batchTable._extensions['3DTILES_batch_table_hierarchy'] = legacyHierarchy;
191185
hierarchy = legacyHierarchy;
192186
}
@@ -320,10 +314,6 @@ define([
320314
//>>includeEnd('debug');
321315

322316
function getBinaryProperties(featuresLength, properties, binaryBody) {
323-
if (!defined(properties)) {
324-
return;
325-
}
326-
327317
var binaryProperties;
328318
for (var name in properties) {
329319
if (properties.hasOwnProperty(name)) {
@@ -1496,23 +1486,6 @@ define([
14961486
}
14971487
};
14981488

1499-
/**
1500-
* Returns the contents of the batch table extension, or <code>undefined</code>
1501-
* if the extension is not present.
1502-
* @param {String} extensionName The name of the extension.
1503-
*
1504-
* @returns {Object|undefined} The contents of the batch table extension, or <code>undefined</code>
1505-
* if the extension is not present.
1506-
*/
1507-
Cesium3DTileBatchTable.prototype.getExtension = function(extensionName) {
1508-
var extensions = this._extensions;
1509-
if (!defined(extensions)) {
1510-
return;
1511-
}
1512-
1513-
return extensions[extensionName];
1514-
};
1515-
15161489
Cesium3DTileBatchTable.prototype.isDestroyed = function() {
15171490
return false;
15181491
};

Source/Scene/Cesium3DTileset.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1918,10 +1918,10 @@ define([
19181918
};
19191919

19201920
/**
1921-
* <code>true</code> if this the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
1921+
* <code>true</code> if the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
19221922
* @param {String} extensionName The name of the extension to check.
19231923
*
1924-
* @returns {Boolean} <code>true</code> if this the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
1924+
* @returns {Boolean} <code>true</code> if the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
19251925
*/
19261926
Cesium3DTileset.prototype.hasExtension = function(extensionName) {
19271927
if (!defined(this._extensionsUsed)) {

Specs/Scene/Batched3DModel3DTileContentSpec.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ defineSuite([
5656
scene = createScene();
5757

5858
// Keep the error from logging to the console when running tests
59-
Batched3DModel3DTileContent._deprecationWarning = function() {};
59+
spyOn(Batched3DModel3DTileContent, '_deprecationWarning');
6060
});
6161

6262
afterAll(function() {
@@ -79,7 +79,6 @@ defineSuite([
7979
});
8080

8181
it('recognizes the legacy 20-byte header', function() {
82-
spyOn(Batched3DModel3DTileContent, '_deprecationWarning');
8382
return Cesium3DTilesTester.loadTileset(scene, deprecated1Url)
8483
.then(function(tileset) {
8584
expect(Batched3DModel3DTileContent._deprecationWarning).toHaveBeenCalled();
@@ -91,7 +90,6 @@ defineSuite([
9190
});
9291

9392
it('recognizes the legacy 24-byte header', function() {
94-
spyOn(Batched3DModel3DTileContent, '_deprecationWarning');
9593
return Cesium3DTilesTester.loadTileset(scene, deprecated2Url)
9694
.then(function(tileset) {
9795
expect(Batched3DModel3DTileContent._deprecationWarning).toHaveBeenCalled();
@@ -103,7 +101,6 @@ defineSuite([
103101
});
104102

105103
it('logs deprecation warning for use of BATCHID without prefixed underscore', function() {
106-
spyOn(Batched3DModel3DTileContent, '_deprecationWarning');
107104
return Cesium3DTilesTester.loadTileset(scene, deprecated1Url)
108105
.then(function(tileset) {
109106
expect(Batched3DModel3DTileContent._deprecationWarning).toHaveBeenCalled();

Specs/Scene/Cesium3DTileBatchTableSpec.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ defineSuite([
3737
var withBatchTableUrl = './Data/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json';
3838
var withoutBatchTableUrl = './Data/Cesium3DTiles/Batched/BatchedWithoutBatchTable/tileset.json';
3939
var noBatchIdsUrl = './Data/Cesium3DTiles/Batched/BatchedNoBatchIds/tileset.json';
40-
var batchTableHierarchyExtensionUrl = './Data/Cesium3DTiles/Hierarchy/BatchTableHierarchyExtension/tileset.json';
40+
var batchTableHierarchyUrl = './Data/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json';
4141
var batchTableHierarchyBinaryUrl = './Data/Cesium3DTiles/Hierarchy/BatchTableHierarchyBinary/tileset.json';
4242
var batchTableHierarchyMultipleParentsUrl = './Data/Cesium3DTiles/Hierarchy/BatchTableHierarchyMultipleParents/tileset.json';
4343
var batchTableHierarchyNoParentsUrl = './Data/Cesium3DTiles/Hierarchy/BatchTableHierarchyNoParents/tileset.json';
@@ -63,8 +63,8 @@ defineSuite([
6363
scene.camera.lookAt(center, new HeadingPitchRange(0.0, -1.57, 20.0));
6464

6565
// Keep the error from logging to the console when running tests
66-
Cesium3DTileBatchTable._deprecationWarning = function() {};
67-
Batched3DModel3DTileContent._deprecationWarning = function() {};
66+
spyOn(Cesium3DTileBatchTable, '_deprecationWarning');
67+
spyOn(Batched3DModel3DTileContent, '_deprecationWarning');
6868
});
6969

7070
afterAll(function() {
@@ -904,7 +904,7 @@ defineSuite([
904904
}
905905

906906
it('renders tileset with batch table hierarchy extension', function() {
907-
return checkBatchTableHierarchy(batchTableHierarchyExtensionUrl, false);
907+
return checkBatchTableHierarchy(batchTableHierarchyUrl, false);
908908
});
909909

910910
it('renders tileset with batch table hierarchy using binary properties', function() {
@@ -924,7 +924,6 @@ defineSuite([
924924
});
925925

926926
it('warns about deprecated batch hierarchy (pre-version 1.0)', function() {
927-
spyOn(Cesium3DTileBatchTable, '_deprecationWarning');
928927
return checkBatchTableHierarchy(batchTableHierarchyLegacyUrl, false)
929928
.then(function(tileset) {
930929
expect(Cesium3DTileBatchTable._deprecationWarning).toHaveBeenCalled();

Specs/Scene/Cesium3DTilesetSpec.js

+9
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ defineSuite([
8686
var withBatchTableUrl = 'Data/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json';
8787
var noBatchIdsUrl = 'Data/Cesium3DTiles/Batched/BatchedNoBatchIds/tileset.json';
8888

89+
var withBatchTableHierarchyUrl = 'Data/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json';
90+
8991
var withTransformBoxUrl = 'Data/Cesium3DTiles/Batched/BatchedWithTransformBox/tileset.json';
9092
var withTransformSphereUrl = 'Data/Cesium3DTiles/Batched/BatchedWithTransformSphere/tileset.json';
9193
var withTransformRegionUrl = 'Data/Cesium3DTiles/Batched/BatchedWithTransformRegion/tileset.json';
@@ -358,6 +360,13 @@ defineSuite([
358360
});
359361
});
360362

363+
it('hasExtension returns true if the tileset JSON file uses the specified extension', function() {
364+
return Cesium3DTilesTester.loadTileset(scene, withBatchTableHierarchyUrl).then(function(tileset) {
365+
expect(tileset.hasExtension('3DTILES_batch_table_hierarchy')).toBe(true);
366+
expect(tileset.hasExtension('3DTILES_nonexistant_extension')).toBe(false);
367+
});
368+
});
369+
361370
it('passes version in query string to tiles', function() {
362371
return Cesium3DTilesTester.loadTileset(scene, tilesetUrl).then(function(tileset) {
363372
expect(tileset._root.content._resource.url).toEqual(getAbsoluteUri(tilesetUrl.replace('tileset.json','parent.b3dm?v=1.2.3')));

0 commit comments

Comments
 (0)