UNPKG

molstar

Version:

A comprehensive macromolecular library.

69 lines 2.96 kB
"use strict"; /** * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Symmetry = exports.Assembly = void 0; var util_1 = require("../../../../mol-data/util"); var geometry_1 = require("../../../../mol-math/geometry"); var symmetry_1 = require("../../../../mol-model-formats/structure/property/symmetry"); var misc_1 = require("../../../../mol-math/misc"); var Assembly = /** @class */ (function () { function Assembly(id, details, operatorsProvider) { this.operatorsProvider = operatorsProvider; this.id = id; this.details = details; } Object.defineProperty(Assembly.prototype, "operatorGroups", { get: function () { if (this._operators) return this._operators; this._operators = this.operatorsProvider(); return this._operators; }, enumerable: false, configurable: true }); return Assembly; }()); exports.Assembly = Assembly; (function (Assembly) { function create(id, details, operatorsProvider) { return new Assembly(id, details, operatorsProvider); } Assembly.create = create; })(Assembly = exports.Assembly || (exports.Assembly = {})); exports.Assembly = Assembly; var Symmetry; (function (Symmetry) { Symmetry.Default = { assemblies: [], spacegroup: geometry_1.Spacegroup.ZeroP1, isNonStandardCrystalFrame: false }; function findAssembly(model, id) { var _id = id.toLocaleLowerCase(); var symmetry = symmetry_1.ModelSymmetry.Provider.get(model); return symmetry ? (0, util_1.arrayFind)(symmetry.assemblies, function (a) { return a.id.toLowerCase() === _id; }) : undefined; } Symmetry.findAssembly = findAssembly; function getUnitcellLabel(symmetry) { var _a = symmetry.spacegroup, cell = _a.cell, name = _a.name, num = _a.num; var size = cell.size, anglesInRadians = cell.anglesInRadians; var a = size[0].toFixed(2); var b = size[1].toFixed(2); var c = size[2].toFixed(2); var alpha = (0, misc_1.radToDeg)(anglesInRadians[0]).toFixed(2); var beta = (0, misc_1.radToDeg)(anglesInRadians[1]).toFixed(2); var gamma = (0, misc_1.radToDeg)(anglesInRadians[2]).toFixed(2); var label = []; // name label.push("Unit Cell <b>" + name + "</b> #" + num); // sizes label.push(a + "\u00D7" + b + "\u00D7" + c + " \u212B"); // angles label.push("\u03B1=" + alpha + "\u00B0 \u03B2=" + beta + "\u00B0 \u03B3=" + gamma + "\u00B0"); return label.join(' | '); } Symmetry.getUnitcellLabel = getUnitcellLabel; })(Symmetry || (Symmetry = {})); exports.Symmetry = Symmetry; //# sourceMappingURL=symmetry.js.map