diff --git a/src/apps/viewer/extensions/cellpack/data.ts b/src/apps/viewer/extensions/cellpack/data.ts index a22c19df55c30710da796768856498e91e044b21..ff393fac6d2e8526608b6f50af7d9aa763b37de9 100644 --- a/src/apps/viewer/extensions/cellpack/data.ts +++ b/src/apps/viewer/extensions/cellpack/data.ts @@ -41,12 +41,11 @@ export interface Packing { ingredients: { [key: string]: Ingredient } } -export interface Positions -{ +export interface Positions { coords?: Vec3[]; } -export interface Radii -{ + +export interface Radii { radii?: number[]; } @@ -54,21 +53,25 @@ export interface Ingredient { source: IngredientSource; results: [Vec3, Quat][]; name: string; - positions?: [Positions];//Vec3[]];CoarseGraind Beads coordinates LOD - radii?: [Radii];//number[]];CoarseGraind Beads radii LOD + /** Vec3[]];CoarseGraind Beads coordinates LOD */ + positions?: [Positions]; + /** number[]];CoarseGraind Beads radii LOD */ + radii?: [Radii]; /** Number of `curveX` properties in the object where `X` is a 0-indexed number */ nbCurve?: number; /** Curve properties are Vec3[] but that is not expressable in TypeScript */ [curveX: string]: unknown; - principalAxis?: Vec3; /** the orientation in the membrane */ - offset?: Vec3; /**offset along membrane */ + /** the orientation in the membrane */ + principalAxis?: Vec3; + /** offset along membrane */ + offset?: Vec3; } export interface IngredientSource { pdb: string; - bu?:string; /** biological unit e.g AU,BU1,etc.. */ - selection?:string; /** NGL selection or :A or :B etc.. */ - model?:string; /** model number e.g 0,1,2... */ + bu?: string; /** biological unit e.g AU,BU1,etc.. */ + selection?: string; /** NGL selection or :A or :B etc.. */ + model?: string; /** model number e.g 0,1,2... */ transform: { center: boolean; translate?: Vec3; diff --git a/src/apps/viewer/extensions/cellpack/model.ts b/src/apps/viewer/extensions/cellpack/model.ts index 9c8caa68e5da1b8ffaa86205436be0554aa807bb..5ef48f02eff4e741a53a8b8f59350e9f5c413b96 100644 --- a/src/apps/viewer/extensions/cellpack/model.ts +++ b/src/apps/viewer/extensions/cellpack/model.ts @@ -389,26 +389,24 @@ async function loadMembrane(name: string, plugin: PluginContext, runtime: Runtim const url = `${params.baseUrl}/membranes/${name}.bcif` // const file = (ingredientFiles)?ingredientFiles[fname]:null; + // can we check if url exist let membrane - if (!file) - //can we check if url exist - { - membrane = await state.build().toRoot() - .apply(StateTransforms.Data.Download, { label: name, url, isBinary: true }, { state: { isGhost: true } }) - .apply(StateTransforms.Data.ParseCif, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.TrajectoryFromMmCif, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.ModelFromTrajectory, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.StructureFromModel) - .commit() - } - else { + if (!file) { membrane = await state.build().toRoot() - .apply(StateTransforms.Data.ReadFile, { file, isBinary: true, label: file.name }, { state: { isGhost: true } }) - .apply(StateTransforms.Data.ParseCif, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.TrajectoryFromMmCif, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.ModelFromTrajectory, undefined, { state: { isGhost: true } }) - .apply(StateTransforms.Model.StructureFromModel) - .commit() + .apply(StateTransforms.Data.Download, { label: name, url, isBinary: true }, { state: { isGhost: true } }) + .apply(StateTransforms.Data.ParseCif, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.TrajectoryFromMmCif, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.ModelFromTrajectory, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.StructureFromModel) + .commit() + } else { + membrane = await state.build().toRoot() + .apply(StateTransforms.Data.ReadFile, { file, isBinary: true, label: file.name }, { state: { isGhost: true } }) + .apply(StateTransforms.Data.ParseCif, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.TrajectoryFromMmCif, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.ModelFromTrajectory, undefined, { state: { isGhost: true } }) + .apply(StateTransforms.Model.StructureFromModel) + .commit() } const membraneParams = {