Skip to content

Commit 294cb0c

Browse files
committed
Merge pull request #2961 from AnalyticalGraphicsInc/reverseZ
Minor tweaks to reverseZ code.
2 parents 3f439ee + 110f8c6 commit 294cb0c

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Change Log
1414
* Added support for `GroundPrimitive` which works much like `Primitive` but it drapes the geometry over terrain. Valid geometries that can be draped on terrain are `CircleGeometry`, `CorridorGeometry`, `EllipseGeometry`, `PolygonGeometry`, and `RectangleGeometry`.
1515
* Added `BoundingSphere.isOccluded` and `OrientedBoundingBox.isOccluded` to determine if the volumes are occluded by an `Occluder`.
1616
* Added `distanceSquaredTo` and `computePlaneDistances` functions to `OrientedBoundingBox`.
17+
* Added `reverseZ` tag to `UrlTemplateImageryProvider`.
1718

1819
### 1.12 - 2015-08-03
1920

Source/Scene/UrlTemplateImageryProvider.js

+8
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ define([
6262
* <li><code>{s}</code>: One of the available subdomains, used to overcome browser limits on the number of simultaneous requests per host.</li>
6363
* <li><code>{reverseX}</code>: The tile X coordinate in the tiling scheme, where 0 is the Easternmost tile.</li>
6464
* <li><code>{reverseY}</code>: The tile Y coordinate in the tiling scheme, where 0 is the Southernmost tile.</li>
65+
* <li><code>{reverseZ}</code>: The level of the tile in the tiling scheme, where level zero is the maximum level of the quadtree pyramid. In order to use reverseZ, maximumLevel must be defined.</li>
6566
* <li><code>{westDegrees}</code>: The Western edge of the tile in geodetic degrees.</li>
6667
* <li><code>{southDegrees}</code>: The Southern edge of the tile in geodetic degrees.</li>
6768
* <li><code>{eastDegrees}</code>: The Eastern edge of the tile in geodetic degrees.</li>
@@ -201,6 +202,7 @@ define([
201202
* <li> <code>{s}</code>: One of the available subdomains, used to overcome browser limits on the number of simultaneous requests per host.</li>
202203
* <li> <code>{reverseX}</code>: The tile X coordinate in the tiling scheme, where 0 is the Easternmost tile.</li>
203204
* <li> <code>{reverseY}</code>: The tile Y coordinate in the tiling scheme, where 0 is the Southernmost tile.</li>
205+
* <li> <code>{reverseZ}</code>: The level of the tile in the tiling scheme, where level zero is the maximum level of the quadtree pyramid. In order to use reverseZ, maximumLevel must be defined.</li>
204206
* <li> <code>{westDegrees}</code>: The Western edge of the tile in geodetic degrees.</li>
205207
* <li> <code>{southDegrees}</code>: The Southern edge of the tile in geodetic degrees.</li>
206208
* <li> <code>{eastDegrees}</code>: The Eastern edge of the tile in geodetic degrees.</li>
@@ -598,6 +600,11 @@ define([
598600
return imageryProvider.tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
599601
}
600602

603+
function reverseZTag(imageryProvider, x, y, level) {
604+
var maximumLevel = imageryProvider.maximumLevel;
605+
return defined(maximumLevel) && level < maximumLevel ? maximumLevel - level - 1 : level;
606+
}
607+
601608
function zTag(imageryProvider, x, y, level) {
602609
return level;
603610
}
@@ -777,6 +784,7 @@ define([
777784
'{s}': sTag,
778785
'{reverseX}': reverseXTag,
779786
'{reverseY}': reverseYTag,
787+
'{reverseZ}': reverseZTag,
780788
'{westDegrees}': westDegreesTag,
781789
'{southDegrees}': southDegreesTag,
782790
'{eastDegrees}': eastDegreesTag,

Specs/Scene/UrlTemplateImageryProviderSpec.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -223,17 +223,18 @@ defineSuite([
223223
});
224224
});
225225

226-
it('evaluation of pattern X Y reverseX reverseY Z', function() {
226+
it('evaluation of pattern X Y reverseX reverseY Z reverseZ', function() {
227227
var provider = new UrlTemplateImageryProvider({
228-
url: 'made/up/tms/server/{z}/{reverseY}/{y}/{reverseX}/{x}.PNG',
229-
tilingScheme: new GeographicTilingScheme()
228+
url: 'made/up/tms/server/{z}/{reverseZ}/{reverseY}/{y}/{reverseX}/{x}.PNG',
229+
tilingScheme: new GeographicTilingScheme(),
230+
maximumLevel: 6
230231
});
231232

232233
return pollToPromise(function() {
233234
return provider.ready;
234235
}).then(function() {
235236
spyOn(loadImage, 'createImage').and.callFake(function(url, crossOrigin, deferred) {
236-
expect(url).toEqual('made/up/tms/server/2/2/1/4/3.PNG');
237+
expect(url).toEqual('made/up/tms/server/2/3/2/1/4/3.PNG');
237238

238239
// Just return any old image.
239240
loadImage.defaultCreateImage('Data/Images/Red16x16.png', crossOrigin, deferred);

0 commit comments

Comments
 (0)