UNPKG

molstar

Version:

A comprehensive macromolecular library.

68 lines 2.98 kB
"use strict"; /** * Copyright (c) 2019-2020 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.InterContactsBuilder = exports.IntraContactsBuilder = void 0; var graph_1 = require("../../../mol-math/graph"); var common_1 = require("./common"); var inter_unit_graph_1 = require("../../../mol-math/graph/inter-unit-graph"); var IntraContactsBuilder; (function (IntraContactsBuilder) { function create(features, elementsCount) { var aIndices = []; var bIndices = []; var types = []; return { add: function (indexA, indexB, type) { aIndices[aIndices.length] = indexA; bIndices[bIndices.length] = indexB; types[types.length] = type; }, getContacts: function () { var builder = new graph_1.IntAdjacencyGraph.EdgeBuilder(features.count, aIndices, bIndices); var type = new Int8Array(builder.slotCount); var flag = new Int8Array(builder.slotCount); for (var i = 0, _i = builder.edgeCount; i < _i; i++) { builder.addNextEdge(); builder.assignProperty(type, types[i]); } var graph = builder.createGraph({ type: type, flag: flag }); var elementsIndex; var contacts = Object.defineProperty(graph, 'elementsIndex', { get: function () { return elementsIndex || (elementsIndex = common_1.InteractionsIntraContacts.createElementsIndex(graph, features, elementsCount)); } }); return contacts; } }; } IntraContactsBuilder.create = create; })(IntraContactsBuilder || (IntraContactsBuilder = {})); exports.IntraContactsBuilder = IntraContactsBuilder; var InterContactsBuilder; (function (InterContactsBuilder) { function create() { var builder = new inter_unit_graph_1.InterUnitGraph.Builder(); return { startUnitPair: function (unitA, unitB) { builder.startUnitPair(unitA.id, unitB.id); }, finishUnitPair: function () { builder.finishUnitPair(); }, add: function (indexA, indexB, type) { builder.add(indexA, indexB, { type: type, flag: 0 /* None */ }); }, getContacts: function (unitsFeatures) { return new common_1.InteractionsInterContacts(builder.getMap(), unitsFeatures); } }; } InterContactsBuilder.create = create; })(InterContactsBuilder || (InterContactsBuilder = {})); exports.InterContactsBuilder = InterContactsBuilder; //# sourceMappingURL=contacts-builder.js.map