molstar
Version:
A comprehensive macromolecular library.
33 lines (32 loc) • 1.51 kB
TypeScript
/**
* Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ValueCell } from '../../mol-util';
import { Mat4 } from '../../mol-math/linear-algebra';
export declare type TransformData = {
/**
* final per-instance transform calculated for instance `i` as
* `aTransform[i] = matrix * transform[i] * extraTransform[i]`
*/
aTransform: ValueCell<Float32Array>;
/** global transform, see aTransform */
matrix: ValueCell<Mat4>;
/** base per-instance transform, see aTransform */
transform: ValueCell<Float32Array>;
/** additional per-instance transform, see aTransform */
extraTransform: ValueCell<Float32Array>;
uInstanceCount: ValueCell<number>;
instanceCount: ValueCell<number>;
aInstance: ValueCell<Float32Array>;
hasReflection: ValueCell<boolean>;
};
export declare function createTransform(transformArray: Float32Array, instanceCount: number, transformData?: TransformData): TransformData;
export declare function createIdentityTransform(transformData?: TransformData): TransformData;
export declare function fillIdentityTransform(transform: Float32Array, count: number): Float32Array;
/**
* updates per-instance transform calculated for instance `i` as
* `aTransform[i] = matrix * transform[i] * extraTransform[i]`
*/
export declare function updateTransformData(transformData: TransformData): void;