import { BoundingSphere } from "../../Source/Cesium.js";
|
import { Cartesian3 } from "../../Source/Cesium.js";
|
import { ComponentDatatype } from "../../Source/Cesium.js";
|
import { Geometry } from "../../Source/Cesium.js";
|
import { GeometryAttribute } from "../../Source/Cesium.js";
|
import { GeometryInstance } from "../../Source/Cesium.js";
|
import { GeometryInstanceAttribute } from "../../Source/Cesium.js";
|
import { Matrix4 } from "../../Source/Cesium.js";
|
import { PrimitiveType } from "../../Source/Cesium.js";
|
|
describe("Core/GeometryInstance", function () {
|
it("constructor", function () {
|
var geometry = new Geometry({
|
attributes: {
|
position: new GeometryAttribute({
|
componentDatatype: ComponentDatatype.DOUBLE,
|
componentsPerAttribute: 3,
|
values: new Float64Array([
|
0.0,
|
0.0,
|
0.0,
|
1.0,
|
0.0,
|
0.0,
|
0.0,
|
1.0,
|
0.0,
|
]),
|
}),
|
},
|
indices: new Uint16Array([0, 1, 2]),
|
primitiveType: PrimitiveType.TRIANGLES,
|
boundingSphere: new BoundingSphere(new Cartesian3(0.5, 0.5, 0.0), 1.0),
|
});
|
var modelMatrix = Matrix4.multiplyByTranslation(
|
Matrix4.IDENTITY,
|
new Cartesian3(0.0, 0.0, 9000000.0),
|
new Matrix4()
|
);
|
var attributes = {
|
color: new GeometryInstanceAttribute({
|
componentDatatype: ComponentDatatype.UNSIGNED_BYTE,
|
componentsPerAttribute: 4,
|
normalize: true,
|
value: new Uint8Array([255, 255, 0, 255]),
|
}),
|
};
|
var instance = new GeometryInstance({
|
geometry: geometry,
|
modelMatrix: modelMatrix,
|
id: "geometry",
|
attributes: attributes,
|
});
|
|
expect(instance.geometry).toBe(geometry);
|
expect(instance.modelMatrix).toEqual(modelMatrix);
|
expect(instance.id).toEqual("geometry");
|
expect(attributes).toBe(attributes);
|
});
|
|
it("constructor throws without geometry", function () {
|
expect(function () {
|
return new GeometryInstance();
|
}).toThrowDeveloperError();
|
});
|
});
|