molstar
Version:
A comprehensive macromolecular library.
36 lines • 2.05 kB
JavaScript
/**
* Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { idFactory } from '../mol-util/id-factory';
import { DirectVolumeRenderable } from './renderable/direct-volume';
import { MeshRenderable } from './renderable/mesh';
import { PointsRenderable } from './renderable/points';
import { LinesRenderable } from './renderable/lines';
import { SpheresRenderable } from './renderable/spheres';
import { TextRenderable } from './renderable/text';
import { TextureMeshRenderable } from './renderable/texture-mesh';
import { ImageRenderable } from './renderable/image';
import { CylindersRenderable } from './renderable/cylinders';
var getNextId = idFactory(0, 0x7FFFFFFF);
export var getNextMaterialId = idFactory(0, 0x7FFFFFFF);
//
export function createRenderObject(type, values, state, materialId) {
return { id: getNextId(), type: type, values: values, state: state, materialId: materialId };
}
export function createRenderable(ctx, o) {
switch (o.type) {
case 'mesh': return MeshRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'points': return PointsRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'spheres': return SpheresRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'cylinders': return CylindersRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'text': return TextRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'lines': return LinesRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'direct-volume': return DirectVolumeRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'image': return ImageRenderable(ctx, o.id, o.values, o.state, o.materialId);
case 'texture-mesh': return TextureMeshRenderable(ctx, o.id, o.values, o.state, o.materialId);
}
throw new Error('unsupported type');
}
//# sourceMappingURL=render-object.js.map