import { BoundingSphere } from "../../Source/Cesium.js"; import { BoxGeometry } 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 { GeometryAttributes } from "../../Source/Cesium.js"; import { PrimitiveType } from "../../Source/Cesium.js"; import { PrimitivePipeline } from "../../Source/Cesium.js"; describe( "Scene/PrimitivePipeline", function () { it("can pack and unpack geometry", function () { var boxGeometry = BoxGeometry.createGeometry( BoxGeometry.fromDimensions({ dimensions: new Cartesian3(1, 2, 3), }) ); var boxGeometry2 = BoxGeometry.createGeometry( BoxGeometry.fromDimensions({ dimensions: new Cartesian3(3, 4, 7), }) ); var geometryToPack = [boxGeometry, boxGeometry2]; var transferableObjects = []; var results = PrimitivePipeline.packCreateGeometryResults( geometryToPack, transferableObjects ); var unpackedGeometry = PrimitivePipeline.unpackCreateGeometryResults( results ); expect(transferableObjects.length).toBe(1); expect(geometryToPack).toEqual(unpackedGeometry); }); it("can pack and unpack geometry without indices", function () { var attributes = new GeometryAttributes(); attributes.position = new GeometryAttribute({ componentDatatype: ComponentDatatype.FLOAT, componentsPerAttribute: 3, values: new Float32Array([1, 2, 3, 4, 5, 6]), }); var geometry = new Geometry({ attributes: attributes, indices: undefined, primitiveType: PrimitiveType.POINTS, boundingSphere: BoundingSphere.fromVertices(attributes.position.values), }); var geometryToPack = [geometry]; var transferableObjects = []; var results = PrimitivePipeline.packCreateGeometryResults( geometryToPack, transferableObjects ); var unpackedGeometry = PrimitivePipeline.unpackCreateGeometryResults( results ); expect(transferableObjects.length).toBe(1); expect(geometryToPack).toEqual(unpackedGeometry); }); }, "WebGL" );