Skip to content
Snippets Groups Projects
Commit 7d7244e6 authored by Alexander Rose's avatar Alexander Rose
Browse files

added distance restraint repr, used spacefill for spheres complex

parent 157f51d9
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,8 @@ import { StateTreeBuilder } from 'mol-state/tree/builder'; ...@@ -17,6 +17,8 @@ import { StateTreeBuilder } from 'mol-state/tree/builder';
import { PolymerIdColorThemeParams } from 'mol-theme/color/polymer-id'; import { PolymerIdColorThemeParams } from 'mol-theme/color/polymer-id';
import { UniformSizeThemeParams } from 'mol-theme/size/uniform'; import { UniformSizeThemeParams } from 'mol-theme/size/uniform';
import { ElementSymbolColorThemeParams } from 'mol-theme/color/element-symbol'; import { ElementSymbolColorThemeParams } from 'mol-theme/color/element-symbol';
import { PhysicalSizeThemeParams } from 'mol-theme/size/physical';
import { SpacefillParams } from 'mol-repr/structure/representation/spacefill';
// TODO: "structure parser provider" // TODO: "structure parser provider"
...@@ -124,8 +126,12 @@ function complexRepresentation(root: StateTreeBuilder.To<PluginStateObject.Molec ...@@ -124,8 +126,12 @@ function complexRepresentation(root: StateTreeBuilder.To<PluginStateObject.Molec
colorTheme: { name: 'element-symbol', params: PD.getDefaultValues(ElementSymbolColorThemeParams) }, colorTheme: { name: 'element-symbol', params: PD.getDefaultValues(ElementSymbolColorThemeParams) },
sizeTheme: { name: 'uniform', params: PD.getDefaultValues(UniformSizeThemeParams) }, sizeTheme: { name: 'uniform', params: PD.getDefaultValues(UniformSizeThemeParams) },
}) })
root.apply(StateTransforms.Model.StructureComplexElement, { type: 'spheres' }); root.apply(StateTransforms.Model.StructureComplexElement, { type: 'spheres' })
// TODO: create spheres visual .apply(StateTransforms.Representation.StructureRepresentation3D, {
type: { name: 'spacefill', params: { ...PD.getDefaultValues(SpacefillParams) } },
colorTheme: { name: 'polymer-id', params: PD.getDefaultValues(PolymerIdColorThemeParams) },
sizeTheme: { name: 'physical', params: PD.getDefaultValues(PhysicalSizeThemeParams) },
})
} }
export const CreateComplexRepresentation = StateAction.build({ export const CreateComplexRepresentation = StateAction.build({
......
...@@ -11,6 +11,7 @@ import { BallAndStickRepresentationProvider } from './representation/ball-and-st ...@@ -11,6 +11,7 @@ import { BallAndStickRepresentationProvider } from './representation/ball-and-st
import { MolecularSurfaceRepresentationProvider } from './representation/molecular-surface'; import { MolecularSurfaceRepresentationProvider } from './representation/molecular-surface';
import { CarbohydrateRepresentationProvider } from './representation/carbohydrate'; import { CarbohydrateRepresentationProvider } from './representation/carbohydrate';
import { SpacefillRepresentationProvider } from './representation/spacefill'; import { SpacefillRepresentationProvider } from './representation/spacefill';
import { DistanceRestraintRepresentationProvider } from './representation/distance-restraint';
export class StructureRepresentationRegistry extends RepresentationRegistry<Structure> { export class StructureRepresentationRegistry extends RepresentationRegistry<Structure> {
constructor() { constructor() {
...@@ -26,6 +27,7 @@ export const BuiltInStructureRepresentations = { ...@@ -26,6 +27,7 @@ export const BuiltInStructureRepresentations = {
'cartoon': CartoonRepresentationProvider, 'cartoon': CartoonRepresentationProvider,
'ball-and-stick': BallAndStickRepresentationProvider, 'ball-and-stick': BallAndStickRepresentationProvider,
'carbohydrate': CarbohydrateRepresentationProvider, 'carbohydrate': CarbohydrateRepresentationProvider,
'distance-restraint': DistanceRestraintRepresentationProvider,
'molecular-surface': MolecularSurfaceRepresentationProvider, 'molecular-surface': MolecularSurfaceRepresentationProvider,
'spacefill': SpacefillRepresentationProvider, 'spacefill': SpacefillRepresentationProvider,
} }
......
// /** /**
// * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
// * *
// * @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
// */ */
// import { CrossLinkRestraintVisual, CrossLinkRestraintParams } from '../visual/cross-link-restraint-cylinder'; import { CrossLinkRestraintVisual, CrossLinkRestraintParams } from '../visual/cross-link-restraint-cylinder';
// import { ParamDefinition as PD } from 'mol-util/param-definition'; import { ParamDefinition as PD } from 'mol-util/param-definition';
// import { ComplexRepresentation } from '../complex-representation'; import { ComplexRepresentation } from '../complex-representation';
// import { StructureRepresentation } from '../representation'; import { StructureRepresentation, StructureRepresentationProvider } from '../representation';
// import { Representation } from 'mol-repr/representation'; import { Representation, RepresentationContext, RepresentationParamsGetter } from 'mol-repr/representation';
// import { ThemeRegistryContext } from 'mol-theme/theme'; import { ThemeRegistryContext } from 'mol-theme/theme';
// import { Structure } from 'mol-model/structure'; import { Structure } from 'mol-model/structure';
import { UnitKind, UnitKindOptions } from '../visual/util/common';
// export const DistanceRestraintParams = { const DistanceRestraintVisuals = {
// ...CrossLinkRestraintParams, 'distance-restraint': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, CrossLinkRestraintParams>) => ComplexRepresentation('Cross-link restraint', ctx, getParams, CrossLinkRestraintVisual),
// } }
// export function getDistanceRestraintParams(ctx: ThemeRegistryContext, structure: Structure) {
// return DistanceRestraintParams // TODO return copy
// }
// export type DistanceRestraintProps = PD.DefaultValues<typeof DistanceRestraintParams>
// export type DistanceRestraintRepresentation = StructureRepresentation<DistanceRestraintProps> export const DistanceRestraintParams = {
...CrossLinkRestraintParams,
unitKinds: PD.MultiSelect<UnitKind>(['atomic', 'spheres'], UnitKindOptions),
}
export type DistanceRestraintParams = typeof DistanceRestraintParams
export function getDistanceRestraintParams(ctx: ThemeRegistryContext, structure: Structure) {
return PD.clone(DistanceRestraintParams)
}
// export function DistanceRestraintRepresentation(defaultProps: DistanceRestraintProps): DistanceRestraintRepresentation { export type DistanceRestraintRepresentation = StructureRepresentation<DistanceRestraintParams>
// return Representation.createMulti('Distance restraint', defaultProps, [ export function DistanceRestraintRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, DistanceRestraintParams>): DistanceRestraintRepresentation {
// ComplexRepresentation('Cross-link restraint', defaultProps, CrossLinkRestraintVisual) return Representation.createMulti('DistanceRestraint', ctx, getParams, DistanceRestraintVisuals as unknown as Representation.Def<Structure, DistanceRestraintParams>)
// ]) }
// }
\ No newline at end of file export const DistanceRestraintRepresentationProvider: StructureRepresentationProvider<typeof DistanceRestraintParams> = {
label: 'DistanceRestraint',
description: 'Displays cross-link distance restraints.',
factory: DistanceRestraintRepresentation,
getParams: getDistanceRestraintParams,
defaultValues: PD.getDefaultValues(DistanceRestraintParams),
defaultColorTheme: 'cross-link',
defaultSizeTheme: 'uniform'
}
\ No newline at end of file
...@@ -19,7 +19,7 @@ const SpacefillVisuals = { ...@@ -19,7 +19,7 @@ const SpacefillVisuals = {
export const SpacefillParams = { export const SpacefillParams = {
...ElementSphereParams, ...ElementSphereParams,
unitKinds: PD.MultiSelect<UnitKind>(['atomic', 'gaussians'], UnitKindOptions), unitKinds: PD.MultiSelect<UnitKind>(['atomic', 'spheres'], UnitKindOptions),
} }
export type SpacefillParams = typeof SpacefillParams export type SpacefillParams = typeof SpacefillParams
export function getSpacefillParams(ctx: ThemeRegistryContext, structure: Structure) { export function getSpacefillParams(ctx: ThemeRegistryContext, structure: Structure) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment