Skip to content
Snippets Groups Projects
Commit de782def authored by Michal Malý's avatar Michal Malý
Browse files

ReDNATCO plugin stage 26

parent 3dda801c
No related branches found
No related tags found
No related merge requests found
......@@ -93,21 +93,27 @@ export namespace ReDNATCOMspApi {
Events.StructureLoaded;
export namespace Queries {
export type Type = 'current-filter'|'selected-step';
export type Type = 'current-filter'|'current-model-number'|'selected-step';
export type CurrentFilter = { type: 'current-filter', filter: Filters.All }
export function CurrentFilter(filter: Filters.All): CurrentFilter {
return { type: 'current-filter', filter };
}
export type CurrentModelNumber = { type: 'current-model-number', num: number };
export function CurrentModelNumber(num: number): CurrentModelNumber {
return { type: 'current-model-number', num };
}
export type SelectedStep = { type: 'selected-step', name: string, rmsd?: number }
export function SelectedStep(name: string, rmsd?: number): SelectedStep {
return { type: 'selected-step', name, rmsd };
}
}
export type Response = Queries.CurrentFilter|Queries.SelectedStep;
export type Response = Queries.CurrentFilter|Queries.CurrentModelNumber|Queries.SelectedStep;
export type ResponseTypes = {
'current-filter': Queries.CurrentFilter,
'current-model-number': Queries.CurrentModelNumber,
'selected-step': Queries.SelectedStep,
}
......
......@@ -151,6 +151,8 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
apiQuery(type: Api.Queries.Type): Api.Response {
if (type === 'current-filter') {
return Api.Queries.CurrentFilter(this.currentFilter);
} else if (type === 'current-model-number') {
return Api.Queries.CurrentModelNumber(this.viewer!.currentModelNumber());
} else if (type === 'selected-step') {
if (this.selectedStep)
return Api.Queries.SelectedStep(this.selectedStep.name, this.selectedStep.rmsd);
......
......@@ -263,13 +263,6 @@ export class ReDNATCOMspViewer {
this.app = app;
}
private currentModelNumber() {
const model = this.plugin.state.data.cells.get(IDs.ID('model', '', BaseRef))?.obj;
if (!model)
return -1;
return (model as StateObject<Model>).data.modelNum;
}
private focusOnLoci(loci: StructureElement.Loci) {
if (!this.plugin.canvas3d)
return;
......@@ -668,6 +661,13 @@ export class ReDNATCOMspViewer {
await b.commit();
}
currentModelNumber() {
const model = this.plugin.state.data.cells.get(IDs.ID('model', '', BaseRef))?.obj;
if (!model)
return -1;
return (model as StateObject<Model>).data.modelNum;
}
focusOnSelectedStep() {
// Focus camera on the selection
const sel = this.plugin.state.data.cells.get(IDs.ID('superposition', '', NtCSupSel));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment