UNPKG

molstar

Version:

A comprehensive macromolecular library.

55 lines (54 loc) 2.62 kB
/** * Copyright (c) 2021 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Sukolsak Sakshuwong <sukolsak@stanford.edu> */ import { GraphicsRenderObject } from '../../mol-gl/render-object'; import { BaseValues } from '../../mol-gl/renderable/schema'; import { WebGLContext } from '../../mol-gl/webgl/context'; import { Mesh } from '../../mol-geo/geometry/mesh/mesh'; import { RuntimeContext } from '../../mol-task'; import { Color } from '../../mol-util/color/color'; import { RenderObjectExporter, RenderObjectExportData } from './render-object-exporter'; export interface AddMeshInput { mesh: { vertices: Float32Array; normals: Float32Array; indices: Uint32Array | undefined; groups: Float32Array | Uint8Array; vertexCount: number; drawCount: number; } | undefined; meshes: Mesh[] | undefined; values: BaseValues; isGeoTexture: boolean; webgl: WebGLContext | undefined; ctx: RuntimeContext; } export declare abstract class MeshExporter<D extends RenderObjectExportData> implements RenderObjectExporter<D> { abstract readonly fileExtension: string; private static getSizeFromTexture; private static getSize; protected static getGroup(groups: Float32Array | Uint8Array, i: number): number; protected static getInterpolatedColors(vertices: Float32Array, vertexCount: number, values: BaseValues, stride: number, colorType: 'volume' | 'volumeInstance', webgl: WebGLContext): Uint8Array; protected static quantizeColors(colorArray: Uint8Array, vertexCount: number): void; protected static getInstance(input: AddMeshInput, instanceIndex: number): { vertices: Float32Array; normals: Float32Array; indices: Uint32Array | undefined; groups: Uint8Array | Float32Array; vertexCount: number; drawCount: number; }; protected static getColor(values: BaseValues, groups: Float32Array | Uint8Array, vertexCount: number, instanceIndex: number, isGeoTexture: boolean, interpolatedColors: Uint8Array | undefined, vertexIndex: number): Color; protected abstract addMeshWithColors(input: AddMeshInput): void; private addMesh; private addLines; private addPoints; private addSpheres; private addCylinders; private addTextureMesh; add(renderObject: GraphicsRenderObject, webgl: WebGLContext, ctx: RuntimeContext): Promise<void> | undefined; abstract getData(ctx: RuntimeContext): Promise<D>; abstract getBlob(ctx: RuntimeContext): Promise<Blob>; }