import { Cartesian3 } from "../../Source/Cesium.js";
|
import { Color } from "../../Source/Cesium.js";
|
import { Intersect } from "../../Source/Cesium.js";
|
import { Math as CesiumMath } from "../../Source/Cesium.js";
|
import { Plane } from "../../Source/Cesium.js";
|
import { TileBoundingSphere } from "../../Source/Cesium.js";
|
import createFrameState from "../createFrameState.js";
|
|
describe("Scene/TileBoundingSphere", function () {
|
var tileBoundingSphere = new TileBoundingSphere(
|
new Cartesian3(0.0, 0.0, 0.0),
|
1.0
|
);
|
var frameState = createFrameState();
|
|
it("can be instantiated with center and radius", function () {
|
var center = new Cartesian3(0.0, 0.0, 0.0);
|
var radius = 1.0;
|
var tbs = new TileBoundingSphere(center, radius);
|
expect(tbs).toBeDefined();
|
expect(tbs.boundingVolume).toBeDefined();
|
expect(tbs.boundingSphere).toBeDefined();
|
expect(tbs.center).toEqual(center);
|
expect(tbs.radius).toEqual(radius);
|
});
|
|
it("createDebugVolume throws when color is undefined", function () {
|
expect(function () {
|
return tileBoundingSphere.createDebugVolume();
|
}).toThrowDeveloperError();
|
});
|
|
it("can create a debug volume", function () {
|
var debugVolume = tileBoundingSphere.createDebugVolume(Color.BLUE);
|
expect(debugVolume).toBeDefined();
|
});
|
|
it("distanceToCamera throws when frameState is undefined", function () {
|
expect(function () {
|
return tileBoundingSphere.distanceToCamera();
|
}).toThrowDeveloperError();
|
});
|
|
it("distance to camera is 0 when camera is inside bounding sphere", function () {
|
frameState.camera.position = new Cartesian3(0.0, 0.0, 0.0);
|
expect(tileBoundingSphere.distanceToCamera(frameState)).toEqual(0.0);
|
});
|
|
it("distance to camera is correct when camera is outside bounding region", function () {
|
frameState.camera.position = new Cartesian3(0.0, 2.0, 0.0);
|
expect(tileBoundingSphere.distanceToCamera(frameState)).toEqual(1.0);
|
});
|
|
it("intersectPlane throws when plane is undefined", function () {
|
expect(function () {
|
return tileBoundingSphere.intersectPlane();
|
}).toThrowDeveloperError();
|
});
|
|
it("intersects plane", function () {
|
var normal = new Cartesian3(0.0, 0.0, 1.0);
|
var plane = new Plane(normal, CesiumMath.EPSILON6);
|
expect(tileBoundingSphere.intersectPlane(plane)).toEqual(
|
Intersect.INTERSECTING
|
);
|
});
|
});
|