import { Cartesian3 } from "../../Source/Cesium.js"; import { Matrix4 } from "../../Source/Cesium.js"; import { DebugModelMatrixPrimitive } from "../../Source/Cesium.js"; import createScene from "../createScene.js"; describe( "Scene/DebugModelMatrixPrimitive", function () { var scene; beforeAll(function () { scene = createScene(); var camera = scene.camera; camera.position = new Cartesian3(1.02, 0.0, 0.0); camera.direction = Cartesian3.negate(Cartesian3.UNIT_X, new Cartesian3()); camera.up = Cartesian3.clone(Cartesian3.UNIT_Z); }); afterAll(function () { scene.destroyForSpecs(); }); afterEach(function () { scene.primitives.removeAll(); }); it("gets the default properties", function () { var p = new DebugModelMatrixPrimitive(); expect(p.length).toEqual(10000000.0); expect(p.width).toEqual(2.0); expect(p.modelMatrix).toEqual(Matrix4.IDENTITY); expect(p.show).toEqual(true); expect(p.id).not.toBeDefined(); p.destroy(); }); it("Constructs with options", function () { var p = new DebugModelMatrixPrimitive({ length: 10.0, width: 1.0, modelMatrix: Matrix4.fromUniformScale(2.0), show: false, id: "id", }); expect(p.length).toEqual(10.0); expect(p.width).toEqual(1.0); expect(p.modelMatrix).toEqual(Matrix4.fromUniformScale(2.0)); expect(p.show).toEqual(false); expect(p.id).toEqual("id"); p.destroy(); }); it("renders", function () { var p = scene.primitives.add(new DebugModelMatrixPrimitive()); expect(scene).notToRender([0, 0, 0, 255]); // Update and render again p.length = 100.0; expect(scene).notToRender([0, 0, 0, 255]); }); it("does not render when show is false", function () { scene.primitives.add( new DebugModelMatrixPrimitive({ show: false, }) ); expect(scene).toRender([0, 0, 0, 255]); }); it("is picked", function () { var p = scene.primitives.add( new DebugModelMatrixPrimitive({ id: "id", }) ); expect(scene).toPickAndCall(function (result) { expect(result.primitive).toBe(p); expect(result.id).toBe("id"); }); }); it("isDestroyed", function () { var p = new DebugModelMatrixPrimitive(); expect(p.isDestroyed()).toEqual(false); p.destroy(); expect(p.isDestroyed()).toEqual(true); }); }, "WebGL" );