diff --git a/src/mol-plugin/state/transforms/representation.ts b/src/mol-plugin/state/transforms/representation.ts index 5ea400ae8624aed244518e79086f9aeaf2d66635..443148667a10e9acc946c16eb85d9a53cdf230ec 100644 --- a/src/mol-plugin/state/transforms/representation.ts +++ b/src/mol-plugin/state/transforms/representation.ts @@ -14,31 +14,31 @@ import { ParamDefinition as PD } from 'mol-util/param-definition'; import { createTheme } from 'mol-theme/theme'; import { BuiltInStructureRepresentationsName } from 'mol-repr/structure/registry'; import { Structure } from 'mol-model/structure'; -import { UnitsMeshParams } from 'mol-repr/structure/units-visual'; +import { StructureParams } from 'mol-repr/structure/representation'; export namespace StructureRepresentation3DHelpers { - export function getDefaultParams(ctx: PluginContext, name: BuiltInStructureRepresentationsName, structure: Structure, meshParams?: Partial<PD.Values<UnitsMeshParams>>): Transformer.Params<StructureRepresentation3D> { + export function getDefaultParams(ctx: PluginContext, name: BuiltInStructureRepresentationsName, structure: Structure, structureParams?: Partial<PD.Values<StructureParams>>): Transformer.Params<StructureRepresentation3D> { const type = ctx.structureRepresentation.registry.get(name); const themeDataCtx = { structure }; const colorParams = ctx.structureRepresentation.themeCtx.colorThemeRegistry.get(type.defaultColorTheme).getParams(themeDataCtx); const sizeParams = ctx.structureRepresentation.themeCtx.sizeThemeRegistry.get(type.defaultSizeTheme).getParams(themeDataCtx) + const structureDefaultParams = PD.getDefaultValues(type.getParams(ctx.structureRepresentation.themeCtx, structure)) return ({ - type: { name, params: meshParams ? { ...type.defaultValues, ...meshParams } : type.defaultValues }, + type: { name, params: structureParams ? { ...structureDefaultParams, ...structureParams } : structureDefaultParams }, colorTheme: { name: type.defaultColorTheme, params: PD.getDefaultValues(colorParams) }, sizeTheme: { name: type.defaultSizeTheme, params: PD.getDefaultValues(sizeParams) } }) } - export function getDefaultParamsStatic(ctx: PluginContext, name: BuiltInStructureRepresentationsName, meshParams?: Partial<PD.Values<UnitsMeshParams>>): Transformer.Params<StructureRepresentation3D> { + export function getDefaultParamsStatic(ctx: PluginContext, name: BuiltInStructureRepresentationsName, structureParams?: Partial<PD.Values<StructureParams>>): Transformer.Params<StructureRepresentation3D> { const type = ctx.structureRepresentation.registry.get(name); - const colorParams = ctx.structureRepresentation.themeCtx.colorThemeRegistry.get(type.defaultColorTheme).defaultValues; const sizeParams = ctx.structureRepresentation.themeCtx.sizeThemeRegistry.get(type.defaultSizeTheme).defaultValues return ({ - type: { name, params: meshParams ? { ...type.defaultValues, ...meshParams } : type.defaultValues }, - colorTheme: { name: type.defaultColorTheme, params: PD.getDefaultValues(colorParams) }, - sizeTheme: { name: type.defaultSizeTheme, params: PD.getDefaultValues(sizeParams) } + type: { name, params: structureParams ? { ...type.defaultValues, ...structureParams } : type.defaultValues }, + colorTheme: { name: type.defaultColorTheme, params: colorParams }, + sizeTheme: { name: type.defaultSizeTheme, params: sizeParams } }) } } diff --git a/src/mol-theme/color.ts b/src/mol-theme/color.ts index 32f98d654ed4b497d2390d26aceaaccf48acd3bf..75bbc2eee2c4b815bc5be4407d2fb7df229e2c10 100644 --- a/src/mol-theme/color.ts +++ b/src/mol-theme/color.ts @@ -89,9 +89,9 @@ namespace ColorTheme { return this._map.get(name) || EmptyProvider as unknown as Provider<P> } - create(id: string, ctx: ThemeDataContext, props = {}) { - const provider = this.get(id) - return provider ? provider.factory(ctx, { ...PD.getDefaultValues(provider.getParams(ctx)), ...props }) : Empty + create(name: string, ctx: ThemeDataContext, props = {}) { + const provider = this.get(name) + return provider.factory(ctx, { ...PD.getDefaultValues(provider.getParams(ctx)), ...props }) } get list() { diff --git a/src/mol-theme/size.ts b/src/mol-theme/size.ts index 6433b60f3ae41ecede5ef4edbebd521333d42e7b..16179eb0d6462a413625d7ac0eecdf3092fe977e 100644 --- a/src/mol-theme/size.ts +++ b/src/mol-theme/size.ts @@ -63,13 +63,13 @@ namespace SizeTheme { this._map.delete(name) } - get<P extends PD.Params>(id: string) { - return this._map.get(id) || EmptyProvider as unknown as Provider<P> + get<P extends PD.Params>(name: string): Provider<P> { + return this._map.get(name) || EmptyProvider as unknown as Provider<P> } - create(id: string, ctx: ThemeDataContext, props = {}) { - const provider = this.get(id) - return provider ? provider.factory(ctx, { ...PD.getDefaultValues(provider.getParams(ctx)), ...props }) : Empty + create(name: string, ctx: ThemeDataContext, props = {}) { + const provider = this.get(name) + return provider.factory(ctx, { ...PD.getDefaultValues(provider.getParams(ctx)), ...props }) } get list() {