From 9737f73dd249d4400c619a073e96587fd42c544a Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Tue, 13 Nov 2018 17:29:35 -0800 Subject: [PATCH] wip, clone params --- src/mol-repr/structure/representation/ball-and-stick.ts | 2 +- src/mol-repr/structure/representation/cartoon.ts | 2 +- src/mol-repr/volume/direct-volume.ts | 2 +- src/mol-repr/volume/isosurface-mesh.ts | 2 +- src/mol-repr/volume/representation.ts | 2 -- src/mol-util/param-definition.ts | 5 +++++ 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/mol-repr/structure/representation/ball-and-stick.ts b/src/mol-repr/structure/representation/ball-and-stick.ts index ef30a9e51..3cd9a158b 100644 --- a/src/mol-repr/structure/representation/ball-and-stick.ts +++ b/src/mol-repr/structure/representation/ball-and-stick.ts @@ -38,7 +38,7 @@ export const BallAndStickParams = { } export type BallAndStickParams = typeof BallAndStickParams export function getBallAndStickParams(ctx: ThemeRegistryContext, structure: Structure) { - return BallAndStickParams // TODO return copy + return PD.clone(BallAndStickParams) } export type BallAndStickRepresentation = StructureRepresentation<BallAndStickParams> diff --git a/src/mol-repr/structure/representation/cartoon.ts b/src/mol-repr/structure/representation/cartoon.ts index 1d478f25d..16beffdc9 100644 --- a/src/mol-repr/structure/representation/cartoon.ts +++ b/src/mol-repr/structure/representation/cartoon.ts @@ -38,7 +38,7 @@ export const CartoonParams = { } export type CartoonParams = typeof CartoonParams export function getCartoonParams(ctx: ThemeRegistryContext, structure: Structure) { - return CartoonParams // TODO return copy + return PD.clone(CartoonParams) } export type CartoonRepresentation = StructureRepresentation<CartoonParams> diff --git a/src/mol-repr/volume/direct-volume.ts b/src/mol-repr/volume/direct-volume.ts index 295c26fc2..d3890e7e5 100644 --- a/src/mol-repr/volume/direct-volume.ts +++ b/src/mol-repr/volume/direct-volume.ts @@ -161,7 +161,7 @@ export const DirectVolumeParams = { } export type DirectVolumeParams = typeof DirectVolumeParams export function getDirectVolumeParams(ctx: ThemeRegistryContext, volume: VolumeData) { - return DirectVolumeParams // TODO return copy + return PD.clone(DirectVolumeParams) } export function DirectVolumeVisual(): VolumeVisual<DirectVolumeParams> { diff --git a/src/mol-repr/volume/isosurface-mesh.ts b/src/mol-repr/volume/isosurface-mesh.ts index 8f3033dfe..fd54afcef 100644 --- a/src/mol-repr/volume/isosurface-mesh.ts +++ b/src/mol-repr/volume/isosurface-mesh.ts @@ -46,7 +46,7 @@ export const IsosurfaceParams = { } export type IsosurfaceParams = typeof IsosurfaceParams export function getIsosurfaceParams(ctx: ThemeRegistryContext, volume: VolumeData) { - return IsosurfaceParams // TODO return copy + return PD.clone(IsosurfaceParams) } export function IsosurfaceVisual(): VolumeVisual<IsosurfaceParams> { diff --git a/src/mol-repr/volume/representation.ts b/src/mol-repr/volume/representation.ts index b865c509f..c4fa484d7 100644 --- a/src/mol-repr/volume/representation.ts +++ b/src/mol-repr/volume/representation.ts @@ -145,8 +145,6 @@ export const VolumeParams = { isoValueRelative: PD.Range('Iso Value Relative', '', 2, -10, 10, 0.1), } export type VolumeParams = typeof VolumeParams -// export const DefaultVolumeProps = PD.getDefaultValues(VolumeParams) -// export type VolumeProps = typeof DefaultVolumeProps export function VolumeRepresentation<P extends VolumeParams>(label: string, getParams: RepresentationParamsGetter<VolumeData, P>, visualCtor: (volume: VolumeData) => VolumeVisual<P>): VolumeRepresentation<P> { let visual: VolumeVisual<P> diff --git a/src/mol-util/param-definition.ts b/src/mol-util/param-definition.ts index 2b7804bc7..3a7c8818a 100644 --- a/src/mol-util/param-definition.ts +++ b/src/mol-util/param-definition.ts @@ -6,6 +6,7 @@ */ import { Color as ColorData } from './color'; +import { shallowClone } from 'mol-util'; export namespace ParamDefinition { export interface Base<T> { @@ -98,4 +99,8 @@ export namespace ParamDefinition { Object.keys(params).forEach(k => d[k] = params[k].defaultValue) return d as DefaultValues<T> } + + export function clone<P extends Params>(params: P): P { + return shallowClone(params) + } } \ No newline at end of file -- GitLab