molstar
Version:
A comprehensive macromolecular library.
55 lines (54 loc) • 2.62 kB
TypeScript
/**
* 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>;
}