Select Git revision
common-frag-params.glsl.ts
volume.ts 3.84 KiB
/**
* Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import CIF from 'mol-io/reader/cif';
import { Vec3 } from 'mol-math/linear-algebra';
import { volumeFromCcp4 } from 'mol-model-formats/volume/ccp4';
import { volumeFromDensityServerData } from 'mol-model-formats/volume/density-server';
import { volumeFromDsn6 } from 'mol-model-formats/volume/dsn6';
import { Task } from 'mol-task';
import { ParamDefinition as PD } from 'mol-util/param-definition';
import { PluginStateObject as SO, PluginStateTransform } from '../objects';
export { VolumeFromCcp4 };
export { VolumeFromDsn6 };
export { VolumeFromDensityServerCif };
type VolumeFromCcp4 = typeof VolumeFromCcp4
const VolumeFromCcp4 = PluginStateTransform.BuiltIn({
name: 'volume-from-ccp4',
display: { name: 'Volume from CCP4/MRC/MAP', description: 'Create Volume from CCP4/MRC/MAP data' },
from: SO.Format.Ccp4,
to: SO.Volume.Data,
params(a) {
return {
voxelSize: PD.Vec3(Vec3.create(1, 1, 1))
};
}
})({
apply({ a, params }) {
return Task.create('Create volume from CCP4/MRC/MAP', async ctx => {
const volume = await volumeFromCcp4(a.data, params).runInContext(ctx)
const props = { label: 'Volume' };
return new SO.Volume.Data(volume, props);
});
}
});
type VolumeFromDsn6 = typeof VolumeFromDsn6
const VolumeFromDsn6 = PluginStateTransform.BuiltIn({
name: 'volume-from-dsn6',
display: { name: 'Volume from DSN6/BRIX', description: 'Create Volume from DSN6/BRIX data' },
from: SO.Format.Dsn6,
to: SO.Volume.Data,
params(a) {
return {
voxelSize: PD.Vec3(Vec3.create(1, 1, 1))
};
}
})({
apply({ a, params }) {
return Task.create('Create volume from DSN6/BRIX', async ctx => {
const volume = await volumeFromDsn6(a.data, params).runInContext(ctx)
const props = { label: 'Volume' };
return new SO.Volume.Data(volume, props);
});
}
});
type VolumeFromDensityServerCif = typeof VolumeFromDensityServerCif
const VolumeFromDensityServerCif = PluginStateTransform.BuiltIn({
name: 'volume-from-density-server-cif',
display: { name: 'Volume from density-server CIF', description: 'Identify and create all separate models in the specified CIF data block' },
from: SO.Format.Cif,
to: SO.Volume.Data,
params(a) {
if (!a) {
return {