molstar
Version:
A comprehensive macromolecular library.
52 lines (51 loc) • 2.74 kB
JavaScript
/**
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.computeGaussianDensityTexture3d = exports.computeGaussianDensityTexture2d = exports.computeGaussianDensityTexture = exports.computeGaussianDensity = exports.DefaultGaussianDensityProps = void 0;
var tslib_1 = require("tslib");
var gpu_1 = require("./gaussian-density/gpu");
var task_1 = require("../../mol-task/task");
var cpu_1 = require("./gaussian-density/cpu");
exports.DefaultGaussianDensityProps = {
resolution: 1,
radiusOffset: 0,
smoothness: 1.5,
};
function computeGaussianDensity(position, box, radius, props) {
var _this = this;
return task_1.Task.create('Gaussian Density', function (ctx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, (0, cpu_1.GaussianDensityCPU)(ctx, position, box, radius, props)];
case 1: return [2 /*return*/, _a.sent()];
}
});
}); });
}
exports.computeGaussianDensity = computeGaussianDensity;
function computeGaussianDensityTexture(position, box, radius, props, webgl, texture) {
return _computeGaussianDensityTexture(webgl.isWebGL2 ? '3d' : '2d', position, box, radius, props, webgl, texture);
}
exports.computeGaussianDensityTexture = computeGaussianDensityTexture;
function computeGaussianDensityTexture2d(position, box, radius, props, webgl, texture) {
return _computeGaussianDensityTexture('2d', position, box, radius, props, webgl, texture);
}
exports.computeGaussianDensityTexture2d = computeGaussianDensityTexture2d;
function computeGaussianDensityTexture3d(position, box, radius, props, webgl, texture) {
return _computeGaussianDensityTexture('2d', position, box, radius, props, webgl, texture);
}
exports.computeGaussianDensityTexture3d = computeGaussianDensityTexture3d;
function _computeGaussianDensityTexture(type, position, box, radius, props, webgl, texture) {
var _this = this;
return task_1.Task.create('Gaussian Density', function (ctx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, type === '2d' ?
(0, gpu_1.GaussianDensityTexture2d)(webgl, position, box, radius, false, props, texture) :
(0, gpu_1.GaussianDensityTexture3d)(webgl, position, box, radius, props, texture)];
});
}); });
}
;