66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
defineSuite([
|
|
'Scene/PrimitivePipeline',
|
|
'Core/BoundingSphere',
|
|
'Core/BoxGeometry',
|
|
'Core/Cartesian3',
|
|
'Core/ComponentDatatype',
|
|
'Core/Geometry',
|
|
'Core/GeometryAttribute',
|
|
'Core/GeometryAttributes',
|
|
'Core/PrimitiveType'
|
|
], function(
|
|
PrimitivePipeline,
|
|
BoundingSphere,
|
|
BoxGeometry,
|
|
Cartesian3,
|
|
ComponentDatatype,
|
|
Geometry,
|
|
GeometryAttribute,
|
|
GeometryAttributes,
|
|
PrimitiveType) {
|
|
'use strict';
|
|
|
|
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');
|