95 lines
2.9 KiB
JavaScript
95 lines
2.9 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'Core/Cartesian3',
|
||
|
|
'Core/Color',
|
||
|
|
'Core/defined',
|
||
|
|
'Core/HeadingPitchRange',
|
||
|
|
'Core/HeadingPitchRoll',
|
||
|
|
'Core/Math',
|
||
|
|
'Core/PerspectiveFrustum',
|
||
|
|
'Core/Transforms',
|
||
|
|
'Scene/PointCloud3DTileContent',
|
||
|
|
'Scene/PointCloudEyeDomeLighting',
|
||
|
|
'Specs/Cesium3DTilesTester',
|
||
|
|
'Specs/createScene'
|
||
|
|
], 'Scene/PointCloudEyeDomeLighting', function(
|
||
|
|
Cartesian3,
|
||
|
|
Color,
|
||
|
|
defined,
|
||
|
|
HeadingPitchRange,
|
||
|
|
HeadingPitchRoll,
|
||
|
|
CesiumMath,
|
||
|
|
PerspectiveFrustum,
|
||
|
|
Transforms,
|
||
|
|
PointCloud3DTileContent,
|
||
|
|
PointCloudEyeDomeLighting,
|
||
|
|
Cesium3DTilesTester,
|
||
|
|
createScene) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
var scene;
|
||
|
|
var centerLongitude = -1.31968;
|
||
|
|
var centerLatitude = 0.698874;
|
||
|
|
|
||
|
|
var pointCloudNoColorUrl = './Data/Cesium3DTiles/PointCloud/PointCloudNoColor/tileset.json';
|
||
|
|
|
||
|
|
function setCamera(longitude, latitude) {
|
||
|
|
// Point the camera to the center of the tile
|
||
|
|
var center = Cartesian3.fromRadians(longitude, latitude, 5.0);
|
||
|
|
scene.camera.lookAt(center, new HeadingPitchRange(0.0, -1.57, 5.0));
|
||
|
|
}
|
||
|
|
|
||
|
|
beforeAll(function() {
|
||
|
|
scene = createScene();
|
||
|
|
});
|
||
|
|
|
||
|
|
afterAll(function() {
|
||
|
|
scene.destroyForSpecs();
|
||
|
|
});
|
||
|
|
|
||
|
|
beforeEach(function() {
|
||
|
|
var camera = scene.camera;
|
||
|
|
camera.frustum = new PerspectiveFrustum();
|
||
|
|
camera.frustum.aspectRatio = scene.drawingBufferWidth / scene.drawingBufferHeight;
|
||
|
|
camera.frustum.fov = CesiumMath.toRadians(60.0);
|
||
|
|
|
||
|
|
setCamera(centerLongitude, centerLatitude);
|
||
|
|
});
|
||
|
|
|
||
|
|
afterEach(function() {
|
||
|
|
scene.primitives.removeAll();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('adds a clear command and a post-processing draw call', function() {
|
||
|
|
return Cesium3DTilesTester.loadTileset(scene, pointCloudNoColorUrl).then(function(tileset) {
|
||
|
|
if (!PointCloudEyeDomeLighting.isSupported(scene.frameState.context)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
tileset.pointCloudShading.eyeDomeLighting = true;
|
||
|
|
|
||
|
|
scene.renderForSpecs();
|
||
|
|
var originalLength = scene.frameState.commandList.length;
|
||
|
|
|
||
|
|
tileset.pointCloudShading.attenuation = true;
|
||
|
|
scene.renderForSpecs();
|
||
|
|
var newLength = scene.frameState.commandList.length;
|
||
|
|
expect(newLength).toEqual(originalLength + 2);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('does not change commands for pick calls', function() {
|
||
|
|
return Cesium3DTilesTester.loadTileset(scene, pointCloudNoColorUrl).then(function(tileset) {
|
||
|
|
tileset.pointCloudShading.eyeDomeLighting = true;
|
||
|
|
|
||
|
|
scene.pickForSpecs();
|
||
|
|
var originalLength = scene.frameState.commandList.length;
|
||
|
|
|
||
|
|
tileset.pointCloudShading.attenuation = true;
|
||
|
|
scene.pickForSpecs();
|
||
|
|
var newLength = scene.frameState.commandList.length;
|
||
|
|
expect(newLength).toEqual(originalLength);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
}, 'WebGL');
|