molstar
Version:
A comprehensive macromolecular library.
32 lines • 1.44 kB
JavaScript
/**
* Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ChunkedArray } from '../../../mol-data/util';
import { Points } from './points';
// avoiding namespace lookup improved performance in Chrome (Aug 2020)
var caAdd3 = ChunkedArray.add3;
var caAdd = ChunkedArray.add;
export var PointsBuilder;
(function (PointsBuilder) {
function create(initialCount, chunkSize, points) {
if (initialCount === void 0) { initialCount = 2048; }
if (chunkSize === void 0) { chunkSize = 1024; }
var centers = ChunkedArray.create(Float32Array, 3, chunkSize, points ? points.centerBuffer.ref.value : initialCount);
var groups = ChunkedArray.create(Float32Array, 1, chunkSize, points ? points.groupBuffer.ref.value : initialCount);
return {
add: function (x, y, z, group) {
caAdd3(centers, x, y, z);
caAdd(groups, group);
},
getPoints: function () {
var cb = ChunkedArray.compact(centers, true);
var gb = ChunkedArray.compact(groups, true);
return Points.create(cb, gb, centers.elementCount, points);
}
};
}
PointsBuilder.create = create;
})(PointsBuilder || (PointsBuilder = {}));
//# sourceMappingURL=points-builder.js.map