molstar
Version:
A comprehensive macromolecular library.
37 lines (36 loc) • 2.48 kB
TypeScript
/**
* Copyright (c) 2018-2026 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ValueCell } from '../../mol-util/index.js';
import { Vec2 } from '../../mol-math/linear-algebra.js';
import { TextureImage } from '../../mol-gl/renderable/util.js';
import { LocationIterator } from '../util/location-iterator.js';
import { Location } from '../../mol-model/location.js';
import { SizeTheme } from '../../mol-theme/size.js';
export type SizeType = 'uniform' | 'instance' | 'group' | 'groupInstance' | 'vertex' | 'vertexInstance';
export type SizeData = {
uSize: ValueCell<number>;
tSize: ValueCell<TextureImage<Uint8Array>>;
uSizeTexDim: ValueCell<Vec2>;
dSizeType: ValueCell<string>;
};
export declare function createSizes(locationIt: LocationIterator, positionIt: LocationIterator, sizeTheme: SizeTheme<any>, sizeData?: SizeData): SizeData;
export declare const sizeDataFactor = 100;
export declare function getMaxSize(sizeData: SizeData): number;
export type LocationSize = (location: Location) => number;
export declare function createValueSize(value: number, sizeData?: SizeData): SizeData;
/** Creates size uniform */
export declare function createUniformSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;
export declare function createTextureSize(sizes: TextureImage<Uint8Array>, type: SizeType, sizeData?: SizeData): SizeData;
/** Creates size texture with size for each instance/unit */
export declare function createInstanceSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;
/** Creates size texture with size for each group (i.e. shared across instances/units) */
export declare function createGroupSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;
/** Creates size texture with size for each group in each instance (i.e. for each unit) */
export declare function createGroupInstanceSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;
/** Creates size texture with size for each vertex */
export declare function createVertexSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;
/** Creates size texture with size for each vertex instance */
export declare function createVertexInstanceSize(locationIt: LocationIterator, sizeFn: LocationSize, sizeData?: SizeData): SizeData;