UNPKG

molstar

Version:

A comprehensive macromolecular library.

29 lines (28 loc) 1.98 kB
/** * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { RenderableState, Renderable } from './renderable'; import { WebGLContext } from './webgl/context'; import { DirectVolumeValues } from './renderable/direct-volume'; import { MeshValues } from './renderable/mesh'; import { PointsValues } from './renderable/points'; import { LinesValues } from './renderable/lines'; import { SpheresValues } from './renderable/spheres'; import { TextValues } from './renderable/text'; import { TextureMeshValues } from './renderable/texture-mesh'; import { ImageValues } from './renderable/image'; import { CylindersValues } from './renderable/cylinders'; export declare const getNextMaterialId: () => number; export interface GraphicsRenderObject<T extends RenderObjectType = RenderObjectType> { readonly id: number; readonly type: T; readonly values: RenderObjectValues<T>; readonly state: RenderableState; readonly materialId: number; } export declare type RenderObjectType = 'mesh' | 'points' | 'spheres' | 'cylinders' | 'text' | 'lines' | 'direct-volume' | 'image' | 'texture-mesh'; export declare type RenderObjectValues<T extends RenderObjectType> = T extends 'mesh' ? MeshValues : T extends 'points' ? PointsValues : T extends 'spheres' ? SpheresValues : T extends 'cylinders' ? CylindersValues : T extends 'text' ? TextValues : T extends 'lines' ? LinesValues : T extends 'direct-volume' ? DirectVolumeValues : T extends 'image' ? ImageValues : T extends 'texture-mesh' ? TextureMeshValues : never; export declare function createRenderObject<T extends RenderObjectType>(type: T, values: RenderObjectValues<T>, state: RenderableState, materialId: number): GraphicsRenderObject<T>; export declare function createRenderable<T extends RenderObjectType>(ctx: WebGLContext, o: GraphicsRenderObject<T>): Renderable<any>;