/** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> * @author David Sehnal <david.sehnal@gmail.com> */ import { Structure } from 'mol-model/structure'; import { ColorThemeProps } from 'mol-view/theme/color'; import { SizeThemeProps } from 'mol-view/theme/size'; import { Representation, RepresentationProps } from '..'; import { DefaultBaseProps, DefaultMeshProps } from '../util'; export interface StructureRepresentation<P extends RepresentationProps = {}> extends Representation<Structure, P> { } export const DefaultStructureProps = { ...DefaultBaseProps, colorTheme: { name: 'unit-index' } as ColorThemeProps, sizeTheme: { name: 'physical' } as SizeThemeProps, } export type StructureProps = typeof DefaultStructureProps export const DefaultStructureMeshProps = { ...DefaultStructureProps, ...DefaultMeshProps } export type StructureMeshProps = typeof DefaultStructureMeshProps export interface MeshUpdateState { updateTransform: boolean updateColor: boolean createMesh: boolean } export namespace MeshUpdateState { export function create(): MeshUpdateState { return { updateTransform: false, updateColor: false, createMesh: false } } export function reset(state: MeshUpdateState) { state.updateTransform = false state.updateColor = false state.createMesh = false } } export { ComplexRepresentation } from './complex-representation' export { UnitsRepresentation } from './units-representation' export { ComplexVisual } from './complex-visual' export { UnitsVisual } from './units-visual'