molstar
Version:
A comprehensive macromolecular library.
32 lines (31 loc) • 1.35 kB
JavaScript
/**
* Copyright (c) 2026 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ParamDefinition as PD } from '../../mol-util/param-definition.js';
import { CustomPropertyDescriptor } from '../../mol-model/custom-property.js';
import { CustomVolumeProperty } from '../common/custom-volume-property.js';
import { Volume } from '../../mol-model/volume/volume.js';
import { calculateBasicStreamlines, BasicStreamlineCalculationParams } from './streamlines/basic.js';
export const StreamlinesParams = {
type: PD.MappedStatic('basic', {
'basic': PD.Group(BasicStreamlineCalculationParams, { isFlat: true }),
})
};
export const StreamlinesProvider = CustomVolumeProperty.createProvider({
label: 'Streamlines',
descriptor: CustomPropertyDescriptor({
name: 'molstar_streamlines',
// TODO `cifExport` and `symbol`
}),
defaultParams: StreamlinesParams,
getParams: (data) => StreamlinesParams,
isApplicable: (data) => !Volume.Segmentation.get(data),
obtain: async (ctx, data, props) => {
const p = { ...PD.getDefaultValues(StreamlinesParams), ...props };
switch (p.type.name) {
case 'basic': return { value: await calculateBasicStreamlines(ctx, data, p.type.params) };
}
}
});