UNPKG

molstar

Version:

A comprehensive macromolecular library.

90 lines 4.31 kB
"use strict"; /** * Copyright (c) 2018 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.BaseGeometry = exports.VisualQualityOptions = exports.VisualQualityNames = exports.VisualQualityInfo = void 0; var mol_util_1 = require("../../mol-util"); var location_iterator_1 = require("../util/location-iterator"); var param_definition_1 = require("../../mol-util/param-definition"); var transform_data_1 = require("./transform-data"); var names_1 = require("../../mol-util/color/names"); var location_1 = require("../../mol-model/location"); var uniform_1 = require("../../mol-theme/color/uniform"); var uniform_2 = require("../../mol-theme/size/uniform"); exports.VisualQualityInfo = { 'custom': {}, 'auto': {}, 'highest': {}, 'higher': {}, 'high': {}, 'medium': {}, 'low': {}, 'lower': {}, 'lowest': {}, }; exports.VisualQualityNames = Object.keys(exports.VisualQualityInfo); exports.VisualQualityOptions = param_definition_1.ParamDefinition.arrayToOptions(exports.VisualQualityNames); // var BaseGeometry; (function (BaseGeometry) { BaseGeometry.Params = { alpha: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 1, step: 0.01 }, { label: 'Opacity', isEssential: true, description: 'How opaque/transparent the representation is rendered.' }), quality: param_definition_1.ParamDefinition.Select('auto', exports.VisualQualityOptions, { isEssential: true, description: 'Visual/rendering quality of the representation.' }), }; BaseGeometry.ShadingCategory = { category: 'Shading' }; BaseGeometry.CustomQualityParamInfo = { category: 'Custom Quality', hideIf: function (params) { return typeof params.quality !== 'undefined' && params.quality !== 'custom'; } }; function createSimple(colorValue, sizeValue, transform) { if (colorValue === void 0) { colorValue = names_1.ColorNames.grey; } if (sizeValue === void 0) { sizeValue = 1; } if (!transform) transform = (0, transform_data_1.createIdentityTransform)(); var locationIterator = (0, location_iterator_1.LocationIterator)(1, transform.instanceCount.ref.value, 1, function () { return location_1.NullLocation; }, false, function () { return false; }); var theme = { color: (0, uniform_1.UniformColorTheme)({}, { value: colorValue }), size: (0, uniform_2.UniformSizeTheme)({}, { value: sizeValue }) }; return { transform: transform, locationIterator: locationIterator, theme: theme }; } BaseGeometry.createSimple = createSimple; function createValues(props, counts) { return { alpha: mol_util_1.ValueCell.create(props.alpha), uAlpha: mol_util_1.ValueCell.create(props.alpha), uVertexCount: mol_util_1.ValueCell.create(counts.vertexCount), uGroupCount: mol_util_1.ValueCell.create(counts.groupCount), drawCount: mol_util_1.ValueCell.create(counts.drawCount), }; } BaseGeometry.createValues = createValues; function updateValues(values, props) { mol_util_1.ValueCell.updateIfChanged(values.alpha, props.alpha); // `uAlpha` is set in renderable.render } BaseGeometry.updateValues = updateValues; function createRenderableState(props) { if (props === void 0) { props = {}; } var opaque = props.alpha === undefined ? true : props.alpha === 1; return { disposed: false, visible: true, alphaFactor: 1, pickable: true, colorOnly: false, opaque: opaque, writeDepth: opaque, noClip: false, }; } BaseGeometry.createRenderableState = createRenderableState; function updateRenderableState(state, props) { state.opaque = props.alpha * state.alphaFactor >= 1; state.writeDepth = state.opaque; } BaseGeometry.updateRenderableState = updateRenderableState; })(BaseGeometry = exports.BaseGeometry || (exports.BaseGeometry = {})); //# sourceMappingURL=base.js.map