You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
7.2 KiB
JavaScript
209 lines
7.2 KiB
JavaScript
import { PrimitiveType } from "../../Source/Cesium.js";
|
|
import { DrawCommand } from "../../Source/Cesium.js";
|
|
import { Pass } from "../../Source/Cesium.js";
|
|
|
|
describe("Renderer/DrawCommand", function () {
|
|
it("constructs", function () {
|
|
var c = new DrawCommand();
|
|
expect(c.boundingVolume).toBeUndefined();
|
|
expect(c.orientedBoundingBox).toBeUndefined();
|
|
expect(c.cull).toEqual(true);
|
|
expect(c.occlude).toEqual(true);
|
|
expect(c.modelMatrix).toBeUndefined();
|
|
expect(c.primitiveType).toEqual(PrimitiveType.TRIANGLES);
|
|
expect(c.vertexArray).toBeUndefined();
|
|
expect(c.count).toBeUndefined();
|
|
expect(c.offset).toEqual(0);
|
|
expect(c.instanceCount).toEqual(0);
|
|
expect(c.shaderProgram).toBeUndefined();
|
|
expect(c.uniformMap).toBeUndefined();
|
|
expect(c.renderState).toBeUndefined();
|
|
expect(c.framebuffer).toBeUndefined();
|
|
expect(c.pass).toBeUndefined();
|
|
expect(c.executeInClosestFrustum).toEqual(false);
|
|
expect(c.owner).toBeUndefined();
|
|
expect(c.debugShowBoundingVolume).toEqual(false);
|
|
expect(c.debugOverlappingFrustums).toEqual(0);
|
|
expect(c.castShadows).toEqual(false);
|
|
expect(c.receiveShadows).toEqual(false);
|
|
expect(c.pickId).toBeUndefined();
|
|
expect(c.pickOnly).toBe(false);
|
|
});
|
|
|
|
it("constructs with options", function () {
|
|
var boundingVolume = {};
|
|
var orientedBoundingBox = {};
|
|
var modelMatrix = {};
|
|
var primitiveType = PrimitiveType.TRIANGLE_FAN;
|
|
var vertexArray = {};
|
|
var shaderProgram = {};
|
|
var uniformMap = {};
|
|
var renderState = {};
|
|
var framebuffer = {};
|
|
var pass = Pass.TRANSLUCENT;
|
|
var owner = {};
|
|
var pickId = {};
|
|
|
|
var c = new DrawCommand({
|
|
boundingVolume: boundingVolume,
|
|
orientedBoundingBox: orientedBoundingBox,
|
|
cull: false,
|
|
occlude: false,
|
|
modelMatrix: modelMatrix,
|
|
primitiveType: primitiveType,
|
|
vertexArray: vertexArray,
|
|
count: 3,
|
|
offset: 3,
|
|
instanceCount: 2,
|
|
shaderProgram: shaderProgram,
|
|
uniformMap: uniformMap,
|
|
renderState: renderState,
|
|
framebuffer: framebuffer,
|
|
pass: pass,
|
|
executeInClosestFrustum: true,
|
|
owner: owner,
|
|
debugShowBoundingVolume: true,
|
|
castShadows: true,
|
|
receiveShadows: true,
|
|
pickId: pickId,
|
|
pickOnly: true,
|
|
});
|
|
|
|
expect(c.boundingVolume).toBe(boundingVolume);
|
|
expect(c.orientedBoundingBox).toBe(orientedBoundingBox);
|
|
expect(c.cull).toEqual(false);
|
|
expect(c.occlude).toEqual(false);
|
|
expect(c.modelMatrix).toBe(modelMatrix);
|
|
expect(c.primitiveType).toEqual(primitiveType);
|
|
expect(c.vertexArray).toBe(vertexArray);
|
|
expect(c.count).toEqual(3);
|
|
expect(c.offset).toEqual(3);
|
|
expect(c.instanceCount).toEqual(2);
|
|
expect(c.shaderProgram).toBe(shaderProgram);
|
|
expect(c.uniformMap).toBe(uniformMap);
|
|
expect(c.renderState).toBe(renderState);
|
|
expect(c.framebuffer).toBe(framebuffer);
|
|
expect(c.pass).toEqual(pass);
|
|
expect(c.executeInClosestFrustum).toEqual(true);
|
|
expect(c.owner).toBe(owner);
|
|
expect(c.debugShowBoundingVolume).toEqual(true);
|
|
expect(c.debugOverlappingFrustums).toEqual(0);
|
|
expect(c.castShadows).toEqual(true);
|
|
expect(c.receiveShadows).toEqual(true);
|
|
expect(c.pickId).toBe(pickId);
|
|
expect(c.pickOnly).toEqual(true);
|
|
});
|
|
|
|
it("shallow clones", function () {
|
|
var c = new DrawCommand({
|
|
boundingVolume: {},
|
|
orientedBoundingBox: {},
|
|
cull: false,
|
|
occlude: false,
|
|
modelMatrix: {},
|
|
primitiveType: PrimitiveType.TRIANGLE_FAN,
|
|
vertexArray: {},
|
|
count: 3,
|
|
offset: 3,
|
|
instanceCount: 2,
|
|
shaderProgram: {},
|
|
uniformMap: {},
|
|
renderState: {},
|
|
framebuffer: {},
|
|
pass: Pass.TRANSLUCENT,
|
|
executeInClosestFrustum: true,
|
|
owner: {},
|
|
debugShowBoundingVolume: true,
|
|
castShadows: true,
|
|
receiveShadows: true,
|
|
pickId: {},
|
|
pickOnly: true,
|
|
});
|
|
|
|
var clone = DrawCommand.shallowClone(c);
|
|
|
|
expect(clone.boundingVolume).toBe(c.boundingVolume);
|
|
expect(clone.orientedBoundingBox).toBe(c.orientedBoundingBox);
|
|
expect(clone.cull).toEqual(c.cull);
|
|
expect(clone.occlude).toEqual(c.occlude);
|
|
expect(clone.modelMatrix).toBe(c.modelMatrix);
|
|
expect(clone.primitiveType).toEqual(c.primitiveType);
|
|
expect(clone.vertexArray).toBe(c.vertexArray);
|
|
expect(clone.count).toEqual(c.count);
|
|
expect(clone.offset).toEqual(c.offset);
|
|
expect(clone.instanceCount).toEqual(c.instanceCount);
|
|
expect(clone.shaderProgram).toBe(c.shaderProgram);
|
|
expect(clone.uniformMap).toBe(c.uniformMap);
|
|
expect(clone.renderState).toBe(c.renderState);
|
|
expect(clone.framebuffer).toBe(c.framebuffer);
|
|
expect(clone.pass).toEqual(c.pass);
|
|
expect(clone.executeInClosestFrustum).toEqual(c.executeInClosestFrustum);
|
|
expect(clone.owner).toBe(c.owner);
|
|
expect(clone.debugShowBoundingVolume).toEqual(c.debugShowBoundingVolume);
|
|
expect(clone.debugOverlappingFrustums).toEqual(c.debugOverlappingFrustums);
|
|
expect(clone.castShadows).toEqual(c.castShadows);
|
|
expect(clone.receiveShadows).toEqual(c.receiveShadows);
|
|
expect(clone.pickId).toBe(c.pickId);
|
|
expect(clone.pickOnly).toBe(c.pickOnly);
|
|
});
|
|
|
|
it("shallow clones with result", function () {
|
|
var c = new DrawCommand({
|
|
boundingVolume: {},
|
|
orientedBoundingBox: {},
|
|
cull: false,
|
|
occlude: false,
|
|
modelMatrix: {},
|
|
primitiveType: PrimitiveType.TRIANGLE_FAN,
|
|
vertexArray: {},
|
|
count: 3,
|
|
offset: 3,
|
|
instanceCount: 2,
|
|
shaderProgram: {},
|
|
uniformMap: {},
|
|
renderState: {},
|
|
framebuffer: {},
|
|
pass: Pass.TRANSLUCENT,
|
|
executeInClosestFrustum: true,
|
|
owner: {},
|
|
debugShowBoundingVolume: true,
|
|
castShadows: true,
|
|
receiveShadows: true,
|
|
pickId: {},
|
|
pickOnly: true,
|
|
});
|
|
|
|
var result = new DrawCommand();
|
|
var clone = DrawCommand.shallowClone(c, result);
|
|
|
|
expect(result).toBe(clone);
|
|
expect(clone.boundingVolume).toBe(c.boundingVolume);
|
|
expect(clone.orientedBoundingBox).toBe(c.orientedBoundingBox);
|
|
expect(clone.cull).toEqual(c.cull);
|
|
expect(clone.occlude).toEqual(c.occlude);
|
|
expect(clone.modelMatrix).toBe(c.modelMatrix);
|
|
expect(clone.primitiveType).toEqual(c.primitiveType);
|
|
expect(clone.vertexArray).toBe(c.vertexArray);
|
|
expect(clone.count).toEqual(c.count);
|
|
expect(clone.offset).toEqual(c.offset);
|
|
expect(clone.instanceCount).toEqual(c.instanceCount);
|
|
expect(clone.shaderProgram).toBe(c.shaderProgram);
|
|
expect(clone.uniformMap).toBe(c.uniformMap);
|
|
expect(clone.renderState).toBe(c.renderState);
|
|
expect(clone.framebuffer).toBe(c.framebuffer);
|
|
expect(clone.pass).toEqual(c.pass);
|
|
expect(clone.executeInClosestFrustum).toEqual(c.executeInClosestFrustum);
|
|
expect(clone.owner).toBe(c.owner);
|
|
expect(clone.debugShowBoundingVolume).toEqual(c.debugShowBoundingVolume);
|
|
expect(clone.debugOverlappingFrustums).toEqual(c.debugOverlappingFrustums);
|
|
expect(clone.castShadows).toEqual(c.castShadows);
|
|
expect(clone.receiveShadows).toEqual(c.receiveShadows);
|
|
expect(clone.pickId).toBe(c.pickId);
|
|
expect(clone.pickOnly).toBe(c.pickOnly);
|
|
});
|
|
|
|
it("shallow clone returns undefined", function () {
|
|
expect(DrawCommand.shallowClone()).toBeUndefined();
|
|
});
|
|
});
|