/** * Copyright (c) 2018-2026 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { Texture } from '../../../mol-gl/webgl/texture.js'; import { Box3D, Sphere3D } from '../../../mol-math/geometry.js'; import { Mat4, Vec3, Vec4 } from '../../../mol-math/linear-algebra.js'; import { ValueCell } from '../../../mol-util/index.js'; import { ParamDefinition as PD } from '../../../mol-util/param-definition.js'; import { GeometryUtils } from '../geometry.js'; import { Grid } from '../../../mol-model/volume.js'; export interface DirectVolume { readonly kind: 'direct-volume'; readonly gridTexture: ValueCell; readonly gridTextureDim: ValueCell; readonly gridDimension: ValueCell; readonly gridStats: ValueCell; readonly bboxSize: ValueCell; readonly bboxMin: ValueCell; readonly bboxMax: ValueCell; readonly transform: ValueCell; readonly cellDim: ValueCell; readonly unitToCartn: ValueCell; readonly cartnToUnit: ValueCell; readonly packedGroup: ValueCell; readonly axisOrder: ValueCell; readonly dataType: ValueCell<'byte' | 'float' | 'halfFloat'>; /** Bounding sphere of the volume */ readonly boundingSphere: Sphere3D; setBoundingSphere(boundingSphere: Sphere3D): void; hasBoundingSphere(): boolean; readonly meta: { /** Called to restore when a webgl context is lost */ reset?: () => void; }; } export declare namespace DirectVolume { function create(bbox: Box3D, gridDimension: Vec3, transform: Mat4, unitToCartn: Mat4, cellDim: Vec3, texture: Texture, stats: Grid['stats'], packedGroup: boolean, axisOrder: Vec3, dataType: 'byte' | 'float' | 'halfFloat', directVolume?: DirectVolume): DirectVolume; function createEmpty(directVolume?: DirectVolume): DirectVolume; const Params: { ignoreLight: PD.BooleanParam; celShaded: PD.BooleanParam; xrayShaded: PD.Select; controlPoints: PD.LineGraph; stepsPerCell: PD.Numeric; jumpLength: PD.Numeric; alpha: PD.Numeric; quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">; material: PD.Group>; clip: PD.Group[]; }>>; emissive: PD.Numeric; density: PD.Numeric; instanceGranularity: PD.BooleanParam; lod: PD.Vec3; cellSize: PD.Numeric; batchSize: PD.Numeric; }; type Params = typeof Params; const Utils: GeometryUtils; }